From e3158267e8b4ea5c21fed43ac25da02c8aea0ec4 Mon Sep 17 00:00:00 2001 From: KodeStar Date: Sun, 11 Feb 2018 17:00:44 +0000 Subject: [PATCH] Add gh-pages branch for site --- .env | 31 - .env.example | 35 - .gitattributes | 5 - .gitignore | 12 - CHANGELOG.md | 59 - LICENSE | 21 - _config.yml | 1 - app/Console/Kernel.php | 42 - app/Exceptions/Handler.php | 53 - app/Helper.php | 12 - .../Auth/ForgotPasswordController.php | 32 - app/Http/Controllers/Auth/LoginController.php | 39 - .../Controllers/Auth/RegisterController.php | 71 - .../Auth/ResetPasswordController.php | 39 - app/Http/Controllers/Controller.php | 13 - app/Http/Controllers/ItemController.php | 318 - app/Http/Controllers/SettingsController.php | 102 - app/Http/Kernel.php | 61 - app/Http/Middleware/EncryptCookies.php | 17 - .../Middleware/RedirectIfAuthenticated.php | 26 - app/Http/Middleware/TrimStrings.php | 18 - app/Http/Middleware/TrustProxies.php | 29 - app/Http/Middleware/VerifyCsrfToken.php | 21 - app/Item.php | 99 - app/Providers/AppServiceProvider.php | 68 - app/Providers/AuthServiceProvider.php | 30 - app/Providers/BroadcastServiceProvider.php | 21 - app/Providers/EventServiceProvider.php | 32 - app/Providers/RouteServiceProvider.php | 73 - app/Setting.php | 218 - app/SettingGroup.php | 27 - app/SupportedApps/Contracts/Applications.php | 9 - app/SupportedApps/Contracts/Livestats.php | 11 - app/SupportedApps/Duplicati.php | 12 - app/SupportedApps/Emby.php | 12 - app/SupportedApps/Nextcloud.php | 12 - app/SupportedApps/Nzbget.php | 80 - app/SupportedApps/Pfsense.php | 12 - app/SupportedApps/Pihole.php | 70 - app/SupportedApps/Plex.php | 12 - app/SupportedApps/Plexpy.php | 12 - app/SupportedApps/Portainer.php | 12 - app/SupportedApps/Sabnzbd.php | 82 - app/SupportedApps/Unifi.php | 12 - app/User.php | 29 - artisan | 53 - bootstrap/app.php | 55 - bootstrap/cache/.gitignore | 2 - composer.json | 62 - composer.lock | 4259 ----- config/app.php | 234 - config/auth.php | 102 - config/broadcasting.php | 59 - config/cache.php | 94 - config/database.php | 121 - config/filesystems.php | 68 - config/mail.php | 123 - config/queue.php | 85 - config/services.php | 38 - config/session.php | 197 - config/view.php | 33 - database/.gitignore | 1 - database/factories/UserFactory.php | 23 - .../2018_01_27_155922_create_items_table.php | 39 - ...018_02_04_185524_create_settings_table.php | 38 - ..._04_185802_create_setting_groups_table.php | 32 - database/seeds/DatabaseSeeder.php | 16 - database/seeds/SettingsSeeder.php | 139 - index.html | 39 + package-lock.json | 13450 ------------- package.json | 24 - phpunit.xml | 31 - public/.htaccess | 21 - public/android-icon-144x144.png | Bin 11503 -> 0 bytes public/android-icon-192x192.png | Bin 14771 -> 0 bytes public/android-icon-36x36.png | Bin 2127 -> 0 bytes public/android-icon-48x48.png | Bin 2565 -> 0 bytes public/android-icon-72x72.png | Bin 5230 -> 0 bytes public/android-icon-96x96.png | Bin 7278 -> 0 bytes public/apple-icon-114x114.png | Bin 8786 -> 0 bytes public/apple-icon-120x120.png | Bin 9276 -> 0 bytes public/apple-icon-144x144.png | Bin 11503 -> 0 bytes public/apple-icon-152x152.png | Bin 12129 -> 0 bytes public/apple-icon-180x180.png | Bin 15243 -> 0 bytes public/apple-icon-57x57.png | Bin 3046 -> 0 bytes public/apple-icon-60x60.png | Bin 3162 -> 0 bytes public/apple-icon-72x72.png | Bin 5230 -> 0 bytes public/apple-icon-76x76.png | Bin 5569 -> 0 bytes public/apple-icon-precomposed.png | Bin 15345 -> 0 bytes public/apple-icon.png | Bin 15345 -> 0 bytes public/browserconfig.xml | 2 - public/css/app.css | 5314 ------ public/favicon-16x16.png | Bin 1317 -> 0 bytes public/favicon-32x32.png | Bin 1926 -> 0 bytes public/favicon-96x96.png | Bin 7278 -> 0 bytes public/favicon.ico | Bin 1150 -> 0 bytes public/img/bg1.jpg | Bin 277424 -> 0 bytes public/img/heimdall-icon-small.png | Bin 5337 -> 0 bytes public/img/yggdrasil.svg | 171 - public/index.php | 60 - public/js/app.js | 129 - public/js/jquery-3.3.1.min.js | 2 - public/manifest.json | 41 - public/mix-manifest.json | 4 - public/ms-icon-144x144.png | Bin 11503 -> 0 bytes public/ms-icon-150x150.png | Bin 12097 -> 0 bytes public/ms-icon-310x310.png | Bin 31365 -> 0 bytes public/ms-icon-70x70.png | Bin 5089 -> 0 bytes public/robots.txt | 2 - public/web.config | 23 - public/webfonts/._fa-brands-400.eot | Bin 4096 -> 0 bytes public/webfonts/._fa-brands-400.svg | Bin 4096 -> 0 bytes public/webfonts/._fa-brands-400.ttf | Bin 4096 -> 0 bytes public/webfonts/._fa-brands-400.woff | Bin 4096 -> 0 bytes public/webfonts/._fa-brands-400.woff2 | Bin 4096 -> 0 bytes public/webfonts/._fa-light-300.eot | Bin 4096 -> 0 bytes public/webfonts/._fa-light-300.svg | Bin 4096 -> 0 bytes public/webfonts/._fa-light-300.ttf | Bin 4096 -> 0 bytes public/webfonts/._fa-light-300.woff | Bin 4096 -> 0 bytes public/webfonts/._fa-light-300.woff2 | Bin 4096 -> 0 bytes public/webfonts/._fa-regular-400.eot | Bin 4096 -> 0 bytes public/webfonts/._fa-regular-400.svg | Bin 4096 -> 0 bytes public/webfonts/._fa-regular-400.ttf | Bin 4096 -> 0 bytes public/webfonts/._fa-regular-400.woff | Bin 4096 -> 0 bytes public/webfonts/._fa-regular-400.woff2 | Bin 4096 -> 0 bytes public/webfonts/._fa-solid-900.eot | Bin 4096 -> 0 bytes public/webfonts/._fa-solid-900.svg | Bin 4096 -> 0 bytes public/webfonts/._fa-solid-900.ttf | Bin 4096 -> 0 bytes public/webfonts/._fa-solid-900.woff | Bin 4096 -> 0 bytes public/webfonts/._fa-solid-900.woff2 | Bin 4096 -> 0 bytes public/webfonts/fa-brands-400.eot | Bin 97180 -> 0 bytes public/webfonts/fa-brands-400.svg | 990 - public/webfonts/fa-brands-400.ttf | Bin 96944 -> 0 bytes public/webfonts/fa-brands-400.woff | Bin 62812 -> 0 bytes public/webfonts/fa-brands-400.woff2 | Bin 53800 -> 0 bytes public/webfonts/fa-light-300.eot | Bin 158288 -> 0 bytes public/webfonts/fa-light-300.svg | 1875 -- public/webfonts/fa-light-300.ttf | Bin 158072 -> 0 bytes public/webfonts/fa-light-300.woff | Bin 70708 -> 0 bytes public/webfonts/fa-light-300.woff2 | Bin 55120 -> 0 bytes public/webfonts/fa-regular-400.eot | Bin 145480 -> 0 bytes public/webfonts/fa-regular-400.svg | 1875 -- public/webfonts/fa-regular-400.ttf | Bin 145256 -> 0 bytes public/webfonts/fa-regular-400.woff | Bin 66320 -> 0 bytes public/webfonts/fa-regular-400.woff2 | Bin 52468 -> 0 bytes public/webfonts/fa-solid-900.eot | Bin 127388 -> 0 bytes public/webfonts/fa-solid-900.svg | 1875 -- public/webfonts/fa-solid-900.ttf | Bin 127172 -> 0 bytes public/webfonts/fa-solid-900.woff | Bin 56572 -> 0 bytes public/webfonts/fa-solid-900.woff2 | Bin 44420 -> 0 bytes readme.md | 103 - resources/assets/js/app.js | 120 - resources/assets/js/bootstrap.js | 55 - .../assets/js/components/ExampleComponent.vue | 23 - resources/assets/js/huebee.js | 9 - resources/assets/js/jquery-ui.min.js | 7 - resources/assets/sass/_app.scss | 795 - resources/assets/sass/_huebee.scss | 83 - resources/assets/sass/_normalise.scss | 424 - resources/assets/sass/_variables.scss | 18 - resources/assets/sass/app.scss | 19 - .../assets/sass/fontawesome/.__animated.scss | Bin 4096 -> 0 bytes .../sass/fontawesome/.__bordered-pulled.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/.__core.scss | Bin 4096 -> 0 bytes .../sass/fontawesome/.__fixed-width.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/.__icons.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/.__larger.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/.__list.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/.__mixins.scss | Bin 4096 -> 0 bytes .../sass/fontawesome/.__rotated-flipped.scss | Bin 4096 -> 0 bytes .../sass/fontawesome/.__screen-reader.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/.__stacked.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/.__variables.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/._fa-brands.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/._fa-light.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/._fa-regular.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/._fa-solid.scss | Bin 4096 -> 0 bytes .../sass/fontawesome/._fontawesome.scss | Bin 4096 -> 0 bytes .../assets/sass/fontawesome/_animated.scss | 20 - .../sass/fontawesome/_bordered-pulled.scss | 20 - resources/assets/sass/fontawesome/_core.scss | 16 - .../assets/sass/fontawesome/_fixed-width.scss | 6 - resources/assets/sass/fontawesome/_icons.scss | 946 - .../assets/sass/fontawesome/_larger.scss | 23 - resources/assets/sass/fontawesome/_list.scss | 18 - .../assets/sass/fontawesome/_mixins.scss | 57 - .../sass/fontawesome/_rotated-flipped.scss | 23 - .../sass/fontawesome/_screen-reader.scss | 5 - .../assets/sass/fontawesome/_stacked.scss | 31 - .../assets/sass/fontawesome/_variables.scss | 959 - .../assets/sass/fontawesome/fa-brands.scss | 21 - .../assets/sass/fontawesome/fa-light.scss | 22 - .../assets/sass/fontawesome/fa-regular.scss | 22 - .../assets/sass/fontawesome/fa-solid.scss | 23 - .../assets/sass/fontawesome/fontawesome.scss | 16 - resources/lang/de/app.php | 58 - resources/lang/en/app.php | 80 - resources/lang/en/auth.php | 19 - resources/lang/en/pagination.php | 19 - resources/lang/en/passwords.php | 22 - resources/lang/en/validation.php | 121 - resources/lang/es/app.php | 58 - resources/lang/fi/app.php | 58 - resources/lang/fr/app.php | 58 - resources/lang/sv/app.php | 58 - resources/lang/tr/app.php | 78 - resources/lang/tr/auth.php | 19 - resources/lang/tr/pagination.php | 19 - resources/lang/tr/passwords.php | 22 - resources/lang/tr/validation.php | 121 - resources/views/add.blade.php | 4 - resources/views/app.blade.php | 94 - resources/views/item.blade.php | 18 - resources/views/items/create.blade.php | 12 - resources/views/items/edit.blade.php | 12 - resources/views/items/form.blade.php | 76 - resources/views/items/list.blade.php | 55 - resources/views/items/scripts.blade.php | 34 - resources/views/items/trash.blade.php | 52 - resources/views/partials/search.blade.php | 1 - resources/views/settings/edit.blade.php | 9 - resources/views/settings/form.blade.php | 30 - resources/views/settings/list.blade.php | 52 - resources/views/sortable.blade.php | 6 - .../views/supportedapps/nzbget.blade.php | 15 - .../views/supportedapps/pihole.blade.php | 21 - .../views/supportedapps/sabnzbd.blade.php | 11 - resources/views/welcome.blade.php | 25 - routes/api.php | 15 - routes/channels.php | 16 - routes/console.php | 18 - routes/web.php | 51 - server.php | 21 - storage/app/.gitignore | 0 storage/app/public/.gitignore | 2 - .../app/public/supportedapps/duplicati.png | Bin 2615 -> 0 bytes storage/app/public/supportedapps/emby.png | Bin 2497 -> 0 bytes .../app/public/supportedapps/nextcloud.png | Bin 40577 -> 0 bytes storage/app/public/supportedapps/nzbget.png | Bin 4931 -> 0 bytes storage/app/public/supportedapps/pfsense.png | Bin 4695 -> 0 bytes storage/app/public/supportedapps/pihole.png | Bin 5791 -> 0 bytes storage/app/public/supportedapps/plex.png | Bin 11864 -> 0 bytes storage/app/public/supportedapps/plexpy.png | Bin 27116 -> 0 bytes .../app/public/supportedapps/portainer.png | Bin 2546 -> 0 bytes storage/app/public/supportedapps/sabnzbd.png | Bin 3852 -> 0 bytes storage/app/public/supportedapps/unifi.png | Bin 3601 -> 0 bytes storage/framework/.gitignore | 8 - storage/framework/cache/.gitignore | 2 - storage/framework/sessions/.gitignore | 2 - storage/framework/testing/.gitignore | 2 - storage/framework/views/.gitignore | 2 - storage/logs/.gitignore | 2 - tests/CreatesApplication.php | 25 - tests/Feature/ExampleTest.php | 21 - tests/TestCase.php | 10 - tests/Unit/ExampleTest.php | 19 - vendor/autoload.php | 7 - vendor/bin/php-parse | 1 - vendor/bin/phpunit | 1 - vendor/bin/psysh | 1 - vendor/composer/ClassLoader.php | 445 - vendor/composer/LICENSE | 21 - vendor/composer/autoload_classmap.php | 3420 ---- vendor/composer/autoload_files.php | 23 - vendor/composer/autoload_namespaces.php | 15 - vendor/composer/autoload_psr4.php | 54 - vendor/composer/autoload_real.php | 70 - vendor/composer/autoload_static.php | 3770 ---- vendor/composer/installed.json | 4389 ----- vendor/dnoegel/php-xdg-base-dir/.gitignore | 1 - vendor/dnoegel/php-xdg-base-dir/LICENSE | 19 - vendor/dnoegel/php-xdg-base-dir/README.md | 38 - vendor/dnoegel/php-xdg-base-dir/composer.json | 17 - .../dnoegel/php-xdg-base-dir/phpunit.xml.dist | 24 - vendor/dnoegel/php-xdg-base-dir/src/Xdg.php | 121 - .../php-xdg-base-dir/tests/XdgTest.php | 116 - vendor/doctrine/inflector/LICENSE | 19 - vendor/doctrine/inflector/README.md | 6 - vendor/doctrine/inflector/composer.json | 32 - .../Doctrine/Common/Inflector/Inflector.php | 499 - vendor/doctrine/instantiator/.gitignore | 5 - vendor/doctrine/instantiator/.scrutinizer.yml | 46 - .../doctrine/instantiator/.travis.install.sh | 14 - vendor/doctrine/instantiator/.travis.yml | 22 - vendor/doctrine/instantiator/CONTRIBUTING.md | 35 - vendor/doctrine/instantiator/LICENSE | 19 - vendor/doctrine/instantiator/README.md | 40 - vendor/doctrine/instantiator/composer.json | 45 - vendor/doctrine/instantiator/phpmd.xml.dist | 27 - vendor/doctrine/instantiator/phpunit.xml.dist | 22 - .../Exception/ExceptionInterface.php | 29 - .../Exception/InvalidArgumentException.php | 62 - .../Exception/UnexpectedValueException.php | 79 - .../Doctrine/Instantiator/Instantiator.php | 273 - .../Instantiator/InstantiatorInterface.php | 37 - .../InstantiatorPerformanceEvent.php | 96 - .../InvalidArgumentExceptionTest.php | 83 - .../UnexpectedValueExceptionTest.php | 69 - .../InstantiatorTest/InstantiatorTest.php | 219 - .../AbstractClassAsset.php | 29 - .../ArrayObjectAsset.php | 41 - .../InstantiatorTestAsset/ExceptionAsset.php | 41 - .../FinalExceptionAsset.php | 41 - .../InstantiatorTestAsset/PharAsset.php | 41 - .../PharExceptionAsset.php | 44 - .../SerializableArrayObjectAsset.php | 62 - .../SimpleSerializableAsset.php | 61 - .../SimpleTraitAsset.php | 29 - .../UnCloneableAsset.php | 50 - .../UnserializeExceptionArrayObjectAsset.php | 39 - .../WakeUpNoticesAsset.php | 38 - .../InstantiatorTestAsset/XMLReaderAsset.php | 41 - vendor/doctrine/lexer/LICENSE | 19 - vendor/doctrine/lexer/README.md | 5 - vendor/doctrine/lexer/composer.json | 24 - .../Doctrine/Common/Lexer/AbstractLexer.php | 327 - .../EmailValidator/EmailLexer.php | 221 - .../EmailValidator/EmailParser.php | 104 - .../EmailValidator/EmailValidator.php | 67 - .../Exception/AtextAfterCFWS.php | 9 - .../EmailValidator/Exception/CRLFAtTheEnd.php | 9 - .../EmailValidator/Exception/CRLFX2.php | 9 - .../EmailValidator/Exception/CRNoLF.php | 9 - .../Exception/CharNotAllowed.php | 9 - .../Exception/CommaInDomain.php | 9 - .../Exception/ConsecutiveAt.php | 9 - .../Exception/ConsecutiveDot.php | 9 - .../Exception/DomainHyphened.php | 9 - .../EmailValidator/Exception/DotAtEnd.php | 9 - .../EmailValidator/Exception/DotAtStart.php | 9 - .../EmailValidator/Exception/ExpectingAT.php | 9 - .../Exception/ExpectingATEXT.php | 9 - .../Exception/ExpectingCTEXT.php | 9 - .../Exception/ExpectingDTEXT.php | 9 - .../Exception/ExpectingDomainLiteralClose.php | 9 - .../Exception/ExpectingQPair.php | 9 - .../EmailValidator/Exception/InvalidEmail.php | 14 - .../EmailValidator/Exception/NoDNSRecord.php | 11 - .../EmailValidator/Exception/NoDomainPart.php | 9 - .../EmailValidator/Exception/NoLocalPart.php | 9 - .../Exception/UnclosedComment.php | 9 - .../Exception/UnclosedQuotedString.php | 9 - .../Exception/UnopenedComment.php | 9 - .../EmailValidator/Parser/DomainPart.php | 368 - .../EmailValidator/Parser/LocalPart.php | 138 - .../EmailValidator/Parser/Parser.php | 215 - .../Validation/DNSCheckValidation.php | 61 - .../Validation/EmailValidation.php | 34 - .../Validation/Error/RFCWarnings.php | 11 - .../Validation/Error/SpoofEmail.php | 11 - .../Exception/EmptyValidationList.php | 13 - .../Validation/MultipleErrors.php | 26 - .../Validation/MultipleValidationWithAnd.php | 110 - .../Validation/NoRFCWarningsValidation.php | 41 - .../Validation/RFCValidation.php | 49 - .../Validation/SpoofCheckValidation.php | 45 - .../EmailValidator/Warning/AddressLiteral.php | 14 - .../EmailValidator/Warning/CFWSNearAt.php | 13 - .../EmailValidator/Warning/CFWSWithFWS.php | 13 - .../EmailValidator/Warning/Comment.php | 13 - .../Warning/DeprecatedComment.php | 13 - .../EmailValidator/Warning/DomainLiteral.php | 14 - .../EmailValidator/Warning/DomainTooLong.php | 14 - .../EmailValidator/Warning/EmailTooLong.php | 15 - .../EmailValidator/Warning/IPV6BadChar.php | 14 - .../EmailValidator/Warning/IPV6ColonEnd.php | 14 - .../EmailValidator/Warning/IPV6ColonStart.php | 14 - .../EmailValidator/Warning/IPV6Deprecated.php | 14 - .../Warning/IPV6DoubleColon.php | 14 - .../EmailValidator/Warning/IPV6GroupCount.php | 14 - .../EmailValidator/Warning/IPV6MaxGroups.php | 14 - .../EmailValidator/Warning/LabelTooLong.php | 14 - .../EmailValidator/Warning/LocalTooLong.php | 15 - .../EmailValidator/Warning/NoDNSMXRecord.php | 14 - .../EmailValidator/Warning/ObsoleteDTEXT.php | 14 - .../EmailValidator/Warning/QuotedPart.php | 13 - .../EmailValidator/Warning/QuotedString.php | 13 - .../EmailValidator/Warning/TLD.php | 13 - .../EmailValidator/Warning/Warning.php | 30 - vendor/egulias/email-validator/LICENSE | 19 - vendor/egulias/email-validator/README.md | 79 - vendor/egulias/email-validator/composer.json | 39 - vendor/egulias/email-validator/composer.lock | 1813 -- .../egulias/email-validator/phpunit.xml.dist | 26 - vendor/erusev/parsedown/LICENSE.txt | 20 - vendor/erusev/parsedown/Parsedown.php | 1548 -- vendor/erusev/parsedown/README.md | 61 - vendor/erusev/parsedown/composer.json | 24 - vendor/fideloper/proxy/LICENSE.md | 13 - vendor/fideloper/proxy/composer.json | 38 - .../fideloper/proxy/config/trustedproxy.php | 71 - vendor/fideloper/proxy/src/TrustProxies.php | 181 - .../proxy/src/TrustedProxyServiceProvider.php | 38 - vendor/filp/whoops/CHANGELOG.md | 13 - vendor/filp/whoops/LICENSE.md | 19 - vendor/filp/whoops/composer.json | 42 - .../src/Whoops/Exception/ErrorException.php | 17 - .../whoops/src/Whoops/Exception/Formatter.php | 73 - .../whoops/src/Whoops/Exception/Frame.php | 296 - .../src/Whoops/Exception/FrameCollection.php | 203 - .../whoops/src/Whoops/Exception/Inspector.php | 276 - .../src/Whoops/Handler/CallbackHandler.php | 52 - .../whoops/src/Whoops/Handler/Handler.php | 95 - .../src/Whoops/Handler/HandlerInterface.php | 36 - .../Whoops/Handler/JsonResponseHandler.php | 88 - .../src/Whoops/Handler/PlainTextHandler.php | 314 - .../src/Whoops/Handler/PrettyPageHandler.php | 706 - .../src/Whoops/Handler/XmlResponseHandler.php | 107 - .../src/Whoops/Resources/css/whoops.base.css | 550 - .../src/Whoops/Resources/js/clipboard.min.js | 7 - .../src/Whoops/Resources/js/prettify.min.js | 28 - .../src/Whoops/Resources/js/whoops.base.js | 210 - .../src/Whoops/Resources/js/zepto.min.js | 2 - .../Resources/views/env_details.html.php | 42 - .../Resources/views/frame_code.html.php | 63 - .../Resources/views/frame_list.html.php | 17 - .../Resources/views/frames_container.html.php | 3 - .../views/frames_description.html.php | 20 - .../Whoops/Resources/views/header.html.php | 74 - .../Resources/views/header_outer.html.php | 3 - .../Whoops/Resources/views/layout.html.php | 32 - .../Resources/views/panel_details.html.php | 2 - .../views/panel_details_outer.html.php | 3 - .../Resources/views/panel_left.html.php | 3 - .../Resources/views/panel_left_outer.html.php | 3 - vendor/filp/whoops/src/Whoops/Run.php | 410 - .../filp/whoops/src/Whoops/RunInterface.php | 131 - .../src/Whoops/Util/HtmlDumperOutput.php | 36 - vendor/filp/whoops/src/Whoops/Util/Misc.php | 77 - .../whoops/src/Whoops/Util/SystemFacade.php | 137 - .../whoops/src/Whoops/Util/TemplateHelper.php | 352 - vendor/fzaninotto/faker/.gitignore | 2 - vendor/fzaninotto/faker/.travis.yml | 24 - vendor/fzaninotto/faker/CHANGELOG.md | 561 - vendor/fzaninotto/faker/CONTRIBUTING.md | 22 - vendor/fzaninotto/faker/LICENSE | 22 - vendor/fzaninotto/faker/Makefile | 10 - vendor/fzaninotto/faker/composer.json | 35 - vendor/fzaninotto/faker/phpunit.xml.dist | 12 - vendor/fzaninotto/faker/readme.md | 1546 -- .../faker/src/Faker/Calculator/Iban.php | 73 - .../faker/src/Faker/Calculator/Inn.php | 34 - .../faker/src/Faker/Calculator/Luhn.php | 75 - .../faker/src/Faker/DefaultGenerator.php | 38 - .../fzaninotto/faker/src/Faker/Documentor.php | 66 - vendor/fzaninotto/faker/src/Faker/Factory.php | 61 - .../fzaninotto/faker/src/Faker/Generator.php | 281 - .../faker/src/Faker/Guesser/Name.php | 156 - .../Faker/ORM/CakePHP/ColumnTypeGuesser.php | 67 - .../src/Faker/ORM/CakePHP/EntityPopulator.php | 166 - .../faker/src/Faker/ORM/CakePHP/Populator.php | 109 - .../Faker/ORM/Doctrine/ColumnTypeGuesser.php | 75 - .../Faker/ORM/Doctrine/EntityPopulator.php | 251 - .../src/Faker/ORM/Doctrine/Populator.php | 82 - .../Faker/ORM/Mandango/ColumnTypeGuesser.php | 49 - .../Faker/ORM/Mandango/EntityPopulator.php | 122 - .../src/Faker/ORM/Mandango/Populator.php | 65 - .../Faker/ORM/Propel/ColumnTypeGuesser.php | 107 - .../src/Faker/ORM/Propel/EntityPopulator.php | 191 - .../faker/src/Faker/ORM/Propel/Populator.php | 89 - .../Faker/ORM/Propel2/ColumnTypeGuesser.php | 107 - .../src/Faker/ORM/Propel2/EntityPopulator.php | 192 - .../faker/src/Faker/ORM/Propel2/Populator.php | 92 - .../src/Faker/ORM/Spot/ColumnTypeGuesser.php | 77 - .../src/Faker/ORM/Spot/EntityPopulator.php | 222 - .../faker/src/Faker/ORM/Spot/Populator.php | 88 - .../faker/src/Faker/Provider/Address.php | 139 - .../faker/src/Faker/Provider/Barcode.php | 114 - .../faker/src/Faker/Provider/Base.php | 590 - .../faker/src/Faker/Provider/Biased.php | 64 - .../faker/src/Faker/Provider/Color.php | 116 - .../faker/src/Faker/Provider/Company.php | 44 - .../faker/src/Faker/Provider/DateTime.php | 303 - .../faker/src/Faker/Provider/File.php | 606 - .../faker/src/Faker/Provider/HtmlLorem.php | 277 - .../faker/src/Faker/Provider/Image.php | 109 - .../faker/src/Faker/Provider/Internet.php | 362 - .../faker/src/Faker/Provider/Lorem.php | 203 - .../src/Faker/Provider/Miscellaneous.php | 319 - .../faker/src/Faker/Provider/Payment.php | 284 - .../faker/src/Faker/Provider/Person.php | 126 - .../faker/src/Faker/Provider/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/Text.php | 141 - .../faker/src/Faker/Provider/UserAgent.php | 165 - .../faker/src/Faker/Provider/Uuid.php | 57 - .../src/Faker/Provider/ar_JO/Address.php | 152 - .../src/Faker/Provider/ar_JO/Company.php | 63 - .../src/Faker/Provider/ar_JO/Internet.php | 55 - .../faker/src/Faker/Provider/ar_JO/Person.php | 108 - .../faker/src/Faker/Provider/ar_JO/Text.php | 271 - .../src/Faker/Provider/ar_SA/Address.php | 146 - .../faker/src/Faker/Provider/ar_SA/Color.php | 81 - .../src/Faker/Provider/ar_SA/Company.php | 74 - .../src/Faker/Provider/ar_SA/Internet.php | 55 - .../src/Faker/Provider/ar_SA/Payment.php | 19 - .../faker/src/Faker/Provider/ar_SA/Person.php | 118 - .../faker/src/Faker/Provider/ar_SA/Text.php | 271 - .../src/Faker/Provider/at_AT/Payment.php | 44 - .../src/Faker/Provider/bg_BG/Internet.php | 9 - .../src/Faker/Provider/bg_BG/Payment.php | 43 - .../faker/src/Faker/Provider/bg_BG/Person.php | 114 - .../src/Faker/Provider/bg_BG/PhoneNumber.php | 20 - .../src/Faker/Provider/bn_BD/Address.php | 310 - .../src/Faker/Provider/bn_BD/Company.php | 28 - .../faker/src/Faker/Provider/bn_BD/Person.php | 36 - .../src/Faker/Provider/bn_BD/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/bn_BD/Utils.php | 14 - .../src/Faker/Provider/cs_CZ/Address.php | 149 - .../src/Faker/Provider/cs_CZ/Company.php | 120 - .../src/Faker/Provider/cs_CZ/DateTime.php | 61 - .../src/Faker/Provider/cs_CZ/Internet.php | 9 - .../src/Faker/Provider/cs_CZ/Payment.php | 19 - .../faker/src/Faker/Provider/cs_CZ/Person.php | 533 - .../src/Faker/Provider/cs_CZ/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/cs_CZ/Text.php | 7185 ------- .../src/Faker/Provider/da_DK/Address.php | 287 - .../src/Faker/Provider/da_DK/Company.php | 70 - .../src/Faker/Provider/da_DK/Internet.php | 30 - .../src/Faker/Provider/da_DK/Payment.php | 19 - .../faker/src/Faker/Provider/da_DK/Person.php | 195 - .../src/Faker/Provider/da_DK/PhoneNumber.php | 21 - .../src/Faker/Provider/de_AT/Address.php | 116 - .../src/Faker/Provider/de_AT/Company.php | 13 - .../src/Faker/Provider/de_AT/Internet.php | 9 - .../src/Faker/Provider/de_AT/Payment.php | 19 - .../faker/src/Faker/Provider/de_AT/Person.php | 120 - .../src/Faker/Provider/de_AT/PhoneNumber.php | 19 - .../faker/src/Faker/Provider/de_AT/Text.php | 7 - .../src/Faker/Provider/de_CH/Address.php | 185 - .../src/Faker/Provider/de_CH/Company.php | 15 - .../src/Faker/Provider/de_CH/Internet.php | 9 - .../src/Faker/Provider/de_CH/Payment.php | 19 - .../faker/src/Faker/Provider/de_CH/Person.php | 89 - .../src/Faker/Provider/de_CH/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/de_CH/Text.php | 2036 -- .../src/Faker/Provider/de_DE/Address.php | 125 - .../src/Faker/Provider/de_DE/Company.php | 15 - .../src/Faker/Provider/de_DE/Internet.php | 9 - .../src/Faker/Provider/de_DE/Payment.php | 56 - .../faker/src/Faker/Provider/de_DE/Person.php | 129 - .../src/Faker/Provider/de_DE/PhoneNumber.php | 20 - .../faker/src/Faker/Provider/de_DE/Text.php | 2036 -- .../src/Faker/Provider/el_CY/Address.php | 55 - .../src/Faker/Provider/el_CY/Company.php | 18 - .../src/Faker/Provider/el_CY/Internet.php | 9 - .../src/Faker/Provider/el_CY/Payment.php | 49 - .../faker/src/Faker/Provider/el_CY/Person.php | 97 - .../src/Faker/Provider/el_CY/PhoneNumber.php | 32 - .../src/Faker/Provider/el_GR/Address.php | 61 - .../src/Faker/Provider/el_GR/Company.php | 84 - .../src/Faker/Provider/el_GR/Payment.php | 19 - .../faker/src/Faker/Provider/el_GR/Person.php | 178 - .../src/Faker/Provider/el_GR/PhoneNumber.php | 85 - .../faker/src/Faker/Provider/el_GR/Text.php | 2581 --- .../src/Faker/Provider/en_AU/Address.php | 110 - .../src/Faker/Provider/en_AU/Internet.php | 9 - .../src/Faker/Provider/en_AU/PhoneNumber.php | 56 - .../src/Faker/Provider/en_CA/Address.php | 64 - .../src/Faker/Provider/en_CA/PhoneNumber.php | 18 - .../src/Faker/Provider/en_GB/Address.php | 143 - .../src/Faker/Provider/en_GB/Internet.php | 9 - .../src/Faker/Provider/en_GB/Payment.php | 19 - .../faker/src/Faker/Provider/en_GB/Person.php | 93 - .../src/Faker/Provider/en_GB/PhoneNumber.php | 43 - .../src/Faker/Provider/en_HK/Address.php | 240 - .../src/Faker/Provider/en_HK/Internet.php | 14 - .../src/Faker/Provider/en_HK/PhoneNumber.php | 38 - .../src/Faker/Provider/en_IN/Address.php | 182 - .../src/Faker/Provider/en_IN/Internet.php | 9 - .../faker/src/Faker/Provider/en_IN/Person.php | 127 - .../src/Faker/Provider/en_IN/PhoneNumber.php | 35 - .../src/Faker/Provider/en_NG/Address.php | 98 - .../src/Faker/Provider/en_NG/Internet.php | 8 - .../faker/src/Faker/Provider/en_NG/Person.php | 91 - .../src/Faker/Provider/en_NG/PhoneNumber.php | 133 - .../src/Faker/Provider/en_NZ/Address.php | 78 - .../src/Faker/Provider/en_NZ/Internet.php | 14 - .../src/Faker/Provider/en_NZ/PhoneNumber.php | 93 - .../src/Faker/Provider/en_PH/Address.php | 417 - .../src/Faker/Provider/en_PH/PhoneNumber.php | 58 - .../src/Faker/Provider/en_SG/Address.php | 126 - .../src/Faker/Provider/en_SG/PhoneNumber.php | 110 - .../src/Faker/Provider/en_UG/Address.php | 101 - .../src/Faker/Provider/en_UG/Internet.php | 9 - .../faker/src/Faker/Provider/en_UG/Person.php | 132 - .../src/Faker/Provider/en_UG/PhoneNumber.php | 17 - .../src/Faker/Provider/en_US/Address.php | 97 - .../src/Faker/Provider/en_US/Company.php | 93 - .../src/Faker/Provider/en_US/Payment.php | 38 - .../faker/src/Faker/Provider/en_US/Person.php | 131 - .../src/Faker/Provider/en_US/PhoneNumber.php | 108 - .../faker/src/Faker/Provider/en_US/Text.php | 3720 ---- .../src/Faker/Provider/en_ZA/Address.php | 70 - .../src/Faker/Provider/en_ZA/Company.php | 29 - .../src/Faker/Provider/en_ZA/Internet.php | 18 - .../faker/src/Faker/Provider/en_ZA/Person.php | 164 - .../src/Faker/Provider/en_ZA/PhoneNumber.php | 100 - .../src/Faker/Provider/es_AR/Address.php | 68 - .../src/Faker/Provider/es_AR/Company.php | 66 - .../faker/src/Faker/Provider/es_AR/Person.php | 90 - .../src/Faker/Provider/es_AR/PhoneNumber.php | 42 - .../src/Faker/Provider/es_ES/Address.php | 101 - .../src/Faker/Provider/es_ES/Company.php | 80 - .../src/Faker/Provider/es_ES/Internet.php | 9 - .../src/Faker/Provider/es_ES/Payment.php | 39 - .../faker/src/Faker/Provider/es_ES/Person.php | 88 - .../src/Faker/Provider/es_ES/PhoneNumber.php | 29 - .../faker/src/Faker/Provider/es_ES/Text.php | 687 - .../src/Faker/Provider/es_PE/Address.php | 65 - .../src/Faker/Provider/es_PE/Company.php | 66 - .../faker/src/Faker/Provider/es_PE/Person.php | 106 - .../src/Faker/Provider/es_PE/PhoneNumber.php | 17 - .../src/Faker/Provider/es_VE/Address.php | 72 - .../src/Faker/Provider/es_VE/Company.php | 30 - .../src/Faker/Provider/es_VE/Internet.php | 9 - .../faker/src/Faker/Provider/es_VE/Person.php | 166 - .../src/Faker/Provider/es_VE/PhoneNumber.php | 29 - .../src/Faker/Provider/fa_IR/Address.php | 100 - .../src/Faker/Provider/fa_IR/Company.php | 57 - .../src/Faker/Provider/fa_IR/Internet.php | 102 - .../faker/src/Faker/Provider/fa_IR/Person.php | 137 - .../src/Faker/Provider/fa_IR/PhoneNumber.php | 46 - .../faker/src/Faker/Provider/fa_IR/Text.php | 546 - .../src/Faker/Provider/fi_FI/Address.php | 85 - .../src/Faker/Provider/fi_FI/Company.php | 64 - .../src/Faker/Provider/fi_FI/Internet.php | 9 - .../src/Faker/Provider/fi_FI/Payment.php | 19 - .../faker/src/Faker/Provider/fi_FI/Person.php | 145 - .../src/Faker/Provider/fi_FI/PhoneNumber.php | 99 - .../src/Faker/Provider/fr_BE/Address.php | 72 - .../src/Faker/Provider/fr_BE/Company.php | 13 - .../src/Faker/Provider/fr_BE/Internet.php | 9 - .../src/Faker/Provider/fr_BE/Payment.php | 39 - .../faker/src/Faker/Provider/fr_BE/Person.php | 49 - .../src/Faker/Provider/fr_BE/PhoneNumber.php | 20 - .../src/Faker/Provider/fr_CA/Address.php | 125 - .../src/Faker/Provider/fr_CA/Company.php | 7 - .../faker/src/Faker/Provider/fr_CA/Person.php | 82 - .../src/Faker/Provider/fr_CH/Address.php | 140 - .../src/Faker/Provider/fr_CH/Company.php | 15 - .../src/Faker/Provider/fr_CH/Internet.php | 9 - .../src/Faker/Provider/fr_CH/Payment.php | 19 - .../faker/src/Faker/Provider/fr_CH/Person.php | 90 - .../src/Faker/Provider/fr_CH/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/fr_CH/Text.php | 8 - .../src/Faker/Provider/fr_FR/Address.php | 137 - .../src/Faker/Provider/fr_FR/Company.php | 476 - .../src/Faker/Provider/fr_FR/Internet.php | 9 - .../src/Faker/Provider/fr_FR/Payment.php | 39 - .../faker/src/Faker/Provider/fr_FR/Person.php | 129 - .../src/Faker/Provider/fr_FR/PhoneNumber.php | 89 - .../faker/src/Faker/Provider/fr_FR/Text.php | 15531 ---------------- .../src/Faker/Provider/he_IL/Address.php | 122 - .../src/Faker/Provider/he_IL/Company.php | 14 - .../src/Faker/Provider/he_IL/Payment.php | 19 - .../faker/src/Faker/Provider/he_IL/Person.php | 132 - .../src/Faker/Provider/he_IL/PhoneNumber.php | 14 - .../src/Faker/Provider/hr_HR/Address.php | 69 - .../src/Faker/Provider/hr_HR/Company.php | 25 - .../src/Faker/Provider/hr_HR/Payment.php | 19 - .../faker/src/Faker/Provider/hr_HR/Person.php | 27 - .../src/Faker/Provider/hr_HR/PhoneNumber.php | 14 - .../src/Faker/Provider/hu_HU/Address.php | 149 - .../src/Faker/Provider/hu_HU/Company.php | 13 - .../src/Faker/Provider/hu_HU/Payment.php | 19 - .../faker/src/Faker/Provider/hu_HU/Person.php | 91 - .../src/Faker/Provider/hu_HU/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/hu_HU/Text.php | 3407 ---- .../src/Faker/Provider/hy_AM/Address.php | 132 - .../faker/src/Faker/Provider/hy_AM/Color.php | 12 - .../src/Faker/Provider/hy_AM/Company.php | 54 - .../src/Faker/Provider/hy_AM/Internet.php | 9 - .../faker/src/Faker/Provider/hy_AM/Person.php | 112 - .../src/Faker/Provider/hy_AM/PhoneNumber.php | 40 - .../src/Faker/Provider/id_ID/Address.php | 316 - .../src/Faker/Provider/id_ID/Company.php | 43 - .../src/Faker/Provider/id_ID/Internet.php | 25 - .../faker/src/Faker/Provider/id_ID/Person.php | 293 - .../src/Faker/Provider/id_ID/PhoneNumber.php | 55 - .../src/Faker/Provider/is_IS/Address.php | 178 - .../src/Faker/Provider/is_IS/Company.php | 53 - .../src/Faker/Provider/is_IS/Internet.php | 23 - .../src/Faker/Provider/is_IS/Payment.php | 19 - .../faker/src/Faker/Provider/is_IS/Person.php | 140 - .../src/Faker/Provider/is_IS/PhoneNumber.php | 20 - .../src/Faker/Provider/it_CH/Address.php | 139 - .../src/Faker/Provider/it_CH/Company.php | 15 - .../src/Faker/Provider/it_CH/Internet.php | 9 - .../src/Faker/Provider/it_CH/Payment.php | 19 - .../faker/src/Faker/Provider/it_CH/Person.php | 88 - .../src/Faker/Provider/it_CH/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/it_CH/Text.php | 8 - .../src/Faker/Provider/it_IT/Address.php | 97 - .../src/Faker/Provider/it_IT/Company.php | 74 - .../src/Faker/Provider/it_IT/Internet.php | 9 - .../src/Faker/Provider/it_IT/Payment.php | 19 - .../faker/src/Faker/Provider/it_IT/Person.php | 98 - .../src/Faker/Provider/it_IT/PhoneNumber.php | 21 - .../faker/src/Faker/Provider/it_IT/Text.php | 1994 -- .../src/Faker/Provider/ja_JP/Address.php | 137 - .../src/Faker/Provider/ja_JP/Company.php | 17 - .../src/Faker/Provider/ja_JP/Internet.php | 93 - .../faker/src/Faker/Provider/ja_JP/Person.php | 141 - .../src/Faker/Provider/ja_JP/PhoneNumber.php | 19 - .../faker/src/Faker/Provider/ja_JP/Text.php | 635 - .../src/Faker/Provider/ka_GE/Address.php | 140 - .../faker/src/Faker/Provider/ka_GE/Color.php | 16 - .../src/Faker/Provider/ka_GE/Company.php | 55 - .../src/Faker/Provider/ka_GE/DateTime.php | 42 - .../src/Faker/Provider/ka_GE/Internet.php | 15 - .../src/Faker/Provider/ka_GE/Payment.php | 53 - .../faker/src/Faker/Provider/ka_GE/Person.php | 63 - .../src/Faker/Provider/ka_GE/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/ka_GE/Text.php | 1000 - .../src/Faker/Provider/kk_KZ/Address.php | 105 - .../faker/src/Faker/Provider/kk_KZ/Color.php | 12 - .../src/Faker/Provider/kk_KZ/Company.php | 72 - .../src/Faker/Provider/kk_KZ/Internet.php | 9 - .../src/Faker/Provider/kk_KZ/Payment.php | 33 - .../faker/src/Faker/Provider/kk_KZ/Person.php | 254 - .../src/Faker/Provider/kk_KZ/PhoneNumber.php | 16 - .../faker/src/Faker/Provider/kk_KZ/Text.php | 490 - .../src/Faker/Provider/ko_KR/Address.php | 96 - .../src/Faker/Provider/ko_KR/Company.php | 31 - .../src/Faker/Provider/ko_KR/Internet.php | 86 - .../faker/src/Faker/Provider/ko_KR/Person.php | 55 - .../src/Faker/Provider/ko_KR/PhoneNumber.php | 17 - .../faker/src/Faker/Provider/ko_KR/Text.php | 1723 -- .../src/Faker/Provider/lt_LT/Address.php | 131 - .../src/Faker/Provider/lt_LT/Company.php | 15 - .../src/Faker/Provider/lt_LT/Internet.php | 18 - .../src/Faker/Provider/lt_LT/Payment.php | 19 - .../faker/src/Faker/Provider/lt_LT/Person.php | 350 - .../src/Faker/Provider/lt_LT/PhoneNumber.php | 17 - .../src/Faker/Provider/lv_LV/Address.php | 114 - .../faker/src/Faker/Provider/lv_LV/Color.php | 19 - .../src/Faker/Provider/lv_LV/Internet.php | 9 - .../src/Faker/Provider/lv_LV/Payment.php | 19 - .../faker/src/Faker/Provider/lv_LV/Person.php | 128 - .../src/Faker/Provider/lv_LV/PhoneNumber.php | 15 - .../src/Faker/Provider/me_ME/Address.php | 119 - .../src/Faker/Provider/me_ME/Company.php | 49 - .../src/Faker/Provider/me_ME/Payment.php | 19 - .../faker/src/Faker/Provider/me_ME/Person.php | 102 - .../src/Faker/Provider/me_ME/PhoneNumber.php | 15 - .../faker/src/Faker/Provider/mn_MN/Person.php | 100 - .../src/Faker/Provider/mn_MN/PhoneNumber.php | 13 - .../src/Faker/Provider/nb_NO/Address.php | 195 - .../src/Faker/Provider/nb_NO/Company.php | 19 - .../src/Faker/Provider/nb_NO/Payment.php | 19 - .../faker/src/Faker/Provider/nb_NO/Person.php | 326 - .../src/Faker/Provider/nb_NO/PhoneNumber.php | 22 - .../src/Faker/Provider/ne_NP/Address.php | 129 - .../src/Faker/Provider/ne_NP/Internet.php | 32 - .../faker/src/Faker/Provider/ne_NP/Person.php | 121 - .../src/Faker/Provider/ne_NP/PhoneNumber.php | 19 - .../src/Faker/Provider/nl_BE/Address.php | 124 - .../src/Faker/Provider/nl_BE/Company.php | 13 - .../src/Faker/Provider/nl_BE/Internet.php | 9 - .../src/Faker/Provider/nl_BE/Payment.php | 39 - .../faker/src/Faker/Provider/nl_BE/Person.php | 72 - .../src/Faker/Provider/nl_BE/PhoneNumber.php | 20 - .../src/Faker/Provider/nl_NL/Address.php | 112 - .../faker/src/Faker/Provider/nl_NL/Color.php | 36 - .../src/Faker/Provider/nl_NL/Company.php | 39 - .../src/Faker/Provider/nl_NL/Internet.php | 9 - .../src/Faker/Provider/nl_NL/Payment.php | 19 - .../faker/src/Faker/Provider/nl_NL/Person.php | 317 - .../src/Faker/Provider/nl_NL/PhoneNumber.php | 39 - .../faker/src/Faker/Provider/nl_NL/Text.php | 3932 ---- .../src/Faker/Provider/pl_PL/Address.php | 210 - .../src/Faker/Provider/pl_PL/Company.php | 80 - .../src/Faker/Provider/pl_PL/Internet.php | 9 - .../src/Faker/Provider/pl_PL/Payment.php | 120 - .../faker/src/Faker/Provider/pl_PL/Person.php | 226 - .../src/Faker/Provider/pl_PL/PhoneNumber.php | 18 - .../faker/src/Faker/Provider/pl_PL/Text.php | 2866 --- .../src/Faker/Provider/pt_BR/Address.php | 154 - .../src/Faker/Provider/pt_BR/Company.php | 33 - .../src/Faker/Provider/pt_BR/Internet.php | 9 - .../src/Faker/Provider/pt_BR/Payment.php | 72 - .../faker/src/Faker/Provider/pt_BR/Person.php | 133 - .../src/Faker/Provider/pt_BR/PhoneNumber.php | 124 - .../src/Faker/Provider/pt_BR/check_digit.php | 35 - .../src/Faker/Provider/pt_PT/Address.php | 124 - .../src/Faker/Provider/pt_PT/Payment.php | 19 - .../faker/src/Faker/Provider/pt_PT/Person.php | 146 - .../src/Faker/Provider/pt_PT/PhoneNumber.php | 50 - .../src/Faker/Provider/ro_MD/Address.php | 148 - .../src/Faker/Provider/ro_MD/Payment.php | 19 - .../faker/src/Faker/Provider/ro_MD/Person.php | 90 - .../src/Faker/Provider/ro_MD/PhoneNumber.php | 33 - .../faker/src/Faker/Provider/ro_MD/Text.php | 2463 --- .../src/Faker/Provider/ro_RO/Address.php | 176 - .../src/Faker/Provider/ro_RO/Payment.php | 19 - .../faker/src/Faker/Provider/ro_RO/Person.php | 238 - .../src/Faker/Provider/ro_RO/PhoneNumber.php | 67 - .../faker/src/Faker/Provider/ro_RO/Text.php | 154 - .../src/Faker/Provider/ru_RU/Address.php | 156 - .../faker/src/Faker/Provider/ru_RU/Color.php | 23 - .../src/Faker/Provider/ru_RU/Company.php | 94 - .../src/Faker/Provider/ru_RU/Internet.php | 9 - .../src/Faker/Provider/ru_RU/Payment.php | 811 - .../faker/src/Faker/Provider/ru_RU/Person.php | 157 - .../src/Faker/Provider/ru_RU/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/ru_RU/Text.php | 4543 ----- .../src/Faker/Provider/sk_SK/Address.php | 344 - .../src/Faker/Provider/sk_SK/Company.php | 64 - .../src/Faker/Provider/sk_SK/Internet.php | 9 - .../src/Faker/Provider/sk_SK/Payment.php | 19 - .../faker/src/Faker/Provider/sk_SK/Person.php | 168 - .../src/Faker/Provider/sk_SK/PhoneNumber.php | 15 - .../src/Faker/Provider/sl_SI/Address.php | 107 - .../src/Faker/Provider/sl_SI/Internet.php | 11 - .../src/Faker/Provider/sl_SI/Payment.php | 19 - .../faker/src/Faker/Provider/sl_SI/Person.php | 149 - .../src/Faker/Provider/sl_SI/PhoneNumber.php | 18 - .../src/Faker/Provider/sr_Cyrl_RS/Address.php | 58 - .../src/Faker/Provider/sr_Cyrl_RS/Payment.php | 19 - .../src/Faker/Provider/sr_Cyrl_RS/Person.php | 242 - .../src/Faker/Provider/sr_Latn_RS/Address.php | 58 - .../src/Faker/Provider/sr_Latn_RS/Payment.php | 19 - .../src/Faker/Provider/sr_Latn_RS/Person.php | 213 - .../src/Faker/Provider/sr_RS/Address.php | 58 - .../src/Faker/Provider/sr_RS/Payment.php | 19 - .../faker/src/Faker/Provider/sr_RS/Person.php | 145 - .../src/Faker/Provider/sv_SE/Address.php | 150 - .../src/Faker/Provider/sv_SE/Company.php | 26 - .../src/Faker/Provider/sv_SE/Payment.php | 19 - .../faker/src/Faker/Provider/sv_SE/Person.php | 143 - .../src/Faker/Provider/sv_SE/PhoneNumber.php | 37 - .../src/Faker/Provider/th_TH/Address.php | 101 - .../src/Faker/Provider/th_TH/Company.php | 32 - .../src/Faker/Provider/th_TH/Internet.php | 8 - .../src/Faker/Provider/th_TH/Payment.php | 43 - .../src/Faker/Provider/th_TH/PhoneNumber.php | 35 - .../src/Faker/Provider/tr_TR/Address.php | 93 - .../faker/src/Faker/Provider/tr_TR/Color.php | 58 - .../src/Faker/Provider/tr_TR/DateTime.php | 46 - .../src/Faker/Provider/tr_TR/Internet.php | 9 - .../src/Faker/Provider/tr_TR/Payment.php | 19 - .../faker/src/Faker/Provider/tr_TR/Person.php | 97 - .../src/Faker/Provider/tr_TR/PhoneNumber.php | 33 - .../src/Faker/Provider/uk_UA/Address.php | 362 - .../faker/src/Faker/Provider/uk_UA/Color.php | 23 - .../src/Faker/Provider/uk_UA/Company.php | 74 - .../src/Faker/Provider/uk_UA/Internet.php | 9 - .../src/Faker/Provider/uk_UA/Payment.php | 41 - .../faker/src/Faker/Provider/uk_UA/Person.php | 99 - .../src/Faker/Provider/uk_UA/PhoneNumber.php | 51 - .../faker/src/Faker/Provider/uk_UA/Text.php | 4511 ----- .../src/Faker/Provider/vi_VN/Address.php | 170 - .../faker/src/Faker/Provider/vi_VN/Color.php | 36 - .../src/Faker/Provider/vi_VN/Internet.php | 8 - .../faker/src/Faker/Provider/vi_VN/Person.php | 184 - .../src/Faker/Provider/vi_VN/PhoneNumber.php | 61 - .../src/Faker/Provider/zh_CN/Address.php | 149 - .../faker/src/Faker/Provider/zh_CN/Color.php | 66 - .../src/Faker/Provider/zh_CN/Company.php | 234 - .../src/Faker/Provider/zh_CN/DateTime.php | 46 - .../src/Faker/Provider/zh_CN/Internet.php | 24 - .../src/Faker/Provider/zh_CN/Payment.php | 41 - .../faker/src/Faker/Provider/zh_CN/Person.php | 79 - .../src/Faker/Provider/zh_CN/PhoneNumber.php | 23 - .../src/Faker/Provider/zh_TW/Address.php | 419 - .../faker/src/Faker/Provider/zh_TW/Color.php | 66 - .../src/Faker/Provider/zh_TW/Company.php | 265 - .../src/Faker/Provider/zh_TW/DateTime.php | 46 - .../src/Faker/Provider/zh_TW/Internet.php | 16 - .../src/Faker/Provider/zh_TW/Payment.php | 11 - .../faker/src/Faker/Provider/zh_TW/Person.php | 201 - .../src/Faker/Provider/zh_TW/PhoneNumber.php | 19 - .../faker/src/Faker/Provider/zh_TW/Text.php | 196 - .../faker/src/Faker/UniqueGenerator.php | 58 - .../faker/src/Faker/ValidGenerator.php | 65 - vendor/fzaninotto/faker/src/autoload.php | 26 - .../faker/test/Faker/Calculator/IbanTest.php | 305 - .../faker/test/Faker/Calculator/InnTest.php | 50 - .../faker/test/Faker/Calculator/LuhnTest.php | 71 - .../faker/test/Faker/DefaultGeneratorTest.php | 27 - .../faker/test/Faker/GeneratorTest.php | 147 - .../faker/test/Faker/Provider/AddressTest.php | 46 - .../faker/test/Faker/Provider/BarcodeTest.php | 45 - .../faker/test/Faker/Provider/BaseTest.php | 555 - .../faker/test/Faker/Provider/BiasedTest.php | 73 - .../faker/test/Faker/Provider/ColorTest.php | 53 - .../faker/test/Faker/Provider/CompanyTest.php | 30 - .../test/Faker/Provider/DateTimeTest.php | 232 - .../test/Faker/Provider/HtmlLoremTest.php | 29 - .../faker/test/Faker/Provider/ImageTest.php | 75 - .../test/Faker/Provider/InternetTest.php | 166 - .../test/Faker/Provider/LocalizationTest.php | 26 - .../faker/test/Faker/Provider/LoremTest.php | 108 - .../test/Faker/Provider/MiscellaneousTest.php | 58 - .../faker/test/Faker/Provider/PaymentTest.php | 207 - .../faker/test/Faker/Provider/PersonTest.php | 86 - .../test/Faker/Provider/PhoneNumberTest.php | 35 - .../Faker/Provider/ProviderOverrideTest.php | 193 - .../faker/test/Faker/Provider/TextTest.php | 54 - .../test/Faker/Provider/UserAgentTest.php | 38 - .../faker/test/Faker/Provider/UuidTest.php | 28 - .../Faker/Provider/ar_JO/InternetTest.php | 32 - .../Faker/Provider/ar_SA/InternetTest.php | 32 - .../test/Faker/Provider/at_AT/PaymentTest.php | 30 - .../test/Faker/Provider/bg_BG/PaymentTest.php | 30 - .../test/Faker/Provider/bn_BD/PersonTest.php | 29 - .../test/Faker/Provider/cs_CZ/PersonTest.php | 46 - .../Faker/Provider/da_DK/InternetTest.php | 32 - .../Faker/Provider/de_AT/InternetTest.php | 32 - .../Faker/Provider/de_AT/PhoneNumberTest.php | 28 - .../test/Faker/Provider/de_CH/AddressTest.php | 69 - .../Faker/Provider/de_CH/InternetTest.php | 35 - .../Faker/Provider/de_CH/PhoneNumberTest.php | 32 - .../Faker/Provider/de_DE/InternetTest.php | 32 - .../test/Faker/Provider/en_AU/AddressTest.php | 48 - .../test/Faker/Provider/en_CA/AddressTest.php | 68 - .../test/Faker/Provider/en_GB/AddressTest.php | 35 - .../test/Faker/Provider/en_IN/AddressTest.php | 56 - .../test/Faker/Provider/en_NG/AddressTest.php | 56 - .../Faker/Provider/en_NG/InternetTest.php | 32 - .../test/Faker/Provider/en_NG/PersonTest.php | 29 - .../Faker/Provider/en_NG/PhoneNumberTest.php | 25 - .../Faker/Provider/en_NZ/PhoneNumberTest.php | 35 - .../test/Faker/Provider/en_PH/AddressTest.php | 49 - .../test/Faker/Provider/en_SG/AddressTest.php | 26 - .../Faker/Provider/en_SG/PhoneNumberTest.php | 45 - .../test/Faker/Provider/en_UG/AddressTest.php | 52 - .../test/Faker/Provider/en_US/PaymentTest.php | 84 - .../test/Faker/Provider/en_US/PersonTest.php | 47 - .../Faker/Provider/en_US/PhoneNumberTest.php | 84 - .../test/Faker/Provider/en_ZA/CompanyTest.php | 26 - .../Faker/Provider/en_ZA/InternetTest.php | 32 - .../test/Faker/Provider/en_ZA/PersonTest.php | 47 - .../Faker/Provider/en_ZA/PhoneNumberTest.php | 65 - .../test/Faker/Provider/es_ES/PaymentTest.php | 60 - .../test/Faker/Provider/es_ES/PersonTest.php | 38 - .../test/Faker/Provider/es_ES/TextTest.php | 26 - .../test/Faker/Provider/es_PE/PersonTest.php | 28 - .../Faker/Provider/fi_FI/InternetTest.php | 32 - .../test/Faker/Provider/fi_FI/PersonTest.php | 74 - .../test/Faker/Provider/fr_BE/PaymentTest.php | 29 - .../test/Faker/Provider/fr_CH/AddressTest.php | 69 - .../Faker/Provider/fr_CH/InternetTest.php | 35 - .../Faker/Provider/fr_CH/PhoneNumberTest.php | 32 - .../test/Faker/Provider/fr_FR/CompanyTest.php | 74 - .../test/Faker/Provider/fr_FR/PersonTest.php | 36 - .../test/Faker/Provider/id_ID/PersonTest.php | 40 - .../test/Faker/Provider/it_CH/AddressTest.php | 69 - .../Faker/Provider/it_CH/InternetTest.php | 35 - .../Faker/Provider/it_CH/PhoneNumberTest.php | 32 - .../test/Faker/Provider/it_IT/CompanyTest.php | 23 - .../test/Faker/Provider/it_IT/PersonTest.php | 23 - .../Faker/Provider/ja_JP/InternetTest.php | 27 - .../test/Faker/Provider/ja_JP/PersonTest.php | 54 - .../Faker/Provider/ja_JP/PhoneNumberTest.php | 21 - .../test/Faker/Provider/kk_KZ/CompanyTest.php | 31 - .../test/Faker/Provider/kk_KZ/PersonTest.php | 29 - .../test/Faker/Provider/mn_MN/PersonTest.php | 27 - .../test/Faker/Provider/nl_BE/PaymentTest.php | 29 - .../test/Faker/Provider/nl_NL/CompanyTest.php | 34 - .../test/Faker/Provider/pl_PL/AddressTest.php | 31 - .../test/Faker/Provider/pt_BR/CompanyTest.php | 25 - .../test/Faker/Provider/pt_BR/PersonTest.php | 33 - .../test/Faker/Provider/pt_PT/AddressTest.php | 39 - .../test/Faker/Provider/pt_PT/PersonTest.php | 52 - .../Faker/Provider/pt_PT/PhoneNumberTest.php | 25 - .../test/Faker/Provider/ro_RO/PersonTest.php | 254 - .../Faker/Provider/ro_RO/PhoneNumberTest.php | 31 - .../test/Faker/Provider/ru_RU/CompanyTest.php | 36 - .../test/Faker/Provider/sv_SE/PersonTest.php | 60 - .../test/Faker/Provider/uk_UA/AddressTest.php | 80 - .../test/Faker/Provider/uk_UA/PersonTest.php | 56 - .../Faker/Provider/uk_UA/PhoneNumberTest.php | 35 - .../test/Faker/Provider/zh_TW/CompanyTest.php | 26 - .../test/Faker/Provider/zh_TW/PersonTest.php | 44 - .../test/Faker/Provider/zh_TW/TextTest.php | 77 - vendor/fzaninotto/faker/test/documentor.php | 16 - vendor/fzaninotto/faker/test/test.php | 38 - vendor/guzzlehttp/guzzle/CHANGELOG.md | 1264 -- vendor/guzzlehttp/guzzle/LICENSE | 19 - vendor/guzzlehttp/guzzle/README.md | 89 - vendor/guzzlehttp/guzzle/UPGRADING.md | 1203 -- vendor/guzzlehttp/guzzle/composer.json | 44 - vendor/guzzlehttp/guzzle/src/Client.php | 414 - .../guzzlehttp/guzzle/src/ClientInterface.php | 84 - .../guzzle/src/Cookie/CookieJar.php | 314 - .../guzzle/src/Cookie/CookieJarInterface.php | 84 - .../guzzle/src/Cookie/FileCookieJar.php | 90 - .../guzzle/src/Cookie/SessionCookieJar.php | 71 - .../guzzle/src/Cookie/SetCookie.php | 404 - .../src/Exception/BadResponseException.php | 27 - .../guzzle/src/Exception/ClientException.php | 7 - .../guzzle/src/Exception/ConnectException.php | 37 - .../guzzle/src/Exception/GuzzleException.php | 4 - .../guzzle/src/Exception/RequestException.php | 217 - .../guzzle/src/Exception/SeekException.php | 27 - .../guzzle/src/Exception/ServerException.php | 7 - .../Exception/TooManyRedirectsException.php | 4 - .../src/Exception/TransferException.php | 4 - .../guzzle/src/Handler/CurlFactory.php | 559 - .../src/Handler/CurlFactoryInterface.php | 27 - .../guzzle/src/Handler/CurlHandler.php | 45 - .../guzzle/src/Handler/CurlMultiHandler.php | 197 - .../guzzle/src/Handler/EasyHandle.php | 92 - .../guzzle/src/Handler/MockHandler.php | 189 - .../guzzlehttp/guzzle/src/Handler/Proxy.php | 55 - .../guzzle/src/Handler/StreamHandler.php | 533 - vendor/guzzlehttp/guzzle/src/HandlerStack.php | 273 - .../guzzle/src/MessageFormatter.php | 182 - vendor/guzzlehttp/guzzle/src/Middleware.php | 254 - vendor/guzzlehttp/guzzle/src/Pool.php | 123 - .../guzzle/src/PrepareBodyMiddleware.php | 106 - .../guzzle/src/RedirectMiddleware.php | 237 - .../guzzlehttp/guzzle/src/RequestOptions.php | 255 - .../guzzlehttp/guzzle/src/RetryMiddleware.php | 112 - .../guzzlehttp/guzzle/src/TransferStats.php | 126 - vendor/guzzlehttp/guzzle/src/UriTemplate.php | 241 - vendor/guzzlehttp/guzzle/src/functions.php | 331 - .../guzzle/src/functions_include.php | 6 - vendor/guzzlehttp/promises/CHANGELOG.md | 65 - vendor/guzzlehttp/promises/LICENSE | 19 - vendor/guzzlehttp/promises/Makefile | 13 - vendor/guzzlehttp/promises/README.md | 504 - vendor/guzzlehttp/promises/composer.json | 34 - .../promises/src/AggregateException.php | 16 - .../promises/src/CancellationException.php | 9 - vendor/guzzlehttp/promises/src/Coroutine.php | 151 - .../guzzlehttp/promises/src/EachPromise.php | 229 - .../promises/src/FulfilledPromise.php | 82 - vendor/guzzlehttp/promises/src/Promise.php | 280 - .../promises/src/PromiseInterface.php | 93 - .../promises/src/PromisorInterface.php | 15 - .../promises/src/RejectedPromise.php | 87 - .../promises/src/RejectionException.php | 47 - vendor/guzzlehttp/promises/src/TaskQueue.php | 66 - .../promises/src/TaskQueueInterface.php | 25 - vendor/guzzlehttp/promises/src/functions.php | 457 - .../promises/src/functions_include.php | 6 - vendor/guzzlehttp/psr7/CHANGELOG.md | 110 - vendor/guzzlehttp/psr7/LICENSE | 19 - vendor/guzzlehttp/psr7/README.md | 739 - vendor/guzzlehttp/psr7/composer.json | 39 - vendor/guzzlehttp/psr7/src/AppendStream.php | 233 - vendor/guzzlehttp/psr7/src/BufferStream.php | 137 - vendor/guzzlehttp/psr7/src/CachingStream.php | 138 - vendor/guzzlehttp/psr7/src/DroppingStream.php | 42 - vendor/guzzlehttp/psr7/src/FnStream.php | 149 - vendor/guzzlehttp/psr7/src/InflateStream.php | 52 - vendor/guzzlehttp/psr7/src/LazyOpenStream.php | 39 - vendor/guzzlehttp/psr7/src/LimitStream.php | 155 - vendor/guzzlehttp/psr7/src/MessageTrait.php | 183 - .../guzzlehttp/psr7/src/MultipartStream.php | 153 - vendor/guzzlehttp/psr7/src/NoSeekStream.php | 22 - vendor/guzzlehttp/psr7/src/PumpStream.php | 165 - vendor/guzzlehttp/psr7/src/Request.php | 142 - vendor/guzzlehttp/psr7/src/Response.php | 132 - vendor/guzzlehttp/psr7/src/ServerRequest.php | 358 - vendor/guzzlehttp/psr7/src/Stream.php | 257 - .../psr7/src/StreamDecoratorTrait.php | 149 - vendor/guzzlehttp/psr7/src/StreamWrapper.php | 121 - vendor/guzzlehttp/psr7/src/UploadedFile.php | 316 - vendor/guzzlehttp/psr7/src/Uri.php | 702 - vendor/guzzlehttp/psr7/src/UriNormalizer.php | 216 - vendor/guzzlehttp/psr7/src/UriResolver.php | 219 - vendor/guzzlehttp/psr7/src/functions.php | 828 - .../guzzlehttp/psr7/src/functions_include.php | 6 - vendor/hamcrest/hamcrest-php/.coveralls.yml | 1 - vendor/hamcrest/hamcrest-php/.gitignore | 1 - vendor/hamcrest/hamcrest-php/.gush.yml | 7 - vendor/hamcrest/hamcrest-php/.travis.yml | 24 - vendor/hamcrest/hamcrest-php/CHANGES.txt | 167 - vendor/hamcrest/hamcrest-php/LICENSE.txt | 27 - vendor/hamcrest/hamcrest-php/README.md | 53 - vendor/hamcrest/hamcrest-php/TODO.txt | 22 - vendor/hamcrest/hamcrest-php/composer.json | 38 - vendor/hamcrest/hamcrest-php/composer.lock | 1493 -- .../hamcrest-php/generator/FactoryCall.php | 41 - .../hamcrest-php/generator/FactoryClass.php | 72 - .../hamcrest-php/generator/FactoryFile.php | 122 - .../generator/FactoryGenerator.php | 115 - .../hamcrest-php/generator/FactoryMethod.php | 231 - .../generator/FactoryParameter.php | 69 - .../generator/GlobalFunctionFile.php | 42 - .../generator/StaticMethodFile.php | 38 - .../generator/parts/file_header.txt | 7 - .../generator/parts/functions_footer.txt | 0 .../generator/parts/functions_header.txt | 24 - .../generator/parts/functions_imports.txt | 0 .../generator/parts/matchers_footer.txt | 1 - .../generator/parts/matchers_header.txt | 7 - .../generator/parts/matchers_imports.txt | 2 - .../hamcrest/hamcrest-php/generator/run.php | 37 - .../hamcrest-php/hamcrest/Hamcrest.php | 805 - .../hamcrest/Hamcrest/Arrays/IsArray.php | 118 - .../Hamcrest/Arrays/IsArrayContaining.php | 63 - .../Arrays/IsArrayContainingInAnyOrder.php | 59 - .../Arrays/IsArrayContainingInOrder.php | 57 - .../Hamcrest/Arrays/IsArrayContainingKey.php | 75 - .../Arrays/IsArrayContainingKeyValuePair.php | 80 - .../Hamcrest/Arrays/IsArrayWithSize.php | 73 - .../hamcrest/Hamcrest/Arrays/MatchingOnce.php | 69 - .../Hamcrest/Arrays/SeriesMatchingOnce.php | 75 - .../hamcrest/Hamcrest/AssertionError.php | 10 - .../hamcrest/Hamcrest/BaseDescription.php | 132 - .../hamcrest/Hamcrest/BaseMatcher.php | 25 - .../Collection/IsEmptyTraversable.php | 71 - .../Collection/IsTraversableWithSize.php | 47 - .../hamcrest/Hamcrest/Core/AllOf.php | 59 - .../hamcrest/Hamcrest/Core/AnyOf.php | 58 - .../Hamcrest/Core/CombinableMatcher.php | 78 - .../hamcrest/Hamcrest/Core/DescribedAs.php | 68 - .../hamcrest/Hamcrest/Core/Every.php | 56 - .../hamcrest/Hamcrest/Core/HasToString.php | 56 - .../hamcrest/Hamcrest/Core/Is.php | 57 - .../hamcrest/Hamcrest/Core/IsAnything.php | 45 - .../Hamcrest/Core/IsCollectionContaining.php | 93 - .../hamcrest/Hamcrest/Core/IsEqual.php | 44 - .../hamcrest/Hamcrest/Core/IsIdentical.php | 38 - .../hamcrest/Hamcrest/Core/IsInstanceOf.php | 67 - .../hamcrest/Hamcrest/Core/IsNot.php | 44 - .../hamcrest/Hamcrest/Core/IsNull.php | 56 - .../hamcrest/Hamcrest/Core/IsSame.php | 51 - .../hamcrest/Hamcrest/Core/IsTypeOf.php | 71 - .../hamcrest/Hamcrest/Core/Set.php | 95 - .../Hamcrest/Core/ShortcutCombination.php | 43 - .../hamcrest/Hamcrest/Description.php | 70 - .../hamcrest/Hamcrest/DiagnosingMatcher.php | 25 - .../hamcrest/Hamcrest/FeatureMatcher.php | 67 - .../Hamcrest/Internal/SelfDescribingValue.php | 27 - .../hamcrest/Hamcrest/Matcher.php | 50 - .../hamcrest/Hamcrest/MatcherAssert.php | 118 - .../hamcrest/Hamcrest/Matchers.php | 713 - .../hamcrest/Hamcrest/NullDescription.php | 43 - .../hamcrest/Hamcrest/Number/IsCloseTo.php | 67 - .../Hamcrest/Number/OrderingComparison.php | 132 - .../hamcrest/Hamcrest/SelfDescribing.php | 23 - .../hamcrest/Hamcrest/StringDescription.php | 57 - .../hamcrest/Hamcrest/Text/IsEmptyString.php | 85 - .../Hamcrest/Text/IsEqualIgnoringCase.php | 52 - .../Text/IsEqualIgnoringWhiteSpace.php | 66 - .../hamcrest/Hamcrest/Text/MatchesPattern.php | 40 - .../hamcrest/Hamcrest/Text/StringContains.php | 45 - .../Text/StringContainsIgnoringCase.php | 40 - .../Hamcrest/Text/StringContainsInOrder.php | 66 - .../hamcrest/Hamcrest/Text/StringEndsWith.php | 40 - .../Hamcrest/Text/StringStartsWith.php | 40 - .../Hamcrest/Text/SubstringMatcher.php | 45 - .../hamcrest/Hamcrest/Type/IsArray.php | 32 - .../hamcrest/Hamcrest/Type/IsBoolean.php | 32 - .../hamcrest/Hamcrest/Type/IsCallable.php | 37 - .../hamcrest/Hamcrest/Type/IsDouble.php | 34 - .../hamcrest/Hamcrest/Type/IsInteger.php | 32 - .../hamcrest/Hamcrest/Type/IsNumeric.php | 54 - .../hamcrest/Hamcrest/Type/IsObject.php | 32 - .../hamcrest/Hamcrest/Type/IsResource.php | 32 - .../hamcrest/Hamcrest/Type/IsScalar.php | 34 - .../hamcrest/Hamcrest/Type/IsString.php | 32 - .../Hamcrest/TypeSafeDiagnosingMatcher.php | 29 - .../hamcrest/Hamcrest/TypeSafeMatcher.php | 107 - .../hamcrest-php/hamcrest/Hamcrest/Util.php | 76 - .../hamcrest/Hamcrest/Xml/HasXPath.php | 195 - .../tests/Hamcrest/AbstractMatcherTest.php | 66 - .../Array/IsArrayContainingInAnyOrderTest.php | 54 - .../Array/IsArrayContainingInOrderTest.php | 44 - .../Array/IsArrayContainingKeyTest.php | 62 - .../IsArrayContainingKeyValuePairTest.php | 36 - .../Hamcrest/Array/IsArrayContainingTest.php | 50 - .../tests/Hamcrest/Array/IsArrayTest.php | 89 - .../Hamcrest/Array/IsArrayWithSizeTest.php | 37 - .../tests/Hamcrest/BaseMatcherTest.php | 23 - .../Collection/IsEmptyTraversableTest.php | 77 - .../Collection/IsTraversableWithSizeTest.php | 57 - .../tests/Hamcrest/Core/AllOfTest.php | 56 - .../tests/Hamcrest/Core/AnyOfTest.php | 79 - .../Hamcrest/Core/CombinableMatcherTest.php | 59 - .../tests/Hamcrest/Core/DescribedAsTest.php | 36 - .../tests/Hamcrest/Core/EveryTest.php | 30 - .../tests/Hamcrest/Core/HasToStringTest.php | 108 - .../tests/Hamcrest/Core/IsAnythingTest.php | 29 - .../Core/IsCollectionContainingTest.php | 91 - .../tests/Hamcrest/Core/IsEqualTest.php | 102 - .../tests/Hamcrest/Core/IsIdenticalTest.php | 30 - .../tests/Hamcrest/Core/IsInstanceOfTest.php | 51 - .../tests/Hamcrest/Core/IsNotTest.php | 31 - .../tests/Hamcrest/Core/IsNullTest.php | 20 - .../tests/Hamcrest/Core/IsSameTest.php | 30 - .../tests/Hamcrest/Core/IsTest.php | 33 - .../tests/Hamcrest/Core/IsTypeOfTest.php | 45 - .../tests/Hamcrest/Core/SampleBaseClass.php | 18 - .../tests/Hamcrest/Core/SampleSubClass.php | 6 - .../tests/Hamcrest/Core/SetTest.php | 116 - .../tests/Hamcrest/FeatureMatcherTest.php | 73 - .../tests/Hamcrest/MatcherAssertTest.php | 190 - .../tests/Hamcrest/Number/IsCloseToTest.php | 27 - .../Number/OrderingComparisonTest.php | 41 - .../tests/Hamcrest/StringDescriptionTest.php | 160 - .../tests/Hamcrest/Text/IsEmptyStringTest.php | 86 - .../Hamcrest/Text/IsEqualIgnoringCaseTest.php | 40 - .../Text/IsEqualIgnoringWhiteSpaceTest.php | 51 - .../Hamcrest/Text/MatchesPatternTest.php | 30 - .../Text/StringContainsIgnoringCaseTest.php | 80 - .../Text/StringContainsInOrderTest.php | 42 - .../Hamcrest/Text/StringContainsTest.php | 86 - .../Hamcrest/Text/StringEndsWithTest.php | 62 - .../Hamcrest/Text/StringStartsWithTest.php | 62 - .../tests/Hamcrest/Type/IsArrayTest.php | 35 - .../tests/Hamcrest/Type/IsBooleanTest.php | 35 - .../tests/Hamcrest/Type/IsCallableTest.php | 103 - .../tests/Hamcrest/Type/IsDoubleTest.php | 35 - .../tests/Hamcrest/Type/IsIntegerTest.php | 36 - .../tests/Hamcrest/Type/IsNumericTest.php | 53 - .../tests/Hamcrest/Type/IsObjectTest.php | 34 - .../tests/Hamcrest/Type/IsResourceTest.php | 34 - .../tests/Hamcrest/Type/IsScalarTest.php | 39 - .../tests/Hamcrest/Type/IsStringTest.php | 35 - .../hamcrest-php/tests/Hamcrest/UtilTest.php | 80 - .../tests/Hamcrest/Xml/HasXPathTest.php | 198 - .../hamcrest/hamcrest-php/tests/bootstrap.php | 11 - .../hamcrest-php/tests/phpunit.xml.dist | 22 - .../php-console-color/.gitignore | 3 - .../php-console-color/.travis.yml | 15 - .../jakub-onderka/php-console-color/build.xml | 93 - .../php-console-color/composer.json | 24 - .../php-console-color/example.php | 38 - .../php-console-color/phpunit.xml | 15 - .../PhpConsoleColor/ConsoleColor.php | 280 - .../PhpConsoleColor/InvalidStyleException.php | 10 - .../PhpConsoleColor/ConsoleColorTest.php | 184 - .../php-console-color/tests/bootstrap.php | 2 - .../php-console-highlighter/.gitignore | 4 - .../php-console-highlighter/.travis.yml | 21 - .../php-console-highlighter/LICENSE | 21 - .../php-console-highlighter/README.md | 40 - .../php-console-highlighter/build.xml | 93 - .../php-console-highlighter/composer.json | 26 - .../examples/snippet.php | 10 - .../examples/whole_file.php | 10 - .../examples/whole_file_line_numbers.php | 10 - .../php-console-highlighter/phpunit.xml | 15 - .../PhpConsoleHighlighter/Highlighter.php | 267 - .../PhpConsoleHighligter/HigligterTest.php | 263 - .../tests/bootstrap.php | 2 - vendor/laravel/framework/LICENSE.md | 21 - vendor/laravel/framework/README.md | 45 - vendor/laravel/framework/composer.json | 131 - .../Auth/Access/AuthorizationException.php | 10 - .../src/Illuminate/Auth/Access/Gate.php | 560 - .../Auth/Access/HandlesAuthorization.php | 30 - .../src/Illuminate/Auth/Access/Response.php | 44 - .../src/Illuminate/Auth/AuthManager.php | 294 - .../Illuminate/Auth/AuthServiceProvider.php | 90 - .../src/Illuminate/Auth/Authenticatable.php | 78 - .../Auth/AuthenticationException.php | 39 - .../Auth/Console/AuthMakeCommand.php | 119 - .../Auth/Console/ClearResetsCommand.php | 34 - .../make/controllers/HomeController.stub | 28 - .../Auth/Console/stubs/make/routes.stub | 4 - .../Console/stubs/make/views/auth/login.stub | 69 - .../make/views/auth/passwords/email.stub | 47 - .../make/views/auth/passwords/reset.stub | 70 - .../stubs/make/views/auth/register.stub | 77 - .../Auth/Console/stubs/make/views/home.stub | 23 - .../Console/stubs/make/views/layouts/app.stub | 80 - .../Illuminate/Auth/CreatesUserProviders.php | 94 - .../Illuminate/Auth/DatabaseUserProvider.php | 152 - .../Illuminate/Auth/EloquentUserProvider.php | 195 - .../src/Illuminate/Auth/Events/Attempting.php | 33 - .../Illuminate/Auth/Events/Authenticated.php | 28 - .../src/Illuminate/Auth/Events/Failed.php | 33 - .../src/Illuminate/Auth/Events/Lockout.php | 26 - .../src/Illuminate/Auth/Events/Login.php | 37 - .../src/Illuminate/Auth/Events/Logout.php | 28 - .../Illuminate/Auth/Events/PasswordReset.php | 28 - .../src/Illuminate/Auth/Events/Registered.php | 28 - .../src/Illuminate/Auth/GenericUser.php | 134 - .../src/Illuminate/Auth/GuardHelpers.php | 108 - .../Auth/Middleware/Authenticate.php | 68 - .../Middleware/AuthenticateWithBasicAuth.php | 40 - .../Illuminate/Auth/Middleware/Authorize.php | 100 - .../Auth/Notifications/ResetPassword.php | 52 - .../Auth/Passwords/CanResetPassword.php | 29 - .../Passwords/DatabaseTokenRepository.php | 204 - .../Auth/Passwords/PasswordBroker.php | 242 - .../Auth/Passwords/PasswordBrokerManager.php | 147 - .../PasswordResetServiceProvider.php | 51 - .../Passwords/TokenRepositoryInterface.php | 40 - .../src/Illuminate/Auth/Recaller.php | 88 - .../src/Illuminate/Auth/RequestGuard.php | 87 - .../src/Illuminate/Auth/SessionGuard.php | 753 - .../src/Illuminate/Auth/TokenGuard.php | 133 - .../src/Illuminate/Auth/composer.json | 42 - .../Broadcasting/BroadcastController.php | 21 - .../Broadcasting/BroadcastEvent.php | 111 - .../Broadcasting/BroadcastException.php | 10 - .../Broadcasting/BroadcastManager.php | 312 - .../Broadcasting/BroadcastServiceProvider.php | 51 - .../Broadcasting/Broadcasters/Broadcaster.php | 204 - .../Broadcasters/LogBroadcaster.php | 54 - .../Broadcasters/NullBroadcaster.php | 30 - .../Broadcasters/PusherBroadcaster.php | 121 - .../Broadcasters/RedisBroadcaster.php | 103 - .../src/Illuminate/Broadcasting/Channel.php | 34 - .../Broadcasting/InteractsWithSockets.php | 39 - .../Broadcasting/PendingBroadcast.php | 59 - .../Broadcasting/PresenceChannel.php | 17 - .../Broadcasting/PrivateChannel.php | 17 - .../src/Illuminate/Broadcasting/composer.json | 41 - .../src/Illuminate/Bus/BusServiceProvider.php | 54 - .../src/Illuminate/Bus/Dispatcher.php | 212 - .../src/Illuminate/Bus/Queueable.php | 150 - .../src/Illuminate/Bus/composer.json | 36 - .../src/Illuminate/Cache/ApcStore.php | 132 - .../src/Illuminate/Cache/ApcWrapper.php | 92 - .../src/Illuminate/Cache/ArrayStore.php | 117 - .../src/Illuminate/Cache/CacheManager.php | 306 - .../Illuminate/Cache/CacheServiceProvider.php | 47 - .../Cache/Console/CacheTableCommand.php | 81 - .../Illuminate/Cache/Console/ClearCommand.php | 137 - .../Cache/Console/ForgetCommand.php | 57 - .../Illuminate/Cache/Console/stubs/cache.stub | 32 - .../src/Illuminate/Cache/DatabaseStore.php | 256 - .../Illuminate/Cache/Events/CacheEvent.php | 46 - .../src/Illuminate/Cache/Events/CacheHit.php | 28 - .../Illuminate/Cache/Events/CacheMissed.php | 8 - .../Illuminate/Cache/Events/KeyForgotten.php | 8 - .../Illuminate/Cache/Events/KeyWritten.php | 37 - .../src/Illuminate/Cache/FileStore.php | 262 - .../framework/src/Illuminate/Cache/Lock.php | 93 - .../Illuminate/Cache/MemcachedConnector.php | 87 - .../src/Illuminate/Cache/MemcachedLock.php | 52 - .../src/Illuminate/Cache/MemcachedStore.php | 250 - .../src/Illuminate/Cache/NullStore.php | 108 - .../src/Illuminate/Cache/RateLimiter.php | 134 - .../src/Illuminate/Cache/RedisLock.php | 56 - .../src/Illuminate/Cache/RedisStore.php | 289 - .../src/Illuminate/Cache/RedisTaggedCache.php | 166 - .../src/Illuminate/Cache/Repository.php | 586 - .../Cache/RetrievesMultipleKeys.php | 39 - .../framework/src/Illuminate/Cache/TagSet.php | 110 - .../src/Illuminate/Cache/TaggableStore.php | 17 - .../src/Illuminate/Cache/TaggedCache.php | 95 - .../src/Illuminate/Cache/composer.json | 40 - .../src/Illuminate/Config/Repository.php | 179 - .../src/Illuminate/Config/composer.json | 35 - .../src/Illuminate/Console/Application.php | 283 - .../src/Illuminate/Console/Command.php | 594 - .../Illuminate/Console/ConfirmableTrait.php | 54 - .../Console/DetectsApplicationNamespace.php | 18 - .../Console/Events/ArtisanStarting.php | 24 - .../Console/Events/CommandFinished.php | 54 - .../Console/Events/CommandStarting.php | 45 - .../Illuminate/Console/GeneratorCommand.php | 235 - .../src/Illuminate/Console/OutputStyle.php | 71 - .../src/Illuminate/Console/Parser.php | 146 - .../Console/Scheduling/CacheMutex.php | 61 - .../Console/Scheduling/CallbackEvent.php | 138 - .../Console/Scheduling/CommandBuilder.php | 71 - .../Illuminate/Console/Scheduling/Event.php | 677 - .../Console/Scheduling/ManagesFrequencies.php | 411 - .../Illuminate/Console/Scheduling/Mutex.php | 30 - .../Console/Scheduling/Schedule.php | 153 - .../Scheduling/ScheduleFinishCommand.php | 61 - .../Console/Scheduling/ScheduleRunCommand.php | 68 - .../src/Illuminate/Console/composer.json | 41 - .../src/Illuminate/Container/BoundMethod.php | 172 - .../src/Illuminate/Container/Container.php | 1245 -- .../Container/ContextualBindingBuilder.php | 68 - .../Container/EntryNotFoundException.php | 11 - .../src/Illuminate/Container/composer.json | 35 - .../Contracts/Auth/Access/Authorizable.php | 15 - .../Illuminate/Contracts/Auth/Access/Gate.php | 120 - .../Contracts/Auth/Authenticatable.php | 49 - .../Contracts/Auth/CanResetPassword.php | 21 - .../src/Illuminate/Contracts/Auth/Factory.php | 22 - .../src/Illuminate/Contracts/Auth/Guard.php | 50 - .../Contracts/Auth/PasswordBroker.php | 76 - .../Contracts/Auth/PasswordBrokerFactory.php | 14 - .../Contracts/Auth/StatefulGuard.php | 63 - .../Contracts/Auth/SupportsBasicAuth.php | 24 - .../Contracts/Auth/UserProvider.php | 49 - .../Contracts/Broadcasting/Broadcaster.php | 33 - .../Contracts/Broadcasting/Factory.php | 14 - .../Broadcasting/ShouldBroadcast.php | 13 - .../Broadcasting/ShouldBroadcastNow.php | 8 - .../Illuminate/Contracts/Bus/Dispatcher.php | 31 - .../Contracts/Bus/QueueingDispatcher.php | 14 - .../Illuminate/Contracts/Cache/Factory.php | 14 - .../src/Illuminate/Contracts/Cache/Lock.php | 30 - .../Contracts/Cache/LockProvider.php | 15 - .../Contracts/Cache/LockTimeoutException.php | 10 - .../Illuminate/Contracts/Cache/Repository.php | 125 - .../src/Illuminate/Contracts/Cache/Store.php | 92 - .../Contracts/Config/Repository.php | 57 - .../Contracts/Console/Application.php | 22 - .../Illuminate/Contracts/Console/Kernel.php | 47 - .../Container/BindingResolutionException.php | 11 - .../Contracts/Container/Container.php | 153 - .../Container/ContextualBindingBuilder.php | 22 - .../Illuminate/Contracts/Cookie/Factory.php | 43 - .../Contracts/Cookie/QueueingFactory.php | 28 - .../Contracts/Database/ModelIdentifier.php | 44 - .../Contracts/Debug/ExceptionHandler.php | 34 - .../Contracts/Encryption/DecryptException.php | 10 - .../Contracts/Encryption/EncryptException.php | 10 - .../Contracts/Encryption/Encrypter.php | 24 - .../Contracts/Events/Dispatcher.php | 82 - .../Illuminate/Contracts/Filesystem/Cloud.php | 14 - .../Contracts/Filesystem/Factory.php | 14 - .../Filesystem/FileNotFoundException.php | 10 - .../Contracts/Filesystem/Filesystem.php | 175 - .../Contracts/Foundation/Application.php | 106 - .../Illuminate/Contracts/Hashing/Hasher.php | 34 - .../src/Illuminate/Contracts/Http/Kernel.php | 37 - .../src/Illuminate/Contracts/Logging/Log.php | 98 - .../Illuminate/Contracts/Mail/MailQueue.php | 25 - .../Illuminate/Contracts/Mail/Mailable.php | 33 - .../src/Illuminate/Contracts/Mail/Mailer.php | 48 - .../Contracts/Notifications/Dispatcher.php | 24 - .../Contracts/Notifications/Factory.php | 32 - .../Pagination/LengthAwarePaginator.php | 29 - .../Contracts/Pagination/Paginator.php | 117 - .../src/Illuminate/Contracts/Pipeline/Hub.php | 15 - .../Contracts/Pipeline/Pipeline.php | 40 - .../Queue/EntityNotFoundException.php | 22 - .../Contracts/Queue/EntityResolver.php | 15 - .../Illuminate/Contracts/Queue/Factory.php | 14 - .../src/Illuminate/Contracts/Queue/Job.php | 115 - .../Illuminate/Contracts/Queue/Monitor.php | 30 - .../src/Illuminate/Contracts/Queue/Queue.php | 99 - .../Contracts/Queue/QueueableCollection.php | 27 - .../Contracts/Queue/QueueableEntity.php | 20 - .../Contracts/Queue/ShouldQueue.php | 8 - .../Illuminate/Contracts/Redis/Factory.php | 14 - .../Redis/LimiterTimeoutException.php | 10 - .../Contracts/Routing/BindingRegistrar.php | 23 - .../Contracts/Routing/Registrar.php | 105 - .../Contracts/Routing/ResponseFactory.php | 126 - .../Contracts/Routing/UrlGenerator.php | 71 - .../Contracts/Routing/UrlRoutable.php | 28 - .../Illuminate/Contracts/Session/Session.php | 165 - .../Contracts/Support/Arrayable.php | 13 - .../Illuminate/Contracts/Support/Htmlable.php | 13 - .../Illuminate/Contracts/Support/Jsonable.php | 14 - .../Contracts/Support/MessageBag.php | 107 - .../Contracts/Support/MessageProvider.php | 13 - .../Contracts/Support/Renderable.php | 13 - .../Contracts/Support/Responsable.php | 14 - .../Contracts/Translation/Loader.php | 40 - .../Contracts/Translation/Translator.php | 42 - .../Contracts/Validation/Factory.php | 46 - .../Contracts/Validation/ImplicitRule.php | 8 - .../Illuminate/Contracts/Validation/Rule.php | 22 - .../Validation/ValidatesWhenResolved.php | 13 - .../Contracts/Validation/Validator.php | 47 - .../src/Illuminate/Contracts/View/Engine.php | 15 - .../src/Illuminate/Contracts/View/Factory.php | 79 - .../src/Illuminate/Contracts/View/View.php | 24 - .../src/Illuminate/Contracts/composer.json | 35 - .../src/Illuminate/Cookie/CookieJar.php | 193 - .../Cookie/CookieServiceProvider.php | 24 - .../Middleware/AddQueuedCookiesToResponse.php | 45 - .../Cookie/Middleware/EncryptCookies.php | 164 - .../src/Illuminate/Cookie/composer.json | 37 - .../Illuminate/Database/Capsule/Manager.php | 201 - .../Database/Concerns/BuildsQueries.php | 161 - .../Database/Concerns/ManagesTransactions.php | 219 - .../src/Illuminate/Database/Connection.php | 1238 -- .../Database/ConnectionInterface.php | 150 - .../Database/ConnectionResolver.php | 92 - .../Database/ConnectionResolverInterface.php | 29 - .../Database/Connectors/ConnectionFactory.php | 288 - .../Database/Connectors/Connector.php | 136 - .../Connectors/ConnectorInterface.php | 14 - .../Database/Connectors/MySqlConnector.php | 180 - .../Database/Connectors/PostgresConnector.php | 174 - .../Database/Connectors/SQLiteConnector.php | 39 - .../Connectors/SqlServerConnector.php | 183 - .../Console/Factories/FactoryMakeCommand.php | 84 - .../Console/Factories/stubs/factory.stub | 9 - .../Console/Migrations/BaseCommand.php | 39 - .../Console/Migrations/FreshCommand.php | 112 - .../Console/Migrations/InstallCommand.php | 70 - .../Console/Migrations/MigrateCommand.php | 102 - .../Console/Migrations/MigrateMakeCommand.php | 131 - .../Console/Migrations/RefreshCommand.php | 154 - .../Console/Migrations/ResetCommand.php | 96 - .../Console/Migrations/RollbackCommand.php | 94 - .../Console/Migrations/StatusCommand.php | 108 - .../Database/Console/Seeds/SeedCommand.php | 106 - .../Console/Seeds/SeederMakeCommand.php | 96 - .../Database/Console/Seeds/stubs/seeder.stub | 16 - .../Illuminate/Database/DatabaseManager.php | 329 - .../Database/DatabaseServiceProvider.php | 99 - .../Illuminate/Database/DetectsDeadlocks.php | 32 - .../Database/DetectsLostConnections.php | 37 - .../Illuminate/Database/Eloquent/Builder.php | 1326 -- .../Database/Eloquent/Collection.php | 440 - .../Eloquent/Concerns/GuardsAttributes.php | 193 - .../Eloquent/Concerns/HasAttributes.php | 1141 -- .../Database/Eloquent/Concerns/HasEvents.php | 340 - .../Eloquent/Concerns/HasGlobalScopes.php | 71 - .../Eloquent/Concerns/HasRelationships.php | 741 - .../Eloquent/Concerns/HasTimestamps.php | 125 - .../Eloquent/Concerns/HidesAttributes.php | 126 - .../Concerns/QueriesRelationships.php | 310 - .../Illuminate/Database/Eloquent/Factory.php | 253 - .../Database/Eloquent/FactoryBuilder.php | 331 - .../Eloquent/JsonEncodingException.php | 35 - .../Eloquent/MassAssignmentException.php | 10 - .../Illuminate/Database/Eloquent/Model.php | 1504 -- .../Eloquent/ModelNotFoundException.php | 66 - .../Database/Eloquent/QueueEntityResolver.php | 29 - .../Eloquent/RelationNotFoundException.php | 41 - .../Database/Eloquent/Relations/BelongsTo.php | 362 - .../Eloquent/Relations/BelongsToMany.php | 994 - .../Concerns/InteractsWithPivotTable.php | 517 - .../Concerns/SupportsDefaultModels.php | 63 - .../Database/Eloquent/Relations/HasMany.php | 47 - .../Eloquent/Relations/HasManyThrough.php | 520 - .../Database/Eloquent/Relations/HasOne.php | 64 - .../Eloquent/Relations/HasOneOrMany.php | 423 - .../Database/Eloquent/Relations/MorphMany.php | 47 - .../Database/Eloquent/Relations/MorphOne.php | 64 - .../Eloquent/Relations/MorphOneOrMany.php | 140 - .../Eloquent/Relations/MorphPivot.php | 79 - .../Database/Eloquent/Relations/MorphTo.php | 279 - .../Eloquent/Relations/MorphToMany.php | 168 - .../Database/Eloquent/Relations/Pivot.php | 229 - .../Database/Eloquent/Relations/Relation.php | 385 - .../Illuminate/Database/Eloquent/Scope.php | 15 - .../Database/Eloquent/SoftDeletes.php | 169 - .../Database/Eloquent/SoftDeletingScope.php | 131 - .../Database/Events/ConnectionEvent.php | 32 - .../Database/Events/QueryExecuted.php | 59 - .../Database/Events/StatementPrepared.php | 33 - .../Database/Events/TransactionBeginning.php | 8 - .../Database/Events/TransactionCommitted.php | 8 - .../Database/Events/TransactionRolledBack.php | 8 - .../src/Illuminate/Database/Grammar.php | 205 - .../Database/MigrationServiceProvider.php | 87 - .../DatabaseMigrationRepository.php | 199 - .../Database/Migrations/Migration.php | 30 - .../Database/Migrations/MigrationCreator.php | 202 - .../MigrationRepositoryInterface.php | 74 - .../Database/Migrations/Migrator.php | 578 - .../Database/Migrations/stubs/blank.stub | 28 - .../Database/Migrations/stubs/create.stub | 31 - .../Database/Migrations/stubs/update.stub | 32 - .../Illuminate/Database/MySqlConnection.php | 84 - .../Database/PostgresConnection.php | 66 - .../src/Illuminate/Database/Query/Builder.php | 2473 --- .../Illuminate/Database/Query/Expression.php | 44 - .../Database/Query/Grammars/Grammar.php | 863 - .../Database/Query/Grammars/MySqlGrammar.php | 316 - .../Query/Grammars/PostgresGrammar.php | 331 - .../Database/Query/Grammars/SQLiteGrammar.php | 190 - .../Query/Grammars/SqlServerGrammar.php | 442 - .../Illuminate/Database/Query/JoinClause.php | 110 - .../Database/Query/JsonExpression.php | 45 - .../Query/Processors/MySqlProcessor.php | 19 - .../Query/Processors/PostgresProcessor.php | 41 - .../Database/Query/Processors/Processor.php | 49 - .../Query/Processors/SQLiteProcessor.php | 19 - .../Query/Processors/SqlServerProcessor.php | 69 - .../Illuminate/Database/QueryException.php | 78 - .../src/Illuminate/Database/README.md | 69 - .../Illuminate/Database/SQLiteConnection.php | 66 - .../Illuminate/Database/Schema/Blueprint.php | 1263 -- .../Illuminate/Database/Schema/Builder.php | 304 - .../Database/Schema/Grammars/ChangeColumn.php | 205 - .../Database/Schema/Grammars/Grammar.php | 255 - .../Database/Schema/Grammars/MySqlGrammar.php | 967 - .../Schema/Grammars/PostgresGrammar.php | 802 - .../Database/Schema/Grammars/RenameColumn.php | 69 - .../Schema/Grammars/SQLiteGrammar.php | 799 - .../Schema/Grammars/SqlServerGrammar.php | 785 - .../Database/Schema/MySqlBuilder.php | 78 - .../Database/Schema/PostgresBuilder.php | 105 - .../Database/Schema/SQLiteBuilder.php | 34 - .../Database/Schema/SqlServerBuilder.php | 20 - .../src/Illuminate/Database/Seeder.php | 125 - .../Database/SqlServerConnection.php | 113 - .../src/Illuminate/Database/composer.json | 45 - .../src/Illuminate/Encryption/Encrypter.php | 252 - .../Encryption/EncryptionServiceProvider.php | 48 - .../src/Illuminate/Encryption/composer.json | 37 - .../Illuminate/Events/CallQueuedListener.php | 160 - .../src/Illuminate/Events/Dispatcher.php | 563 - .../Events/EventServiceProvider.php | 23 - .../src/Illuminate/Events/composer.json | 36 - .../src/Illuminate/Filesystem/Cache.php | 77 - .../src/Illuminate/Filesystem/Filesystem.php | 566 - .../Filesystem/FilesystemAdapter.php | 684 - .../Filesystem/FilesystemManager.php | 370 - .../Filesystem/FilesystemServiceProvider.php | 82 - .../src/Illuminate/Filesystem/composer.json | 41 - .../src/Illuminate/Foundation/AliasLoader.php | 243 - .../src/Illuminate/Foundation/Application.php | 1196 -- .../Foundation/Auth/Access/Authorizable.php | 44 - .../Auth/Access/AuthorizesRequests.php | 126 - .../Foundation/Auth/AuthenticatesUsers.php | 169 - .../Foundation/Auth/RedirectsUsers.php | 20 - .../Foundation/Auth/RegistersUsers.php | 62 - .../Foundation/Auth/ResetsPasswords.php | 161 - .../Auth/SendsPasswordResetEmails.php | 87 - .../Foundation/Auth/ThrottlesLogins.php | 120 - .../src/Illuminate/Foundation/Auth/User.php | 19 - .../Foundation/Bootstrap/BootProviders.php | 19 - .../Foundation/Bootstrap/HandleExceptions.php | 161 - .../Bootstrap/LoadConfiguration.php | 115 - .../Bootstrap/LoadEnvironmentVariables.php | 75 - .../Foundation/Bootstrap/RegisterFacades.php | 29 - .../Bootstrap/RegisterProviders.php | 19 - .../Bootstrap/SetRequestForConsole.php | 35 - .../Foundation/Bus/Dispatchable.php | 27 - .../Foundation/Bus/DispatchesJobs.php | 30 - .../Foundation/Bus/PendingChain.php | 45 - .../Foundation/Bus/PendingDispatch.php | 114 - .../Illuminate/Foundation/ComposerScripts.php | 65 - .../Foundation/Console/AppNameCommand.php | 296 - .../Console/ClearCompiledCommand.php | 40 - .../Foundation/Console/ClosureCommand.php | 71 - .../Foundation/Console/ConfigCacheCommand.php | 76 - .../Foundation/Console/ConfigClearCommand.php | 55 - .../Foundation/Console/ConsoleMakeCommand.php | 90 - .../Foundation/Console/DownCommand.php | 67 - .../Foundation/Console/EnvironmentCommand.php | 32 - .../Console/EventGenerateCommand.php | 78 - .../Foundation/Console/EventMakeCommand.php | 61 - .../Console/ExceptionMakeCommand.php | 84 - .../Foundation/Console/JobMakeCommand.php | 65 - .../Illuminate/Foundation/Console/Kernel.php | 366 - .../Foundation/Console/KeyGenerateCommand.php | 111 - .../Console/ListenerMakeCommand.php | 112 - .../Foundation/Console/MailMakeCommand.php | 116 - .../Foundation/Console/ModelMakeCommand.php | 156 - .../Console/NotificationMakeCommand.php | 116 - .../Foundation/Console/OptimizeCommand.php | 47 - .../Console/PackageDiscoverCommand.php | 40 - .../Foundation/Console/PolicyMakeCommand.php | 140 - .../Foundation/Console/PresetCommand.php | 92 - .../Foundation/Console/Presets/Bootstrap.php | 43 - .../Foundation/Console/Presets/None.php | 58 - .../Foundation/Console/Presets/Preset.php | 61 - .../Foundation/Console/Presets/React.php | 76 - .../Foundation/Console/Presets/Vue.php | 76 - .../Presets/bootstrap-stubs/_variables.scss | 38 - .../Console/Presets/bootstrap-stubs/app.scss | 9 - .../Console/Presets/none-stubs/app.js | 8 - .../Console/Presets/react-stubs/Example.js | 26 - .../Console/Presets/react-stubs/app.js | 16 - .../Presets/react-stubs/webpack.mix.js | 15 - .../Presets/vue-stubs/ExampleComponent.vue | 23 - .../Console/Presets/vue-stubs/app.js | 22 - .../Console/Presets/vue-stubs/webpack.mix.js | 15 - .../Console/ProviderMakeCommand.php | 50 - .../Foundation/Console/QueuedCommand.php | 42 - .../Foundation/Console/RequestMakeCommand.php | 50 - .../Console/ResourceMakeCommand.php | 91 - .../Foundation/Console/RouteCacheCommand.php | 109 - .../Foundation/Console/RouteClearCommand.php | 55 - .../Foundation/Console/RouteListCommand.php | 192 - .../Foundation/Console/RuleMakeCommand.php | 50 - .../Foundation/Console/ServeCommand.php | 90 - .../Foundation/Console/StorageLinkCommand.php | 40 - .../Foundation/Console/TestMakeCommand.php | 82 - .../Foundation/Console/UpCommand.php | 34 - .../Console/VendorPublishCommand.php | 275 - .../Foundation/Console/ViewClearCommand.php | 64 - .../Foundation/Console/stubs/console.stub | 42 - .../Console/stubs/event-handler-queued.stub | 33 - .../Console/stubs/event-handler.stub | 31 - .../Foundation/Console/stubs/event.stub | 36 - .../stubs/exception-render-report.stub | 29 - .../Console/stubs/exception-render.stub | 19 - .../Console/stubs/exception-report.stub | 18 - .../Foundation/Console/stubs/exception.stub | 10 - .../Foundation/Console/stubs/job-queued.stub | 34 - .../Foundation/Console/stubs/job.stub | 31 - .../Console/stubs/listener-duck.stub | 30 - .../Console/stubs/listener-queued-duck.stub | 32 - .../Console/stubs/listener-queued.stub | 33 - .../Foundation/Console/stubs/listener.stub | 31 - .../Foundation/Console/stubs/mail.stub | 33 - .../Console/stubs/markdown-mail.stub | 33 - .../Console/stubs/markdown-notification.stub | 58 - .../Foundation/Console/stubs/markdown.stub | 12 - .../Foundation/Console/stubs/model.stub | 10 - .../Console/stubs/notification.stub | 61 - .../Foundation/Console/stubs/pivot.model.stub | 10 - .../Console/stubs/policy.plain.stub | 21 - .../Foundation/Console/stubs/policy.stub | 59 - .../Foundation/Console/stubs/provider.stub | 28 - .../Foundation/Console/stubs/request.stub | 30 - .../Console/stubs/resource-collection.stub | 19 - .../Foundation/Console/stubs/resource.stub | 19 - .../Foundation/Console/stubs/routes.stub | 16 - .../Foundation/Console/stubs/rule.stub | 40 - .../Foundation/Console/stubs/test.stub | 20 - .../Foundation/Console/stubs/unit-test.stub | 20 - .../Foundation/EnvironmentDetector.php | 69 - .../Foundation/Events/Dispatchable.php | 26 - .../Foundation/Events/LocaleUpdated.php | 24 - .../Foundation/Exceptions/Handler.php | 493 - .../Foundation/Exceptions/views/404.blade.php | 5 - .../Foundation/Exceptions/views/419.blade.php | 9 - .../Foundation/Exceptions/views/429.blade.php | 5 - .../Foundation/Exceptions/views/500.blade.php | 5 - .../Foundation/Exceptions/views/503.blade.php | 5 - .../Exceptions/views/layout.blade.php | 57 - .../Foundation/Http/Events/RequestHandled.php | 33 - .../Exceptions/MaintenanceModeException.php | 54 - .../Foundation/Http/FormRequest.php | 227 - .../src/Illuminate/Foundation/Http/Kernel.php | 338 - .../Middleware/CheckForMaintenanceMode.php | 48 - .../Middleware/ConvertEmptyStringsToNull.php | 18 - .../Http/Middleware/TransformsRequest.php | 101 - .../Http/Middleware/TrimStrings.php | 31 - .../Http/Middleware/ValidatePostSize.php | 55 - .../Http/Middleware/VerifyCsrfToken.php | 167 - .../src/Illuminate/Foundation/Inspiring.php | 34 - .../Illuminate/Foundation/PackageManifest.php | 172 - .../Foundation/ProviderRepository.php | 210 - .../Providers/ArtisanServiceProvider.php | 967 - .../Providers/ComposerServiceProvider.php | 38 - .../ConsoleSupportServiceProvider.php | 27 - .../Providers/FormRequestServiceProvider.php | 69 - .../Providers/FoundationServiceProvider.php | 46 - .../Support/Providers/AuthServiceProvider.php | 36 - .../Providers/EventServiceProvider.php | 59 - .../Providers/RouteServiceProvider.php | 101 - .../Concerns/InteractsWithAuthentication.php | 147 - .../Testing/Concerns/InteractsWithConsole.php | 20 - .../Concerns/InteractsWithContainer.php | 32 - .../Concerns/InteractsWithDatabase.php | 91 - .../InteractsWithExceptionHandling.php | 136 - .../Testing/Concerns/InteractsWithRedis.php | 109 - .../Testing/Concerns/InteractsWithSession.php | 64 - .../Testing/Concerns/MakesHttpRequests.php | 460 - .../Concerns/MocksApplicationServices.php | 283 - .../Testing/Constraints/HasInDatabase.php | 103 - .../Constraints/SoftDeletedInDatabase.php | 103 - .../Foundation/Testing/DatabaseMigrations.php | 26 - .../Testing/DatabaseTransactions.php | 40 - .../Foundation/Testing/HttpException.php | 10 - .../Foundation/Testing/RefreshDatabase.php | 96 - .../Testing/RefreshDatabaseState.php | 13 - .../Foundation/Testing/TestCase.php | 200 - .../Foundation/Testing/TestResponse.php | 805 - .../Foundation/Testing/WithFaker.php | 47 - .../Foundation/Testing/WithoutEvents.php | 22 - .../Foundation/Testing/WithoutMiddleware.php | 22 - .../Validation/ValidatesRequests.php | 98 - .../src/Illuminate/Foundation/helpers.php | 979 - .../Illuminate/Foundation/stubs/facade.stub | 21 - .../src/Illuminate/Hashing/BcryptHasher.php | 93 - .../Hashing/HashServiceProvider.php | 37 - .../src/Illuminate/Hashing/composer.json | 35 - .../Concerns/InteractsWithContentTypes.php | 157 - .../Http/Concerns/InteractsWithFlashData.php | 64 - .../Http/Concerns/InteractsWithInput.php | 375 - .../Http/Exceptions/HttpResponseException.php | 37 - .../Http/Exceptions/PostTooLargeException.php | 23 - .../framework/src/Illuminate/Http/File.php | 10 - .../src/Illuminate/Http/FileHelpers.php | 62 - .../src/Illuminate/Http/JsonResponse.php | 114 - .../CheckResponseForModifications.php | 27 - .../Illuminate/Http/Middleware/FrameGuard.php | 24 - .../src/Illuminate/Http/RedirectResponse.php | 238 - .../framework/src/Illuminate/Http/Request.php | 624 - .../Http/Resources/CollectsResources.php | 59 - .../ConditionallyLoadsAttributes.php | 178 - .../Http/Resources/DelegatesToResource.php | 130 - .../Json/AnonymousResourceCollection.php | 27 - .../Json/PaginatedResourceResponse.php | 80 - .../Http/Resources/Json/Resource.php | 206 - .../Resources/Json/ResourceCollection.php | 63 - .../Http/Resources/Json/ResourceResponse.php | 118 - .../Illuminate/Http/Resources/MergeValue.php | 26 - .../Http/Resources/MissingValue.php | 16 - .../Http/Resources/PotentiallyMissing.php | 13 - .../src/Illuminate/Http/Response.php | 81 - .../src/Illuminate/Http/ResponseTrait.php | 141 - .../src/Illuminate/Http/Testing/File.php | 115 - .../Illuminate/Http/Testing/FileFactory.php | 51 - .../src/Illuminate/Http/Testing/MimeType.php | 827 - .../src/Illuminate/Http/UploadedFile.php | 122 - .../src/Illuminate/Http/composer.json | 37 - .../Illuminate/Log/Events/MessageLogged.php | 42 - .../src/Illuminate/Log/LogServiceProvider.php | 159 - .../framework/src/Illuminate/Log/Writer.php | 377 - .../src/Illuminate/Log/composer.json | 36 - .../Illuminate/Mail/Events/MessageSending.php | 24 - .../Illuminate/Mail/Events/MessageSent.php | 24 - .../Illuminate/Mail/MailServiceProvider.php | 145 - .../src/Illuminate/Mail/Mailable.php | 695 - .../framework/src/Illuminate/Mail/Mailer.php | 554 - .../src/Illuminate/Mail/Markdown.php | 160 - .../framework/src/Illuminate/Mail/Message.php | 328 - .../src/Illuminate/Mail/PendingMail.php | 154 - .../Illuminate/Mail/SendQueuedMailable.php | 87 - .../Mail/Transport/ArrayTransport.php | 58 - .../Mail/Transport/LogTransport.php | 59 - .../Mail/Transport/MailgunTransport.php | 168 - .../Mail/Transport/MandrillTransport.php | 105 - .../Mail/Transport/SesTransport.php | 48 - .../Mail/Transport/SparkPostTransport.php | 159 - .../Illuminate/Mail/Transport/Transport.php | 108 - .../src/Illuminate/Mail/TransportManager.php | 206 - .../src/Illuminate/Mail/composer.json | 44 - .../resources/views/html/button.blade.php | 19 - .../resources/views/html/footer.blade.php | 11 - .../resources/views/html/header.blade.php | 7 - .../resources/views/html/layout.blade.php | 54 - .../resources/views/html/message.blade.php | 27 - .../Mail/resources/views/html/panel.blade.php | 13 - .../resources/views/html/promotion.blade.php | 7 - .../views/html/promotion/button.blade.php | 13 - .../resources/views/html/subcopy.blade.php | 7 - .../Mail/resources/views/html/table.blade.php | 3 - .../resources/views/html/themes/default.css | 287 - .../resources/views/markdown/button.blade.php | 1 - .../resources/views/markdown/footer.blade.php | 1 - .../resources/views/markdown/header.blade.php | 1 - .../resources/views/markdown/layout.blade.php | 9 - .../views/markdown/message.blade.php | 27 - .../resources/views/markdown/panel.blade.php | 1 - .../views/markdown/promotion.blade.php | 1 - .../views/markdown/promotion/button.blade.php | 1 - .../views/markdown/subcopy.blade.php | 1 - .../resources/views/markdown/table.blade.php | 1 - .../src/Illuminate/Notifications/Action.php | 33 - .../Notifications/AnonymousNotifiable.php | 72 - .../Notifications/ChannelManager.php | 171 - .../Channels/BroadcastChannel.php | 77 - .../Channels/DatabaseChannel.php | 51 - .../Notifications/Channels/MailChannel.php | 201 - .../Channels/NexmoSmsChannel.php | 64 - .../Channels/SlackWebhookChannel.php | 120 - .../Console/NotificationTableCommand.php | 81 - .../Console/stubs/notifications.stub | 35 - .../Notifications/DatabaseNotification.php | 102 - .../DatabaseNotificationCollection.php | 32 - .../Events/BroadcastNotificationCreated.php | 94 - .../Events/NotificationFailed.php | 51 - .../Events/NotificationSending.php | 42 - .../Notifications/Events/NotificationSent.php | 51 - .../HasDatabaseNotifications.php | 33 - .../Messages/BroadcastMessage.php | 41 - .../Messages/DatabaseMessage.php | 24 - .../Notifications/Messages/MailMessage.php | 233 - .../Notifications/Messages/NexmoMessage.php | 76 - .../Notifications/Messages/SimpleMessage.php | 224 - .../Messages/SlackAttachment.php | 301 - .../Messages/SlackAttachmentField.php | 79 - .../Notifications/Messages/SlackMessage.php | 261 - .../Illuminate/Notifications/Notifiable.php | 8 - .../Illuminate/Notifications/Notification.php | 27 - .../Notifications/NotificationSender.php | 181 - .../NotificationServiceProvider.php | 46 - .../Notifications/RoutesNotifications.php | 54 - .../Notifications/SendQueuedNotifications.php | 93 - .../Illuminate/Notifications/composer.json | 47 - .../resources/views/email.blade.php | 58 - .../Pagination/AbstractPaginator.php | 589 - .../Pagination/LengthAwarePaginator.php | 199 - .../Pagination/PaginationServiceProvider.php | 50 - .../src/Illuminate/Pagination/Paginator.php | 177 - .../src/Illuminate/Pagination/UrlWindow.php | 218 - .../src/Illuminate/Pagination/composer.json | 35 - .../resources/views/bootstrap-4.blade.php | 36 - .../resources/views/default.blade.php | 36 - .../resources/views/semantic-ui.blade.php | 36 - .../views/simple-bootstrap-4.blade.php | 17 - .../resources/views/simple-default.blade.php | 17 - .../framework/src/Illuminate/Pipeline/Hub.php | 74 - .../src/Illuminate/Pipeline/Pipeline.php | 186 - .../Pipeline/PipelineServiceProvider.php | 40 - .../src/Illuminate/Pipeline/composer.json | 35 - .../src/Illuminate/Queue/BeanstalkdQueue.php | 163 - .../Illuminate/Queue/CallQueuedHandler.php | 152 - .../src/Illuminate/Queue/Capsule/Manager.php | 187 - .../Queue/Connectors/BeanstalkdConnector.php | 40 - .../Queue/Connectors/ConnectorInterface.php | 14 - .../Queue/Connectors/DatabaseConnector.php | 43 - .../Queue/Connectors/NullConnector.php | 19 - .../Queue/Connectors/RedisConnector.php | 51 - .../Queue/Connectors/SqsConnector.php | 46 - .../Queue/Connectors/SyncConnector.php | 19 - .../Queue/Console/FailedTableCommand.php | 102 - .../Queue/Console/FlushFailedCommand.php | 34 - .../Queue/Console/ForgetFailedCommand.php | 36 - .../Queue/Console/ListFailedCommand.php | 118 - .../Queue/Console/ListenCommand.php | 114 - .../Queue/Console/RestartCommand.php | 37 - .../Illuminate/Queue/Console/RetryCommand.php | 93 - .../Illuminate/Queue/Console/TableCommand.php | 102 - .../Illuminate/Queue/Console/WorkCommand.php | 213 - .../Queue/Console/stubs/failed_jobs.stub | 35 - .../Illuminate/Queue/Console/stubs/jobs.stub | 36 - .../src/Illuminate/Queue/DatabaseQueue.php | 330 - .../Queue/Events/JobExceptionOccurred.php | 42 - .../src/Illuminate/Queue/Events/JobFailed.php | 42 - .../Illuminate/Queue/Events/JobProcessed.php | 33 - .../Illuminate/Queue/Events/JobProcessing.php | 33 - .../src/Illuminate/Queue/Events/Looping.php | 33 - .../Queue/Events/WorkerStopping.php | 8 - .../Failed/DatabaseFailedJobProvider.php | 117 - .../Failed/FailedJobProviderInterface.php | 47 - .../Queue/Failed/NullFailedJobProvider.php | 62 - .../src/Illuminate/Queue/FailingJob.php | 50 - .../Illuminate/Queue/InteractsWithQueue.php | 76 - .../Queue/InvalidPayloadException.php | 19 - .../Illuminate/Queue/Jobs/BeanstalkdJob.php | 135 - .../src/Illuminate/Queue/Jobs/DatabaseJob.php | 100 - .../Queue/Jobs/DatabaseJobRecord.php | 63 - .../src/Illuminate/Queue/Jobs/Job.php | 271 - .../src/Illuminate/Queue/Jobs/JobName.php | 35 - .../src/Illuminate/Queue/Jobs/RedisJob.php | 139 - .../src/Illuminate/Queue/Jobs/SqsJob.php | 124 - .../src/Illuminate/Queue/Jobs/SyncJob.php | 91 - .../src/Illuminate/Queue/Listener.php | 248 - .../src/Illuminate/Queue/ListenerOptions.php | 32 - .../src/Illuminate/Queue/LuaScripts.php | 103 - .../Queue/ManuallyFailedException.php | 10 - .../Queue/MaxAttemptsExceededException.php | 10 - .../src/Illuminate/Queue/NullQueue.php | 70 - .../framework/src/Illuminate/Queue/Queue.php | 212 - .../src/Illuminate/Queue/QueueManager.php | 270 - .../Illuminate/Queue/QueueServiceProvider.php | 230 - .../framework/src/Illuminate/Queue/README.md | 34 - .../src/Illuminate/Queue/RedisQueue.php | 279 - .../SerializesAndRestoresModelIdentifiers.php | 85 - .../src/Illuminate/Queue/SerializesModels.php | 58 - .../src/Illuminate/Queue/SqsQueue.php | 155 - .../src/Illuminate/Queue/SyncQueue.php | 161 - .../framework/src/Illuminate/Queue/Worker.php | 639 - .../src/Illuminate/Queue/WorkerOptions.php | 69 - .../src/Illuminate/Queue/composer.json | 48 - .../Redis/Connections/Connection.php | 110 - .../Connections/PhpRedisClusterConnection.php | 8 - .../Redis/Connections/PhpRedisConnection.php | 411 - .../Connections/PredisClusterConnection.php | 8 - .../Redis/Connections/PredisConnection.php | 45 - .../Redis/Connectors/PhpRedisConnector.php | 117 - .../Redis/Connectors/PredisConnector.php | 44 - .../Redis/Limiters/ConcurrencyLimiter.php | 130 - .../Limiters/ConcurrencyLimiterBuilder.php | 122 - .../Redis/Limiters/DurationLimiter.php | 147 - .../Redis/Limiters/DurationLimiterBuilder.php | 122 - .../src/Illuminate/Redis/RedisManager.php | 142 - .../Illuminate/Redis/RedisServiceProvider.php | 44 - .../src/Illuminate/Redis/composer.json | 36 - .../Routing/Console/ControllerMakeCommand.php | 172 - .../Routing/Console/MiddlewareMakeCommand.php | 50 - .../Console/stubs/controller.model.stub | 86 - .../Console/stubs/controller.nested.stub | 94 - .../Console/stubs/controller.plain.stub | 11 - .../Routing/Console/stubs/controller.stub | 85 - .../Routing/Console/stubs/middleware.stub | 20 - .../Contracts/ControllerDispatcher.php | 27 - .../src/Illuminate/Routing/Controller.php | 70 - .../Routing/ControllerDispatcher.php | 81 - .../Routing/ControllerMiddlewareOptions.php | 50 - .../Routing/Events/RouteMatched.php | 33 - .../Exceptions/UrlGenerationException.php | 19 - .../Routing/ImplicitRouteBinding.php | 60 - .../Routing/Matching/HostValidator.php | 25 - .../Routing/Matching/MethodValidator.php | 21 - .../Routing/Matching/SchemeValidator.php | 27 - .../Routing/Matching/UriValidator.php | 23 - .../Routing/Matching/ValidatorInterface.php | 18 - .../Routing/Middleware/SubstituteBindings.php | 43 - .../Routing/Middleware/ThrottleRequests.php | 193 - .../Middleware/ThrottleRequestsWithRedis.php | 119 - .../Routing/MiddlewareNameResolver.php | 85 - .../Routing/PendingResourceRegistration.php | 154 - .../src/Illuminate/Routing/Pipeline.php | 91 - .../Illuminate/Routing/RedirectController.php | 21 - .../src/Illuminate/Routing/Redirector.php | 213 - .../Illuminate/Routing/ResourceRegistrar.php | 440 - .../Illuminate/Routing/ResponseFactory.php | 215 - .../src/Illuminate/Routing/Route.php | 898 - .../src/Illuminate/Routing/RouteAction.php | 89 - .../src/Illuminate/Routing/RouteBinding.php | 82 - .../Illuminate/Routing/RouteCollection.php | 351 - .../src/Illuminate/Routing/RouteCompiler.php | 54 - .../Routing/RouteDependencyResolverTrait.php | 111 - .../src/Illuminate/Routing/RouteGroup.php | 95 - .../Routing/RouteParameterBinder.php | 120 - .../src/Illuminate/Routing/RouteRegistrar.php | 180 - .../Routing/RouteSignatureParameters.php | 45 - .../Illuminate/Routing/RouteUrlGenerator.php | 307 - .../src/Illuminate/Routing/Router.php | 1217 -- .../Routing/RoutingServiceProvider.php | 166 - .../Illuminate/Routing/SortedMiddleware.php | 84 - .../src/Illuminate/Routing/UrlGenerator.php | 629 - .../src/Illuminate/Routing/ViewController.php | 39 - .../src/Illuminate/Routing/composer.json | 47 - .../Session/CacheBasedSessionHandler.php | 94 - .../Session/Console/SessionTableCommand.php | 81 - .../Session/Console/stubs/database.stub | 35 - .../Session/CookieSessionHandler.php | 121 - .../Session/DatabaseSessionHandler.php | 294 - .../src/Illuminate/Session/EncryptedStore.php | 69 - .../Session/ExistenceAwareInterface.php | 14 - .../Illuminate/Session/FileSessionHandler.php | 113 - .../Middleware/AuthenticateSession.php | 96 - .../Session/Middleware/StartSession.php | 242 - .../Illuminate/Session/NullSessionHandler.php | 56 - .../src/Illuminate/Session/SessionManager.php | 215 - .../Session/SessionServiceProvider.php | 50 - .../src/Illuminate/Session/Store.php | 656 - .../Session/TokenMismatchException.php | 10 - .../src/Illuminate/Session/composer.json | 41 - .../Support/AggregateServiceProvider.php | 52 - .../framework/src/Illuminate/Support/Arr.php | 610 - .../src/Illuminate/Support/Carbon.php | 59 - .../src/Illuminate/Support/Collection.php | 1798 -- .../src/Illuminate/Support/Composer.php | 99 - .../src/Illuminate/Support/Debug/Dumper.php | 26 - .../Illuminate/Support/Debug/HtmlDumper.php | 29 - .../src/Illuminate/Support/Facades/App.php | 31 - .../Illuminate/Support/Facades/Artisan.php | 27 - .../src/Illuminate/Support/Facades/Auth.php | 48 - .../src/Illuminate/Support/Facades/Blade.php | 19 - .../Illuminate/Support/Facades/Broadcast.php | 21 - .../src/Illuminate/Support/Facades/Bus.php | 32 - .../src/Illuminate/Support/Facades/Cache.php | 20 - .../src/Illuminate/Support/Facades/Config.php | 19 - .../src/Illuminate/Support/Facades/Cookie.php | 42 - .../src/Illuminate/Support/Facades/Crypt.php | 19 - .../src/Illuminate/Support/Facades/DB.php | 20 - .../src/Illuminate/Support/Facades/Event.php | 35 - .../src/Illuminate/Support/Facades/Facade.php | 223 - .../src/Illuminate/Support/Facades/File.php | 19 - .../src/Illuminate/Support/Facades/Gate.php | 21 - .../src/Illuminate/Support/Facades/Hash.php | 19 - .../src/Illuminate/Support/Facades/Input.php | 33 - .../src/Illuminate/Support/Facades/Lang.php | 19 - .../src/Illuminate/Support/Facades/Log.php | 21 - .../src/Illuminate/Support/Facades/Mail.php | 31 - .../Support/Facades/Notification.php | 47 - .../Illuminate/Support/Facades/Password.php | 54 - .../src/Illuminate/Support/Facades/Queue.php | 32 - .../Illuminate/Support/Facades/Redirect.php | 19 - .../src/Illuminate/Support/Facades/Redis.php | 20 - .../Illuminate/Support/Facades/Request.php | 19 - .../Illuminate/Support/Facades/Response.php | 21 - .../src/Illuminate/Support/Facades/Route.php | 42 - .../src/Illuminate/Support/Facades/Schema.php | 35 - .../Illuminate/Support/Facades/Session.php | 20 - .../Illuminate/Support/Facades/Storage.php | 54 - .../src/Illuminate/Support/Facades/URL.php | 19 - .../Illuminate/Support/Facades/Validator.php | 19 - .../src/Illuminate/Support/Facades/View.php | 19 - .../src/Illuminate/Support/Fluent.php | 192 - .../Support/HigherOrderCollectionProxy.php | 63 - .../Support/HigherOrderTapProxy.php | 38 - .../src/Illuminate/Support/HtmlString.php | 46 - .../Illuminate/Support/InteractsWithTime.php | 64 - .../src/Illuminate/Support/Manager.php | 140 - .../src/Illuminate/Support/MessageBag.php | 395 - .../Support/NamespacedItemResolver.php | 102 - .../src/Illuminate/Support/Optional.php | 110 - .../src/Illuminate/Support/Pluralizer.php | 119 - .../src/Illuminate/Support/ProcessUtils.php | 69 - .../Illuminate/Support/ServiceProvider.php | 300 - .../framework/src/Illuminate/Support/Str.php | 683 - .../Support/Testing/Fakes/BusFake.php | 132 - .../Support/Testing/Fakes/EventFake.php | 260 - .../Support/Testing/Fakes/MailFake.php | 316 - .../Testing/Fakes/NotificationFake.php | 197 - .../Support/Testing/Fakes/PendingMailFake.php | 53 - .../Support/Testing/Fakes/QueueFake.php | 267 - .../Support/Traits/CapsuleManagerTrait.php | 69 - .../Illuminate/Support/Traits/Macroable.php | 107 - .../src/Illuminate/Support/ViewErrorBag.php | 130 - .../src/Illuminate/Support/composer.json | 48 - .../src/Illuminate/Support/helpers.php | 1176 -- .../Illuminate/Translation/ArrayLoader.php | 85 - .../src/Illuminate/Translation/FileLoader.php | 187 - .../Translation/MessageSelector.php | 412 - .../TranslationServiceProvider.php | 62 - .../src/Illuminate/Translation/Translator.php | 479 - .../src/Illuminate/Translation/composer.json | 36 - .../Validation/ClosureValidationRule.php | 70 - .../Validation/Concerns/FormatsMessages.php | 384 - .../Concerns/ReplacesAttributes.php | 380 - .../Concerns/ValidatesAttributes.php | 1478 -- .../Validation/DatabasePresenceVerifier.php | 138 - .../src/Illuminate/Validation/Factory.php | 283 - .../Validation/PresenceVerifierInterface.php | 30 - .../src/Illuminate/Validation/Rule.php | 67 - .../Validation/Rules/DatabaseRule.php | 172 - .../Validation/Rules/Dimensions.php | 131 - .../Illuminate/Validation/Rules/Exists.php | 22 - .../src/Illuminate/Validation/Rules/In.php | 45 - .../src/Illuminate/Validation/Rules/NotIn.php | 43 - .../Illuminate/Validation/Rules/Unique.php | 53 - .../Validation/UnauthorizedException.php | 10 - .../Validation/ValidatesWhenResolvedTrait.php | 86 - .../Illuminate/Validation/ValidationData.php | 106 - .../Validation/ValidationException.php | 138 - .../Validation/ValidationRuleParser.php | 275 - .../Validation/ValidationServiceProvider.php | 72 - .../src/Illuminate/Validation/Validator.php | 1142 -- .../src/Illuminate/Validation/composer.json | 41 - .../View/Compilers/BladeCompiler.php | 468 - .../Illuminate/View/Compilers/Compiler.php | 74 - .../View/Compilers/CompilerInterface.php | 30 - .../Concerns/CompilesAuthorizations.php | 70 - .../Compilers/Concerns/CompilesComments.php | 19 - .../Compilers/Concerns/CompilesComponents.php | 48 - .../Concerns/CompilesConditionals.php | 204 - .../View/Compilers/Concerns/CompilesEchos.php | 105 - .../Compilers/Concerns/CompilesIncludes.php | 69 - .../Compilers/Concerns/CompilesInjections.php | 23 - .../View/Compilers/Concerns/CompilesJson.php | 30 - .../Compilers/Concerns/CompilesLayouts.php | 116 - .../View/Compilers/Concerns/CompilesLoops.php | 180 - .../Compilers/Concerns/CompilesRawPhp.php | 32 - .../Compilers/Concerns/CompilesStacks.php | 59 - .../Concerns/CompilesTranslations.php | 44 - .../View/Concerns/ManagesComponents.php | 128 - .../View/Concerns/ManagesEvents.php | 192 - .../View/Concerns/ManagesLayouts.php | 218 - .../Illuminate/View/Concerns/ManagesLoops.php | 90 - .../View/Concerns/ManagesStacks.php | 177 - .../View/Concerns/ManagesTranslations.php | 38 - .../View/Engines/CompilerEngine.php | 102 - .../src/Illuminate/View/Engines/Engine.php | 23 - .../View/Engines/EngineResolver.php | 59 - .../Illuminate/View/Engines/FileEngine.php | 20 - .../src/Illuminate/View/Engines/PhpEngine.php | 70 - .../framework/src/Illuminate/View/Factory.php | 563 - .../src/Illuminate/View/FileViewFinder.php | 298 - .../Middleware/ShareErrorsFromSession.php | 51 - .../framework/src/Illuminate/View/View.php | 414 - .../Illuminate/View/ViewFinderInterface.php | 71 - .../src/Illuminate/View/ViewName.php | 25 - .../Illuminate/View/ViewServiceProvider.php | 149 - .../src/Illuminate/View/composer.json | 39 - vendor/laravel/tinker/LICENSE.txt | 21 - vendor/laravel/tinker/README.md | 36 - vendor/laravel/tinker/composer.json | 49 - .../tinker/src/ClassAliasAutoloader.php | 108 - .../tinker/src/Console/TinkerCommand.php | 119 - vendor/laravel/tinker/src/TinkerCaster.php | 95 - .../tinker/src/TinkerServiceProvider.php | 40 - vendor/laravelcollective/html/CONTRIBUTING.md | 3 - vendor/laravelcollective/html/LICENSE.txt | 21 - vendor/laravelcollective/html/composer.json | 54 - vendor/laravelcollective/html/readme.md | 9 - .../html/src/Componentable.php | 110 - .../html/src/Eloquent/FormAccessible.php | 119 - .../html/src/FormBuilder.php | 1319 -- .../laravelcollective/html/src/FormFacade.php | 22 - .../html/src/HtmlBuilder.php | 566 - .../laravelcollective/html/src/HtmlFacade.php | 22 - .../html/src/HtmlServiceProvider.php | 107 - vendor/laravelcollective/html/src/helpers.php | 70 - vendor/league/flysystem/LICENSE | 19 - vendor/league/flysystem/composer.json | 64 - vendor/league/flysystem/docs/.gitignore | 3 - vendor/league/flysystem/docs/CNAME | 1 - vendor/league/flysystem/docs/_data/images.yml | 8 - vendor/league/flysystem/docs/_data/menu.yml | 32 - .../league/flysystem/docs/_data/project.yml | 4 - .../flysystem/docs/_layouts/default.html | 100 - .../flysystem/docs/adapter/aws-s3-v2.md | 55 - .../flysystem/docs/adapter/aws-s3-v3.md | 61 - vendor/league/flysystem/docs/adapter/azure.md | 31 - vendor/league/flysystem/docs/adapter/copy.md | 24 - .../docs/adapter/digitalocean-spaces.md | 10 - .../league/flysystem/docs/adapter/dropbox.md | 29 - vendor/league/flysystem/docs/adapter/ftp.md | 31 - .../league/flysystem/docs/adapter/gridfs.md | 26 - vendor/league/flysystem/docs/adapter/local.md | 62 - .../league/flysystem/docs/adapter/memory.md | 24 - .../flysystem/docs/adapter/null-test.md | 20 - vendor/league/flysystem/docs/adapter/phpcr.md | 48 - .../flysystem/docs/adapter/rackspace.md | 32 - .../flysystem/docs/adapter/replicate.md | 24 - vendor/league/flysystem/docs/adapter/sftp.md | 30 - .../league/flysystem/docs/adapter/webdav.md | 21 - .../flysystem/docs/adapter/zip-archive.md | 30 - vendor/league/flysystem/docs/api.md | 231 - vendor/league/flysystem/docs/caching.md | 126 - vendor/league/flysystem/docs/core-concepts.md | 71 - .../flysystem/docs/creating-an-adapter.md | 59 - vendor/league/flysystem/docs/index.md | 49 - vendor/league/flysystem/docs/installation.md | 32 - vendor/league/flysystem/docs/integrations.md | 26 - .../docs/logo/become_a_patron_button.png | Bin 3086 -> 0 bytes .../docs/logo/become_a_patron_button@2x.png | Bin 6579 -> 0 bytes .../docs/logo/become_a_patron_button@3x.png | Bin 10221 -> 0 bytes vendor/league/flysystem/docs/logo/laravel.svg | 18 - vendor/league/flysystem/docs/mount-manager.md | 80 - vendor/league/flysystem/docs/performance.md | 26 - vendor/league/flysystem/docs/plugins.md | 46 - vendor/league/flysystem/docs/recipes.md | 99 - vendor/league/flysystem/docs/sponsors.md | 24 - .../league/flysystem/docs/upgrade-to-1.0.0.md | 66 - .../flysystem/src/Adapter/AbstractAdapter.php | 71 - .../src/Adapter/AbstractFtpAdapter.php | 628 - .../src/Adapter/CanOverwriteFiles.php | 10 - vendor/league/flysystem/src/Adapter/Ftp.php | 568 - vendor/league/flysystem/src/Adapter/Ftpd.php | 40 - vendor/league/flysystem/src/Adapter/Local.php | 510 - .../flysystem/src/Adapter/NullAdapter.php | 144 - .../Polyfill/NotSupportingVisibilityTrait.php | 33 - .../Adapter/Polyfill/StreamedCopyTrait.php | 49 - .../Adapter/Polyfill/StreamedReadingTrait.php | 44 - .../src/Adapter/Polyfill/StreamedTrait.php | 9 - .../Adapter/Polyfill/StreamedWritingTrait.php | 60 - .../flysystem/src/Adapter/SynologyFtp.php | 8 - .../league/flysystem/src/AdapterInterface.php | 118 - vendor/league/flysystem/src/Config.php | 107 - .../league/flysystem/src/ConfigAwareTrait.php | 49 - vendor/league/flysystem/src/Directory.php | 28 - vendor/league/flysystem/src/Exception.php | 8 - vendor/league/flysystem/src/File.php | 202 - .../flysystem/src/FileExistsException.php | 37 - .../flysystem/src/FileNotFoundException.php | 37 - vendor/league/flysystem/src/Filesystem.php | 405 - .../flysystem/src/FilesystemInterface.php | 276 - .../src/FilesystemNotFoundException.php | 12 - vendor/league/flysystem/src/Handler.php | 134 - vendor/league/flysystem/src/MountManager.php | 320 - .../flysystem/src/NotSupportedException.php | 37 - .../flysystem/src/Plugin/AbstractPlugin.php | 24 - .../league/flysystem/src/Plugin/EmptyDir.php | 34 - .../flysystem/src/Plugin/ForcedCopy.php | 42 - .../flysystem/src/Plugin/ForcedRename.php | 42 - .../flysystem/src/Plugin/GetWithMetadata.php | 49 - .../league/flysystem/src/Plugin/ListFiles.php | 35 - .../league/flysystem/src/Plugin/ListPaths.php | 36 - .../league/flysystem/src/Plugin/ListWith.php | 60 - .../flysystem/src/Plugin/PluggableTrait.php | 97 - .../src/Plugin/PluginNotFoundException.php | 10 - .../league/flysystem/src/PluginInterface.php | 20 - vendor/league/flysystem/src/ReadInterface.php | 88 - .../flysystem/src/RootViolationException.php | 10 - vendor/league/flysystem/src/SafeStorage.php | 39 - .../flysystem/src/UnreadableFileException.php | 18 - vendor/league/flysystem/src/Util.php | 348 - .../src/Util/ContentListingFormatter.php | 116 - vendor/league/flysystem/src/Util/MimeType.php | 217 - .../flysystem/src/Util/StreamHasher.php | 36 - .../league/flysystem/wait_for_ftp_service.php | 20 - vendor/mockery/mockery/.gitignore | 13 - vendor/mockery/mockery/.php_cs | 30 - vendor/mockery/mockery/.scrutinizer.yml | 24 - vendor/mockery/mockery/.styleci.yml | 6 - vendor/mockery/mockery/.travis.yml | 82 - vendor/mockery/mockery/CHANGELOG.md | 72 - vendor/mockery/mockery/CONTRIBUTING.md | 88 - vendor/mockery/mockery/LICENSE | 27 - vendor/mockery/mockery/README.md | 286 - vendor/mockery/mockery/composer.json | 48 - vendor/mockery/mockery/docs/.gitignore | 1 - vendor/mockery/mockery/docs/Makefile | 177 - vendor/mockery/mockery/docs/README.md | 4 - vendor/mockery/mockery/docs/conf.py | 267 - .../docs/cookbook/big_parent_class.rst | 52 - .../mockery/docs/cookbook/class_constants.rst | 144 - .../docs/cookbook/default_expectations.rst | 17 - .../docs/cookbook/detecting_mock_objects.rst | 13 - .../mockery/mockery/docs/cookbook/index.rst | 15 - .../mockery/mockery/docs/cookbook/map.rst.inc | 7 - .../mockery/docs/cookbook/mockery_on.rst | 85 - .../cookbook/mocking_hard_dependencies.rst | 99 - .../cookbook/not_calling_the_constructor.rst | 63 - .../mockery/docs/getting_started/index.rst | 12 - .../docs/getting_started/installation.rst | 43 - .../mockery/docs/getting_started/map.rst.inc | 4 - .../docs/getting_started/quick_reference.rst | 200 - .../docs/getting_started/simple_example.rst | 70 - .../docs/getting_started/upgrading.rst | 31 - vendor/mockery/mockery/docs/index.rst | 76 - .../mockery/docs/mockery/configuration.rst | 52 - .../mockery/docs/mockery/exceptions.rst | 65 - .../mockery/mockery/docs/mockery/gotchas.rst | 48 - vendor/mockery/mockery/docs/mockery/index.rst | 12 - .../mockery/mockery/docs/mockery/map.rst.inc | 4 - .../docs/mockery/reserved_method_names.rst | 20 - .../alternative_should_receive_syntax.rst | 91 - .../docs/reference/argument_validation.rst | 317 - .../docs/reference/creating_test_doubles.rst | 419 - .../mockery/docs/reference/demeter_chains.rst | 38 - .../mockery/docs/reference/expectations.rst | 465 - .../docs/reference/final_methods_classes.rst | 26 - .../mockery/mockery/docs/reference/index.rst | 22 - .../docs/reference/instance_mocking.rst | 22 - .../mockery/docs/reference/magic_methods.rst | 16 - .../mockery/docs/reference/map.rst.inc | 14 - .../mockery/docs/reference/partial_mocks.rst | 115 - .../pass_by_reference_behaviours.rst | 130 - .../docs/reference/phpunit_integration.rst | 151 - .../docs/reference/protected_methods.rst | 26 - .../docs/reference/public_properties.rst | 20 - .../reference/public_static_properties.rst | 15 - .../mockery/mockery/docs/reference/spies.rst | 154 - vendor/mockery/mockery/library/Mockery.php | 857 - .../Phpunit/MockeryPHPUnitIntegration.php | 88 - .../Adapter/Phpunit/MockeryTestCase.php | 26 - .../Mockery/Adapter/Phpunit/TestListener.php | 72 - .../library/Mockery/CompositeExpectation.php | 140 - .../mockery/library/Mockery/Configuration.php | 130 - .../mockery/library/Mockery/Container.php | 537 - .../Mockery/CountValidator/AtLeast.php | 62 - .../library/Mockery/CountValidator/AtMost.php | 51 - .../CountValidator/CountValidatorAbstract.php | 69 - .../library/Mockery/CountValidator/Exact.php | 54 - .../Mockery/CountValidator/Exception.php | 25 - .../mockery/library/Mockery/Exception.php | 25 - .../Exception/BadMethodCallException.php | 23 - .../Exception/InvalidArgumentException.php | 25 - .../Exception/InvalidCountException.php | 102 - .../Exception/InvalidOrderException.php | 83 - .../NoMatchingExpectationException.php | 70 - .../Mockery/Exception/RuntimeException.php | 25 - .../mockery/library/Mockery/Expectation.php | 845 - .../library/Mockery/ExpectationDirector.php | 218 - .../library/Mockery/ExpectationInterface.php | 57 - .../Mockery/ExpectsHigherOrderMessage.php | 38 - .../Mockery/Generator/CachingGenerator.php | 45 - .../Mockery/Generator/DefinedTargetClass.php | 108 - .../library/Mockery/Generator/Generator.php | 27 - .../library/Mockery/Generator/Method.php | 61 - .../Mockery/Generator/MockConfiguration.php | 541 - .../Generator/MockConfigurationBuilder.php | 169 - .../Mockery/Generator/MockDefinition.php | 51 - .../library/Mockery/Generator/Parameter.php | 110 - .../Pass/CallTypeHintPass.php | 47 - .../StringManipulation/Pass/ClassNamePass.php | 49 - .../StringManipulation/Pass/ClassPass.php | 52 - .../Pass/InstanceMockPass.php | 81 - .../StringManipulation/Pass/InterfacePass.php | 48 - .../Pass/MagicMethodTypeHintsPass.php | 210 - .../Pass/MethodDefinitionPass.php | 191 - .../StringManipulation/Pass/Pass.php | 28 - .../RemoveBuiltinMethodsThatAreFinalPass.php | 53 - .../Pass/RemoveDestructorPass.php | 45 - ...lizeForInternalSerializableClassesPass.php | 58 - .../StringManipulation/Pass/TraitPass.php | 47 - .../Generator/StringManipulationGenerator.php | 85 - .../Generator/TargetClassInterface.php | 107 - .../Generator/UndefinedTargetClass.php | 89 - .../library/Mockery/HigherOrderMessage.php | 50 - .../mockery/library/Mockery/Instantiator.php | 210 - .../library/Mockery/Loader/EvalLoader.php | 36 - .../mockery/library/Mockery/Loader/Loader.php | 28 - .../library/Mockery/Loader/RequireLoader.php | 46 - .../mockery/library/Mockery/Matcher/Any.php | 45 - .../library/Mockery/Matcher/AnyArgs.php | 40 - .../mockery/library/Mockery/Matcher/AnyOf.php | 51 - .../Mockery/Matcher/ArgumentListMatcher.php | 25 - .../library/Mockery/Matcher/Closure.php | 47 - .../library/Mockery/Matcher/Contains.php | 64 - .../library/Mockery/Matcher/Ducktype.php | 53 - .../library/Mockery/Matcher/HasKey.php | 45 - .../library/Mockery/Matcher/HasValue.php | 46 - .../Mockery/Matcher/MatcherAbstract.php | 58 - .../Mockery/Matcher/MultiArgumentClosure.php | 49 - .../library/Mockery/Matcher/MustBe.php | 52 - .../library/Mockery/Matcher/NoArgs.php | 40 - .../mockery/library/Mockery/Matcher/Not.php | 46 - .../library/Mockery/Matcher/NotAnyOf.php | 51 - .../Mockery/Matcher/PHPUnitConstraint.php | 76 - .../library/Mockery/Matcher/Pattern.php | 45 - .../library/Mockery/Matcher/Subset.php | 92 - .../mockery/library/Mockery/Matcher/Type.php | 52 - .../mockery/library/Mockery/MethodCall.php | 43 - .../mockery/mockery/library/Mockery/Mock.php | 894 - .../mockery/library/Mockery/MockInterface.php | 240 - .../library/Mockery/ReceivedMethodCalls.php | 48 - .../mockery/library/Mockery/Undefined.php | 46 - .../library/Mockery/VerificationDirector.php | 107 - .../Mockery/VerificationExpectation.php | 35 - vendor/mockery/mockery/library/helpers.php | 51 - vendor/mockery/mockery/phpunit.xml.dist | 35 - vendor/mockery/mockery/tests/Bootstrap.php | 66 - .../Phpunit/MockeryPHPUnitIntegrationTest.php | 60 - .../Adapter/Phpunit/TestListenerTest.php | 94 - .../mockery/tests/Mockery/AdhocTest.php | 119 - .../tests/Mockery/AllowsExpectsSyntaxTest.php | 111 - .../mockery/tests/Mockery/ContainerTest.php | 1804 -- .../tests/Mockery/DemeterChainTest.php | 170 - .../tests/Mockery/DummyClasses/Namespaced.php | 35 - .../mockery/tests/Mockery/ExpectationTest.php | 2228 --- .../Fixtures/MethodWithIterableTypeHints.php | 29 - .../Fixtures/MethodWithNullableReturnType.php | 67 - .../MethodWithNullableTypedParameter.php | 37 - .../MethodWithParametersWithDefaultValues.php | 33 - .../Fixtures/MethodWithVoidReturnType.php | 29 - .../Fixtures/SemiReservedWordsAsMethods.php | 71 - .../Generator/DefinedTargetClassTest.php | 45 - .../MockConfigurationBuilderTest.php | 85 - .../Generator/MockConfigurationTest.php | 218 - .../Pass/CallTypeHintPassTest.php | 59 - .../Pass/ClassNamePassTest.php | 78 - .../Pass/InstanceMockPassTest.php | 44 - .../Pass/InterfacePassTest.php | 66 - .../Pass/MagicMethodTypeHintsPassTest.php | 392 - .../tests/Mockery/GlobalHelpersTest.php | 63 - .../tests/Mockery/HamcrestExpectationTest.php | 62 - .../tests/Mockery/Loader/EvalLoaderTest.php | 35 - .../tests/Mockery/Loader/LoaderTestCase.php | 47 - .../Mockery/Loader/RequireLoaderTest.php | 35 - .../Mockery/Matcher/PHPUnitConstraintTest.php | 95 - .../tests/Mockery/Matcher/SubsetTest.php | 97 - .../Mockery/MockClassWithFinalWakeupTest.php | 94 - .../MockClassWithMethodOverloadingTest.php | 43 - .../MockClassWithUnknownTypeHintTest.php | 43 - .../mockery/tests/Mockery/MockTest.php | 186 - ...anMockClassesWithSemiReservedWordsTest.php | 28 - ...MockMultipleInterfacesWhichOverlapTest.php | 65 - ...ockingMethodsWithIterableTypeHintsTest.php | 39 - ...ckingMethodsWithNullableParametersTest.php | 52 - .../Mockery/MockingNullableMethodsTest.php | 217 - .../MockingParameterAndReturnTypesTest.php | 177 - .../Mockery/MockingProtectedMethodsTest.php | 133 - .../Mockery/MockingVariadicArgumentsTest.php | 45 - .../tests/Mockery/MockingVoidMethodsTest.php | 53 - .../mockery/tests/Mockery/NamedMockTest.php | 68 - .../Mockery/Php72LanguageFeaturesTest.php | 41 - .../mockery/mockery/tests/Mockery/SpyTest.php | 114 - .../mockery/tests/Mockery/TraitsTest.php | 72 - .../Mockery/WithFormatterExpectationTest.php | 123 - .../mockery/tests/Mockery/_files/file.txt | 0 vendor/monolog/monolog/.php_cs | 59 - vendor/monolog/monolog/CHANGELOG.md | 342 - vendor/monolog/monolog/LICENSE | 19 - vendor/monolog/monolog/README.md | 95 - vendor/monolog/monolog/composer.json | 66 - vendor/monolog/monolog/doc/01-usage.md | 231 - .../doc/02-handlers-formatters-processors.md | 157 - vendor/monolog/monolog/doc/03-utilities.md | 13 - vendor/monolog/monolog/doc/04-extending.md | 76 - vendor/monolog/monolog/doc/sockets.md | 39 - vendor/monolog/monolog/phpunit.xml.dist | 19 - .../monolog/src/Monolog/ErrorHandler.php | 230 - .../Monolog/Formatter/ChromePHPFormatter.php | 78 - .../Monolog/Formatter/ElasticaFormatter.php | 89 - .../Monolog/Formatter/FlowdockFormatter.php | 116 - .../Monolog/Formatter/FluentdFormatter.php | 85 - .../Monolog/Formatter/FormatterInterface.php | 36 - .../Formatter/GelfMessageFormatter.php | 138 - .../src/Monolog/Formatter/HtmlFormatter.php | 141 - .../src/Monolog/Formatter/JsonFormatter.php | 208 - .../src/Monolog/Formatter/LineFormatter.php | 179 - .../src/Monolog/Formatter/LogglyFormatter.php | 47 - .../Monolog/Formatter/LogstashFormatter.php | 166 - .../Monolog/Formatter/MongoDBFormatter.php | 105 - .../Monolog/Formatter/NormalizerFormatter.php | 297 - .../src/Monolog/Formatter/ScalarFormatter.php | 48 - .../Monolog/Formatter/WildfireFormatter.php | 113 - .../src/Monolog/Handler/AbstractHandler.php | 186 - .../Handler/AbstractProcessingHandler.php | 66 - .../Monolog/Handler/AbstractSyslogHandler.php | 101 - .../src/Monolog/Handler/AmqpHandler.php | 148 - .../Monolog/Handler/BrowserConsoleHandler.php | 230 - .../src/Monolog/Handler/BufferHandler.php | 117 - .../src/Monolog/Handler/ChromePHPHandler.php | 211 - .../src/Monolog/Handler/CouchDBHandler.php | 72 - .../src/Monolog/Handler/CubeHandler.php | 151 - .../monolog/src/Monolog/Handler/Curl/Util.php | 57 - .../Monolog/Handler/DeduplicationHandler.php | 169 - .../Handler/DoctrineCouchDBHandler.php | 45 - .../src/Monolog/Handler/DynamoDbHandler.php | 107 - .../Monolog/Handler/ElasticSearchHandler.php | 128 - .../src/Monolog/Handler/ErrorLogHandler.php | 82 - .../src/Monolog/Handler/FilterHandler.php | 140 - .../ActivationStrategyInterface.php | 28 - .../ChannelLevelActivationStrategy.php | 59 - .../ErrorLevelActivationStrategy.php | 34 - .../Monolog/Handler/FingersCrossedHandler.php | 163 - .../src/Monolog/Handler/FirePHPHandler.php | 195 - .../src/Monolog/Handler/FleepHookHandler.php | 126 - .../src/Monolog/Handler/FlowdockHandler.php | 127 - .../src/Monolog/Handler/GelfHandler.php | 73 - .../src/Monolog/Handler/GroupHandler.php | 104 - .../src/Monolog/Handler/HandlerInterface.php | 90 - .../src/Monolog/Handler/HandlerWrapper.php | 108 - .../src/Monolog/Handler/HipChatHandler.php | 350 - .../src/Monolog/Handler/IFTTTHandler.php | 69 - .../src/Monolog/Handler/LogEntriesHandler.php | 55 - .../src/Monolog/Handler/LogglyHandler.php | 102 - .../src/Monolog/Handler/MailHandler.php | 67 - .../src/Monolog/Handler/MandrillHandler.php | 68 - .../Handler/MissingExtensionException.php | 21 - .../src/Monolog/Handler/MongoDBHandler.php | 59 - .../Monolog/Handler/NativeMailerHandler.php | 185 - .../src/Monolog/Handler/NewRelicHandler.php | 202 - .../src/Monolog/Handler/NullHandler.php | 45 - .../src/Monolog/Handler/PHPConsoleHandler.php | 242 - .../src/Monolog/Handler/PsrHandler.php | 56 - .../src/Monolog/Handler/PushoverHandler.php | 185 - .../src/Monolog/Handler/RavenHandler.php | 232 - .../src/Monolog/Handler/RedisHandler.php | 97 - .../src/Monolog/Handler/RollbarHandler.php | 132 - .../Monolog/Handler/RotatingFileHandler.php | 178 - .../src/Monolog/Handler/SamplingHandler.php | 82 - .../src/Monolog/Handler/Slack/SlackRecord.php | 294 - .../src/Monolog/Handler/SlackHandler.php | 215 - .../Monolog/Handler/SlackWebhookHandler.php | 115 - .../src/Monolog/Handler/SlackbotHandler.php | 80 - .../src/Monolog/Handler/SocketHandler.php | 346 - .../src/Monolog/Handler/StreamHandler.php | 176 - .../Monolog/Handler/SwiftMailerHandler.php | 99 - .../src/Monolog/Handler/SyslogHandler.php | 67 - .../Monolog/Handler/SyslogUdp/UdpSocket.php | 56 - .../src/Monolog/Handler/SyslogUdpHandler.php | 103 - .../src/Monolog/Handler/TestHandler.php | 154 - .../Handler/WhatFailureGroupHandler.php | 61 - .../Monolog/Handler/ZendMonitorHandler.php | 95 - vendor/monolog/monolog/src/Monolog/Logger.php | 700 - .../src/Monolog/Processor/GitProcessor.php | 64 - .../Processor/IntrospectionProcessor.php | 112 - .../Processor/MemoryPeakUsageProcessor.php | 35 - .../src/Monolog/Processor/MemoryProcessor.php | 63 - .../Processor/MemoryUsageProcessor.php | 35 - .../Monolog/Processor/MercurialProcessor.php | 63 - .../Monolog/Processor/ProcessIdProcessor.php | 31 - .../Processor/PsrLogMessageProcessor.php | 48 - .../src/Monolog/Processor/TagProcessor.php | 44 - .../src/Monolog/Processor/UidProcessor.php | 46 - .../src/Monolog/Processor/WebProcessor.php | 113 - .../monolog/monolog/src/Monolog/Registry.php | 134 - .../tests/Monolog/ErrorHandlerTest.php | 31 - .../Formatter/ChromePHPFormatterTest.php | 158 - .../Formatter/ElasticaFormatterTest.php | 79 - .../Formatter/FlowdockFormatterTest.php | 55 - .../Formatter/FluentdFormatterTest.php | 62 - .../Formatter/GelfMessageFormatterTest.php | 258 - .../Monolog/Formatter/JsonFormatterTest.php | 183 - .../Monolog/Formatter/LineFormatterTest.php | 222 - .../Monolog/Formatter/LogglyFormatterTest.php | 40 - .../Formatter/LogstashFormatterTest.php | 333 - .../Formatter/MongoDBFormatterTest.php | 262 - .../Formatter/NormalizerFormatterTest.php | 423 - .../Monolog/Formatter/ScalarFormatterTest.php | 110 - .../Formatter/WildfireFormatterTest.php | 142 - .../Monolog/Handler/AbstractHandlerTest.php | 115 - .../Handler/AbstractProcessingHandlerTest.php | 80 - .../tests/Monolog/Handler/AmqpHandlerTest.php | 136 - .../Handler/BrowserConsoleHandlerTest.php | 130 - .../Monolog/Handler/BufferHandlerTest.php | 158 - .../Monolog/Handler/ChromePHPHandlerTest.php | 156 - .../Monolog/Handler/CouchDBHandlerTest.php | 31 - .../Handler/DeduplicationHandlerTest.php | 165 - .../Handler/DoctrineCouchDBHandlerTest.php | 52 - .../Monolog/Handler/DynamoDbHandlerTest.php | 82 - .../Handler/ElasticSearchHandlerTest.php | 239 - .../Monolog/Handler/ErrorLogHandlerTest.php | 66 - .../Monolog/Handler/FilterHandlerTest.php | 170 - .../Handler/FingersCrossedHandlerTest.php | 279 - .../Monolog/Handler/FirePHPHandlerTest.php | 96 - .../tests/Monolog/Handler/Fixtures/.gitkeep | 0 .../Monolog/Handler/FleepHookHandlerTest.php | 85 - .../Monolog/Handler/FlowdockHandlerTest.php | 88 - .../Monolog/Handler/GelfHandlerLegacyTest.php | 95 - .../tests/Monolog/Handler/GelfHandlerTest.php | 117 - .../Handler/GelfMockMessagePublisher.php | 25 - .../Monolog/Handler/GroupHandlerTest.php | 112 - .../Monolog/Handler/HandlerWrapperTest.php | 130 - .../Monolog/Handler/HipChatHandlerTest.php | 279 - .../Monolog/Handler/LogEntriesHandlerTest.php | 84 - .../tests/Monolog/Handler/MailHandlerTest.php | 75 - .../tests/Monolog/Handler/MockRavenClient.php | 27 - .../Monolog/Handler/MongoDBHandlerTest.php | 65 - .../Handler/NativeMailerHandlerTest.php | 111 - .../Monolog/Handler/NewRelicHandlerTest.php | 200 - .../tests/Monolog/Handler/NullHandlerTest.php | 33 - .../Monolog/Handler/PHPConsoleHandlerTest.php | 273 - .../tests/Monolog/Handler/PsrHandlerTest.php | 50 - .../Monolog/Handler/PushoverHandlerTest.php | 141 - .../Monolog/Handler/RavenHandlerTest.php | 255 - .../Monolog/Handler/RedisHandlerTest.php | 127 - .../Monolog/Handler/RollbarHandlerTest.php | 84 - .../Handler/RotatingFileHandlerTest.php | 211 - .../Monolog/Handler/SamplingHandlerTest.php | 33 - .../Monolog/Handler/Slack/SlackRecordTest.php | 387 - .../Monolog/Handler/SlackHandlerTest.php | 155 - .../Handler/SlackWebhookHandlerTest.php | 107 - .../Monolog/Handler/SlackbotHandlerTest.php | 47 - .../Monolog/Handler/SocketHandlerTest.php | 309 - .../Monolog/Handler/StreamHandlerTest.php | 184 - .../Handler/SwiftMailerHandlerTest.php | 113 - .../Monolog/Handler/SyslogHandlerTest.php | 44 - .../Monolog/Handler/SyslogUdpHandlerTest.php | 76 - .../tests/Monolog/Handler/TestHandlerTest.php | 70 - .../tests/Monolog/Handler/UdpSocketTest.php | 64 - .../Handler/WhatFailureGroupHandlerTest.php | 121 - .../Handler/ZendMonitorHandlerTest.php | 69 - .../monolog/tests/Monolog/LoggerTest.php | 548 - .../Monolog/Processor/GitProcessorTest.php | 29 - .../Processor/IntrospectionProcessorTest.php | 123 - .../MemoryPeakUsageProcessorTest.php | 42 - .../Processor/MemoryUsageProcessorTest.php | 42 - .../Processor/MercurialProcessorTest.php | 41 - .../Processor/ProcessIdProcessorTest.php | 30 - .../Processor/PsrLogMessageProcessorTest.php | 43 - .../Monolog/Processor/TagProcessorTest.php | 49 - .../Monolog/Processor/UidProcessorTest.php | 33 - .../Monolog/Processor/WebProcessorTest.php | 113 - .../tests/Monolog/PsrLogCompatTest.php | 47 - .../monolog/tests/Monolog/RegistryTest.php | 153 - .../monolog/tests/Monolog/TestCase.php | 58 - .../mtdowling/cron-expression/.editorconfig | 16 - vendor/mtdowling/cron-expression/CHANGELOG.md | 36 - vendor/mtdowling/cron-expression/LICENSE | 19 - vendor/mtdowling/cron-expression/README.md | 71 - .../mtdowling/cron-expression/composer.json | 28 - .../src/Cron/AbstractField.php | 148 - .../src/Cron/CronExpression.php | 389 - .../src/Cron/DayOfMonthField.php | 173 - .../src/Cron/DayOfWeekField.php | 141 - .../cron-expression/src/Cron/FieldFactory.php | 57 - .../src/Cron/FieldInterface.php | 40 - .../cron-expression/src/Cron/HoursField.php | 71 - .../cron-expression/src/Cron/MinutesField.php | 62 - .../cron-expression/src/Cron/MonthField.php | 44 - .../cron-expression/src/Cron/YearField.php | 37 - .../tests/Cron/AbstractFieldTest.php | 86 - .../tests/Cron/CronExpressionTest.php | 414 - .../tests/Cron/DayOfMonthFieldTest.php | 61 - .../tests/Cron/DayOfWeekFieldTest.php | 117 - .../tests/Cron/FieldFactoryTest.php | 43 - .../tests/Cron/HoursFieldTest.php | 75 - .../tests/Cron/MinutesFieldTest.php | 37 - .../tests/Cron/MonthFieldTest.php | 81 - .../tests/Cron/YearFieldTest.php | 37 - vendor/myclabs/deep-copy/.gitattributes | 7 - vendor/myclabs/deep-copy/.gitignore | 3 - vendor/myclabs/deep-copy/.travis.yml | 40 - vendor/myclabs/deep-copy/LICENSE | 20 - vendor/myclabs/deep-copy/README.md | 372 - vendor/myclabs/deep-copy/composer.json | 35 - vendor/myclabs/deep-copy/doc/clone.png | Bin 12380 -> 0 bytes vendor/myclabs/deep-copy/doc/deep-clone.png | Bin 14009 -> 0 bytes vendor/myclabs/deep-copy/doc/deep-copy.png | Bin 10895 -> 0 bytes vendor/myclabs/deep-copy/doc/graph.png | Bin 6436 -> 0 bytes vendor/myclabs/deep-copy/fixtures/f001/A.php | 20 - vendor/myclabs/deep-copy/fixtures/f001/B.php | 20 - vendor/myclabs/deep-copy/fixtures/f002/A.php | 33 - .../myclabs/deep-copy/fixtures/f003/Foo.php | 26 - .../fixtures/f004/UnclonableItem.php | 13 - .../myclabs/deep-copy/fixtures/f005/Foo.php | 13 - vendor/myclabs/deep-copy/fixtures/f006/A.php | 26 - vendor/myclabs/deep-copy/fixtures/f006/B.php | 26 - .../fixtures/f007/FooDateInterval.php | 15 - .../fixtures/f007/FooDateTimeZone.php | 15 - vendor/myclabs/deep-copy/fixtures/f008/A.php | 18 - vendor/myclabs/deep-copy/fixtures/f008/B.php | 7 - .../deep-copy/src/DeepCopy/DeepCopy.php | 281 - .../src/DeepCopy/Exception/CloneException.php | 9 - .../DeepCopy/Exception/PropertyException.php | 9 - .../Doctrine/DoctrineCollectionFilter.php | 33 - .../DoctrineEmptyCollectionFilter.php | 28 - .../Filter/Doctrine/DoctrineProxyFilter.php | 22 - .../deep-copy/src/DeepCopy/Filter/Filter.php | 18 - .../src/DeepCopy/Filter/KeepFilter.php | 16 - .../src/DeepCopy/Filter/ReplaceFilter.php | 39 - .../src/DeepCopy/Filter/SetNullFilter.php | 24 - .../Matcher/Doctrine/DoctrineProxyMatcher.php | 22 - .../src/DeepCopy/Matcher/Matcher.php | 14 - .../src/DeepCopy/Matcher/PropertyMatcher.php | 39 - .../DeepCopy/Matcher/PropertyNameMatcher.php | 32 - .../DeepCopy/Matcher/PropertyTypeMatcher.php | 46 - .../DeepCopy/Reflection/ReflectionHelper.php | 78 - .../TypeFilter/Date/DateIntervalFilter.php | 33 - .../src/DeepCopy/TypeFilter/ReplaceFilter.php | 30 - .../DeepCopy/TypeFilter/ShallowCopyFilter.php | 17 - .../TypeFilter/Spl/SplDoublyLinkedList.php | 10 - .../Spl/SplDoublyLinkedListFilter.php | 51 - .../src/DeepCopy/TypeFilter/TypeFilter.php | 13 - .../src/DeepCopy/TypeMatcher/TypeMatcher.php | 29 - .../deep-copy/src/DeepCopy/deep_copy.php | 16 - vendor/nesbot/carbon/.php_cs.dist | 57 - vendor/nesbot/carbon/LICENSE | 19 - vendor/nesbot/carbon/composer.json | 54 - vendor/nesbot/carbon/readme.md | 92 - vendor/nesbot/carbon/src/Carbon/Carbon.php | 3355 ---- .../carbon/src/Carbon/CarbonInterval.php | 557 - .../Exceptions/InvalidDateException.php | 67 - vendor/nesbot/carbon/src/Carbon/Lang/af.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ar.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/az.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/bg.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/bn.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ca.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/cs.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/da.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/de.php | 40 - vendor/nesbot/carbon/src/Carbon/Lang/el.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/en.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/eo.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/es.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/et.php | 38 - vendor/nesbot/carbon/src/Carbon/Lang/eu.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/fa.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/fi.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/fo.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/fr.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/gl.php | 24 - vendor/nesbot/carbon/src/Carbon/Lang/he.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/hr.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/hu.php | 52 - vendor/nesbot/carbon/src/Carbon/Lang/hy.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/id.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/it.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ja.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ka.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/km.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ko.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/lt.php | 38 - vendor/nesbot/carbon/src/Carbon/Lang/lv.php | 47 - vendor/nesbot/carbon/src/Carbon/Lang/mk.php | 24 - vendor/nesbot/carbon/src/Carbon/Lang/ms.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/nl.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/no.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/pl.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/pt.php | 31 - .../nesbot/carbon/src/Carbon/Lang/pt_BR.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ro.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ru.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/sk.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/sl.php | 38 - vendor/nesbot/carbon/src/Carbon/Lang/sq.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/sr.php | 31 - .../carbon/src/Carbon/Lang/sr_Cyrl_ME.php | 38 - .../carbon/src/Carbon/Lang/sr_Latn_ME.php | 38 - .../nesbot/carbon/src/Carbon/Lang/sr_ME.php | 38 - vendor/nesbot/carbon/src/Carbon/Lang/sv.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/th.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/tr.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/uk.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ur.php | 24 - vendor/nesbot/carbon/src/Carbon/Lang/uz.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/vi.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/zh.php | 31 - .../nesbot/carbon/src/Carbon/Lang/zh_TW.php | 31 - vendor/nikic/php-parser/.gitignore | 4 - vendor/nikic/php-parser/.travis.yml | 31 - vendor/nikic/php-parser/CHANGELOG.md | 414 - vendor/nikic/php-parser/LICENSE | 31 - vendor/nikic/php-parser/README.md | 99 - vendor/nikic/php-parser/UPGRADE-1.0.md | 121 - vendor/nikic/php-parser/UPGRADE-2.0.md | 74 - vendor/nikic/php-parser/UPGRADE-3.0.md | 160 - vendor/nikic/php-parser/bin/php-parse | 202 - vendor/nikic/php-parser/composer.json | 30 - .../php-parser/doc/0_Introduction.markdown | 80 - .../doc/2_Usage_of_basic_components.markdown | 438 - ...3_Other_node_tree_representations.markdown | 330 - .../php-parser/doc/4_Code_generation.markdown | 84 - .../doc/component/Error_handling.markdown | 75 - .../php-parser/doc/component/Lexer.markdown | 152 - vendor/nikic/php-parser/grammar/README.md | 28 - .../nikic/php-parser/grammar/parser.template | 103 - vendor/nikic/php-parser/grammar/php5.y | 1009 - vendor/nikic/php-parser/grammar/php7.y | 965 - .../php-parser/grammar/rebuildParsers.php | 263 - .../nikic/php-parser/grammar/tokens.template | 17 - vendor/nikic/php-parser/grammar/tokens.y | 113 - .../php-parser/lib/PhpParser/Autoloader.php | 40 - .../php-parser/lib/PhpParser/Builder.php | 13 - .../lib/PhpParser/Builder/Class_.php | 121 - .../lib/PhpParser/Builder/Declaration.php | 42 - .../lib/PhpParser/Builder/FunctionLike.php | 75 - .../lib/PhpParser/Builder/Function_.php | 49 - .../lib/PhpParser/Builder/Interface_.php | 80 - .../lib/PhpParser/Builder/Method.php | 128 - .../lib/PhpParser/Builder/Namespace_.php | 44 - .../lib/PhpParser/Builder/Param.php | 91 - .../lib/PhpParser/Builder/Property.php | 111 - .../lib/PhpParser/Builder/Trait_.php | 59 - .../php-parser/lib/PhpParser/Builder/Use_.php | 58 - .../lib/PhpParser/BuilderAbstract.php | 175 - .../lib/PhpParser/BuilderFactory.php | 127 - .../php-parser/lib/PhpParser/Comment.php | 140 - .../php-parser/lib/PhpParser/Comment/Doc.php | 7 - .../nikic/php-parser/lib/PhpParser/Error.php | 166 - .../php-parser/lib/PhpParser/ErrorHandler.php | 13 - .../lib/PhpParser/ErrorHandler/Collecting.php | 46 - .../lib/PhpParser/ErrorHandler/Throwing.php | 18 - .../nikic/php-parser/lib/PhpParser/Lexer.php | 381 - .../lib/PhpParser/Lexer/Emulative.php | 174 - .../nikic/php-parser/lib/PhpParser/Node.php | 88 - .../php-parser/lib/PhpParser/Node/Arg.php | 34 - .../php-parser/lib/PhpParser/Node/Const_.php | 30 - .../php-parser/lib/PhpParser/Node/Expr.php | 9 - .../lib/PhpParser/Node/Expr/ArrayDimFetch.php | 30 - .../lib/PhpParser/Node/Expr/ArrayItem.php | 34 - .../lib/PhpParser/Node/Expr/Array_.php | 30 - .../lib/PhpParser/Node/Expr/Assign.php | 30 - .../lib/PhpParser/Node/Expr/AssignOp.php | 30 - .../Node/Expr/AssignOp/BitwiseAnd.php | 9 - .../Node/Expr/AssignOp/BitwiseOr.php | 9 - .../Node/Expr/AssignOp/BitwiseXor.php | 9 - .../PhpParser/Node/Expr/AssignOp/Concat.php | 9 - .../lib/PhpParser/Node/Expr/AssignOp/Div.php | 9 - .../PhpParser/Node/Expr/AssignOp/Minus.php | 9 - .../lib/PhpParser/Node/Expr/AssignOp/Mod.php | 9 - .../lib/PhpParser/Node/Expr/AssignOp/Mul.php | 9 - .../lib/PhpParser/Node/Expr/AssignOp/Plus.php | 9 - .../lib/PhpParser/Node/Expr/AssignOp/Pow.php | 9 - .../Node/Expr/AssignOp/ShiftLeft.php | 9 - .../Node/Expr/AssignOp/ShiftRight.php | 9 - .../lib/PhpParser/Node/Expr/AssignRef.php | 30 - .../lib/PhpParser/Node/Expr/BinaryOp.php | 30 - .../Node/Expr/BinaryOp/BitwiseAnd.php | 9 - .../Node/Expr/BinaryOp/BitwiseOr.php | 9 - .../Node/Expr/BinaryOp/BitwiseXor.php | 9 - .../Node/Expr/BinaryOp/BooleanAnd.php | 9 - .../Node/Expr/BinaryOp/BooleanOr.php | 9 - .../PhpParser/Node/Expr/BinaryOp/Coalesce.php | 9 - .../PhpParser/Node/Expr/BinaryOp/Concat.php | 9 - .../lib/PhpParser/Node/Expr/BinaryOp/Div.php | 9 - .../PhpParser/Node/Expr/BinaryOp/Equal.php | 9 - .../PhpParser/Node/Expr/BinaryOp/Greater.php | 9 - .../Node/Expr/BinaryOp/GreaterOrEqual.php | 9 - .../Node/Expr/BinaryOp/Identical.php | 9 - .../Node/Expr/BinaryOp/LogicalAnd.php | 9 - .../Node/Expr/BinaryOp/LogicalOr.php | 9 - .../Node/Expr/BinaryOp/LogicalXor.php | 9 - .../PhpParser/Node/Expr/BinaryOp/Minus.php | 9 - .../lib/PhpParser/Node/Expr/BinaryOp/Mod.php | 9 - .../lib/PhpParser/Node/Expr/BinaryOp/Mul.php | 9 - .../PhpParser/Node/Expr/BinaryOp/NotEqual.php | 9 - .../Node/Expr/BinaryOp/NotIdentical.php | 9 - .../lib/PhpParser/Node/Expr/BinaryOp/Plus.php | 9 - .../lib/PhpParser/Node/Expr/BinaryOp/Pow.php | 9 - .../Node/Expr/BinaryOp/ShiftLeft.php | 9 - .../Node/Expr/BinaryOp/ShiftRight.php | 9 - .../PhpParser/Node/Expr/BinaryOp/Smaller.php | 9 - .../Node/Expr/BinaryOp/SmallerOrEqual.php | 9 - .../Node/Expr/BinaryOp/Spaceship.php | 9 - .../lib/PhpParser/Node/Expr/BitwiseNot.php | 26 - .../lib/PhpParser/Node/Expr/BooleanNot.php | 26 - .../lib/PhpParser/Node/Expr/Cast.php | 26 - .../lib/PhpParser/Node/Expr/Cast/Array_.php | 9 - .../lib/PhpParser/Node/Expr/Cast/Bool_.php | 9 - .../lib/PhpParser/Node/Expr/Cast/Double.php | 9 - .../lib/PhpParser/Node/Expr/Cast/Int_.php | 9 - .../lib/PhpParser/Node/Expr/Cast/Object_.php | 9 - .../lib/PhpParser/Node/Expr/Cast/String_.php | 9 - .../lib/PhpParser/Node/Expr/Cast/Unset_.php | 9 - .../PhpParser/Node/Expr/ClassConstFetch.php | 31 - .../lib/PhpParser/Node/Expr/Clone_.php | 26 - .../lib/PhpParser/Node/Expr/Closure.php | 65 - .../lib/PhpParser/Node/Expr/ClosureUse.php | 30 - .../lib/PhpParser/Node/Expr/ConstFetch.php | 27 - .../lib/PhpParser/Node/Expr/Empty_.php | 26 - .../lib/PhpParser/Node/Expr/Error.php | 27 - .../lib/PhpParser/Node/Expr/ErrorSuppress.php | 26 - .../lib/PhpParser/Node/Expr/Eval_.php | 26 - .../lib/PhpParser/Node/Expr/Exit_.php | 30 - .../lib/PhpParser/Node/Expr/FuncCall.php | 31 - .../lib/PhpParser/Node/Expr/Include_.php | 35 - .../lib/PhpParser/Node/Expr/Instanceof_.php | 31 - .../lib/PhpParser/Node/Expr/Isset_.php | 26 - .../lib/PhpParser/Node/Expr/List_.php | 26 - .../lib/PhpParser/Node/Expr/MethodCall.php | 35 - .../lib/PhpParser/Node/Expr/New_.php | 31 - .../lib/PhpParser/Node/Expr/PostDec.php | 26 - .../lib/PhpParser/Node/Expr/PostInc.php | 26 - .../lib/PhpParser/Node/Expr/PreDec.php | 26 - .../lib/PhpParser/Node/Expr/PreInc.php | 26 - .../lib/PhpParser/Node/Expr/Print_.php | 26 - .../lib/PhpParser/Node/Expr/PropertyFetch.php | 30 - .../lib/PhpParser/Node/Expr/ShellExec.php | 26 - .../lib/PhpParser/Node/Expr/StaticCall.php | 35 - .../Node/Expr/StaticPropertyFetch.php | 31 - .../lib/PhpParser/Node/Expr/Ternary.php | 34 - .../lib/PhpParser/Node/Expr/UnaryMinus.php | 26 - .../lib/PhpParser/Node/Expr/UnaryPlus.php | 26 - .../lib/PhpParser/Node/Expr/Variable.php | 26 - .../lib/PhpParser/Node/Expr/YieldFrom.php | 26 - .../lib/PhpParser/Node/Expr/Yield_.php | 30 - .../lib/PhpParser/Node/FunctionLike.php | 36 - .../php-parser/lib/PhpParser/Node/Name.php | 196 - .../PhpParser/Node/Name/FullyQualified.php | 42 - .../lib/PhpParser/Node/Name/Relative.php | 42 - .../lib/PhpParser/Node/NullableType.php | 26 - .../php-parser/lib/PhpParser/Node/Param.php | 42 - .../php-parser/lib/PhpParser/Node/Scalar.php | 7 - .../lib/PhpParser/Node/Scalar/DNumber.php | 64 - .../lib/PhpParser/Node/Scalar/Encapsed.php | 27 - .../Node/Scalar/EncapsedStringPart.php | 26 - .../lib/PhpParser/Node/Scalar/LNumber.php | 67 - .../lib/PhpParser/Node/Scalar/MagicConst.php | 28 - .../Node/Scalar/MagicConst/Class_.php | 12 - .../PhpParser/Node/Scalar/MagicConst/Dir.php | 12 - .../PhpParser/Node/Scalar/MagicConst/File.php | 12 - .../Node/Scalar/MagicConst/Function_.php | 12 - .../PhpParser/Node/Scalar/MagicConst/Line.php | 12 - .../Node/Scalar/MagicConst/Method.php | 12 - .../Node/Scalar/MagicConst/Namespace_.php | 12 - .../Node/Scalar/MagicConst/Trait_.php | 12 - .../lib/PhpParser/Node/Scalar/String_.php | 153 - .../php-parser/lib/PhpParser/Node/Stmt.php | 9 - .../lib/PhpParser/Node/Stmt/Break_.php | 26 - .../lib/PhpParser/Node/Stmt/Case_.php | 30 - .../lib/PhpParser/Node/Stmt/Catch_.php | 34 - .../lib/PhpParser/Node/Stmt/ClassConst.php | 47 - .../lib/PhpParser/Node/Stmt/ClassLike.php | 44 - .../lib/PhpParser/Node/Stmt/ClassMethod.php | 94 - .../lib/PhpParser/Node/Stmt/Class_.php | 99 - .../lib/PhpParser/Node/Stmt/Const_.php | 26 - .../lib/PhpParser/Node/Stmt/Continue_.php | 26 - .../PhpParser/Node/Stmt/DeclareDeclare.php | 30 - .../lib/PhpParser/Node/Stmt/Declare_.php | 30 - .../lib/PhpParser/Node/Stmt/Do_.php | 30 - .../lib/PhpParser/Node/Stmt/Echo_.php | 26 - .../lib/PhpParser/Node/Stmt/ElseIf_.php | 30 - .../lib/PhpParser/Node/Stmt/Else_.php | 26 - .../lib/PhpParser/Node/Stmt/Finally_.php | 26 - .../lib/PhpParser/Node/Stmt/For_.php | 39 - .../lib/PhpParser/Node/Stmt/Foreach_.php | 43 - .../lib/PhpParser/Node/Stmt/Function_.php | 60 - .../lib/PhpParser/Node/Stmt/Global_.php | 26 - .../lib/PhpParser/Node/Stmt/Goto_.php | 26 - .../lib/PhpParser/Node/Stmt/GroupUse.php | 35 - .../lib/PhpParser/Node/Stmt/HaltCompiler.php | 26 - .../lib/PhpParser/Node/Stmt/If_.php | 39 - .../lib/PhpParser/Node/Stmt/InlineHTML.php | 26 - .../lib/PhpParser/Node/Stmt/Interface_.php | 31 - .../lib/PhpParser/Node/Stmt/Label.php | 26 - .../lib/PhpParser/Node/Stmt/Namespace_.php | 34 - .../lib/PhpParser/Node/Stmt/Nop.php | 13 - .../lib/PhpParser/Node/Stmt/Property.php | 51 - .../PhpParser/Node/Stmt/PropertyProperty.php | 30 - .../lib/PhpParser/Node/Stmt/Return_.php | 26 - .../lib/PhpParser/Node/Stmt/StaticVar.php | 30 - .../lib/PhpParser/Node/Stmt/Static_.php | 26 - .../lib/PhpParser/Node/Stmt/Switch_.php | 30 - .../lib/PhpParser/Node/Stmt/Throw_.php | 26 - .../lib/PhpParser/Node/Stmt/TraitUse.php | 31 - .../Node/Stmt/TraitUseAdaptation.php | 13 - .../Node/Stmt/TraitUseAdaptation/Alias.php | 34 - .../Stmt/TraitUseAdaptation/Precedence.php | 30 - .../lib/PhpParser/Node/Stmt/Trait_.php | 26 - .../lib/PhpParser/Node/Stmt/TryCatch.php | 34 - .../lib/PhpParser/Node/Stmt/Unset_.php | 26 - .../lib/PhpParser/Node/Stmt/UseUse.php | 38 - .../lib/PhpParser/Node/Stmt/Use_.php | 43 - .../lib/PhpParser/Node/Stmt/While_.php | 30 - .../php-parser/lib/PhpParser/NodeAbstract.php | 121 - .../php-parser/lib/PhpParser/NodeDumper.php | 196 - .../lib/PhpParser/NodeTraverser.php | 204 - .../lib/PhpParser/NodeTraverserInterface.php | 30 - .../php-parser/lib/PhpParser/NodeVisitor.php | 72 - .../PhpParser/NodeVisitor/NameResolver.php | 272 - .../lib/PhpParser/NodeVisitorAbstract.php | 14 - .../nikic/php-parser/lib/PhpParser/Parser.php | 17 - .../lib/PhpParser/Parser/Multiple.php | 54 - .../php-parser/lib/PhpParser/Parser/Php5.php | 3141 ---- .../php-parser/lib/PhpParser/Parser/Php7.php | 2868 --- .../lib/PhpParser/Parser/Tokens.php | 144 - .../lib/PhpParser/ParserAbstract.php | 729 - .../lib/PhpParser/ParserFactory.php | 43 - .../lib/PhpParser/PrettyPrinter/Standard.php | 977 - .../lib/PhpParser/PrettyPrinterAbstract.php | 348 - .../php-parser/lib/PhpParser/Serializer.php | 18 - .../lib/PhpParser/Serializer/XML.php | 89 - .../php-parser/lib/PhpParser/Unserializer.php | 18 - .../lib/PhpParser/Unserializer/XML.php | 155 - vendor/nikic/php-parser/lib/bootstrap.php | 6 - vendor/nikic/php-parser/phpunit.xml.dist | 24 - .../test/PhpParser/AutoloaderTest.php | 15 - .../test/PhpParser/Builder/ClassTest.php | 161 - .../test/PhpParser/Builder/FunctionTest.php | 106 - .../test/PhpParser/Builder/InterfaceTest.php | 105 - .../test/PhpParser/Builder/MethodTest.php | 163 - .../test/PhpParser/Builder/NamespaceTest.php | 46 - .../test/PhpParser/Builder/ParamTest.php | 171 - .../test/PhpParser/Builder/PropertyTest.php | 147 - .../test/PhpParser/Builder/TraitTest.php | 48 - .../test/PhpParser/Builder/UseTest.php | 35 - .../test/PhpParser/BuilderFactoryTest.php | 108 - .../test/PhpParser/CodeParsingTest.php | 70 - .../test/PhpParser/CodeTestAbstract.php | 61 - .../php-parser/test/PhpParser/CommentTest.php | 73 - .../PhpParser/ErrorHandler/CollectingTest.php | 22 - .../PhpParser/ErrorHandler/ThrowingTest.php | 16 - .../php-parser/test/PhpParser/ErrorTest.php | 106 - .../test/PhpParser/Lexer/EmulativeTest.php | 133 - .../php-parser/test/PhpParser/LexerTest.php | 265 - .../test/PhpParser/Node/NameTest.php | 134 - .../PhpParser/Node/Scalar/MagicConstTest.php | 25 - .../test/PhpParser/Node/Scalar/StringTest.php | 61 - .../PhpParser/Node/Stmt/ClassConstTest.php | 35 - .../PhpParser/Node/Stmt/ClassMethodTest.php | 63 - .../test/PhpParser/Node/Stmt/ClassTest.php | 66 - .../PhpParser/Node/Stmt/InterfaceTest.php | 26 - .../test/PhpParser/Node/Stmt/PropertyTest.php | 44 - .../test/PhpParser/NodeAbstractTest.php | 274 - .../test/PhpParser/NodeDumperTest.php | 105 - .../test/PhpParser/NodeTraverserTest.php | 267 - .../NodeVisitor/NameResolverTest.php | 468 - .../test/PhpParser/Parser/MultipleTest.php | 94 - .../test/PhpParser/Parser/Php5Test.php | 14 - .../test/PhpParser/Parser/Php7Test.php | 14 - .../test/PhpParser/ParserFactoryTest.php | 34 - .../php-parser/test/PhpParser/ParserTest.php | 184 - .../test/PhpParser/PrettyPrinterTest.php | 207 - .../test/PhpParser/Serializer/XMLTest.php | 172 - .../test/PhpParser/Unserializer/XMLTest.php | 150 - vendor/nikic/php-parser/test/bootstrap.php | 20 - .../test/code/parser/blockComments.test | 31 - .../php-parser/test/code/parser/comments.test | 100 - .../code/parser/errorHandling/eofError.test | 32 - .../parser/errorHandling/lexerErrors.test | 124 - .../code/parser/errorHandling/recovery.test | 866 - .../test/code/parser/expr/arrayDef.test | 142 - .../code/parser/expr/arrayDestructuring.test | 144 - .../test/code/parser/expr/assign.test | 301 - .../test/code/parser/expr/assignNewByRef.test | 39 - .../test/code/parser/expr/cast.test | 72 - .../test/code/parser/expr/clone.test | 13 - .../test/code/parser/expr/closure.test | 142 - .../test/code/parser/expr/comparison.test | 107 - .../test/code/parser/expr/constant_expr.test | 621 - .../test/code/parser/expr/errorSuppress.test | 12 - .../test/code/parser/expr/exit.test | 34 - .../code/parser/expr/fetchAndCall/args.test | 99 - .../parser/expr/fetchAndCall/constFetch.test | 33 - .../expr/fetchAndCall/constantDeref.test | 231 - .../parser/expr/fetchAndCall/funcCall.test | 132 - .../parser/expr/fetchAndCall/newDeref.test | 70 - .../expr/fetchAndCall/objectAccess.test | 145 - .../expr/fetchAndCall/simpleArrayAccess.test | 62 - .../parser/expr/fetchAndCall/staticCall.test | 173 - .../fetchAndCall/staticPropertyFetch.test | 91 - .../test/code/parser/expr/includeAndEval.test | 40 - .../test/code/parser/expr/issetAndEmpty.test | 75 - .../test/code/parser/expr/listWithKeys.test | 75 - .../test/code/parser/expr/logic.test | 159 - .../test/code/parser/expr/math.test | 256 - .../php-parser/test/code/parser/expr/new.test | 146 - .../code/parser/expr/newWithoutClass.test | 23 - .../test/code/parser/expr/print.test | 12 - .../test/code/parser/expr/shellExec.test | 46 - .../code/parser/expr/ternaryAndCoalesce.test | 149 - .../expr/uvs/globalNonSimpleVarError.test | 25 - .../code/parser/expr/uvs/indirectCall.test | 481 - .../test/code/parser/expr/uvs/isset.test | 74 - .../test/code/parser/expr/uvs/misc.test | 109 - .../test/code/parser/expr/uvs/new.test | 95 - .../code/parser/expr/uvs/staticProperty.test | 93 - .../test/code/parser/expr/variable.test | 55 - .../code/parser/scalar/constantString.test | 60 - .../test/code/parser/scalar/docString.test | 90 - .../code/parser/scalar/docStringNewlines.test | 61 - .../parser/scalar/encapsedNegVarOffset.test | 72 - .../code/parser/scalar/encapsedString.test | 294 - .../test/code/parser/scalar/float.test | 74 - .../test/code/parser/scalar/int.test | 43 - .../test/code/parser/scalar/invalidOctal.test | 22 - .../test/code/parser/scalar/magicConst.test | 31 - .../code/parser/scalar/unicodeEscape.test | 20 - .../test/code/parser/semiReserved.test | 382 - .../code/parser/stmt/blocklessStatement.test | 112 - .../test/code/parser/stmt/class/abstract.test | 39 - .../code/parser/stmt/class/anonymous.test | 195 - .../code/parser/stmt/class/conditional.test | 33 - .../stmt/class/constModifierErrors.test | 121 - .../parser/stmt/class/constModifiers.test | 67 - .../test/code/parser/stmt/class/final.test | 17 - .../parser/stmt/class/implicitPublic.test | 92 - .../code/parser/stmt/class/interface.test | 36 - .../test/code/parser/stmt/class/modifier.test | 215 - .../test/code/parser/stmt/class/name.test | 240 - .../code/parser/stmt/class/php4Style.test | 50 - .../test/code/parser/stmt/class/simple.test | 156 - .../code/parser/stmt/class/staticMethod.test | 151 - .../test/code/parser/stmt/class/trait.test | 160 - .../test/code/parser/stmt/const.test | 40 - .../test/code/parser/stmt/controlFlow.test | 55 - .../test/code/parser/stmt/declare.test | 60 - .../test/code/parser/stmt/echo.test | 32 - .../function/builtinTypeDeclarations.test | 59 - .../test/code/parser/stmt/function/byRef.test | 41 - .../parser/stmt/function/conditional.test | 33 - .../parser/stmt/function/defaultValues.test | 148 - .../parser/stmt/function/nullableTypes.test | 47 - .../parser/stmt/function/returnTypes.test | 52 - .../parser/stmt/function/specialVars.test | 51 - .../stmt/function/typeDeclarations.test | 49 - .../code/parser/stmt/function/variadic.test | 110 - .../stmt/function/variadicDefaultValue.test | 27 - .../code/parser/stmt/generator/basic.test | 280 - .../stmt/generator/yieldPrecedence.test | 230 - .../stmt/generator/yieldUnaryPrecedence.test | 48 - .../test/code/parser/stmt/haltCompiler.test | 55 - .../stmt/haltCompilerInvalidSyntax.test | 6 - .../code/parser/stmt/haltCompilerOffset.test | 34 - .../stmt/haltCompilerOutermostScope.test | 8 - .../test/code/parser/stmt/hashbang.test | 26 - .../php-parser/test/code/parser/stmt/if.test | 103 - .../test/code/parser/stmt/inlineHTML.test | 27 - .../test/code/parser/stmt/loop/do.test | 17 - .../test/code/parser/stmt/loop/for.test | 110 - .../test/code/parser/stmt/loop/foreach.test | 164 - .../test/code/parser/stmt/loop/while.test | 25 - .../test/code/parser/stmt/multiCatch.test | 65 - .../code/parser/stmt/namespace/alias.test | 168 - .../code/parser/stmt/namespace/braced.test | 42 - .../stmt/namespace/commentAfterNamespace.test | 22 - .../code/parser/stmt/namespace/groupUse.test | 188 - .../parser/stmt/namespace/groupUseErrors.test | 107 - .../stmt/namespace/groupUsePositions.test | 28 - .../stmt/namespace/groupUseTrailingComma.test | 47 - .../parser/stmt/namespace/invalidName.test | 83 - .../test/code/parser/stmt/namespace/mix.test | 103 - .../test/code/parser/stmt/namespace/name.test | 42 - .../code/parser/stmt/namespace/nested.test | 30 - .../code/parser/stmt/namespace/notBraced.test | 45 - .../stmt/namespace/nsAfterHashbang.test | 22 - .../parser/stmt/namespace/outsideStmt.test | 58 - .../stmt/namespace/outsideStmtInvalid.test | 105 - .../test/code/parser/stmt/switch.test | 73 - .../test/code/parser/stmt/tryCatch.test | 130 - .../code/parser/stmt/tryWithoutCatch.test | 27 - .../test/code/parser/stmt/unset.test | 26 - .../test/code/prettyPrinter/comments.test | 67 - .../prettyPrinter/commentsInCommaList.test | 53 - .../prettyPrinter/expr/anonymousClass.test | 27 - .../expr/arrayDestructuring.test | 14 - .../test/code/prettyPrinter/expr/call.test | 13 - .../test/code/prettyPrinter/expr/closure.test | 18 - .../prettyPrinter/expr/constant_deref.test | 13 - .../code/prettyPrinter/expr/docStrings.test | 86 - .../test/code/prettyPrinter/expr/include.test | 7 - .../code/prettyPrinter/expr/intrinsics.test | 29 - .../test/code/prettyPrinter/expr/list.test | 19 - .../code/prettyPrinter/expr/literals.test | 154 - .../test/code/prettyPrinter/expr/numbers.test | 35 - .../code/prettyPrinter/expr/operators.test | 144 - .../code/prettyPrinter/expr/parentheses.test | 86 - .../prettyPrinter/expr/shortArraySyntax.test | 11 - .../prettyPrinter/expr/stringEscaping.test | 23 - .../test/code/prettyPrinter/expr/uvs.test | 23 - .../code/prettyPrinter/expr/variables.test | 73 - .../test/code/prettyPrinter/expr/yield.test | 46 - .../inlineHTMLandPHPtest.file-test | 58 - .../prettyPrinter/onlyInlineHTML.file-test | 19 - .../test/code/prettyPrinter/onlyPHP.file-test | 16 - .../test/code/prettyPrinter/stmt/alias.test | 20 - .../prettyPrinter/stmt/break_continue.test | 13 - .../test/code/prettyPrinter/stmt/class.test | 53 - .../code/prettyPrinter/stmt/class_const.test | 20 - .../test/code/prettyPrinter/stmt/const.test | 11 - .../test/code/prettyPrinter/stmt/declare.test | 17 - .../code/prettyPrinter/stmt/do_while.test | 10 - .../test/code/prettyPrinter/stmt/for.test | 28 - .../test/code/prettyPrinter/stmt/foreach.test | 28 - .../stmt/function_signatures.test | 43 - .../stmt/global_static_variables.test | 11 - .../test/code/prettyPrinter/stmt/goto.test | 9 - .../code/prettyPrinter/stmt/groupUse.test | 16 - .../prettyPrinter/stmt/haltCompiler.file-test | 27 - .../test/code/prettyPrinter/stmt/if.test | 16 - .../code/prettyPrinter/stmt/multiCatch.test | 19 - .../code/prettyPrinter/stmt/namespaces.test | 50 - .../prettyPrinter/stmt/nullable_types.test | 11 - .../test/code/prettyPrinter/stmt/switch.test | 35 - .../test/code/prettyPrinter/stmt/throw.test | 7 - .../code/prettyPrinter/stmt/traitUse.test | 25 - .../code/prettyPrinter/stmt/tryCatch.test | 24 - .../test/code/prettyPrinter/stmt/while.test | 10 - .../nikic/php-parser/test_old/run-php-src.sh | 4 - vendor/nikic/php-parser/test_old/run.php | 220 - vendor/paragonie/random_compat/LICENSE | 22 - vendor/paragonie/random_compat/build-phar.sh | 5 - vendor/paragonie/random_compat/composer.json | 37 - .../dist/random_compat.phar.pubkey | 5 - .../dist/random_compat.phar.pubkey.asc | 11 - .../random_compat/lib/byte_safe_strings.php | 181 - .../random_compat/lib/cast_to_int.php | 75 - .../random_compat/lib/error_polyfill.php | 49 - vendor/paragonie/random_compat/lib/random.php | 223 - .../lib/random_bytes_com_dotnet.php | 88 - .../lib/random_bytes_dev_urandom.php | 167 - .../lib/random_bytes_libsodium.php | 88 - .../lib/random_bytes_libsodium_legacy.php | 92 - .../random_compat/lib/random_bytes_mcrypt.php | 77 - .../random_compat/lib/random_int.php | 190 - .../random_compat/other/build_phar.php | 57 - .../random_compat/psalm-autoload.php | 9 - vendor/paragonie/random_compat/psalm.xml | 16 - vendor/phar-io/manifest/.gitignore | 8 - vendor/phar-io/manifest/.php_cs | 67 - vendor/phar-io/manifest/.travis.yml | 33 - vendor/phar-io/manifest/LICENSE | 31 - vendor/phar-io/manifest/README.md | 30 - vendor/phar-io/manifest/build.xml | 50 - vendor/phar-io/manifest/composer.json | 42 - .../phar-io/manifest/examples/example-01.php | 23 - vendor/phar-io/manifest/phive.xml | 4 - vendor/phar-io/manifest/phpunit.xml | 20 - .../manifest/src/ManifestDocumentMapper.php | 193 - .../phar-io/manifest/src/ManifestLoader.php | 66 - .../manifest/src/ManifestSerializer.php | 163 - .../manifest/src/exceptions/Exception.php | 14 - .../InvalidApplicationNameException.php | 16 - .../src/exceptions/InvalidEmailException.php | 14 - .../src/exceptions/InvalidUrlException.php | 14 - .../exceptions/ManifestDocumentException.php | 6 - .../ManifestDocumentMapperException.php | 6 - .../exceptions/ManifestElementException.php | 6 - .../exceptions/ManifestLoaderException.php | 6 - .../manifest/src/values/Application.php | 20 - .../manifest/src/values/ApplicationName.php | 65 - vendor/phar-io/manifest/src/values/Author.php | 57 - .../manifest/src/values/AuthorCollection.php | 43 - .../src/values/AuthorCollectionIterator.php | 56 - .../manifest/src/values/BundledComponent.php | 48 - .../src/values/BundledComponentCollection.php | 43 - .../BundledComponentCollectionIterator.php | 56 - .../src/values/CopyrightInformation.php | 42 - vendor/phar-io/manifest/src/values/Email.php | 47 - .../phar-io/manifest/src/values/Extension.php | 75 - .../phar-io/manifest/src/values/Library.php | 20 - .../phar-io/manifest/src/values/License.php | 42 - .../phar-io/manifest/src/values/Manifest.php | 138 - .../src/values/PhpExtensionRequirement.php | 32 - .../src/values/PhpVersionRequirement.php | 31 - .../manifest/src/values/Requirement.php | 14 - .../src/values/RequirementCollection.php | 43 - .../values/RequirementCollectionIterator.php | 56 - vendor/phar-io/manifest/src/values/Type.php | 60 - vendor/phar-io/manifest/src/values/Url.php | 47 - .../manifest/src/xml/AuthorElement.php | 21 - .../src/xml/AuthorElementCollection.php | 19 - .../manifest/src/xml/BundlesElement.php | 19 - .../manifest/src/xml/ComponentElement.php | 21 - .../src/xml/ComponentElementCollection.php | 19 - .../manifest/src/xml/ContainsElement.php | 31 - .../manifest/src/xml/CopyrightElement.php | 25 - .../manifest/src/xml/ElementCollection.php | 58 - .../phar-io/manifest/src/xml/ExtElement.php | 17 - .../manifest/src/xml/ExtElementCollection.php | 20 - .../manifest/src/xml/ExtensionElement.php | 21 - .../manifest/src/xml/LicenseElement.php | 21 - .../manifest/src/xml/ManifestDocument.php | 118 - .../xml/ManifestDocumentLoadingException.php | 48 - .../manifest/src/xml/ManifestElement.php | 100 - .../phar-io/manifest/src/xml/PhpElement.php | 27 - .../manifest/src/xml/RequiresElement.php | 19 - .../tests/ManifestDocumentMapperTest.php | 110 - .../manifest/tests/ManifestLoaderTest.php | 83 - .../manifest/tests/ManifestSerializerTest.php | 114 - .../manifest/tests/_fixture/custom.xml | 10 - .../_fixture/extension-invalidcompatible.xml | 13 - .../manifest/tests/_fixture/extension.xml | 13 - .../tests/_fixture/invalidversion.xml | 11 - .../_fixture/invalidversionconstraint.xml | 11 - .../manifest/tests/_fixture/library.xml | 11 - .../manifest/tests/_fixture/manifest.xml | 11 - .../manifest/tests/_fixture/phpunit-5.6.5.xml | 46 - .../phar-io/manifest/tests/_fixture/test.phar | Bin 7165 -> 0 bytes .../ManifestDocumentLoadingExceptionTest.php | 19 - .../tests/values/ApplicationNameTest.php | 48 - .../manifest/tests/values/ApplicationTest.php | 44 - .../tests/values/AuthorCollectionTest.php | 62 - .../manifest/tests/values/AuthorTest.php | 45 - .../values/BundledComponentCollectionTest.php | 63 - .../tests/values/BundledComponentTest.php | 42 - .../tests/values/CopyrightInformationTest.php | 62 - .../manifest/tests/values/EmailTest.php | 35 - .../manifest/tests/values/ExtensionTest.php | 109 - .../manifest/tests/values/LibraryTest.php | 44 - .../manifest/tests/values/LicenseTest.php | 41 - .../manifest/tests/values/ManifestTest.php | 187 - .../values/PhpExtensionRequirementTest.php | 26 - .../values/PhpVersionRequirementTest.php | 38 - .../values/RequirementCollectionTest.php | 63 - .../phar-io/manifest/tests/values/UrlTest.php | 35 - .../tests/xml/AuthorElementCollectionTest.php | 18 - .../manifest/tests/xml/AuthorElementTest.php | 25 - .../manifest/tests/xml/BundlesElementTest.php | 41 - .../xml/ComponentElementCollectionTest.php | 18 - .../tests/xml/ComponentElementTest.php | 25 - .../tests/xml/ContainsElementTest.php | 63 - .../tests/xml/CopyrightElementTest.php | 52 - .../tests/xml/ExtElementCollectionTest.php | 19 - .../manifest/tests/xml/ExtElementTest.php | 21 - .../tests/xml/ExtensionElementTest.php | 25 - .../manifest/tests/xml/LicenseElementTest.php | 25 - .../tests/xml/ManifestDocumentTest.php | 110 - .../manifest/tests/xml/PhpElementTest.php | 48 - .../tests/xml/RequiresElementTest.php | 37 - vendor/phar-io/version/.gitignore | 7 - vendor/phar-io/version/.php_cs | 67 - vendor/phar-io/version/.travis.yml | 33 - vendor/phar-io/version/LICENSE | 31 - vendor/phar-io/version/README.md | 16 - vendor/phar-io/version/build.xml | 41 - vendor/phar-io/version/composer.json | 34 - vendor/phar-io/version/phive.xml | 5 - vendor/phar-io/version/phpunit.xml | 19 - .../version/src/AbstractVersionConstraint.php | 32 - .../version/src/AndVersionConstraintGroup.php | 43 - .../version/src/AnyVersionConstraint.php | 29 - .../version/src/ExactVersionConstraint.php | 22 - vendor/phar-io/version/src/Exception.php | 14 - .../GreaterThanOrEqualToVersionConstraint.php | 38 - .../version/src/InvalidVersionException.php | 5 - .../version/src/OrVersionConstraintGroup.php | 43 - .../phar-io/version/src/PreReleaseSuffix.php | 41 - ...SpecificMajorAndMinorVersionConstraint.php | 48 - .../src/SpecificMajorVersionConstraint.php | 37 - .../UnsupportedVersionConstraintException.php | 14 - vendor/phar-io/version/src/Version.php | 162 - .../phar-io/version/src/VersionConstraint.php | 26 - .../version/src/VersionConstraintParser.php | 122 - .../version/src/VersionConstraintValue.php | 123 - vendor/phar-io/version/src/VersionNumber.php | 41 - .../VersionConstraintParserTest.php | 125 - .../Unit/AbstractVersionConstraintTest.php | 25 - .../Unit/AndVersionConstraintGroupTest.php | 52 - .../tests/Unit/AnyVersionConstraintTest.php | 41 - .../tests/Unit/ExactVersionConstraintTest.php | 58 - ...aterThanOrEqualToVersionConstraintTest.php | 47 - .../Unit/OrVersionConstraintGroupTest.php | 65 - ...ificMajorAndMinorVersionConstraintTest.php | 45 - .../SpecificMajorVersionConstraintTest.php | 44 - .../version/tests/Unit/VersionTest.php | 104 - .../reflection-common/.travis.yml | 35 - .../phpdocumentor/reflection-common/LICENSE | 22 - .../phpdocumentor/reflection-common/README.md | 2 - .../reflection-common/composer.json | 29 - .../reflection-common/src/Element.php | 32 - .../reflection-common/src/File.php | 40 - .../reflection-common/src/Fqsen.php | 82 - .../reflection-common/src/Location.php | 57 - .../reflection-common/src/Project.php | 25 - .../reflection-common/src/ProjectFactory.php | 27 - .../reflection-docblock/.coveralls.yml | 3 - .../phpdocumentor/reflection-docblock/LICENSE | 21 - .../reflection-docblock/README.md | 67 - .../reflection-docblock/composer.json | 34 - .../easy-coding-standard.neon | 31 - .../reflection-docblock/src/DocBlock.php | 236 - .../src/DocBlock/Description.php | 114 - .../src/DocBlock/DescriptionFactory.php | 191 - .../src/DocBlock/ExampleFinder.php | 170 - .../src/DocBlock/Serializer.php | 155 - .../src/DocBlock/StandardTagFactory.php | 319 - .../reflection-docblock/src/DocBlock/Tag.php | 26 - .../src/DocBlock/TagFactory.php | 93 - .../src/DocBlock/Tags/Author.php | 100 - .../src/DocBlock/Tags/BaseTag.php | 52 - .../src/DocBlock/Tags/Covers.php | 83 - .../src/DocBlock/Tags/Deprecated.php | 97 - .../src/DocBlock/Tags/Example.php | 176 - .../DocBlock/Tags/Factory/StaticMethod.php | 18 - .../src/DocBlock/Tags/Factory/Strategy.php | 18 - .../src/DocBlock/Tags/Formatter.php | 27 - .../Tags/Formatter/AlignFormatter.php | 47 - .../Tags/Formatter/PassthroughFormatter.php | 31 - .../src/DocBlock/Tags/Generic.php | 91 - .../src/DocBlock/Tags/Link.php | 77 - .../src/DocBlock/Tags/Method.php | 242 - .../src/DocBlock/Tags/Param.php | 141 - .../src/DocBlock/Tags/Property.php | 118 - .../src/DocBlock/Tags/PropertyRead.php | 118 - .../src/DocBlock/Tags/PropertyWrite.php | 118 - .../src/DocBlock/Tags/Reference/Fqsen.php | 42 - .../src/DocBlock/Tags/Reference/Reference.php | 21 - .../src/DocBlock/Tags/Reference/Url.php | 40 - .../src/DocBlock/Tags/Return_.php | 72 - .../src/DocBlock/Tags/See.php | 88 - .../src/DocBlock/Tags/Since.php | 94 - .../src/DocBlock/Tags/Source.php | 97 - .../src/DocBlock/Tags/Throws.php | 72 - .../src/DocBlock/Tags/Uses.php | 83 - .../src/DocBlock/Tags/Var_.php | 118 - .../src/DocBlock/Tags/Version.php | 94 - .../src/DocBlockFactory.php | 277 - .../src/DocBlockFactoryInterface.php | 23 - vendor/phpdocumentor/type-resolver/LICENSE | 21 - vendor/phpdocumentor/type-resolver/README.md | 182 - .../phpdocumentor/type-resolver/composer.json | 27 - .../type-resolver/src/FqsenResolver.php | 77 - .../phpdocumentor/type-resolver/src/Type.php | 18 - .../type-resolver/src/TypeResolver.php | 298 - .../type-resolver/src/Types/Array_.php | 86 - .../type-resolver/src/Types/Boolean.php | 31 - .../type-resolver/src/Types/Callable_.php | 31 - .../type-resolver/src/Types/Compound.php | 93 - .../type-resolver/src/Types/Context.php | 84 - .../src/Types/ContextFactory.php | 210 - .../type-resolver/src/Types/Float_.php | 31 - .../type-resolver/src/Types/Integer.php | 28 - .../type-resolver/src/Types/Iterable_.php | 31 - .../type-resolver/src/Types/Mixed_.php | 31 - .../type-resolver/src/Types/Null_.php | 31 - .../type-resolver/src/Types/Nullable.php | 56 - .../type-resolver/src/Types/Object_.php | 71 - .../type-resolver/src/Types/Parent_.php | 33 - .../type-resolver/src/Types/Resource_.php | 31 - .../type-resolver/src/Types/Scalar.php | 31 - .../type-resolver/src/Types/Self_.php | 33 - .../type-resolver/src/Types/Static_.php | 38 - .../type-resolver/src/Types/String_.php | 31 - .../type-resolver/src/Types/This.php | 34 - .../type-resolver/src/Types/Void_.php | 34 - vendor/phpspec/prophecy/CHANGES.md | 178 - vendor/phpspec/prophecy/LICENSE | 23 - vendor/phpspec/prophecy/README.md | 391 - vendor/phpspec/prophecy/composer.json | 50 - .../prophecy/src/Prophecy/Argument.php | 212 - .../Prophecy/Argument/ArgumentsWildcard.php | 101 - .../Prophecy/Argument/Token/AnyValueToken.php | 52 - .../Argument/Token/AnyValuesToken.php | 52 - .../Argument/Token/ApproximateValueToken.php | 55 - .../Argument/Token/ArrayCountToken.php | 86 - .../Argument/Token/ArrayEntryToken.php | 143 - .../Argument/Token/ArrayEveryEntryToken.php | 82 - .../Prophecy/Argument/Token/CallbackToken.php | 75 - .../Argument/Token/ExactValueToken.php | 116 - .../Argument/Token/IdenticalValueToken.php | 74 - .../Argument/Token/LogicalAndToken.php | 80 - .../Argument/Token/LogicalNotToken.php | 73 - .../Argument/Token/ObjectStateToken.php | 104 - .../Argument/Token/StringContainsToken.php | 67 - .../Argument/Token/TokenInterface.php | 43 - .../src/Prophecy/Argument/Token/TypeToken.php | 76 - .../prophecy/src/Prophecy/Call/Call.php | 127 - .../prophecy/src/Prophecy/Call/CallCenter.php | 171 - .../Prophecy/Comparator/ClosureComparator.php | 42 - .../src/Prophecy/Comparator/Factory.php | 47 - .../Comparator/ProphecyComparator.php | 28 - .../src/Prophecy/Doubler/CachedDoubler.php | 68 - .../ClassPatch/ClassPatchInterface.php | 48 - .../ClassPatch/DisableConstructorPatch.php | 72 - .../Doubler/ClassPatch/HhvmExceptionPatch.php | 63 - .../Doubler/ClassPatch/KeywordPatch.php | 140 - .../Doubler/ClassPatch/MagicCallPatch.php | 89 - .../ClassPatch/ProphecySubjectPatch.php | 104 - .../ReflectionClassNewInstancePatch.php | 57 - .../Doubler/ClassPatch/SplFileInfoPatch.php | 123 - .../Doubler/ClassPatch/TraversablePatch.php | 83 - .../src/Prophecy/Doubler/DoubleInterface.php | 22 - .../prophecy/src/Prophecy/Doubler/Doubler.php | 146 - .../Doubler/Generator/ClassCodeGenerator.php | 145 - .../Doubler/Generator/ClassCreator.php | 67 - .../Doubler/Generator/ClassMirror.php | 258 - .../Doubler/Generator/Node/ArgumentNode.php | 102 - .../Doubler/Generator/Node/ClassNode.php | 166 - .../Doubler/Generator/Node/MethodNode.php | 207 - .../Doubler/Generator/ReflectionInterface.php | 22 - .../src/Prophecy/Doubler/LazyDouble.php | 127 - .../src/Prophecy/Doubler/NameGenerator.php | 52 - .../Call/UnexpectedCallException.php | 40 - .../Doubler/ClassCreatorException.php | 31 - .../Doubler/ClassMirrorException.php | 31 - .../Doubler/ClassNotFoundException.php | 33 - .../Exception/Doubler/DoubleException.php | 18 - .../Exception/Doubler/DoublerException.php | 18 - .../Doubler/InterfaceNotFoundException.php | 20 - .../Doubler/MethodNotExtendableException.php | 41 - .../Doubler/MethodNotFoundException.php | 60 - .../Doubler/ReturnByReferenceException.php | 41 - .../src/Prophecy/Exception/Exception.php | 26 - .../Exception/InvalidArgumentException.php | 16 - .../Prediction/AggregateException.php | 50 - .../Prediction/FailedPredictionException.php | 24 - .../Exception/Prediction/NoCallsException.php | 18 - .../Prediction/PredictionException.php | 18 - .../UnexpectedCallsCountException.php | 31 - .../Prediction/UnexpectedCallsException.php | 32 - .../Prophecy/MethodProphecyException.php | 34 - .../Prophecy/ObjectProphecyException.php | 34 - .../Exception/Prophecy/ProphecyException.php | 18 - .../ClassAndInterfaceTagRetriever.php | 69 - .../PhpDocumentor/ClassTagRetriever.php | 52 - .../PhpDocumentor/LegacyClassTagRetriever.php | 35 - .../MethodTagRetrieverInterface.php | 30 - .../Prophecy/Prediction/CallPrediction.php | 86 - .../Prediction/CallTimesPrediction.php | 107 - .../Prediction/CallbackPrediction.php | 65 - .../Prophecy/Prediction/NoCallsPrediction.php | 68 - .../Prediction/PredictionInterface.php | 37 - .../src/Prophecy/Promise/CallbackPromise.php | 66 - .../src/Prophecy/Promise/PromiseInterface.php | 35 - .../Promise/ReturnArgumentPromise.php | 61 - .../src/Prophecy/Promise/ReturnPromise.php | 55 - .../src/Prophecy/Promise/ThrowPromise.php | 99 - .../src/Prophecy/Prophecy/MethodProphecy.php | 464 - .../src/Prophecy/Prophecy/ObjectProphecy.php | 281 - .../Prophecy/Prophecy/ProphecyInterface.php | 27 - .../Prophecy/ProphecySubjectInterface.php | 34 - .../src/Prophecy/Prophecy/Revealer.php | 44 - .../Prophecy/Prophecy/RevealerInterface.php | 29 - .../phpspec/prophecy/src/Prophecy/Prophet.php | 134 - .../prophecy/src/Prophecy/Util/ExportUtil.php | 212 - .../prophecy/src/Prophecy/Util/StringUtil.php | 89 - .../phpunit/php-code-coverage/.gitattributes | 1 - .../php-code-coverage/.github/CONTRIBUTING.md | 1 - .../.github/ISSUE_TEMPLATE.md | 18 - vendor/phpunit/php-code-coverage/.gitignore | 6 - vendor/phpunit/php-code-coverage/.php_cs | 87 - vendor/phpunit/php-code-coverage/.travis.yml | 40 - .../php-code-coverage/ChangeLog-2.2.md | 56 - .../php-code-coverage/ChangeLog-3.0.md | 31 - .../php-code-coverage/ChangeLog-3.1.md | 30 - .../php-code-coverage/ChangeLog-3.2.md | 23 - .../php-code-coverage/ChangeLog-3.3.md | 33 - .../php-code-coverage/ChangeLog-4.0.md | 67 - .../php-code-coverage/ChangeLog-5.0.md | 45 - .../php-code-coverage/ChangeLog-5.1.md | 19 - .../php-code-coverage/ChangeLog-5.2.md | 44 - .../php-code-coverage/ChangeLog-5.3.md | 16 - vendor/phpunit/php-code-coverage/LICENSE | 33 - vendor/phpunit/php-code-coverage/README.md | 40 - vendor/phpunit/php-code-coverage/build.xml | 19 - .../phpunit/php-code-coverage/composer.json | 55 - vendor/phpunit/php-code-coverage/phpunit.xml | 21 - .../php-code-coverage/src/CodeCoverage.php | 1184 -- .../php-code-coverage/src/Driver/Driver.php | 52 - .../php-code-coverage/src/Driver/HHVM.php | 29 - .../php-code-coverage/src/Driver/PHPDBG.php | 111 - .../php-code-coverage/src/Driver/Xdebug.php | 117 - .../CoveredCodeNotExecutedException.php | 18 - .../src/Exception/Exception.php | 18 - .../Exception/InvalidArgumentException.php | 37 - .../MissingCoversAnnotationException.php | 18 - .../src/Exception/RuntimeException.php | 15 - .../UnintentionallyCoveredCodeException.php | 54 - .../phpunit/php-code-coverage/src/Filter.php | 173 - .../src/Node/AbstractNode.php | 404 - .../php-code-coverage/src/Node/Builder.php | 245 - .../php-code-coverage/src/Node/Directory.php | 483 - .../php-code-coverage/src/Node/File.php | 744 - .../php-code-coverage/src/Node/Iterator.php | 103 - .../php-code-coverage/src/Report/Clover.php | 251 - .../php-code-coverage/src/Report/Crap4j.php | 172 - .../src/Report/Html/Facade.php | 190 - .../src/Report/Html/Renderer.php | 296 - .../src/Report/Html/Renderer/Dashboard.php | 304 - .../src/Report/Html/Renderer/Directory.php | 101 - .../src/Report/Html/Renderer/File.php | 561 - .../Renderer/Template/coverage_bar.html.dist | 5 - .../Renderer/Template/css/bootstrap.min.css | 6 - .../Html/Renderer/Template/css/nv.d3.min.css | 1 - .../Html/Renderer/Template/css/style.css | 122 - .../Renderer/Template/dashboard.html.dist | 284 - .../Renderer/Template/directory.html.dist | 61 - .../Template/directory_item.html.dist | 13 - .../Html/Renderer/Template/file.html.dist | 68 - .../Renderer/Template/file_item.html.dist | 14 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../Renderer/Template/js/bootstrap.min.js | 7 - .../Html/Renderer/Template/js/d3.min.js | 5 - .../Report/Html/Renderer/Template/js/file.js | 61 - .../Html/Renderer/Template/js/holder.min.js | 12 - .../Renderer/Template/js/html5shiv.min.js | 326 - .../Html/Renderer/Template/js/jquery.min.js | 4 - .../Html/Renderer/Template/js/nv.d3.min.js | 8 - .../Html/Renderer/Template/js/respond.min.js | 5 - .../Renderer/Template/method_item.html.dist | 11 - .../php-code-coverage/src/Report/PHP.php | 51 - .../php-code-coverage/src/Report/Text.php | 257 - .../src/Report/Xml/BuildInformation.php | 101 - .../src/Report/Xml/Coverage.php | 67 - .../src/Report/Xml/Directory.php | 15 - .../src/Report/Xml/Facade.php | 283 - .../php-code-coverage/src/Report/Xml/File.php | 88 - .../src/Report/Xml/Method.php | 57 - .../php-code-coverage/src/Report/Xml/Node.php | 88 - .../src/Report/Xml/Project.php | 95 - .../src/Report/Xml/Report.php | 92 - .../src/Report/Xml/Source.php | 45 - .../src/Report/Xml/Tests.php | 46 - .../src/Report/Xml/Totals.php | 141 - .../php-code-coverage/src/Report/Xml/Unit.php | 96 - vendor/phpunit/php-code-coverage/src/Util.php | 46 - .../phpunit/php-code-coverage/src/Version.php | 31 - .../php-code-coverage/tests/TestCase.php | 343 - .../tests/_files/BankAccount-clover.xml | 26 - .../tests/_files/BankAccount-crap4j.xml | 59 - .../tests/_files/BankAccount-text.txt | 12 - .../tests/_files/BankAccount.php | 33 - .../tests/_files/BankAccountTest.php | 68 - .../_files/CoverageClassExtendedTest.php | 14 - .../tests/_files/CoverageClassTest.php | 14 - .../CoverageFunctionParenthesesTest.php | 13 - ...erageFunctionParenthesesWhitespaceTest.php | 13 - .../tests/_files/CoverageFunctionTest.php | 13 - .../CoverageMethodOneLineAnnotationTest.php | 12 - .../_files/CoverageMethodParenthesesTest.php | 14 - ...overageMethodParenthesesWhitespaceTest.php | 14 - .../tests/_files/CoverageMethodTest.php | 14 - .../tests/_files/CoverageNoneTest.php | 11 - .../tests/_files/CoverageNotPrivateTest.php | 14 - .../tests/_files/CoverageNotProtectedTest.php | 14 - .../tests/_files/CoverageNotPublicTest.php | 14 - .../tests/_files/CoverageNothingTest.php | 15 - .../tests/_files/CoveragePrivateTest.php | 14 - .../tests/_files/CoverageProtectedTest.php | 14 - .../tests/_files/CoveragePublicTest.php | 14 - .../CoverageTwoDefaultClassAnnotations.php | 17 - .../tests/_files/CoveredClass.php | 36 - .../tests/_files/CoveredFunction.php | 4 - .../NamespaceCoverageClassExtendedTest.php | 14 - .../_files/NamespaceCoverageClassTest.php | 14 - ...NamespaceCoverageCoversClassPublicTest.php | 17 - .../NamespaceCoverageCoversClassTest.php | 22 - .../_files/NamespaceCoverageMethodTest.php | 14 - .../NamespaceCoverageNotPrivateTest.php | 14 - .../NamespaceCoverageNotProtectedTest.php | 14 - .../_files/NamespaceCoverageNotPublicTest.php | 14 - .../_files/NamespaceCoveragePrivateTest.php | 14 - .../_files/NamespaceCoverageProtectedTest.php | 14 - .../_files/NamespaceCoveragePublicTest.php | 14 - .../tests/_files/NamespaceCoveredClass.php | 38 - .../_files/NotExistingCoveredElementTest.php | 26 - .../BankAccount.php.html | 245 - .../CoverageForBankAccount/dashboard.html | 290 - .../HTML/CoverageForBankAccount/index.html | 119 - .../dashboard.html | 288 - .../index.html | 119 - ...with_class_and_anonymous_function.php.html | 189 - .../dashboard.html | 286 - .../index.html | 109 - .../source_with_ignore.php.html | 217 - .../BankAccount.php.xml | 262 - .../XML/CoverageForBankAccount/index.xml | 33 - .../index.xml | 30 - ..._with_class_and_anonymous_function.php.xml | 162 - .../CoverageForFileWithIgnoredLines/index.xml | 30 - .../source_with_ignore.php.xml | 187 - .../class-with-anonymous-function-clover.xml | 22 - .../class-with-anonymous-function-crap4j.xml | 37 - .../class-with-anonymous-function-text.txt | 12 - .../tests/_files/ignored-lines-clover.xml | 17 - .../tests/_files/ignored-lines-crap4j.xml | 37 - .../tests/_files/ignored-lines-text.txt | 10 - ...urce_with_class_and_anonymous_function.php | 19 - .../tests/_files/source_with_ignore.php | 37 - .../tests/_files/source_with_namespace.php | 20 - .../source_with_oneline_annotations.php | 36 - .../tests/_files/source_without_ignore.php | 4 - .../tests/_files/source_without_namespace.php | 18 - .../php-code-coverage/tests/bootstrap.php | 5 - .../tests/tests/BuilderTest.php | 212 - .../tests/tests/CloverTest.php | 49 - .../tests/tests/CodeCoverageTest.php | 560 - .../tests/tests/Crap4jTest.php | 49 - .../tests/tests/FilterTest.php | 196 - .../tests/tests/HTMLTest.php | 103 - .../tests/tests/TextTest.php | 49 - .../tests/tests/UtilTest.php | 29 - .../php-code-coverage/tests/tests/XMLTest.php | 98 - .../phpunit/php-file-iterator/.gitattributes | 1 - vendor/phpunit/php-file-iterator/.gitignore | 7 - vendor/phpunit/php-file-iterator/ChangeLog.md | 41 - vendor/phpunit/php-file-iterator/LICENSE | 33 - vendor/phpunit/php-file-iterator/README.md | 12 - .../phpunit/php-file-iterator/composer.json | 36 - .../phpunit/php-file-iterator/src/Facade.php | 123 - .../phpunit/php-file-iterator/src/Factory.php | 91 - .../php-file-iterator/src/Iterator.php | 158 - .../phpunit/php-text-template/.gitattributes | 1 - vendor/phpunit/php-text-template/.gitignore | 5 - vendor/phpunit/php-text-template/LICENSE | 33 - vendor/phpunit/php-text-template/README.md | 14 - .../phpunit/php-text-template/composer.json | 29 - .../php-text-template/src/Template.php | 135 - vendor/phpunit/php-timer/.gitattributes | 1 - vendor/phpunit/php-timer/.gitignore | 4 - vendor/phpunit/php-timer/.travis.yml | 27 - vendor/phpunit/php-timer/LICENSE | 33 - vendor/phpunit/php-timer/README.md | 45 - vendor/phpunit/php-timer/composer.json | 37 - vendor/phpunit/php-timer/phpunit.xml | 19 - vendor/phpunit/php-timer/src/Timer.php | 105 - vendor/phpunit/php-timer/tests/TimerTest.php | 98 - .../phpunit/php-token-stream/.gitattributes | 1 - vendor/phpunit/php-token-stream/.gitignore | 3 - vendor/phpunit/php-token-stream/.travis.yml | 26 - vendor/phpunit/php-token-stream/ChangeLog.md | 19 - vendor/phpunit/php-token-stream/LICENSE | 33 - vendor/phpunit/php-token-stream/README.md | 14 - vendor/phpunit/php-token-stream/build.xml | 21 - vendor/phpunit/php-token-stream/composer.json | 38 - vendor/phpunit/php-token-stream/phpunit.xml | 17 - vendor/phpunit/php-token-stream/src/Token.php | 1460 -- .../php-token-stream/src/Token/Stream.php | 607 - .../src/Token/Stream/CachingFactory.php | 46 - .../tests/Token/ClassTest.php | 169 - .../tests/Token/ClosureTest.php | 78 - .../tests/Token/FunctionTest.php | 139 - .../tests/Token/IncludeTest.php | 65 - .../tests/Token/InterfaceTest.php | 195 - .../tests/Token/NamespaceTest.php | 69 - .../php-token-stream/tests/TokenTest.php | 32 - .../_fixture/classExtendsNamespacedClass.php | 10 - .../tests/_fixture/classInNamespace.php | 6 - .../tests/_fixture/classInScopedNamespace.php | 9 - .../_fixture/classUsesNamespacedFunction.php | 8 - .../class_with_method_named_empty.php | 7 - ...h_method_that_declares_anonymous_class.php | 15 - ..._method_that_declares_anonymous_class2.php | 16 - ...ltiple_anonymous_classes_and_functions.php | 26 - .../tests/_fixture/closure.php | 7 - .../tests/_fixture/issue19.php | 3 - .../tests/_fixture/issue30.php | 8 - ...tipleNamespacesWithOneClassUsingBraces.php | 12 - ...espacesWithOneClassUsingNonBraceSyntax.php | 14 - .../_fixture/php-code-coverage-issue-424.php | 13 - .../tests/_fixture/source.php | 36 - .../tests/_fixture/source2.php | 6 - .../tests/_fixture/source3.php | 14 - .../tests/_fixture/source4.php | 30 - .../tests/_fixture/source5.php | 5 - .../php-token-stream/tests/bootstrap.php | 15 - .../phpunit-mock-objects/.gitattributes | 1 - .../.github/ISSUE_TEMPLATE.md | 15 - .../phpunit/phpunit-mock-objects/.gitignore | 4 - vendor/phpunit/phpunit-mock-objects/.php_cs | 87 - .../phpunit/phpunit-mock-objects/.travis.yml | 34 - .../phpunit-mock-objects/CONTRIBUTING.md | 1 - vendor/phpunit/phpunit-mock-objects/LICENSE | 33 - vendor/phpunit/phpunit-mock-objects/README.md | 7 - vendor/phpunit/phpunit-mock-objects/build.xml | 19 - .../phpunit-mock-objects/composer.json | 57 - .../phpunit/phpunit-mock-objects/phpunit.xml | 28 - .../src/Builder/Identity.php | 30 - .../src/Builder/InvocationMocker.php | 299 - .../src/Builder/Match.php | 26 - .../src/Builder/MethodNameMatch.php | 26 - .../src/Builder/NamespaceMatch.php | 37 - .../src/Builder/ParametersMatch.php | 50 - .../phpunit-mock-objects/src/Builder/Stub.php | 28 - .../src/Exception/BadMethodCallException.php | 14 - .../src/Exception/Exception.php | 17 - .../src/Exception/RuntimeException.php | 14 - .../src/ForwardCompatibility/MockObject.php | 17 - .../phpunit-mock-objects/src/Generator.php | 1174 -- .../src/Generator/deprecation.tpl.dist | 2 - .../src/Generator/mocked_class.tpl.dist | 40 - .../Generator/mocked_class_method.tpl.dist | 7 - .../src/Generator/mocked_clone.tpl.dist | 4 - .../src/Generator/mocked_method.tpl.dist | 22 - .../src/Generator/mocked_method_void.tpl.dist | 20 - .../Generator/mocked_static_method.tpl.dist | 5 - .../src/Generator/proxied_method.tpl.dist | 22 - .../Generator/proxied_method_void.tpl.dist | 22 - .../src/Generator/trait_class.tpl.dist | 4 - .../src/Generator/unmocked_clone.tpl.dist | 5 - .../src/Generator/wsdl_class.tpl.dist | 7 - .../src/Generator/wsdl_method.tpl.dist | 4 - .../src/Invocation/Invocation.php | 31 - .../src/Invocation/ObjectInvocation.php | 41 - .../src/Invocation/StaticInvocation.php | 255 - .../src/InvocationMocker.php | 185 - .../phpunit-mock-objects/src/Invokable.php | 38 - .../phpunit-mock-objects/src/Matcher.php | 321 - .../src/Matcher/AnyInvokedCount.php | 29 - .../src/Matcher/AnyParameters.php | 36 - .../src/Matcher/ConsecutiveParameters.php | 134 - .../src/Matcher/Invocation.php | 49 - .../src/Matcher/InvokedAtIndex.php | 89 - .../src/Matcher/InvokedAtLeastCount.php | 58 - .../src/Matcher/InvokedAtLeastOnce.php | 46 - .../src/Matcher/InvokedAtMostCount.php | 58 - .../src/Matcher/InvokedCount.php | 111 - .../src/Matcher/InvokedRecorder.php | 68 - .../src/Matcher/MethodName.php | 73 - .../src/Matcher/Parameters.php | 165 - .../src/Matcher/StatelessInvocation.php | 54 - .../phpunit-mock-objects/src/MockBuilder.php | 389 - .../phpunit-mock-objects/src/MockObject.php | 55 - .../phpunit/phpunit-mock-objects/src/Stub.php | 31 - .../src/Stub/ConsecutiveCalls.php | 56 - .../src/Stub/Exception.php | 42 - .../src/Stub/MatcherCollection.php | 26 - .../src/Stub/ReturnArgument.php | 43 - .../src/Stub/ReturnCallback.php | 52 - .../src/Stub/ReturnReference.php | 45 - .../src/Stub/ReturnSelf.php | 38 - .../src/Stub/ReturnStub.php | 45 - .../src/Stub/ReturnValueMap.php | 53 - .../phpunit-mock-objects/src/Verifiable.php | 26 - .../tests/Builder/InvocationMockerTest.php | 74 - .../tests/Generator/232.phpt | 129 - .../tests/Generator/397.phpt | 98 - .../tests/Generator/abstract_class.phpt | 147 - .../tests/Generator/class.phpt | 125 - .../Generator/class_call_parent_clone.phpt | 77 - .../class_call_parent_constructor.phpt | 76 - .../class_dont_call_parent_clone.phpt | 76 - .../class_dont_call_parent_constructor.phpt | 76 - ...ing_interface_call_parent_constructor.phpt | 81 - ...nterface_dont_call_parent_constructor.phpt | 81 - .../tests/Generator/class_partial.phpt | 103 - .../class_with_deprecated_method.phpt | 105 - .../class_with_method_named_method.phpt | 92 - ...ullable_typehinted_variadic_arguments.phpt | 103 - ...od_with_typehinted_variadic_arguments.phpt | 99 - ...s_with_method_with_variadic_arguments.phpt | 99 - .../tests/Generator/interface.phpt | 97 - .../invocation_object_clone_object.phpt | 126 - .../tests/Generator/namespaced_class.phpt | 127 - .../namespaced_class_call_parent_clone.phpt | 79 - ...espaced_class_call_parent_constructor.phpt | 78 - ...mespaced_class_dont_call_parent_clone.phpt | 78 - ...ed_class_dont_call_parent_constructor.phpt | 78 - ...ing_interface_call_parent_constructor.phpt | 83 - ...nterface_dont_call_parent_constructor.phpt | 83 - .../Generator/namespaced_class_partial.phpt | 105 - .../tests/Generator/namespaced_interface.phpt | 99 - .../tests/Generator/nonexistent_class.phpt | 74 - .../nonexistent_class_with_namespace.phpt | 82 - ...ith_namespace_starting_with_separator.phpt | 82 - .../tests/Generator/nullable_types.phpt | 103 - .../tests/Generator/proxy.phpt | 121 - .../return_type_declarations_closure.phpt | 97 - .../return_type_declarations_final.phpt | 108 - .../return_type_declarations_generator.phpt | 97 - .../return_type_declarations_nullable.phpt | 101 - ...eturn_type_declarations_object_method.phpt | 100 - .../return_type_declarations_self.phpt | 97 - ...eturn_type_declarations_static_method.phpt | 83 - .../return_type_declarations_void.phpt | 99 - .../Generator/scalar_type_declarations.phpt | 99 - .../tests/Generator/wsdl_class.phpt | 37 - .../tests/Generator/wsdl_class_namespace.phpt | 39 - .../tests/Generator/wsdl_class_partial.phpt | 30 - .../tests/GeneratorTest.php | 210 - .../tests/Invocation/ObjectInvocationTest.php | 120 - .../tests/Invocation/StaticInvocationTest.php | 99 - .../Matcher/ConsecutiveParametersTest.php | 68 - .../tests/MockBuilderTest.php | 129 - .../tests/MockObjectTest.php | 1075 -- .../tests/ProxyObjectTest.php | 41 - .../tests/_fixture/AbstractMockTestClass.php | 10 - .../tests/_fixture/AbstractTrait.php | 15 - .../tests/_fixture/AnInterface.php | 6 - .../_fixture/AnInterfaceWithReturnType.php | 5 - .../tests/_fixture/AnotherInterface.php | 5 - .../tests/_fixture/Bar.php | 8 - .../ClassThatImplementsSerializable.php | 15 - .../ClassWithAllPossibleReturnTypes.php | 56 - .../tests/_fixture/ClassWithSelfTypeHint.php | 7 - .../tests/_fixture/ClassWithStaticMethod.php | 7 - .../tests/_fixture/Foo.php | 8 - .../tests/_fixture/FunctionCallback.php | 9 - .../tests/_fixture/GoogleSearch.wsdl | 198 - .../InterfaceWithSemiReservedMethodName.php | 5 - .../_fixture/InterfaceWithStaticMethod.php | 5 - .../tests/_fixture/MethodCallback.php | 21 - .../_fixture/MethodCallbackByReference.php | 13 - .../tests/_fixture/MockTestInterface.php | 6 - .../tests/_fixture/Mockable.php | 28 - .../tests/_fixture/PartialMockTestClass.php | 18 - .../tests/_fixture/SingletonClass.php | 28 - .../tests/_fixture/SomeClass.php | 13 - .../tests/_fixture/StaticMockTestClass.php | 12 - .../tests/_fixture/StringableClass.php | 8 - .../_fixture/TraversableMockTestInterface.php | 5 - .../phpunit-mock-objects/tests/bootstrap.php | 3 - vendor/phpunit/phpunit/.editorconfig | 8 - vendor/phpunit/phpunit/.gitattributes | 4 - .../phpunit/.github/CODE_OF_CONDUCT.md | 28 - .../phpunit/phpunit/.github/CONTRIBUTING.md | 71 - .../phpunit/phpunit/.github/ISSUE_TEMPLATE.md | 15 - vendor/phpunit/phpunit/.gitignore | 20 - vendor/phpunit/phpunit/.php_cs.dist | 91 - vendor/phpunit/phpunit/.stickler.yml | 3 - vendor/phpunit/phpunit/.travis.yml | 53 - vendor/phpunit/phpunit/ChangeLog-5.7.md | 242 - vendor/phpunit/phpunit/ChangeLog-6.5.md | 60 - vendor/phpunit/phpunit/LICENSE | 33 - vendor/phpunit/phpunit/README.md | 46 - vendor/phpunit/phpunit/appveyor.yml | 65 - vendor/phpunit/phpunit/build.xml | 430 - vendor/phpunit/phpunit/composer.json | 88 - vendor/phpunit/phpunit/phpunit | 53 - vendor/phpunit/phpunit/phpunit.xml | 32 - vendor/phpunit/phpunit/phpunit.xsd | 270 - vendor/phpunit/phpunit/src/Exception.php | 18 - .../phpunit/phpunit/src/Framework/Assert.php | 2920 --- .../src/Framework/Assert/Functions.php | 1843 -- .../src/Framework/AssertionFailedError.php | 27 - .../src/Framework/BaseTestListener.php | 20 - .../src/Framework/CodeCoverageException.php | 15 - .../src/Framework/Constraint/ArrayHasKey.php | 83 - .../src/Framework/Constraint/ArraySubset.php | 141 - .../src/Framework/Constraint/Attribute.php | 88 - .../src/Framework/Constraint/Callback.php | 62 - .../Constraint/ClassHasAttribute.php | 83 - .../Constraint/ClassHasStaticAttribute.php | 55 - .../src/Framework/Constraint/Composite.php | 70 - .../src/Framework/Constraint/Constraint.php | 155 - .../src/Framework/Constraint/Count.php | 135 - .../Framework/Constraint/DirectoryExists.php | 59 - .../src/Framework/Constraint/Exception.php | 89 - .../Framework/Constraint/ExceptionCode.php | 68 - .../Framework/Constraint/ExceptionMessage.php | 83 - .../ExceptionMessageRegularExpression.php | 77 - .../src/Framework/Constraint/FileExists.php | 59 - .../src/Framework/Constraint/GreaterThan.php | 55 - .../src/Framework/Constraint/IsAnything.php | 61 - .../src/Framework/Constraint/IsEmpty.php | 67 - .../src/Framework/Constraint/IsEqual.php | 182 - .../src/Framework/Constraint/IsFalse.php | 39 - .../src/Framework/Constraint/IsFinite.php | 39 - .../src/Framework/Constraint/IsIdentical.php | 133 - .../src/Framework/Constraint/IsInfinite.php | 39 - .../src/Framework/Constraint/IsInstanceOf.php | 96 - .../src/Framework/Constraint/IsJson.php | 76 - .../src/Framework/Constraint/IsNan.php | 39 - .../src/Framework/Constraint/IsNull.php | 39 - .../src/Framework/Constraint/IsReadable.php | 59 - .../src/Framework/Constraint/IsTrue.php | 39 - .../src/Framework/Constraint/IsType.php | 142 - .../src/Framework/Constraint/IsWritable.php | 59 - .../src/Framework/Constraint/JsonMatches.php | 113 - .../JsonMatchesErrorMessageProvider.php | 72 - .../src/Framework/Constraint/LessThan.php | 55 - .../src/Framework/Constraint/LogicalAnd.php | 134 - .../src/Framework/Constraint/LogicalNot.php | 181 - .../src/Framework/Constraint/LogicalOr.php | 126 - .../src/Framework/Constraint/LogicalXor.php | 131 - .../Constraint/ObjectHasAttribute.php | 36 - .../Constraint/RegularExpression.php | 62 - .../src/Framework/Constraint/SameSize.php | 26 - .../Framework/Constraint/StringContains.php | 84 - .../Framework/Constraint/StringEndsWith.php | 54 - .../StringMatchesFormatDescription.php | 101 - .../Framework/Constraint/StringStartsWith.php | 54 - .../Constraint/TraversableContains.php | 131 - .../Constraint/TraversableContainsOnly.php | 97 - .../CoveredCodeNotExecutedException.php | 15 - .../src/Framework/DataProviderTestSuite.php | 25 - .../src/Framework/Error/Deprecated.php | 15 - .../phpunit/src/Framework/Error/Error.php | 36 - .../phpunit/src/Framework/Error/Notice.php | 15 - .../phpunit/src/Framework/Error/Warning.php | 15 - .../phpunit/src/Framework/Exception.php | 80 - .../src/Framework/ExceptionWrapper.php | 93 - .../Framework/ExpectationFailedException.php | 44 - .../phpunit/src/Framework/IncompleteTest.php | 19 - .../src/Framework/IncompleteTestCase.php | 83 - .../src/Framework/IncompleteTestError.php | 14 - .../InvalidCoversTargetException.php | 14 - .../MissingCoversAnnotationException.php | 15 - .../phpunit/src/Framework/OutputError.php | 14 - .../phpunit/src/Framework/RiskyTest.php | 15 - .../phpunit/src/Framework/RiskyTestError.php | 14 - .../phpunit/src/Framework/SelfDescribing.php | 24 - .../phpunit/src/Framework/SkippedTest.php | 15 - .../phpunit/src/Framework/SkippedTestCase.php | 81 - .../src/Framework/SkippedTestError.php | 15 - .../src/Framework/SkippedTestSuiteError.php | 15 - .../phpunit/src/Framework/SyntheticError.php | 80 - vendor/phpunit/phpunit/src/Framework/Test.php | 28 - .../phpunit/src/Framework/TestCase.php | 2534 --- .../phpunit/src/Framework/TestFailure.php | 169 - .../phpunit/src/Framework/TestListener.php | 99 - .../TestListenerDefaultImplementation.php | 53 - .../phpunit/src/Framework/TestResult.php | 1310 -- .../phpunit/src/Framework/TestSuite.php | 1020 - .../src/Framework/TestSuiteIterator.php | 104 - .../UnintentionallyCoveredCodeError.php | 18 - .../phpunit/phpunit/src/Framework/Warning.php | 26 - .../phpunit/src/Framework/WarningTestCase.php | 76 - .../phpunit/src/Runner/BaseTestRunner.php | 147 - .../phpunit/phpunit/src/Runner/Exception.php | 14 - .../Filter/ExcludeGroupFilterIterator.php | 23 - .../phpunit/src/Runner/Filter/Factory.php | 55 - .../src/Runner/Filter/GroupFilterIterator.php | 61 - .../Filter/IncludeGroupFilterIterator.php | 23 - .../src/Runner/Filter/NameFilterIterator.php | 124 - .../phpunit/src/Runner/PhptTestCase.php | 613 - .../src/Runner/StandardTestSuiteLoader.php | 120 - .../phpunit/src/Runner/TestSuiteLoader.php | 34 - vendor/phpunit/phpunit/src/Runner/Version.php | 75 - vendor/phpunit/phpunit/src/TextUI/Command.php | 1276 -- .../phpunit/src/TextUI/ResultPrinter.php | 706 - .../phpunit/phpunit/src/TextUI/TestRunner.php | 1114 -- vendor/phpunit/phpunit/src/Util/Blacklist.php | 113 - .../phpunit/src/Util/Configuration.php | 1206 -- .../src/Util/ConfigurationGenerator.php | 67 - .../phpunit/phpunit/src/Util/ErrorHandler.php | 118 - .../phpunit/phpunit/src/Util/Fileloader.php | 80 - .../phpunit/phpunit/src/Util/Filesystem.php | 40 - vendor/phpunit/phpunit/src/Util/Filter.php | 107 - vendor/phpunit/phpunit/src/Util/Getopt.php | 166 - .../phpunit/phpunit/src/Util/GlobalState.php | 202 - .../src/Util/InvalidArgumentHelper.php | 42 - vendor/phpunit/phpunit/src/Util/Json.php | 78 - vendor/phpunit/phpunit/src/Util/Log/JUnit.php | 451 - .../phpunit/phpunit/src/Util/Log/TeamCity.php | 423 - .../src/Util/PHP/AbstractPhpProcess.php | 421 - .../src/Util/PHP/DefaultPhpProcess.php | 232 - .../Util/PHP/Template/PhptTestCase.tpl.dist | 46 - .../Util/PHP/Template/TestCaseClass.tpl.dist | 107 - .../Util/PHP/Template/TestCaseMethod.tpl.dist | 109 - .../src/Util/PHP/WindowsPhpProcess.php | 43 - .../phpunit/src/Util/PHP/eval-stdin.php | 10 - vendor/phpunit/phpunit/src/Util/Printer.php | 146 - .../phpunit/src/Util/RegularExpression.php | 34 - vendor/phpunit/phpunit/src/Util/Test.php | 1193 -- .../src/Util/TestDox/HtmlResultPrinter.php | 138 - .../src/Util/TestDox/NamePrettifier.php | 142 - .../src/Util/TestDox/ResultPrinter.php | 412 - .../src/Util/TestDox/TextResultPrinter.php | 53 - .../src/Util/TestDox/XmlResultPrinter.php | 238 - .../phpunit/src/Util/TextTestListRenderer.php | 44 - vendor/phpunit/phpunit/src/Util/Type.php | 43 - vendor/phpunit/phpunit/src/Util/Xml.php | 314 - .../phpunit/src/Util/XmlTestListRenderer.php | 82 - vendor/phpunit/phpunit/tests/Fail/fail.phpt | 5 - .../phpunit/tests/Framework/AssertTest.php | 3190 ---- .../tests/Framework/BaseTestListenerTest.php | 32 - .../Framework/Constraint/ArrayHasKeyTest.php | 65 - .../Framework/Constraint/ArraySubsetTest.php | 84 - .../Framework/Constraint/AttributeTest.php | 81 - .../Framework/Constraint/CallbackTest.php | 66 - .../Constraint/ClassHasAttributeTest.php | 71 - .../ClassHasStaticAttributeTest.php | 67 - .../Constraint/ConstraintTestCase.php | 57 - .../tests/Framework/Constraint/CountTest.php | 146 - .../Constraint/DirectoryExistsTest.php | 67 - .../Constraint/ExceptionMessageRegExpTest.php | 56 - .../Constraint/ExceptionMessageTest.php | 52 - .../Framework/Constraint/FileExistsTest.php | 66 - .../Framework/Constraint/GreaterThanTest.php | 67 - .../Framework/Constraint/IsEmptyTest.php | 68 - .../Framework/Constraint/IsEqualTest.php | 287 - .../Framework/Constraint/IsIdenticalTest.php | 101 - .../tests/Framework/Constraint/IsJsonTest.php | 32 - .../tests/Framework/Constraint/IsNullTest.php | 67 - .../Framework/Constraint/IsReadableTest.php | 43 - .../tests/Framework/Constraint/IsTypeTest.php | 103 - .../Framework/Constraint/IsWritableTest.php | 43 - .../JsonMatchesErrorMessageProviderTest.php | 82 - .../Framework/Constraint/JsonMatchesTest.php | 86 - .../Framework/Constraint/LessThanTest.php | 67 - .../Framework/Constraint/LogicalAndTest.php | 238 - .../Framework/Constraint/LogicalOrTest.php | 233 - .../Framework/Constraint/LogicalXorTest.php | 44 - .../Constraint/ObjectHasAttributeTest.php | 67 - .../Constraint/RegularExpressionTest.php | 67 - .../Framework/Constraint/SameSizeTest.php | 63 - .../Constraint/StringContainsTest.php | 97 - .../Constraint/StringEndsWithTest.php | 88 - .../StringMatchesFormatDescriptionTest.php | 74 - .../Constraint/StringStartsWithTest.php | 89 - .../Constraint/TraversableContainsTest.php | 171 - .../tests/Framework/ConstraintTest.php | 1493 -- .../phpunit/tests/Framework/SuiteTest.php | 236 - .../phpunit/tests/Framework/TestCaseTest.php | 720 - .../tests/Framework/TestFailureTest.php | 41 - .../tests/Framework/TestImplementorTest.php | 26 - .../tests/Framework/TestListenerTest.php | 112 - .../phpunit/tests/Regression/GitHub/1149.phpt | 20 - .../Regression/GitHub/1149/Issue1149Test.php | 20 - .../phpunit/tests/Regression/GitHub/1216.phpt | 25 - .../Regression/GitHub/1216/Issue1216Test.php | 10 - .../Regression/GitHub/1216/bootstrap1216.php | 2 - .../Regression/GitHub/1216/phpunit1216.xml | 8 - .../phpunit/tests/Regression/GitHub/1265.phpt | 21 - .../Regression/GitHub/1265/Issue1265Test.php | 10 - .../Regression/GitHub/1265/phpunit1265.xml | 2 - .../phpunit/tests/Regression/GitHub/1330.phpt | 24 - .../Regression/GitHub/1330/Issue1330Test.php | 10 - .../Regression/GitHub/1330/phpunit1330.xml | 5 - .../phpunit/tests/Regression/GitHub/1335.phpt | 19 - .../Regression/GitHub/1335/Issue1335Test.php | 69 - .../Regression/GitHub/1335/bootstrap1335.php | 13 - .../phpunit/tests/Regression/GitHub/1337.phpt | 19 - .../Regression/GitHub/1337/Issue1337Test.php | 21 - .../phpunit/tests/Regression/GitHub/1348.phpt | 33 - .../Regression/GitHub/1348/Issue1348Test.php | 16 - .../phpunit/tests/Regression/GitHub/1351.phpt | 46 - .../GitHub/1351/ChildProcessClass1351.php | 4 - .../Regression/GitHub/1351/Issue1351Test.php | 50 - .../phpunit/tests/Regression/GitHub/1374.phpt | 19 - .../Regression/GitHub/1374/Issue1374Test.php | 23 - .../phpunit/tests/Regression/GitHub/1437.phpt | 26 - .../Regression/GitHub/1437/Issue1437Test.php | 11 - .../phpunit/tests/Regression/GitHub/1468.phpt | 20 - .../Regression/GitHub/1468/Issue1468Test.php | 13 - .../phpunit/tests/Regression/GitHub/1471.phpt | 26 - .../Regression/GitHub/1471/Issue1471Test.php | 14 - .../phpunit/tests/Regression/GitHub/1472.phpt | 18 - .../Regression/GitHub/1472/Issue1472Test.php | 23 - .../phpunit/tests/Regression/GitHub/1570.phpt | 25 - .../Regression/GitHub/1570/Issue1570Test.php | 10 - .../tests/Regression/GitHub/2137-filter.phpt | 28 - .../Regression/GitHub/2137-no_filter.phpt | 30 - .../Regression/GitHub/2137/Issue2137Test.php | 33 - .../phpunit/tests/Regression/GitHub/2145.phpt | 27 - .../Regression/GitHub/2145/Issue2145Test.php | 16 - .../phpunit/tests/Regression/GitHub/2158.phpt | 19 - .../Regression/GitHub/2158/Issue2158Test.php | 25 - .../tests/Regression/GitHub/2158/constant.inc | 5 - .../phpunit/tests/Regression/GitHub/2366.phpt | 19 - .../Regression/GitHub/2366/Issue2366Test.php | 32 - .../phpunit/tests/Regression/GitHub/2380.phpt | 19 - .../Regression/GitHub/2380/Issue2380Test.php | 21 - .../phpunit/tests/Regression/GitHub/2382.phpt | 19 - .../Regression/GitHub/2382/Issue2382Test.php | 22 - .../phpunit/tests/Regression/GitHub/2435.phpt | 20 - .../Regression/GitHub/2435/Issue2435Test.php | 11 - .../phpunit/tests/Regression/GitHub/244.phpt | 32 - .../Regression/GitHub/244/Issue244Test.php | 57 - .../Regression/GitHub/2448-existing-test.phpt | 20 - .../GitHub/2448-not-existing-test.phpt | 12 - .../tests/Regression/GitHub/2448/Test.php | 8 - ...-separate-class-preserve-no-bootstrap.phpt | 30 - .../GitHub/2591-separate-class-preserve.phpt | 21 - ...ction-no-preserve-no-bootstrap-xdebug.phpt | 39 - ...ate-function-no-preserve-no-bootstrap.phpt | 35 - .../2591-separate-function-no-preserve.phpt | 20 - .../2591-separate-function-preserve.phpt | 20 - .../GitHub/2591/SeparateClassPreserveTest.php | 26 - .../2591/SeparateFunctionNoPreserveTest.php | 21 - .../2591/SeparateFunctionPreserveTest.php | 21 - .../GitHub/2591/bootstrapNoBootstrap.php | 7 - .../GitHub/2591/bootstrapWithBootstrap.php | 4 - .../2591/bootstrapWithBootstrapNoGlobal.php | 4 - .../2725-separate-class-before-after-pid.phpt | 19 - .../GitHub/2725/BeforeAfterClassPidTest.php | 37 - .../phpunit/tests/Regression/GitHub/2731.phpt | 26 - .../Regression/GitHub/2731/Issue2731Test.php | 11 - .../phpunit/tests/Regression/GitHub/2811.phpt | 20 - .../Regression/GitHub/2811/Issue2811Test.php | 10 - .../phpunit/tests/Regression/GitHub/2972.phpt | 18 - .../GitHub/2972/issue-2972-test.phpt | 10 - .../2972/unconventiallyNamedIssue2972Test.php | 13 - .../phpunit/tests/Regression/GitHub/322.phpt | 27 - .../Regression/GitHub/322/Issue322Test.php | 21 - .../Regression/GitHub/322/phpunit322.xml | 11 - .../phpunit/tests/Regression/GitHub/433.phpt | 31 - .../Regression/GitHub/433/Issue433Test.php | 23 - .../phpunit/tests/Regression/GitHub/445.phpt | 32 - .../Regression/GitHub/445/Issue445Test.php | 23 - .../phpunit/tests/Regression/GitHub/498.phpt | 29 - .../Regression/GitHub/498/Issue498Test.php | 46 - .../phpunit/tests/Regression/GitHub/503.phpt | 34 - .../Regression/GitHub/503/Issue503Test.php | 13 - .../phpunit/tests/Regression/GitHub/581.phpt | 38 - .../Regression/GitHub/581/Issue581Test.php | 13 - .../phpunit/tests/Regression/GitHub/74.phpt | 28 - .../Regression/GitHub/74/Issue74Test.php | 11 - .../Regression/GitHub/74/NewException.php | 4 - .../phpunit/tests/Regression/GitHub/765.phpt | 26 - .../Regression/GitHub/765/Issue765Test.php | 24 - .../phpunit/tests/Regression/GitHub/797.phpt | 22 - .../Regression/GitHub/797/Issue797Test.php | 12 - .../Regression/GitHub/797/bootstrap797.php | 6 - .../phpunit/tests/Regression/GitHub/863.phpt | 24 - .../phpunit/tests/Regression/GitHub/873.phpt | 22 - .../Regression/GitHub/873/Issue873Test.php | 9 - .../phpunit/tests/Regression/Trac/1021.phpt | 19 - .../Regression/Trac/1021/Issue1021Test.php | 26 - .../phpunit/tests/Regression/Trac/523.phpt | 19 - .../Regression/Trac/523/Issue523Test.php | 15 - .../phpunit/tests/Regression/Trac/578.phpt | 37 - .../Regression/Trac/578/Issue578Test.php | 22 - .../phpunit/tests/Regression/Trac/684.phpt | 25 - .../Regression/Trac/684/Issue684Test.php | 6 - .../phpunit/tests/Regression/Trac/783.phpt | 21 - .../tests/Regression/Trac/783/ChildSuite.php | 17 - .../tests/Regression/Trac/783/OneTest.php | 13 - .../tests/Regression/Trac/783/ParentSuite.php | 15 - .../tests/Regression/Trac/783/TwoTest.php | 13 - .../phpunit/tests/Runner/PhptTestCaseTest.php | 321 - .../tests/TextUI/_files/expect_external.txt | 1 - .../tests/TextUI/_files/phpt-env.expected.txt | 1 - .../tests/TextUI/_files/phpt_external.php | 2 - .../tests/TextUI/abstract-test-class.phpt | 24 - .../phpunit/tests/TextUI/assertion.phpt | 38 - .../tests/TextUI/code-coverage-ignore.phpt | 36 - .../tests/TextUI/code-coverage-phpt.phpt | 43 - .../phpunit/tests/TextUI/colors-always.phpt | 18 - .../tests/TextUI/concrete-test-class.phpt | 18 - .../tests/TextUI/custom-printer-debug.phpt | 26 - .../tests/TextUI/custom-printer-verbose.phpt | 31 - .../tests/TextUI/dataprovider-debug.phpt | 33 - .../tests/TextUI/dataprovider-issue-2833.phpt | 17 - .../tests/TextUI/dataprovider-issue-2859.phpt | 17 - .../tests/TextUI/dataprovider-issue-2922.phpt | 18 - .../dataprovider-log-xml-isolation.phpt | 46 - .../tests/TextUI/dataprovider-log-xml.phpt | 45 - .../tests/TextUI/dataprovider-testdox.phpt | 19 - .../phpunit/phpunit/tests/TextUI/debug.phpt | 25 - .../tests/TextUI/default-isolation.phpt | 19 - .../phpunit/phpunit/tests/TextUI/default.phpt | 18 - .../defaulttestsuite-using-testsuite.phpt | 17 - .../tests/TextUI/defaulttestsuite.phpt | 15 - .../tests/TextUI/dependencies-clone.phpt | 22 - .../tests/TextUI/dependencies-isolation.phpt | 42 - .../phpunit/tests/TextUI/dependencies.phpt | 41 - .../tests/TextUI/dependencies2-isolation.phpt | 19 - .../phpunit/tests/TextUI/dependencies2.phpt | 18 - .../tests/TextUI/dependencies3-isolation.phpt | 19 - .../phpunit/tests/TextUI/dependencies3.phpt | 19 - .../TextUI/disable-code-coverage-ignore.phpt | 40 - .../phpunit/tests/TextUI/empty-testcase.phpt | 25 - .../phpunit/tests/TextUI/exception-stack.phpt | 62 - .../tests/TextUI/exclude-group-isolation.phpt | 21 - .../phpunit/tests/TextUI/exclude-group.phpt | 20 - .../tests/TextUI/failure-isolation.phpt | 137 - .../tests/TextUI/failure-reverse-list.phpt | 137 - .../phpunit/phpunit/tests/TextUI/failure.phpt | 136 - .../phpunit/tests/TextUI/fatal-isolation.phpt | 25 - .../tests/TextUI/filter-class-isolation.phpt | 21 - .../phpunit/tests/TextUI/filter-class.phpt | 20 - ...ider-by-classname-and-range-isolation.phpt | 21 - ...r-dataprovider-by-classname-and-range.phpt | 20 - ...lter-dataprovider-by-number-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-number.phpt | 20 - ...-dataprovider-by-only-range-isolation.phpt | 21 - .../filter-dataprovider-by-only-range.phpt | 20 - ...dataprovider-by-only-regexp-isolation.phpt | 21 - .../filter-dataprovider-by-only-regexp.phpt | 20 - ...dataprovider-by-only-string-isolation.phpt | 21 - .../filter-dataprovider-by-only-string.phpt | 20 - ...ilter-dataprovider-by-range-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-range.phpt | 20 - ...lter-dataprovider-by-regexp-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-regexp.phpt | 20 - ...lter-dataprovider-by-string-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-string.phpt | 20 - .../filter-method-case-insensitive.phpt | 20 - ...ilter-method-case-sensitive-no-result.phpt | 20 - .../tests/TextUI/filter-method-isolation.phpt | 21 - .../phpunit/tests/TextUI/filter-method.phpt | 20 - .../tests/TextUI/filter-no-results.phpt | 20 - .../tests/TextUI/forward-compatibility.phpt | 18 - .../phpunit/tests/TextUI/group-isolation.phpt | 21 - .../phpunit/phpunit/tests/TextUI/group.phpt | 20 - vendor/phpunit/phpunit/tests/TextUI/help.phpt | 103 - .../phpunit/phpunit/tests/TextUI/help2.phpt | 104 - .../phpunit/tests/TextUI/ini-isolation.phpt | 21 - .../phpunit/tests/TextUI/list-groups.phpt | 18 - .../phpunit/tests/TextUI/list-suites.phpt | 16 - .../tests/TextUI/list-tests-dataprovider.phpt | 19 - .../TextUI/list-tests-xml-dataprovider.phpt | 31 - .../phpunit/tests/TextUI/log-junit.phpt | 89 - .../phpunit/tests/TextUI/log-teamcity.phpt | 38 - .../phpunit/tests/TextUI/mycommand.phpt | 23 - .../tests/TextUI/options-after-arguments.phpt | 18 - .../tests/TextUI/output-isolation.phpt | 20 - .../TextUI/phar-extension-suppressed.phpt | 12 - .../phpunit/tests/TextUI/phar-extension.phpt | 21 - .../phpunit/tests/TextUI/phpt-args.phpt | 12 - .../phpunit/tests/TextUI/phpt-env.phpt | 12 - .../phpunit/tests/TextUI/phpt-external.phpt | 6 - .../phpunit/tests/TextUI/phpt-stderr.phpt | 8 - .../phpunit/tests/TextUI/phpt-stdin.phpt | 11 - .../phpunit/tests/TextUI/phpt-xfail.phpt | 18 - .../phpunit/phpunit/tests/TextUI/repeat.phpt | 20 - .../report-useless-tests-incomplete.phpt | 19 - .../report-useless-tests-isolation.phpt | 25 - .../tests/TextUI/report-useless-tests.phpt | 24 - .../tests/TextUI/stop-on-warning-via-cli.phpt | 25 - .../TextUI/stop-on-warning-via-config.phpt | 26 - .../TextUI/teamcity-inner-exceptions.phpt | 39 - .../phpunit/tests/TextUI/teamcity.phpt | 37 - .../tests/TextUI/test-suffix-multiple.phpt | 19 - .../tests/TextUI/test-suffix-single.phpt | 19 - .../tests/TextUI/testdox-exclude-group.phpt | 25 - .../phpunit/tests/TextUI/testdox-group.phpt | 25 - .../phpunit/tests/TextUI/testdox-html.phpt | 56 - .../phpunit/tests/TextUI/testdox-text.phpt | 24 - .../phpunit/tests/TextUI/testdox-xml.phpt | 62 - .../phpunit/phpunit/tests/TextUI/testdox.phpt | 18 - .../tests/Util/ConfigurationGeneratorTest.php | 50 - .../phpunit/tests/Util/ConfigurationTest.php | 481 - .../phpunit/phpunit/tests/Util/GetoptTest.php | 215 - .../phpunit/tests/Util/GlobalStateTest.php | 36 - .../phpunit/phpunit/tests/Util/JsonTest.php | 79 - .../tests/Util/PHP/AbstractPhpProcessTest.php | 124 - .../tests/Util/RegularExpressionTest.php | 51 - .../tests/Util/TestDox/NamePrettifierTest.php | 79 - .../phpunit/phpunit/tests/Util/TestTest.php | 1002 - vendor/phpunit/phpunit/tests/Util/XmlTest.php | 117 - .../phpunit/tests/_files/AbstractTest.php | 10 - .../phpunit/tests/_files/ArrayAccessible.php | 40 - .../phpunit/tests/_files/AssertionExample.php | 8 - .../tests/_files/AssertionExampleTest.php | 12 - .../phpunit/phpunit/tests/_files/Author.php | 25 - .../phpunit/tests/_files/BankAccount.php | 80 - .../phpunit/tests/_files/BankAccountTest.php | 93 - .../tests/_files/BankAccountTest.test.php | 86 - .../phpunit/tests/_files/BankAccountTest2.php | 56 - .../tests/_files/BaseTestListenerSample.php | 14 - .../tests/_files/BeforeAndAfterTest.php | 37 - .../_files/BeforeClassAndAfterClassTest.php | 37 - .../BeforeClassWithOnlyDataProviderTest.php | 39 - vendor/phpunit/phpunit/tests/_files/Book.php | 18 - .../phpunit/tests/_files/Calculator.php | 14 - .../ChangeCurrentWorkingDirectoryTest.php | 11 - .../_files/ClassWithNonPublicAttributes.php | 29 - .../ClassWithScalarTypeDeclarations.php | 7 - .../tests/_files/ClassWithToString.php | 20 - .../tests/_files/ClonedDependencyTest.php | 59 - .../phpunit/tests/_files/ConcreteTest.my.php | 8 - .../phpunit/tests/_files/ConcreteTest.php | 8 - .../phpunit/tests/_files/CountConstraint.php | 37 - .../_files/CoverageClassExtendedTest.php | 14 - .../tests/_files/CoverageClassTest.php | 14 - .../CoverageFunctionParenthesesTest.php | 13 - ...erageFunctionParenthesesWhitespaceTest.php | 13 - .../tests/_files/CoverageFunctionTest.php | 13 - .../CoverageMethodOneLineAnnotationTest.php | 13 - .../_files/CoverageMethodParenthesesTest.php | 14 - ...overageMethodParenthesesWhitespaceTest.php | 14 - .../tests/_files/CoverageMethodTest.php | 14 - .../_files/CoverageNamespacedFunctionTest.php | 13 - .../phpunit/tests/_files/CoverageNoneTest.php | 11 - .../tests/_files/CoverageNotPrivateTest.php | 14 - .../tests/_files/CoverageNotProtectedTest.php | 14 - .../tests/_files/CoverageNotPublicTest.php | 14 - .../tests/_files/CoverageNothingTest.php | 15 - .../tests/_files/CoveragePrivateTest.php | 14 - .../tests/_files/CoverageProtectedTest.php | 14 - .../tests/_files/CoveragePublicTest.php | 14 - .../CoverageTwoDefaultClassAnnotations.php | 17 - .../phpunit/tests/_files/CoveredClass.php | 36 - .../phpunit/tests/_files/CoveredFunction.php | 4 - .../phpunit/tests/_files/CustomPrinter.php | 6 - .../tests/_files/DataProviderDebugTest.php | 50 - .../_files/DataProviderDependencyTest.php | 24 - .../tests/_files/DataProviderFilterTest.php | 41 - .../_files/DataProviderIncompleteTest.php | 39 - .../DataProviderIssue2833/FirstTest.php | 23 - .../DataProviderIssue2833/SecondTest.php | 15 - .../_files/DataProviderIssue2859/phpunit.xml | 10 - .../another/TestWithDataProviderTest.php | 21 - .../DataProviderIssue2922/FirstTest.php | 24 - .../DataProviderIssue2922/SecondTest.php | 14 - .../tests/_files/DataProviderSkippedTest.php | 39 - .../phpunit/tests/_files/DataProviderTest.php | 23 - .../tests/_files/DataProviderTestDoxTest.php | 30 - .../tests/_files/DependencyFailureTest.php | 34 - .../tests/_files/DependencySuccessTest.php | 26 - .../tests/_files/DependencyTestSuite.php | 15 - .../phpunit/tests/_files/DoubleTestCase.php | 29 - .../phpunit/tests/_files/DummyBarTest.php | 18 - .../phpunit/tests/_files/DummyException.php | 5 - .../phpunit/tests/_files/DummyFooTest.php | 18 - .../tests/_files/EmptyTestCaseTest.php | 6 - .../ExceptionInAssertPostConditionsTest.php | 37 - .../ExceptionInAssertPreConditionsTest.php | 37 - .../tests/_files/ExceptionInSetUpTest.php | 37 - .../tests/_files/ExceptionInTearDownTest.php | 37 - .../phpunit/tests/_files/ExceptionInTest.php | 37 - .../tests/_files/ExceptionNamespaceTest.php | 38 - .../tests/_files/ExceptionStackTest.php | 26 - .../phpunit/tests/_files/ExceptionTest.php | 141 - .../phpunit/phpunit/tests/_files/Failure.php | 10 - .../phpunit/tests/_files/FailureTest.php | 77 - .../phpunit/tests/_files/FalsyConstraint.php | 18 - .../phpunit/tests/_files/FatalTest.php | 15 - .../tests/_files/IgnoreCodeCoverageClass.php | 16 - .../_files/IgnoreCodeCoverageClassTest.php | 17 - .../phpunit/tests/_files/IncompleteTest.php | 10 - .../tests/_files/Inheritance/InheritanceA.php | 7 - .../tests/_files/Inheritance/InheritanceB.php | 10 - .../tests/_files/InheritedTestCase.php | 7 - .../phpunit/phpunit/tests/_files/IniTest.php | 10 - .../phpunit/tests/_files/IsolationTest.php | 15 - .../tests/_files/JsonData/arrayObject.json | 1 - .../tests/_files/JsonData/simpleObject.json | 1 - .../phpunit/tests/_files/MockRunner.php | 9 - .../phpunit/phpunit/tests/_files/Mockable.php | 26 - .../tests/_files/MultiDependencyTest.php | 29 - .../tests/_files/MultipleDataProviderTest.php | 77 - .../phpunit/tests/_files/MyCommand.php | 16 - .../phpunit/tests/_files/NamedConstraint.php | 29 - .../NamespaceCoverageClassExtendedTest.php | 14 - .../_files/NamespaceCoverageClassTest.php | 14 - ...NamespaceCoverageCoversClassPublicTest.php | 17 - .../NamespaceCoverageCoversClassTest.php | 22 - .../_files/NamespaceCoverageMethodTest.php | 14 - .../NamespaceCoverageNotPrivateTest.php | 14 - .../NamespaceCoverageNotProtectedTest.php | 14 - .../_files/NamespaceCoverageNotPublicTest.php | 14 - .../_files/NamespaceCoveragePrivateTest.php | 14 - .../_files/NamespaceCoverageProtectedTest.php | 14 - .../_files/NamespaceCoveragePublicTest.php | 14 - .../tests/_files/NamespaceCoveredClass.php | 38 - .../tests/_files/NamespaceCoveredFunction.php | 7 - .../tests/_files/NoArgTestCaseTest.php | 9 - .../phpunit/tests/_files/NoTestCaseClass.php | 4 - .../phpunit/tests/_files/NoTestCases.php | 9 - .../phpunit/tests/_files/NonStatic.php | 7 - .../_files/NotExistingCoveredElementTest.php | 26 - .../tests/_files/NotPublicTestCase.php | 13 - .../phpunit/tests/_files/NotVoidTestCase.php | 6 - .../phpunit/tests/_files/NothingTest.php | 9 - .../phpunit/tests/_files/OneTestCase.php | 13 - .../phpunit/tests/_files/OutputTestCase.php | 29 - .../phpunit/tests/_files/OverrideTestCase.php | 7 - .../_files/ParseTestMethodAnnotationsMock.php | 15 - .../RequirementsClassBeforeClassHookTest.php | 13 - .../_files/RequirementsClassDocBlockTest.php | 22 - .../phpunit/tests/_files/RequirementsTest.php | 447 - .../tests/_files/SampleArrayAccess.php | 36 - .../phpunit/tests/_files/SampleClass.php | 14 - .../phpunit/tests/_files/Singleton.php | 22 - .../phpunit/tests/_files/StackTest.php | 26 - .../phpunit/tests/_files/StatusTest.php | 42 - .../tests/_files/StopOnWarningTestSuite.php | 15 - .../tests/_files/StopsOnWarningTest.php | 9 - .../phpunit/phpunit/tests/_files/Struct.php | 10 - .../phpunit/phpunit/tests/_files/Success.php | 10 - .../tests/_files/TemplateMethodsTest.php | 53 - .../tests/_files/TestAutoreferenced.php | 12 - .../phpunit/tests/_files/TestDoxGroupTest.php | 22 - .../tests/_files/TestGeneratorMaker.php | 10 - .../phpunit/tests/_files/TestIncomplete.php | 10 - .../phpunit/tests/_files/TestIterator.php | 36 - .../phpunit/tests/_files/TestIterator2.php | 35 - .../tests/_files/TestIteratorAggregate.php | 16 - .../tests/_files/TestIteratorAggregate2.php | 19 - .../phpunit/tests/_files/TestSkipped.php | 10 - .../phpunit/tests/_files/TestTestError.php | 10 - .../phpunit/tests/_files/TestWithTest.php | 26 - .../tests/_files/ThrowExceptionTestCase.php | 10 - .../tests/_files/ThrowNoExceptionTestCase.php | 9 - .../phpunit/tests/_files/TruthyConstraint.php | 18 - .../VariousIterableDataProviderTest.php | 38 - .../phpunit/phpunit/tests/_files/WasRun.php | 12 - .../tests/_files/WrapperIteratorAggregate.php | 22 - vendor/phpunit/phpunit/tests/_files/bar.xml | 1 - .../_files/configuration.colors.empty.xml | 1 - .../_files/configuration.colors.false.xml | 1 - .../_files/configuration.colors.invalid.xml | 1 - .../_files/configuration.colors.true.xml | 1 - .../_files/configuration.custom-printer.xml | 2 - .../_files/configuration.defaulttestsuite.xml | 10 - .../_files/configuration.one-file-suite.xml | 7 - .../tests/_files/configuration.suites.xml | 6 - .../phpunit/tests/_files/configuration.xml | 131 - .../tests/_files/configuration_empty.xml | 49 - .../_files/configuration_stop_on_warning.xml | 2 - .../tests/_files/configuration_xinclude.xml | 79 - .../tests/_files/expectedFileFormat.txt | 1 - vendor/phpunit/phpunit/tests/_files/foo.xml | 1 - .../tests/_files/phpt-for-coverage.phpt | 8 - .../phpunit/tests/_files/phpt-xfail.phpt | 11 - .../phpunit-example-extension/phpunit.xml | 10 - .../tests/OneTest.php | 13 - .../phpunit-example-extension-1.0.1.phar | Bin 6464 -> 0 bytes ...uctureAttributesAreSameButValuesAreNot.xml | 10 - .../tests/_files/structureExpected.xml | 10 - .../tests/_files/structureIgnoreTextNodes.xml | 13 - .../_files/structureIsSameButDataIsNot.xml | 10 - .../structureWrongNumberOfAttributes.xml | 10 - .../_files/structureWrongNumberOfNodes.xml | 9 - vendor/phpunit/phpunit/tests/bootstrap.php | 30 - vendor/psr/container/.gitignore | 3 - vendor/psr/container/LICENSE | 21 - vendor/psr/container/README.md | 5 - vendor/psr/container/composer.json | 27 - .../src/ContainerExceptionInterface.php | 13 - .../psr/container/src/ContainerInterface.php | 37 - .../src/NotFoundExceptionInterface.php | 13 - vendor/psr/http-message/CHANGELOG.md | 36 - vendor/psr/http-message/LICENSE | 19 - vendor/psr/http-message/README.md | 13 - vendor/psr/http-message/composer.json | 26 - .../psr/http-message/src/MessageInterface.php | 187 - .../psr/http-message/src/RequestInterface.php | 129 - .../http-message/src/ResponseInterface.php | 68 - .../src/ServerRequestInterface.php | 261 - .../psr/http-message/src/StreamInterface.php | 158 - .../src/UploadedFileInterface.php | 123 - vendor/psr/http-message/src/UriInterface.php | 323 - vendor/psr/log/.gitignore | 1 - vendor/psr/log/LICENSE | 19 - vendor/psr/log/Psr/Log/AbstractLogger.php | 128 - .../log/Psr/Log/InvalidArgumentException.php | 7 - vendor/psr/log/Psr/Log/LogLevel.php | 18 - .../psr/log/Psr/Log/LoggerAwareInterface.php | 18 - vendor/psr/log/Psr/Log/LoggerAwareTrait.php | 26 - vendor/psr/log/Psr/Log/LoggerInterface.php | 123 - vendor/psr/log/Psr/Log/LoggerTrait.php | 140 - vendor/psr/log/Psr/Log/NullLogger.php | 28 - .../log/Psr/Log/Test/LoggerInterfaceTest.php | 140 - vendor/psr/log/README.md | 45 - vendor/psr/log/composer.json | 26 - vendor/psr/simple-cache/.editorconfig | 12 - vendor/psr/simple-cache/LICENSE.md | 21 - vendor/psr/simple-cache/README.md | 8 - vendor/psr/simple-cache/composer.json | 25 - .../psr/simple-cache/src/CacheException.php | 10 - .../psr/simple-cache/src/CacheInterface.php | 114 - .../src/InvalidArgumentException.php | 13 - vendor/psy/psysh/.editorconfig | 12 - vendor/psy/psysh/.gitignore | 11 - vendor/psy/psysh/.phan/config.php | 46 - vendor/psy/psysh/.php_cs | 32 - vendor/psy/psysh/.styleci.yml | 27 - vendor/psy/psysh/.travis.yml | 35 - vendor/psy/psysh/CONTRIBUTING.md | 18 - vendor/psy/psysh/LICENSE | 21 - vendor/psy/psysh/README.md | 33 - vendor/psy/psysh/bin/build | 13 - vendor/psy/psysh/bin/build-manual | 312 - vendor/psy/psysh/bin/build-phar | 38 - vendor/psy/psysh/bin/build-vendor | 10 - vendor/psy/psysh/bin/build-vendor-compat | 21 - vendor/psy/psysh/bin/package | 55 - vendor/psy/psysh/bin/psysh | 135 - vendor/psy/psysh/composer.json | 52 - vendor/psy/psysh/phpunit.xml.dist | 12 - vendor/psy/psysh/src/Psy/Autoloader.php | 45 - vendor/psy/psysh/src/Psy/CodeCleaner.php | 259 - .../src/Psy/CodeCleaner/AbstractClassPass.php | 71 - .../CodeCleaner/AssignThisVariablePass.php | 39 - .../CallTimePassByReferencePass.php | 54 - .../src/Psy/CodeCleaner/CalledClassPass.php | 83 - .../src/Psy/CodeCleaner/CodeCleanerPass.php | 22 - .../psysh/src/Psy/CodeCleaner/ExitPass.php | 32 - .../src/Psy/CodeCleaner/FinalClassPass.php | 70 - .../Psy/CodeCleaner/FunctionContextPass.php | 61 - .../FunctionReturnInWriteContextPass.php | 81 - .../Psy/CodeCleaner/ImplicitReturnPass.php | 102 - .../src/Psy/CodeCleaner/InstanceOfPass.php | 47 - .../Psy/CodeCleaner/LeavePsyshAlonePass.php | 36 - .../src/Psy/CodeCleaner/LegacyEmptyPass.php | 64 - .../src/Psy/CodeCleaner/LoopContextPass.php | 109 - .../Psy/CodeCleaner/MagicConstantsPass.php | 42 - .../Psy/CodeCleaner/NamespaceAwarePass.php | 71 - .../src/Psy/CodeCleaner/NamespacePass.php | 77 - .../src/Psy/CodeCleaner/NoReturnValue.php | 24 - .../CodeCleaner/PassableByReferencePass.php | 109 - .../psysh/src/Psy/CodeCleaner/RequirePass.php | 102 - .../Psy/CodeCleaner/StaticConstructorPass.php | 88 - .../src/Psy/CodeCleaner/StrictTypesPass.php | 78 - .../src/Psy/CodeCleaner/UseStatementPass.php | 123 - .../Psy/CodeCleaner/ValidClassNamePass.php | 393 - .../src/Psy/CodeCleaner/ValidConstantPass.php | 86 - .../Psy/CodeCleaner/ValidFunctionNamePass.php | 97 - .../psysh/src/Psy/Command/BufferCommand.php | 77 - .../psysh/src/Psy/Command/ClearCommand.php | 49 - vendor/psy/psysh/src/Psy/Command/Command.php | 282 - .../psy/psysh/src/Psy/Command/DocCommand.php | 119 - .../psy/psysh/src/Psy/Command/DumpCommand.php | 105 - .../psy/psysh/src/Psy/Command/EditCommand.php | 187 - .../psy/psysh/src/Psy/Command/ExitCommand.php | 52 - .../psy/psysh/src/Psy/Command/HelpCommand.php | 98 - .../psysh/src/Psy/Command/HistoryCommand.php | 245 - .../psy/psysh/src/Psy/Command/ListCommand.php | 275 - .../ListCommand/ClassConstantEnumerator.php | 129 - .../Command/ListCommand/ClassEnumerator.php | 126 - .../ListCommand/ConstantEnumerator.php | 122 - .../Psy/Command/ListCommand/Enumerator.php | 106 - .../ListCommand/FunctionEnumerator.php | 112 - .../ListCommand/GlobalVariableEnumerator.php | 92 - .../ListCommand/InterfaceEnumerator.php | 88 - .../Command/ListCommand/MethodEnumerator.php | 147 - .../ListCommand/PropertyEnumerator.php | 182 - .../Command/ListCommand/TraitEnumerator.php | 93 - .../ListCommand/VariableEnumerator.php | 140 - .../psysh/src/Psy/Command/ParseCommand.php | 160 - .../src/Psy/Command/PsyVersionCommand.php | 41 - .../src/Psy/Command/ReflectingCommand.php | 255 - .../psy/psysh/src/Psy/Command/ShowCommand.php | 272 - .../psy/psysh/src/Psy/Command/SudoCommand.php | 143 - .../psysh/src/Psy/Command/ThrowUpCommand.php | 87 - .../psysh/src/Psy/Command/TraceCommand.php | 167 - .../psysh/src/Psy/Command/WhereamiCommand.php | 152 - .../psy/psysh/src/Psy/Command/WtfCommand.php | 125 - vendor/psy/psysh/src/Psy/Compiler.php | 163 - vendor/psy/psysh/src/Psy/ConfigPaths.php | 237 - vendor/psy/psysh/src/Psy/Configuration.php | 1298 -- .../psy/psysh/src/Psy/ConsoleColorFactory.php | 82 - vendor/psy/psysh/src/Psy/Context.php | 293 - vendor/psy/psysh/src/Psy/ContextAware.php | 28 - .../src/Psy/Exception/BreakException.php | 51 - .../src/Psy/Exception/DeprecatedException.php | 20 - .../src/Psy/Exception/ErrorException.php | 114 - .../psy/psysh/src/Psy/Exception/Exception.php | 27 - .../src/Psy/Exception/FatalErrorException.php | 52 - .../src/Psy/Exception/ParseErrorException.php | 42 - .../src/Psy/Exception/RuntimeException.php | 43 - .../src/Psy/Exception/ThrowUpException.php | 37 - .../src/Psy/Exception/TypeErrorException.php | 55 - .../src/Psy/ExecutionLoop/ForkingLoop.php | 177 - .../psy/psysh/src/Psy/ExecutionLoop/Loop.php | 186 - .../psysh/src/Psy/Formatter/CodeFormatter.php | 76 - .../src/Psy/Formatter/DocblockFormatter.php | 168 - .../psy/psysh/src/Psy/Formatter/Formatter.php | 25 - .../src/Psy/Formatter/SignatureFormatter.php | 273 - .../psy/psysh/src/Psy/Input/CodeArgument.php | 50 - .../psy/psysh/src/Psy/Input/FilterOptions.php | 143 - vendor/psy/psysh/src/Psy/Input/ShellInput.php | 326 - .../psy/psysh/src/Psy/Input/SilentInput.php | 44 - .../psy/psysh/src/Psy/Output/OutputPager.php | 26 - .../psysh/src/Psy/Output/PassthruPager.php | 39 - .../psysh/src/Psy/Output/ProcOutputPager.php | 103 - .../psy/psysh/src/Psy/Output/ShellOutput.php | 204 - vendor/psy/psysh/src/Psy/ParserFactory.php | 91 - .../psysh/src/Psy/Readline/GNUReadline.php | 170 - .../psy/psysh/src/Psy/Readline/HoaConsole.php | 107 - vendor/psy/psysh/src/Psy/Readline/Libedit.php | 83 - .../psy/psysh/src/Psy/Readline/Readline.php | 76 - .../psy/psysh/src/Psy/Readline/Transient.php | 146 - .../src/Psy/Reflection/ReflectionConstant.php | 151 - .../ReflectionLanguageConstruct.php | 152 - .../ReflectionLanguageConstructParameter.php | 103 - vendor/psy/psysh/src/Psy/Shell.php | 1033 - vendor/psy/psysh/src/Psy/Sudo.php | 150 - vendor/psy/psysh/src/Psy/Sudo/SudoVisitor.php | 115 - .../src/Psy/TabCompletion/AutoCompleter.php | 112 - .../Matcher/AbstractContextAwareMatcher.php | 65 - .../AbstractDefaultParametersMatcher.php | 76 - .../TabCompletion/Matcher/AbstractMatcher.php | 186 - .../Matcher/ClassAttributesMatcher.php | 84 - .../ClassMethodDefaultParametersMatcher.php | 64 - .../Matcher/ClassMethodsMatcher.php | 76 - .../Matcher/ClassNamesMatcher.php | 77 - .../TabCompletion/Matcher/CommandsMatcher.php | 114 - .../Matcher/ConstantsMatcher.php | 54 - .../FunctionDefaultParametersMatcher.php | 53 - .../Matcher/FunctionsMatcher.php | 56 - .../TabCompletion/Matcher/KeywordsMatcher.php | 85 - .../Matcher/MongoClientMatcher.php | 71 - .../Matcher/MongoDatabaseMatcher.php | 67 - .../Matcher/ObjectAttributesMatcher.php | 78 - .../ObjectMethodDefaultParametersMatcher.php | 71 - .../Matcher/ObjectMethodsMatcher.php | 80 - .../Matcher/VariablesMatcher.php | 51 - vendor/psy/psysh/src/Psy/Util/Docblock.php | 241 - vendor/psy/psysh/src/Psy/Util/Json.php | 35 - vendor/psy/psysh/src/Psy/Util/Mirror.php | 94 - vendor/psy/psysh/src/Psy/Util/Str.php | 114 - vendor/psy/psysh/src/Psy/VarDumper/Cloner.php | 42 - vendor/psy/psysh/src/Psy/VarDumper/Dumper.php | 109 - .../psy/psysh/src/Psy/VarDumper/Presenter.php | 137 - .../src/Psy/VarDumper/PresenterAware.php | 26 - .../psysh/src/Psy/VersionUpdater/Checker.php | 31 - .../src/Psy/VersionUpdater/GitHubChecker.php | 89 - .../Psy/VersionUpdater/IntervalChecker.php | 69 - .../src/Psy/VersionUpdater/NoopChecker.php | 36 - vendor/psy/psysh/src/Psy/functions.php | 337 - .../psysh/test/Psy/Test/AutoloaderTest.php | 23 - .../CodeCleaner/AbstractClassPassTest.php | 64 - .../AssignThisVariablePassTest.php | 65 - .../CallTimePassByReferencePassTest.php | 76 - .../Test/CodeCleaner/CalledClassPassTest.php | 104 - .../Test/CodeCleaner/CodeCleanerTestCase.php | 97 - .../Psy/Test/CodeCleaner/ExitPassTest.php | 59 - .../Test/CodeCleaner/FinalClassPassTest.php | 72 - .../Fixtures/ClassWithCallStatic.php | 20 - .../CodeCleaner/Fixtures/ClassWithStatic.php | 20 - .../CodeCleaner/FunctionContextPassTest.php | 67 - .../FunctionReturnInWriteContextPassTest.php | 79 - .../CodeCleaner/ImplicitReturnPassTest.php | 96 - .../Test/CodeCleaner/InstanceOfPassTest.php | 76 - .../CodeCleaner/LeavePsyshAlonePassTest.php | 75 - .../Test/CodeCleaner/LegacyEmptyPassTest.php | 80 - .../Test/CodeCleaner/LoopContextPassTest.php | 137 - .../CodeCleaner/MagicConstantsPassTest.php | 39 - .../Test/CodeCleaner/NamespacePassTest.php | 56 - .../PassableByReferencePassTest.php | 115 - .../Psy/Test/CodeCleaner/RequirePassTest.php | 95 - .../CodeCleaner/StaticConstructorPassTest.php | 94 - .../Test/CodeCleaner/StrictTypesPassTest.php | 53 - .../Test/CodeCleaner/UseStatementPassTest.php | 52 - .../CodeCleaner/ValidClassNamePassTest.php | 336 - .../CodeCleaner/ValidConstantPassTest.php | 69 - .../CodeCleaner/ValidFunctionNamePassTest.php | 184 - .../psysh/test/Psy/Test/CodeCleanerTest.php | 132 - .../psysh/test/Psy/Test/ConfigurationTest.php | 260 - .../test/Psy/Test/ConsoleColorFactoryTest.php | 51 - .../Psy/Test/Exception/BreakExceptionTest.php | 34 - .../Psy/Test/Exception/ErrorExceptionTest.php | 108 - .../Exception/FatalErrorExceptionTest.php | 46 - .../Exception/ParseErrorExceptionTest.php | 43 - .../Test/Exception/RuntimeExceptionTest.php | 31 - .../Psy/Test/Formatter/CodeFormatterTest.php | 65 - .../Test/Formatter/DocblockFormatterTest.php | 63 - .../Test/Formatter/SignatureFormatterTest.php | 70 - .../test/Psy/Test/Input/CodeArgumentTest.php | 52 - .../test/Psy/Test/Input/ShellInputTest.php | 204 - .../Psy/Test/Readline/GNUReadlineTest.php | 80 - .../test/Psy/Test/Readline/HoaConsoleTest.php | 31 - .../test/Psy/Test/Readline/LibeditTest.php | 128 - .../test/Psy/Test/Readline/TransientTest.php | 76 - .../Reflection/ReflectionConstantTest.php | 60 - vendor/psy/psysh/test/Psy/Test/ShellTest.php | 346 - .../Test/TabCompletion/AutoCompleterTest.php | 145 - .../Psy/Test/TabCompletion/StaticSample.php | 27 - .../psysh/test/Psy/Test/Util/DocblockTest.php | 100 - .../psysh/test/Psy/Test/Util/MirrorTest.php | 80 - .../psy/psysh/test/Psy/Test/Util/StrTest.php | 31 - .../Test/VersionUpdater/GitHubCheckerTest.php | 82 - vendor/psy/psysh/test/fixtures/config.php | 18 - .../fixtures/default/.config/psysh/config.php | 1 - .../default/.config/psysh/psysh_history | 0 .../.local/share/psysh/php_manual.sqlite | 0 vendor/psy/psysh/test/fixtures/empty.php | 12 - .../psysh/test/fixtures/legacy/.psysh/history | 0 .../fixtures/legacy/.psysh/php_manual.sqlite | 0 .../psysh/test/fixtures/legacy/.psysh/rc.php | 1 - .../test/fixtures/mixed/.psysh/config.php | 1 - .../test/fixtures/mixed/.psysh/psysh_history | 0 .../psysh/test/fixtures/mixed/.psysh/rc.php | 1 - .../psysh/test/fixtures/project/.psysh.php | 15 - .../psysh/test/fixtures/unvis_fixtures.json | 1 - .../psysh/test/tools/gen_unvis_fixtures.py | 94 - vendor/psy/psysh/test/tools/vis.py | 126 - vendor/ramsey/uuid/CHANGELOG.md | 366 - vendor/ramsey/uuid/CODE_OF_CONDUCT.md | 74 - vendor/ramsey/uuid/CONTRIBUTING.md | 75 - vendor/ramsey/uuid/LICENSE | 19 - vendor/ramsey/uuid/README.md | 159 - vendor/ramsey/uuid/composer.json | 75 - vendor/ramsey/uuid/docs/.gitignore | 1 - vendor/ramsey/uuid/docs/Makefile | 20 - vendor/ramsey/uuid/docs/_static/.gitkeep | 0 vendor/ramsey/uuid/docs/conf.py | 169 - vendor/ramsey/uuid/docs/index.rst | 19 - vendor/ramsey/uuid/src/BinaryUtils.php | 43 - .../uuid/src/Builder/DefaultUuidBuilder.php | 54 - .../uuid/src/Builder/DegradedUuidBuilder.php | 53 - .../uuid/src/Builder/UuidBuilderInterface.php | 34 - .../ramsey/uuid/src/Codec/CodecInterface.php | 55 - .../ramsey/uuid/src/Codec/GuidStringCodec.php | 100 - .../uuid/src/Codec/OrderedTimeCodec.php | 67 - vendor/ramsey/uuid/src/Codec/StringCodec.php | 167 - .../src/Codec/TimestampFirstCombCodec.php | 105 - .../uuid/src/Codec/TimestampLastCombCodec.php | 23 - .../Converter/Number/BigNumberConverter.php | 54 - .../Number/DegradedNumberConverter.php | 58 - .../Converter/NumberConverterInterface.php | 44 - .../Converter/Time/BigNumberTimeConverter.php | 58 - .../Converter/Time/DegradedTimeConverter.php | 42 - .../src/Converter/Time/PhpTimeConverter.php | 47 - .../src/Converter/TimeConverterInterface.php | 33 - vendor/ramsey/uuid/src/DegradedUuid.php | 111 - .../Exception/InvalidUuidStringException.php | 22 - .../UnsatisfiedDependencyException.php | 23 - .../UnsupportedOperationException.php | 22 - vendor/ramsey/uuid/src/FeatureSet.php | 333 - .../uuid/src/Generator/CombGenerator.php | 85 - .../src/Generator/DefaultTimeGenerator.php | 132 - .../uuid/src/Generator/MtRandGenerator.php | 41 - .../uuid/src/Generator/OpenSslGenerator.php | 38 - .../src/Generator/PeclUuidRandomGenerator.php | 37 - .../src/Generator/PeclUuidTimeGenerator.php | 38 - .../src/Generator/RandomBytesGenerator.php | 36 - .../src/Generator/RandomGeneratorFactory.php | 31 - .../Generator/RandomGeneratorInterface.php | 30 - .../uuid/src/Generator/RandomLibAdapter.php | 62 - .../src/Generator/SodiumRandomGenerator.php | 36 - .../src/Generator/TimeGeneratorFactory.php | 72 - .../src/Generator/TimeGeneratorInterface.php | 35 - .../Provider/Node/FallbackNodeProvider.php | 57 - .../src/Provider/Node/RandomNodeProvider.php | 41 - .../src/Provider/Node/SystemNodeProvider.php | 119 - .../src/Provider/NodeProviderInterface.php | 29 - .../src/Provider/Time/FixedTimeProvider.php | 76 - .../src/Provider/Time/SystemTimeProvider.php | 33 - .../src/Provider/TimeProviderInterface.php | 29 - vendor/ramsey/uuid/src/Uuid.php | 714 - vendor/ramsey/uuid/src/UuidFactory.php | 292 - .../ramsey/uuid/src/UuidFactoryInterface.php | 89 - vendor/ramsey/uuid/src/UuidInterface.php | 267 - .../code-unit-reverse-lookup/.gitignore | 4 - .../code-unit-reverse-lookup/.php_cs | 67 - .../code-unit-reverse-lookup/.travis.yml | 25 - .../code-unit-reverse-lookup/ChangeLog.md | 10 - .../code-unit-reverse-lookup/LICENSE | 33 - .../code-unit-reverse-lookup/README.md | 14 - .../code-unit-reverse-lookup/build.xml | 22 - .../code-unit-reverse-lookup/composer.json | 28 - .../code-unit-reverse-lookup/phpunit.xml | 21 - .../code-unit-reverse-lookup/src/Wizard.php | 111 - .../tests/WizardTest.php | 45 - vendor/sebastian/comparator/.gitignore | 4 - vendor/sebastian/comparator/.php_cs.dist | 88 - vendor/sebastian/comparator/.travis.yml | 34 - vendor/sebastian/comparator/ChangeLog.md | 33 - vendor/sebastian/comparator/LICENSE | 33 - vendor/sebastian/comparator/README.md | 37 - vendor/sebastian/comparator/build.xml | 21 - vendor/sebastian/comparator/composer.json | 54 - vendor/sebastian/comparator/phpunit.xml | 18 - .../comparator/src/ArrayComparator.php | 131 - .../sebastian/comparator/src/Comparator.php | 65 - .../comparator/src/ComparisonFailure.php | 135 - .../comparator/src/DOMNodeComparator.php | 87 - .../comparator/src/DateTimeComparator.php | 84 - .../comparator/src/DoubleComparator.php | 57 - .../comparator/src/ExceptionComparator.php | 53 - vendor/sebastian/comparator/src/Factory.php | 139 - .../comparator/src/MockObjectComparator.php | 48 - .../comparator/src/NumericComparator.php | 69 - .../comparator/src/ObjectComparator.php | 107 - .../comparator/src/ResourceComparator.php | 53 - .../comparator/src/ScalarComparator.php | 92 - .../src/SplObjectStorageComparator.php | 70 - .../comparator/src/TypeComparator.php | 60 - .../comparator/tests/ArrayComparatorTest.php | 168 - .../tests/ComparisonFailureTest.php | 58 - .../tests/DOMNodeComparatorTest.php | 163 - .../tests/DateTimeComparatorTest.php | 223 - .../comparator/tests/DoubleComparatorTest.php | 137 - .../tests/ExceptionComparatorTest.php | 138 - .../comparator/tests/FactoryTest.php | 126 - .../tests/MockObjectComparatorTest.php | 170 - .../tests/NumericComparatorTest.php | 125 - .../comparator/tests/ObjectComparatorTest.php | 152 - .../tests/ResourceComparatorTest.php | 124 - .../comparator/tests/ScalarComparatorTest.php | 161 - .../tests/SplObjectStorageComparatorTest.php | 149 - .../comparator/tests/TypeComparatorTest.php | 108 - .../comparator/tests/_fixture/Author.php | 27 - .../comparator/tests/_fixture/Book.php | 20 - .../tests/_fixture/ClassWithToString.php | 19 - .../comparator/tests/_fixture/SampleClass.php | 28 - .../comparator/tests/_fixture/Struct.php | 24 - .../comparator/tests/_fixture/TestClass.php | 15 - .../tests/_fixture/TestClassComparator.php | 15 - vendor/sebastian/diff/.gitignore | 5 - vendor/sebastian/diff/.php_cs | 81 - vendor/sebastian/diff/.travis.yml | 27 - vendor/sebastian/diff/ChangeLog.md | 22 - vendor/sebastian/diff/LICENSE | 33 - vendor/sebastian/diff/README.md | 126 - vendor/sebastian/diff/build.xml | 22 - vendor/sebastian/diff/composer.json | 33 - vendor/sebastian/diff/phpunit.xml | 19 - vendor/sebastian/diff/src/Chunk.php | 78 - vendor/sebastian/diff/src/Diff.php | 67 - vendor/sebastian/diff/src/Differ.php | 321 - .../diff/src/Exception/Exception.php | 15 - .../Exception/InvalidArgumentException.php | 15 - vendor/sebastian/diff/src/Line.php | 44 - .../LongestCommonSubsequenceCalculator.php | 24 - ...ientLongestCommonSubsequenceCalculator.php | 81 - .../src/Output/AbstractChunkOutputBuilder.php | 56 - .../diff/src/Output/DiffOnlyOutputBuilder.php | 63 - .../src/Output/DiffOutputBuilderInterface.php | 19 - .../src/Output/UnifiedDiffOutputBuilder.php | 165 - vendor/sebastian/diff/src/Parser.php | 106 - ...ientLongestCommonSubsequenceCalculator.php | 66 - vendor/sebastian/diff/tests/ChunkTest.php | 68 - vendor/sebastian/diff/tests/DiffTest.php | 55 - vendor/sebastian/diff/tests/DifferTest.php | 1042 -- .../sebastian/diff/tests/DifferTestTest.php | 83 - vendor/sebastian/diff/tests/LineTest.php | 44 - .../tests/LongestCommonSubsequenceTest.php | 201 - .../MemoryEfficientImplementationTest.php | 22 - vendor/sebastian/diff/tests/ParserTest.php | 151 - .../tests/TimeEfficientImplementationTest.php | 22 - .../sebastian/diff/tests/fixtures/patch.txt | 9 - .../sebastian/diff/tests/fixtures/patch2.txt | 21 - vendor/sebastian/environment/.gitignore | 5 - vendor/sebastian/environment/.php_cs | 79 - vendor/sebastian/environment/.travis.yml | 34 - vendor/sebastian/environment/ChangeLog.md | 51 - vendor/sebastian/environment/LICENSE | 33 - vendor/sebastian/environment/README.md | 17 - vendor/sebastian/environment/build.xml | 21 - vendor/sebastian/environment/composer.json | 30 - vendor/sebastian/environment/phpunit.xml | 18 - vendor/sebastian/environment/src/Console.php | 146 - .../environment/src/OperatingSystem.php | 51 - vendor/sebastian/environment/src/Runtime.php | 186 - .../environment/tests/ConsoleTest.php | 67 - .../environment/tests/OperatingSystemTest.php | 39 - .../environment/tests/RuntimeTest.php | 112 - vendor/sebastian/exporter/.gitignore | 4 - vendor/sebastian/exporter/.php_cs | 77 - vendor/sebastian/exporter/.travis.yml | 26 - vendor/sebastian/exporter/LICENSE | 33 - vendor/sebastian/exporter/README.md | 172 - vendor/sebastian/exporter/build.xml | 21 - vendor/sebastian/exporter/composer.json | 48 - vendor/sebastian/exporter/phpunit.xml | 19 - vendor/sebastian/exporter/src/Exporter.php | 312 - .../sebastian/exporter/tests/ExporterTest.php | 361 - vendor/sebastian/global-state/.gitignore | 4 - vendor/sebastian/global-state/.php_cs | 79 - vendor/sebastian/global-state/.travis.yml | 26 - vendor/sebastian/global-state/LICENSE | 33 - vendor/sebastian/global-state/README.md | 16 - vendor/sebastian/global-state/build.xml | 22 - vendor/sebastian/global-state/composer.json | 40 - vendor/sebastian/global-state/phpunit.xml | 24 - .../sebastian/global-state/src/Blacklist.php | 123 - .../global-state/src/CodeExporter.php | 94 - .../sebastian/global-state/src/Restorer.php | 137 - .../sebastian/global-state/src/Snapshot.php | 368 - .../global-state/src/exceptions/Exception.php | 17 - .../src/exceptions/RuntimeException.php | 17 - .../global-state/tests/BlacklistTest.php | 120 - .../global-state/tests/CodeExporterTest.php | 38 - .../global-state/tests/RestorerTest.php | 105 - .../global-state/tests/SnapshotTest.php | 116 - .../tests/_fixture/BlacklistedChildClass.php | 17 - .../tests/_fixture/BlacklistedClass.php | 18 - .../tests/_fixture/BlacklistedImplementor.php | 18 - .../tests/_fixture/BlacklistedInterface.php | 17 - .../tests/_fixture/SnapshotClass.php | 37 - .../tests/_fixture/SnapshotDomDocument.php | 19 - .../tests/_fixture/SnapshotFunctions.php | 17 - .../tests/_fixture/SnapshotTrait.php | 17 - vendor/sebastian/object-enumerator/.gitignore | 8 - vendor/sebastian/object-enumerator/.php_cs | 67 - .../sebastian/object-enumerator/.travis.yml | 26 - .../sebastian/object-enumerator/ChangeLog.md | 53 - vendor/sebastian/object-enumerator/LICENSE | 33 - vendor/sebastian/object-enumerator/README.md | 14 - vendor/sebastian/object-enumerator/build.xml | 22 - .../sebastian/object-enumerator/composer.json | 35 - .../sebastian/object-enumerator/phpunit.xml | 20 - .../object-enumerator/src/Enumerator.php | 85 - .../object-enumerator/src/Exception.php | 15 - .../src/InvalidArgumentException.php | 15 - .../tests/EnumeratorTest.php | 139 - .../tests/_fixture/ExceptionThrower.php | 28 - vendor/sebastian/object-reflector/.gitignore | 4 - vendor/sebastian/object-reflector/.php_cs | 79 - vendor/sebastian/object-reflector/.travis.yml | 26 - .../sebastian/object-reflector/ChangeLog.md | 20 - vendor/sebastian/object-reflector/LICENSE | 33 - vendor/sebastian/object-reflector/README.md | 14 - vendor/sebastian/object-reflector/build.xml | 22 - .../sebastian/object-reflector/composer.json | 33 - vendor/sebastian/object-reflector/phpunit.xml | 19 - .../object-reflector/src/Exception.php | 17 - .../src/InvalidArgumentException.php | 17 - .../object-reflector/src/ObjectReflector.php | 51 - .../tests/ObjectReflectorTest.php | 70 - .../tests/_fixture/ChildClass.php | 25 - .../ClassWithIntegerAttributeName.php | 22 - .../tests/_fixture/ParentClass.php | 20 - vendor/sebastian/recursion-context/.gitignore | 3 - .../sebastian/recursion-context/.travis.yml | 23 - vendor/sebastian/recursion-context/LICENSE | 33 - vendor/sebastian/recursion-context/README.md | 14 - vendor/sebastian/recursion-context/build.xml | 21 - .../sebastian/recursion-context/composer.json | 36 - .../sebastian/recursion-context/phpunit.xml | 19 - .../recursion-context/src/Context.php | 167 - .../recursion-context/src/Exception.php | 17 - .../src/InvalidArgumentException.php | 17 - .../recursion-context/tests/ContextTest.php | 142 - .../sebastian/resource-operations/.gitignore | 3 - vendor/sebastian/resource-operations/LICENSE | 33 - .../sebastian/resource-operations/README.md | 16 - .../sebastian/resource-operations/build.xml | 24 - .../resource-operations/build/generate.php | 62 - .../resource-operations/composer.json | 26 - .../src/ResourceOperations.php | 670 - vendor/sebastian/version/.gitattributes | 1 - vendor/sebastian/version/.gitignore | 1 - vendor/sebastian/version/.php_cs | 66 - vendor/sebastian/version/LICENSE | 33 - vendor/sebastian/version/README.md | 43 - vendor/sebastian/version/composer.json | 29 - vendor/sebastian/version/src/Version.php | 109 - vendor/swiftmailer/swiftmailer/.gitattributes | 9 - .../swiftmailer/.github/ISSUE_TEMPLATE.md | 19 - .../.github/PULL_REQUEST_TEMPLATE.md | 14 - vendor/swiftmailer/swiftmailer/.gitignore | 8 - vendor/swiftmailer/swiftmailer/.php_cs.dist | 15 - vendor/swiftmailer/swiftmailer/.travis.yml | 24 - vendor/swiftmailer/swiftmailer/CHANGES | 299 - vendor/swiftmailer/swiftmailer/LICENSE | 19 - vendor/swiftmailer/swiftmailer/README | 15 - vendor/swiftmailer/swiftmailer/composer.json | 36 - .../swiftmailer/swiftmailer/doc/headers.rst | 609 - vendor/swiftmailer/swiftmailer/doc/index.rst | 12 - .../swiftmailer/doc/introduction.rst | 61 - .../swiftmailer/swiftmailer/doc/japanese.rst | 19 - .../swiftmailer/swiftmailer/doc/messages.rst | 908 - .../swiftmailer/swiftmailer/doc/plugins.rst | 337 - .../swiftmailer/swiftmailer/doc/sending.rst | 446 - .../swiftmailer/lib/classes/Swift.php | 79 - .../lib/classes/Swift/Attachment.php | 57 - .../AbstractFilterableInputStream.php | 181 - .../Swift/ByteStream/ArrayByteStream.php | 182 - .../Swift/ByteStream/FileByteStream.php | 216 - .../ByteStream/TemporaryFileByteStream.php | 42 - .../lib/classes/Swift/CharacterReader.php | 67 - .../GenericFixedWidthReader.php | 97 - .../Swift/CharacterReader/UsAsciiReader.php | 84 - .../Swift/CharacterReader/Utf8Reader.php | 176 - .../classes/Swift/CharacterReaderFactory.php | 26 - .../SimpleCharacterReaderFactory.php | 124 - .../lib/classes/Swift/CharacterStream.php | 89 - .../CharacterStream/ArrayCharacterStream.php | 293 - .../CharacterStream/NgCharacterStream.php | 267 - .../lib/classes/Swift/ConfigurableSpool.php | 63 - .../lib/classes/Swift/DependencyContainer.php | 373 - .../lib/classes/Swift/DependencyException.php | 27 - .../lib/classes/Swift/EmbeddedFile.php | 53 - .../swiftmailer/lib/classes/Swift/Encoder.php | 28 - .../classes/Swift/Encoder/Base64Encoder.php | 58 - .../lib/classes/Swift/Encoder/QpEncoder.php | 300 - .../classes/Swift/Encoder/Rfc2231Encoder.php | 92 - .../lib/classes/Swift/Events/CommandEvent.php | 65 - .../classes/Swift/Events/CommandListener.php | 24 - .../lib/classes/Swift/Events/Event.php | 38 - .../classes/Swift/Events/EventDispatcher.php | 83 - .../classes/Swift/Events/EventListener.php | 18 - .../lib/classes/Swift/Events/EventObject.php | 63 - .../classes/Swift/Events/ResponseEvent.php | 65 - .../classes/Swift/Events/ResponseListener.php | 24 - .../lib/classes/Swift/Events/SendEvent.php | 129 - .../lib/classes/Swift/Events/SendListener.php | 31 - .../Swift/Events/SimpleEventDispatcher.php | 156 - .../Swift/Events/TransportChangeEvent.php | 27 - .../Swift/Events/TransportChangeListener.php | 45 - .../Swift/Events/TransportExceptionEvent.php | 46 - .../Events/TransportExceptionListener.php | 24 - .../lib/classes/Swift/FailoverTransport.php | 33 - .../lib/classes/Swift/FileSpool.php | 208 - .../lib/classes/Swift/FileStream.php | 24 - .../lib/classes/Swift/Filterable.php | 32 - .../lib/classes/Swift/IdGenerator.php | 22 - .../swiftmailer/lib/classes/Swift/Image.php | 43 - .../lib/classes/Swift/InputByteStream.php | 75 - .../lib/classes/Swift/IoException.php | 29 - .../lib/classes/Swift/KeyCache.php | 105 - .../classes/Swift/KeyCache/ArrayKeyCache.php | 206 - .../classes/Swift/KeyCache/DiskKeyCache.php | 298 - .../Swift/KeyCache/KeyCacheInputStream.php | 51 - .../classes/Swift/KeyCache/NullKeyCache.php | 115 - .../KeyCache/SimpleKeyCacheInputStream.php | 127 - .../classes/Swift/LoadBalancedTransport.php | 33 - .../swiftmailer/lib/classes/Swift/Mailer.php | 102 - .../Swift/Mailer/ArrayRecipientIterator.php | 55 - .../Swift/Mailer/RecipientIterator.php | 32 - .../lib/classes/Swift/MemorySpool.php | 110 - .../swiftmailer/lib/classes/Swift/Message.php | 274 - .../lib/classes/Swift/Mime/Attachment.php | 149 - .../classes/Swift/Mime/CharsetObserver.php | 24 - .../lib/classes/Swift/Mime/ContentEncoder.php | 34 - .../ContentEncoder/Base64ContentEncoder.php | 104 - .../ContentEncoder/NativeQpContentEncoder.php | 123 - .../ContentEncoder/PlainContentEncoder.php | 162 - .../Mime/ContentEncoder/QpContentEncoder.php | 134 - .../ContentEncoder/QpContentEncoderProxy.php | 98 - .../Mime/ContentEncoder/RawContentEncoder.php | 64 - .../lib/classes/Swift/Mime/EmbeddedFile.php | 45 - .../classes/Swift/Mime/EncodingObserver.php | 24 - .../lib/classes/Swift/Mime/Header.php | 93 - .../lib/classes/Swift/Mime/HeaderEncoder.php | 24 - .../HeaderEncoder/Base64HeaderEncoder.php | 55 - .../Mime/HeaderEncoder/QpHeaderEncoder.php | 65 - .../Swift/Mime/Headers/AbstractHeader.php | 481 - .../classes/Swift/Mime/Headers/DateHeader.php | 115 - .../Mime/Headers/IdentificationHeader.php | 184 - .../Swift/Mime/Headers/MailboxHeader.php | 359 - .../Swift/Mime/Headers/OpenDKIMHeader.php | 133 - .../Mime/Headers/ParameterizedHeader.php | 257 - .../classes/Swift/Mime/Headers/PathHeader.php | 152 - .../Swift/Mime/Headers/UnstructuredHeader.php | 110 - .../lib/classes/Swift/Mime/IdGenerator.php | 53 - .../lib/classes/Swift/Mime/MimePart.php | 212 - .../Swift/Mime/SimpleHeaderFactory.php | 197 - .../classes/Swift/Mime/SimpleHeaderSet.php | 409 - .../lib/classes/Swift/Mime/SimpleMessage.php | 655 - .../classes/Swift/Mime/SimpleMimeEntity.php | 823 - .../lib/classes/Swift/MimePart.php | 45 - .../lib/classes/Swift/NullTransport.php | 26 - .../lib/classes/Swift/OutputByteStream.php | 46 - .../classes/Swift/Plugins/AntiFloodPlugin.php | 141 - .../Swift/Plugins/BandwidthMonitorPlugin.php | 164 - .../Swift/Plugins/Decorator/Replacements.php | 31 - .../classes/Swift/Plugins/DecoratorPlugin.php | 204 - .../Swift/Plugins/ImpersonatePlugin.php | 69 - .../lib/classes/Swift/Plugins/Logger.php | 36 - .../classes/Swift/Plugins/LoggerPlugin.php | 142 - .../Swift/Plugins/Loggers/ArrayLogger.php | 72 - .../Swift/Plugins/Loggers/EchoLogger.php | 58 - .../classes/Swift/Plugins/MessageLogger.php | 74 - .../Swift/Plugins/Pop/Pop3Connection.php | 31 - .../Swift/Plugins/Pop/Pop3Exception.php | 27 - .../Swift/Plugins/PopBeforeSmtpPlugin.php | 259 - .../Swift/Plugins/RedirectingPlugin.php | 213 - .../lib/classes/Swift/Plugins/Reporter.php | 32 - .../classes/Swift/Plugins/ReporterPlugin.php | 61 - .../Swift/Plugins/Reporters/HitReporter.php | 59 - .../Swift/Plugins/Reporters/HtmlReporter.php | 39 - .../lib/classes/Swift/Plugins/Sleeper.php | 24 - .../classes/Swift/Plugins/ThrottlerPlugin.php | 200 - .../lib/classes/Swift/Plugins/Timer.php | 24 - .../lib/classes/Swift/Preferences.php | 100 - .../Swift/ReplacementFilterFactory.php | 27 - .../classes/Swift/RfcComplianceException.php | 27 - .../lib/classes/Swift/SendmailTransport.php | 33 - .../swiftmailer/lib/classes/Swift/Signer.php | 20 - .../lib/classes/Swift/Signers/BodySigner.php | 33 - .../lib/classes/Swift/Signers/DKIMSigner.php | 686 - .../classes/Swift/Signers/DomainKeySigner.php | 512 - .../classes/Swift/Signers/HeaderSigner.php | 65 - .../classes/Swift/Signers/OpenDKIMSigner.php | 185 - .../lib/classes/Swift/Signers/SMimeSigner.php | 417 - .../lib/classes/Swift/SmtpTransport.php | 44 - .../swiftmailer/lib/classes/Swift/Spool.php | 53 - .../lib/classes/Swift/SpoolTransport.php | 35 - .../lib/classes/Swift/StreamFilter.php | 35 - .../ByteArrayReplacementFilter.php | 170 - .../StreamFilters/StringReplacementFilter.php | 70 - .../StringReplacementFilterFactory.php | 45 - .../lib/classes/Swift/SwiftException.php | 29 - .../lib/classes/Swift/Transport.php | 77 - .../Swift/Transport/AbstractSmtpTransport.php | 507 - .../Esmtp/Auth/CramMd5Authenticator.php | 81 - .../Esmtp/Auth/LoginAuthenticator.php | 51 - .../Esmtp/Auth/NTLMAuthenticator.php | 692 - .../Esmtp/Auth/PlainAuthenticator.php | 50 - .../Esmtp/Auth/XOAuth2Authenticator.php | 70 - .../Swift/Transport/Esmtp/AuthHandler.php | 263 - .../Swift/Transport/Esmtp/Authenticator.php | 35 - .../classes/Swift/Transport/EsmtpHandler.php | 86 - .../Swift/Transport/EsmtpTransport.php | 407 - .../Swift/Transport/FailoverTransport.php | 106 - .../lib/classes/Swift/Transport/IoBuffer.php | 67 - .../Swift/Transport/LoadBalancedTransport.php | 197 - .../classes/Swift/Transport/NullTransport.php | 101 - .../Swift/Transport/SendmailTransport.php | 161 - .../lib/classes/Swift/Transport/SmtpAgent.php | 36 - .../Swift/Transport/SpoolTransport.php | 125 - .../classes/Swift/Transport/StreamBuffer.php | 326 - .../lib/classes/Swift/TransportException.php | 29 - .../lib/dependency_maps/cache_deps.php | 23 - .../lib/dependency_maps/message_deps.php | 9 - .../lib/dependency_maps/mime_deps.php | 130 - .../lib/dependency_maps/transport_deps.php | 77 - .../swiftmailer/lib/mime_types.php | 1007 - .../swiftmailer/lib/preferences.php | 19 - .../swiftmailer/lib/swift_required.php | 22 - .../lib/swiftmailer_generate_mimes_config.php | 193 - .../swiftmailer/swiftmailer/phpunit.xml.dist | 38 - .../tests/IdenticalBinaryConstraint.php | 62 - .../swiftmailer/tests/StreamCollector.php | 11 - .../tests/SwiftMailerSmokeTestCase.php | 46 - .../swiftmailer/tests/SwiftMailerTestCase.php | 38 - .../_samples/charsets/iso-2022-jp/one.txt | 11 - .../_samples/charsets/iso-8859-1/one.txt | 19 - .../tests/_samples/charsets/utf-8/one.txt | 22 - .../tests/_samples/charsets/utf-8/three.txt | 45 - .../tests/_samples/charsets/utf-8/two.txt | 3 - .../tests/_samples/dkim/dkim.test.priv | 15 - .../tests/_samples/dkim/dkim.test.pub | 6 - .../swiftmailer/tests/_samples/files/data.txt | 1 - .../tests/_samples/files/swiftmailer.png | Bin 3194 -> 0 bytes .../tests/_samples/files/textfile.zip | Bin 202 -> 0 bytes .../swiftmailer/tests/_samples/smime/CA.srl | 1 - .../swiftmailer/tests/_samples/smime/ca.crt | 21 - .../swiftmailer/tests/_samples/smime/ca.key | 27 - .../tests/_samples/smime/create-cert.sh | 40 - .../tests/_samples/smime/encrypt.crt | 19 - .../tests/_samples/smime/encrypt.key | 27 - .../tests/_samples/smime/encrypt2.crt | 19 - .../tests/_samples/smime/encrypt2.key | 27 - .../tests/_samples/smime/intermediate.crt | 19 - .../tests/_samples/smime/intermediate.key | 27 - .../swiftmailer/tests/_samples/smime/sign.crt | 19 - .../swiftmailer/tests/_samples/smime/sign.key | 27 - .../tests/_samples/smime/sign2.crt | 19 - .../tests/_samples/smime/sign2.key | 27 - .../tests/acceptance.conf.php.default | 37 - .../Swift/AttachmentAcceptanceTest.php | 12 - .../FileByteStreamAcceptanceTest.php | 162 - ...leCharacterReaderFactoryAcceptanceTest.php | 179 - .../DependencyContainerAcceptanceTest.php | 22 - .../Swift/EmbeddedFileAcceptanceTest.php | 12 - .../Encoder/Base64EncoderAcceptanceTest.php | 45 - .../Swift/Encoder/QpEncoderAcceptanceTest.php | 54 - .../Encoder/Rfc2231EncoderAcceptanceTest.php | 50 - .../KeyCache/ArrayKeyCacheAcceptanceTest.php | 173 - .../KeyCache/DiskKeyCacheAcceptanceTest.php | 173 - .../Swift/MessageAcceptanceTest.php | 55 - .../Swift/Mime/AttachmentAcceptanceTest.php | 126 - .../Base64ContentEncoderAcceptanceTest.php | 56 - .../NativeQpContentEncoderAcceptanceTest.php | 88 - .../PlainContentEncoderAcceptanceTest.php | 88 - .../QpContentEncoderAcceptanceTest.php | 160 - .../Swift/Mime/EmbeddedFileAcceptanceTest.php | 139 - .../Base64HeaderEncoderAcceptanceTest.php | 32 - .../Swift/Mime/MimePartAcceptanceTest.php | 130 - .../Mime/SimpleMessageAcceptanceTest.php | 1250 -- .../Swift/MimePartAcceptanceTest.php | 15 - .../AbstractStreamBufferAcceptanceTest.php | 131 - .../BasicSocketAcceptanceTest.php | 33 - .../StreamBuffer/ProcessAcceptanceTest.php | 26 - .../StreamBuffer/SocketTimeoutTest.php | 65 - .../StreamBuffer/SslSocketAcceptanceTest.php | 40 - .../StreamBuffer/TlsSocketAcceptanceTest.php | 39 - .../swiftmailer/tests/bootstrap.php | 21 - .../tests/bug/Swift/Bug111Test.php | 42 - .../tests/bug/Swift/Bug118Test.php | 20 - .../tests/bug/Swift/Bug206Test.php | 40 - .../tests/bug/Swift/Bug274Test.php | 25 - .../swiftmailer/tests/bug/Swift/Bug34Test.php | 75 - .../swiftmailer/tests/bug/Swift/Bug35Test.php | 73 - .../swiftmailer/tests/bug/Swift/Bug38Test.php | 192 - .../tests/bug/Swift/Bug518Test.php | 38 - .../swiftmailer/tests/bug/Swift/Bug51Test.php | 110 - .../tests/bug/Swift/Bug534Test.php | 38 - .../tests/bug/Swift/Bug650Test.php | 38 - .../swiftmailer/tests/bug/Swift/Bug71Test.php | 20 - .../swiftmailer/tests/bug/Swift/Bug76Test.php | 71 - ...FileByteStreamConsecutiveReadCallsTest.php | 18 - .../tests/fixtures/MimeEntityFixture.php | 67 - .../swiftmailer/tests/smoke.conf.php.default | 63 - .../smoke/Swift/Smoke/AttachmentSmokeTest.php | 33 - .../smoke/Swift/Smoke/BasicSmokeTest.php | 23 - .../Smoke/HtmlWithAttachmentSmokeTest.php | 31 - .../Swift/Smoke/InternationalSmokeTest.php | 40 - .../Swift/ByteStream/ArrayByteStreamTest.php | 202 - .../GenericFixedWidthReaderTest.php | 43 - .../CharacterReader/UsAsciiReaderTest.php | 52 - .../Swift/CharacterReader/Utf8ReaderTest.php | 65 - .../ArrayCharacterStreamTest.php | 358 - .../unit/Swift/DependencyContainerTest.php | 176 - .../unit/Swift/Encoder/Base64EncoderTest.php | 173 - .../unit/Swift/Encoder/QpEncoderTest.php | 400 - .../unit/Swift/Encoder/Rfc2231EncoderTest.php | 141 - .../unit/Swift/Events/CommandEventTest.php | 34 - .../unit/Swift/Events/EventObjectTest.php | 32 - .../unit/Swift/Events/ResponseEventTest.php | 38 - .../tests/unit/Swift/Events/SendEventTest.php | 96 - .../Events/SimpleEventDispatcherTest.php | 142 - .../Swift/Events/TransportChangeEventTest.php | 30 - .../Events/TransportExceptionEventTest.php | 41 - .../unit/Swift/KeyCache/ArrayKeyCacheTest.php | 240 - .../SimpleKeyCacheInputStreamTest.php | 73 - .../Mailer/ArrayRecipientIteratorTest.php | 42 - .../tests/unit/Swift/MailerTest.php | 145 - .../tests/unit/Swift/MessageTest.php | 133 - .../Swift/Mime/AbstractMimeEntityTest.php | 1092 -- .../tests/unit/Swift/Mime/AttachmentTest.php | 321 - .../Base64ContentEncoderTest.php | 323 - .../PlainContentEncoderTest.php | 171 - .../ContentEncoder/QpContentEncoderTest.php | 516 - .../unit/Swift/Mime/EmbeddedFileTest.php | 59 - .../HeaderEncoder/Base64HeaderEncoderTest.php | 13 - .../HeaderEncoder/QpHeaderEncoderTest.php | 221 - .../Swift/Mime/Headers/DateHeaderTest.php | 90 - .../Mime/Headers/IdentificationHeaderTest.php | 184 - .../Swift/Mime/Headers/MailboxHeaderTest.php | 329 - .../Mime/Headers/ParameterizedHeaderTest.php | 396 - .../Swift/Mime/Headers/PathHeaderTest.php | 78 - .../Mime/Headers/UnstructuredHeaderTest.php | 353 - .../tests/unit/Swift/Mime/IdGeneratorTest.php | 32 - .../tests/unit/Swift/Mime/MimePartTest.php | 234 - .../Swift/Mime/SimpleHeaderFactoryTest.php | 169 - .../unit/Swift/Mime/SimpleHeaderSetTest.php | 734 - .../unit/Swift/Mime/SimpleMessageTest.php | 837 - .../unit/Swift/Mime/SimpleMimeEntityTest.php | 12 - .../Swift/Plugins/AntiFloodPluginTest.php | 93 - .../Plugins/BandwidthMonitorPluginTest.php | 128 - .../Swift/Plugins/DecoratorPluginTest.php | 284 - .../unit/Swift/Plugins/LoggerPluginTest.php | 188 - .../Swift/Plugins/Loggers/ArrayLoggerTest.php | 65 - .../Swift/Plugins/Loggers/EchoLoggerTest.php | 24 - .../Swift/Plugins/PopBeforeSmtpPluginTest.php | 101 - .../Swift/Plugins/RedirectingPluginTest.php | 183 - .../unit/Swift/Plugins/ReporterPluginTest.php | 86 - .../Plugins/Reporters/HitReporterTest.php | 64 - .../Plugins/Reporters/HtmlReporterTest.php | 54 - .../Swift/Plugins/ThrottlerPluginTest.php | 102 - .../unit/Swift/Signers/DKIMSignerTest.php | 220 - .../unit/Swift/Signers/OpenDKIMSignerTest.php | 45 - .../unit/Swift/Signers/SMimeSignerTest.php | 551 - .../ByteArrayReplacementFilterTest.php | 129 - .../StringReplacementFilterFactoryTest.php | 36 - .../StringReplacementFilterTest.php | 59 - .../AbstractSmtpEventSupportTest.php | 558 - .../unit/Swift/Transport/AbstractSmtpTest.php | 1316 -- .../Esmtp/Auth/CramMd5AuthenticatorTest.php | 64 - .../Esmtp/Auth/LoginAuthenticatorTest.php | 64 - .../Esmtp/Auth/NTLMAuthenticatorTest.php | 201 - .../Esmtp/Auth/PlainAuthenticatorTest.php | 67 - .../Swift/Transport/Esmtp/AuthHandlerTest.php | 165 - .../EsmtpTransport/ExtensionSupportTest.php | 561 - .../Swift/Transport/EsmtpTransportTest.php | 298 - .../Swift/Transport/FailoverTransportTest.php | 600 - .../Transport/LoadBalancedTransportTest.php | 838 - .../Swift/Transport/SendmailTransportTest.php | 150 - .../unit/Swift/Transport/StreamBufferTest.php | 43 - vendor/symfony/console/.gitignore | 3 - vendor/symfony/console/Application.php | 1223 -- vendor/symfony/console/CHANGELOG.md | 112 - vendor/symfony/console/Command/Command.php | 657 - .../symfony/console/Command/HelpCommand.php | 81 - .../symfony/console/Command/ListCommand.php | 90 - .../symfony/console/Command/LockableTrait.php | 72 - .../CommandLoader/CommandLoaderInterface.php | 37 - .../CommandLoader/ContainerCommandLoader.php | 55 - .../CommandLoader/FactoryCommandLoader.php | 62 - vendor/symfony/console/ConsoleEvents.php | 60 - .../AddConsoleCommandPass.php | 106 - .../Descriptor/ApplicationDescription.php | 152 - .../symfony/console/Descriptor/Descriptor.php | 107 - .../Descriptor/DescriptorInterface.php | 31 - .../console/Descriptor/JsonDescriptor.php | 168 - .../console/Descriptor/MarkdownDescriptor.php | 182 - .../console/Descriptor/TextDescriptor.php | 342 - .../console/Descriptor/XmlDescriptor.php | 251 - .../console/Event/ConsoleCommandEvent.php | 60 - .../console/Event/ConsoleErrorEvent.php | 83 - vendor/symfony/console/Event/ConsoleEvent.php | 67 - .../console/Event/ConsoleExceptionEvent.php | 71 - .../console/Event/ConsoleTerminateEvent.php | 58 - .../console/EventListener/ErrorListener.php | 91 - .../Exception/CommandNotFoundException.php | 43 - .../console/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 19 - .../Exception/InvalidOptionException.php | 21 - .../console/Exception/LogicException.php | 19 - .../console/Exception/RuntimeException.php | 19 - .../console/Formatter/OutputFormatter.php | 242 - .../Formatter/OutputFormatterInterface.php | 71 - .../Formatter/OutputFormatterStyle.php | 219 - .../OutputFormatterStyleInterface.php | 62 - .../Formatter/OutputFormatterStyleStack.php | 109 - .../console/Helper/DebugFormatterHelper.php | 127 - .../console/Helper/DescriptorHelper.php | 94 - .../console/Helper/FormatterHelper.php | 106 - vendor/symfony/console/Helper/Helper.php | 138 - .../console/Helper/HelperInterface.php | 39 - vendor/symfony/console/Helper/HelperSet.php | 108 - .../console/Helper/InputAwareHelper.php | 33 - .../symfony/console/Helper/ProcessHelper.php | 141 - vendor/symfony/console/Helper/ProgressBar.php | 617 - .../console/Helper/ProgressIndicator.php | 271 - .../symfony/console/Helper/QuestionHelper.php | 467 - .../console/Helper/SymfonyQuestionHelper.php | 124 - vendor/symfony/console/Helper/Table.php | 702 - vendor/symfony/console/Helper/TableCell.php | 76 - .../symfony/console/Helper/TableSeparator.php | 25 - vendor/symfony/console/Helper/TableStyle.php | 258 - vendor/symfony/console/Input/ArgvInput.php | 343 - vendor/symfony/console/Input/ArrayInput.php | 206 - vendor/symfony/console/Input/Input.php | 203 - .../symfony/console/Input/InputArgument.php | 129 - .../console/Input/InputAwareInterface.php | 28 - .../symfony/console/Input/InputDefinition.php | 402 - .../symfony/console/Input/InputInterface.php | 157 - vendor/symfony/console/Input/InputOption.php | 208 - .../Input/StreamableInputInterface.php | 37 - vendor/symfony/console/Input/StringInput.php | 72 - vendor/symfony/console/LICENSE | 19 - .../symfony/console/Logger/ConsoleLogger.php | 129 - .../symfony/console/Output/BufferedOutput.php | 45 - .../symfony/console/Output/ConsoleOutput.php | 152 - .../console/Output/ConsoleOutputInterface.php | 30 - vendor/symfony/console/Output/NullOutput.php | 123 - vendor/symfony/console/Output/Output.php | 175 - .../console/Output/OutputInterface.php | 114 - .../symfony/console/Output/StreamOutput.php | 103 - .../console/Question/ChoiceQuestion.php | 189 - .../console/Question/ConfirmationQuestion.php | 59 - vendor/symfony/console/Question/Question.php | 246 - vendor/symfony/console/README.md | 20 - .../console/Resources/bin/hiddeninput.exe | Bin 9216 -> 0 bytes vendor/symfony/console/Style/OutputStyle.php | 155 - .../symfony/console/Style/StyleInterface.php | 154 - vendor/symfony/console/Style/SymfonyStyle.php | 429 - vendor/symfony/console/Terminal.php | 137 - .../console/Tester/ApplicationTester.php | 176 - .../symfony/console/Tester/CommandTester.php | 156 - .../symfony/console/Tests/ApplicationTest.php | 1678 -- .../console/Tests/Command/CommandTest.php | 434 - .../console/Tests/Command/HelpCommandTest.php | 71 - .../console/Tests/Command/ListCommandTest.php | 113 - .../Tests/Command/LockableTraitTest.php | 67 - .../ContainerCommandLoaderTest.php | 61 - .../FactoryCommandLoaderTest.php | 60 - .../AddConsoleCommandPassTest.php | 187 - .../Descriptor/AbstractDescriptorTest.php | 107 - .../Tests/Descriptor/JsonDescriptorTest.php | 35 - .../Descriptor/MarkdownDescriptorTest.php | 45 - .../Tests/Descriptor/ObjectsProvider.php | 82 - .../Tests/Descriptor/TextDescriptorTest.php | 53 - .../Tests/Descriptor/XmlDescriptorTest.php | 27 - .../Tests/EventListener/ErrorListenerTest.php | 156 - .../console/Tests/Fixtures/BarBucCommand.php | 11 - .../Tests/Fixtures/DescriptorApplication1.php | 18 - .../Tests/Fixtures/DescriptorApplication2.php | 26 - .../DescriptorApplicationMbString.php | 24 - .../Tests/Fixtures/DescriptorCommand1.php | 27 - .../Tests/Fixtures/DescriptorCommand2.php | 32 - .../Tests/Fixtures/DescriptorCommand3.php | 27 - .../Tests/Fixtures/DescriptorCommand4.php | 25 - .../Fixtures/DescriptorCommandMbString.php | 32 - .../console/Tests/Fixtures/DummyOutput.php | 36 - .../console/Tests/Fixtures/Foo1Command.php | 26 - .../console/Tests/Fixtures/Foo2Command.php | 21 - .../console/Tests/Fixtures/Foo3Command.php | 29 - .../console/Tests/Fixtures/Foo4Command.php | 11 - .../console/Tests/Fixtures/Foo5Command.php | 10 - .../console/Tests/Fixtures/Foo6Command.php | 12 - .../console/Tests/Fixtures/FooCommand.php | 33 - .../Tests/Fixtures/FooLock2Command.php | 28 - .../console/Tests/Fixtures/FooLockCommand.php | 27 - .../console/Tests/Fixtures/FooOptCommand.php | 36 - .../Fixtures/FooSameCaseLowercaseCommand.php | 11 - .../Fixtures/FooSameCaseUppercaseCommand.php | 11 - .../Fixtures/FooSubnamespaced1Command.php | 26 - .../Fixtures/FooSubnamespaced2Command.php | 26 - .../console/Tests/Fixtures/FoobarCommand.php | 25 - .../Style/SymfonyStyle/command/command_0.php | 11 - .../Style/SymfonyStyle/command/command_1.php | 13 - .../Style/SymfonyStyle/command/command_10.php | 17 - .../Style/SymfonyStyle/command/command_11.php | 12 - .../Style/SymfonyStyle/command/command_12.php | 13 - .../Style/SymfonyStyle/command/command_13.php | 14 - .../Style/SymfonyStyle/command/command_14.php | 17 - .../Style/SymfonyStyle/command/command_15.php | 14 - .../Style/SymfonyStyle/command/command_16.php | 15 - .../Style/SymfonyStyle/command/command_17.php | 13 - .../Style/SymfonyStyle/command/command_2.php | 16 - .../Style/SymfonyStyle/command/command_3.php | 12 - .../Style/SymfonyStyle/command/command_4.php | 34 - .../Style/SymfonyStyle/command/command_5.php | 37 - .../Style/SymfonyStyle/command/command_6.php | 16 - .../Style/SymfonyStyle/command/command_7.php | 15 - .../Style/SymfonyStyle/command/command_8.php | 26 - .../Style/SymfonyStyle/command/command_9.php | 11 - .../command/interactive_command_1.php | 19 - .../output/interactive_output_1.txt | 7 - .../Style/SymfonyStyle/output/output_0.txt | 3 - .../Style/SymfonyStyle/output/output_1.txt | 9 - .../Style/SymfonyStyle/output/output_10.txt | 7 - .../Style/SymfonyStyle/output/output_11.txt | 4 - .../Style/SymfonyStyle/output/output_12.txt | 6 - .../Style/SymfonyStyle/output/output_13.txt | 7 - .../Style/SymfonyStyle/output/output_14.txt | 6 - .../Style/SymfonyStyle/output/output_15.txt | 7 - .../Style/SymfonyStyle/output/output_16.txt | 8 - .../Style/SymfonyStyle/output/output_17.txt | 7 - .../Style/SymfonyStyle/output/output_2.txt | 13 - .../Style/SymfonyStyle/output/output_3.txt | 7 - .../Style/SymfonyStyle/output/output_4.txt | 32 - .../Style/SymfonyStyle/output/output_5.txt | 18 - .../Style/SymfonyStyle/output/output_6.txt | 6 - .../Style/SymfonyStyle/output/output_7.txt | 5 - .../Style/SymfonyStyle/output/output_8.txt | 9 - .../Style/SymfonyStyle/output/output_9.txt | 5 - .../console/Tests/Fixtures/TestCommand.php | 28 - .../console/Tests/Fixtures/TestTiti.php | 21 - .../console/Tests/Fixtures/TestToto.php | 22 - .../console/Tests/Fixtures/application_1.json | 156 - .../console/Tests/Fixtures/application_1.md | 172 - .../console/Tests/Fixtures/application_1.txt | 17 - .../console/Tests/Fixtures/application_1.xml | 104 - .../console/Tests/Fixtures/application_2.json | 509 - .../console/Tests/Fixtures/application_2.md | 431 - .../console/Tests/Fixtures/application_2.txt | 21 - .../console/Tests/Fixtures/application_2.xml | 254 - .../application_filtered_namespace.txt | 16 - .../Tests/Fixtures/application_gethelp.txt | 1 - .../Tests/Fixtures/application_mbstring.md | 269 - .../Tests/Fixtures/application_mbstring.txt | 19 - .../Fixtures/application_renderexception1.txt | 5 - .../Fixtures/application_renderexception2.txt | 7 - .../Fixtures/application_renderexception3.txt | 18 - .../application_renderexception3decorated.txt | 18 - .../Fixtures/application_renderexception4.txt | 6 - ...plication_renderexception_doublewidth1.txt | 8 - ..._renderexception_doublewidth1decorated.txt | 8 - ...plication_renderexception_doublewidth2.txt | 9 - ...plication_renderexception_escapeslines.txt | 9 - ...application_renderexception_linebreaks.txt | 11 - .../Tests/Fixtures/application_run1.txt | 17 - .../Tests/Fixtures/application_run2.txt | 26 - .../Tests/Fixtures/application_run3.txt | 26 - .../Tests/Fixtures/application_run4.txt | 1 - .../console/Tests/Fixtures/command_1.json | 15 - .../console/Tests/Fixtures/command_1.md | 12 - .../console/Tests/Fixtures/command_1.txt | 7 - .../console/Tests/Fixtures/command_1.xml | 12 - .../console/Tests/Fixtures/command_2.json | 33 - .../console/Tests/Fixtures/command_2.md | 29 - .../console/Tests/Fixtures/command_2.txt | 13 - .../console/Tests/Fixtures/command_2.xml | 21 - .../Tests/Fixtures/command_mbstring.md | 29 - .../Tests/Fixtures/command_mbstring.txt | 13 - .../Tests/Fixtures/input_argument_1.json | 7 - .../Tests/Fixtures/input_argument_1.md | 5 - .../Tests/Fixtures/input_argument_1.txt | 1 - .../Tests/Fixtures/input_argument_1.xml | 5 - .../Tests/Fixtures/input_argument_2.json | 7 - .../Tests/Fixtures/input_argument_2.md | 7 - .../Tests/Fixtures/input_argument_2.txt | 1 - .../Tests/Fixtures/input_argument_2.xml | 5 - .../Tests/Fixtures/input_argument_3.json | 7 - .../Tests/Fixtures/input_argument_3.md | 7 - .../Tests/Fixtures/input_argument_3.txt | 1 - .../Tests/Fixtures/input_argument_3.xml | 7 - .../Tests/Fixtures/input_argument_4.json | 7 - .../Tests/Fixtures/input_argument_4.md | 8 - .../Tests/Fixtures/input_argument_4.txt | 2 - .../Tests/Fixtures/input_argument_4.xml | 6 - ...input_argument_with_default_inf_value.json | 7 - .../input_argument_with_default_inf_value.md | 7 - .../input_argument_with_default_inf_value.txt | 1 - .../input_argument_with_default_inf_value.xml | 7 - .../Fixtures/input_argument_with_style.json | 7 - .../Fixtures/input_argument_with_style.md | 7 - .../Fixtures/input_argument_with_style.txt | 1 - .../Fixtures/input_argument_with_style.xml | 7 - .../Tests/Fixtures/input_definition_1.json | 4 - .../Tests/Fixtures/input_definition_1.md | 0 .../Tests/Fixtures/input_definition_1.txt | 0 .../Tests/Fixtures/input_definition_1.xml | 5 - .../Tests/Fixtures/input_definition_2.json | 12 - .../Tests/Fixtures/input_definition_2.md | 7 - .../Tests/Fixtures/input_definition_2.txt | 2 - .../Tests/Fixtures/input_definition_2.xml | 10 - .../Tests/Fixtures/input_definition_3.json | 14 - .../Tests/Fixtures/input_definition_3.md | 8 - .../Tests/Fixtures/input_definition_3.txt | 2 - .../Tests/Fixtures/input_definition_3.xml | 9 - .../Tests/Fixtures/input_definition_4.json | 22 - .../Tests/Fixtures/input_definition_4.md | 16 - .../Tests/Fixtures/input_definition_4.txt | 5 - .../Tests/Fixtures/input_definition_4.xml | 14 - .../Tests/Fixtures/input_option_1.json | 9 - .../console/Tests/Fixtures/input_option_1.md | 6 - .../console/Tests/Fixtures/input_option_1.txt | 1 - .../console/Tests/Fixtures/input_option_1.xml | 4 - .../Tests/Fixtures/input_option_2.json | 9 - .../console/Tests/Fixtures/input_option_2.md | 8 - .../console/Tests/Fixtures/input_option_2.txt | 1 - .../console/Tests/Fixtures/input_option_2.xml | 7 - .../Tests/Fixtures/input_option_3.json | 9 - .../console/Tests/Fixtures/input_option_3.md | 8 - .../console/Tests/Fixtures/input_option_3.txt | 1 - .../console/Tests/Fixtures/input_option_3.xml | 5 - .../Tests/Fixtures/input_option_4.json | 9 - .../console/Tests/Fixtures/input_option_4.md | 8 - .../console/Tests/Fixtures/input_option_4.txt | 1 - .../console/Tests/Fixtures/input_option_4.xml | 5 - .../Tests/Fixtures/input_option_5.json | 9 - .../console/Tests/Fixtures/input_option_5.md | 9 - .../console/Tests/Fixtures/input_option_5.txt | 2 - .../console/Tests/Fixtures/input_option_5.xml | 6 - .../Tests/Fixtures/input_option_6.json | 9 - .../console/Tests/Fixtures/input_option_6.md | 8 - .../console/Tests/Fixtures/input_option_6.txt | 1 - .../console/Tests/Fixtures/input_option_6.xml | 5 - .../input_option_with_default_inf_value.json | 9 - .../input_option_with_default_inf_value.md | 8 - .../input_option_with_default_inf_value.txt | 1 - .../input_option_with_default_inf_value.xml | 7 - .../Fixtures/input_option_with_style.json | 9 - .../Tests/Fixtures/input_option_with_style.md | 8 - .../Fixtures/input_option_with_style.txt | 1 - .../Fixtures/input_option_with_style.xml | 7 - .../input_option_with_style_array.json | 12 - .../Fixtures/input_option_with_style_array.md | 8 - .../input_option_with_style_array.txt | 1 - .../input_option_with_style_array.xml | 8 - .../OutputFormatterStyleStackTest.php | 71 - .../Formatter/OutputFormatterStyleTest.php | 100 - .../Tests/Formatter/OutputFormatterTest.php | 344 - .../Helper/AbstractQuestionHelperTest.php | 34 - .../Tests/Helper/FormatterHelperTest.php | 129 - .../console/Tests/Helper/HelperSetTest.php | 127 - .../console/Tests/Helper/HelperTest.php | 55 - .../Tests/Helper/ProcessHelperTest.php | 118 - .../console/Tests/Helper/ProgressBarTest.php | 792 - .../Tests/Helper/ProgressIndicatorTest.php | 183 - .../Tests/Helper/QuestionHelperTest.php | 936 - .../Helper/SymfonyQuestionHelperTest.php | 156 - .../console/Tests/Helper/TableStyleTest.php | 28 - .../console/Tests/Helper/TableTest.php | 838 - .../console/Tests/Input/ArgvInputTest.php | 408 - .../console/Tests/Input/ArrayInputTest.php | 174 - .../console/Tests/Input/InputArgumentTest.php | 117 - .../Tests/Input/InputDefinitionTest.php | 406 - .../console/Tests/Input/InputOptionTest.php | 210 - .../symfony/console/Tests/Input/InputTest.php | 149 - .../console/Tests/Input/StringInputTest.php | 87 - .../Tests/Logger/ConsoleLoggerTest.php | 215 - .../Tests/Output/ConsoleOutputTest.php | 42 - .../console/Tests/Output/NullOutputTest.php | 88 - .../console/Tests/Output/OutputTest.php | 176 - .../console/Tests/Output/StreamOutputTest.php | 61 - .../console/Tests/Style/SymfonyStyleTest.php | 116 - vendor/symfony/console/Tests/TerminalTest.php | 44 - .../Tests/Tester/ApplicationTesterTest.php | 70 - .../Tests/Tester/CommandTesterTest.php | 163 - vendor/symfony/console/composer.json | 53 - vendor/symfony/console/phpunit.xml.dist | 41 - vendor/symfony/css-selector/.gitignore | 3 - vendor/symfony/css-selector/CHANGELOG.md | 13 - .../css-selector/CssSelectorConverter.php | 65 - .../Exception/ExceptionInterface.php | 24 - .../Exception/ExpressionErrorException.php | 24 - .../Exception/InternalErrorException.php | 24 - .../css-selector/Exception/ParseException.php | 24 - .../Exception/SyntaxErrorException.php | 73 - vendor/symfony/css-selector/LICENSE | 19 - .../css-selector/Node/AbstractNode.php | 42 - .../css-selector/Node/AttributeNode.php | 107 - .../symfony/css-selector/Node/ClassNode.php | 70 - .../Node/CombinedSelectorNode.php | 83 - .../symfony/css-selector/Node/ElementNode.php | 72 - .../css-selector/Node/FunctionNode.php | 87 - vendor/symfony/css-selector/Node/HashNode.php | 70 - .../css-selector/Node/NegationNode.php | 66 - .../css-selector/Node/NodeInterface.php | 46 - .../symfony/css-selector/Node/PseudoNode.php | 70 - .../css-selector/Node/SelectorNode.php | 70 - .../symfony/css-selector/Node/Specificity.php | 88 - .../Parser/Handler/CommentHandler.php | 48 - .../Parser/Handler/HandlerInterface.php | 33 - .../Parser/Handler/HashHandler.php | 58 - .../Parser/Handler/IdentifierHandler.php | 58 - .../Parser/Handler/NumberHandler.php | 54 - .../Parser/Handler/StringHandler.php | 77 - .../Parser/Handler/WhitespaceHandler.php | 46 - vendor/symfony/css-selector/Parser/Parser.php | 384 - .../css-selector/Parser/ParserInterface.php | 36 - vendor/symfony/css-selector/Parser/Reader.php | 114 - .../Parser/Shortcut/ClassParser.php | 51 - .../Parser/Shortcut/ElementParser.php | 47 - .../Parser/Shortcut/EmptyStringParser.php | 46 - .../Parser/Shortcut/HashParser.php | 51 - vendor/symfony/css-selector/Parser/Token.php | 149 - .../css-selector/Parser/TokenStream.php | 175 - .../Parser/Tokenizer/Tokenizer.php | 75 - .../Parser/Tokenizer/TokenizerEscaping.php | 78 - .../Parser/Tokenizer/TokenizerPatterns.php | 112 - vendor/symfony/css-selector/README.md | 20 - .../Tests/CssSelectorConverterTest.php | 76 - .../Tests/Node/AbstractNodeTest.php | 34 - .../Tests/Node/AttributeNodeTest.php | 37 - .../css-selector/Tests/Node/ClassNodeTest.php | 33 - .../Tests/Node/CombinedSelectorNodeTest.php | 35 - .../Tests/Node/ElementNodeTest.php | 35 - .../Tests/Node/FunctionNodeTest.php | 47 - .../css-selector/Tests/Node/HashNodeTest.php | 33 - .../Tests/Node/NegationNodeTest.php | 33 - .../Tests/Node/PseudoNodeTest.php | 32 - .../Tests/Node/SelectorNodeTest.php | 34 - .../Tests/Node/SpecificityTest.php | 63 - .../Parser/Handler/AbstractHandlerTest.php | 70 - .../Parser/Handler/CommentHandlerTest.php | 55 - .../Tests/Parser/Handler/HashHandlerTest.php | 49 - .../Parser/Handler/IdentifierHandlerTest.php | 49 - .../Parser/Handler/NumberHandlerTest.php | 50 - .../Parser/Handler/StringHandlerTest.php | 50 - .../Parser/Handler/WhitespaceHandlerTest.php | 44 - .../css-selector/Tests/Parser/ParserTest.php | 249 - .../css-selector/Tests/Parser/ReaderTest.php | 102 - .../Tests/Parser/Shortcut/ClassParserTest.php | 45 - .../Parser/Shortcut/ElementParserTest.php | 44 - .../Parser/Shortcut/EmptyStringParserTest.php | 36 - .../Tests/Parser/Shortcut/HashParserTest.php | 45 - .../Tests/Parser/TokenStreamTest.php | 96 - .../Tests/XPath/Fixtures/ids.html | 48 - .../Tests/XPath/Fixtures/lang.xml | 11 - .../Tests/XPath/Fixtures/shakespear.html | 308 - .../Tests/XPath/TranslatorTest.php | 325 - .../XPath/Extension/AbstractExtension.php | 65 - .../Extension/AttributeMatchingExtension.php | 175 - .../XPath/Extension/CombinationExtension.php | 83 - .../XPath/Extension/ExtensionInterface.php | 69 - .../XPath/Extension/FunctionExtension.php | 196 - .../XPath/Extension/HtmlExtension.php | 216 - .../XPath/Extension/NodeExtension.php | 242 - .../XPath/Extension/PseudoClassExtension.php | 148 - .../symfony/css-selector/XPath/Translator.php | 267 - .../XPath/TranslatorInterface.php | 47 - .../symfony/css-selector/XPath/XPathExpr.php | 131 - vendor/symfony/css-selector/composer.json | 37 - vendor/symfony/css-selector/phpunit.xml.dist | 31 - vendor/symfony/debug/.gitignore | 3 - vendor/symfony/debug/BufferingLogger.php | 37 - vendor/symfony/debug/CHANGELOG.md | 64 - vendor/symfony/debug/Debug.php | 63 - vendor/symfony/debug/DebugClassLoader.php | 409 - vendor/symfony/debug/ErrorHandler.php | 758 - .../Exception/ClassNotFoundException.php | 33 - .../debug/Exception/ContextErrorException.php | 40 - .../debug/Exception/FatalErrorException.php | 82 - .../debug/Exception/FatalThrowableError.php | 44 - .../debug/Exception/FlattenException.php | 263 - .../debug/Exception/OutOfMemoryException.php | 21 - .../debug/Exception/SilencedErrorContext.php | 67 - .../Exception/UndefinedFunctionException.php | 33 - .../Exception/UndefinedMethodException.php | 33 - vendor/symfony/debug/ExceptionHandler.php | 410 - .../ClassNotFoundFatalErrorHandler.php | 206 - .../FatalErrorHandlerInterface.php | 32 - .../UndefinedFunctionFatalErrorHandler.php | 84 - .../UndefinedMethodFatalErrorHandler.php | 66 - vendor/symfony/debug/LICENSE | 19 - vendor/symfony/debug/README.md | 13 - vendor/symfony/debug/Resources/ext/README.md | 134 - vendor/symfony/debug/Resources/ext/config.m4 | 63 - vendor/symfony/debug/Resources/ext/config.w32 | 13 - .../debug/Resources/ext/php_symfony_debug.h | 60 - .../debug/Resources/ext/symfony_debug.c | 283 - .../debug/Resources/ext/tests/001.phpt | 155 - .../debug/Resources/ext/tests/002.phpt | 65 - .../debug/Resources/ext/tests/002_1.phpt | 48 - .../debug/Resources/ext/tests/003.phpt | 87 - .../debug/Tests/DebugClassLoaderTest.php | 425 - .../symfony/debug/Tests/ErrorHandlerTest.php | 548 - .../Tests/Exception/FlattenExceptionTest.php | 302 - .../debug/Tests/ExceptionHandlerTest.php | 133 - .../ClassNotFoundFatalErrorHandlerTest.php | 176 - ...UndefinedFunctionFatalErrorHandlerTest.php | 81 - .../UndefinedMethodFatalErrorHandlerTest.php | 76 - .../debug/Tests/Fixtures/AnnotatedClass.php | 13 - .../debug/Tests/Fixtures/ClassAlias.php | 3 - .../debug/Tests/Fixtures/DeprecatedClass.php | 12 - .../Tests/Fixtures/DeprecatedInterface.php | 12 - .../Tests/Fixtures/ExtendedFinalMethod.php | 17 - .../debug/Tests/Fixtures/FinalClass.php | 10 - .../debug/Tests/Fixtures/FinalMethod.php | 17 - .../debug/Tests/Fixtures/InternalClass.php | 15 - .../Tests/Fixtures/InternalInterface.php | 10 - .../debug/Tests/Fixtures/InternalTrait.php | 10 - .../debug/Tests/Fixtures/InternalTrait2.php | 23 - .../Tests/Fixtures/NonDeprecatedInterface.php | 7 - .../debug/Tests/Fixtures/PEARClass.php | 5 - .../symfony/debug/Tests/Fixtures/Throwing.php | 3 - .../debug/Tests/Fixtures/ToStringThrower.php | 24 - .../debug/Tests/Fixtures/casemismatch.php | 7 - .../debug/Tests/Fixtures/notPsr0Bis.php | 7 - .../Tests/Fixtures/psr4/Psr4CaseMismatch.php | 7 - .../debug/Tests/Fixtures/reallyNotPsr0.php | 7 - .../debug/Tests/Fixtures2/RequiredTwice.php | 7 - vendor/symfony/debug/Tests/HeaderMock.php | 38 - .../debug/Tests/MockExceptionHandler.php | 24 - .../debug/Tests/phpt/debug_class_loader.phpt | 26 - .../Tests/phpt/decorate_exception_hander.phpt | 47 - .../debug/Tests/phpt/exception_rethrown.phpt | 35 - .../phpt/fatal_with_nested_handlers.phpt | 42 - vendor/symfony/debug/composer.json | 40 - vendor/symfony/debug/phpunit.xml.dist | 33 - vendor/symfony/event-dispatcher/.gitignore | 3 - vendor/symfony/event-dispatcher/CHANGELOG.md | 42 - .../ContainerAwareEventDispatcher.php | 197 - .../Debug/TraceableEventDispatcher.php | 322 - .../TraceableEventDispatcherInterface.php | 36 - .../Debug/WrappedListener.php | 114 - .../RegisterListenersPass.php | 139 - vendor/symfony/event-dispatcher/Event.php | 58 - .../event-dispatcher/EventDispatcher.php | 236 - .../EventDispatcherInterface.php | 93 - .../EventSubscriberInterface.php | 46 - .../symfony/event-dispatcher/GenericEvent.php | 175 - .../ImmutableEventDispatcher.php | 91 - vendor/symfony/event-dispatcher/LICENSE | 19 - vendor/symfony/event-dispatcher/README.md | 15 - .../Tests/AbstractEventDispatcherTest.php | 442 - .../ContainerAwareEventDispatcherTest.php | 210 - .../Debug/TraceableEventDispatcherTest.php | 257 - .../RegisterListenersPassTest.php | 179 - .../Tests/EventDispatcherTest.php | 22 - .../event-dispatcher/Tests/EventTest.php | 55 - .../Tests/GenericEventTest.php | 140 - .../Tests/ImmutableEventDispatcherTest.php | 106 - vendor/symfony/event-dispatcher/composer.json | 47 - .../symfony/event-dispatcher/phpunit.xml.dist | 31 - vendor/symfony/finder/.gitignore | 3 - vendor/symfony/finder/CHANGELOG.md | 55 - .../symfony/finder/Comparator/Comparator.php | 98 - .../finder/Comparator/DateComparator.php | 51 - .../finder/Comparator/NumberComparator.php | 79 - .../Exception/AccessDeniedException.php | 19 - .../finder/Exception/ExceptionInterface.php | 25 - vendor/symfony/finder/Finder.php | 723 - vendor/symfony/finder/Glob.php | 116 - .../finder/Iterator/CustomFilterIterator.php | 61 - .../Iterator/DateRangeFilterIterator.php | 58 - .../Iterator/DepthRangeFilterIterator.php | 45 - .../ExcludeDirectoryFilterIterator.php | 84 - .../Iterator/FileTypeFilterIterator.php | 53 - .../Iterator/FilecontentFilterIterator.php | 58 - .../Iterator/FilenameFilterIterator.php | 47 - .../finder/Iterator/FilterIterator.php | 60 - .../Iterator/MultiplePcreFilterIterator.php | 112 - .../finder/Iterator/PathFilterIterator.php | 56 - .../Iterator/RecursiveDirectoryIterator.php | 154 - .../Iterator/SizeRangeFilterIterator.php | 57 - .../finder/Iterator/SortableIterator.php | 80 - vendor/symfony/finder/LICENSE | 19 - vendor/symfony/finder/README.md | 14 - vendor/symfony/finder/SplFileInfo.php | 79 - .../Tests/Comparator/ComparatorTest.php | 65 - .../Tests/Comparator/DateComparatorTest.php | 64 - .../Tests/Comparator/NumberComparatorTest.php | 108 - vendor/symfony/finder/Tests/FinderTest.php | 698 - vendor/symfony/finder/Tests/Fixtures/.dot/a | 0 .../finder/Tests/Fixtures/.dot/b/c.neon | 0 .../finder/Tests/Fixtures/.dot/b/d.neon | 0 .../finder/Tests/Fixtures/A/B/C/abc.dat | 0 .../symfony/finder/Tests/Fixtures/A/B/ab.dat | 0 vendor/symfony/finder/Tests/Fixtures/A/a.dat | 0 .../Tests/Fixtures/copy/A/B/C/abc.dat.copy | 0 .../Tests/Fixtures/copy/A/B/ab.dat.copy | 0 .../finder/Tests/Fixtures/copy/A/a.dat.copy | 0 .../symfony/finder/Tests/Fixtures/dolor.txt | 2 - .../symfony/finder/Tests/Fixtures/ipsum.txt | 2 - .../symfony/finder/Tests/Fixtures/lorem.txt | 2 - vendor/symfony/finder/Tests/Fixtures/one/.dot | 1 - vendor/symfony/finder/Tests/Fixtures/one/a | 0 .../finder/Tests/Fixtures/one/b/c.neon | 0 .../finder/Tests/Fixtures/one/b/d.neon | 0 .../Fixtures/r+e.gex[c]a(r)s/dir/bar.dat | 0 .../finder/Tests/Fixtures/with space/foo.txt | 0 vendor/symfony/finder/Tests/GlobTest.php | 95 - .../Iterator/CustomFilterIteratorTest.php | 46 - .../Iterator/DateRangeFilterIteratorTest.php | 74 - .../Iterator/DepthRangeFilterIteratorTest.php | 83 - .../ExcludeDirectoryFilterIteratorTest.php | 80 - .../Iterator/FileTypeFilterIteratorTest.php | 73 - .../FilecontentFilterIteratorTest.php | 86 - .../Iterator/FilenameFilterIteratorTest.php | 54 - .../Tests/Iterator/FilterIteratorTest.php | 53 - .../finder/Tests/Iterator/Iterator.php | 55 - .../Tests/Iterator/IteratorTestCase.php | 100 - .../Tests/Iterator/MockFileListIterator.php | 21 - .../finder/Tests/Iterator/MockSplFileInfo.php | 132 - .../MultiplePcreFilterIteratorTest.php | 71 - .../Tests/Iterator/PathFilterIteratorTest.php | 82 - .../Tests/Iterator/RealIteratorTestCase.php | 110 - .../RecursiveDirectoryIteratorTest.php | 59 - .../Iterator/SizeRangeFilterIteratorTest.php | 69 - .../Tests/Iterator/SortableIteratorTest.php | 183 - vendor/symfony/finder/composer.json | 33 - vendor/symfony/finder/phpunit.xml.dist | 30 - vendor/symfony/http-foundation/.gitignore | 3 - .../symfony/http-foundation/AcceptHeader.php | 168 - .../http-foundation/AcceptHeaderItem.php | 209 - .../symfony/http-foundation/ApacheRequest.php | 43 - .../http-foundation/BinaryFileResponse.php | 359 - vendor/symfony/http-foundation/CHANGELOG.md | 159 - vendor/symfony/http-foundation/Cookie.php | 289 - .../Exception/ConflictingHeadersException.php | 21 - .../Exception/RequestExceptionInterface.php | 21 - .../SuspiciousOperationException.php | 20 - .../ExpressionRequestMatcher.php | 47 - .../File/Exception/AccessDeniedException.php | 28 - .../File/Exception/FileException.php | 21 - .../File/Exception/FileNotFoundException.php | 28 - .../Exception/UnexpectedTypeException.php | 20 - .../File/Exception/UploadException.php | 21 - vendor/symfony/http-foundation/File/File.php | 136 - .../File/MimeType/ExtensionGuesser.php | 94 - .../MimeType/ExtensionGuesserInterface.php | 27 - .../MimeType/FileBinaryMimeTypeGuesser.php | 85 - .../File/MimeType/FileinfoMimeTypeGuesser.php | 69 - .../MimeType/MimeTypeExtensionGuesser.php | 807 - .../File/MimeType/MimeTypeGuesser.php | 142 - .../MimeType/MimeTypeGuesserInterface.php | 35 - .../symfony/http-foundation/File/Stream.php | 28 - .../http-foundation/File/UploadedFile.php | 266 - vendor/symfony/http-foundation/FileBag.php | 144 - vendor/symfony/http-foundation/HeaderBag.php | 331 - vendor/symfony/http-foundation/IpUtils.php | 156 - .../symfony/http-foundation/JsonResponse.php | 220 - vendor/symfony/http-foundation/LICENSE | 19 - .../symfony/http-foundation/ParameterBag.php | 234 - vendor/symfony/http-foundation/README.md | 14 - .../http-foundation/RedirectResponse.php | 109 - vendor/symfony/http-foundation/Request.php | 2154 --- .../http-foundation/RequestMatcher.php | 178 - .../RequestMatcherInterface.php | 27 - .../symfony/http-foundation/RequestStack.php | 103 - vendor/symfony/http-foundation/Response.php | 1298 -- .../http-foundation/ResponseHeaderBag.php | 340 - vendor/symfony/http-foundation/ServerBag.php | 102 - .../Session/Attribute/AttributeBag.php | 148 - .../Attribute/AttributeBagInterface.php | 72 - .../Attribute/NamespacedAttributeBag.php | 153 - .../Session/Flash/AutoExpireFlashBag.php | 161 - .../Session/Flash/FlashBag.php | 152 - .../Session/Flash/FlashBagInterface.php | 93 - .../http-foundation/Session/Session.php | 273 - .../Session/SessionBagInterface.php | 46 - .../Session/SessionBagProxy.php | 82 - .../Session/SessionInterface.php | 180 - .../Handler/AbstractSessionHandler.php | 168 - .../Handler/MemcacheSessionHandler.php | 120 - .../Handler/MemcachedSessionHandler.php | 122 - .../Storage/Handler/MongoDbSessionHandler.php | 255 - .../Handler/NativeFileSessionHandler.php | 55 - .../Storage/Handler/NativeSessionHandler.php | 24 - .../Storage/Handler/NullSessionHandler.php | 76 - .../Storage/Handler/PdoSessionHandler.php | 812 - .../Storage/Handler/StrictSessionHandler.php | 103 - .../Handler/WriteCheckSessionHandler.php | 92 - .../Session/Storage/MetadataBag.php | 168 - .../Storage/MockArraySessionStorage.php | 256 - .../Storage/MockFileSessionStorage.php | 152 - .../Session/Storage/NativeSessionStorage.php | 445 - .../Storage/PhpBridgeSessionStorage.php | 59 - .../Session/Storage/Proxy/AbstractProxy.php | 122 - .../Session/Storage/Proxy/NativeProxy.php | 40 - .../Storage/Proxy/SessionHandlerProxy.php | 85 - .../Storage/SessionStorageInterface.php | 137 - .../http-foundation/StreamedResponse.php | 144 - .../Tests/AcceptHeaderItemTest.php | 113 - .../Tests/AcceptHeaderTest.php | 103 - .../Tests/ApacheRequestTest.php | 93 - .../Tests/BinaryFileResponseTest.php | 352 - .../http-foundation/Tests/CookieTest.php | 223 - .../Tests/ExpressionRequestMatcherTest.php | 69 - .../http-foundation/Tests/File/FakeFile.php | 45 - .../http-foundation/Tests/File/FileTest.php | 180 - .../Tests/File/Fixtures/.unknownextension | 1 - .../Tests/File/Fixtures/directory/.empty | 0 .../Tests/File/Fixtures/other-file.example | 0 .../http-foundation/Tests/File/Fixtures/test | Bin 35 -> 0 bytes .../Tests/File/Fixtures/test.gif | Bin 35 -> 0 bytes .../Tests/File/MimeType/MimeTypeTest.php | 90 - .../Tests/File/UploadedFileTest.php | 273 - .../http-foundation/Tests/FileBagTest.php | 175 - .../http-foundation/Tests/HeaderBagTest.php | 205 - .../http-foundation/Tests/IpUtilsTest.php | 104 - .../Tests/JsonResponseTest.php | 257 - .../Tests/ParameterBagTest.php | 194 - .../Tests/RedirectResponseTest.php | 97 - .../Tests/RequestMatcherTest.php | 151 - .../Tests/RequestStackTest.php | 70 - .../http-foundation/Tests/RequestTest.php | 2329 --- .../Tests/ResponseHeaderBagTest.php | 363 - .../http-foundation/Tests/ResponseTest.php | 1003 - .../Tests/ResponseTestCase.php | 89 - .../http-foundation/Tests/ServerBagTest.php | 170 - .../Session/Attribute/AttributeBagTest.php | 186 - .../Attribute/NamespacedAttributeBagTest.php | 182 - .../Session/Flash/AutoExpireFlashBagTest.php | 161 - .../Tests/Session/Flash/FlashBagTest.php | 132 - .../Tests/Session/SessionTest.php | 242 - .../Handler/AbstractSessionHandlerTest.php | 61 - .../Storage/Handler/Fixtures/common.inc | 151 - .../Handler/Fixtures/empty_destroys.expected | 17 - .../Handler/Fixtures/empty_destroys.php | 8 - .../Handler/Fixtures/read_only.expected | 14 - .../Storage/Handler/Fixtures/read_only.php | 8 - .../Handler/Fixtures/regenerate.expected | 24 - .../Storage/Handler/Fixtures/regenerate.php | 10 - .../Storage/Handler/Fixtures/storage.expected | 20 - .../Storage/Handler/Fixtures/storage.php | 24 - .../Handler/Fixtures/with_cookie.expected | 15 - .../Storage/Handler/Fixtures/with_cookie.php | 8 - .../Fixtures/with_cookie_and_session.expected | 24 - .../Fixtures/with_cookie_and_session.php | 13 - .../Handler/MemcacheSessionHandlerTest.php | 135 - .../Handler/MemcachedSessionHandlerTest.php | 139 - .../Handler/MongoDbSessionHandlerTest.php | 333 - .../Handler/NativeFileSessionHandlerTest.php | 77 - .../Handler/NativeSessionHandlerTest.php | 38 - .../Handler/NullSessionHandlerTest.php | 59 - .../Storage/Handler/PdoSessionHandlerTest.php | 376 - .../Handler/StrictSessionHandlerTest.php | 189 - .../Handler/WriteCheckSessionHandlerTest.php | 97 - .../Tests/Session/Storage/MetadataBagTest.php | 139 - .../Storage/MockArraySessionStorageTest.php | 131 - .../Storage/MockFileSessionStorageTest.php | 127 - .../Storage/NativeSessionStorageTest.php | 277 - .../Storage/PhpBridgeSessionStorageTest.php | 96 - .../Storage/Proxy/AbstractProxyTest.php | 113 - .../Session/Storage/Proxy/NativeProxyTest.php | 38 - .../Storage/Proxy/SessionHandlerProxyTest.php | 124 - .../Tests/StreamedResponseTest.php | 126 - .../Tests/schema/http-status-codes.rng | 31 - .../Tests/schema/iana-registry.rng | 198 - vendor/symfony/http-foundation/composer.json | 38 - .../symfony/http-foundation/phpunit.xml.dist | 31 - vendor/symfony/http-kernel/.gitignore | 5 - vendor/symfony/http-kernel/Bundle/Bundle.php | 229 - .../http-kernel/Bundle/BundleInterface.php | 84 - vendor/symfony/http-kernel/CHANGELOG.md | 151 - .../CacheClearer/CacheClearerInterface.php | 27 - .../CacheClearer/ChainCacheClearer.php | 56 - .../CacheClearer/Psr6CacheClearer.php | 58 - .../http-kernel/CacheWarmer/CacheWarmer.php | 32 - .../CacheWarmer/CacheWarmerAggregate.php | 90 - .../CacheWarmer/CacheWarmerInterface.php | 32 - .../CacheWarmer/WarmableInterface.php | 27 - vendor/symfony/http-kernel/Client.php | 205 - .../Config/EnvParametersResource.php | 99 - .../http-kernel/Config/FileLocator.php | 54 - .../Controller/ArgumentResolver.php | 94 - .../ArgumentResolver/DefaultValueResolver.php | 40 - .../RequestAttributeValueResolver.php | 40 - .../ArgumentResolver/RequestValueResolver.php | 40 - .../ArgumentResolver/ServiceValueResolver.php | 58 - .../ArgumentResolver/SessionValueResolver.php | 46 - .../VariadicValueResolver.php | 48 - .../Controller/ArgumentResolverInterface.php | 35 - .../ArgumentValueResolverInterface.php | 43 - .../ContainerControllerResolver.php | 121 - .../Controller/ControllerReference.php | 44 - .../Controller/ControllerResolver.php | 258 - .../ControllerResolverInterface.php | 57 - .../Controller/TraceableArgumentResolver.php | 44 - .../TraceableControllerResolver.php | 69 - .../ControllerMetadata/ArgumentMetadata.php | 115 - .../ArgumentMetadataFactory.php | 129 - .../ArgumentMetadataFactoryInterface.php | 27 - .../DataCollector/AjaxDataCollector.php | 38 - .../DataCollector/ConfigDataCollector.php | 332 - .../DataCollector/DataCollector.php | 128 - .../DataCollector/DataCollectorInterface.php | 37 - .../DataCollector/DumpDataCollector.php | 315 - .../DataCollector/EventDataCollector.php | 124 - .../DataCollector/ExceptionDataCollector.php | 112 - .../LateDataCollectorInterface.php | 25 - .../DataCollector/LoggerDataCollector.php | 278 - .../DataCollector/MemoryDataCollector.php | 120 - .../DataCollector/RequestDataCollector.php | 404 - .../DataCollector/RouterDataCollector.php | 108 - .../DataCollector/TimeDataCollector.php | 149 - .../DataCollector/Util/ValueExporter.php | 99 - .../http-kernel/Debug/FileLinkFormatter.php | 88 - .../Debug/TraceableEventDispatcher.php | 82 - .../AddAnnotatedClassesToCachePass.php | 153 - .../AddClassesToCachePass.php | 25 - .../ConfigurableExtension.php | 42 - .../ControllerArgumentValueResolverPass.php | 48 - .../DependencyInjection/Extension.php | 77 - .../FragmentRendererPass.php | 67 - .../LazyLoadingFragmentHandler.php | 79 - .../DependencyInjection/LoggerPass.php | 41 - .../MergeExtensionConfigurationPass.php | 41 - ...RegisterControllerArgumentLocatorsPass.php | 174 - ...oveEmptyControllerArgumentLocatorsPass.php | 76 - .../ResettableServicePass.php | 66 - .../DependencyInjection/ServicesResetter.php | 39 - .../Event/FilterControllerArgumentsEvent.php | 52 - .../Event/FilterControllerEvent.php | 53 - .../http-kernel/Event/FilterResponseEvent.php | 55 - .../http-kernel/Event/FinishRequestEvent.php | 21 - .../http-kernel/Event/GetResponseEvent.php | 58 - .../GetResponseForControllerResultEvent.php | 61 - .../Event/GetResponseForExceptionEvent.php | 90 - .../symfony/http-kernel/Event/KernelEvent.php | 82 - .../http-kernel/Event/PostResponseEvent.php | 46 - .../EventListener/AbstractSessionListener.php | 76 - .../AbstractTestSessionListener.php | 89 - .../AddRequestFormatsListener.php | 50 - .../EventListener/DebugHandlersListener.php | 156 - .../EventListener/DumpListener.php | 55 - .../EventListener/ExceptionListener.php | 129 - .../EventListener/FragmentListener.php | 99 - .../EventListener/LocaleListener.php | 83 - .../EventListener/ProfilerListener.php | 128 - .../EventListener/ResponseListener.php | 56 - .../EventListener/RouterListener.php | 171 - .../EventListener/SaveSessionListener.php | 66 - .../EventListener/SessionListener.php | 40 - .../StreamedResponseListener.php | 49 - .../EventListener/SurrogateListener.php | 65 - .../EventListener/TestSessionListener.php | 40 - .../EventListener/TranslatorListener.php | 69 - .../EventListener/ValidateRequestListener.php | 53 - .../Exception/AccessDeniedHttpException.php | 29 - .../Exception/BadRequestHttpException.php | 28 - .../Exception/ConflictHttpException.php | 28 - .../Exception/GoneHttpException.php | 28 - .../http-kernel/Exception/HttpException.php | 51 - .../Exception/HttpExceptionInterface.php | 34 - .../Exception/LengthRequiredHttpException.php | 28 - .../MethodNotAllowedHttpException.php | 31 - .../Exception/NotAcceptableHttpException.php | 28 - .../Exception/NotFoundHttpException.php | 28 - .../PreconditionFailedHttpException.php | 28 - .../PreconditionRequiredHttpException.php | 30 - .../ServiceUnavailableHttpException.php | 34 - .../TooManyRequestsHttpException.php | 36 - .../Exception/UnauthorizedHttpException.php | 31 - .../UnprocessableEntityHttpException.php | 28 - .../UnsupportedMediaTypeHttpException.php | 28 - .../AbstractSurrogateFragmentRenderer.php | 110 - .../Fragment/EsiFragmentRenderer.php | 28 - .../http-kernel/Fragment/FragmentHandler.php | 112 - .../Fragment/FragmentRendererInterface.php | 42 - .../Fragment/HIncludeFragmentRenderer.php | 165 - .../Fragment/InlineFragmentRenderer.php | 152 - .../Fragment/RoutableFragmentRenderer.php | 90 - .../Fragment/SsiFragmentRenderer.php | 28 - .../HttpCache/AbstractSurrogate.php | 134 - vendor/symfony/http-kernel/HttpCache/Esi.php | 115 - .../http-kernel/HttpCache/HttpCache.php | 714 - .../HttpCache/ResponseCacheStrategy.php | 96 - .../ResponseCacheStrategyInterface.php | 37 - vendor/symfony/http-kernel/HttpCache/Ssi.php | 98 - .../symfony/http-kernel/HttpCache/Store.php | 485 - .../http-kernel/HttpCache/StoreInterface.php | 83 - .../HttpCache/SurrogateInterface.php | 92 - vendor/symfony/http-kernel/HttpKernel.php | 299 - .../http-kernel/HttpKernelInterface.php | 43 - vendor/symfony/http-kernel/Kernel.php | 969 - vendor/symfony/http-kernel/KernelEvents.php | 103 - .../symfony/http-kernel/KernelInterface.php | 165 - vendor/symfony/http-kernel/LICENSE | 19 - .../http-kernel/Log/DebugLoggerInterface.php | 40 - vendor/symfony/http-kernel/Log/Logger.php | 111 - .../Profiler/FileProfilerStorage.php | 292 - .../symfony/http-kernel/Profiler/Profile.php | 287 - .../symfony/http-kernel/Profiler/Profiler.php | 265 - .../Profiler/ProfilerStorageInterface.php | 57 - vendor/symfony/http-kernel/README.md | 16 - .../http-kernel/RebootableInterface.php | 30 - .../http-kernel/Resources/welcome.html.php | 84 - .../http-kernel/TerminableInterface.php | 32 - .../http-kernel/Tests/Bundle/BundleTest.php | 104 - .../CacheClearer/ChainCacheClearerTest.php | 61 - .../CacheClearer/Psr6CacheClearerTest.php | 69 - .../CacheWarmer/CacheWarmerAggregateTest.php | 107 - .../Tests/CacheWarmer/CacheWarmerTest.php | 68 - .../symfony/http-kernel/Tests/ClientTest.php | 183 - .../Config/EnvParametersResourceTest.php | 110 - .../Tests/Config/FileLocatorTest.php | 48 - .../ServiceValueResolverTest.php | 93 - .../Tests/Controller/ArgumentResolverTest.php | 349 - .../ContainerControllerResolverTest.php | 308 - .../Controller/ControllerResolverTest.php | 331 - .../ArgumentMetadataFactoryTest.php | 148 - .../ArgumentMetadataTest.php | 46 - .../Tests/DataCollector/Compiler.log | 4 - .../DataCollector/ConfigDataCollectorTest.php | 66 - .../Tests/DataCollector/DataCollectorTest.php | 38 - .../DataCollector/DumpDataCollectorTest.php | 115 - .../ExceptionDataCollectorTest.php | 59 - .../DataCollector/LoggerDataCollectorTest.php | 144 - .../DataCollector/MemoryDataCollectorTest.php | 59 - .../RequestDataCollectorTest.php | 334 - .../DataCollector/TimeDataCollectorTest.php | 55 - .../DataCollector/Util/ValueExporterTest.php | 51 - .../Tests/Debug/FileLinkFormatterTest.php | 67 - .../Debug/TraceableEventDispatcherTest.php | 121 - .../AddAnnotatedClassesToCachePassTest.php | 99 - ...ontrollerArgumentValueResolverPassTest.php | 67 - .../FragmentRendererPassTest.php | 105 - .../LazyLoadingFragmentHandlerTest.php | 66 - .../DependencyInjection/LoggerPassTest.php | 56 - .../MergeExtensionConfigurationPassTest.php | 55 - ...sterControllerArgumentLocatorsPassTest.php | 389 - ...mptyControllerArgumentLocatorsPassTest.php | 148 - .../ResettableServicePassTest.php | 78 - .../ServicesResetterTest.php | 42 - .../FilterControllerArgumentsEventTest.php | 17 - .../GetResponseForExceptionEventTest.php | 27 - .../AddRequestFormatsListenerTest.php | 84 - .../DebugHandlersListenerTest.php | 155 - .../Tests/EventListener/DumpListenerTest.php | 81 - .../EventListener/ExceptionListenerTest.php | 178 - .../EventListener/FragmentListenerTest.php | 122 - .../EventListener/LocaleListenerTest.php | 102 - .../EventListener/ProfilerListenerTest.php | 71 - .../EventListener/ResponseListenerTest.php | 95 - .../EventListener/RouterListenerTest.php | 226 - .../EventListener/SaveSessionListenerTest.php | 49 - .../EventListener/SessionListenerTest.php | 79 - .../EventListener/SurrogateListenerTest.php | 67 - .../EventListener/TestSessionListenerTest.php | 164 - .../EventListener/TranslatorListenerTest.php | 118 - .../ValidateRequestListenerTest.php | 43 - .../AccessDeniedHttpExceptionTest.php | 13 - .../Exception/BadRequestHttpExceptionTest.php | 13 - .../Exception/ConflictHttpExceptionTest.php | 13 - .../Tests/Exception/GoneHttpExceptionTest.php | 13 - .../Tests/Exception/HttpExceptionTest.php | 53 - .../LengthRequiredHttpExceptionTest.php | 13 - .../MethodNotAllowedHttpExceptionTest.php | 24 - .../NotAcceptableHttpExceptionTest.php | 13 - .../Exception/NotFoundHttpExceptionTest.php | 13 - .../PreconditionFailedHttpExceptionTest.php | 13 - .../PreconditionRequiredHttpExceptionTest.php | 13 - .../ServiceUnavailableHttpExceptionTest.php | 29 - .../TooManyRequestsHttpExceptionTest.php | 29 - .../UnauthorizedHttpExceptionTest.php | 24 - .../UnprocessableEntityHttpExceptionTest.php | 28 - .../UnsupportedMediaTypeHttpExceptionTest.php | 23 - .../Tests/Fixtures/123/Kernel123.php | 37 - .../Fixtures/BaseBundle/Resources/foo.txt | 0 .../Fixtures/BaseBundle/Resources/hide.txt | 0 .../Fixtures/Bundle1Bundle/Resources/foo.txt | 0 .../Tests/Fixtures/Bundle1Bundle/bar.txt | 0 .../Tests/Fixtures/Bundle1Bundle/foo.txt | 0 .../Tests/Fixtures/Bundle2Bundle/foo.txt | 0 .../Fixtures/ChildBundle/Resources/foo.txt | 0 .../Fixtures/ChildBundle/Resources/hide.txt | 0 .../Tests/Fixtures/ClearableService.php | 13 - .../Controller/BasicTypesController.php | 19 - .../Fixtures/Controller/ExtendingRequest.php | 18 - .../Fixtures/Controller/ExtendingSession.php | 18 - .../Controller/NullableController.php | 19 - .../Controller/VariadicController.php | 19 - .../DataCollector/CloneVarDataCollector.php | 46 - .../ExtensionAbsentBundle.php | 18 - .../ExtensionLoadedExtension.php | 22 - .../ExtensionLoadedBundle.php | 18 - .../ExtensionNotValidExtension.php | 20 - .../ExtensionNotValidBundle.php | 18 - .../Command/BarCommand.php | 17 - .../Command/FooCommand.php | 22 - .../ExtensionPresentExtension.php | 22 - .../ExtensionPresentBundle.php | 18 - .../Tests/Fixtures/KernelForOverrideName.php | 28 - .../Tests/Fixtures/KernelForTest.php | 37 - .../Tests/Fixtures/KernelWithoutBundles.php | 33 - .../Tests/Fixtures/ResettableService.php | 13 - .../Fixtures/Resources/BaseBundle/hide.txt | 0 .../Fixtures/Resources/Bundle1Bundle/foo.txt | 0 .../Fixtures/Resources/ChildBundle/foo.txt | 0 .../Fixtures/Resources/FooBundle/foo.txt | 0 .../http-kernel/Tests/Fixtures/TestClient.php | 31 - .../Tests/Fixtures/TestEventDispatcher.php | 32 - .../Fragment/EsiFragmentRendererTest.php | 118 - .../Tests/Fragment/FragmentHandlerTest.php | 99 - .../Fragment/HIncludeFragmentRendererTest.php | 89 - .../Fragment/InlineFragmentRendererTest.php | 250 - .../Fragment/RoutableFragmentRendererTest.php | 94 - .../Fragment/SsiFragmentRendererTest.php | 97 - .../http-kernel/Tests/HttpCache/EsiTest.php | 248 - .../Tests/HttpCache/HttpCacheTest.php | 1482 -- .../Tests/HttpCache/HttpCacheTestCase.php | 185 - .../HttpCache/ResponseCacheStrategyTest.php | 222 - .../http-kernel/Tests/HttpCache/SsiTest.php | 215 - .../http-kernel/Tests/HttpCache/StoreTest.php | 301 - .../Tests/HttpCache/TestHttpKernel.php | 92 - .../HttpCache/TestMultipleHttpKernel.php | 81 - .../http-kernel/Tests/HttpKernelTest.php | 403 - .../symfony/http-kernel/Tests/KernelTest.php | 1060 -- .../http-kernel/Tests/Log/LoggerTest.php | 212 - vendor/symfony/http-kernel/Tests/Logger.php | 88 - .../Profiler/FileProfilerStorageTest.php | 350 - .../Tests/Profiler/ProfilerTest.php | 105 - .../http-kernel/Tests/TestHttpKernel.php | 42 - .../http-kernel/Tests/UriSignerTest.php | 64 - vendor/symfony/http-kernel/UriSigner.php | 106 - vendor/symfony/http-kernel/composer.json | 72 - vendor/symfony/http-kernel/phpunit.xml.dist | 40 - vendor/symfony/polyfill-mbstring/LICENSE | 19 - vendor/symfony/polyfill-mbstring/Mbstring.php | 791 - vendor/symfony/polyfill-mbstring/README.md | 13 - .../Resources/unidata/lowerCase.php | 1101 -- .../Resources/unidata/upperCase.php | 1109 -- .../symfony/polyfill-mbstring/bootstrap.php | 58 - .../symfony/polyfill-mbstring/composer.json | 34 - vendor/symfony/polyfill-php70/LICENSE | 19 - vendor/symfony/polyfill-php70/Php70.php | 74 - vendor/symfony/polyfill-php70/README.md | 28 - .../Resources/stubs/ArithmeticError.php | 5 - .../Resources/stubs/AssertionError.php | 5 - .../Resources/stubs/DivisionByZeroError.php | 5 - .../polyfill-php70/Resources/stubs/Error.php | 5 - .../Resources/stubs/ParseError.php | 5 - ...SessionUpdateTimestampHandlerInterface.php | 23 - .../Resources/stubs/TypeError.php | 5 - vendor/symfony/polyfill-php70/bootstrap.php | 27 - vendor/symfony/polyfill-php70/composer.json | 33 - vendor/symfony/process/.gitignore | 3 - vendor/symfony/process/CHANGELOG.md | 57 - .../process/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../process/Exception/LogicException.php | 21 - .../Exception/ProcessFailedException.php | 54 - .../Exception/ProcessTimedOutException.php | 69 - .../process/Exception/RuntimeException.php | 21 - vendor/symfony/process/ExecutableFinder.php | 88 - vendor/symfony/process/InputStream.php | 92 - vendor/symfony/process/LICENSE | 19 - .../symfony/process/PhpExecutableFinder.php | 90 - vendor/symfony/process/PhpProcess.php | 76 - .../symfony/process/Pipes/AbstractPipes.php | 168 - .../symfony/process/Pipes/PipesInterface.php | 67 - vendor/symfony/process/Pipes/UnixPipes.php | 150 - vendor/symfony/process/Pipes/WindowsPipes.php | 196 - vendor/symfony/process/Process.php | 1751 -- vendor/symfony/process/ProcessBuilder.php | 280 - vendor/symfony/process/ProcessUtils.php | 123 - vendor/symfony/process/README.md | 13 - .../process/Tests/ExecutableFinderTest.php | 133 - .../process/Tests/NonStopableProcess.php | 47 - .../process/Tests/PhpExecutableFinderTest.php | 72 - .../symfony/process/Tests/PhpProcessTest.php | 48 - .../PipeStdinInStdoutStdErrStreamSelect.php | 72 - .../process/Tests/ProcessBuilderTest.php | 226 - .../Tests/ProcessFailedExceptionTest.php | 137 - vendor/symfony/process/Tests/ProcessTest.php | 1621 -- .../process/Tests/ProcessUtilsTest.php | 53 - .../symfony/process/Tests/SignalListener.php | 21 - vendor/symfony/process/composer.json | 33 - vendor/symfony/process/phpunit.xml.dist | 30 - vendor/symfony/routing/.gitignore | 3 - vendor/symfony/routing/Annotation/Route.php | 144 - vendor/symfony/routing/CHANGELOG.md | 228 - vendor/symfony/routing/CompiledRoute.php | 169 - .../RoutingResolverPass.php | 49 - .../routing/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidParameterException.php | 21 - .../Exception/MethodNotAllowedException.php | 41 - .../MissingMandatoryParametersException.php | 22 - .../Exception/NoConfigurationException.php | 21 - .../Exception/ResourceNotFoundException.php | 23 - .../Exception/RouteNotFoundException.php | 21 - .../ConfigurableRequirementsInterface.php | 55 - .../Generator/Dumper/GeneratorDumper.php | 37 - .../Dumper/GeneratorDumperInterface.php | 39 - .../Generator/Dumper/PhpGeneratorDumper.php | 118 - .../routing/Generator/UrlGenerator.php | 321 - .../Generator/UrlGeneratorInterface.php | 86 - vendor/symfony/routing/LICENSE | 19 - .../routing/Loader/AnnotationClassLoader.php | 269 - .../Loader/AnnotationDirectoryLoader.php | 93 - .../routing/Loader/AnnotationFileLoader.php | 142 - .../symfony/routing/Loader/ClosureLoader.php | 46 - .../Configurator/CollectionConfigurator.php | 79 - .../Configurator/ImportConfigurator.php | 49 - .../Loader/Configurator/RouteConfigurator.php | 31 - .../Configurator/RoutingConfigurator.php | 54 - .../Loader/Configurator/Traits/AddTrait.php | 54 - .../Loader/Configurator/Traits/RouteTrait.php | 131 - .../ServiceRouterLoader.php | 40 - .../routing/Loader/DirectoryLoader.php | 58 - .../routing/Loader/ObjectRouteLoader.php | 95 - .../symfony/routing/Loader/PhpFileLoader.php | 75 - .../symfony/routing/Loader/XmlFileLoader.php | 352 - .../symfony/routing/Loader/YamlFileLoader.php | 226 - .../Loader/schema/routing/routing-1.0.xsd | 148 - .../Matcher/Dumper/DumperCollection.php | 159 - .../routing/Matcher/Dumper/DumperRoute.php | 57 - .../routing/Matcher/Dumper/MatcherDumper.php | 37 - .../Matcher/Dumper/MatcherDumperInterface.php | 39 - .../Matcher/Dumper/PhpMatcherDumper.php | 441 - .../Matcher/Dumper/StaticPrefixCollection.php | 238 - .../Matcher/RedirectableUrlMatcher.php | 65 - .../RedirectableUrlMatcherInterface.php | 31 - .../Matcher/RequestMatcherInterface.php | 39 - .../routing/Matcher/TraceableUrlMatcher.php | 141 - vendor/symfony/routing/Matcher/UrlMatcher.php | 250 - .../routing/Matcher/UrlMatcherInterface.php | 41 - vendor/symfony/routing/README.md | 13 - vendor/symfony/routing/RequestContext.php | 336 - .../routing/RequestContextAwareInterface.php | 27 - vendor/symfony/routing/Route.php | 558 - vendor/symfony/routing/RouteCollection.php | 280 - .../routing/RouteCollectionBuilder.php | 380 - vendor/symfony/routing/RouteCompiler.php | 316 - .../routing/RouteCompilerInterface.php | 30 - vendor/symfony/routing/Router.php | 384 - vendor/symfony/routing/RouterInterface.php | 32 - .../routing/Tests/Annotation/RouteTest.php | 50 - .../routing/Tests/CompiledRouteTest.php | 27 - .../RoutingResolverPassTest.php | 36 - .../AnnotatedClasses/AbstractClass.php | 16 - .../Fixtures/AnnotatedClasses/BarClass.php | 19 - .../Fixtures/AnnotatedClasses/BazClass.php | 19 - .../Fixtures/AnnotatedClasses/FooClass.php | 16 - .../Fixtures/AnnotatedClasses/FooTrait.php | 13 - .../Tests/Fixtures/CustomCompiledRoute.php | 18 - .../Tests/Fixtures/CustomRouteCompiler.php | 26 - .../Tests/Fixtures/CustomXmlFileLoader.php | 26 - .../AnonymousClassInTrait.php | 24 - .../OtherAnnotatedClasses/NoStartTagClass.php | 3 - .../OtherAnnotatedClasses/VariadicClass.php | 19 - .../Tests/Fixtures/RedirectableUrlMatcher.php | 30 - .../routing/Tests/Fixtures/annotated.php | 0 .../routing/Tests/Fixtures/bad_format.yml | 3 - vendor/symfony/routing/Tests/Fixtures/bar.xml | 0 .../controller/import__controller.xml | 10 - .../controller/import__controller.yml | 4 - .../Fixtures/controller/import_controller.xml | 8 - .../Fixtures/controller/import_controller.yml | 3 - .../controller/import_override_defaults.xml | 10 - .../controller/import_override_defaults.yml | 5 - .../Fixtures/controller/override_defaults.xml | 10 - .../Fixtures/controller/override_defaults.yml | 5 - .../Tests/Fixtures/controller/routing.xml | 14 - .../Tests/Fixtures/controller/routing.yml | 11 - .../Fixtures/directory/recurse/routes1.yml | 2 - .../Fixtures/directory/recurse/routes2.yml | 2 - .../Tests/Fixtures/directory/routes3.yml | 2 - .../Fixtures/directory_import/import.yml | 3 - .../Tests/Fixtures/dumper/url_matcher0.php | 39 - .../Tests/Fixtures/dumper/url_matcher1.php | 312 - .../Tests/Fixtures/dumper/url_matcher2.php | 349 - .../Tests/Fixtures/dumper/url_matcher3.php | 53 - .../Tests/Fixtures/dumper/url_matcher4.php | 104 - .../Tests/Fixtures/dumper/url_matcher5.php | 162 - .../Tests/Fixtures/dumper/url_matcher6.php | 199 - .../Tests/Fixtures/dumper/url_matcher7.php | 229 - .../symfony/routing/Tests/Fixtures/empty.yml | 0 .../routing/Tests/Fixtures/file_resource.yml | 0 vendor/symfony/routing/Tests/Fixtures/foo.xml | 0 .../symfony/routing/Tests/Fixtures/foo1.xml | 0 .../routing/Tests/Fixtures/incomplete.yml | 2 - .../routing/Tests/Fixtures/list_defaults.xml | 20 - .../Tests/Fixtures/list_in_list_defaults.xml | 22 - .../Tests/Fixtures/list_in_map_defaults.xml | 22 - .../Tests/Fixtures/list_null_values.xml | 22 - .../routing/Tests/Fixtures/map_defaults.xml | 20 - .../Tests/Fixtures/map_in_list_defaults.xml | 22 - .../Tests/Fixtures/map_in_map_defaults.xml | 22 - .../Tests/Fixtures/map_null_values.xml | 22 - .../routing/Tests/Fixtures/missing_id.xml | 8 - .../routing/Tests/Fixtures/missing_path.xml | 8 - .../Tests/Fixtures/namespaceprefix.xml | 16 - .../Fixtures/nonesense_resource_plus_path.yml | 3 - .../nonesense_type_without_resource.yml | 3 - .../routing/Tests/Fixtures/nonvalid.xml | 10 - .../routing/Tests/Fixtures/nonvalid.yml | 1 - .../routing/Tests/Fixtures/nonvalid2.yml | 1 - .../routing/Tests/Fixtures/nonvalidkeys.yml | 3 - .../routing/Tests/Fixtures/nonvalidnode.xml | 8 - .../routing/Tests/Fixtures/nonvalidroute.xml | 12 - .../routing/Tests/Fixtures/null_values.xml | 12 - .../routing/Tests/Fixtures/php_dsl.php | 21 - .../routing/Tests/Fixtures/php_dsl_sub.php | 14 - .../Tests/Fixtures/scalar_defaults.xml | 33 - .../Tests/Fixtures/special_route_name.yml | 2 - .../routing/Tests/Fixtures/validpattern.php | 18 - .../routing/Tests/Fixtures/validpattern.xml | 15 - .../routing/Tests/Fixtures/validpattern.yml | 13 - .../routing/Tests/Fixtures/validresource.php | 18 - .../routing/Tests/Fixtures/validresource.xml | 13 - .../routing/Tests/Fixtures/validresource.yml | 8 - .../Fixtures/with_define_path_variable.php | 5 - .../routing/Tests/Fixtures/withdoctype.xml | 3 - .../Dumper/PhpGeneratorDumperTest.php | 181 - .../Tests/Generator/UrlGeneratorTest.php | 724 - .../Loader/AbstractAnnotationLoaderTest.php | 33 - .../Loader/AnnotationClassLoaderTest.php | 255 - .../Loader/AnnotationDirectoryLoaderTest.php | 98 - .../Tests/Loader/AnnotationFileLoaderTest.php | 91 - .../Tests/Loader/ClosureLoaderTest.php | 49 - .../Tests/Loader/DirectoryLoaderTest.php | 74 - .../Tests/Loader/ObjectRouteLoaderTest.php | 123 - .../Tests/Loader/PhpFileLoaderTest.php | 120 - .../Tests/Loader/XmlFileLoaderTest.php | 364 - .../Tests/Loader/YamlFileLoaderTest.php | 185 - .../Matcher/Dumper/DumperCollectionTest.php | 34 - .../Matcher/Dumper/PhpMatcherDumperTest.php | 459 - .../Dumper/StaticPrefixCollectionTest.php | 175 - .../Matcher/RedirectableUrlMatcherTest.php | 111 - .../Tests/Matcher/TraceableUrlMatcherTest.php | 122 - .../routing/Tests/Matcher/UrlMatcherTest.php | 441 - .../routing/Tests/RequestContextTest.php | 160 - .../Tests/RouteCollectionBuilderTest.php | 364 - .../routing/Tests/RouteCollectionTest.php | 305 - .../routing/Tests/RouteCompilerTest.php | 389 - vendor/symfony/routing/Tests/RouteTest.php | 258 - vendor/symfony/routing/Tests/RouterTest.php | 162 - vendor/symfony/routing/composer.json | 56 - vendor/symfony/routing/phpunit.xml.dist | 30 - vendor/symfony/thanks/.gitignore | 2 - vendor/symfony/thanks/LICENSE | 19 - vendor/symfony/thanks/README.md | 53 - vendor/symfony/thanks/composer.json | 27 - .../thanks/src/Command/ThanksCommand.php | 233 - vendor/symfony/thanks/src/Thanks.php | 92 - vendor/symfony/translation/.gitignore | 3 - vendor/symfony/translation/CHANGELOG.md | 94 - .../Catalogue/AbstractOperation.php | 158 - .../translation/Catalogue/MergeOperation.php | 55 - .../Catalogue/OperationInterface.php | 77 - .../translation/Catalogue/TargetOperation.php | 69 - .../translation/Command/XliffLintCommand.php | 245 - .../TranslationDataCollector.php | 167 - .../translation/DataCollectorTranslator.php | 165 - .../TranslationDumperPass.php | 44 - .../TranslationExtractorPass.php | 49 - .../DependencyInjection/TranslatorPass.php | 95 - .../translation/Dumper/CsvFileDumper.php | 63 - .../translation/Dumper/DumperInterface.php | 31 - .../symfony/translation/Dumper/FileDumper.php | 126 - .../translation/Dumper/IcuResFileDumper.php | 106 - .../translation/Dumper/IniFileDumper.php | 45 - .../translation/Dumper/JsonFileDumper.php | 44 - .../translation/Dumper/MoFileDumper.php | 82 - .../translation/Dumper/PhpFileDumper.php | 38 - .../translation/Dumper/PoFileDumper.php | 61 - .../translation/Dumper/QtFileDumper.php | 50 - .../translation/Dumper/XliffFileDumper.php | 200 - .../translation/Dumper/YamlFileDumper.php | 62 - .../Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../Exception/InvalidResourceException.php | 21 - .../translation/Exception/LogicException.php | 21 - .../Exception/NotFoundResourceException.php | 21 - .../Exception/RuntimeException.php | 21 - .../Extractor/AbstractFileExtractor.php | 85 - .../translation/Extractor/ChainExtractor.php | 60 - .../Extractor/ExtractorInterface.php | 38 - .../translation/Extractor/PhpExtractor.php | 258 - .../Extractor/PhpStringTokenParser.php | 142 - .../ChoiceMessageFormatterInterface.php | 30 - .../Formatter/MessageFormatter.php | 48 - .../Formatter/MessageFormatterInterface.php | 30 - .../translation/IdentityTranslator.php | 63 - vendor/symfony/translation/Interval.php | 109 - vendor/symfony/translation/LICENSE | 19 - .../translation/Loader/ArrayLoader.php | 66 - .../translation/Loader/CsvFileLoader.php | 65 - .../symfony/translation/Loader/FileLoader.php | 65 - .../translation/Loader/IcuDatFileLoader.php | 62 - .../translation/Loader/IcuResFileLoader.php | 92 - .../translation/Loader/IniFileLoader.php | 28 - .../translation/Loader/JsonFileLoader.php | 64 - .../translation/Loader/LoaderInterface.php | 38 - .../translation/Loader/MoFileLoader.php | 148 - .../translation/Loader/PhpFileLoader.php | 28 - .../translation/Loader/PoFileLoader.php | 148 - .../translation/Loader/QtFileLoader.php | 77 - .../translation/Loader/XliffFileLoader.php | 346 - .../translation/Loader/YamlFileLoader.php | 57 - .../dic/xliff-core/xliff-core-1.2-strict.xsd | 2223 --- .../schema/dic/xliff-core/xliff-core-2.0.xsd | 411 - .../Loader/schema/dic/xliff-core/xml.xsd | 309 - .../symfony/translation/LoggingTranslator.php | 136 - .../symfony/translation/MessageCatalogue.php | 271 - .../translation/MessageCatalogueInterface.php | 136 - .../symfony/translation/MessageSelector.php | 94 - .../translation/MetadataAwareInterface.php | 54 - .../translation/PluralizationRules.php | 208 - vendor/symfony/translation/README.md | 13 - .../translation/Reader/TranslationReader.php | 63 - .../Reader/TranslationReaderInterface.php | 30 - .../schemas/xliff-core-1.2-strict.xsd | 2223 --- .../Tests/Catalogue/AbstractOperationTest.php | 74 - .../Tests/Catalogue/MergeOperationTest.php | 83 - .../Tests/Catalogue/TargetOperationTest.php | 82 - .../TranslationDataCollectorTest.php | 150 - .../Tests/DataCollectorTranslatorTest.php | 92 - .../TranslationDumperPassTest.php | 66 - .../TranslationExtractorPassTest.php | 99 - .../TranslationPassTest.php | 103 - .../Tests/Dumper/CsvFileDumperTest.php | 30 - .../Tests/Dumper/FileDumperTest.php | 89 - .../Tests/Dumper/IcuResFileDumperTest.php | 29 - .../Tests/Dumper/IniFileDumperTest.php | 29 - .../Tests/Dumper/JsonFileDumperTest.php | 39 - .../Tests/Dumper/MoFileDumperTest.php | 29 - .../Tests/Dumper/PhpFileDumperTest.php | 29 - .../Tests/Dumper/PoFileDumperTest.php | 29 - .../Tests/Dumper/QtFileDumperTest.php | 29 - .../Tests/Dumper/XliffFileDumperTest.php | 115 - .../Tests/Dumper/YamlFileDumperTest.php | 47 - .../Tests/Extractor/PhpExtractorTest.php | 95 - .../Tests/Formatter/MessageFormatterTest.php | 82 - .../Tests/IdentityTranslatorTest.php | 96 - .../translation/Tests/IntervalTest.php | 49 - .../Tests/Loader/CsvFileLoaderTest.php | 61 - .../Tests/Loader/IcuDatFileLoaderTest.php | 64 - .../Tests/Loader/IcuResFileLoaderTest.php | 51 - .../Tests/Loader/IniFileLoaderTest.php | 51 - .../Tests/Loader/JsonFileLoaderTest.php | 62 - .../Tests/Loader/LocalizedTestCase.php | 24 - .../Tests/Loader/MoFileLoaderTest.php | 72 - .../Tests/Loader/PhpFileLoaderTest.php | 50 - .../Tests/Loader/PoFileLoaderTest.php | 109 - .../Tests/Loader/QtFileLoaderTest.php | 75 - .../Tests/Loader/XliffFileLoaderTest.php | 231 - .../Tests/Loader/YamlFileLoaderTest.php | 71 - .../Tests/LoggingTranslatorTest.php | 50 - .../Tests/MessageCatalogueTest.php | 222 - .../translation/Tests/MessageSelectorTest.php | 137 - .../Tests/PluralizationRulesTest.php | 122 - .../translation/Tests/TranslatorCacheTest.php | 311 - .../translation/Tests/TranslatorTest.php | 549 - .../Tests/Util/ArrayConverterTest.php | 74 - .../Tests/Writer/TranslationWriterTest.php | 82 - .../Tests/fixtures/empty-translation.mo | Bin 49 -> 0 bytes .../Tests/fixtures/empty-translation.po | 3 - .../translation/Tests/fixtures/empty.csv | 0 .../translation/Tests/fixtures/empty.ini | 0 .../translation/Tests/fixtures/empty.json | 0 .../translation/Tests/fixtures/empty.mo | 0 .../translation/Tests/fixtures/empty.po | 0 .../translation/Tests/fixtures/empty.xlf | 0 .../translation/Tests/fixtures/empty.yml | 0 .../translation/Tests/fixtures/encoding.xlf | 16 - .../Tests/fixtures/escaped-id-plurals.po | 10 - .../translation/Tests/fixtures/escaped-id.po | 8 - .../fixtures/extractor/resource.format.engine | 0 .../this.is.a.template.format.engine | 0 .../fixtures/extractor/translation.html.php | 49 - .../Tests/fixtures/fuzzy-translations.po | 10 - .../Tests/fixtures/invalid-xml-resources.xlf | 23 - .../translation/Tests/fixtures/malformed.json | 3 - .../translation/Tests/fixtures/messages.yml | 3 - .../Tests/fixtures/messages_linear.yml | 2 - .../translation/Tests/fixtures/non-valid.xlf | 11 - .../translation/Tests/fixtures/non-valid.yml | 1 - .../translation/Tests/fixtures/plurals.mo | Bin 74 -> 0 bytes .../translation/Tests/fixtures/plurals.po | 5 - .../translation/Tests/fixtures/resname.xlf | 19 - .../resourcebundle/corrupted/resources.dat | 1 - .../Tests/fixtures/resourcebundle/dat/en.res | Bin 120 -> 0 bytes .../Tests/fixtures/resourcebundle/dat/en.txt | 3 - .../Tests/fixtures/resourcebundle/dat/fr.res | Bin 124 -> 0 bytes .../Tests/fixtures/resourcebundle/dat/fr.txt | 3 - .../resourcebundle/dat/packagelist.txt | 2 - .../fixtures/resourcebundle/dat/resources.dat | Bin 352 -> 0 bytes .../Tests/fixtures/resourcebundle/res/en.res | Bin 84 -> 0 bytes .../Tests/fixtures/resources-2.0-clean.xlf | 23 - .../Tests/fixtures/resources-2.0.xlf | 25 - .../Tests/fixtures/resources-clean.xlf | 25 - .../Tests/fixtures/resources-notes-meta.xlf | 26 - .../fixtures/resources-target-attributes.xlf | 14 - .../Tests/fixtures/resources-tool-info.xlf | 14 - .../translation/Tests/fixtures/resources.csv | 4 - .../Tests/fixtures/resources.dump.json | 1 - .../translation/Tests/fixtures/resources.ini | 1 - .../translation/Tests/fixtures/resources.json | 3 - .../translation/Tests/fixtures/resources.mo | Bin 52 -> 0 bytes .../translation/Tests/fixtures/resources.php | 5 - .../translation/Tests/fixtures/resources.po | 8 - .../translation/Tests/fixtures/resources.ts | 10 - .../translation/Tests/fixtures/resources.xlf | 23 - .../translation/Tests/fixtures/resources.yml | 1 - .../translation/Tests/fixtures/valid.csv | 4 - .../Tests/fixtures/with-attributes.xlf | 21 - .../Tests/fixtures/withdoctype.xlf | 12 - .../translation/Tests/fixtures/withnote.xlf | 22 - vendor/symfony/translation/Translator.php | 450 - .../translation/TranslatorBagInterface.php | 33 - .../translation/TranslatorInterface.php | 67 - .../translation/Util/ArrayConverter.php | 99 - .../translation/Writer/TranslationWriter.php | 103 - .../Writer/TranslationWriterInterface.php | 34 - vendor/symfony/translation/composer.json | 52 - vendor/symfony/translation/phpunit.xml.dist | 30 - vendor/symfony/var-dumper/.gitignore | 3 - vendor/symfony/var-dumper/CHANGELOG.md | 13 - .../symfony/var-dumper/Caster/AmqpCaster.php | 210 - vendor/symfony/var-dumper/Caster/ArgsStub.php | 80 - vendor/symfony/var-dumper/Caster/Caster.php | 162 - .../symfony/var-dumper/Caster/ClassStub.php | 87 - .../symfony/var-dumper/Caster/ConstStub.php | 33 - .../var-dumper/Caster/CutArrayStub.php | 30 - vendor/symfony/var-dumper/Caster/CutStub.php | 59 - .../symfony/var-dumper/Caster/DOMCaster.php | 302 - .../symfony/var-dumper/Caster/DateCaster.php | 129 - .../var-dumper/Caster/DoctrineCaster.php | 60 - vendor/symfony/var-dumper/Caster/EnumStub.php | 30 - .../var-dumper/Caster/ExceptionCaster.php | 349 - .../symfony/var-dumper/Caster/FrameStub.php | 30 - vendor/symfony/var-dumper/Caster/LinkStub.php | 108 - .../symfony/var-dumper/Caster/MongoCaster.php | 38 - .../symfony/var-dumper/Caster/PdoCaster.php | 120 - .../symfony/var-dumper/Caster/PgSqlCaster.php | 154 - .../symfony/var-dumper/Caster/RedisCaster.php | 77 - .../var-dumper/Caster/ReflectionCaster.php | 336 - .../var-dumper/Caster/ResourceCaster.php | 72 - .../symfony/var-dumper/Caster/SplCaster.php | 207 - .../symfony/var-dumper/Caster/StubCaster.php | 82 - .../var-dumper/Caster/SymfonyCaster.php | 43 - .../symfony/var-dumper/Caster/TraceStub.php | 36 - .../var-dumper/Caster/XmlReaderCaster.php | 77 - .../var-dumper/Caster/XmlResourceCaster.php | 61 - .../var-dumper/Cloner/AbstractCloner.php | 331 - .../var-dumper/Cloner/ClonerInterface.php | 27 - vendor/symfony/var-dumper/Cloner/Cursor.php | 43 - vendor/symfony/var-dumper/Cloner/Data.php | 437 - .../var-dumper/Cloner/DumperInterface.php | 60 - vendor/symfony/var-dumper/Cloner/Stub.php | 57 - .../symfony/var-dumper/Cloner/VarCloner.php | 327 - .../var-dumper/Dumper/AbstractDumper.php | 211 - .../symfony/var-dumper/Dumper/CliDumper.php | 539 - .../var-dumper/Dumper/DataDumperInterface.php | 24 - .../symfony/var-dumper/Dumper/HtmlDumper.php | 897 - .../Exception/ThrowingCasterException.php | 26 - vendor/symfony/var-dumper/LICENSE | 19 - vendor/symfony/var-dumper/README.md | 15 - .../var-dumper/Resources/functions/dump.php | 30 - .../var-dumper/Test/VarDumperTestTrait.php | 60 - .../var-dumper/Tests/Caster/CasterTest.php | 181 - .../Tests/Caster/DateCasterTest.php | 426 - .../Tests/Caster/ExceptionCasterTest.php | 226 - .../var-dumper/Tests/Caster/PdoCasterTest.php | 64 - .../Tests/Caster/RedisCasterTest.php | 84 - .../Tests/Caster/ReflectionCasterTest.php | 242 - .../var-dumper/Tests/Caster/SplCasterTest.php | 147 - .../Tests/Caster/StubCasterTest.php | 192 - .../Tests/Caster/XmlReaderCasterTest.php | 248 - .../var-dumper/Tests/Cloner/DataTest.php | 115 - .../var-dumper/Tests/Cloner/VarClonerTest.php | 437 - .../var-dumper/Tests/Dumper/CliDumperTest.php | 591 - .../Tests/Dumper/HtmlDumperTest.php | 164 - .../Tests/Fixtures/FooInterface.php | 11 - .../Tests/Fixtures/GeneratorDemo.php | 21 - .../Tests/Fixtures/NotLoadableClass.php | 7 - .../var-dumper/Tests/Fixtures/Twig.php | 38 - .../var-dumper/Tests/Fixtures/dumb-var.php | 40 - .../var-dumper/Tests/Fixtures/xml_reader.xml | 10 - .../Tests/Test/VarDumperTestTraitTest.php | 41 - vendor/symfony/var-dumper/VarDumper.php | 48 - vendor/symfony/var-dumper/composer.json | 47 - vendor/symfony/var-dumper/phpunit.xml.dist | 33 - vendor/theseer/tokenizer/.gitignore | 7 - vendor/theseer/tokenizer/.php_cs | 67 - vendor/theseer/tokenizer/.travis.yml | 33 - vendor/theseer/tokenizer/LICENSE | 30 - vendor/theseer/tokenizer/README.md | 49 - vendor/theseer/tokenizer/build.xml | 41 - vendor/theseer/tokenizer/composer.json | 27 - vendor/theseer/tokenizer/phive.xml | 5 - vendor/theseer/tokenizer/phpunit.xml | 25 - vendor/theseer/tokenizer/src/Exception.php | 6 - vendor/theseer/tokenizer/src/NamespaceUri.php | 28 - .../tokenizer/src/NamespaceUriException.php | 6 - vendor/theseer/tokenizer/src/Token.php | 55 - .../theseer/tokenizer/src/TokenCollection.php | 128 - .../src/TokenCollectionException.php | 6 - vendor/theseer/tokenizer/src/Tokenizer.php | 82 - .../theseer/tokenizer/src/XMLSerializer.php | 94 - .../tokenizer/tests/NamespaceUriTest.php | 29 - .../tokenizer/tests/TokenCollectionTest.php | 72 - vendor/theseer/tokenizer/tests/TokenTest.php | 31 - .../theseer/tokenizer/tests/TokenizerTest.php | 21 - .../tokenizer/tests/XMLSerializerTest.php | 43 - .../tokenizer/tests/_files/customns.xml | 177 - .../theseer/tokenizer/tests/_files/test.php | 25 - .../tokenizer/tests/_files/test.php.tokens | Bin 29474 -> 0 bytes .../tokenizer/tests/_files/test.php.xml | 177 - .../css-to-inline-styles/LICENSE.md | 23 - .../css-to-inline-styles/composer.json | 31 - .../css-to-inline-styles/phpunit.xml.dist | 18 - .../src/Css/Processor.php | 68 - .../src/Css/Property/Processor.php | 122 - .../src/Css/Property/Property.php | 90 - .../src/Css/Rule/Processor.php | 155 - .../src/Css/Rule/Rule.php | 84 - .../src/CssToInlineStyles.php | 235 - vendor/vlucas/phpdotenv/LICENSE.txt | 32 - vendor/vlucas/phpdotenv/composer.json | 29 - vendor/vlucas/phpdotenv/src/Dotenv.php | 105 - .../src/Exception/ExceptionInterface.php | 11 - .../Exception/InvalidCallbackException.php | 13 - .../src/Exception/InvalidFileException.php | 13 - .../src/Exception/InvalidPathException.php | 13 - .../src/Exception/ValidationException.php | 13 - vendor/vlucas/phpdotenv/src/Loader.php | 381 - vendor/vlucas/phpdotenv/src/Validator.php | 130 - vendor/webmozart/assert/.composer-auth.json | 7 - vendor/webmozart/assert/.styleci.yml | 11 - vendor/webmozart/assert/CHANGELOG.md | 53 - vendor/webmozart/assert/LICENSE | 20 - vendor/webmozart/assert/README.md | 252 - vendor/webmozart/assert/composer.json | 34 - vendor/webmozart/assert/src/Assert.php | 1087 -- webpack.mix.js | 19 - 6771 files changed, 39 insertions(+), 760415 deletions(-) delete mode 100644 .env delete mode 100644 .env.example delete mode 100644 .gitattributes delete mode 100644 .gitignore delete mode 100644 CHANGELOG.md delete mode 100644 LICENSE delete mode 100644 _config.yml delete mode 100644 app/Console/Kernel.php delete mode 100644 app/Exceptions/Handler.php delete mode 100644 app/Helper.php delete mode 100644 app/Http/Controllers/Auth/ForgotPasswordController.php delete mode 100644 app/Http/Controllers/Auth/LoginController.php delete mode 100644 app/Http/Controllers/Auth/RegisterController.php delete mode 100644 app/Http/Controllers/Auth/ResetPasswordController.php delete mode 100644 app/Http/Controllers/Controller.php delete mode 100644 app/Http/Controllers/ItemController.php delete mode 100644 app/Http/Controllers/SettingsController.php delete mode 100644 app/Http/Kernel.php delete mode 100644 app/Http/Middleware/EncryptCookies.php delete mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php delete mode 100644 app/Http/Middleware/TrimStrings.php delete mode 100644 app/Http/Middleware/TrustProxies.php delete mode 100644 app/Http/Middleware/VerifyCsrfToken.php delete mode 100644 app/Item.php delete mode 100644 app/Providers/AppServiceProvider.php delete mode 100644 app/Providers/AuthServiceProvider.php delete mode 100644 app/Providers/BroadcastServiceProvider.php delete mode 100644 app/Providers/EventServiceProvider.php delete mode 100644 app/Providers/RouteServiceProvider.php delete mode 100644 app/Setting.php delete mode 100644 app/SettingGroup.php delete mode 100644 app/SupportedApps/Contracts/Applications.php delete mode 100644 app/SupportedApps/Contracts/Livestats.php delete mode 100644 app/SupportedApps/Duplicati.php delete mode 100644 app/SupportedApps/Emby.php delete mode 100644 app/SupportedApps/Nextcloud.php delete mode 100644 app/SupportedApps/Nzbget.php delete mode 100644 app/SupportedApps/Pfsense.php delete mode 100644 app/SupportedApps/Pihole.php delete mode 100644 app/SupportedApps/Plex.php delete mode 100644 app/SupportedApps/Plexpy.php delete mode 100644 app/SupportedApps/Portainer.php delete mode 100644 app/SupportedApps/Sabnzbd.php delete mode 100644 app/SupportedApps/Unifi.php delete mode 100644 app/User.php delete mode 100755 artisan delete mode 100644 bootstrap/app.php delete mode 100644 bootstrap/cache/.gitignore delete mode 100644 composer.json delete mode 100644 composer.lock delete mode 100644 config/app.php delete mode 100644 config/auth.php delete mode 100644 config/broadcasting.php delete mode 100644 config/cache.php delete mode 100644 config/database.php delete mode 100644 config/filesystems.php delete mode 100644 config/mail.php delete mode 100644 config/queue.php delete mode 100644 config/services.php delete mode 100644 config/session.php delete mode 100644 config/view.php delete mode 100644 database/.gitignore delete mode 100644 database/factories/UserFactory.php delete mode 100644 database/migrations/2018_01_27_155922_create_items_table.php delete mode 100644 database/migrations/2018_02_04_185524_create_settings_table.php delete mode 100644 database/migrations/2018_02_04_185802_create_setting_groups_table.php delete mode 100644 database/seeds/DatabaseSeeder.php delete mode 100644 database/seeds/SettingsSeeder.php create mode 100644 index.html delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 phpunit.xml delete mode 100644 public/.htaccess delete mode 100644 public/android-icon-144x144.png delete mode 100644 public/android-icon-192x192.png delete mode 100644 public/android-icon-36x36.png delete mode 100644 public/android-icon-48x48.png delete mode 100644 public/android-icon-72x72.png delete mode 100644 public/android-icon-96x96.png delete mode 100644 public/apple-icon-114x114.png delete mode 100644 public/apple-icon-120x120.png delete mode 100644 public/apple-icon-144x144.png delete mode 100644 public/apple-icon-152x152.png delete mode 100644 public/apple-icon-180x180.png delete mode 100644 public/apple-icon-57x57.png delete mode 100644 public/apple-icon-60x60.png delete mode 100644 public/apple-icon-72x72.png delete mode 100644 public/apple-icon-76x76.png delete mode 100644 public/apple-icon-precomposed.png delete mode 100644 public/apple-icon.png delete mode 100644 public/browserconfig.xml delete mode 100644 public/css/app.css delete mode 100644 public/favicon-16x16.png delete mode 100644 public/favicon-32x32.png delete mode 100644 public/favicon-96x96.png delete mode 100644 public/favicon.ico delete mode 100644 public/img/bg1.jpg delete mode 100644 public/img/heimdall-icon-small.png delete mode 100644 public/img/yggdrasil.svg delete mode 100644 public/index.php delete mode 100644 public/js/app.js delete mode 100644 public/js/jquery-3.3.1.min.js delete mode 100644 public/manifest.json delete mode 100644 public/mix-manifest.json delete mode 100644 public/ms-icon-144x144.png delete mode 100644 public/ms-icon-150x150.png delete mode 100644 public/ms-icon-310x310.png delete mode 100644 public/ms-icon-70x70.png delete mode 100644 public/robots.txt delete mode 100644 public/web.config delete mode 100644 public/webfonts/._fa-brands-400.eot delete mode 100644 public/webfonts/._fa-brands-400.svg delete mode 100644 public/webfonts/._fa-brands-400.ttf delete mode 100644 public/webfonts/._fa-brands-400.woff delete mode 100644 public/webfonts/._fa-brands-400.woff2 delete mode 100644 public/webfonts/._fa-light-300.eot delete mode 100644 public/webfonts/._fa-light-300.svg delete mode 100644 public/webfonts/._fa-light-300.ttf delete mode 100644 public/webfonts/._fa-light-300.woff delete mode 100644 public/webfonts/._fa-light-300.woff2 delete mode 100644 public/webfonts/._fa-regular-400.eot delete mode 100644 public/webfonts/._fa-regular-400.svg delete mode 100644 public/webfonts/._fa-regular-400.ttf delete mode 100644 public/webfonts/._fa-regular-400.woff delete mode 100644 public/webfonts/._fa-regular-400.woff2 delete mode 100644 public/webfonts/._fa-solid-900.eot delete mode 100644 public/webfonts/._fa-solid-900.svg delete mode 100644 public/webfonts/._fa-solid-900.ttf delete mode 100644 public/webfonts/._fa-solid-900.woff delete mode 100644 public/webfonts/._fa-solid-900.woff2 delete mode 100644 public/webfonts/fa-brands-400.eot delete mode 100644 public/webfonts/fa-brands-400.svg delete mode 100644 public/webfonts/fa-brands-400.ttf delete mode 100644 public/webfonts/fa-brands-400.woff delete mode 100644 public/webfonts/fa-brands-400.woff2 delete mode 100644 public/webfonts/fa-light-300.eot delete mode 100644 public/webfonts/fa-light-300.svg delete mode 100644 public/webfonts/fa-light-300.ttf delete mode 100644 public/webfonts/fa-light-300.woff delete mode 100644 public/webfonts/fa-light-300.woff2 delete mode 100644 public/webfonts/fa-regular-400.eot delete mode 100644 public/webfonts/fa-regular-400.svg delete mode 100644 public/webfonts/fa-regular-400.ttf delete mode 100644 public/webfonts/fa-regular-400.woff delete mode 100644 public/webfonts/fa-regular-400.woff2 delete mode 100644 public/webfonts/fa-solid-900.eot delete mode 100644 public/webfonts/fa-solid-900.svg delete mode 100644 public/webfonts/fa-solid-900.ttf delete mode 100644 public/webfonts/fa-solid-900.woff delete mode 100644 public/webfonts/fa-solid-900.woff2 delete mode 100644 readme.md delete mode 100644 resources/assets/js/app.js delete mode 100644 resources/assets/js/bootstrap.js delete mode 100644 resources/assets/js/components/ExampleComponent.vue delete mode 100644 resources/assets/js/huebee.js delete mode 100644 resources/assets/js/jquery-ui.min.js delete mode 100644 resources/assets/sass/_app.scss delete mode 100644 resources/assets/sass/_huebee.scss delete mode 100644 resources/assets/sass/_normalise.scss delete mode 100644 resources/assets/sass/_variables.scss delete mode 100644 resources/assets/sass/app.scss delete mode 100644 resources/assets/sass/fontawesome/.__animated.scss delete mode 100644 resources/assets/sass/fontawesome/.__bordered-pulled.scss delete mode 100644 resources/assets/sass/fontawesome/.__core.scss delete mode 100644 resources/assets/sass/fontawesome/.__fixed-width.scss delete mode 100644 resources/assets/sass/fontawesome/.__icons.scss delete mode 100644 resources/assets/sass/fontawesome/.__larger.scss delete mode 100644 resources/assets/sass/fontawesome/.__list.scss delete mode 100644 resources/assets/sass/fontawesome/.__mixins.scss delete mode 100644 resources/assets/sass/fontawesome/.__rotated-flipped.scss delete mode 100644 resources/assets/sass/fontawesome/.__screen-reader.scss delete mode 100644 resources/assets/sass/fontawesome/.__stacked.scss delete mode 100644 resources/assets/sass/fontawesome/.__variables.scss delete mode 100644 resources/assets/sass/fontawesome/._fa-brands.scss delete mode 100644 resources/assets/sass/fontawesome/._fa-light.scss delete mode 100644 resources/assets/sass/fontawesome/._fa-regular.scss delete mode 100644 resources/assets/sass/fontawesome/._fa-solid.scss delete mode 100644 resources/assets/sass/fontawesome/._fontawesome.scss delete mode 100644 resources/assets/sass/fontawesome/_animated.scss delete mode 100644 resources/assets/sass/fontawesome/_bordered-pulled.scss delete mode 100644 resources/assets/sass/fontawesome/_core.scss delete mode 100644 resources/assets/sass/fontawesome/_fixed-width.scss delete mode 100644 resources/assets/sass/fontawesome/_icons.scss delete mode 100644 resources/assets/sass/fontawesome/_larger.scss delete mode 100644 resources/assets/sass/fontawesome/_list.scss delete mode 100644 resources/assets/sass/fontawesome/_mixins.scss delete mode 100644 resources/assets/sass/fontawesome/_rotated-flipped.scss delete mode 100644 resources/assets/sass/fontawesome/_screen-reader.scss delete mode 100644 resources/assets/sass/fontawesome/_stacked.scss delete mode 100644 resources/assets/sass/fontawesome/_variables.scss delete mode 100644 resources/assets/sass/fontawesome/fa-brands.scss delete mode 100644 resources/assets/sass/fontawesome/fa-light.scss delete mode 100644 resources/assets/sass/fontawesome/fa-regular.scss delete mode 100644 resources/assets/sass/fontawesome/fa-solid.scss delete mode 100644 resources/assets/sass/fontawesome/fontawesome.scss delete mode 100644 resources/lang/de/app.php delete mode 100644 resources/lang/en/app.php delete mode 100644 resources/lang/en/auth.php delete mode 100644 resources/lang/en/pagination.php delete mode 100644 resources/lang/en/passwords.php delete mode 100644 resources/lang/en/validation.php delete mode 100644 resources/lang/es/app.php delete mode 100644 resources/lang/fi/app.php delete mode 100644 resources/lang/fr/app.php delete mode 100644 resources/lang/sv/app.php delete mode 100644 resources/lang/tr/app.php delete mode 100644 resources/lang/tr/auth.php delete mode 100644 resources/lang/tr/pagination.php delete mode 100644 resources/lang/tr/passwords.php delete mode 100644 resources/lang/tr/validation.php delete mode 100644 resources/views/add.blade.php delete mode 100644 resources/views/app.blade.php delete mode 100644 resources/views/item.blade.php delete mode 100644 resources/views/items/create.blade.php delete mode 100644 resources/views/items/edit.blade.php delete mode 100644 resources/views/items/form.blade.php delete mode 100644 resources/views/items/list.blade.php delete mode 100644 resources/views/items/scripts.blade.php delete mode 100644 resources/views/items/trash.blade.php delete mode 100644 resources/views/partials/search.blade.php delete mode 100644 resources/views/settings/edit.blade.php delete mode 100644 resources/views/settings/form.blade.php delete mode 100644 resources/views/settings/list.blade.php delete mode 100644 resources/views/sortable.blade.php delete mode 100644 resources/views/supportedapps/nzbget.blade.php delete mode 100644 resources/views/supportedapps/pihole.blade.php delete mode 100644 resources/views/supportedapps/sabnzbd.blade.php delete mode 100644 resources/views/welcome.blade.php delete mode 100644 routes/api.php delete mode 100644 routes/channels.php delete mode 100644 routes/console.php delete mode 100644 routes/web.php delete mode 100644 server.php delete mode 100644 storage/app/.gitignore delete mode 100644 storage/app/public/.gitignore delete mode 100644 storage/app/public/supportedapps/duplicati.png delete mode 100644 storage/app/public/supportedapps/emby.png delete mode 100644 storage/app/public/supportedapps/nextcloud.png delete mode 100644 storage/app/public/supportedapps/nzbget.png delete mode 100644 storage/app/public/supportedapps/pfsense.png delete mode 100644 storage/app/public/supportedapps/pihole.png delete mode 100644 storage/app/public/supportedapps/plex.png delete mode 100644 storage/app/public/supportedapps/plexpy.png delete mode 100644 storage/app/public/supportedapps/portainer.png delete mode 100644 storage/app/public/supportedapps/sabnzbd.png delete mode 100644 storage/app/public/supportedapps/unifi.png delete mode 100644 storage/framework/.gitignore delete mode 100644 storage/framework/cache/.gitignore delete mode 100644 storage/framework/sessions/.gitignore delete mode 100644 storage/framework/testing/.gitignore delete mode 100644 storage/framework/views/.gitignore delete mode 100644 storage/logs/.gitignore delete mode 100644 tests/CreatesApplication.php delete mode 100644 tests/Feature/ExampleTest.php delete mode 100644 tests/TestCase.php delete mode 100644 tests/Unit/ExampleTest.php delete mode 100644 vendor/autoload.php delete mode 120000 vendor/bin/php-parse delete mode 120000 vendor/bin/phpunit delete mode 120000 vendor/bin/psysh delete mode 100644 vendor/composer/ClassLoader.php delete mode 100644 vendor/composer/LICENSE delete mode 100644 vendor/composer/autoload_classmap.php delete mode 100644 vendor/composer/autoload_files.php delete mode 100644 vendor/composer/autoload_namespaces.php delete mode 100644 vendor/composer/autoload_psr4.php delete mode 100644 vendor/composer/autoload_real.php delete mode 100644 vendor/composer/autoload_static.php delete mode 100644 vendor/composer/installed.json delete mode 100644 vendor/dnoegel/php-xdg-base-dir/.gitignore delete mode 100644 vendor/dnoegel/php-xdg-base-dir/LICENSE delete mode 100644 vendor/dnoegel/php-xdg-base-dir/README.md delete mode 100644 vendor/dnoegel/php-xdg-base-dir/composer.json delete mode 100644 vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist delete mode 100644 vendor/dnoegel/php-xdg-base-dir/src/Xdg.php delete mode 100644 vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php delete mode 100644 vendor/doctrine/inflector/LICENSE delete mode 100644 vendor/doctrine/inflector/README.md delete mode 100644 vendor/doctrine/inflector/composer.json delete mode 100644 vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php delete mode 100644 vendor/doctrine/instantiator/.gitignore delete mode 100644 vendor/doctrine/instantiator/.scrutinizer.yml delete mode 100644 vendor/doctrine/instantiator/.travis.install.sh delete mode 100644 vendor/doctrine/instantiator/.travis.yml delete mode 100644 vendor/doctrine/instantiator/CONTRIBUTING.md delete mode 100644 vendor/doctrine/instantiator/LICENSE delete mode 100644 vendor/doctrine/instantiator/README.md delete mode 100644 vendor/doctrine/instantiator/composer.json delete mode 100644 vendor/doctrine/instantiator/phpmd.xml.dist delete mode 100644 vendor/doctrine/instantiator/phpunit.xml.dist delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorPerformance/InstantiatorPerformanceEvent.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/InvalidArgumentExceptionTest.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/UnexpectedValueExceptionTest.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ArrayObjectAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ExceptionAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/FinalExceptionAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharExceptionAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SerializableArrayObjectAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleSerializableAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleTraitAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnCloneableAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnserializeExceptionArrayObjectAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/WakeUpNoticesAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/XMLReaderAsset.php delete mode 100644 vendor/doctrine/lexer/LICENSE delete mode 100644 vendor/doctrine/lexer/README.md delete mode 100644 vendor/doctrine/lexer/composer.json delete mode 100644 vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/EmailLexer.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/EmailParser.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/EmailValidator.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CRLFX2.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CRNoLF.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/DotAtStart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Parser/Parser.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/Comment.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/TLD.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/Warning.php delete mode 100644 vendor/egulias/email-validator/LICENSE delete mode 100644 vendor/egulias/email-validator/README.md delete mode 100644 vendor/egulias/email-validator/composer.json delete mode 100644 vendor/egulias/email-validator/composer.lock delete mode 100644 vendor/egulias/email-validator/phpunit.xml.dist delete mode 100644 vendor/erusev/parsedown/LICENSE.txt delete mode 100644 vendor/erusev/parsedown/Parsedown.php delete mode 100644 vendor/erusev/parsedown/README.md delete mode 100644 vendor/erusev/parsedown/composer.json delete mode 100644 vendor/fideloper/proxy/LICENSE.md delete mode 100755 vendor/fideloper/proxy/composer.json delete mode 100644 vendor/fideloper/proxy/config/trustedproxy.php delete mode 100644 vendor/fideloper/proxy/src/TrustProxies.php delete mode 100644 vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php delete mode 100644 vendor/filp/whoops/CHANGELOG.md delete mode 100644 vendor/filp/whoops/LICENSE.md delete mode 100644 vendor/filp/whoops/composer.json delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/ErrorException.php delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/Formatter.php delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/Frame.php delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/Inspector.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/Handler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/js/prettify.min.js delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/js/whoops.base.js delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/header.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Run.php delete mode 100644 vendor/filp/whoops/src/Whoops/RunInterface.php delete mode 100644 vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php delete mode 100644 vendor/filp/whoops/src/Whoops/Util/Misc.php delete mode 100644 vendor/filp/whoops/src/Whoops/Util/SystemFacade.php delete mode 100644 vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php delete mode 100644 vendor/fzaninotto/faker/.gitignore delete mode 100644 vendor/fzaninotto/faker/.travis.yml delete mode 100644 vendor/fzaninotto/faker/CHANGELOG.md delete mode 100644 vendor/fzaninotto/faker/CONTRIBUTING.md delete mode 100644 vendor/fzaninotto/faker/LICENSE delete mode 100644 vendor/fzaninotto/faker/Makefile delete mode 100644 vendor/fzaninotto/faker/composer.json delete mode 100644 vendor/fzaninotto/faker/phpunit.xml.dist delete mode 100644 vendor/fzaninotto/faker/readme.md delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/Inn.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Documentor.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Factory.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Generator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Guesser/Name.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Base.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Biased.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/File.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Image.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/Utils.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_CA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_CA/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_PE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_RS/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_RS/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ValidGenerator.php delete mode 100644 vendor/fzaninotto/faker/src/autoload.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Calculator/IbanTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Calculator/InnTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/GeneratorTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/HtmlLoremTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ar_JO/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ar_SA/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/bn_BD/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/cs_CZ/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/da_DK/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_CH/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_CH/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_CH/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_DE/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_AU/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_CA/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_GB/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_IN/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NG/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NG/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NZ/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_PH/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_SG/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_SG/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_UG/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_US/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_US/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_US/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_ES/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_PE/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_BE/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_CH/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_CH/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_CH/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_IT/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_IT/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/mn_MN/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/documentor.php delete mode 100644 vendor/fzaninotto/faker/test/test.php delete mode 100644 vendor/guzzlehttp/guzzle/CHANGELOG.md delete mode 100644 vendor/guzzlehttp/guzzle/LICENSE delete mode 100644 vendor/guzzlehttp/guzzle/README.md delete mode 100644 vendor/guzzlehttp/guzzle/UPGRADING.md delete mode 100644 vendor/guzzlehttp/guzzle/composer.json delete mode 100644 vendor/guzzlehttp/guzzle/src/Client.php delete mode 100644 vendor/guzzlehttp/guzzle/src/ClientInterface.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ClientException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/RequestException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/SeekException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ServerException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/TransferException.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/Proxy.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php delete mode 100644 vendor/guzzlehttp/guzzle/src/HandlerStack.php delete mode 100644 vendor/guzzlehttp/guzzle/src/MessageFormatter.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Middleware.php delete mode 100644 vendor/guzzlehttp/guzzle/src/Pool.php delete mode 100644 vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php delete mode 100644 vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php delete mode 100644 vendor/guzzlehttp/guzzle/src/RequestOptions.php delete mode 100644 vendor/guzzlehttp/guzzle/src/RetryMiddleware.php delete mode 100644 vendor/guzzlehttp/guzzle/src/TransferStats.php delete mode 100644 vendor/guzzlehttp/guzzle/src/UriTemplate.php delete mode 100644 vendor/guzzlehttp/guzzle/src/functions.php delete mode 100644 vendor/guzzlehttp/guzzle/src/functions_include.php delete mode 100644 vendor/guzzlehttp/promises/CHANGELOG.md delete mode 100644 vendor/guzzlehttp/promises/LICENSE delete mode 100644 vendor/guzzlehttp/promises/Makefile delete mode 100644 vendor/guzzlehttp/promises/README.md delete mode 100644 vendor/guzzlehttp/promises/composer.json delete mode 100644 vendor/guzzlehttp/promises/src/AggregateException.php delete mode 100644 vendor/guzzlehttp/promises/src/CancellationException.php delete mode 100644 vendor/guzzlehttp/promises/src/Coroutine.php delete mode 100644 vendor/guzzlehttp/promises/src/EachPromise.php delete mode 100644 vendor/guzzlehttp/promises/src/FulfilledPromise.php delete mode 100644 vendor/guzzlehttp/promises/src/Promise.php delete mode 100644 vendor/guzzlehttp/promises/src/PromiseInterface.php delete mode 100644 vendor/guzzlehttp/promises/src/PromisorInterface.php delete mode 100644 vendor/guzzlehttp/promises/src/RejectedPromise.php delete mode 100644 vendor/guzzlehttp/promises/src/RejectionException.php delete mode 100644 vendor/guzzlehttp/promises/src/TaskQueue.php delete mode 100644 vendor/guzzlehttp/promises/src/TaskQueueInterface.php delete mode 100644 vendor/guzzlehttp/promises/src/functions.php delete mode 100644 vendor/guzzlehttp/promises/src/functions_include.php delete mode 100644 vendor/guzzlehttp/psr7/CHANGELOG.md delete mode 100644 vendor/guzzlehttp/psr7/LICENSE delete mode 100644 vendor/guzzlehttp/psr7/README.md delete mode 100644 vendor/guzzlehttp/psr7/composer.json delete mode 100644 vendor/guzzlehttp/psr7/src/AppendStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/BufferStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/CachingStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/DroppingStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/FnStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/InflateStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/LazyOpenStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/LimitStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/MessageTrait.php delete mode 100644 vendor/guzzlehttp/psr7/src/MultipartStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/NoSeekStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/PumpStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/Request.php delete mode 100644 vendor/guzzlehttp/psr7/src/Response.php delete mode 100644 vendor/guzzlehttp/psr7/src/ServerRequest.php delete mode 100644 vendor/guzzlehttp/psr7/src/Stream.php delete mode 100644 vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php delete mode 100644 vendor/guzzlehttp/psr7/src/StreamWrapper.php delete mode 100644 vendor/guzzlehttp/psr7/src/UploadedFile.php delete mode 100644 vendor/guzzlehttp/psr7/src/Uri.php delete mode 100644 vendor/guzzlehttp/psr7/src/UriNormalizer.php delete mode 100644 vendor/guzzlehttp/psr7/src/UriResolver.php delete mode 100644 vendor/guzzlehttp/psr7/src/functions.php delete mode 100644 vendor/guzzlehttp/psr7/src/functions_include.php delete mode 100644 vendor/hamcrest/hamcrest-php/.coveralls.yml delete mode 100644 vendor/hamcrest/hamcrest-php/.gitignore delete mode 100644 vendor/hamcrest/hamcrest-php/.gush.yml delete mode 100644 vendor/hamcrest/hamcrest-php/.travis.yml delete mode 100644 vendor/hamcrest/hamcrest-php/CHANGES.txt delete mode 100644 vendor/hamcrest/hamcrest-php/LICENSE.txt delete mode 100644 vendor/hamcrest/hamcrest-php/README.md delete mode 100644 vendor/hamcrest/hamcrest-php/TODO.txt delete mode 100644 vendor/hamcrest/hamcrest-php/composer.json delete mode 100644 vendor/hamcrest/hamcrest-php/composer.lock delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryCall.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryClass.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryFile.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/functions_footer.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/functions_header.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/run.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayWithSizeTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/BaseMatcherTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsEmptyTraversableTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsTraversableWithSizeTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AllOfTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AnyOfTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/CombinableMatcherTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/DescribedAsTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/EveryTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/HasToStringTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsAnythingTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsEqualTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsIdenticalTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsInstanceOfTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNotTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNullTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsSameTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTypeOfTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleBaseClass.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleSubClass.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SetTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/FeatureMatcherTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/MatcherAssertTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/IsCloseToTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/OrderingComparisonTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/StringDescriptionTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEmptyStringTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringCaseTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringWhiteSpaceTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/MatchesPatternTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsIgnoringCaseTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsInOrderTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringEndsWithTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringStartsWithTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsArrayTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsBooleanTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsCallableTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsDoubleTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsIntegerTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsNumericTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsObjectTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsResourceTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsScalarTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsStringTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/UtilTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Xml/HasXPathTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/bootstrap.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/phpunit.xml.dist delete mode 100644 vendor/jakub-onderka/php-console-color/.gitignore delete mode 100644 vendor/jakub-onderka/php-console-color/.travis.yml delete mode 100644 vendor/jakub-onderka/php-console-color/build.xml delete mode 100644 vendor/jakub-onderka/php-console-color/composer.json delete mode 100644 vendor/jakub-onderka/php-console-color/example.php delete mode 100644 vendor/jakub-onderka/php-console-color/phpunit.xml delete mode 100644 vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php delete mode 100644 vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php delete mode 100644 vendor/jakub-onderka/php-console-color/tests/JakubOnderka/PhpConsoleColor/ConsoleColorTest.php delete mode 100644 vendor/jakub-onderka/php-console-color/tests/bootstrap.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/.gitignore delete mode 100644 vendor/jakub-onderka/php-console-highlighter/.travis.yml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/LICENSE delete mode 100644 vendor/jakub-onderka/php-console-highlighter/README.md delete mode 100644 vendor/jakub-onderka/php-console-highlighter/build.xml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/composer.json delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/snippet.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/phpunit.xml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php delete mode 100644 vendor/laravel/framework/LICENSE.md delete mode 100644 vendor/laravel/framework/README.md delete mode 100644 vendor/laravel/framework/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Access/Response.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Recaller.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/Queueable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/FileStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Lock.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/NullStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/Repository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/TagSet.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/TaggedCache.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Config/Repository.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Config/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Console/Application.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Console/Command.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Parser.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheMutex.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/Mutex.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Console/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Container/Container.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Container/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Store.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Config/Repository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Console/Application.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Container/Container.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Logging/Log.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Job.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Session/Session.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/View/Engine.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/View/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/View/View.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Cookie/CookieJar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cookie/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connection.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/ConnectionResolver.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Grammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/create.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/QueryException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/README.md delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Seeder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Encryption/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Events/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/Application.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event-handler-queued.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event-handler.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-render-report.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-render.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-report.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/job-queued.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/job.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-duck.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-queued-duck.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-queued.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/mail.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/notification.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/pivot.model.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/policy.plain.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/policy.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/provider.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/request.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/resource-collection.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/resource.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/routes.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/test.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/helpers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Hashing/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/File.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/FileHelpers.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Request.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Http/Response.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Testing/File.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Http/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Log/Writer.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Log/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Mailable.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Mail/Mailer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Markdown.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Mail/Message.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Mail/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/button.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/footer.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/header.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/layout.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/message.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/panel.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion/button.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/subcopy.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/table.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Action.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Notification.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Pagination/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/FailingJob.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Listener.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/NullQueue.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Queue.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/README.md delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Worker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Redis/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.model.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.nested.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.plain.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/middleware.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Controller.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/Redirector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/Route.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Router.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ViewController.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/SessionManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/Store.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Arr.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Carbon.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Collection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Composer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/App.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Artisan.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Bus.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Config.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Cookie.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/File.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Gate.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Hash.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Input.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Notification.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Queue.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Redirect.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Redis.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Response.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/View.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Fluent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/HtmlString.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Manager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/MessageBag.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Optional.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/ProcessUtils.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Str.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/helpers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/Translator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/Factory.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/Validator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Factory.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/View.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/ViewName.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/composer.json delete mode 100644 vendor/laravel/tinker/LICENSE.txt delete mode 100644 vendor/laravel/tinker/README.md delete mode 100644 vendor/laravel/tinker/composer.json delete mode 100644 vendor/laravel/tinker/src/ClassAliasAutoloader.php delete mode 100644 vendor/laravel/tinker/src/Console/TinkerCommand.php delete mode 100644 vendor/laravel/tinker/src/TinkerCaster.php delete mode 100644 vendor/laravel/tinker/src/TinkerServiceProvider.php delete mode 100755 vendor/laravelcollective/html/CONTRIBUTING.md delete mode 100644 vendor/laravelcollective/html/LICENSE.txt delete mode 100755 vendor/laravelcollective/html/composer.json delete mode 100644 vendor/laravelcollective/html/readme.md delete mode 100644 vendor/laravelcollective/html/src/Componentable.php delete mode 100644 vendor/laravelcollective/html/src/Eloquent/FormAccessible.php delete mode 100644 vendor/laravelcollective/html/src/FormBuilder.php delete mode 100644 vendor/laravelcollective/html/src/FormFacade.php delete mode 100755 vendor/laravelcollective/html/src/HtmlBuilder.php delete mode 100644 vendor/laravelcollective/html/src/HtmlFacade.php delete mode 100755 vendor/laravelcollective/html/src/HtmlServiceProvider.php delete mode 100644 vendor/laravelcollective/html/src/helpers.php delete mode 100644 vendor/league/flysystem/LICENSE delete mode 100644 vendor/league/flysystem/composer.json delete mode 100644 vendor/league/flysystem/docs/.gitignore delete mode 100644 vendor/league/flysystem/docs/CNAME delete mode 100644 vendor/league/flysystem/docs/_data/images.yml delete mode 100644 vendor/league/flysystem/docs/_data/menu.yml delete mode 100644 vendor/league/flysystem/docs/_data/project.yml delete mode 100644 vendor/league/flysystem/docs/_layouts/default.html delete mode 100644 vendor/league/flysystem/docs/adapter/aws-s3-v2.md delete mode 100644 vendor/league/flysystem/docs/adapter/aws-s3-v3.md delete mode 100644 vendor/league/flysystem/docs/adapter/azure.md delete mode 100644 vendor/league/flysystem/docs/adapter/copy.md delete mode 100644 vendor/league/flysystem/docs/adapter/digitalocean-spaces.md delete mode 100644 vendor/league/flysystem/docs/adapter/dropbox.md delete mode 100644 vendor/league/flysystem/docs/adapter/ftp.md delete mode 100644 vendor/league/flysystem/docs/adapter/gridfs.md delete mode 100644 vendor/league/flysystem/docs/adapter/local.md delete mode 100644 vendor/league/flysystem/docs/adapter/memory.md delete mode 100644 vendor/league/flysystem/docs/adapter/null-test.md delete mode 100644 vendor/league/flysystem/docs/adapter/phpcr.md delete mode 100644 vendor/league/flysystem/docs/adapter/rackspace.md delete mode 100644 vendor/league/flysystem/docs/adapter/replicate.md delete mode 100644 vendor/league/flysystem/docs/adapter/sftp.md delete mode 100644 vendor/league/flysystem/docs/adapter/webdav.md delete mode 100644 vendor/league/flysystem/docs/adapter/zip-archive.md delete mode 100644 vendor/league/flysystem/docs/api.md delete mode 100644 vendor/league/flysystem/docs/caching.md delete mode 100644 vendor/league/flysystem/docs/core-concepts.md delete mode 100644 vendor/league/flysystem/docs/creating-an-adapter.md delete mode 100644 vendor/league/flysystem/docs/index.md delete mode 100644 vendor/league/flysystem/docs/installation.md delete mode 100644 vendor/league/flysystem/docs/integrations.md delete mode 100644 vendor/league/flysystem/docs/logo/become_a_patron_button.png delete mode 100644 vendor/league/flysystem/docs/logo/become_a_patron_button@2x.png delete mode 100644 vendor/league/flysystem/docs/logo/become_a_patron_button@3x.png delete mode 100644 vendor/league/flysystem/docs/logo/laravel.svg delete mode 100644 vendor/league/flysystem/docs/mount-manager.md delete mode 100644 vendor/league/flysystem/docs/performance.md delete mode 100644 vendor/league/flysystem/docs/plugins.md delete mode 100644 vendor/league/flysystem/docs/recipes.md delete mode 100644 vendor/league/flysystem/docs/sponsors.md delete mode 100644 vendor/league/flysystem/docs/upgrade-to-1.0.0.md delete mode 100644 vendor/league/flysystem/src/Adapter/AbstractAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php delete mode 100644 vendor/league/flysystem/src/Adapter/Ftp.php delete mode 100644 vendor/league/flysystem/src/Adapter/Ftpd.php delete mode 100644 vendor/league/flysystem/src/Adapter/Local.php delete mode 100644 vendor/league/flysystem/src/Adapter/NullAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/SynologyFtp.php delete mode 100644 vendor/league/flysystem/src/AdapterInterface.php delete mode 100644 vendor/league/flysystem/src/Config.php delete mode 100644 vendor/league/flysystem/src/ConfigAwareTrait.php delete mode 100644 vendor/league/flysystem/src/Directory.php delete mode 100644 vendor/league/flysystem/src/Exception.php delete mode 100644 vendor/league/flysystem/src/File.php delete mode 100644 vendor/league/flysystem/src/FileExistsException.php delete mode 100644 vendor/league/flysystem/src/FileNotFoundException.php delete mode 100644 vendor/league/flysystem/src/Filesystem.php delete mode 100644 vendor/league/flysystem/src/FilesystemInterface.php delete mode 100644 vendor/league/flysystem/src/FilesystemNotFoundException.php delete mode 100644 vendor/league/flysystem/src/Handler.php delete mode 100644 vendor/league/flysystem/src/MountManager.php delete mode 100644 vendor/league/flysystem/src/NotSupportedException.php delete mode 100644 vendor/league/flysystem/src/Plugin/AbstractPlugin.php delete mode 100644 vendor/league/flysystem/src/Plugin/EmptyDir.php delete mode 100644 vendor/league/flysystem/src/Plugin/ForcedCopy.php delete mode 100644 vendor/league/flysystem/src/Plugin/ForcedRename.php delete mode 100644 vendor/league/flysystem/src/Plugin/GetWithMetadata.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListFiles.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListPaths.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListWith.php delete mode 100644 vendor/league/flysystem/src/Plugin/PluggableTrait.php delete mode 100644 vendor/league/flysystem/src/Plugin/PluginNotFoundException.php delete mode 100644 vendor/league/flysystem/src/PluginInterface.php delete mode 100644 vendor/league/flysystem/src/ReadInterface.php delete mode 100644 vendor/league/flysystem/src/RootViolationException.php delete mode 100644 vendor/league/flysystem/src/SafeStorage.php delete mode 100644 vendor/league/flysystem/src/UnreadableFileException.php delete mode 100644 vendor/league/flysystem/src/Util.php delete mode 100644 vendor/league/flysystem/src/Util/ContentListingFormatter.php delete mode 100644 vendor/league/flysystem/src/Util/MimeType.php delete mode 100644 vendor/league/flysystem/src/Util/StreamHasher.php delete mode 100644 vendor/league/flysystem/wait_for_ftp_service.php delete mode 100644 vendor/mockery/mockery/.gitignore delete mode 100644 vendor/mockery/mockery/.php_cs delete mode 100644 vendor/mockery/mockery/.scrutinizer.yml delete mode 100644 vendor/mockery/mockery/.styleci.yml delete mode 100644 vendor/mockery/mockery/.travis.yml delete mode 100644 vendor/mockery/mockery/CHANGELOG.md delete mode 100644 vendor/mockery/mockery/CONTRIBUTING.md delete mode 100644 vendor/mockery/mockery/LICENSE delete mode 100644 vendor/mockery/mockery/README.md delete mode 100644 vendor/mockery/mockery/composer.json delete mode 100644 vendor/mockery/mockery/docs/.gitignore delete mode 100644 vendor/mockery/mockery/docs/Makefile delete mode 100644 vendor/mockery/mockery/docs/README.md delete mode 100644 vendor/mockery/mockery/docs/conf.py delete mode 100644 vendor/mockery/mockery/docs/cookbook/big_parent_class.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/class_constants.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/default_expectations.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/detecting_mock_objects.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/index.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/map.rst.inc delete mode 100644 vendor/mockery/mockery/docs/cookbook/mockery_on.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/mocking_hard_dependencies.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/not_calling_the_constructor.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/index.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/installation.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/map.rst.inc delete mode 100644 vendor/mockery/mockery/docs/getting_started/quick_reference.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/simple_example.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/upgrading.rst delete mode 100644 vendor/mockery/mockery/docs/index.rst delete mode 100644 vendor/mockery/mockery/docs/mockery/configuration.rst delete mode 100644 vendor/mockery/mockery/docs/mockery/exceptions.rst delete mode 100644 vendor/mockery/mockery/docs/mockery/gotchas.rst delete mode 100644 vendor/mockery/mockery/docs/mockery/index.rst delete mode 100644 vendor/mockery/mockery/docs/mockery/map.rst.inc delete mode 100644 vendor/mockery/mockery/docs/mockery/reserved_method_names.rst delete mode 100644 vendor/mockery/mockery/docs/reference/alternative_should_receive_syntax.rst delete mode 100644 vendor/mockery/mockery/docs/reference/argument_validation.rst delete mode 100644 vendor/mockery/mockery/docs/reference/creating_test_doubles.rst delete mode 100644 vendor/mockery/mockery/docs/reference/demeter_chains.rst delete mode 100644 vendor/mockery/mockery/docs/reference/expectations.rst delete mode 100644 vendor/mockery/mockery/docs/reference/final_methods_classes.rst delete mode 100644 vendor/mockery/mockery/docs/reference/index.rst delete mode 100644 vendor/mockery/mockery/docs/reference/instance_mocking.rst delete mode 100644 vendor/mockery/mockery/docs/reference/magic_methods.rst delete mode 100644 vendor/mockery/mockery/docs/reference/map.rst.inc delete mode 100644 vendor/mockery/mockery/docs/reference/partial_mocks.rst delete mode 100644 vendor/mockery/mockery/docs/reference/pass_by_reference_behaviours.rst delete mode 100644 vendor/mockery/mockery/docs/reference/phpunit_integration.rst delete mode 100644 vendor/mockery/mockery/docs/reference/protected_methods.rst delete mode 100644 vendor/mockery/mockery/docs/reference/public_properties.rst delete mode 100644 vendor/mockery/mockery/docs/reference/public_static_properties.rst delete mode 100644 vendor/mockery/mockery/docs/reference/spies.rst delete mode 100644 vendor/mockery/mockery/library/Mockery.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CompositeExpectation.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Configuration.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Container.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/Exact.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/BadMethodCallException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/InvalidCountException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Expectation.php delete mode 100644 vendor/mockery/mockery/library/Mockery/ExpectationDirector.php delete mode 100644 vendor/mockery/mockery/library/Mockery/ExpectationInterface.php delete mode 100644 vendor/mockery/mockery/library/Mockery/ExpectsHigherOrderMessage.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/CachingGenerator.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/Generator.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/Method.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/Parameter.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveBuiltinMethodsThatAreFinalPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/HigherOrderMessage.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Instantiator.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Loader/Loader.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Loader/RequireLoader.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Any.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/AnyArgs.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Closure.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Contains.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/NoArgs.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Not.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/PHPUnitConstraint.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Pattern.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Subset.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Type.php delete mode 100644 vendor/mockery/mockery/library/Mockery/MethodCall.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Mock.php delete mode 100644 vendor/mockery/mockery/library/Mockery/MockInterface.php delete mode 100644 vendor/mockery/mockery/library/Mockery/ReceivedMethodCalls.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Undefined.php delete mode 100644 vendor/mockery/mockery/library/Mockery/VerificationDirector.php delete mode 100644 vendor/mockery/mockery/library/Mockery/VerificationExpectation.php delete mode 100644 vendor/mockery/mockery/library/helpers.php delete mode 100644 vendor/mockery/mockery/phpunit.xml.dist delete mode 100644 vendor/mockery/mockery/tests/Bootstrap.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Adapter/Phpunit/TestListenerTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/AdhocTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/AllowsExpectsSyntaxTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/ContainerTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/DemeterChainTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/DummyClasses/Namespaced.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/ExpectationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithIterableTypeHints.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithNullableReturnType.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithNullableTypedParameter.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithParametersWithDefaultValues.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithVoidReturnType.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/SemiReservedWordsAsMethods.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/DefinedTargetClassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationBuilderTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/CallTypeHintPassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/ClassNamePassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InstanceMockPassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InterfacePassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/GlobalHelpersTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/HamcrestExpectationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Loader/EvalLoaderTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Loader/LoaderTestCase.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Loader/RequireLoaderTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Matcher/PHPUnitConstraintTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Matcher/SubsetTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockClassWithFinalWakeupTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockClassWithMethodOverloadingTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockClassWithUnknownTypeHintTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockeryCanMockClassesWithSemiReservedWordsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockeryCanMockMultipleInterfacesWhichOverlapTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingMethodsWithIterableTypeHintsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingMethodsWithNullableParametersTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingNullableMethodsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingParameterAndReturnTypesTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingProtectedMethodsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingVariadicArgumentsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingVoidMethodsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/NamedMockTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Php72LanguageFeaturesTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/SpyTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/TraitsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/WithFormatterExpectationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/_files/file.txt delete mode 100644 vendor/monolog/monolog/.php_cs delete mode 100644 vendor/monolog/monolog/CHANGELOG.md delete mode 100644 vendor/monolog/monolog/LICENSE delete mode 100644 vendor/monolog/monolog/README.md delete mode 100644 vendor/monolog/monolog/composer.json delete mode 100644 vendor/monolog/monolog/doc/01-usage.md delete mode 100644 vendor/monolog/monolog/doc/02-handlers-formatters-processors.md delete mode 100644 vendor/monolog/monolog/doc/03-utilities.md delete mode 100644 vendor/monolog/monolog/doc/04-extending.md delete mode 100644 vendor/monolog/monolog/doc/sockets.md delete mode 100644 vendor/monolog/monolog/phpunit.xml.dist delete mode 100644 vendor/monolog/monolog/src/Monolog/ErrorHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Logger.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Registry.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/LoggerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/RegistryTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/TestCase.php delete mode 100644 vendor/mtdowling/cron-expression/.editorconfig delete mode 100644 vendor/mtdowling/cron-expression/CHANGELOG.md delete mode 100644 vendor/mtdowling/cron-expression/LICENSE delete mode 100644 vendor/mtdowling/cron-expression/README.md delete mode 100644 vendor/mtdowling/cron-expression/composer.json delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/AbstractField.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/CronExpression.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/DayOfMonthField.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/DayOfWeekField.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/FieldFactory.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/FieldInterface.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/HoursField.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/MinutesField.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/MonthField.php delete mode 100644 vendor/mtdowling/cron-expression/src/Cron/YearField.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/AbstractFieldTest.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/CronExpressionTest.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/DayOfMonthFieldTest.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/DayOfWeekFieldTest.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/FieldFactoryTest.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/HoursFieldTest.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/MinutesFieldTest.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/MonthFieldTest.php delete mode 100644 vendor/mtdowling/cron-expression/tests/Cron/YearFieldTest.php delete mode 100755 vendor/myclabs/deep-copy/.gitattributes delete mode 100755 vendor/myclabs/deep-copy/.gitignore delete mode 100755 vendor/myclabs/deep-copy/.travis.yml delete mode 100644 vendor/myclabs/deep-copy/LICENSE delete mode 100644 vendor/myclabs/deep-copy/README.md delete mode 100644 vendor/myclabs/deep-copy/composer.json delete mode 100644 vendor/myclabs/deep-copy/doc/clone.png delete mode 100644 vendor/myclabs/deep-copy/doc/deep-clone.png delete mode 100644 vendor/myclabs/deep-copy/doc/deep-copy.png delete mode 100644 vendor/myclabs/deep-copy/doc/graph.png delete mode 100644 vendor/myclabs/deep-copy/fixtures/f001/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f001/B.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f002/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f003/Foo.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f005/Foo.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f006/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f006/B.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f008/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f008/B.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php delete mode 100644 vendor/nesbot/carbon/.php_cs.dist delete mode 100644 vendor/nesbot/carbon/LICENSE delete mode 100644 vendor/nesbot/carbon/composer.json delete mode 100644 vendor/nesbot/carbon/readme.md delete mode 100644 vendor/nesbot/carbon/src/Carbon/Carbon.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/CarbonInterval.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/af.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ar.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/az.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/bg.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/bn.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ca.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/cs.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/da.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/de.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/el.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/en.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/eo.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/es.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/et.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/eu.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/fa.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/fi.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/fo.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/fr.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/gl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/he.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/hr.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/hu.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/hy.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/id.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/it.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ja.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ka.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/km.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ko.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/lt.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/lv.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/mk.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ms.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/nl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/no.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/pl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/pt.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ro.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ru.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sk.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sq.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sv.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/th.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/tr.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/uk.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ur.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/uz.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/vi.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/zh.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php delete mode 100644 vendor/nikic/php-parser/.gitignore delete mode 100644 vendor/nikic/php-parser/.travis.yml delete mode 100644 vendor/nikic/php-parser/CHANGELOG.md delete mode 100644 vendor/nikic/php-parser/LICENSE delete mode 100644 vendor/nikic/php-parser/README.md delete mode 100644 vendor/nikic/php-parser/UPGRADE-1.0.md delete mode 100644 vendor/nikic/php-parser/UPGRADE-2.0.md delete mode 100644 vendor/nikic/php-parser/UPGRADE-3.0.md delete mode 100755 vendor/nikic/php-parser/bin/php-parse delete mode 100644 vendor/nikic/php-parser/composer.json delete mode 100644 vendor/nikic/php-parser/doc/0_Introduction.markdown delete mode 100644 vendor/nikic/php-parser/doc/2_Usage_of_basic_components.markdown delete mode 100644 vendor/nikic/php-parser/doc/3_Other_node_tree_representations.markdown delete mode 100644 vendor/nikic/php-parser/doc/4_Code_generation.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Error_handling.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Lexer.markdown delete mode 100644 vendor/nikic/php-parser/grammar/README.md delete mode 100644 vendor/nikic/php-parser/grammar/parser.template delete mode 100644 vendor/nikic/php-parser/grammar/php5.y delete mode 100644 vendor/nikic/php-parser/grammar/php7.y delete mode 100644 vendor/nikic/php-parser/grammar/rebuildParsers.php delete mode 100644 vendor/nikic/php-parser/grammar/tokens.template delete mode 100644 vendor/nikic/php-parser/grammar/tokens.y delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Autoloader.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/BuilderAbstract.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Comment.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Error.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Param.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Serializer.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Serializer/XML.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Unserializer.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Unserializer/XML.php delete mode 100644 vendor/nikic/php-parser/lib/bootstrap.php delete mode 100644 vendor/nikic/php-parser/phpunit.xml.dist delete mode 100644 vendor/nikic/php-parser/test/PhpParser/AutoloaderTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/CommentTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ErrorTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/LexerTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Parser/Php7Test.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ParserFactoryTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ParserTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Serializer/XMLTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Unserializer/XMLTest.php delete mode 100644 vendor/nikic/php-parser/test/bootstrap.php delete mode 100644 vendor/nikic/php-parser/test/code/parser/blockComments.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/comments.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/errorHandling/eofError.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/errorHandling/lexerErrors.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/errorHandling/recovery.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/arrayDef.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/assign.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/assignNewByRef.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/cast.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/clone.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/closure.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/comparison.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/errorSuppress.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/exit.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/args.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constFetch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constantDeref.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/funcCall.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/newDeref.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/objectAccess.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/staticCall.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/staticPropertyFetch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/includeAndEval.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/issetAndEmpty.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/listWithKeys.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/logic.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/math.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/new.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/newWithoutClass.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/print.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/shellExec.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/ternaryAndCoalesce.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/globalNonSimpleVarError.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/isset.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/new.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/staticProperty.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/variable.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/constantString.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/docString.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/docStringNewlines.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/encapsedNegVarOffset.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/encapsedString.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/float.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/int.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/invalidOctal.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/magicConst.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/unicodeEscape.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/semiReserved.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/blocklessStatement.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/abstract.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/conditional.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/constModifierErrors.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/constModifiers.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/final.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/implicitPublic.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/interface.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/name.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/php4Style.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/simple.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/staticMethod.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/trait.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/const.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/controlFlow.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/declare.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/echo.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/builtinTypeDeclarations.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/byRef.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/conditional.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/defaultValues.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/nullableTypes.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/returnTypes.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/specialVars.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/typeDeclarations.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/variadic.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/variadicDefaultValue.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/generator/basic.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldUnaryPrecedence.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/haltCompiler.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/haltCompilerInvalidSyntax.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/haltCompilerOffset.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/haltCompilerOutermostScope.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/hashbang.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/if.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/inlineHTML.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/loop/do.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/loop/for.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/loop/foreach.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/loop/while.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/multiCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/alias.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/braced.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/commentAfterNamespace.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/groupUse.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/groupUseErrors.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/groupUsePositions.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/groupUseTrailingComma.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/invalidName.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/mix.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/name.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/nested.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/notBraced.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/nsAfterHashbang.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/outsideStmt.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/outsideStmtInvalid.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/switch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/tryCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/tryWithoutCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/unset.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/comments.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/commentsInCommaList.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/anonymousClass.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/arrayDestructuring.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/call.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/closure.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/constant_deref.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/docStrings.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/include.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/intrinsics.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/list.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/literals.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/numbers.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/operators.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/parentheses.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/shortArraySyntax.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/stringEscaping.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/uvs.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/variables.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/yield.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/inlineHTMLandPHPtest.file-test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/onlyInlineHTML.file-test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/onlyPHP.file-test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/alias.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/break_continue.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/class.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/class_const.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/const.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/declare.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/do_while.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/for.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/foreach.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/function_signatures.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/global_static_variables.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/goto.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/groupUse.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/haltCompiler.file-test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/if.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/multiCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/namespaces.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/nullable_types.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/switch.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/throw.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/traitUse.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/tryCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/while.test delete mode 100755 vendor/nikic/php-parser/test_old/run-php-src.sh delete mode 100644 vendor/nikic/php-parser/test_old/run.php delete mode 100644 vendor/paragonie/random_compat/LICENSE delete mode 100755 vendor/paragonie/random_compat/build-phar.sh delete mode 100644 vendor/paragonie/random_compat/composer.json delete mode 100644 vendor/paragonie/random_compat/dist/random_compat.phar.pubkey delete mode 100644 vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc delete mode 100644 vendor/paragonie/random_compat/lib/byte_safe_strings.php delete mode 100644 vendor/paragonie/random_compat/lib/cast_to_int.php delete mode 100644 vendor/paragonie/random_compat/lib/error_polyfill.php delete mode 100644 vendor/paragonie/random_compat/lib/random.php delete mode 100644 vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php delete mode 100644 vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php delete mode 100644 vendor/paragonie/random_compat/lib/random_bytes_libsodium.php delete mode 100644 vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php delete mode 100644 vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php delete mode 100644 vendor/paragonie/random_compat/lib/random_int.php delete mode 100644 vendor/paragonie/random_compat/other/build_phar.php delete mode 100644 vendor/paragonie/random_compat/psalm-autoload.php delete mode 100644 vendor/paragonie/random_compat/psalm.xml delete mode 100644 vendor/phar-io/manifest/.gitignore delete mode 100644 vendor/phar-io/manifest/.php_cs delete mode 100644 vendor/phar-io/manifest/.travis.yml delete mode 100644 vendor/phar-io/manifest/LICENSE delete mode 100644 vendor/phar-io/manifest/README.md delete mode 100644 vendor/phar-io/manifest/build.xml delete mode 100644 vendor/phar-io/manifest/composer.json delete mode 100644 vendor/phar-io/manifest/examples/example-01.php delete mode 100644 vendor/phar-io/manifest/phive.xml delete mode 100644 vendor/phar-io/manifest/phpunit.xml delete mode 100644 vendor/phar-io/manifest/src/ManifestDocumentMapper.php delete mode 100644 vendor/phar-io/manifest/src/ManifestLoader.php delete mode 100644 vendor/phar-io/manifest/src/ManifestSerializer.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/Exception.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestElementException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestLoaderException.php delete mode 100644 vendor/phar-io/manifest/src/values/Application.php delete mode 100644 vendor/phar-io/manifest/src/values/ApplicationName.php delete mode 100644 vendor/phar-io/manifest/src/values/Author.php delete mode 100644 vendor/phar-io/manifest/src/values/AuthorCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponent.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponentCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/CopyrightInformation.php delete mode 100644 vendor/phar-io/manifest/src/values/Email.php delete mode 100644 vendor/phar-io/manifest/src/values/Extension.php delete mode 100644 vendor/phar-io/manifest/src/values/Library.php delete mode 100644 vendor/phar-io/manifest/src/values/License.php delete mode 100644 vendor/phar-io/manifest/src/values/Manifest.php delete mode 100644 vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php delete mode 100644 vendor/phar-io/manifest/src/values/PhpVersionRequirement.php delete mode 100644 vendor/phar-io/manifest/src/values/Requirement.php delete mode 100644 vendor/phar-io/manifest/src/values/RequirementCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/Type.php delete mode 100644 vendor/phar-io/manifest/src/values/Url.php delete mode 100644 vendor/phar-io/manifest/src/xml/AuthorElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/AuthorElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/BundlesElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ComponentElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ComponentElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ContainsElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/CopyrightElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtensionElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/LicenseElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestDocument.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/PhpElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/RequiresElement.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestLoaderTest.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestSerializerTest.php delete mode 100644 vendor/phar-io/manifest/tests/_fixture/custom.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/extension.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/invalidversion.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/library.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/manifest.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/test.phar delete mode 100644 vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ApplicationNameTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ApplicationTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/AuthorTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/BundledComponentTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/EmailTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ExtensionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/LibraryTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/LicenseTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ManifestTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/UrlTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/AuthorElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/BundlesElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ComponentElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ContainsElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/LicenseElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/PhpElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/RequiresElementTest.php delete mode 100644 vendor/phar-io/version/.gitignore delete mode 100644 vendor/phar-io/version/.php_cs delete mode 100644 vendor/phar-io/version/.travis.yml delete mode 100644 vendor/phar-io/version/LICENSE delete mode 100644 vendor/phar-io/version/README.md delete mode 100644 vendor/phar-io/version/build.xml delete mode 100644 vendor/phar-io/version/composer.json delete mode 100644 vendor/phar-io/version/phive.xml delete mode 100644 vendor/phar-io/version/phpunit.xml delete mode 100644 vendor/phar-io/version/src/AbstractVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/AndVersionConstraintGroup.php delete mode 100644 vendor/phar-io/version/src/AnyVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/ExactVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/Exception.php delete mode 100644 vendor/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/InvalidVersionException.php delete mode 100644 vendor/phar-io/version/src/OrVersionConstraintGroup.php delete mode 100644 vendor/phar-io/version/src/PreReleaseSuffix.php delete mode 100644 vendor/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/SpecificMajorVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/UnsupportedVersionConstraintException.php delete mode 100644 vendor/phar-io/version/src/Version.php delete mode 100644 vendor/phar-io/version/src/VersionConstraint.php delete mode 100644 vendor/phar-io/version/src/VersionConstraintParser.php delete mode 100644 vendor/phar-io/version/src/VersionConstraintValue.php delete mode 100644 vendor/phar-io/version/src/VersionNumber.php delete mode 100644 vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/VersionTest.php delete mode 100644 vendor/phpdocumentor/reflection-common/.travis.yml delete mode 100644 vendor/phpdocumentor/reflection-common/LICENSE delete mode 100644 vendor/phpdocumentor/reflection-common/README.md delete mode 100644 vendor/phpdocumentor/reflection-common/composer.json delete mode 100644 vendor/phpdocumentor/reflection-common/src/Element.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/File.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Fqsen.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Location.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Project.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/ProjectFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/.coveralls.yml delete mode 100644 vendor/phpdocumentor/reflection-docblock/LICENSE delete mode 100644 vendor/phpdocumentor/reflection-docblock/README.md delete mode 100644 vendor/phpdocumentor/reflection-docblock/composer.json delete mode 100644 vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php delete mode 100644 vendor/phpdocumentor/type-resolver/LICENSE delete mode 100644 vendor/phpdocumentor/type-resolver/README.md delete mode 100644 vendor/phpdocumentor/type-resolver/composer.json delete mode 100644 vendor/phpdocumentor/type-resolver/src/FqsenResolver.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Type.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/TypeResolver.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Array_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Boolean.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Callable_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Compound.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Context.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Float_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Integer.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Null_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Nullable.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Object_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Parent_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Resource_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Scalar.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Self_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Static_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/String_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/This.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Void_.php delete mode 100644 vendor/phpspec/prophecy/CHANGES.md delete mode 100644 vendor/phpspec/prophecy/LICENSE delete mode 100644 vendor/phpspec/prophecy/README.md delete mode 100644 vendor/phpspec/prophecy/composer.json delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Call/Call.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophet.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php delete mode 100644 vendor/phpunit/php-code-coverage/.gitattributes delete mode 100644 vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md delete mode 100644 vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/phpunit/php-code-coverage/.gitignore delete mode 100644 vendor/phpunit/php-code-coverage/.php_cs delete mode 100644 vendor/phpunit/php-code-coverage/.travis.yml delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-2.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.1.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.3.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-4.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.1.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.3.md delete mode 100644 vendor/phpunit/php-code-coverage/LICENSE delete mode 100644 vendor/phpunit/php-code-coverage/README.md delete mode 100644 vendor/phpunit/php-code-coverage/build.xml delete mode 100644 vendor/phpunit/php-code-coverage/composer.json delete mode 100644 vendor/phpunit/php-code-coverage/phpunit.xml delete mode 100644 vendor/phpunit/php-code-coverage/src/CodeCoverage.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/Driver.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/HHVM.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/Exception.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Filter.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Builder.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Iterator.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Clover.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Crap4j.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.svg delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/html5shiv.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/jquery.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/nv.d3.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/respond.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/method_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/PHP.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Text.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Method.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Report.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Totals.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Unit.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Util.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Version.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/TestCase.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccountTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodOneLineAnnotationTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNoneTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNothingTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveragePrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveragePublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageTwoDefaultClassAnnotations.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveredClass.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveredFunction.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageMethodTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveredClass.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NotExistingCoveredElementTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/BankAccount.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/source_with_ignore.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_ignore.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_namespace.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_oneline_annotations.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_without_ignore.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_without_namespace.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/bootstrap.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/BuilderTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/CloverTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/CodeCoverageTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/Crap4jTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/FilterTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/HTMLTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/TextTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/UtilTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/XMLTest.php delete mode 100644 vendor/phpunit/php-file-iterator/.gitattributes delete mode 100644 vendor/phpunit/php-file-iterator/.gitignore delete mode 100644 vendor/phpunit/php-file-iterator/ChangeLog.md delete mode 100644 vendor/phpunit/php-file-iterator/LICENSE delete mode 100644 vendor/phpunit/php-file-iterator/README.md delete mode 100644 vendor/phpunit/php-file-iterator/composer.json delete mode 100644 vendor/phpunit/php-file-iterator/src/Facade.php delete mode 100644 vendor/phpunit/php-file-iterator/src/Factory.php delete mode 100644 vendor/phpunit/php-file-iterator/src/Iterator.php delete mode 100644 vendor/phpunit/php-text-template/.gitattributes delete mode 100644 vendor/phpunit/php-text-template/.gitignore delete mode 100644 vendor/phpunit/php-text-template/LICENSE delete mode 100644 vendor/phpunit/php-text-template/README.md delete mode 100644 vendor/phpunit/php-text-template/composer.json delete mode 100644 vendor/phpunit/php-text-template/src/Template.php delete mode 100644 vendor/phpunit/php-timer/.gitattributes delete mode 100644 vendor/phpunit/php-timer/.gitignore delete mode 100644 vendor/phpunit/php-timer/.travis.yml delete mode 100644 vendor/phpunit/php-timer/LICENSE delete mode 100644 vendor/phpunit/php-timer/README.md delete mode 100644 vendor/phpunit/php-timer/composer.json delete mode 100644 vendor/phpunit/php-timer/phpunit.xml delete mode 100644 vendor/phpunit/php-timer/src/Timer.php delete mode 100644 vendor/phpunit/php-timer/tests/TimerTest.php delete mode 100644 vendor/phpunit/php-token-stream/.gitattributes delete mode 100644 vendor/phpunit/php-token-stream/.gitignore delete mode 100644 vendor/phpunit/php-token-stream/.travis.yml delete mode 100644 vendor/phpunit/php-token-stream/ChangeLog.md delete mode 100644 vendor/phpunit/php-token-stream/LICENSE delete mode 100644 vendor/phpunit/php-token-stream/README.md delete mode 100644 vendor/phpunit/php-token-stream/build.xml delete mode 100644 vendor/phpunit/php-token-stream/composer.json delete mode 100644 vendor/phpunit/php-token-stream/phpunit.xml delete mode 100644 vendor/phpunit/php-token-stream/src/Token.php delete mode 100644 vendor/phpunit/php-token-stream/src/Token/Stream.php delete mode 100644 vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/ClassTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/TokenTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classInNamespace.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classInScopedNamespace.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classUsesNamespacedFunction.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_named_empty.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_that_declares_anonymous_class.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_that_declares_anonymous_class2.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_multiple_anonymous_classes_and_functions.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/closure.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/issue19.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/issue30.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingBraces.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingNonBraceSyntax.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/php-code-coverage-issue-424.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source2.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source3.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source4.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source5.php delete mode 100644 vendor/phpunit/php-token-stream/tests/bootstrap.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/.gitattributes delete mode 100644 vendor/phpunit/phpunit-mock-objects/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/phpunit/phpunit-mock-objects/.gitignore delete mode 100644 vendor/phpunit/phpunit-mock-objects/.php_cs delete mode 100644 vendor/phpunit/phpunit-mock-objects/.travis.yml delete mode 100644 vendor/phpunit/phpunit-mock-objects/CONTRIBUTING.md delete mode 100644 vendor/phpunit/phpunit-mock-objects/LICENSE delete mode 100644 vendor/phpunit/phpunit-mock-objects/README.md delete mode 100644 vendor/phpunit/phpunit-mock-objects/build.xml delete mode 100644 vendor/phpunit/phpunit-mock-objects/composer.json delete mode 100644 vendor/phpunit/phpunit-mock-objects/phpunit.xml delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/Identity.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/Match.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/Stub.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Exception/Exception.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/deprecation.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_class_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_clone.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_method_void.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_static_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/proxied_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/proxied_method_void.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/trait_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/unmocked_clone.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/wsdl_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/wsdl_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/InvocationMocker.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Invokable.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/MockBuilder.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/MockObject.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/Exception.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Verifiable.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Builder/InvocationMockerTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/232.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/397.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/abstract_class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_dont_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_implementing_interface_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_implementing_interface_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_partial.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_deprecated_method.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_method_named_method.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_method_with_nullable_typehinted_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_method_with_typehinted_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_method_with_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/interface.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/invocation_object_clone_object.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_dont_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_implementing_interface_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_partial.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_interface.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/nonexistent_class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/nonexistent_class_with_namespace.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/nonexistent_class_with_namespace_starting_with_separator.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/nullable_types.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/proxy.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_closure.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_final.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_generator.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_nullable.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_object_method.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_self.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_static_method.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_void.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/scalar_type_declarations.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/wsdl_class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/wsdl_class_namespace.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/wsdl_class_partial.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Invocation/ObjectInvocationTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Invocation/StaticInvocationTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Matcher/ConsecutiveParametersTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractMockTestClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractTrait.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnInterface.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnInterfaceWithReturnType.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnotherInterface.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/Bar.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassThatImplementsSerializable.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithAllPossibleReturnTypes.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithSelfTypeHint.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithStaticMethod.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/Foo.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/FunctionCallback.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/GoogleSearch.wsdl delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/InterfaceWithSemiReservedMethodName.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/InterfaceWithStaticMethod.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallback.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallbackByReference.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/MockTestInterface.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/Mockable.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/PartialMockTestClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/SingletonClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/SomeClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/StaticMockTestClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/StringableClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/TraversableMockTestInterface.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/bootstrap.php delete mode 100644 vendor/phpunit/phpunit/.editorconfig delete mode 100644 vendor/phpunit/phpunit/.gitattributes delete mode 100644 vendor/phpunit/phpunit/.github/CODE_OF_CONDUCT.md delete mode 100644 vendor/phpunit/phpunit/.github/CONTRIBUTING.md delete mode 100644 vendor/phpunit/phpunit/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/phpunit/phpunit/.gitignore delete mode 100644 vendor/phpunit/phpunit/.php_cs.dist delete mode 100644 vendor/phpunit/phpunit/.stickler.yml delete mode 100644 vendor/phpunit/phpunit/.travis.yml delete mode 100644 vendor/phpunit/phpunit/ChangeLog-5.7.md delete mode 100644 vendor/phpunit/phpunit/ChangeLog-6.5.md delete mode 100644 vendor/phpunit/phpunit/LICENSE delete mode 100644 vendor/phpunit/phpunit/README.md delete mode 100644 vendor/phpunit/phpunit/appveyor.yml delete mode 100644 vendor/phpunit/phpunit/build.xml delete mode 100644 vendor/phpunit/phpunit/composer.json delete mode 100755 vendor/phpunit/phpunit/phpunit delete mode 100644 vendor/phpunit/phpunit/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/phpunit.xsd delete mode 100644 vendor/phpunit/phpunit/src/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Assert.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Assert/Functions.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/BaseTestListener.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Count.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsFinite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsNan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsReadable.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsWritable.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Error.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Notice.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Warning.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/OutputError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/RiskyTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/RiskyTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SelfDescribing.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SyntheticError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Test.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestFailure.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestListener.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestResult.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestSuite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Warning.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/WarningTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/Factory.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/PhptTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Version.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/Command.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/TestRunner.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Blacklist.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Configuration.php delete mode 100644 vendor/phpunit/phpunit/src/Util/ConfigurationGenerator.php delete mode 100644 vendor/phpunit/phpunit/src/Util/ErrorHandler.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Fileloader.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Filesystem.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Filter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Getopt.php delete mode 100644 vendor/phpunit/phpunit/src/Util/GlobalState.php delete mode 100644 vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Json.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Log/JUnit.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Log/TeamCity.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/PhptTestCase.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseClass.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Printer.php delete mode 100644 vendor/phpunit/phpunit/src/Util/RegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Test.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TextTestListRenderer.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Type.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Xml.php delete mode 100644 vendor/phpunit/phpunit/src/Util/XmlTestListRenderer.php delete mode 100644 vendor/phpunit/phpunit/tests/Fail/fail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/AssertTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/BaseTestListenerTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ArrayHasKeyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ArraySubsetTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/AttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/CallbackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ClassHasAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ClassHasStaticAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ConstraintTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/DirectoryExistsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageRegExpTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/FileExistsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/GreaterThanTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsEmptyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsEqualTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsIdenticalTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsJsonTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsNullTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsReadableTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsTypeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsWritableTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesErrorMessageProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LessThanTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalAndTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalOrTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalXorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ObjectHasAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/RegularExpressionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/SameSizeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringContainsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringEndsWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringMatchesFormatDescriptionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringStartsWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/TraversableContainsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/SuiteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestFailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestImplementorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestListenerTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1149/Issue1149Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/Issue1216Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/bootstrap1216.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/phpunit1216.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265/Issue1265Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265/phpunit1265.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330/Issue1330Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330/phpunit1330.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335/bootstrap1335.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1337/Issue1337Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1348/Issue1348Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351/ChildProcessClass1351.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351/Issue1351Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1374/Issue1374Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1437/Issue1437Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1472/Issue1472Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1570/Issue1570Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137-filter.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137-no_filter.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137/Issue2137Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2145.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2145/Issue2145Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158/Issue2158Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158/constant.inc delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2366.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2366/Issue2366Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2380.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2380/Issue2380Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2382.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2382/Issue2382Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2435.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2435/Issue2435Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/244/Issue244Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448-existing-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448-not-existing-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448/Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-class-preserve-no-bootstrap.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-class-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve-no-bootstrap-xdebug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve-no-bootstrap.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateClassPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateFunctionNoPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateFunctionPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapNoBootstrap.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapWithBootstrap.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapWithBootstrapNoGlobal.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2725-separate-class-before-after-pid.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2725/BeforeAfterClassPidTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2731.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2731/Issue2731Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2811.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2811/Issue2811Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972/issue-2972-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972/unconventiallyNamedIssue2972Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322/Issue322Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322/phpunit322.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/433/Issue433Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/445/Issue445Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/503/Issue503Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74/Issue74Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74/NewException.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/765/Issue765Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797/Issue797Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797/bootstrap797.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/873.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/873/Issue873Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/1021.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/1021/Issue1021Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/523.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/523/Issue523Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/578.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/578/Issue578Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/684.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/684/Issue684Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/ChildSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/OneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/ParentSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/TwoTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Runner/PhptTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/expect_external.txt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/phpt-env.expected.txt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/phpt_external.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/assertion.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/code-coverage-ignore.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/code-coverage-phpt.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2833.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2859.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2922.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/default.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/defaulttestsuite-using-testsuite.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/defaulttestsuite.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies-clone.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/disable-code-coverage-ignore.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure-reverse-list.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/forward-compatibility.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/help.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/help2.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-suites.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-tests-dataprovider.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-tests-xml-dataprovider.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/log-junit.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/log-teamcity.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/mycommand.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/options-after-arguments.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phar-extension-suppressed.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phar-extension.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-args.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-env.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-external.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-stderr.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-stdin.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-xfail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/repeat.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/stop-on-warning-via-cli.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/stop-on-warning-via-config.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/teamcity-inner-exceptions.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/teamcity.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-exclude-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-xml.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Util/ConfigurationGeneratorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/GetoptTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/JsonTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/PHP/AbstractPhpProcessTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/RegularExpressionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/TestDox/NamePrettifierTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/TestTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/XmlTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AbstractTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ArrayAccessible.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AssertionExample.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AssertionExampleTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Author.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccount.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest.test.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BaseTestListenerSample.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeAndAfterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeClassAndAfterClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeClassWithOnlyDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Book.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Calculator.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ChangeCurrentWorkingDirectoryTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithNonPublicAttributes.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithScalarTypeDeclarations.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithToString.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClonedDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ConcreteTest.my.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ConcreteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CountConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodOneLineAnnotationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNamespacedFunctionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNoneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNothingTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveragePrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveragePublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageTwoDefaultClassAnnotations.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveredClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveredFunction.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CustomPrinter.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderDebugTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderFilterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/FirstTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/SecondTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2859/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2859/tests/another/TestWithDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/FirstTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/SecondTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderSkippedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderTestDoxTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencyFailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencySuccessTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencyTestSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DoubleTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyBarTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyException.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyFooTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/EmptyTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPostConditionsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPreConditionsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInSetUpTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionNamespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionStackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Failure.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FalsyConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FatalTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/InheritedTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IniTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IsolationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/JsonData/arrayObject.json delete mode 100644 vendor/phpunit/phpunit/tests/_files/JsonData/simpleObject.json delete mode 100644 vendor/phpunit/phpunit/tests/_files/MockRunner.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Mockable.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MultiDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MultipleDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MyCommand.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamedConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageMethodTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveredClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveredFunction.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoArgTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoTestCaseClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoTestCases.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NonStatic.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotExistingCoveredElementTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotPublicTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotVoidTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NothingTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OneTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OutputTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OverrideTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ParseTestMethodAnnotationsMock.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsClassBeforeClassHookTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsClassDocBlockTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/SampleArrayAccess.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/SampleClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Singleton.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StatusTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StopOnWarningTestSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StopsOnWarningTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Struct.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Success.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TemplateMethodsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestAutoreferenced.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestDoxGroupTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestGeneratorMaker.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIncomplete.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIterator.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIterator2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIteratorAggregate.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIteratorAggregate2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestSkipped.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestTestError.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ThrowExceptionTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ThrowNoExceptionTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TruthyConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/VariousIterableDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/WasRun.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/WrapperIteratorAggregate.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/bar.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.custom-printer.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.defaulttestsuite.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.one-file-suite.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.suites.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_empty.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_stop_on_warning.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/expectedFileFormat.txt delete mode 100644 vendor/phpunit/phpunit/tests/_files/foo.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-for-coverage.phpt delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-xfail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/tests/OneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/tools/phpunit.d/phpunit-example-extension-1.0.1.phar delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureAttributesAreSameButValuesAreNot.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureExpected.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureIgnoreTextNodes.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureIsSameButDataIsNot.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfAttributes.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfNodes.xml delete mode 100644 vendor/phpunit/phpunit/tests/bootstrap.php delete mode 100644 vendor/psr/container/.gitignore delete mode 100644 vendor/psr/container/LICENSE delete mode 100644 vendor/psr/container/README.md delete mode 100644 vendor/psr/container/composer.json delete mode 100644 vendor/psr/container/src/ContainerExceptionInterface.php delete mode 100644 vendor/psr/container/src/ContainerInterface.php delete mode 100644 vendor/psr/container/src/NotFoundExceptionInterface.php delete mode 100644 vendor/psr/http-message/CHANGELOG.md delete mode 100644 vendor/psr/http-message/LICENSE delete mode 100644 vendor/psr/http-message/README.md delete mode 100644 vendor/psr/http-message/composer.json delete mode 100644 vendor/psr/http-message/src/MessageInterface.php delete mode 100644 vendor/psr/http-message/src/RequestInterface.php delete mode 100644 vendor/psr/http-message/src/ResponseInterface.php delete mode 100644 vendor/psr/http-message/src/ServerRequestInterface.php delete mode 100644 vendor/psr/http-message/src/StreamInterface.php delete mode 100644 vendor/psr/http-message/src/UploadedFileInterface.php delete mode 100644 vendor/psr/http-message/src/UriInterface.php delete mode 100644 vendor/psr/log/.gitignore delete mode 100644 vendor/psr/log/LICENSE delete mode 100644 vendor/psr/log/Psr/Log/AbstractLogger.php delete mode 100644 vendor/psr/log/Psr/Log/InvalidArgumentException.php delete mode 100644 vendor/psr/log/Psr/Log/LogLevel.php delete mode 100644 vendor/psr/log/Psr/Log/LoggerAwareInterface.php delete mode 100644 vendor/psr/log/Psr/Log/LoggerAwareTrait.php delete mode 100644 vendor/psr/log/Psr/Log/LoggerInterface.php delete mode 100644 vendor/psr/log/Psr/Log/LoggerTrait.php delete mode 100644 vendor/psr/log/Psr/Log/NullLogger.php delete mode 100644 vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php delete mode 100644 vendor/psr/log/README.md delete mode 100644 vendor/psr/log/composer.json delete mode 100644 vendor/psr/simple-cache/.editorconfig delete mode 100644 vendor/psr/simple-cache/LICENSE.md delete mode 100644 vendor/psr/simple-cache/README.md delete mode 100644 vendor/psr/simple-cache/composer.json delete mode 100644 vendor/psr/simple-cache/src/CacheException.php delete mode 100644 vendor/psr/simple-cache/src/CacheInterface.php delete mode 100644 vendor/psr/simple-cache/src/InvalidArgumentException.php delete mode 100644 vendor/psy/psysh/.editorconfig delete mode 100644 vendor/psy/psysh/.gitignore delete mode 100644 vendor/psy/psysh/.phan/config.php delete mode 100644 vendor/psy/psysh/.php_cs delete mode 100644 vendor/psy/psysh/.styleci.yml delete mode 100644 vendor/psy/psysh/.travis.yml delete mode 100644 vendor/psy/psysh/CONTRIBUTING.md delete mode 100644 vendor/psy/psysh/LICENSE delete mode 100644 vendor/psy/psysh/README.md delete mode 100755 vendor/psy/psysh/bin/build delete mode 100755 vendor/psy/psysh/bin/build-manual delete mode 100755 vendor/psy/psysh/bin/build-phar delete mode 100755 vendor/psy/psysh/bin/build-vendor delete mode 100755 vendor/psy/psysh/bin/build-vendor-compat delete mode 100755 vendor/psy/psysh/bin/package delete mode 100755 vendor/psy/psysh/bin/psysh delete mode 100644 vendor/psy/psysh/composer.json delete mode 100644 vendor/psy/psysh/phpunit.xml.dist delete mode 100644 vendor/psy/psysh/src/Psy/Autoloader.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/AbstractClassPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/AssignThisVariablePass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/CallTimePassByReferencePass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/CalledClassPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/CodeCleanerPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/ExitPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/FinalClassPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/FunctionContextPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/FunctionReturnInWriteContextPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/ImplicitReturnPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/InstanceOfPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/LeavePsyshAlonePass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/LegacyEmptyPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/LoopContextPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/MagicConstantsPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/NamespaceAwarePass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/NamespacePass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/NoReturnValue.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/PassableByReferencePass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/RequirePass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/StaticConstructorPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/StrictTypesPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/UseStatementPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/ValidClassNamePass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/ValidConstantPass.php delete mode 100644 vendor/psy/psysh/src/Psy/CodeCleaner/ValidFunctionNamePass.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/BufferCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ClearCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/Command.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/DocCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/DumpCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/EditCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ExitCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/HelpCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/HistoryCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/ClassConstantEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/ClassEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/ConstantEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/Enumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/FunctionEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/GlobalVariableEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/InterfaceEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/MethodEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/PropertyEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/TraitEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ListCommand/VariableEnumerator.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ParseCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/PsyVersionCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ReflectingCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ShowCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/SudoCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/ThrowUpCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/TraceCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/WhereamiCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Command/WtfCommand.php delete mode 100644 vendor/psy/psysh/src/Psy/Compiler.php delete mode 100644 vendor/psy/psysh/src/Psy/ConfigPaths.php delete mode 100644 vendor/psy/psysh/src/Psy/Configuration.php delete mode 100644 vendor/psy/psysh/src/Psy/ConsoleColorFactory.php delete mode 100644 vendor/psy/psysh/src/Psy/Context.php delete mode 100644 vendor/psy/psysh/src/Psy/ContextAware.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/BreakException.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/DeprecatedException.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/ErrorException.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/Exception.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/FatalErrorException.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/ParseErrorException.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/RuntimeException.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/ThrowUpException.php delete mode 100644 vendor/psy/psysh/src/Psy/Exception/TypeErrorException.php delete mode 100644 vendor/psy/psysh/src/Psy/ExecutionLoop/ForkingLoop.php delete mode 100644 vendor/psy/psysh/src/Psy/ExecutionLoop/Loop.php delete mode 100644 vendor/psy/psysh/src/Psy/Formatter/CodeFormatter.php delete mode 100644 vendor/psy/psysh/src/Psy/Formatter/DocblockFormatter.php delete mode 100644 vendor/psy/psysh/src/Psy/Formatter/Formatter.php delete mode 100644 vendor/psy/psysh/src/Psy/Formatter/SignatureFormatter.php delete mode 100644 vendor/psy/psysh/src/Psy/Input/CodeArgument.php delete mode 100644 vendor/psy/psysh/src/Psy/Input/FilterOptions.php delete mode 100644 vendor/psy/psysh/src/Psy/Input/ShellInput.php delete mode 100644 vendor/psy/psysh/src/Psy/Input/SilentInput.php delete mode 100644 vendor/psy/psysh/src/Psy/Output/OutputPager.php delete mode 100644 vendor/psy/psysh/src/Psy/Output/PassthruPager.php delete mode 100644 vendor/psy/psysh/src/Psy/Output/ProcOutputPager.php delete mode 100644 vendor/psy/psysh/src/Psy/Output/ShellOutput.php delete mode 100644 vendor/psy/psysh/src/Psy/ParserFactory.php delete mode 100644 vendor/psy/psysh/src/Psy/Readline/GNUReadline.php delete mode 100644 vendor/psy/psysh/src/Psy/Readline/HoaConsole.php delete mode 100644 vendor/psy/psysh/src/Psy/Readline/Libedit.php delete mode 100644 vendor/psy/psysh/src/Psy/Readline/Readline.php delete mode 100644 vendor/psy/psysh/src/Psy/Readline/Transient.php delete mode 100644 vendor/psy/psysh/src/Psy/Reflection/ReflectionConstant.php delete mode 100644 vendor/psy/psysh/src/Psy/Reflection/ReflectionLanguageConstruct.php delete mode 100644 vendor/psy/psysh/src/Psy/Reflection/ReflectionLanguageConstructParameter.php delete mode 100644 vendor/psy/psysh/src/Psy/Shell.php delete mode 100644 vendor/psy/psysh/src/Psy/Sudo.php delete mode 100644 vendor/psy/psysh/src/Psy/Sudo/SudoVisitor.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/AutoCompleter.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractContextAwareMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/ClassAttributesMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/ClassMethodsMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/ClassNamesMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/CommandsMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/ConstantsMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/FunctionsMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/KeywordsMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/MongoClientMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/MongoDatabaseMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectAttributesMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectMethodsMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/TabCompletion/Matcher/VariablesMatcher.php delete mode 100644 vendor/psy/psysh/src/Psy/Util/Docblock.php delete mode 100644 vendor/psy/psysh/src/Psy/Util/Json.php delete mode 100644 vendor/psy/psysh/src/Psy/Util/Mirror.php delete mode 100644 vendor/psy/psysh/src/Psy/Util/Str.php delete mode 100644 vendor/psy/psysh/src/Psy/VarDumper/Cloner.php delete mode 100644 vendor/psy/psysh/src/Psy/VarDumper/Dumper.php delete mode 100644 vendor/psy/psysh/src/Psy/VarDumper/Presenter.php delete mode 100644 vendor/psy/psysh/src/Psy/VarDumper/PresenterAware.php delete mode 100644 vendor/psy/psysh/src/Psy/VersionUpdater/Checker.php delete mode 100644 vendor/psy/psysh/src/Psy/VersionUpdater/GitHubChecker.php delete mode 100644 vendor/psy/psysh/src/Psy/VersionUpdater/IntervalChecker.php delete mode 100644 vendor/psy/psysh/src/Psy/VersionUpdater/NoopChecker.php delete mode 100644 vendor/psy/psysh/src/Psy/functions.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/AutoloaderTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/AbstractClassPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/AssignThisVariablePassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/CallTimePassByReferencePassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/CalledClassPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/CodeCleanerTestCase.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/ExitPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/FinalClassPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/Fixtures/ClassWithCallStatic.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/Fixtures/ClassWithStatic.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/FunctionContextPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/FunctionReturnInWriteContextPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/ImplicitReturnPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/InstanceOfPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/LeavePsyshAlonePassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/LegacyEmptyPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/LoopContextPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/MagicConstantsPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/NamespacePassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/PassableByReferencePassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/RequirePassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/StaticConstructorPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/StrictTypesPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/UseStatementPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/ValidClassNamePassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/ValidConstantPassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleaner/ValidFunctionNamePassTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/CodeCleanerTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/ConfigurationTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/ConsoleColorFactoryTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Exception/BreakExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Exception/ErrorExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Exception/FatalErrorExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Exception/ParseErrorExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Exception/RuntimeExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Formatter/CodeFormatterTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Formatter/DocblockFormatterTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Formatter/SignatureFormatterTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Input/CodeArgumentTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Input/ShellInputTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Readline/GNUReadlineTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Readline/HoaConsoleTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Readline/LibeditTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Readline/TransientTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Reflection/ReflectionConstantTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/ShellTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/TabCompletion/AutoCompleterTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/TabCompletion/StaticSample.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Util/DocblockTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Util/MirrorTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/Util/StrTest.php delete mode 100644 vendor/psy/psysh/test/Psy/Test/VersionUpdater/GitHubCheckerTest.php delete mode 100644 vendor/psy/psysh/test/fixtures/config.php delete mode 100644 vendor/psy/psysh/test/fixtures/default/.config/psysh/config.php delete mode 100644 vendor/psy/psysh/test/fixtures/default/.config/psysh/psysh_history delete mode 100644 vendor/psy/psysh/test/fixtures/default/.local/share/psysh/php_manual.sqlite delete mode 100644 vendor/psy/psysh/test/fixtures/empty.php delete mode 100644 vendor/psy/psysh/test/fixtures/legacy/.psysh/history delete mode 100644 vendor/psy/psysh/test/fixtures/legacy/.psysh/php_manual.sqlite delete mode 100644 vendor/psy/psysh/test/fixtures/legacy/.psysh/rc.php delete mode 100644 vendor/psy/psysh/test/fixtures/mixed/.psysh/config.php delete mode 100644 vendor/psy/psysh/test/fixtures/mixed/.psysh/psysh_history delete mode 100644 vendor/psy/psysh/test/fixtures/mixed/.psysh/rc.php delete mode 100644 vendor/psy/psysh/test/fixtures/project/.psysh.php delete mode 100644 vendor/psy/psysh/test/fixtures/unvis_fixtures.json delete mode 100755 vendor/psy/psysh/test/tools/gen_unvis_fixtures.py delete mode 100755 vendor/psy/psysh/test/tools/vis.py delete mode 100644 vendor/ramsey/uuid/CHANGELOG.md delete mode 100644 vendor/ramsey/uuid/CODE_OF_CONDUCT.md delete mode 100644 vendor/ramsey/uuid/CONTRIBUTING.md delete mode 100644 vendor/ramsey/uuid/LICENSE delete mode 100644 vendor/ramsey/uuid/README.md delete mode 100644 vendor/ramsey/uuid/composer.json delete mode 100644 vendor/ramsey/uuid/docs/.gitignore delete mode 100644 vendor/ramsey/uuid/docs/Makefile delete mode 100644 vendor/ramsey/uuid/docs/_static/.gitkeep delete mode 100644 vendor/ramsey/uuid/docs/conf.py delete mode 100644 vendor/ramsey/uuid/docs/index.rst delete mode 100644 vendor/ramsey/uuid/src/BinaryUtils.php delete mode 100644 vendor/ramsey/uuid/src/Builder/DefaultUuidBuilder.php delete mode 100644 vendor/ramsey/uuid/src/Builder/DegradedUuidBuilder.php delete mode 100644 vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php delete mode 100644 vendor/ramsey/uuid/src/Codec/CodecInterface.php delete mode 100644 vendor/ramsey/uuid/src/Codec/GuidStringCodec.php delete mode 100644 vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php delete mode 100644 vendor/ramsey/uuid/src/Codec/StringCodec.php delete mode 100644 vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php delete mode 100644 vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php delete mode 100644 vendor/ramsey/uuid/src/DegradedUuid.php delete mode 100644 vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php delete mode 100644 vendor/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php delete mode 100644 vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php delete mode 100644 vendor/ramsey/uuid/src/FeatureSet.php delete mode 100644 vendor/ramsey/uuid/src/Generator/CombGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/MtRandGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/OpenSslGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php delete mode 100644 vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php delete mode 100644 vendor/ramsey/uuid/src/Generator/RandomLibAdapter.php delete mode 100644 vendor/ramsey/uuid/src/Generator/SodiumRandomGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php delete mode 100644 vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php delete mode 100644 vendor/ramsey/uuid/src/Uuid.php delete mode 100644 vendor/ramsey/uuid/src/UuidFactory.php delete mode 100644 vendor/ramsey/uuid/src/UuidFactoryInterface.php delete mode 100644 vendor/ramsey/uuid/src/UuidInterface.php delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/.gitignore delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/.php_cs delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/.travis.yml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/ChangeLog.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/LICENSE delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/README.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/build.xml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/composer.json delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/phpunit.xml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/src/Wizard.php delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/tests/WizardTest.php delete mode 100644 vendor/sebastian/comparator/.gitignore delete mode 100644 vendor/sebastian/comparator/.php_cs.dist delete mode 100644 vendor/sebastian/comparator/.travis.yml delete mode 100644 vendor/sebastian/comparator/ChangeLog.md delete mode 100644 vendor/sebastian/comparator/LICENSE delete mode 100644 vendor/sebastian/comparator/README.md delete mode 100644 vendor/sebastian/comparator/build.xml delete mode 100644 vendor/sebastian/comparator/composer.json delete mode 100644 vendor/sebastian/comparator/phpunit.xml delete mode 100644 vendor/sebastian/comparator/src/ArrayComparator.php delete mode 100644 vendor/sebastian/comparator/src/Comparator.php delete mode 100644 vendor/sebastian/comparator/src/ComparisonFailure.php delete mode 100644 vendor/sebastian/comparator/src/DOMNodeComparator.php delete mode 100644 vendor/sebastian/comparator/src/DateTimeComparator.php delete mode 100644 vendor/sebastian/comparator/src/DoubleComparator.php delete mode 100644 vendor/sebastian/comparator/src/ExceptionComparator.php delete mode 100644 vendor/sebastian/comparator/src/Factory.php delete mode 100644 vendor/sebastian/comparator/src/MockObjectComparator.php delete mode 100644 vendor/sebastian/comparator/src/NumericComparator.php delete mode 100644 vendor/sebastian/comparator/src/ObjectComparator.php delete mode 100644 vendor/sebastian/comparator/src/ResourceComparator.php delete mode 100644 vendor/sebastian/comparator/src/ScalarComparator.php delete mode 100644 vendor/sebastian/comparator/src/SplObjectStorageComparator.php delete mode 100644 vendor/sebastian/comparator/src/TypeComparator.php delete mode 100644 vendor/sebastian/comparator/tests/ArrayComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ComparisonFailureTest.php delete mode 100644 vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/DateTimeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/DoubleComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ExceptionComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/FactoryTest.php delete mode 100644 vendor/sebastian/comparator/tests/MockObjectComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/NumericComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ObjectComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ResourceComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ScalarComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/TypeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Author.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Book.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/ClassWithToString.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/SampleClass.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Struct.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/TestClass.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/TestClassComparator.php delete mode 100644 vendor/sebastian/diff/.gitignore delete mode 100644 vendor/sebastian/diff/.php_cs delete mode 100644 vendor/sebastian/diff/.travis.yml delete mode 100644 vendor/sebastian/diff/ChangeLog.md delete mode 100644 vendor/sebastian/diff/LICENSE delete mode 100644 vendor/sebastian/diff/README.md delete mode 100644 vendor/sebastian/diff/build.xml delete mode 100644 vendor/sebastian/diff/composer.json delete mode 100644 vendor/sebastian/diff/phpunit.xml delete mode 100644 vendor/sebastian/diff/src/Chunk.php delete mode 100644 vendor/sebastian/diff/src/Diff.php delete mode 100644 vendor/sebastian/diff/src/Differ.php delete mode 100644 vendor/sebastian/diff/src/Exception/Exception.php delete mode 100644 vendor/sebastian/diff/src/Exception/InvalidArgumentException.php delete mode 100644 vendor/sebastian/diff/src/Line.php delete mode 100644 vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php delete mode 100644 vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Parser.php delete mode 100644 vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/tests/ChunkTest.php delete mode 100644 vendor/sebastian/diff/tests/DiffTest.php delete mode 100644 vendor/sebastian/diff/tests/DifferTest.php delete mode 100644 vendor/sebastian/diff/tests/DifferTestTest.php delete mode 100644 vendor/sebastian/diff/tests/LineTest.php delete mode 100644 vendor/sebastian/diff/tests/LongestCommonSubsequenceTest.php delete mode 100644 vendor/sebastian/diff/tests/MemoryEfficientImplementationTest.php delete mode 100644 vendor/sebastian/diff/tests/ParserTest.php delete mode 100644 vendor/sebastian/diff/tests/TimeEfficientImplementationTest.php delete mode 100644 vendor/sebastian/diff/tests/fixtures/patch.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/patch2.txt delete mode 100644 vendor/sebastian/environment/.gitignore delete mode 100644 vendor/sebastian/environment/.php_cs delete mode 100644 vendor/sebastian/environment/.travis.yml delete mode 100644 vendor/sebastian/environment/ChangeLog.md delete mode 100644 vendor/sebastian/environment/LICENSE delete mode 100644 vendor/sebastian/environment/README.md delete mode 100644 vendor/sebastian/environment/build.xml delete mode 100644 vendor/sebastian/environment/composer.json delete mode 100644 vendor/sebastian/environment/phpunit.xml delete mode 100644 vendor/sebastian/environment/src/Console.php delete mode 100644 vendor/sebastian/environment/src/OperatingSystem.php delete mode 100644 vendor/sebastian/environment/src/Runtime.php delete mode 100644 vendor/sebastian/environment/tests/ConsoleTest.php delete mode 100644 vendor/sebastian/environment/tests/OperatingSystemTest.php delete mode 100644 vendor/sebastian/environment/tests/RuntimeTest.php delete mode 100644 vendor/sebastian/exporter/.gitignore delete mode 100644 vendor/sebastian/exporter/.php_cs delete mode 100644 vendor/sebastian/exporter/.travis.yml delete mode 100644 vendor/sebastian/exporter/LICENSE delete mode 100644 vendor/sebastian/exporter/README.md delete mode 100644 vendor/sebastian/exporter/build.xml delete mode 100644 vendor/sebastian/exporter/composer.json delete mode 100644 vendor/sebastian/exporter/phpunit.xml delete mode 100644 vendor/sebastian/exporter/src/Exporter.php delete mode 100644 vendor/sebastian/exporter/tests/ExporterTest.php delete mode 100644 vendor/sebastian/global-state/.gitignore delete mode 100644 vendor/sebastian/global-state/.php_cs delete mode 100644 vendor/sebastian/global-state/.travis.yml delete mode 100644 vendor/sebastian/global-state/LICENSE delete mode 100644 vendor/sebastian/global-state/README.md delete mode 100644 vendor/sebastian/global-state/build.xml delete mode 100644 vendor/sebastian/global-state/composer.json delete mode 100644 vendor/sebastian/global-state/phpunit.xml delete mode 100644 vendor/sebastian/global-state/src/Blacklist.php delete mode 100644 vendor/sebastian/global-state/src/CodeExporter.php delete mode 100644 vendor/sebastian/global-state/src/Restorer.php delete mode 100644 vendor/sebastian/global-state/src/Snapshot.php delete mode 100644 vendor/sebastian/global-state/src/exceptions/Exception.php delete mode 100644 vendor/sebastian/global-state/src/exceptions/RuntimeException.php delete mode 100644 vendor/sebastian/global-state/tests/BlacklistTest.php delete mode 100644 vendor/sebastian/global-state/tests/CodeExporterTest.php delete mode 100644 vendor/sebastian/global-state/tests/RestorerTest.php delete mode 100644 vendor/sebastian/global-state/tests/SnapshotTest.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedChildClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedImplementor.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedInterface.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotDomDocument.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotFunctions.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotTrait.php delete mode 100644 vendor/sebastian/object-enumerator/.gitignore delete mode 100644 vendor/sebastian/object-enumerator/.php_cs delete mode 100644 vendor/sebastian/object-enumerator/.travis.yml delete mode 100644 vendor/sebastian/object-enumerator/ChangeLog.md delete mode 100644 vendor/sebastian/object-enumerator/LICENSE delete mode 100644 vendor/sebastian/object-enumerator/README.md delete mode 100644 vendor/sebastian/object-enumerator/build.xml delete mode 100644 vendor/sebastian/object-enumerator/composer.json delete mode 100644 vendor/sebastian/object-enumerator/phpunit.xml delete mode 100644 vendor/sebastian/object-enumerator/src/Enumerator.php delete mode 100644 vendor/sebastian/object-enumerator/src/Exception.php delete mode 100644 vendor/sebastian/object-enumerator/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/object-enumerator/tests/EnumeratorTest.php delete mode 100644 vendor/sebastian/object-enumerator/tests/_fixture/ExceptionThrower.php delete mode 100644 vendor/sebastian/object-reflector/.gitignore delete mode 100644 vendor/sebastian/object-reflector/.php_cs delete mode 100644 vendor/sebastian/object-reflector/.travis.yml delete mode 100644 vendor/sebastian/object-reflector/ChangeLog.md delete mode 100644 vendor/sebastian/object-reflector/LICENSE delete mode 100644 vendor/sebastian/object-reflector/README.md delete mode 100644 vendor/sebastian/object-reflector/build.xml delete mode 100644 vendor/sebastian/object-reflector/composer.json delete mode 100644 vendor/sebastian/object-reflector/phpunit.xml delete mode 100644 vendor/sebastian/object-reflector/src/Exception.php delete mode 100644 vendor/sebastian/object-reflector/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/object-reflector/src/ObjectReflector.php delete mode 100644 vendor/sebastian/object-reflector/tests/ObjectReflectorTest.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ChildClass.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ClassWithIntegerAttributeName.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ParentClass.php delete mode 100644 vendor/sebastian/recursion-context/.gitignore delete mode 100644 vendor/sebastian/recursion-context/.travis.yml delete mode 100644 vendor/sebastian/recursion-context/LICENSE delete mode 100644 vendor/sebastian/recursion-context/README.md delete mode 100644 vendor/sebastian/recursion-context/build.xml delete mode 100644 vendor/sebastian/recursion-context/composer.json delete mode 100644 vendor/sebastian/recursion-context/phpunit.xml delete mode 100644 vendor/sebastian/recursion-context/src/Context.php delete mode 100644 vendor/sebastian/recursion-context/src/Exception.php delete mode 100644 vendor/sebastian/recursion-context/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/recursion-context/tests/ContextTest.php delete mode 100644 vendor/sebastian/resource-operations/.gitignore delete mode 100644 vendor/sebastian/resource-operations/LICENSE delete mode 100644 vendor/sebastian/resource-operations/README.md delete mode 100644 vendor/sebastian/resource-operations/build.xml delete mode 100755 vendor/sebastian/resource-operations/build/generate.php delete mode 100644 vendor/sebastian/resource-operations/composer.json delete mode 100644 vendor/sebastian/resource-operations/src/ResourceOperations.php delete mode 100644 vendor/sebastian/version/.gitattributes delete mode 100644 vendor/sebastian/version/.gitignore delete mode 100644 vendor/sebastian/version/.php_cs delete mode 100644 vendor/sebastian/version/LICENSE delete mode 100644 vendor/sebastian/version/README.md delete mode 100644 vendor/sebastian/version/composer.json delete mode 100644 vendor/sebastian/version/src/Version.php delete mode 100644 vendor/swiftmailer/swiftmailer/.gitattributes delete mode 100644 vendor/swiftmailer/swiftmailer/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/swiftmailer/swiftmailer/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 vendor/swiftmailer/swiftmailer/.gitignore delete mode 100644 vendor/swiftmailer/swiftmailer/.php_cs.dist delete mode 100644 vendor/swiftmailer/swiftmailer/.travis.yml delete mode 100644 vendor/swiftmailer/swiftmailer/CHANGES delete mode 100644 vendor/swiftmailer/swiftmailer/LICENSE delete mode 100644 vendor/swiftmailer/swiftmailer/README delete mode 100644 vendor/swiftmailer/swiftmailer/composer.json delete mode 100644 vendor/swiftmailer/swiftmailer/doc/headers.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/index.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/introduction.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/japanese.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/messages.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/plugins.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/sending.rst delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Attachment.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/EmbeddedFile.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Base64Encoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/Event.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventDispatcher.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventObject.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SimpleEventDispatcher.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FailoverTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Filterable.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/IdGenerator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Image.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/IoException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/ArrayKeyCache.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/NullKeyCache.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/SimpleKeyCacheInputStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Header.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/Base64HeaderEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/AbstractHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimePart.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/AntiFloodPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/LoggerPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Exception.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/PopBeforeSmtpPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ReporterPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ThrottlerPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Preferences.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/RfcComplianceException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SendmailTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/ByteArrayReplacementFilter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpHandler.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SmtpAgent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SpoolTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/cache_deps.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/mime_types.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/preferences.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/swift_required.php delete mode 100755 vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php delete mode 100644 vendor/swiftmailer/swiftmailer/phpunit.xml.dist delete mode 100644 vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/StreamCollector.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/SwiftMailerSmokeTestCase.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/SwiftMailerTestCase.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/iso-2022-jp/one.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/iso-8859-1/one.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/one.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/three.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/two.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/dkim/dkim.test.priv delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/dkim/dkim.test.pub delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/data.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/swiftmailer.png delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/textfile.zip delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/CA.srl delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/ca.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/ca.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/create-cert.sh delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt2.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt2.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/intermediate.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/intermediate.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign2.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign2.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance.conf.php.default delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/AttachmentAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/ByteStream/FileByteStreamAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/CharacterReaderFactory/SimpleCharacterReaderFactoryAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/DependencyContainerAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EmbeddedFileAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Base64EncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/ArrayKeyCacheAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/DiskKeyCacheAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MessageAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/Base64ContentEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/NativeQpContentEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/PlainContentEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/HeaderEncoder/Base64HeaderEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/SimpleMessageAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MimePartAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/AbstractStreamBufferAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/BasicSocketAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/ProcessAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SocketTimeoutTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SslSocketAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/TlsSocketAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bootstrap.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug111Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug118Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug274Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug34Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug35Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug38Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug518Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug51Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug534Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug650Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug71Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug76Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/BugFileByteStreamConsecutiveReadCallsTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/fixtures/MimeEntityFixture.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke.conf.php.default delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/AttachmentSmokeTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/BasicSmokeTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/HtmlWithAttachmentSmokeTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/InternationalSmokeTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/ByteStream/ArrayByteStreamTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/GenericFixedWidthReaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/UsAsciiReaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/Utf8ReaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/DependencyContainerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Base64EncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/QpEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Rfc2231EncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/CommandEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/EventObjectTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/ResponseEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SendEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SimpleEventDispatcherTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportChangeEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportExceptionEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/ArrayKeyCacheTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/SimpleKeyCacheInputStreamTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mailer/ArrayRecipientIteratorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/MailerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/MessageTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AbstractMimeEntityTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AttachmentTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/Base64ContentEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/PlainContentEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/QpContentEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/EmbeddedFileTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/Base64HeaderEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/QpHeaderEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/DateHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/IdentificationHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/MailboxHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/ParameterizedHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/PathHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/UnstructuredHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/IdGeneratorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/MimePartTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderFactoryTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderSetTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMessageTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMimeEntityTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/AntiFloodPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/BandwidthMonitorPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/DecoratorPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/LoggerPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/ArrayLoggerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/EchoLoggerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/PopBeforeSmtpPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/RedirectingPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ReporterPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HitReporterTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HtmlReporterTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ThrottlerPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/DKIMSignerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/OpenDKIMSignerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/SMimeSignerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/ByteArrayReplacementFilterTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterFactoryTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpEventSupportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/CramMd5AuthenticatorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/LoginAuthenticatorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/PlainAuthenticatorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/AuthHandlerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransport/ExtensionSupportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/FailoverTransportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/LoadBalancedTransportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/SendmailTransportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/StreamBufferTest.php delete mode 100644 vendor/symfony/console/.gitignore delete mode 100644 vendor/symfony/console/Application.php delete mode 100644 vendor/symfony/console/CHANGELOG.md delete mode 100644 vendor/symfony/console/Command/Command.php delete mode 100644 vendor/symfony/console/Command/HelpCommand.php delete mode 100644 vendor/symfony/console/Command/ListCommand.php delete mode 100644 vendor/symfony/console/Command/LockableTrait.php delete mode 100644 vendor/symfony/console/CommandLoader/CommandLoaderInterface.php delete mode 100644 vendor/symfony/console/CommandLoader/ContainerCommandLoader.php delete mode 100644 vendor/symfony/console/CommandLoader/FactoryCommandLoader.php delete mode 100644 vendor/symfony/console/ConsoleEvents.php delete mode 100644 vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php delete mode 100644 vendor/symfony/console/Descriptor/ApplicationDescription.php delete mode 100644 vendor/symfony/console/Descriptor/Descriptor.php delete mode 100644 vendor/symfony/console/Descriptor/DescriptorInterface.php delete mode 100644 vendor/symfony/console/Descriptor/JsonDescriptor.php delete mode 100644 vendor/symfony/console/Descriptor/MarkdownDescriptor.php delete mode 100644 vendor/symfony/console/Descriptor/TextDescriptor.php delete mode 100644 vendor/symfony/console/Descriptor/XmlDescriptor.php delete mode 100644 vendor/symfony/console/Event/ConsoleCommandEvent.php delete mode 100644 vendor/symfony/console/Event/ConsoleErrorEvent.php delete mode 100644 vendor/symfony/console/Event/ConsoleEvent.php delete mode 100644 vendor/symfony/console/Event/ConsoleExceptionEvent.php delete mode 100644 vendor/symfony/console/Event/ConsoleTerminateEvent.php delete mode 100644 vendor/symfony/console/EventListener/ErrorListener.php delete mode 100644 vendor/symfony/console/Exception/CommandNotFoundException.php delete mode 100644 vendor/symfony/console/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/console/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/console/Exception/InvalidOptionException.php delete mode 100644 vendor/symfony/console/Exception/LogicException.php delete mode 100644 vendor/symfony/console/Exception/RuntimeException.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatter.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatterInterface.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatterStyle.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatterStyleStack.php delete mode 100644 vendor/symfony/console/Helper/DebugFormatterHelper.php delete mode 100644 vendor/symfony/console/Helper/DescriptorHelper.php delete mode 100644 vendor/symfony/console/Helper/FormatterHelper.php delete mode 100644 vendor/symfony/console/Helper/Helper.php delete mode 100644 vendor/symfony/console/Helper/HelperInterface.php delete mode 100644 vendor/symfony/console/Helper/HelperSet.php delete mode 100644 vendor/symfony/console/Helper/InputAwareHelper.php delete mode 100644 vendor/symfony/console/Helper/ProcessHelper.php delete mode 100644 vendor/symfony/console/Helper/ProgressBar.php delete mode 100644 vendor/symfony/console/Helper/ProgressIndicator.php delete mode 100644 vendor/symfony/console/Helper/QuestionHelper.php delete mode 100644 vendor/symfony/console/Helper/SymfonyQuestionHelper.php delete mode 100644 vendor/symfony/console/Helper/Table.php delete mode 100644 vendor/symfony/console/Helper/TableCell.php delete mode 100644 vendor/symfony/console/Helper/TableSeparator.php delete mode 100644 vendor/symfony/console/Helper/TableStyle.php delete mode 100644 vendor/symfony/console/Input/ArgvInput.php delete mode 100644 vendor/symfony/console/Input/ArrayInput.php delete mode 100644 vendor/symfony/console/Input/Input.php delete mode 100644 vendor/symfony/console/Input/InputArgument.php delete mode 100644 vendor/symfony/console/Input/InputAwareInterface.php delete mode 100644 vendor/symfony/console/Input/InputDefinition.php delete mode 100644 vendor/symfony/console/Input/InputInterface.php delete mode 100644 vendor/symfony/console/Input/InputOption.php delete mode 100644 vendor/symfony/console/Input/StreamableInputInterface.php delete mode 100644 vendor/symfony/console/Input/StringInput.php delete mode 100644 vendor/symfony/console/LICENSE delete mode 100644 vendor/symfony/console/Logger/ConsoleLogger.php delete mode 100644 vendor/symfony/console/Output/BufferedOutput.php delete mode 100644 vendor/symfony/console/Output/ConsoleOutput.php delete mode 100644 vendor/symfony/console/Output/ConsoleOutputInterface.php delete mode 100644 vendor/symfony/console/Output/NullOutput.php delete mode 100644 vendor/symfony/console/Output/Output.php delete mode 100644 vendor/symfony/console/Output/OutputInterface.php delete mode 100644 vendor/symfony/console/Output/StreamOutput.php delete mode 100644 vendor/symfony/console/Question/ChoiceQuestion.php delete mode 100644 vendor/symfony/console/Question/ConfirmationQuestion.php delete mode 100644 vendor/symfony/console/Question/Question.php delete mode 100644 vendor/symfony/console/README.md delete mode 100644 vendor/symfony/console/Resources/bin/hiddeninput.exe delete mode 100644 vendor/symfony/console/Style/OutputStyle.php delete mode 100644 vendor/symfony/console/Style/StyleInterface.php delete mode 100644 vendor/symfony/console/Style/SymfonyStyle.php delete mode 100644 vendor/symfony/console/Terminal.php delete mode 100644 vendor/symfony/console/Tester/ApplicationTester.php delete mode 100644 vendor/symfony/console/Tester/CommandTester.php delete mode 100644 vendor/symfony/console/Tests/ApplicationTest.php delete mode 100644 vendor/symfony/console/Tests/Command/CommandTest.php delete mode 100644 vendor/symfony/console/Tests/Command/HelpCommandTest.php delete mode 100644 vendor/symfony/console/Tests/Command/ListCommandTest.php delete mode 100644 vendor/symfony/console/Tests/Command/LockableTraitTest.php delete mode 100644 vendor/symfony/console/Tests/CommandLoader/ContainerCommandLoaderTest.php delete mode 100644 vendor/symfony/console/Tests/CommandLoader/FactoryCommandLoaderTest.php delete mode 100644 vendor/symfony/console/Tests/DependencyInjection/AddConsoleCommandPassTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/EventListener/ErrorListenerTest.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/BarBucCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommand3.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommand4.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommandMbString.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DummyOutput.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo1Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo2Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo3Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo4Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo5Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo6Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooLock2Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooLockCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooOptCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooSameCaseLowercaseCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooSameCaseUppercaseCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FoobarCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_10.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_11.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_12.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_13.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_14.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_15.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_16.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_17.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_8.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_9.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/interactive_command_1.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/interactive_output_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_10.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_11.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_12.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_13.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_14.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_15.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_16.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_17.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_8.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_9.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/TestCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/TestTiti.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/TestToto.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_filtered_namespace.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_gethelp.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_mbstring.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_mbstring.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_escapeslines.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_linebreaks.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_run1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_run2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_run3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_run4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_mbstring.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_mbstring.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_3.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_3.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_3.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_4.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_4.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_4.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_style.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_style.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_style.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_style.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_3.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_3.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_3.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_4.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_4.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_4.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_3.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_3.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_3.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_4.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_4.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_4.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_5.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_5.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_5.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_5.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_6.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_6.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_6.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_6.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.xml delete mode 100644 vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php delete mode 100644 vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php delete mode 100644 vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/AbstractQuestionHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/FormatterHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/HelperSetTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/HelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/ProcessHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/ProgressBarTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/ProgressIndicatorTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/QuestionHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/SymfonyQuestionHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/TableStyleTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/TableTest.php delete mode 100644 vendor/symfony/console/Tests/Input/ArgvInputTest.php delete mode 100644 vendor/symfony/console/Tests/Input/ArrayInputTest.php delete mode 100644 vendor/symfony/console/Tests/Input/InputArgumentTest.php delete mode 100644 vendor/symfony/console/Tests/Input/InputDefinitionTest.php delete mode 100644 vendor/symfony/console/Tests/Input/InputOptionTest.php delete mode 100644 vendor/symfony/console/Tests/Input/InputTest.php delete mode 100644 vendor/symfony/console/Tests/Input/StringInputTest.php delete mode 100644 vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php delete mode 100644 vendor/symfony/console/Tests/Output/ConsoleOutputTest.php delete mode 100644 vendor/symfony/console/Tests/Output/NullOutputTest.php delete mode 100644 vendor/symfony/console/Tests/Output/OutputTest.php delete mode 100644 vendor/symfony/console/Tests/Output/StreamOutputTest.php delete mode 100644 vendor/symfony/console/Tests/Style/SymfonyStyleTest.php delete mode 100644 vendor/symfony/console/Tests/TerminalTest.php delete mode 100644 vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php delete mode 100644 vendor/symfony/console/Tests/Tester/CommandTesterTest.php delete mode 100644 vendor/symfony/console/composer.json delete mode 100644 vendor/symfony/console/phpunit.xml.dist delete mode 100644 vendor/symfony/css-selector/.gitignore delete mode 100644 vendor/symfony/css-selector/CHANGELOG.md delete mode 100644 vendor/symfony/css-selector/CssSelectorConverter.php delete mode 100644 vendor/symfony/css-selector/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/css-selector/Exception/ExpressionErrorException.php delete mode 100644 vendor/symfony/css-selector/Exception/InternalErrorException.php delete mode 100644 vendor/symfony/css-selector/Exception/ParseException.php delete mode 100644 vendor/symfony/css-selector/Exception/SyntaxErrorException.php delete mode 100644 vendor/symfony/css-selector/LICENSE delete mode 100644 vendor/symfony/css-selector/Node/AbstractNode.php delete mode 100644 vendor/symfony/css-selector/Node/AttributeNode.php delete mode 100644 vendor/symfony/css-selector/Node/ClassNode.php delete mode 100644 vendor/symfony/css-selector/Node/CombinedSelectorNode.php delete mode 100644 vendor/symfony/css-selector/Node/ElementNode.php delete mode 100644 vendor/symfony/css-selector/Node/FunctionNode.php delete mode 100644 vendor/symfony/css-selector/Node/HashNode.php delete mode 100644 vendor/symfony/css-selector/Node/NegationNode.php delete mode 100644 vendor/symfony/css-selector/Node/NodeInterface.php delete mode 100644 vendor/symfony/css-selector/Node/PseudoNode.php delete mode 100644 vendor/symfony/css-selector/Node/SelectorNode.php delete mode 100644 vendor/symfony/css-selector/Node/Specificity.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/CommentHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/HandlerInterface.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/HashHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/NumberHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/StringHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/WhitespaceHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Parser.php delete mode 100644 vendor/symfony/css-selector/Parser/ParserInterface.php delete mode 100644 vendor/symfony/css-selector/Parser/Reader.php delete mode 100644 vendor/symfony/css-selector/Parser/Shortcut/ClassParser.php delete mode 100644 vendor/symfony/css-selector/Parser/Shortcut/ElementParser.php delete mode 100644 vendor/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php delete mode 100644 vendor/symfony/css-selector/Parser/Shortcut/HashParser.php delete mode 100644 vendor/symfony/css-selector/Parser/Token.php delete mode 100644 vendor/symfony/css-selector/Parser/TokenStream.php delete mode 100644 vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php delete mode 100644 vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php delete mode 100644 vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php delete mode 100644 vendor/symfony/css-selector/README.md delete mode 100644 vendor/symfony/css-selector/Tests/CssSelectorConverterTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/AbstractNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/AttributeNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/ClassNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/CombinedSelectorNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/ElementNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/FunctionNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/HashNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/NegationNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/PseudoNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/SelectorNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/SpecificityTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/AbstractHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/CommentHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/HashHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/IdentifierHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/NumberHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/StringHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/WhitespaceHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/ParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/ReaderTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Shortcut/ClassParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Shortcut/ElementParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Shortcut/EmptyStringParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Shortcut/HashParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/TokenStreamTest.php delete mode 100644 vendor/symfony/css-selector/Tests/XPath/Fixtures/ids.html delete mode 100644 vendor/symfony/css-selector/Tests/XPath/Fixtures/lang.xml delete mode 100644 vendor/symfony/css-selector/Tests/XPath/Fixtures/shakespear.html delete mode 100644 vendor/symfony/css-selector/Tests/XPath/TranslatorTest.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/AbstractExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/ExtensionInterface.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/NodeExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Translator.php delete mode 100644 vendor/symfony/css-selector/XPath/TranslatorInterface.php delete mode 100644 vendor/symfony/css-selector/XPath/XPathExpr.php delete mode 100644 vendor/symfony/css-selector/composer.json delete mode 100644 vendor/symfony/css-selector/phpunit.xml.dist delete mode 100644 vendor/symfony/debug/.gitignore delete mode 100644 vendor/symfony/debug/BufferingLogger.php delete mode 100644 vendor/symfony/debug/CHANGELOG.md delete mode 100644 vendor/symfony/debug/Debug.php delete mode 100644 vendor/symfony/debug/DebugClassLoader.php delete mode 100644 vendor/symfony/debug/ErrorHandler.php delete mode 100644 vendor/symfony/debug/Exception/ClassNotFoundException.php delete mode 100644 vendor/symfony/debug/Exception/ContextErrorException.php delete mode 100644 vendor/symfony/debug/Exception/FatalErrorException.php delete mode 100644 vendor/symfony/debug/Exception/FatalThrowableError.php delete mode 100644 vendor/symfony/debug/Exception/FlattenException.php delete mode 100644 vendor/symfony/debug/Exception/OutOfMemoryException.php delete mode 100644 vendor/symfony/debug/Exception/SilencedErrorContext.php delete mode 100644 vendor/symfony/debug/Exception/UndefinedFunctionException.php delete mode 100644 vendor/symfony/debug/Exception/UndefinedMethodException.php delete mode 100644 vendor/symfony/debug/ExceptionHandler.php delete mode 100644 vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php delete mode 100644 vendor/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php delete mode 100644 vendor/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php delete mode 100644 vendor/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php delete mode 100644 vendor/symfony/debug/LICENSE delete mode 100644 vendor/symfony/debug/README.md delete mode 100644 vendor/symfony/debug/Resources/ext/README.md delete mode 100644 vendor/symfony/debug/Resources/ext/config.m4 delete mode 100644 vendor/symfony/debug/Resources/ext/config.w32 delete mode 100644 vendor/symfony/debug/Resources/ext/php_symfony_debug.h delete mode 100644 vendor/symfony/debug/Resources/ext/symfony_debug.c delete mode 100644 vendor/symfony/debug/Resources/ext/tests/001.phpt delete mode 100644 vendor/symfony/debug/Resources/ext/tests/002.phpt delete mode 100644 vendor/symfony/debug/Resources/ext/tests/002_1.phpt delete mode 100644 vendor/symfony/debug/Resources/ext/tests/003.phpt delete mode 100644 vendor/symfony/debug/Tests/DebugClassLoaderTest.php delete mode 100644 vendor/symfony/debug/Tests/ErrorHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/Exception/FlattenExceptionTest.php delete mode 100644 vendor/symfony/debug/Tests/ExceptionHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedFunctionFatalErrorHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedMethodFatalErrorHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/AnnotatedClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/ClassAlias.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/DeprecatedClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/DeprecatedInterface.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/ExtendedFinalMethod.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/FinalClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/FinalMethod.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/InternalClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/InternalInterface.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/InternalTrait.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/InternalTrait2.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/NonDeprecatedInterface.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/PEARClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/Throwing.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/ToStringThrower.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/casemismatch.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/notPsr0Bis.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/psr4/Psr4CaseMismatch.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/reallyNotPsr0.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures2/RequiredTwice.php delete mode 100644 vendor/symfony/debug/Tests/HeaderMock.php delete mode 100644 vendor/symfony/debug/Tests/MockExceptionHandler.php delete mode 100644 vendor/symfony/debug/Tests/phpt/debug_class_loader.phpt delete mode 100644 vendor/symfony/debug/Tests/phpt/decorate_exception_hander.phpt delete mode 100644 vendor/symfony/debug/Tests/phpt/exception_rethrown.phpt delete mode 100644 vendor/symfony/debug/Tests/phpt/fatal_with_nested_handlers.phpt delete mode 100644 vendor/symfony/debug/composer.json delete mode 100644 vendor/symfony/debug/phpunit.xml.dist delete mode 100644 vendor/symfony/event-dispatcher/.gitignore delete mode 100644 vendor/symfony/event-dispatcher/CHANGELOG.md delete mode 100644 vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php delete mode 100644 vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php delete mode 100644 vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php delete mode 100644 vendor/symfony/event-dispatcher/Debug/WrappedListener.php delete mode 100644 vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php delete mode 100644 vendor/symfony/event-dispatcher/Event.php delete mode 100644 vendor/symfony/event-dispatcher/EventDispatcher.php delete mode 100644 vendor/symfony/event-dispatcher/EventDispatcherInterface.php delete mode 100644 vendor/symfony/event-dispatcher/EventSubscriberInterface.php delete mode 100644 vendor/symfony/event-dispatcher/GenericEvent.php delete mode 100644 vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php delete mode 100644 vendor/symfony/event-dispatcher/LICENSE delete mode 100644 vendor/symfony/event-dispatcher/README.md delete mode 100644 vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/ContainerAwareEventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/EventTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/GenericEventTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/ImmutableEventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/composer.json delete mode 100644 vendor/symfony/event-dispatcher/phpunit.xml.dist delete mode 100644 vendor/symfony/finder/.gitignore delete mode 100644 vendor/symfony/finder/CHANGELOG.md delete mode 100644 vendor/symfony/finder/Comparator/Comparator.php delete mode 100644 vendor/symfony/finder/Comparator/DateComparator.php delete mode 100644 vendor/symfony/finder/Comparator/NumberComparator.php delete mode 100644 vendor/symfony/finder/Exception/AccessDeniedException.php delete mode 100644 vendor/symfony/finder/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/finder/Finder.php delete mode 100644 vendor/symfony/finder/Glob.php delete mode 100644 vendor/symfony/finder/Iterator/CustomFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/DateRangeFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/FileTypeFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/FilecontentFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/FilenameFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/FilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/PathFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php delete mode 100644 vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/SortableIterator.php delete mode 100644 vendor/symfony/finder/LICENSE delete mode 100644 vendor/symfony/finder/README.md delete mode 100644 vendor/symfony/finder/SplFileInfo.php delete mode 100644 vendor/symfony/finder/Tests/Comparator/ComparatorTest.php delete mode 100644 vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php delete mode 100644 vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php delete mode 100644 vendor/symfony/finder/Tests/FinderTest.php delete mode 100644 vendor/symfony/finder/Tests/Fixtures/.dot/a delete mode 100644 vendor/symfony/finder/Tests/Fixtures/.dot/b/c.neon delete mode 100644 vendor/symfony/finder/Tests/Fixtures/.dot/b/d.neon delete mode 100644 vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat delete mode 100644 vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat delete mode 100644 vendor/symfony/finder/Tests/Fixtures/A/a.dat delete mode 100644 vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy delete mode 100644 vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy delete mode 100644 vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy delete mode 100644 vendor/symfony/finder/Tests/Fixtures/dolor.txt delete mode 100644 vendor/symfony/finder/Tests/Fixtures/ipsum.txt delete mode 100644 vendor/symfony/finder/Tests/Fixtures/lorem.txt delete mode 100644 vendor/symfony/finder/Tests/Fixtures/one/.dot delete mode 100644 vendor/symfony/finder/Tests/Fixtures/one/a delete mode 100644 vendor/symfony/finder/Tests/Fixtures/one/b/c.neon delete mode 100644 vendor/symfony/finder/Tests/Fixtures/one/b/d.neon delete mode 100644 vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat delete mode 100644 vendor/symfony/finder/Tests/Fixtures/with space/foo.txt delete mode 100644 vendor/symfony/finder/Tests/GlobTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/Iterator.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php delete mode 100644 vendor/symfony/finder/composer.json delete mode 100644 vendor/symfony/finder/phpunit.xml.dist delete mode 100644 vendor/symfony/http-foundation/.gitignore delete mode 100644 vendor/symfony/http-foundation/AcceptHeader.php delete mode 100644 vendor/symfony/http-foundation/AcceptHeaderItem.php delete mode 100644 vendor/symfony/http-foundation/ApacheRequest.php delete mode 100644 vendor/symfony/http-foundation/BinaryFileResponse.php delete mode 100644 vendor/symfony/http-foundation/CHANGELOG.md delete mode 100644 vendor/symfony/http-foundation/Cookie.php delete mode 100644 vendor/symfony/http-foundation/Exception/ConflictingHeadersException.php delete mode 100644 vendor/symfony/http-foundation/Exception/RequestExceptionInterface.php delete mode 100644 vendor/symfony/http-foundation/Exception/SuspiciousOperationException.php delete mode 100644 vendor/symfony/http-foundation/ExpressionRequestMatcher.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/AccessDeniedException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/FileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/FileNotFoundException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/UnexpectedTypeException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/UploadException.php delete mode 100644 vendor/symfony/http-foundation/File/File.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/ExtensionGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php delete mode 100644 vendor/symfony/http-foundation/File/Stream.php delete mode 100644 vendor/symfony/http-foundation/File/UploadedFile.php delete mode 100644 vendor/symfony/http-foundation/FileBag.php delete mode 100644 vendor/symfony/http-foundation/HeaderBag.php delete mode 100644 vendor/symfony/http-foundation/IpUtils.php delete mode 100644 vendor/symfony/http-foundation/JsonResponse.php delete mode 100644 vendor/symfony/http-foundation/LICENSE delete mode 100644 vendor/symfony/http-foundation/ParameterBag.php delete mode 100644 vendor/symfony/http-foundation/README.md delete mode 100644 vendor/symfony/http-foundation/RedirectResponse.php delete mode 100644 vendor/symfony/http-foundation/Request.php delete mode 100644 vendor/symfony/http-foundation/RequestMatcher.php delete mode 100644 vendor/symfony/http-foundation/RequestMatcherInterface.php delete mode 100644 vendor/symfony/http-foundation/RequestStack.php delete mode 100644 vendor/symfony/http-foundation/Response.php delete mode 100644 vendor/symfony/http-foundation/ResponseHeaderBag.php delete mode 100644 vendor/symfony/http-foundation/ServerBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php delete mode 100644 vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Flash/FlashBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Flash/FlashBagInterface.php delete mode 100644 vendor/symfony/http-foundation/Session/Session.php delete mode 100644 vendor/symfony/http-foundation/Session/SessionBagInterface.php delete mode 100644 vendor/symfony/http-foundation/Session/SessionBagProxy.php delete mode 100644 vendor/symfony/http-foundation/Session/SessionInterface.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/MetadataBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Proxy/NativeProxy.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php delete mode 100644 vendor/symfony/http-foundation/StreamedResponse.php delete mode 100644 vendor/symfony/http-foundation/Tests/AcceptHeaderItemTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/AcceptHeaderTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ApacheRequestTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/BinaryFileResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/CookieTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ExpressionRequestMatcherTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/File/FakeFile.php delete mode 100644 vendor/symfony/http-foundation/Tests/File/FileTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/.unknownextension delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/directory/.empty delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/other-file.example delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/test delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/test.gif delete mode 100644 vendor/symfony/http-foundation/Tests/File/MimeType/MimeTypeTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/FileBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/HeaderBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/IpUtilsTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/JsonResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ParameterBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/RedirectResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/RequestMatcherTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/RequestStackTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/RequestTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ResponseHeaderBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ResponseTestCase.php delete mode 100644 vendor/symfony/http-foundation/Tests/ServerBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Attribute/AttributeBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Flash/AutoExpireFlashBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Flash/FlashBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/SessionTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/common.inc delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/empty_destroys.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/empty_destroys.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/read_only.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/read_only.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/regenerate.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/regenerate.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/storage.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/storage.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie_and_session.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie_and_session.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/StrictSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/WriteCheckSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/MetadataBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/MockArraySessionStorageTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/MockFileSessionStorageTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/NativeSessionStorageTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/NativeProxyTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/StreamedResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/schema/http-status-codes.rng delete mode 100644 vendor/symfony/http-foundation/Tests/schema/iana-registry.rng delete mode 100644 vendor/symfony/http-foundation/composer.json delete mode 100644 vendor/symfony/http-foundation/phpunit.xml.dist delete mode 100644 vendor/symfony/http-kernel/.gitignore delete mode 100644 vendor/symfony/http-kernel/Bundle/Bundle.php delete mode 100644 vendor/symfony/http-kernel/Bundle/BundleInterface.php delete mode 100644 vendor/symfony/http-kernel/CHANGELOG.md delete mode 100644 vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php delete mode 100644 vendor/symfony/http-kernel/CacheClearer/ChainCacheClearer.php delete mode 100644 vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php delete mode 100644 vendor/symfony/http-kernel/CacheWarmer/CacheWarmer.php delete mode 100644 vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php delete mode 100644 vendor/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php delete mode 100644 vendor/symfony/http-kernel/CacheWarmer/WarmableInterface.php delete mode 100644 vendor/symfony/http-kernel/Client.php delete mode 100644 vendor/symfony/http-kernel/Config/EnvParametersResource.php delete mode 100644 vendor/symfony/http-kernel/Config/FileLocator.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolverInterface.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php delete mode 100644 vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ControllerReference.php delete mode 100644 vendor/symfony/http-kernel/Controller/ControllerResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ControllerResolverInterface.php delete mode 100644 vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php delete mode 100644 vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php delete mode 100644 vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php delete mode 100644 vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/AjaxDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/DataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/EventDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/Util/ValueExporter.php delete mode 100644 vendor/symfony/http-kernel/Debug/FileLinkFormatter.php delete mode 100644 vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/AddClassesToCachePass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/Extension.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/LoggerPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/ResettableServicePass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/ServicesResetter.php delete mode 100644 vendor/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/FilterControllerEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/FilterResponseEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/FinishRequestEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/GetResponseEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/GetResponseForExceptionEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/KernelEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/PostResponseEvent.php delete mode 100644 vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/AbstractTestSessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/AddRequestFormatsListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/DumpListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/ExceptionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/FragmentListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/LocaleListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/ProfilerListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/ResponseListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/RouterListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/SaveSessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/SessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/StreamedResponseListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/SurrogateListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/TestSessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/TranslatorListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/ValidateRequestListener.php delete mode 100644 vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/BadRequestHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/ConflictHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/GoneHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/HttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/HttpExceptionInterface.php delete mode 100644 vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/NotFoundHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php delete mode 100644 vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/EsiFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/FragmentHandler.php delete mode 100644 vendor/symfony/http-kernel/Fragment/FragmentRendererInterface.php delete mode 100644 vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/SsiFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/Esi.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/HttpCache.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/Ssi.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/Store.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/StoreInterface.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php delete mode 100644 vendor/symfony/http-kernel/HttpKernel.php delete mode 100644 vendor/symfony/http-kernel/HttpKernelInterface.php delete mode 100644 vendor/symfony/http-kernel/Kernel.php delete mode 100644 vendor/symfony/http-kernel/KernelEvents.php delete mode 100644 vendor/symfony/http-kernel/KernelInterface.php delete mode 100644 vendor/symfony/http-kernel/LICENSE delete mode 100644 vendor/symfony/http-kernel/Log/DebugLoggerInterface.php delete mode 100644 vendor/symfony/http-kernel/Log/Logger.php delete mode 100644 vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php delete mode 100644 vendor/symfony/http-kernel/Profiler/Profile.php delete mode 100644 vendor/symfony/http-kernel/Profiler/Profiler.php delete mode 100644 vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php delete mode 100644 vendor/symfony/http-kernel/README.md delete mode 100644 vendor/symfony/http-kernel/RebootableInterface.php delete mode 100644 vendor/symfony/http-kernel/Resources/welcome.html.php delete mode 100644 vendor/symfony/http-kernel/TerminableInterface.php delete mode 100644 vendor/symfony/http-kernel/Tests/Bundle/BundleTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/CacheClearer/ChainCacheClearerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/CacheClearer/Psr6CacheClearerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/ClientTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Config/EnvParametersResourceTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Config/FileLocatorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ArgumentResolver/ServiceValueResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ArgumentResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ContainerControllerResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ControllerResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/ControllerMetadata/ArgumentMetadataFactoryTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/ControllerMetadata/ArgumentMetadataTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/Compiler.log delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/DataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/ExceptionDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/LoggerDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/MemoryDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/RequestDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/Util/ValueExporterTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Debug/FileLinkFormatterTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Debug/TraceableEventDispatcherTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/AddAnnotatedClassesToCachePassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/ControllerArgumentValueResolverPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/LoggerPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/RegisterControllerArgumentLocatorsPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/ResettableServicePassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/ServicesResetterTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Event/FilterControllerArgumentsEventTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Event/GetResponseForExceptionEventTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/AddRequestFormatsListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/DumpListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/ExceptionListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/FragmentListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/LocaleListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/ProfilerListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/ResponseListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/RouterListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/SaveSessionListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/SessionListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/SurrogateListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/TestSessionListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/TranslatorListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/ValidateRequestListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/AccessDeniedHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/BadRequestHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/ConflictHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/GoneHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/HttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/LengthRequiredHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/MethodNotAllowedHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/NotAcceptableHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/NotFoundHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/PreconditionFailedHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/PreconditionRequiredHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/ServiceUnavailableHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/TooManyRequestsHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/UnauthorizedHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/UnprocessableEntityHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/UnsupportedMediaTypeHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/123/Kernel123.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/BaseBundle/Resources/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/BaseBundle/Resources/hide.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/Resources/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/bar.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Bundle2Bundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/hide.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ClearableService.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/BasicTypesController.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/ExtendingRequest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/ExtendingSession.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/NullableController.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/VariadicController.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/DataCollector/CloneVarDataCollector.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/DependencyInjection/ExtensionNotValidExtension.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/ExtensionNotValidBundle.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/KernelForOverrideName.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/KernelForTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/KernelWithoutBundles.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ResettableService.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Resources/BaseBundle/hide.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Resources/ChildBundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Resources/FooBundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/TestClient.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/TestEventDispatcher.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/EsiFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/FragmentHandlerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/HIncludeFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/InlineFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/RoutableFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/SsiFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/EsiTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTestCase.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/ResponseCacheStrategyTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/SsiTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/StoreTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/TestHttpKernel.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/TestMultipleHttpKernel.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpKernelTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/KernelTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Log/LoggerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Logger.php delete mode 100644 vendor/symfony/http-kernel/Tests/Profiler/FileProfilerStorageTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Profiler/ProfilerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/TestHttpKernel.php delete mode 100644 vendor/symfony/http-kernel/Tests/UriSignerTest.php delete mode 100644 vendor/symfony/http-kernel/UriSigner.php delete mode 100644 vendor/symfony/http-kernel/composer.json delete mode 100644 vendor/symfony/http-kernel/phpunit.xml.dist delete mode 100644 vendor/symfony/polyfill-mbstring/LICENSE delete mode 100644 vendor/symfony/polyfill-mbstring/Mbstring.php delete mode 100644 vendor/symfony/polyfill-mbstring/README.md delete mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php delete mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php delete mode 100644 vendor/symfony/polyfill-mbstring/bootstrap.php delete mode 100644 vendor/symfony/polyfill-mbstring/composer.json delete mode 100644 vendor/symfony/polyfill-php70/LICENSE delete mode 100644 vendor/symfony/polyfill-php70/Php70.php delete mode 100644 vendor/symfony/polyfill-php70/README.md delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/AssertionError.php delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/Error.php delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/ParseError.php delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php delete mode 100644 vendor/symfony/polyfill-php70/Resources/stubs/TypeError.php delete mode 100644 vendor/symfony/polyfill-php70/bootstrap.php delete mode 100644 vendor/symfony/polyfill-php70/composer.json delete mode 100644 vendor/symfony/process/.gitignore delete mode 100644 vendor/symfony/process/CHANGELOG.md delete mode 100644 vendor/symfony/process/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/process/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/process/Exception/LogicException.php delete mode 100644 vendor/symfony/process/Exception/ProcessFailedException.php delete mode 100644 vendor/symfony/process/Exception/ProcessTimedOutException.php delete mode 100644 vendor/symfony/process/Exception/RuntimeException.php delete mode 100644 vendor/symfony/process/ExecutableFinder.php delete mode 100644 vendor/symfony/process/InputStream.php delete mode 100644 vendor/symfony/process/LICENSE delete mode 100644 vendor/symfony/process/PhpExecutableFinder.php delete mode 100644 vendor/symfony/process/PhpProcess.php delete mode 100644 vendor/symfony/process/Pipes/AbstractPipes.php delete mode 100644 vendor/symfony/process/Pipes/PipesInterface.php delete mode 100644 vendor/symfony/process/Pipes/UnixPipes.php delete mode 100644 vendor/symfony/process/Pipes/WindowsPipes.php delete mode 100644 vendor/symfony/process/Process.php delete mode 100644 vendor/symfony/process/ProcessBuilder.php delete mode 100644 vendor/symfony/process/ProcessUtils.php delete mode 100644 vendor/symfony/process/README.md delete mode 100644 vendor/symfony/process/Tests/ExecutableFinderTest.php delete mode 100644 vendor/symfony/process/Tests/NonStopableProcess.php delete mode 100644 vendor/symfony/process/Tests/PhpExecutableFinderTest.php delete mode 100644 vendor/symfony/process/Tests/PhpProcessTest.php delete mode 100644 vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php delete mode 100644 vendor/symfony/process/Tests/ProcessBuilderTest.php delete mode 100644 vendor/symfony/process/Tests/ProcessFailedExceptionTest.php delete mode 100644 vendor/symfony/process/Tests/ProcessTest.php delete mode 100644 vendor/symfony/process/Tests/ProcessUtilsTest.php delete mode 100644 vendor/symfony/process/Tests/SignalListener.php delete mode 100644 vendor/symfony/process/composer.json delete mode 100644 vendor/symfony/process/phpunit.xml.dist delete mode 100644 vendor/symfony/routing/.gitignore delete mode 100644 vendor/symfony/routing/Annotation/Route.php delete mode 100644 vendor/symfony/routing/CHANGELOG.md delete mode 100644 vendor/symfony/routing/CompiledRoute.php delete mode 100644 vendor/symfony/routing/DependencyInjection/RoutingResolverPass.php delete mode 100644 vendor/symfony/routing/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/routing/Exception/InvalidParameterException.php delete mode 100644 vendor/symfony/routing/Exception/MethodNotAllowedException.php delete mode 100644 vendor/symfony/routing/Exception/MissingMandatoryParametersException.php delete mode 100644 vendor/symfony/routing/Exception/NoConfigurationException.php delete mode 100644 vendor/symfony/routing/Exception/ResourceNotFoundException.php delete mode 100644 vendor/symfony/routing/Exception/RouteNotFoundException.php delete mode 100644 vendor/symfony/routing/Generator/ConfigurableRequirementsInterface.php delete mode 100644 vendor/symfony/routing/Generator/Dumper/GeneratorDumper.php delete mode 100644 vendor/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php delete mode 100644 vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php delete mode 100644 vendor/symfony/routing/Generator/UrlGenerator.php delete mode 100644 vendor/symfony/routing/Generator/UrlGeneratorInterface.php delete mode 100644 vendor/symfony/routing/LICENSE delete mode 100644 vendor/symfony/routing/Loader/AnnotationClassLoader.php delete mode 100644 vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php delete mode 100644 vendor/symfony/routing/Loader/AnnotationFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/ClosureLoader.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/CollectionConfigurator.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/ImportConfigurator.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/RouteConfigurator.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/RoutingConfigurator.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/Traits/AddTrait.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/Traits/RouteTrait.php delete mode 100644 vendor/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php delete mode 100644 vendor/symfony/routing/Loader/DirectoryLoader.php delete mode 100644 vendor/symfony/routing/Loader/ObjectRouteLoader.php delete mode 100644 vendor/symfony/routing/Loader/PhpFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/XmlFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/YamlFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/schema/routing/routing-1.0.xsd delete mode 100644 vendor/symfony/routing/Matcher/Dumper/DumperCollection.php delete mode 100644 vendor/symfony/routing/Matcher/Dumper/DumperRoute.php delete mode 100644 vendor/symfony/routing/Matcher/Dumper/MatcherDumper.php delete mode 100644 vendor/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php delete mode 100644 vendor/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php delete mode 100644 vendor/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php delete mode 100644 vendor/symfony/routing/Matcher/RedirectableUrlMatcher.php delete mode 100644 vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php delete mode 100644 vendor/symfony/routing/Matcher/RequestMatcherInterface.php delete mode 100644 vendor/symfony/routing/Matcher/TraceableUrlMatcher.php delete mode 100644 vendor/symfony/routing/Matcher/UrlMatcher.php delete mode 100644 vendor/symfony/routing/Matcher/UrlMatcherInterface.php delete mode 100644 vendor/symfony/routing/README.md delete mode 100644 vendor/symfony/routing/RequestContext.php delete mode 100644 vendor/symfony/routing/RequestContextAwareInterface.php delete mode 100644 vendor/symfony/routing/Route.php delete mode 100644 vendor/symfony/routing/RouteCollection.php delete mode 100644 vendor/symfony/routing/RouteCollectionBuilder.php delete mode 100644 vendor/symfony/routing/RouteCompiler.php delete mode 100644 vendor/symfony/routing/RouteCompilerInterface.php delete mode 100644 vendor/symfony/routing/Router.php delete mode 100644 vendor/symfony/routing/RouterInterface.php delete mode 100644 vendor/symfony/routing/Tests/Annotation/RouteTest.php delete mode 100644 vendor/symfony/routing/Tests/CompiledRouteTest.php delete mode 100644 vendor/symfony/routing/Tests/DependencyInjection/RoutingResolverPassTest.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/BarClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/BazClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/FooClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/FooTrait.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/CustomCompiledRoute.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/CustomRouteCompiler.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/CustomXmlFileLoader.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/OtherAnnotatedClasses/AnonymousClassInTrait.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/OtherAnnotatedClasses/NoStartTagClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/OtherAnnotatedClasses/VariadicClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/RedirectableUrlMatcher.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/annotated.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/bad_format.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/bar.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import__controller.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import__controller.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import_controller.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import_controller.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import_override_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import_override_defaults.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/override_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/override_defaults.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/routing.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/routing.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/directory/recurse/routes1.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/directory/recurse/routes2.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/directory/routes3.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/directory_import/import.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher0.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher1.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher2.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher3.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher4.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher5.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher6.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher7.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/empty.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/file_resource.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/foo.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/foo1.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/incomplete.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/list_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/list_in_list_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/list_in_map_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/list_null_values.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/map_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/map_in_list_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/map_in_map_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/map_null_values.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/missing_id.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/missing_path.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonesense_resource_plus_path.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonesense_type_without_resource.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalid.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalid.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalid2.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalidkeys.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/null_values.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/php_dsl.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/php_dsl_sub.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/scalar_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/special_route_name.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validpattern.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validpattern.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validpattern.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validresource.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validresource.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validresource.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/with_define_path_variable.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/withdoctype.xml delete mode 100644 vendor/symfony/routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php delete mode 100644 vendor/symfony/routing/Tests/Generator/UrlGeneratorTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/AbstractAnnotationLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/AnnotationClassLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/AnnotationDirectoryLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/ClosureLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/DirectoryLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/ObjectRouteLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/PhpFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/YamlFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/Dumper/DumperCollectionTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/Dumper/StaticPrefixCollectionTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/RedirectableUrlMatcherTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/TraceableUrlMatcherTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/UrlMatcherTest.php delete mode 100644 vendor/symfony/routing/Tests/RequestContextTest.php delete mode 100644 vendor/symfony/routing/Tests/RouteCollectionBuilderTest.php delete mode 100644 vendor/symfony/routing/Tests/RouteCollectionTest.php delete mode 100644 vendor/symfony/routing/Tests/RouteCompilerTest.php delete mode 100644 vendor/symfony/routing/Tests/RouteTest.php delete mode 100644 vendor/symfony/routing/Tests/RouterTest.php delete mode 100644 vendor/symfony/routing/composer.json delete mode 100644 vendor/symfony/routing/phpunit.xml.dist delete mode 100644 vendor/symfony/thanks/.gitignore delete mode 100644 vendor/symfony/thanks/LICENSE delete mode 100644 vendor/symfony/thanks/README.md delete mode 100644 vendor/symfony/thanks/composer.json delete mode 100644 vendor/symfony/thanks/src/Command/ThanksCommand.php delete mode 100644 vendor/symfony/thanks/src/Thanks.php delete mode 100644 vendor/symfony/translation/.gitignore delete mode 100644 vendor/symfony/translation/CHANGELOG.md delete mode 100644 vendor/symfony/translation/Catalogue/AbstractOperation.php delete mode 100644 vendor/symfony/translation/Catalogue/MergeOperation.php delete mode 100644 vendor/symfony/translation/Catalogue/OperationInterface.php delete mode 100644 vendor/symfony/translation/Catalogue/TargetOperation.php delete mode 100644 vendor/symfony/translation/Command/XliffLintCommand.php delete mode 100644 vendor/symfony/translation/DataCollector/TranslationDataCollector.php delete mode 100644 vendor/symfony/translation/DataCollectorTranslator.php delete mode 100644 vendor/symfony/translation/DependencyInjection/TranslationDumperPass.php delete mode 100644 vendor/symfony/translation/DependencyInjection/TranslationExtractorPass.php delete mode 100644 vendor/symfony/translation/DependencyInjection/TranslatorPass.php delete mode 100644 vendor/symfony/translation/Dumper/CsvFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/DumperInterface.php delete mode 100644 vendor/symfony/translation/Dumper/FileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/IcuResFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/IniFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/JsonFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/MoFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/PhpFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/PoFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/QtFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/XliffFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/YamlFileDumper.php delete mode 100644 vendor/symfony/translation/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/translation/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/translation/Exception/InvalidResourceException.php delete mode 100644 vendor/symfony/translation/Exception/LogicException.php delete mode 100644 vendor/symfony/translation/Exception/NotFoundResourceException.php delete mode 100644 vendor/symfony/translation/Exception/RuntimeException.php delete mode 100644 vendor/symfony/translation/Extractor/AbstractFileExtractor.php delete mode 100644 vendor/symfony/translation/Extractor/ChainExtractor.php delete mode 100644 vendor/symfony/translation/Extractor/ExtractorInterface.php delete mode 100644 vendor/symfony/translation/Extractor/PhpExtractor.php delete mode 100644 vendor/symfony/translation/Extractor/PhpStringTokenParser.php delete mode 100644 vendor/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php delete mode 100644 vendor/symfony/translation/Formatter/MessageFormatter.php delete mode 100644 vendor/symfony/translation/Formatter/MessageFormatterInterface.php delete mode 100644 vendor/symfony/translation/IdentityTranslator.php delete mode 100644 vendor/symfony/translation/Interval.php delete mode 100644 vendor/symfony/translation/LICENSE delete mode 100644 vendor/symfony/translation/Loader/ArrayLoader.php delete mode 100644 vendor/symfony/translation/Loader/CsvFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/FileLoader.php delete mode 100644 vendor/symfony/translation/Loader/IcuDatFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/IcuResFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/IniFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/JsonFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/LoaderInterface.php delete mode 100644 vendor/symfony/translation/Loader/MoFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/PhpFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/PoFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/QtFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/XliffFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/YamlFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/schema/dic/xliff-core/xliff-core-1.2-strict.xsd delete mode 100644 vendor/symfony/translation/Loader/schema/dic/xliff-core/xliff-core-2.0.xsd delete mode 100644 vendor/symfony/translation/Loader/schema/dic/xliff-core/xml.xsd delete mode 100644 vendor/symfony/translation/LoggingTranslator.php delete mode 100644 vendor/symfony/translation/MessageCatalogue.php delete mode 100644 vendor/symfony/translation/MessageCatalogueInterface.php delete mode 100644 vendor/symfony/translation/MessageSelector.php delete mode 100644 vendor/symfony/translation/MetadataAwareInterface.php delete mode 100644 vendor/symfony/translation/PluralizationRules.php delete mode 100644 vendor/symfony/translation/README.md delete mode 100644 vendor/symfony/translation/Reader/TranslationReader.php delete mode 100644 vendor/symfony/translation/Reader/TranslationReaderInterface.php delete mode 100644 vendor/symfony/translation/Resources/schemas/xliff-core-1.2-strict.xsd delete mode 100644 vendor/symfony/translation/Tests/Catalogue/AbstractOperationTest.php delete mode 100644 vendor/symfony/translation/Tests/Catalogue/MergeOperationTest.php delete mode 100644 vendor/symfony/translation/Tests/Catalogue/TargetOperationTest.php delete mode 100644 vendor/symfony/translation/Tests/DataCollector/TranslationDataCollectorTest.php delete mode 100644 vendor/symfony/translation/Tests/DataCollectorTranslatorTest.php delete mode 100644 vendor/symfony/translation/Tests/DependencyInjection/TranslationDumperPassTest.php delete mode 100644 vendor/symfony/translation/Tests/DependencyInjection/TranslationExtractorPassTest.php delete mode 100644 vendor/symfony/translation/Tests/DependencyInjection/TranslationPassTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/CsvFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/FileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/IcuResFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/IniFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/JsonFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/MoFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/PhpFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/QtFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/XliffFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Extractor/PhpExtractorTest.php delete mode 100644 vendor/symfony/translation/Tests/Formatter/MessageFormatterTest.php delete mode 100644 vendor/symfony/translation/Tests/IdentityTranslatorTest.php delete mode 100644 vendor/symfony/translation/Tests/IntervalTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/CsvFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/IcuDatFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/IcuResFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/IniFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/JsonFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/LocalizedTestCase.php delete mode 100644 vendor/symfony/translation/Tests/Loader/MoFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/PhpFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/QtFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/XliffFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/YamlFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/LoggingTranslatorTest.php delete mode 100644 vendor/symfony/translation/Tests/MessageCatalogueTest.php delete mode 100644 vendor/symfony/translation/Tests/MessageSelectorTest.php delete mode 100644 vendor/symfony/translation/Tests/PluralizationRulesTest.php delete mode 100644 vendor/symfony/translation/Tests/TranslatorCacheTest.php delete mode 100644 vendor/symfony/translation/Tests/TranslatorTest.php delete mode 100644 vendor/symfony/translation/Tests/Util/ArrayConverterTest.php delete mode 100644 vendor/symfony/translation/Tests/Writer/TranslationWriterTest.php delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty-translation.mo delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty-translation.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.csv delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.ini delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.json delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.mo delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/encoding.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/escaped-id-plurals.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/escaped-id.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/extractor/resource.format.engine delete mode 100644 vendor/symfony/translation/Tests/fixtures/extractor/this.is.a.template.format.engine delete mode 100644 vendor/symfony/translation/Tests/fixtures/extractor/translation.html.php delete mode 100644 vendor/symfony/translation/Tests/fixtures/fuzzy-translations.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/invalid-xml-resources.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/malformed.json delete mode 100644 vendor/symfony/translation/Tests/fixtures/messages.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/messages_linear.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/non-valid.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/non-valid.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/plurals.mo delete mode 100644 vendor/symfony/translation/Tests/fixtures/plurals.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/resname.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/corrupted/resources.dat delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.res delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.txt delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.res delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.txt delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/packagelist.txt delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/resources.dat delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/res/en.res delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-2.0-clean.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-2.0.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-clean.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-notes-meta.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-target-attributes.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-tool-info.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.csv delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.dump.json delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.ini delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.json delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.mo delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.php delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.ts delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/valid.csv delete mode 100644 vendor/symfony/translation/Tests/fixtures/with-attributes.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/withdoctype.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/withnote.xlf delete mode 100644 vendor/symfony/translation/Translator.php delete mode 100644 vendor/symfony/translation/TranslatorBagInterface.php delete mode 100644 vendor/symfony/translation/TranslatorInterface.php delete mode 100644 vendor/symfony/translation/Util/ArrayConverter.php delete mode 100644 vendor/symfony/translation/Writer/TranslationWriter.php delete mode 100644 vendor/symfony/translation/Writer/TranslationWriterInterface.php delete mode 100644 vendor/symfony/translation/composer.json delete mode 100644 vendor/symfony/translation/phpunit.xml.dist delete mode 100644 vendor/symfony/var-dumper/.gitignore delete mode 100644 vendor/symfony/var-dumper/CHANGELOG.md delete mode 100644 vendor/symfony/var-dumper/Caster/AmqpCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/ArgsStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/Caster.php delete mode 100644 vendor/symfony/var-dumper/Caster/ClassStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/ConstStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/CutArrayStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/CutStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/DOMCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/DateCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/DoctrineCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/EnumStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/ExceptionCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/FrameStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/LinkStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/MongoCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/PdoCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/PgSqlCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/RedisCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/ReflectionCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/ResourceCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/SplCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/StubCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/SymfonyCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/TraceStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/XmlReaderCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/XmlResourceCaster.php delete mode 100644 vendor/symfony/var-dumper/Cloner/AbstractCloner.php delete mode 100644 vendor/symfony/var-dumper/Cloner/ClonerInterface.php delete mode 100644 vendor/symfony/var-dumper/Cloner/Cursor.php delete mode 100644 vendor/symfony/var-dumper/Cloner/Data.php delete mode 100644 vendor/symfony/var-dumper/Cloner/DumperInterface.php delete mode 100644 vendor/symfony/var-dumper/Cloner/Stub.php delete mode 100644 vendor/symfony/var-dumper/Cloner/VarCloner.php delete mode 100644 vendor/symfony/var-dumper/Dumper/AbstractDumper.php delete mode 100644 vendor/symfony/var-dumper/Dumper/CliDumper.php delete mode 100644 vendor/symfony/var-dumper/Dumper/DataDumperInterface.php delete mode 100644 vendor/symfony/var-dumper/Dumper/HtmlDumper.php delete mode 100644 vendor/symfony/var-dumper/Exception/ThrowingCasterException.php delete mode 100644 vendor/symfony/var-dumper/LICENSE delete mode 100644 vendor/symfony/var-dumper/README.md delete mode 100644 vendor/symfony/var-dumper/Resources/functions/dump.php delete mode 100644 vendor/symfony/var-dumper/Test/VarDumperTestTrait.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/CasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/DateCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/PdoCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/RedisCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/ReflectionCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/SplCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/StubCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/XmlReaderCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Cloner/DataTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Cloner/VarClonerTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Dumper/CliDumperTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Dumper/HtmlDumperTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/FooInterface.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/GeneratorDemo.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/NotLoadableClass.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/Twig.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/dumb-var.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/xml_reader.xml delete mode 100644 vendor/symfony/var-dumper/Tests/Test/VarDumperTestTraitTest.php delete mode 100644 vendor/symfony/var-dumper/VarDumper.php delete mode 100644 vendor/symfony/var-dumper/composer.json delete mode 100644 vendor/symfony/var-dumper/phpunit.xml.dist delete mode 100644 vendor/theseer/tokenizer/.gitignore delete mode 100644 vendor/theseer/tokenizer/.php_cs delete mode 100644 vendor/theseer/tokenizer/.travis.yml delete mode 100644 vendor/theseer/tokenizer/LICENSE delete mode 100644 vendor/theseer/tokenizer/README.md delete mode 100644 vendor/theseer/tokenizer/build.xml delete mode 100644 vendor/theseer/tokenizer/composer.json delete mode 100644 vendor/theseer/tokenizer/phive.xml delete mode 100644 vendor/theseer/tokenizer/phpunit.xml delete mode 100644 vendor/theseer/tokenizer/src/Exception.php delete mode 100644 vendor/theseer/tokenizer/src/NamespaceUri.php delete mode 100644 vendor/theseer/tokenizer/src/NamespaceUriException.php delete mode 100644 vendor/theseer/tokenizer/src/Token.php delete mode 100644 vendor/theseer/tokenizer/src/TokenCollection.php delete mode 100644 vendor/theseer/tokenizer/src/TokenCollectionException.php delete mode 100644 vendor/theseer/tokenizer/src/Tokenizer.php delete mode 100644 vendor/theseer/tokenizer/src/XMLSerializer.php delete mode 100644 vendor/theseer/tokenizer/tests/NamespaceUriTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenCollectionTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenizerTest.php delete mode 100644 vendor/theseer/tokenizer/tests/XMLSerializerTest.php delete mode 100644 vendor/theseer/tokenizer/tests/_files/customns.xml delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php.tokens delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php.xml delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/LICENSE.md delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/composer.json delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/phpunit.xml.dist delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php delete mode 100644 vendor/vlucas/phpdotenv/LICENSE.txt delete mode 100644 vendor/vlucas/phpdotenv/composer.json delete mode 100644 vendor/vlucas/phpdotenv/src/Dotenv.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/InvalidCallbackException.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/ValidationException.php delete mode 100644 vendor/vlucas/phpdotenv/src/Loader.php delete mode 100644 vendor/vlucas/phpdotenv/src/Validator.php delete mode 100644 vendor/webmozart/assert/.composer-auth.json delete mode 100644 vendor/webmozart/assert/.styleci.yml delete mode 100644 vendor/webmozart/assert/CHANGELOG.md delete mode 100644 vendor/webmozart/assert/LICENSE delete mode 100644 vendor/webmozart/assert/README.md delete mode 100644 vendor/webmozart/assert/composer.json delete mode 100644 vendor/webmozart/assert/src/Assert.php delete mode 100644 webpack.mix.js diff --git a/.env b/.env deleted file mode 100644 index 2bcd4d06..00000000 --- a/.env +++ /dev/null @@ -1,31 +0,0 @@ -APP_NAME=Heimdall -APP_ENV=local -APP_KEY=base64:I206O8ibx+GQyRE7BeOxDobn04Mfmyyc5Ptzns/C0mY= -APP_DEBUG=true -APP_LOG_LEVEL=debug -APP_URL=http://localhost - -DB_CONNECTION=sqlite -DB_DATABASE=app.sqlite - -BROADCAST_DRIVER=log -CACHE_DRIVER=file -SESSION_DRIVER=file -SESSION_LIFETIME=120 -QUEUE_DRIVER=sync - -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_DRIVER=smtp -MAIL_HOST=smtp.mailtrap.io -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null - -PUSHER_APP_ID= -PUSHER_APP_KEY= -PUSHER_APP_SECRET= -PUSHER_APP_CLUSTER=mt1 diff --git a/.env.example b/.env.example deleted file mode 100644 index cd06cc8d..00000000 --- a/.env.example +++ /dev/null @@ -1,35 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY= -APP_DEBUG=true -APP_LOG_LEVEL=debug -APP_URL=http://localhost - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=homestead -DB_USERNAME=homestead -DB_PASSWORD=secret - -BROADCAST_DRIVER=log -CACHE_DRIVER=file -SESSION_DRIVER=file -SESSION_LIFETIME=120 -QUEUE_DRIVER=sync - -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_DRIVER=smtp -MAIL_HOST=smtp.mailtrap.io -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null - -PUSHER_APP_ID= -PUSHER_APP_KEY= -PUSHER_APP_SECRET= -PUSHER_APP_CLUSTER=mt1 diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 967315dd..00000000 --- a/.gitattributes +++ /dev/null @@ -1,5 +0,0 @@ -* text=auto -*.css linguist-vendored -*.scss linguist-vendored -*.js linguist-vendored -CHANGELOG.md export-ignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index bb37dc55..00000000 --- a/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -/node_modules -/public/hot -/public/storage -/storage/*.key -/.idea -/.vagrant -Homestead.json -Homestead.yaml -npm-debug.log -yarn-error.log - -storage/app/public/.DS_Store diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index e0a5fe84..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,59 +0,0 @@ -# Release Notes - -## v1.3.0 (2018-02-09) - -### Added -- guzzlehttp/guzzle as a dependency -- Variable polling, so interval is increased when an app is idle and decreased when it's active -- Turkish language translation -- Added Sabnzbd enhanced application - -### Changed -- Updated composer dependencies -- Added live stats to Nzbget supported application -- Changed Pihole to an enhanced application -- Changed NZBGet to an enhanced application - -### Fixed -- Fixed autocomplete being hard to see -- Fixed checkboxes not working on edge - - -## v1.2.0 (2018-02-07) - -### Added -- Translation support -- Initial "Supported" application support -- Finnish translation -- Swedish translation -- German translation -- French translation -- Spanish translation -- Duplicati supported application -- Emby supported application -- Nzbget supported application -- Pfsense supported application -- Pihole supported application -- Plex supported application -- Portainer supported application -- Unifi supported application - -### Changed -- button layout and behaviour - -### Fixed -- Bottom of button too short in some browsers -- Icon not loading back in when required fields not filled in - - -## v1.1.0 (2018-02-05) - -### Added -- Ability to change background -- Settings section -- Update procedure -- Google/DuckDuckGo/Bing search from homepage -- Added edit button to tile page - -### Changed -- Icon used to put tiles into config mode diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 0f620f17..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Chris Hunt - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 259a24e4..00000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-tactile \ No newline at end of file diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php deleted file mode 100644 index a8c51585..00000000 --- a/app/Console/Kernel.php +++ /dev/null @@ -1,42 +0,0 @@ -command('inspire') - // ->hourly(); - } - - /** - * Register the commands for the application. - * - * @return void - */ - protected function commands() - { - $this->load(__DIR__.'/Commands'); - - require base_path('routes/console.php'); - } -} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php deleted file mode 100644 index 7e2563a8..00000000 --- a/app/Exceptions/Handler.php +++ /dev/null @@ -1,53 +0,0 @@ -= $btype && $x < (count($labels) - 1); $bytes /= $btype, $x++); // use 1000 rather than 1024 to simulate HD size not real size - if($labels[$x] == "TB") return(round($bytes, 3).$beforeunit.$labels[$x].$afterunit); - elseif($labels[$x] == "GB") return(round($bytes, 2).$beforeunit.$labels[$x].$afterunit); - elseif($labels[$x] == "MB") return(round($bytes, 2).$beforeunit.$labels[$x].$afterunit); - else return(round($bytes, 0).$beforeunit.$labels[$x].$afterunit); -} diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php deleted file mode 100644 index 6a247fef..00000000 --- a/app/Http/Controllers/Auth/ForgotPasswordController.php +++ /dev/null @@ -1,32 +0,0 @@ -middleware('guest'); - } -} diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php deleted file mode 100644 index b2ea669a..00000000 --- a/app/Http/Controllers/Auth/LoginController.php +++ /dev/null @@ -1,39 +0,0 @@ -middleware('guest')->except('logout'); - } -} diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php deleted file mode 100644 index f77265ab..00000000 --- a/app/Http/Controllers/Auth/RegisterController.php +++ /dev/null @@ -1,71 +0,0 @@ -middleware('guest'); - } - - /** - * Get a validator for an incoming registration request. - * - * @param array $data - * @return \Illuminate\Contracts\Validation\Validator - */ - protected function validator(array $data) - { - return Validator::make($data, [ - 'name' => 'required|string|max:255', - 'email' => 'required|string|email|max:255|unique:users', - 'password' => 'required|string|min:6|confirmed', - ]); - } - - /** - * Create a new user instance after a valid registration. - * - * @param array $data - * @return \App\User - */ - protected function create(array $data) - { - return User::create([ - 'name' => $data['name'], - 'email' => $data['email'], - 'password' => bcrypt($data['password']), - ]); - } -} diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php deleted file mode 100644 index cf726eec..00000000 --- a/app/Http/Controllers/Auth/ResetPasswordController.php +++ /dev/null @@ -1,39 +0,0 @@ -middleware('guest'); - } -} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php deleted file mode 100644 index 03e02a23..00000000 --- a/app/Http/Controllers/Controller.php +++ /dev/null @@ -1,13 +0,0 @@ -orderBy('order', 'asc')->get(); - $data['all_apps'] = Item::all(); - return view('welcome', $data); - } - - /** - * Set order on the dashboard. - * - * @return \Illuminate\Http\Response - */ - public function setOrder(Request $request) - { - $order = array_filter($request->input('order')); - foreach($order as $o => $id) { - $item = Item::find($id); - $item->order = $o; - $item->save(); - } - } - - - /** - * Pin item on the dashboard. - * - * @return \Illuminate\Http\Response - */ - public function pin($id) - { - $item = Item::findOrFail($id); - $item->pinned = true; - $item->save(); - return redirect()->route('dash'); - } - - /** - * Unpin item on the dashboard. - * - * @return \Illuminate\Http\Response - */ - public function unpin($id) - { - $item = Item::findOrFail($id); - $item->pinned = false; - $item->save(); - return redirect()->route('dash'); - } - - /** - * Unpin item on the dashboard. - * - * @return \Illuminate\Http\Response - */ - public function pinToggle($id, $ajax=false) - { - $item = Item::findOrFail($id); - $new = ((bool)$item->pinned === true) ? false : true; - $item->pinned = $new; - $item->save(); - if($ajax) { - $data['apps'] = Item::pinned()->get(); - $data['ajax'] = true; - return view('sortable', $data); - } else { - return redirect()->route('dash'); - } - } - - - /** - * Display a listing of the resource. - * - * @return \Illuminate\Http\Response - */ - public function index(Request $request) - { - $trash = (bool)$request->input('trash'); - - $data['apps'] = Item::orderBy('title', 'asc')->get(); - $data['trash'] = Item::onlyTrashed()->get(); - if($trash) { - return view('items.trash', $data); - } else { - return view('items.list', $data); - } - } - - - /** - * Show the form for creating a new resource. - * - * @return \Illuminate\Http\Response - */ - public function create() - { - // - $data = []; - return view('items.create', $data); - - } - - /** - * Store a newly created resource in storage. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - public function store(Request $request) - { - // - $validatedData = $request->validate([ - 'title' => 'required|max:255', - 'url' => 'required', - ]); - - if($request->hasFile('file')) { - $path = $request->file('file')->store('icons'); - $request->merge([ - 'icon' => $path - ]); - } - - $config = Item::checkConfig($request->input('config')); - $request->merge([ - 'description' => $config - ]); - - //die(print_r($request->input('config'))); - - Item::create($request->all()); - - return redirect()->route('dash') - ->with('success', __('app.alert.success.item_created')); - } - - /** - * Display the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function show($id) - { - // - } - - /** - * Show the form for editing the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function edit($id) - { - // Get the item - $item = Item::find($id); - - // show the edit form and pass the nerd - return view('items.edit') - ->with('item', $item); - } - - /** - * Update the specified resource in storage. - * - * @param \Illuminate\Http\Request $request - * @param int $id - * @return \Illuminate\Http\Response - */ - public function update(Request $request, $id) - { - $validatedData = $request->validate([ - 'title' => 'required|max:255', - 'url' => 'required', - ]); - //die(print_r($request->all())); - if($request->hasFile('file')) { - $path = $request->file('file')->store('icons'); - $request->merge([ - 'icon' => $path - ]); - } - - $config = Item::checkConfig($request->input('config')); - $request->merge([ - 'description' => $config - ]); - - Item::find($id)->update($request->all()); - - return redirect()->route('dash') - ->with('success',__('app.alert.success.item_updated')); - } - - /** - * Remove the specified resource from storage. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function destroy(Request $request, $id) - { - // - $force = (bool)$request->input('force'); - if($force) { - Item::withTrashed() - ->where('id', $id) - ->forceDelete(); - } else { - Item::find($id)->delete(); - } - - return redirect()->route('items.index') - ->with('success',__('app.alert.success.item_deleted')); - } - - /** - * Restore the specified resource from soft deletion. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function restore($id) - { - // - Item::withTrashed() - ->where('id', $id) - ->restore(); - return redirect()->route('items.index') - ->with('success',__('app.alert.success.item_restored')); - } - - public function isSupportedAppByKey($app) - { - $output = false; - $all_supported = Item::supportedList(); - if(array_key_exists($app, $all_supported)) { - $output = new $all_supported[$app]; - } - return $output; - } - - /** - * Return details for supported apps - * - * @return Json - */ - public function appload(Request $request) - { - $output = []; - $app = $request->input('app'); - - if(($app_details = $this->isSupportedAppByKey($app)) !== false) { - // basic details - $output['icon'] = $app_details->icon(); - $output['colour'] = $app_details->defaultColour(); - - // live details - if($app_details instanceof \App\SupportedApps\Contracts\Livestats) { - $output['config'] = $app_details->configDetails(); - } else { - $output['config'] = null; - } - } - - return json_encode($output); - } - - public function testConfig(Request $request) - { - $data = $request->input('data'); - //$url = $data[array_search('url', array_column($data, 'name'))]['value']; - - $app = $data['type']; - - $app_details = new $app(); - $app_details->config = (object)$data; - $app_details->testConfig(); - } - - public function getStats($id) - { - $item = Item::find($id); - - $config = json_decode($item->description); - if(isset($config->type)) { - $config->url = $item->url; - if(isset($config->override_url) && !empty($config->override_url)) { - $config->url = $config->override_url; - } - $app_details = new $config->type; - $app_details->config = $config; - echo $app_details->executeConfig(); - } - - } - - -} diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php deleted file mode 100644 index 3da34556..00000000 --- a/app/Http/Controllers/SettingsController.php +++ /dev/null @@ -1,102 +0,0 @@ -orderBy('order', 'ASC')->get(); - - return view('settings.list')->with([ - 'groups' => $settings, - ]); - } - - /** - * @param int $id - * - * @return \Illuminate\Http\RedirectResponse - */ - public function edit($id) - { - $setting = Setting::find($id); - - if((bool)$setting->system === true) return abort(404); - - if (!is_null($setting)) { - return view('settings.edit')->with([ - 'setting' => $setting, - ]); - } else { - return redirect()->route('settings.list')->with([ - 'error' => __('app.alert.error.not_exist'), - ]); - } - } - - /** - * @param int $id - * - * @return \Illuminate\Http\RedirectResponse - */ - public function update(Request $request, $id) - { - $setting = Setting::find($id); - - if (!is_null($setting)) { - $data = Setting::getInput(); - - if ($setting->type == 'image') { - - - if($request->hasFile('value')) { - $path = $request->file('value')->store('backgrounds'); - $setting->value = $path; - } - - - - } else { - $setting->value = $data->value; - } - - $setting->save(); - - return redirect()->route('settings.index')->with([ - 'success' => __('app.alert.success.setting_updated'), - ]); - } else { - return redirect()->route('settings.index')->with([ - 'error' => __('app.alert.error.not_exist'), - ]); - } - } - /** - * @param int $id - * - * @return \Illuminate\Http\RedirectResponse - */ - public function clear($id) - { - $setting = Setting::find($id); - if((bool)$setting->system !== true) { - $setting->value = ''; - $setting->save(); - } - return redirect()->route('settings.index')->with([ - 'success' => __('app.alert.success.setting_updated'), - ]); - - } -} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php deleted file mode 100644 index 93bf68bf..00000000 --- a/app/Http/Kernel.php +++ /dev/null @@ -1,61 +0,0 @@ - [ - \App\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Session\Middleware\StartSession::class, - // \Illuminate\Session\Middleware\AuthenticateSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \App\Http\Middleware\VerifyCsrfToken::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - - 'api' => [ - 'throttle:60,1', - 'bindings', - ], - ]; - - /** - * The application's route middleware. - * - * These middleware may be assigned to groups or used individually. - * - * @var array - */ - protected $routeMiddleware = [ - 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, - 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, - 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, - 'can' => \Illuminate\Auth\Middleware\Authorize::class, - 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, - 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, - ]; -} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php deleted file mode 100644 index 033136ad..00000000 --- a/app/Http/Middleware/EncryptCookies.php +++ /dev/null @@ -1,17 +0,0 @@ -check()) { - return redirect('/home'); - } - - return $next($request); - } -} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php deleted file mode 100644 index 5a50e7b5..00000000 --- a/app/Http/Middleware/TrimStrings.php +++ /dev/null @@ -1,18 +0,0 @@ - 'FORWARDED', - Request::HEADER_X_FORWARDED_FOR => 'X_FORWARDED_FOR', - Request::HEADER_X_FORWARDED_HOST => 'X_FORWARDED_HOST', - Request::HEADER_X_FORWARDED_PORT => 'X_FORWARDED_PORT', - Request::HEADER_X_FORWARDED_PROTO => 'X_FORWARDED_PROTO', - ]; -} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php deleted file mode 100644 index ae1893a9..00000000 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ /dev/null @@ -1,21 +0,0 @@ - \App\SupportedApps\Duplicati::class, - 'Emby' => \App\SupportedApps\Emby::class, - 'NZBGet' => \App\SupportedApps\Nzbget::class, - 'pFsense' => \App\SupportedApps\Pfsense::class, - 'Pihole' => \App\SupportedApps\Pihole::class, - 'Plex' => \App\SupportedApps\Plex::class, - 'Plexpy' => \App\SupportedApps\Plexpy::class, - 'Portainer' => \App\SupportedApps\Portainer::class, - 'UniFi' => \App\SupportedApps\Unifi::class, - 'Nextcloud' => \App\SupportedApps\Nextcloud::class, - 'Sabnzbd' => \App\SupportedApps\Sabnzbd::class, - ]; - } - public static function supportedOptions() - { - return array_keys(self::supportedList()); - } - - /** - * Scope a query to only include pinned items. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return \Illuminate\Database\Eloquent\Builder - */ - public function scopePinned($query) - { - return $query->where('pinned', 1); - } - - public function getConfigAttribute() - { - $output = null; - $view = null; - if(isset($this->description) && !empty($this->description)){ - $output = json_decode($this->description); - $output = is_object($output) ? $output : new \stdClass(); - if(isset($output->type) && !empty($output->type)) { - $class = $output->type; - $sap = new $class(); - $view = $sap->configDetails(); - $output->view = $view; - } - if(!isset($output->dataonly)) $output->dataonly = '0'; - - } - return (object)$output; - } - public static function checkConfig($config) - { - if(empty($config)) { - $config = null; - } else { - $store = false; - //die(var_dump($config)); - foreach($config as $key => $check) { - if($key == 'type') continue; - if($key == 'dataonly') continue; - if(!empty($check) && $check != '0') { - $store = true; - break; - } - } - //die(var_dump($store)) - - $config['enabled'] = ($store) ? true : false; - $config = json_encode($config); - } - return $config; - - } -} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php deleted file mode 100644 index 502b28f3..00000000 --- a/app/Providers/AppServiceProvider.php +++ /dev/null @@ -1,68 +0,0 @@ - 'database/migrations', '--force' => true, '--seed' => true)); - Artisan::call('storage:link'); - //Cache - //Artisan::call('config:cache'); - //Artisan::call('route:cache'); - } - if(is_file(database_path('app.sqlite'))) { - if(Schema::hasTable('settings')) { - if($bg_image = Setting::fetch('background_image')) { - $alt_bg = ' style="background-image: url('.asset('storage/'.$bg_image).')"'; - } - - // check version to see if an upgrade is needed - $db_version = Setting::fetch('version'); - $app_version = config('app.version'); - if(version_compare($app_version, $db_version) == 1) { // app is higher than db, so need to run migrations etc - Artisan::call('migrate', array('--path' => 'database/migrations', '--force' => true, '--seed' => true)); - } - } else { - Artisan::call('migrate', array('--path' => 'database/migrations', '--force' => true, '--seed' => true)); - } - $lang = Setting::fetch('language'); - \App::setLocale($lang); - - } - view()->share('alt_bg', $alt_bg); - - } - - /** - * Register any application services. - * - * @return void - */ - public function register() - { - $this->app->singleton('settings', function () { - return new Setting(); - }); - } -} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php deleted file mode 100644 index 9784b1a3..00000000 --- a/app/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,30 +0,0 @@ - 'App\Policies\ModelPolicy', - ]; - - /** - * Register any authentication / authorization services. - * - * @return void - */ - public function boot() - { - $this->registerPolicies(); - - // - } -} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php deleted file mode 100644 index 352cce44..00000000 --- a/app/Providers/BroadcastServiceProvider.php +++ /dev/null @@ -1,21 +0,0 @@ - [ - 'App\Listeners\EventListener', - ], - ]; - - /** - * Register any events for your application. - * - * @return void - */ - public function boot() - { - parent::boot(); - - // - } -} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php deleted file mode 100644 index 5ea48d39..00000000 --- a/app/Providers/RouteServiceProvider.php +++ /dev/null @@ -1,73 +0,0 @@ -mapApiRoutes(); - - $this->mapWebRoutes(); - - // - } - - /** - * Define the "web" routes for the application. - * - * These routes all receive session state, CSRF protection, etc. - * - * @return void - */ - protected function mapWebRoutes() - { - Route::middleware('web') - ->namespace($this->namespace) - ->group(base_path('routes/web.php')); - } - - /** - * Define the "api" routes for the application. - * - * These routes are typically stateless. - * - * @return void - */ - protected function mapApiRoutes() - { - Route::prefix('api') - ->middleware('api') - ->namespace($this->namespace) - ->group(base_path('routes/api.php')); - } -} diff --git a/app/Setting.php b/app/Setting.php deleted file mode 100644 index cf8cc22e..00000000 --- a/app/Setting.php +++ /dev/null @@ -1,218 +0,0 @@ - Input::get('value'), - 'image' => Input::file('value'), - ]; - } - - public function getListValueAttribute() - { - switch($this->type) { - case 'image': - if(!empty($this->value)) { - $value = ''.__('app.settings.view').''; - } else { - $value = __('app.options.none'); - } - break; - case 'boolean': - if((bool)$this->value === true) { - $value = __('app.options.yes'); - } else { - $value = __('app.options.no'); - } - break; - case 'select': - if(!empty($this->value) && $this->value !== 'none') { - $options = (array)json_decode($this->options); - $value = __($options[$this->value]); - } else { - $value = __('app.options.none'); - } - break; - default: - $value = __($this->value); - break; - } - - return $value; - - } - - public function getEditValueAttribute() - { - switch($this->type) { - case 'image': - $value = ''; - if(isset($this->value) && !empty($this->value)) { - $value .= ''; - } - $value .= Form::file('value', ['class' => 'form-control']); - if(isset($this->value) && !empty($this->value)) { - $value .= ''.__('app.settings.reset').''; - } - - break; - case 'boolean': - $checked = false; - if(isset($this->value) && (bool)$this->value === true) $checked = true; - $set_checked = ($checked) ? ' checked="checked"' : ''; - $value = ' - - '; - - break; - case 'select': - $options = json_decode($this->options); - foreach($options as $key => $opt) { - $options->$key = __($opt); - } - $value = Form::select('value', $options, null, ['class' => 'form-control']); - break; - default: - $value = Form::text('value', null, ['class' => 'form-control']); - break; - } - - return $value; - - } - - public function group() - { - return $this->belongsTo('App\SettingGroup', 'group_id'); - } - - /** - * @param string $key - * - * @return mixed - */ - public static function fetch($key) - { - if (Setting::cached($key)) { - return Setting::$cache[$key]; - } else { - $find = self::where('key', '=', $key)->first(); - - if (!is_null($find)) { - $value = $find->value; - Setting::add($key, $value); - - return $value; - } else { - return false; - } - } - } - - /** - * @param string $key - * @param $value - */ - public static function add($key, $value) - { - Setting::$cache[$key] = $value; - } - - /** - * @param string $key - * - * @return bool - */ - public static function cached($key) - { - return array_key_exists($key, Setting::$cache); - } - - /** - * @return html - */ - public static function search() - { - $output = ''; - $homepage_search = self::fetch('homepage_search'); - $search_provider = self::where('key', '=', 'search_provider')->first(); - - //die(var_dump($search_provider->value)); - // return early if search isn't applicable - if((bool)$homepage_search !== true) return $output; - if($search_provider->value === 'none') return $output; - if(empty($search_provider->value)) return $output; - if(is_null($search_provider->value)) return $output; - - - if((bool)$homepage_search && (bool)$search_provider) { - - $options = (array)json_decode($search_provider->options); - $name = $options[$search_provider->value]; - if((bool)$search_provider->value) { - switch($search_provider->value) { - case 'google': - $url = 'https://www.google.com/search'; - $var = 'q'; - break; - case 'ddg': - $url = 'https://duckduckgo.com/'; - $var = 'q'; - break; - case 'bing': - $url = 'https://www.bing.com/search'; - $var = 'q'; - break; - } - $output .= '
'; - $output .= Form::open(['url' => $url, 'method' => 'get']); - $output .= '
'; - $output .= Form::text($var, null, ['class' => 'homesearch', 'placeholder' => __($name).' '.__('app.settings.search').'...']); - $output .= ''; - $output .= '
'; - $output .= Form::close(); - $output .= '
'; - } - } - return $output; - } -} diff --git a/app/SettingGroup.php b/app/SettingGroup.php deleted file mode 100644 index 5c306caf..00000000 --- a/app/SettingGroup.php +++ /dev/null @@ -1,27 +0,0 @@ -hasMany('App\Setting', 'group_id'); - } -} diff --git a/app/SupportedApps/Contracts/Applications.php b/app/SupportedApps/Contracts/Applications.php deleted file mode 100644 index 535c7958..00000000 --- a/app/SupportedApps/Contracts/Applications.php +++ /dev/null @@ -1,9 +0,0 @@ -buildRequest('status'); - switch($res->getStatusCode()) { - case 200: - echo 'Successfully connected to the API'; - break; - case 401: - echo 'Failed: Invalid credentials'; - break; - case 404: - echo 'Failed: Please make sure your URL is correct and that there is a trailing slash'; - break; - default: - echo 'Something went wrong... Code: '.$res->getStatusCode(); - break; - } - } - public function executeConfig() - { - $output = ''; - $res = $this->buildRequest('status'); - $data = json_decode($res->getBody()); - //$data->result->RemainingSizeMB = '10000000'; - //$data->result->DownloadRate = '100000000'; - $size = $data->result->RemainingSizeMB; - $rate = $data->result->DownloadRate; - $queue_size = format_bytes($size*1000*1000, false, ' ', ''); - $current_speed = format_bytes($rate, false, ' '); - - if($size > 0 || $rate > 0) { - $output = ' - - '; - } - return $output; - } - public function buildRequest($endpoint) - { - $config = $this->config; - $url = $config->url; - $username = $config->username; - $password = $config->password; - - $rebuild_url = str_replace('http://', 'http://'.$username.':'.$password.'@', $url); - $rebuild_url = str_replace('https://', 'https://'.$username.':'.$password.'@', $rebuild_url); - - $api_url = $rebuild_url.'jsonrpc/'.$endpoint; - - $client = new Client(['http_errors' => false]); - $res = $client->request('GET', $api_url); - return $res; - - } - -} \ No newline at end of file diff --git a/app/SupportedApps/Pfsense.php b/app/SupportedApps/Pfsense.php deleted file mode 100644 index eadbb096..00000000 --- a/app/SupportedApps/Pfsense.php +++ /dev/null @@ -1,12 +0,0 @@ -buildRequest(); - switch($res->getStatusCode()) { - case 200: - echo 'Successfully connected to the API'; - break; - case 401: - echo 'Failed: Invalid credentials'; - break; - case 404: - echo 'Failed: Please make sure your URL is correct and that there is a trailing slash'; - break; - default: - echo 'Something went wrong... Code: '.$res->getStatusCode(); - break; - } - } - - public function executeConfig() - { - $output = ''; - $res = $this->buildRequest(); - $data = json_decode($res->getBody()); - - $output = ' - - '; - return $output; - } - - public function buildRequest() - { - $config = $this->config; - $url = $config->url; - - $api_url = $url.'admin/api.php'; - //die( $api_url.' --- '); - - $client = new Client(['http_errors' => false]); - $res = $client->request('GET', $api_url); - return $res; - - } - - -} \ No newline at end of file diff --git a/app/SupportedApps/Plex.php b/app/SupportedApps/Plex.php deleted file mode 100644 index 669d36d5..00000000 --- a/app/SupportedApps/Plex.php +++ /dev/null @@ -1,12 +0,0 @@ -buildRequest('queue'); - switch($res->getStatusCode()) { - case 200: - $data = json_decode($res->getBody()); - if(isset($data->error) && !empty($data->error)) { - echo 'Failed: '.$data->error; - } else { - echo 'Successfully connected to the API'; - } - break; - case 401: - echo 'Failed: Invalid credentials'; - break; - case 404: - echo 'Failed: Please make sure your URL is correct and that there is a trailing slash'; - break; - default: - echo 'Something went wrong... Code: '.$res->getStatusCode(); - break; - } - } - public function executeConfig() - { - $output = ''; - $res = $this->buildRequest('queue'); - $data = json_decode($res->getBody()); - //$data->result->RemainingSizeMB = '10000000'; - //$data->result->DownloadRate = '100000000'; - $size = $data->queue->mbleft; - $rate = $data->queue->kbpersec; - $queue_size = format_bytes($size*1000*1000, false, ' ', ''); - $current_speed = format_bytes($rate*1000, false, ' '); - - if($size > 0 || $rate > 0) { - $output = ' -
    -
  • Queue'.$queue_size.'
  • -
  • Speed'.$current_speed.'/s
  • -
- '; - } - return $output; - } - public function buildRequest($endpoint) - { - $config = $this->config; - $url = $config->url; - $apikey = $config->apikey; - - $api_url = $url.'api?output=json&apikey='.$apikey.'&mode='.$endpoint; - //die( $api_url.' --- '); - - $client = new Client(['http_errors' => false]); - $res = $client->request('GET', $api_url); - return $res; - - } - -} \ No newline at end of file diff --git a/app/SupportedApps/Unifi.php b/app/SupportedApps/Unifi.php deleted file mode 100644 index 9484e789..00000000 --- a/app/SupportedApps/Unifi.php +++ /dev/null @@ -1,12 +0,0 @@ -make(Illuminate\Contracts\Console\Kernel::class); - -$status = $kernel->handle( - $input = new Symfony\Component\Console\Input\ArgvInput, - new Symfony\Component\Console\Output\ConsoleOutput -); - -/* -|-------------------------------------------------------------------------- -| Shutdown The Application -|-------------------------------------------------------------------------- -| -| Once Artisan has finished running, we will fire off the shutdown events -| so that any final work may be done by the application before we shut -| down the process. This is the last thing to happen to the request. -| -*/ - -$kernel->terminate($input, $status); - -exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php deleted file mode 100644 index f2801adf..00000000 --- a/bootstrap/app.php +++ /dev/null @@ -1,55 +0,0 @@ -singleton( - Illuminate\Contracts\Http\Kernel::class, - App\Http\Kernel::class -); - -$app->singleton( - Illuminate\Contracts\Console\Kernel::class, - App\Console\Kernel::class -); - -$app->singleton( - Illuminate\Contracts\Debug\ExceptionHandler::class, - App\Exceptions\Handler::class -); - -/* -|-------------------------------------------------------------------------- -| Return The Application -|-------------------------------------------------------------------------- -| -| This script returns the application instance. The instance is given to -| the calling script so we can separate the building of the instances -| from the actual running of the application and sending responses. -| -*/ - -return $app; diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/bootstrap/cache/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/composer.json b/composer.json deleted file mode 100644 index 50f228c9..00000000 --- a/composer.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "laravel/laravel", - "description": "The Laravel Framework.", - "keywords": ["framework", "laravel"], - "license": "MIT", - "type": "project", - "require": { - "php": ">=7.0.0", - "fideloper/proxy": "~3.3", - "guzzlehttp/guzzle": "^6.3", - "laravel/framework": "5.5.*", - "laravel/tinker": "~1.0", - "laravelcollective/html": "^5.5" - }, - "require-dev": { - "filp/whoops": "~2.0", - "fzaninotto/faker": "~1.4", - "mockery/mockery": "~1.0", - "phpunit/phpunit": "~6.0", - "symfony/thanks": "^1.0" - }, - "autoload": { - "classmap": [ - "database/seeds", - "database/factories" - ], - "files": [ - "app/Helper.php" - ], - "psr-4": { - "App\\": "app/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } - }, - "extra": { - "laravel": { - "dont-discover": [ - ] - } - }, - "scripts": { - "post-root-package-install": [ - "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" - ], - "post-create-project-cmd": [ - "@php artisan key:generate" - ], - "post-autoload-dump": [ - "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover" - ] - }, - "config": { - "preferred-install": "dist", - "sort-packages": true, - "optimize-autoloader": true - } -} diff --git a/composer.lock b/composer.lock deleted file mode 100644 index e9e80ad9..00000000 --- a/composer.lock +++ /dev/null @@ -1,4259 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "hash": "6973e08d9c0d6b713429fd693ccce7e8", - "content-hash": "ab6533331102493e1757f58bb2b94824", - "packages": [ - { - "name": "dnoegel/php-xdg-base-dir", - "version": "0.1", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a", - "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "@stable" - }, - "type": "project", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php", - "time": "2014-10-24 07:27:01" - }, - { - "name": "doctrine/inflector", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462", - "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "inflection", - "pluralize", - "singularize", - "string" - ], - "time": "2017-07-22 12:18:28" - }, - { - "name": "doctrine/lexer", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "lexer", - "parser" - ], - "time": "2014-09-09 13:34:57" - }, - { - "name": "egulias/email-validator", - "version": "2.1.3", - "source": { - "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/1bec00a10039b823cc94eef4eddd47dcd3b2ca04", - "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" - }, - "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35", - "satooshi/php-coveralls": "^1.0.1" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "EmailValidator" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Gulias Davis" - } - ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ], - "time": "2017-11-15 23:40:40" - }, - { - "name": "erusev/parsedown", - "version": "1.6.4", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/fbe3fe878f4fe69048bb8a52783a09802004f548", - "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "type": "library", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ], - "time": "2017-11-14 20:44:03" - }, - { - "name": "fideloper/proxy", - "version": "3.3.4", - "source": { - "type": "git", - "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "9cdf6f118af58d89764249bbcc7bb260c132924f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/9cdf6f118af58d89764249bbcc7bb260c132924f", - "reference": "9cdf6f118af58d89764249bbcc7bb260c132924f", - "shasum": "" - }, - "require": { - "illuminate/contracts": "~5.0", - "php": ">=5.4.0" - }, - "require-dev": { - "illuminate/http": "~5.0", - "mockery/mockery": "~0.9.3", - "phpunit/phpunit": "^5.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3-dev" - }, - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Fideloper\\Proxy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Fidao", - "email": "fideloper@gmail.com" - } - ], - "description": "Set trusted proxies for Laravel", - "keywords": [ - "load balancing", - "proxy", - "trusted proxy" - ], - "time": "2017-06-15 17:19:42" - }, - { - "name": "guzzlehttp/guzzle", - "version": "6.3.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "shasum": "" - }, - "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", - "psr/log": "^1.0" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "time": "2017-06-22 18:50:49" - }, - { - "name": "guzzlehttp/promises", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "shasum": "" - }, - "require": { - "php": ">=5.5.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "time": "2016-12-20 10:07:11" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.4.2", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "request", - "response", - "stream", - "uri", - "url" - ], - "time": "2017-03-20 17:10:46" - }, - { - "name": "jakub-onderka/php-console-color", - "version": "0.1", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "0.*", - "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "3.7.*", - "squizlabs/php_codesniffer": "1.*" - }, - "type": "library", - "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleColor": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com", - "homepage": "http://www.acci.cz" - } - ], - "time": "2014-04-08 15:00:19" - }, - { - "name": "jakub-onderka/php-console-highlighter", - "version": "v0.3.2", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "shasum": "" - }, - "require": { - "jakub-onderka/php-console-color": "~0.1", - "php": ">=5.3.0" - }, - "require-dev": { - "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~0.5", - "jakub-onderka/php-var-dump-check": "~0.1", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5" - }, - "type": "library", - "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleHighlighter": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "acci@acci.cz", - "homepage": "http://www.acci.cz/" - } - ], - "time": "2015-04-20 18:58:01" - }, - { - "name": "laravel/framework", - "version": "v5.5.34", - "source": { - "type": "git", - "url": "https://github.com/laravel/framework.git", - "reference": "1de7c0aec13eadbdddc2d1ba4019b064b2c6b966" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1de7c0aec13eadbdddc2d1ba4019b064b2c6b966", - "reference": "1de7c0aec13eadbdddc2d1ba4019b064b2c6b966", - "shasum": "" - }, - "require": { - "doctrine/inflector": "~1.1", - "erusev/parsedown": "~1.6", - "ext-mbstring": "*", - "ext-openssl": "*", - "league/flysystem": "~1.0", - "monolog/monolog": "~1.12", - "mtdowling/cron-expression": "~1.0", - "nesbot/carbon": "~1.20", - "php": ">=7.0", - "psr/container": "~1.0", - "psr/simple-cache": "^1.0", - "ramsey/uuid": "~3.0", - "swiftmailer/swiftmailer": "~6.0", - "symfony/console": "~3.3", - "symfony/debug": "~3.3", - "symfony/finder": "~3.3", - "symfony/http-foundation": "~3.3", - "symfony/http-kernel": "~3.3", - "symfony/process": "~3.3", - "symfony/routing": "~3.3", - "symfony/var-dumper": "~3.3", - "tijsverkoyen/css-to-inline-styles": "~2.2", - "vlucas/phpdotenv": "~2.2" - }, - "replace": { - "illuminate/auth": "self.version", - "illuminate/broadcasting": "self.version", - "illuminate/bus": "self.version", - "illuminate/cache": "self.version", - "illuminate/config": "self.version", - "illuminate/console": "self.version", - "illuminate/container": "self.version", - "illuminate/contracts": "self.version", - "illuminate/cookie": "self.version", - "illuminate/database": "self.version", - "illuminate/encryption": "self.version", - "illuminate/events": "self.version", - "illuminate/filesystem": "self.version", - "illuminate/hashing": "self.version", - "illuminate/http": "self.version", - "illuminate/log": "self.version", - "illuminate/mail": "self.version", - "illuminate/notifications": "self.version", - "illuminate/pagination": "self.version", - "illuminate/pipeline": "self.version", - "illuminate/queue": "self.version", - "illuminate/redis": "self.version", - "illuminate/routing": "self.version", - "illuminate/session": "self.version", - "illuminate/support": "self.version", - "illuminate/translation": "self.version", - "illuminate/validation": "self.version", - "illuminate/view": "self.version", - "tightenco/collect": "self.version" - }, - "require-dev": { - "aws/aws-sdk-php": "~3.0", - "doctrine/dbal": "~2.5", - "filp/whoops": "^2.1.4", - "mockery/mockery": "~1.0", - "orchestra/testbench-core": "3.5.*", - "pda/pheanstalk": "~3.0", - "phpunit/phpunit": "~6.0", - "predis/predis": "^1.1.1", - "symfony/css-selector": "~3.3", - "symfony/dom-crawler": "~3.3" - }, - "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", - "laravel/tinker": "Required to use the tinker console command (~1.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", - "league/flysystem-cached-adapter": "Required to use Flysystem caching (~1.0).", - "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", - "nexmo/client": "Required to use the Nexmo transport (~1.0).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", - "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).", - "symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.3).", - "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.3).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "autoload": { - "files": [ - "src/Illuminate/Foundation/helpers.php", - "src/Illuminate/Support/helpers.php" - ], - "psr-4": { - "Illuminate\\": "src/Illuminate/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Laravel Framework.", - "homepage": "https://laravel.com", - "keywords": [ - "framework", - "laravel" - ], - "time": "2018-02-06 15:36:55" - }, - { - "name": "laravel/tinker", - "version": "v1.0.3", - "source": { - "type": "git", - "url": "https://github.com/laravel/tinker.git", - "reference": "852c2abe0b0991555a403f1c0583e64de6acb4a6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/852c2abe0b0991555a403f1c0583e64de6acb4a6", - "reference": "852c2abe0b0991555a403f1c0583e64de6acb4a6", - "shasum": "" - }, - "require": { - "illuminate/console": "~5.1", - "illuminate/contracts": "~5.1", - "illuminate/support": "~5.1", - "php": ">=5.5.9", - "psy/psysh": "0.7.*|0.8.*", - "symfony/var-dumper": "~3.0|~4.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "suggest": { - "illuminate/database": "The Illuminate Database package (~5.1)." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Laravel\\Tinker\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "Powerful REPL for the Laravel framework.", - "keywords": [ - "REPL", - "Tinker", - "laravel", - "psysh" - ], - "time": "2017-12-18 16:25:11" - }, - { - "name": "laravelcollective/html", - "version": "v5.5.1", - "source": { - "type": "git", - "url": "https://github.com/LaravelCollective/html.git", - "reference": "2f6dc39ab3655724a615fe8a652d8b7f04fc9ac6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/LaravelCollective/html/zipball/2f6dc39ab3655724a615fe8a652d8b7f04fc9ac6", - "reference": "2f6dc39ab3655724a615fe8a652d8b7f04fc9ac6", - "shasum": "" - }, - "require": { - "illuminate/http": "5.5.*", - "illuminate/routing": "5.5.*", - "illuminate/session": "5.5.*", - "illuminate/support": "5.5.*", - "illuminate/view": "5.5.*", - "php": ">=7.0.0" - }, - "require-dev": { - "illuminate/database": "5.5.*", - "mockery/mockery": "~0.9.4", - "phpunit/phpunit": "~5.4" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Collective\\Html\\HtmlServiceProvider" - ], - "aliases": { - "Form": "Collective\\Html\\FormFacade", - "Html": "Collective\\Html\\HtmlFacade" - } - } - }, - "autoload": { - "psr-4": { - "Collective\\Html\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylorotwell@gmail.com" - }, - { - "name": "Adam Engebretson", - "email": "adam@laravelcollective.com" - } - ], - "description": "HTML and Form Builders for the Laravel Framework", - "homepage": "http://laravelcollective.com", - "time": "2017-08-31 14:46:03" - }, - { - "name": "league/flysystem", - "version": "1.0.42", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "09eabc54e199950041aef258a85847676496fe8e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/09eabc54e199950041aef258a85847676496fe8e", - "reference": "09eabc54e199950041aef258a85847676496fe8e", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" - }, - "require-dev": { - "ext-fileinfo": "*", - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7" - }, - "suggest": { - "ext-fileinfo": "Required for MimeType", - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Flysystem\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frenky.net" - } - ], - "description": "Filesystem abstraction: Many filesystems, one API.", - "keywords": [ - "Cloud Files", - "WebDAV", - "abstraction", - "aws", - "cloud", - "copy.com", - "dropbox", - "file systems", - "files", - "filesystem", - "filesystems", - "ftp", - "rackspace", - "remote", - "s3", - "sftp", - "storage" - ], - "time": "2018-01-27 16:03:56" - }, - { - "name": "monolog/monolog", - "version": "1.23.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", - "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", - "swiftmailer/swiftmailer": "^5.3|^6.0" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "time": "2017-06-19 01:22:40" - }, - { - "name": "mtdowling/cron-expression", - "version": "v1.2.1", - "source": { - "type": "git", - "url": "https://github.com/mtdowling/cron-expression.git", - "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/9504fa9ea681b586028adaaa0877db4aecf32bad", - "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Cron\\": "src/Cron/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": [ - "cron", - "schedule" - ], - "time": "2017-01-23 04:29:33" - }, - { - "name": "nesbot/carbon", - "version": "1.22.1", - "source": { - "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", - "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "symfony/translation": "~2.6 || ~3.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2", - "phpunit/phpunit": "~4.0 || ~5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.23-dev" - } - }, - "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" - } - ], - "description": "A simple API extension for DateTime.", - "homepage": "http://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ], - "time": "2017-01-16 07:55:07" - }, - { - "name": "nikic/php-parser", - "version": "v3.1.4", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "e57b3a09784f846411aa7ed664eedb73e3399078" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e57b3a09784f846411aa7ed664eedb73e3399078", - "reference": "e57b3a09784f846411aa7ed664eedb73e3399078", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "time": "2018-01-25 21:31:33" - }, - { - "name": "paragonie/random_compat", - "version": "v2.0.11", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8", - "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "autoload": { - "files": [ - "lib/random.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "pseudorandom", - "random" - ], - "time": "2017-09-27 21:40:39" - }, - { - "name": "psr/container", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "time": "2017-02-14 16:28:37" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2016-08-06 14:39:51" - }, - { - "name": "psr/log", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2016-10-10 12:19:37" - }, - { - "name": "psr/simple-cache", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24", - "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "time": "2017-01-02 13:31:39" - }, - { - "name": "psy/psysh", - "version": "v0.8.17", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", - "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", - "shasum": "" - }, - "require": { - "dnoegel/php-xdg-base-dir": "0.1", - "jakub-onderka/php-console-highlighter": "0.3.*", - "nikic/php-parser": "~1.3|~2.0|~3.0", - "php": ">=5.3.9", - "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", - "symfony/var-dumper": "~2.7|~3.0|~4.0" - }, - "require-dev": { - "hoa/console": "~3.16|~1.14", - "phpunit/phpunit": "^4.8.35|^5.4.3", - "symfony/finder": "~2.1|~3.0|~4.0" - }, - "suggest": { - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", - "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." - }, - "bin": [ - "bin/psysh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-develop": "0.8.x-dev" - } - }, - "autoload": { - "files": [ - "src/Psy/functions.php" - ], - "psr-4": { - "Psy\\": "src/Psy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], - "time": "2017-12-28 16:14:16" - }, - { - "name": "ramsey/uuid", - "version": "3.7.3", - "source": { - "type": "git", - "url": "https://github.com/ramsey/uuid.git", - "reference": "44abcdad877d9a46685a3a4d221e3b2c4b87cb76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/44abcdad877d9a46685a3a4d221e3b2c4b87cb76", - "reference": "44abcdad877d9a46685a3a4d221e3b2c4b87cb76", - "shasum": "" - }, - "require": { - "paragonie/random_compat": "^1.0|^2.0", - "php": "^5.4 || ^7.0" - }, - "replace": { - "rhumsaa/uuid": "self.version" - }, - "require-dev": { - "codeception/aspect-mock": "^1.0 | ~2.0.0", - "doctrine/annotations": "~1.2.0", - "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ^2.1", - "ircmaxell/random-lib": "^1.1", - "jakub-onderka/php-parallel-lint": "^0.9.0", - "mockery/mockery": "^0.9.9", - "moontoast/math": "^1.1", - "php-mock/php-mock-phpunit": "^0.3|^1.1", - "phpunit/phpunit": "^4.7|^5.0", - "squizlabs/php_codesniffer": "^2.3" - }, - "suggest": { - "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", - "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", - "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", - "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", - "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", - "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Ramsey\\Uuid\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marijn Huizendveld", - "email": "marijn.huizendveld@gmail.com" - }, - { - "name": "Thibaud Fabre", - "email": "thibaud@aztech.io" - }, - { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" - } - ], - "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", - "homepage": "https://github.com/ramsey/uuid", - "keywords": [ - "guid", - "identifier", - "uuid" - ], - "time": "2018-01-20 00:28:24" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v6.0.2", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/412333372fb6c8ffb65496a2bbd7321af75733fc", - "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc", - "shasum": "" - }, - "require": { - "egulias/email-validator": "~2.0", - "php": ">=7.0.0" - }, - "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "~3.3@dev" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.0-dev" - } - }, - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "http://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ], - "time": "2017-09-30 22:39:41" - }, - { - "name": "symfony/console", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "26b6f419edda16c19775211987651cb27baea7f1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/26b6f419edda16c19775211987651cb27baea7f1", - "reference": "26b6f419edda16c19775211987651cb27baea7f1", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/process": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2018-01-29 09:03:43" - }, - { - "name": "symfony/css-selector", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "e66394bc7610e69279bfdb3ab11b4fe65403f556" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/e66394bc7610e69279bfdb3ab11b4fe65403f556", - "reference": "e66394bc7610e69279bfdb3ab11b4fe65403f556", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "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" - } - ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com", - "time": "2018-01-03 07:37:34" - }, - { - "name": "symfony/debug", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "53f6af2805daf52a43b393b93d2f24925d35c937" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/53f6af2805daf52a43b393b93d2f24925d35c937", - "reference": "53f6af2805daf52a43b393b93d2f24925d35c937", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2018-01-18 22:16:57" - }, - { - "name": "symfony/event-dispatcher", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/26b87b6bca8f8f797331a30b76fdae5342dc26ca", - "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2018-01-03 07:37:34" - }, - { - "name": "symfony/finder", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/613e26310776f49a1773b6737c6bd554b8bc8c6f", - "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "time": "2018-01-03 07:37:34" - }, - { - "name": "symfony/http-foundation", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "8c39071ac9cc7e6d8dab1d556c990dc0d2cc3d30" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8c39071ac9cc7e6d8dab1d556c990dc0d2cc3d30", - "reference": "8c39071ac9cc7e6d8dab1d556c990dc0d2cc3d30", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php70": "~1.6" - }, - "require-dev": { - "symfony/expression-language": "~2.8|~3.0|~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpFoundation Component", - "homepage": "https://symfony.com", - "time": "2018-01-29 09:03:43" - }, - { - "name": "symfony/http-kernel", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "911d2e5dd4beb63caad9a72e43857de984301907" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/911d2e5dd4beb63caad9a72e43857de984301907", - "reference": "911d2e5dd4beb63caad9a72e43857de984301907", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.4.4|^4.0.4" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4", - "symfony/var-dumper": "<3.3", - "twig/twig": "<1.34|<2.4,>=2" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpKernel Component", - "homepage": "https://symfony.com", - "time": "2018-01-29 12:29:46" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.7.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2018-01-30 19:27:44" - }, - { - "name": "symfony/polyfill-php70", - "version": "v1.7.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3532bfcd8f933a7816f3a0a59682fc404776600f", - "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f", - "shasum": "" - }, - "require": { - "paragonie/random_compat": "~1.0|~2.0", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2018-01-30 19:27:44" - }, - { - "name": "symfony/process", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "09a5172057be8fc677840e591b17f385e58c7c0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/09a5172057be8fc677840e591b17f385e58c7c0d", - "reference": "09a5172057be8fc677840e591b17f385e58c7c0d", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com", - "time": "2018-01-29 09:03:43" - }, - { - "name": "symfony/routing", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "235d01730d553a97732990588407eaf6779bb4b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/235d01730d553a97732990588407eaf6779bb4b2", - "reference": "235d01730d553a97732990588407eaf6779bb4b2", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.3", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/common": "~2.2", - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", - "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": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Routing Component", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "time": "2018-01-16 18:03:57" - }, - { - "name": "symfony/translation", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "10b32cf0eae28b9b39fe26c456c42b19854c4b84" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/10b32cf0eae28b9b39fe26c456c42b19854c4b84", - "reference": "10b32cf0eae28b9b39fe26c456c42b19854c4b84", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "psr/log": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "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 Translation Component", - "homepage": "https://symfony.com", - "time": "2018-01-18 22:16:57" - }, - { - "name": "symfony/var-dumper", - "version": "v3.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "472a9849930cf21f73abdb02240f17cf5b5bd1a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/472a9849930cf21f73abdb02240f17cf5b5bd1a7", - "reference": "472a9849930cf21f73abdb02240f17cf5b5bd1a7", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" - }, - "require-dev": { - "ext-iconv": "*", - "twig/twig": "~1.34|~2.4" - }, - "suggest": { - "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", - "ext-symfony_debug": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony mechanism for exploring and dumping PHP variables", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], - "time": "2018-01-29 09:03:43" - }, - { - "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.1", - "source": { - "type": "git", - "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", - "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "TijsVerkoyen\\CssToInlineStyles\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Tijs Verkoyen", - "email": "css_to_inline_styles@verkoyen.eu", - "role": "Developer" - } - ], - "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", - "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", - "time": "2017-11-27 11:13:29" - }, - { - "name": "vlucas/phpdotenv", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", - "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4-dev" - } - }, - "autoload": { - "psr-4": { - "Dotenv\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause-Attribution" - ], - "authors": [ - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "http://www.vancelucas.com" - } - ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", - "keywords": [ - "dotenv", - "env", - "environment" - ], - "time": "2016-09-01 10:05:43" - } - ], - "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", - "shasum": "" - }, - "require": { - "php": ">=5.3,<8.0-DEV" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2015-06-14 21:17:01" - }, - { - "name": "filp/whoops", - "version": "2.1.14", - "source": { - "type": "git", - "url": "https://github.com/filp/whoops.git", - "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/c6081b8838686aa04f1e83ba7e91f78b7b2a23e6", - "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6", - "shasum": "" - }, - "require": { - "php": "^5.5.9 || ^7.0", - "psr/log": "^1.0.1" - }, - "require-dev": { - "mockery/mockery": "0.9.*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Whoops\\": "src/Whoops/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "description": "php error handling for cool kids", - "homepage": "https://filp.github.io/whoops/", - "keywords": [ - "error", - "exception", - "handling", - "library", - "throwable", - "whoops" - ], - "time": "2017-11-23 18:22:44" - }, - { - "name": "fzaninotto/faker", - "version": "v1.7.1", - "source": { - "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", - "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", - "squizlabs/php_codesniffer": "^1.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "time": "2017-08-15 16:48:10" - }, - { - "name": "hamcrest/hamcrest-php", - "version": "v2.0.0", - "source": { - "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", - "shasum": "" - }, - "require": { - "php": "^5.3|^7.0" - }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" - }, - "require-dev": { - "phpunit/php-file-iterator": "1.3.3", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "hamcrest" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD" - ], - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" - ], - "time": "2016-01-20 08:20:44" - }, - { - "name": "mockery/mockery", - "version": "1.0", - "source": { - "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "1bac8c362b12f522fdd1f1fa3556284c91affa38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/1bac8c362b12f522fdd1f1fa3556284c91affa38", - "reference": "1bac8c362b12f522fdd1f1fa3556284c91affa38", - "shasum": "" - }, - "require": { - "hamcrest/hamcrest-php": "~2.0", - "lib-pcre": ">=7.0", - "php": ">=5.6.0" - }, - "require-dev": { - "phpunit/phpunit": "~5.7|~6.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Mockery": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" - }, - { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" - } - ], - "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", - "homepage": "http://github.com/mockery/mockery", - "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" - ], - "time": "2017-10-06 16:20:43" - }, - { - "name": "myclabs/deep-copy", - "version": "1.7.0", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "time": "2017-10-19 19:58:43" - }, - { - "name": "phar-io/manifest", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-03-05 18:14:27" - }, - { - "name": "phar-io/version", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "time": "2017-03-05 17:38:23" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2017-09-11 18:02:19" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-30 07:14:17" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "time": "2017-07-14 14:27:02" - }, - { - "name": "phpspec/prophecy", - "version": "1.7.3", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", - "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - }, - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2017-11-24 13:59:53" - }, - { - "name": "phpunit/php-code-coverage", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1", - "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.0", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^2.0.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-xdebug": "^2.5.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2017-12-06 09:29:45" - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2017-11-27 13:52:08" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21 13:50:34" - }, - { - "name": "phpunit/php-timer", - "version": "1.0.9", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2017-02-26 11:10:40" - }, - { - "name": "phpunit/php-token-stream", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "791198a2c6254db10131eecfe8c06670700904db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", - "reference": "791198a2c6254db10131eecfe8c06670700904db", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2017-11-27 05:48:46" - }, - { - "name": "phpunit/phpunit", - "version": "6.5.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3330ef26ade05359d006041316ed0fa9e8e3cefe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3330ef26ade05359d006041316ed0fa9e8e3cefe", - "reference": "3330ef26ade05359d006041316ed0fa9e8e3cefe", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.0", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.3", - "phpunit/php-file-iterator": "^1.4.3", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^1.0.9", - "phpunit/phpunit-mock-objects": "^5.0.5", - "sebastian/comparator": "^2.1", - "sebastian/diff": "^2.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2", - "phpunit/dbunit": "<3.0" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^1.1" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.5.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2018-02-01 05:57:37" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "5.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf", - "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.0", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.1" - }, - "conflict": { - "phpunit/phpunit": "<6.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.5" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "time": "2018-01-06 05:45:45" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04 06:30:41" - }, - { - "name": "sebastian/comparator", - "version": "2.1.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/diff": "^2.0 || ^3.0", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2018-02-01 13:46:46" - }, - { - "name": "sebastian/diff", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2017-08-03 08:09:46" - }, - { - "name": "sebastian/environment", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2017-07-01 08:51:00" - }, - { - "name": "sebastian/exporter", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2017-04-03 13:19:02" - }, - { - "name": "sebastian/global-state", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2017-04-27 15:39:26" - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03 12:35:26" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29 09:07:27" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03 06:23:57" - }, - { - "name": "sebastian/resource-operations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "shasum": "" - }, - "require": { - "php": ">=5.6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28 20:34:47" - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03 07:35:21" - }, - { - "name": "symfony/thanks", - "version": "v1.0.5", - "source": { - "type": "git", - "url": "https://github.com/symfony/thanks.git", - "reference": "c757ee0c9dcfcc0e9e30fbbbdcadeb9dcc9aaaf4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/thanks/zipball/c757ee0c9dcfcc0e9e30fbbbdcadeb9dcc9aaaf4", - "reference": "c757ee0c9dcfcc0e9e30fbbbdcadeb9dcc9aaaf4", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0", - "php": "^5.5.9|^7.0.0" - }, - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "class": "Symfony\\Thanks\\Thanks" - }, - "autoload": { - "psr-4": { - "Symfony\\Thanks\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - } - ], - "description": "Give thanks (in the form of a GitHub â­) to your fellow PHP package maintainers (not limited to Symfony components)!", - "time": "2018-01-26 10:44:34" - }, - { - "name": "theseer/tokenizer", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2017-04-07 12:08:54" - }, - { - "name": "webmozart/assert", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2018-01-29 19:49:41" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">=7.0.0" - }, - "platform-dev": [] -} diff --git a/config/app.php b/config/app.php deleted file mode 100644 index 2c475d01..00000000 --- a/config/app.php +++ /dev/null @@ -1,234 +0,0 @@ - env('APP_NAME', 'Heimdall'), - 'version' => '1.3.0', - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services your application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. We have gone - | ahead and set this to a sensible default for you out of the box. - | - */ - - 'timezone' => 'UTC', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. - | - */ - - 'locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | - */ - - 'fallback_locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! - | - */ - - 'key' => env('APP_KEY', 'base64:I206O8ibx+GQyRE7BeOxDobn04Mfmyyc5Ptzns/C0mY='), - - 'cipher' => 'AES-256-CBC', - - /* - |-------------------------------------------------------------------------- - | Logging Configuration - |-------------------------------------------------------------------------- - | - | Here you may configure the log settings for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. - | - | Available Settings: "single", "daily", "syslog", "errorlog" - | - */ - - 'log' => env('APP_LOG', 'single'), - - 'log_level' => env('APP_LOG_LEVEL', 'debug'), - - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ - - 'providers' => [ - - /* - * Laravel Framework Service Providers... - */ - Illuminate\Auth\AuthServiceProvider::class, - Illuminate\Broadcasting\BroadcastServiceProvider::class, - Illuminate\Bus\BusServiceProvider::class, - Illuminate\Cache\CacheServiceProvider::class, - Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, - Illuminate\Cookie\CookieServiceProvider::class, - Illuminate\Database\DatabaseServiceProvider::class, - Illuminate\Encryption\EncryptionServiceProvider::class, - Illuminate\Filesystem\FilesystemServiceProvider::class, - Illuminate\Foundation\Providers\FoundationServiceProvider::class, - Illuminate\Hashing\HashServiceProvider::class, - Illuminate\Mail\MailServiceProvider::class, - Illuminate\Notifications\NotificationServiceProvider::class, - Illuminate\Pagination\PaginationServiceProvider::class, - Illuminate\Pipeline\PipelineServiceProvider::class, - Illuminate\Queue\QueueServiceProvider::class, - Illuminate\Redis\RedisServiceProvider::class, - Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, - Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, - Illuminate\Validation\ValidationServiceProvider::class, - Illuminate\View\ViewServiceProvider::class, - - /* - * Package Service Providers... - */ - Collective\Html\HtmlServiceProvider::class, - /* - * Application Service Providers... - */ - App\Providers\AppServiceProvider::class, - App\Providers\AuthServiceProvider::class, - // App\Providers\BroadcastServiceProvider::class, - App\Providers\EventServiceProvider::class, - App\Providers\RouteServiceProvider::class, - - ], - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | - */ - - 'aliases' => [ - - 'App' => Illuminate\Support\Facades\App::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Auth' => Illuminate\Support\Facades\Auth::class, - 'Blade' => Illuminate\Support\Facades\Blade::class, - 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, - 'Bus' => Illuminate\Support\Facades\Bus::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Config' => Illuminate\Support\Facades\Config::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'DB' => Illuminate\Support\Facades\DB::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'File' => Illuminate\Support\Facades\File::class, - 'Form' => Collective\Html\FormFacade::class, - 'Gate' => Illuminate\Support\Facades\Gate::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Html' => Collective\Html\HtmlFacade::class, - 'Lang' => Illuminate\Support\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Mail' => Illuminate\Support\Facades\Mail::class, - 'Notification' => Illuminate\Support\Facades\Notification::class, - 'Password' => Illuminate\Support\Facades\Password::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Schema' => Illuminate\Support\Facades\Schema::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'URL' => Illuminate\Support\Facades\URL::class, - 'Validator' => Illuminate\Support\Facades\Validator::class, - 'View' => Illuminate\Support\Facades\View::class, - - ], - -]; diff --git a/config/auth.php b/config/auth.php deleted file mode 100644 index 78175010..00000000 --- a/config/auth.php +++ /dev/null @@ -1,102 +0,0 @@ - [ - 'guard' => 'web', - 'passwords' => 'users', - ], - - /* - |-------------------------------------------------------------------------- - | Authentication Guards - |-------------------------------------------------------------------------- - | - | Next, you may define every authentication guard for your application. - | Of course, a great default configuration has been defined for you - | here which uses session storage and the Eloquent user provider. - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | Supported: "session", "token" - | - */ - - 'guards' => [ - 'web' => [ - 'driver' => 'session', - 'provider' => 'users', - ], - - 'api' => [ - 'driver' => 'token', - 'provider' => 'users', - ], - ], - - /* - |-------------------------------------------------------------------------- - | User Providers - |-------------------------------------------------------------------------- - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | If you have multiple user tables or models you may configure multiple - | sources which represent each model / table. These sources may then - | be assigned to any extra authentication guards you have defined. - | - | Supported: "database", "eloquent" - | - */ - - 'providers' => [ - 'users' => [ - 'driver' => 'eloquent', - 'model' => App\User::class, - ], - - // 'users' => [ - // 'driver' => 'database', - // 'table' => 'users', - // ], - ], - - /* - |-------------------------------------------------------------------------- - | Resetting Passwords - |-------------------------------------------------------------------------- - | - | You may specify multiple password reset configurations if you have more - | than one user table or model in the application and you want to have - | separate password reset settings based on the specific user types. - | - | The expire time is the number of minutes that the reset token should be - | considered valid. This security feature keeps tokens short-lived so - | they have less time to be guessed. You may change this as needed. - | - */ - - 'passwords' => [ - 'users' => [ - 'provider' => 'users', - 'table' => 'password_resets', - 'expire' => 60, - ], - ], - -]; diff --git a/config/broadcasting.php b/config/broadcasting.php deleted file mode 100644 index 3ca45eaa..00000000 --- a/config/broadcasting.php +++ /dev/null @@ -1,59 +0,0 @@ - env('BROADCAST_DRIVER', 'null'), - - /* - |-------------------------------------------------------------------------- - | Broadcast Connections - |-------------------------------------------------------------------------- - | - | Here you may define all of the broadcast connections that will be used - | to broadcast events to other systems or over websockets. Samples of - | each available type of connection are provided inside this array. - | - */ - - 'connections' => [ - - 'pusher' => [ - 'driver' => 'pusher', - 'key' => env('PUSHER_APP_KEY'), - 'secret' => env('PUSHER_APP_SECRET'), - 'app_id' => env('PUSHER_APP_ID'), - 'options' => [ - 'cluster' => env('PUSHER_APP_CLUSTER'), - 'encrypted' => true, - ], - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - ], - - 'log' => [ - 'driver' => 'log', - ], - - 'null' => [ - 'driver' => 'null', - ], - - ], - -]; diff --git a/config/cache.php b/config/cache.php deleted file mode 100644 index fa12e5e4..00000000 --- a/config/cache.php +++ /dev/null @@ -1,94 +0,0 @@ - env('CACHE_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Cache Stores - |-------------------------------------------------------------------------- - | - | Here you may define all of the cache "stores" for your application as - | well as their drivers. You may even define multiple stores for the - | same cache driver to group types of items stored in your caches. - | - */ - - 'stores' => [ - - 'apc' => [ - 'driver' => 'apc', - ], - - 'array' => [ - 'driver' => 'array', - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'cache', - 'connection' => null, - ], - - 'file' => [ - 'driver' => 'file', - 'path' => storage_path('framework/cache/data'), - ], - - 'memcached' => [ - 'driver' => 'memcached', - 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), - 'sasl' => [ - env('MEMCACHED_USERNAME'), - env('MEMCACHED_PASSWORD'), - ], - 'options' => [ - // Memcached::OPT_CONNECT_TIMEOUT => 2000, - ], - 'servers' => [ - [ - 'host' => env('MEMCACHED_HOST', '127.0.0.1'), - 'port' => env('MEMCACHED_PORT', 11211), - 'weight' => 100, - ], - ], - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Cache Key Prefix - |-------------------------------------------------------------------------- - | - | When utilizing a RAM based store such as APC or Memcached, there might - | be other applications utilizing the same cache. So, we'll specify a - | value to get prefixed to all our keys so we can avoid collisions. - | - */ - - 'prefix' => env( - 'CACHE_PREFIX', - str_slug(env('APP_NAME', 'laravel'), '_').'_cache' - ), - -]; diff --git a/config/database.php b/config/database.php deleted file mode 100644 index 8f7573f6..00000000 --- a/config/database.php +++ /dev/null @@ -1,121 +0,0 @@ - env('DB_CONNECTION', 'sqlite'), - - /* - |-------------------------------------------------------------------------- - | Database Connections - |-------------------------------------------------------------------------- - | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. - | - */ - - 'connections' => [ - - 'sqlite' => [ - 'driver' => 'sqlite', - //'database' => env('DB_DATABASE', database_path('database.sqlite')), - 'database' => database_path(env('DB_DATABASE', 'app.sqlite')), - 'prefix' => '', - ], - - 'mysql' => [ - 'driver' => 'mysql', - 'host' => env('DB_HOST', '127.0.0.1'), - 'port' => env('DB_PORT', '3306'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'unix_socket' => env('DB_SOCKET', ''), - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'prefix' => '', - 'strict' => true, - 'engine' => null, - ], - - 'pgsql' => [ - 'driver' => 'pgsql', - 'host' => env('DB_HOST', '127.0.0.1'), - 'port' => env('DB_PORT', '5432'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - 'schema' => 'public', - 'sslmode' => 'prefer', - ], - - 'sqlsrv' => [ - 'driver' => 'sqlsrv', - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '1433'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Migration Repository Table - |-------------------------------------------------------------------------- - | - | This table keeps track of all the migrations that have already run for - | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. - | - */ - - 'migrations' => 'migrations', - - /* - |-------------------------------------------------------------------------- - | Redis Databases - |-------------------------------------------------------------------------- - | - | Redis is an open source, fast, and advanced key-value store that also - | provides a richer set of commands than a typical key-value systems - | such as APC or Memcached. Laravel makes it easy to dig right in. - | - */ - - 'redis' => [ - - 'client' => 'predis', - - 'default' => [ - 'host' => env('REDIS_HOST', '127.0.0.1'), - 'password' => env('REDIS_PASSWORD', null), - 'port' => env('REDIS_PORT', 6379), - 'database' => 0, - ], - - ], - -]; diff --git a/config/filesystems.php b/config/filesystems.php deleted file mode 100644 index 40da9cee..00000000 --- a/config/filesystems.php +++ /dev/null @@ -1,68 +0,0 @@ - env('FILESYSTEM_DRIVER', 'public'), - - /* - |-------------------------------------------------------------------------- - | Default Cloud Filesystem Disk - |-------------------------------------------------------------------------- - | - | Many applications store files both locally and in the cloud. For this - | reason, you may specify a default "cloud" driver here. This driver - | will be bound as the Cloud disk implementation in the container. - | - */ - - 'cloud' => env('FILESYSTEM_CLOUD', 's3'), - - /* - |-------------------------------------------------------------------------- - | Filesystem Disks - |-------------------------------------------------------------------------- - | - | Here you may configure as many filesystem "disks" as you wish, and you - | may even configure multiple disks of the same driver. Defaults have - | been setup for each driver as an example of the required options. - | - | Supported Drivers: "local", "ftp", "s3", "rackspace" - | - */ - - 'disks' => [ - - 'local' => [ - 'driver' => 'local', - 'root' => storage_path('app'), - ], - - 'public' => [ - 'driver' => 'local', - 'root' => storage_path('app/public'), - 'url' => env('APP_URL').'/storage', - 'visibility' => 'public', - ], - - 's3' => [ - 'driver' => 's3', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION'), - 'bucket' => env('AWS_BUCKET'), - ], - - ], - -]; diff --git a/config/mail.php b/config/mail.php deleted file mode 100644 index bb92224c..00000000 --- a/config/mail.php +++ /dev/null @@ -1,123 +0,0 @@ - env('MAIL_DRIVER', 'smtp'), - - /* - |-------------------------------------------------------------------------- - | SMTP Host Address - |-------------------------------------------------------------------------- - | - | Here you may provide the host address of the SMTP server used by your - | applications. A default option is provided that is compatible with - | the Mailgun mail service which will provide reliable deliveries. - | - */ - - 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), - - /* - |-------------------------------------------------------------------------- - | SMTP Host Port - |-------------------------------------------------------------------------- - | - | This is the SMTP port used by your application to deliver e-mails to - | users of the application. Like the host we have set this value to - | stay compatible with the Mailgun e-mail application by default. - | - */ - - 'port' => env('MAIL_PORT', 587), - - /* - |-------------------------------------------------------------------------- - | Global "From" Address - |-------------------------------------------------------------------------- - | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. - | - */ - - 'from' => [ - 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), - 'name' => env('MAIL_FROM_NAME', 'Example'), - ], - - /* - |-------------------------------------------------------------------------- - | E-Mail Encryption Protocol - |-------------------------------------------------------------------------- - | - | Here you may specify the encryption protocol that should be used when - | the application send e-mail messages. A sensible default using the - | transport layer security protocol should provide great security. - | - */ - - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), - - /* - |-------------------------------------------------------------------------- - | SMTP Server Username - |-------------------------------------------------------------------------- - | - | If your SMTP server requires a username for authentication, you should - | set it here. This will get used to authenticate with your server on - | connection. You may also set the "password" value below this one. - | - */ - - 'username' => env('MAIL_USERNAME'), - - 'password' => env('MAIL_PASSWORD'), - - /* - |-------------------------------------------------------------------------- - | Sendmail System Path - |-------------------------------------------------------------------------- - | - | When using the "sendmail" driver to send e-mails, we will need to know - | the path to where Sendmail lives on this server. A default path has - | been provided here, which will work well on most of your systems. - | - */ - - 'sendmail' => '/usr/sbin/sendmail -bs', - - /* - |-------------------------------------------------------------------------- - | Markdown Mail Settings - |-------------------------------------------------------------------------- - | - | If you are using Markdown based email rendering, you may configure your - | theme and component paths here, allowing you to customize the design - | of the emails. Or, you may simply stick with the Laravel defaults! - | - */ - - 'markdown' => [ - 'theme' => 'default', - - 'paths' => [ - resource_path('views/vendor/mail'), - ], - ], - -]; diff --git a/config/queue.php b/config/queue.php deleted file mode 100644 index 8c06fcc5..00000000 --- a/config/queue.php +++ /dev/null @@ -1,85 +0,0 @@ - env('QUEUE_DRIVER', 'sync'), - - /* - |-------------------------------------------------------------------------- - | Queue Connections - |-------------------------------------------------------------------------- - | - | Here you may configure the connection information for each server that - | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. - | - */ - - 'connections' => [ - - 'sync' => [ - 'driver' => 'sync', - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'jobs', - 'queue' => 'default', - 'retry_after' => 90, - ], - - 'beanstalkd' => [ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', - 'retry_after' => 90, - ], - - 'sqs' => [ - 'driver' => 'sqs', - 'key' => env('SQS_KEY', 'your-public-key'), - 'secret' => env('SQS_SECRET', 'your-secret-key'), - 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), - 'queue' => env('SQS_QUEUE', 'your-queue-name'), - 'region' => env('SQS_REGION', 'us-east-1'), - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - 'queue' => 'default', - 'retry_after' => 90, - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Failed Queue Jobs - |-------------------------------------------------------------------------- - | - | These options configure the behavior of failed queue job logging so you - | can control which database and table are used to store the jobs that - | have failed. You may change them to any database / table you wish. - | - */ - - 'failed' => [ - 'database' => env('DB_CONNECTION', 'mysql'), - 'table' => 'failed_jobs', - ], - -]; diff --git a/config/services.php b/config/services.php deleted file mode 100644 index 4460f0ec..00000000 --- a/config/services.php +++ /dev/null @@ -1,38 +0,0 @@ - [ - 'domain' => env('MAILGUN_DOMAIN'), - 'secret' => env('MAILGUN_SECRET'), - ], - - 'ses' => [ - 'key' => env('SES_KEY'), - 'secret' => env('SES_SECRET'), - 'region' => 'us-east-1', - ], - - 'sparkpost' => [ - 'secret' => env('SPARKPOST_SECRET'), - ], - - 'stripe' => [ - 'model' => App\User::class, - 'key' => env('STRIPE_KEY'), - 'secret' => env('STRIPE_SECRET'), - ], - -]; diff --git a/config/session.php b/config/session.php deleted file mode 100644 index 736fb3c7..00000000 --- a/config/session.php +++ /dev/null @@ -1,197 +0,0 @@ - env('SESSION_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Session Lifetime - |-------------------------------------------------------------------------- - | - | Here you may specify the number of minutes that you wish the session - | to be allowed to remain idle before it expires. If you want them - | to immediately expire on the browser closing, set that option. - | - */ - - 'lifetime' => env('SESSION_LIFETIME', 120), - - 'expire_on_close' => false, - - /* - |-------------------------------------------------------------------------- - | Session Encryption - |-------------------------------------------------------------------------- - | - | This option allows you to easily specify that all of your session data - | should be encrypted before it is stored. All encryption will be run - | automatically by Laravel and you can use the Session like normal. - | - */ - - 'encrypt' => false, - - /* - |-------------------------------------------------------------------------- - | Session File Location - |-------------------------------------------------------------------------- - | - | When using the native session driver, we need a location where session - | files may be stored. A default has been set for you but a different - | location may be specified. This is only needed for file sessions. - | - */ - - 'files' => storage_path('framework/sessions'), - - /* - |-------------------------------------------------------------------------- - | Session Database Connection - |-------------------------------------------------------------------------- - | - | When using the "database" or "redis" session drivers, you may specify a - | connection that should be used to manage these sessions. This should - | correspond to a connection in your database configuration options. - | - */ - - 'connection' => null, - - /* - |-------------------------------------------------------------------------- - | Session Database Table - |-------------------------------------------------------------------------- - | - | When using the "database" session driver, you may specify the table we - | should use to manage the sessions. Of course, a sensible default is - | provided for you; however, you are free to change this as needed. - | - */ - - 'table' => 'sessions', - - /* - |-------------------------------------------------------------------------- - | Session Cache Store - |-------------------------------------------------------------------------- - | - | When using the "apc" or "memcached" session drivers, you may specify a - | cache store that should be used for these sessions. This value must - | correspond with one of the application's configured cache stores. - | - */ - - 'store' => null, - - /* - |-------------------------------------------------------------------------- - | Session Sweeping Lottery - |-------------------------------------------------------------------------- - | - | Some session drivers must manually sweep their storage location to get - | rid of old sessions from storage. Here are the chances that it will - | happen on a given request. By default, the odds are 2 out of 100. - | - */ - - 'lottery' => [2, 100], - - /* - |-------------------------------------------------------------------------- - | Session Cookie Name - |-------------------------------------------------------------------------- - | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. - | - */ - - 'cookie' => env( - 'SESSION_COOKIE', - str_slug(env('APP_NAME', 'laravel'), '_').'_session' - ), - - /* - |-------------------------------------------------------------------------- - | Session Cookie Path - |-------------------------------------------------------------------------- - | - | The session cookie path determines the path for which the cookie will - | be regarded as available. Typically, this will be the root path of - | your application but you are free to change this when necessary. - | - */ - - 'path' => '/', - - /* - |-------------------------------------------------------------------------- - | Session Cookie Domain - |-------------------------------------------------------------------------- - | - | Here you may change the domain of the cookie used to identify a session - | in your application. This will determine which domains the cookie is - | available to in your application. A sensible default has been set. - | - */ - - 'domain' => env('SESSION_DOMAIN', null), - - /* - |-------------------------------------------------------------------------- - | HTTPS Only Cookies - |-------------------------------------------------------------------------- - | - | By setting this option to true, session cookies will only be sent back - | to the server if the browser has a HTTPS connection. This will keep - | the cookie from being sent to you if it can not be done securely. - | - */ - - 'secure' => env('SESSION_SECURE_COOKIE', false), - - /* - |-------------------------------------------------------------------------- - | HTTP Access Only - |-------------------------------------------------------------------------- - | - | Setting this value to true will prevent JavaScript from accessing the - | value of the cookie and the cookie will only be accessible through - | the HTTP protocol. You are free to modify this option if needed. - | - */ - - 'http_only' => true, - - /* - |-------------------------------------------------------------------------- - | Same-Site Cookies - |-------------------------------------------------------------------------- - | - | This option determines how your cookies behave when cross-site requests - | take place, and can be used to mitigate CSRF attacks. By default, we - | do not enable this as other CSRF protection services are in place. - | - | Supported: "lax", "strict" - | - */ - - 'same_site' => null, - -]; diff --git a/config/view.php b/config/view.php deleted file mode 100644 index 2acfd9cc..00000000 --- a/config/view.php +++ /dev/null @@ -1,33 +0,0 @@ - [ - resource_path('views'), - ], - - /* - |-------------------------------------------------------------------------- - | Compiled View Path - |-------------------------------------------------------------------------- - | - | This option determines where all the compiled Blade templates will be - | stored for your application. Typically, this is within the storage - | directory. However, as usual, you are free to change this value. - | - */ - - 'compiled' => realpath(storage_path('framework/views')), - -]; diff --git a/database/.gitignore b/database/.gitignore deleted file mode 100644 index 9b1dffd9..00000000 --- a/database/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.sqlite diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php deleted file mode 100644 index facf2337..00000000 --- a/database/factories/UserFactory.php +++ /dev/null @@ -1,23 +0,0 @@ -define(App\User::class, function (Faker $faker) { - return [ - 'name' => $faker->name, - 'email' => $faker->unique()->safeEmail, - 'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret - 'remember_token' => str_random(10), - ]; -}); diff --git a/database/migrations/2018_01_27_155922_create_items_table.php b/database/migrations/2018_01_27_155922_create_items_table.php deleted file mode 100644 index 66bf466e..00000000 --- a/database/migrations/2018_01_27_155922_create_items_table.php +++ /dev/null @@ -1,39 +0,0 @@ -increments('id'); - $table->string('title'); - $table->string('colour')->nullable(); - $table->string('icon')->nullable(); - $table->string('url'); - $table->text('description')->nullable(); - $table->boolean('pinned')->default(false); - $table->integer('order')->default(0); - $table->softDeletes(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('items'); - } -} diff --git a/database/migrations/2018_02_04_185524_create_settings_table.php b/database/migrations/2018_02_04_185524_create_settings_table.php deleted file mode 100644 index dec2f147..00000000 --- a/database/migrations/2018_02_04_185524_create_settings_table.php +++ /dev/null @@ -1,38 +0,0 @@ -increments('id'); - $table->integer('group_id')->default(0); - $table->string('key'); - $table->string('type')->default('text'); - $table->text('options')->nullable(); - $table->string('label'); - $table->string('value')->nullable(); - $table->string('order')->default(0); - $table->boolean('system')->default(false); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('settings'); - } -} diff --git a/database/migrations/2018_02_04_185802_create_setting_groups_table.php b/database/migrations/2018_02_04_185802_create_setting_groups_table.php deleted file mode 100644 index 0ce89c58..00000000 --- a/database/migrations/2018_02_04_185802_create_setting_groups_table.php +++ /dev/null @@ -1,32 +0,0 @@ -increments('id'); - $table->string('title'); - $table->integer('order')->default(0); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('setting_groups'); - } -} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php deleted file mode 100644 index c03f1d90..00000000 --- a/database/seeds/DatabaseSeeder.php +++ /dev/null @@ -1,16 +0,0 @@ -call(SettingsSeeder::class); - } -} diff --git a/database/seeds/SettingsSeeder.php b/database/seeds/SettingsSeeder.php deleted file mode 100644 index b9e57a1f..00000000 --- a/database/seeds/SettingsSeeder.php +++ /dev/null @@ -1,139 +0,0 @@ -id = 1; - $setting_group->title = 'app.settings.system'; - $setting_group->order = 0; - $setting_group->save(); - } else { - $setting_group->title = 'app.settings.system'; - $setting_group->save(); - } - if(!$setting_group = SettingGroup::find(2)) { - $setting_group = new SettingGroup; - $setting_group->id = 2; - $setting_group->title = 'app.settings.appearance'; - $setting_group->order = 1; - $setting_group->save(); - } else { - $setting_group->title = 'app.settings.appearance'; - $setting_group->save(); - } - if(!$setting_group = SettingGroup::find(3)) { - $setting_group = new SettingGroup; - $setting_group->id = 3; - $setting_group->title = 'app.settings.miscellaneous'; - $setting_group->order = 2; - $setting_group->save(); - } else { - $setting_group->title = 'app.settings.miscellaneous'; - $setting_group->save(); - } - - if($version = Setting::find(1)) { - $version->label = 'app.settings.version'; - $version->value = config('app.version'); - $version->save(); - } else { - $setting = new Setting; - $setting->id = 1; - $setting->group_id = 1; - $setting->key = 'version'; - $setting->type = 'text'; - $setting->label = 'app.settings.version'; - $setting->value = config('app.version'); - $setting->system = true; - $setting->save(); - } - - if(!$setting = Setting::find(2)) { - $setting = new Setting; - $setting->id = 2; - $setting->group_id = 2; - $setting->key = 'background_image'; - $setting->type = 'image'; - $setting->label = 'app.settings.background_image'; - $setting->save(); - } else { - $setting->label = 'app.settings.background_image'; - $setting->save(); - } - if(!$setting = Setting::find(3)) { - $setting = new Setting; - $setting->id = 3; - $setting->group_id = 3; - $setting->key = 'homepage_search'; - $setting->type = 'boolean'; - $setting->label = 'app.settings.homepage_search'; - $setting->save(); - } else { - $setting->label = 'app.settings.homepage_search'; - $setting->save(); - } - - $options = json_encode([ - 'none' => 'app.options.none', - 'google' => 'app.options.google', - 'ddg' => 'app.options.ddg', - 'bing' => 'app.options.bing' - ]); - - if(!$setting = Setting::find(4)) { - - $setting = new Setting; - $setting->id = 4; - $setting->group_id = 3; - $setting->key = 'search_provider'; - $setting->type = 'select'; - $setting->options = $options; - $setting->label = 'app.settings.search_provider'; - $setting->save(); - } else { - $setting->options = $options; - $setting->label = 'app.settings.search_provider'; - $setting->save(); - } - - - $language_options = json_encode([ - 'de' => 'Deutsch (German)', - 'en' => 'English', - 'fi' => 'Suomi (Finnish)', - 'fr' => 'Français (French)', - 'sv' => 'Svenska (Swedish)', - 'es' => 'Español (Spanish)', - 'tr' => 'Türkçe (Turkish)', - ]); - if($languages = Setting::find(5)) { - $languages->options = $language_options; - $languages->save(); - } else { - $setting = new Setting; - $setting->id = 5; - $setting->group_id = 1; - $setting->key = 'language'; - $setting->type = 'select'; - $setting->label = 'app.settings.language'; - $setting->options = $language_options; - $setting->value = 'en'; - $setting->save(); - } - - - } -} diff --git a/index.html b/index.html new file mode 100644 index 00000000..6b6caaa9 --- /dev/null +++ b/index.html @@ -0,0 +1,39 @@ + + + + + + + + Heimdall + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 94b9450d..00000000 --- a/package-lock.json +++ /dev/null @@ -1,13450 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", - "dev": true, - "requires": { - "mime-types": "2.1.17", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", - "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, - "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "adjust-sourcemap-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.1.0.tgz", - "integrity": "sha1-QS2SQE62HkETY1ASy6U6M9AI4OI=", - "dev": true, - "requires": { - "assert": "1.4.1", - "camelcase": "1.2.1", - "loader-utils": "1.1.0", - "lodash.assign": "4.2.0", - "lodash.defaults": "3.1.2", - "object-path": "0.9.2", - "regex-parser": "2.2.8" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "lodash.defaults": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", - "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", - "dev": true, - "requires": { - "lodash.assign": "3.2.0", - "lodash.restparam": "3.6.1" - }, - "dependencies": { - "lodash.assign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "dev": true, - "requires": { - "lodash._baseassign": "3.2.0", - "lodash._createassigner": "3.1.1", - "lodash.keys": "3.1.2" - } - } - } - } - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "archive-type": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz", - "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=", - "dev": true, - "requires": { - "file-type": "3.9.0" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true - } - } - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" - } - }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dev": true, - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-flatten": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", - "dev": true - }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "asn1.js": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", - "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-types": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", - "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", - "dev": true - }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, - "requires": { - "lodash": "4.17.4" - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "async-each-series": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz", - "integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", - "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=", - "dev": true - }, - "autoprefixer": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.5.tgz", - "integrity": "sha512-XqHfo8Ht0VU+T5P+eWEVoXza456KJ4l62BPewu3vpNf3LP9s2+zYXkXBznzYby4XeECXgG3N4i+hGvOhXErZmA==", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000792", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.16", - "postcss-value-parser": "3.3.0" - } - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" - }, - "axios": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", - "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", - "dev": true, - "requires": { - "follow-redirects": "1.4.1", - "is-buffer": "1.1.6" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", - "dev": true, - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", - "dev": true, - "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "0.10.1" - } - }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-preset-env": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", - "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.3", - "invariant": "2.2.2", - "semver": "5.5.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.3", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.0", - "pascalcase": "0.1.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "bin-build": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz", - "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=", - "dev": true, - "requires": { - "archive-type": "3.2.0", - "decompress": "3.0.0", - "download": "4.4.3", - "exec-series": "1.0.3", - "rimraf": "2.6.2", - "tempfile": "1.1.1", - "url-regex": "3.2.0" - }, - "dependencies": { - "tempfile": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", - "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2", - "uuid": "2.0.3" - } - }, - "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "dev": true - } - } - }, - "bin-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz", - "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=", - "dev": true, - "requires": { - "executable": "1.1.0" - } - }, - "bin-version": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz", - "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=", - "dev": true, - "requires": { - "find-versions": "1.2.1" - } - }, - "bin-version-check": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz", - "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=", - "dev": true, - "requires": { - "bin-version": "1.0.4", - "minimist": "1.2.0", - "semver": "4.3.6", - "semver-truncate": "1.1.2" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - } - } - }, - "bin-wrapper": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", - "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=", - "dev": true, - "requires": { - "bin-check": "2.0.0", - "bin-version-check": "2.1.0", - "download": "4.4.3", - "each-async": "1.1.1", - "lazy-req": "1.1.0", - "os-filter-obj": "1.0.3" - } - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", - "dev": true, - "requires": { - "readable-stream": "2.3.3" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "2.0.3" - } - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "on-finished": "2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "1.6.15" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.2", - "multicast-dns-service-types": "1.1.0" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.16.3" - } - }, - "bootstrap-sass": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/bootstrap-sass/-/bootstrap-sass-3.3.7.tgz", - "integrity": "sha1-ZZbHq0D2Y3OTMjqwvIDQZPxjBJg=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true, - "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "1.0.6" - } - }, - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000792", - "electron-to-chromium": "1.3.31" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-to-vinyl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz", - "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=", - "dev": true, - "requires": { - "file-type": "3.9.0", - "readable-stream": "2.3.3", - "uuid": "2.0.3", - "vinyl": "1.2.0" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true - }, - "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "dev": true - } - } - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cacache": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.2.tgz", - "integrity": "sha512-dljb7dk1jqO5ogE+dRpoR9tpHYv5xz9vPSNunh1+0wRuNdYxmzp9WmsyokgW/DUF1FDRVA/TMsmxt027R8djbQ==", - "dev": true, - "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.1", - "mississippi": "1.3.1", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.1.0", - "unique-filename": "1.1.0", - "y18n": "3.2.1" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" - } - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - } - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000795", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000795", - "electron-to-chromium": "1.3.31" - } - } - } - }, - "caniuse-db": { - "version": "1.0.30000795", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000795.tgz", - "integrity": "sha1-ZE8D+rAN2L0Wk+Xh5w2Gsxxc/s4=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000792", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz", - "integrity": "sha1-0M6pgfgRjzlhRxr7tDyaHlu/AzI=", - "dev": true - }, - "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "dev": true - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" - }, - "caw": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz", - "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=", - "dev": true, - "requires": { - "get-proxy": "1.1.0", - "is-obj": "1.0.1", - "object-assign": "3.0.0", - "tunnel-agent": "0.4.3" - }, - "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } - } - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - }, - "dependencies": { - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - } - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } - } - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "requires": { - "chalk": "1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "clean-css": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", - "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", - "dev": true, - "requires": { - "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", - "dev": true - }, - "clone-deep": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", - "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=", - "dev": true, - "requires": { - "for-own": "1.0.0", - "is-plain-object": "2.0.4", - "kind-of": "3.2.2", - "shallow-clone": "0.1.2" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - } - } - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true, - "requires": { - "clone": "1.0.3", - "color-convert": "1.9.1", - "color-string": "0.3.0" - } - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true, - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.1" - } - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", - "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "compressible": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", - "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", - "dev": true, - "requires": { - "mime-db": "1.30.0" - } - }, - "compression": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", - "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", - "dev": true, - "requires": { - "accepts": "1.3.4", - "bytes": "3.0.0", - "compressible": "2.0.12", - "debug": "2.6.9", - "on-headers": "1.0.1", - "safe-buffer": "5.1.1", - "vary": "1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" - } - }, - "concatenate": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/concatenate/-/concatenate-0.0.2.tgz", - "integrity": "sha1-C0nW6MQQR9dyjNyNYqCGYjOXtJ8=", - "dev": true, - "requires": { - "globs": "0.1.3" - } - }, - "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "console-stream": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", - "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=", - "dev": true - }, - "consolidate": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", - "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", - "dev": true, - "requires": { - "bluebird": "3.5.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.7.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "1.0.0" - } - }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.10" - } - }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.10" - } - }, - "cross-env": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.3.tgz", - "integrity": "sha512-UOokgwvDzCT0mqRSLEkJzUhYXB1vK3E5UgDrD41QiXsm9UetcW2rCGHYz/O3p873lMJ1VZbFCF9Izkwh7nYR5A==", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "is-windows": "1.0.1" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.10.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.6", - "randomfill": "1.0.3" - } - }, - "css": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", - "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "source-map": "0.1.43", - "source-map-resolve": "0.3.1", - "urix": "0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-loader": { - "version": "0.28.9", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.9.tgz", - "integrity": "sha512-r3dgelMm/mkPz5Y7m9SeiGE46i2VsEU/OYbez+1llfxtv8b2y5/b5StaeEvPK3S5tlNQI+tDW/xDIhKJoZgDtw==", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.2.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "dev": true, - "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" - }, - "dependencies": { - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - } - } - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000795", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000795", - "electron-to-chromium": "1.3.31" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "1.0.2" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "0.10.38" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", - "dev": true - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "decompress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz", - "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=", - "dev": true, - "requires": { - "buffer-to-vinyl": "1.1.0", - "concat-stream": "1.6.0", - "decompress-tar": "3.1.0", - "decompress-tarbz2": "3.1.0", - "decompress-targz": "3.1.0", - "decompress-unzip": "3.4.0", - "stream-combiner2": "1.1.1", - "vinyl-assign": "1.2.1", - "vinyl-fs": "2.4.4" - } - }, - "decompress-tar": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz", - "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=", - "dev": true, - "requires": { - "is-tar": "1.0.0", - "object-assign": "2.1.1", - "strip-dirs": "1.1.1", - "tar-stream": "1.5.5", - "through2": "0.6.5", - "vinyl": "0.4.6" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", - "dev": true - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" - } - } - } - }, - "decompress-tarbz2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz", - "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=", - "dev": true, - "requires": { - "is-bzip2": "1.0.0", - "object-assign": "2.1.1", - "seek-bzip": "1.0.5", - "strip-dirs": "1.1.1", - "tar-stream": "1.5.5", - "through2": "0.6.5", - "vinyl": "0.4.6" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", - "dev": true - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" - } - } - } - }, - "decompress-targz": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz", - "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=", - "dev": true, - "requires": { - "is-gzip": "1.0.0", - "object-assign": "2.1.1", - "strip-dirs": "1.1.1", - "tar-stream": "1.5.5", - "through2": "0.6.5", - "vinyl": "0.4.6" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", - "dev": true - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" - } - } - } - }, - "decompress-unzip": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz", - "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=", - "dev": true, - "requires": { - "is-zip": "1.0.0", - "read-all-stream": "3.1.0", - "stat-mode": "0.2.2", - "strip-dirs": "1.1.1", - "through2": "2.0.3", - "vinyl": "1.2.0", - "yauzl": "2.9.1" - }, - "dependencies": { - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" - } - } - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true - }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" - } - }, - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "1.1.1" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", - "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", - "dev": true - }, - "dotenv-expand": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.0.1.tgz", - "integrity": "sha1-aP3cFWGBTgoQlkERBX/xOM7X16g=", - "dev": true - }, - "download": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz", - "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=", - "dev": true, - "requires": { - "caw": "1.2.0", - "concat-stream": "1.6.0", - "each-async": "1.1.1", - "filenamify": "1.2.1", - "got": "5.7.1", - "gulp-decompress": "1.2.0", - "gulp-rename": "1.2.2", - "is-url": "1.2.2", - "object-assign": "4.1.1", - "read-all-stream": "3.1.0", - "readable-stream": "2.3.3", - "stream-combiner2": "1.1.1", - "vinyl": "1.2.0", - "vinyl-fs": "2.4.4", - "ware": "1.3.0" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "2.3.3" - } - }, - "duplexify": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", - "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "stream-shift": "1.0.0" - } - }, - "each-async": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", - "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=", - "dev": true, - "requires": { - "onetime": "1.1.0", - "set-immediate-shim": "1.0.1" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.31", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz", - "integrity": "sha512-XE4CLbswkZgZFn34cKFy1xaX+F5LHxeDLjY1+rsK9asDzknhbrd9g/n/01/acbU25KTsUSiLKwvlLyA+6XLUOA==", - "dev": true - }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" - } - }, - "errno": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", - "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", - "dev": true, - "requires": { - "prr": "1.0.1" - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "requires": { - "is-arrayish": "0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.1.tgz", - "integrity": "sha1-oyArj7AxFKqbQKDjZp5IsrZaAQo=", - "dev": true, - "requires": { - "stackframe": "1.0.4" - } - }, - "es-abstract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", - "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", - "dev": true, - "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", - "is-regex": "1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" - } - }, - "es5-ext": { - "version": "0.10.38", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", - "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", - "dev": true, - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38" - } - }, - "es6-templates": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", - "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", - "dev": true, - "requires": { - "recast": "0.11.23", - "through": "2.3.8" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", - "dev": true, - "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38" - } - }, - "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "dev": true, - "requires": { - "original": "1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" - } - }, - "exec-buffer": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", - "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "p-finally": "1.0.0", - "pify": "3.0.0", - "rimraf": "2.6.2", - "tempfile": "2.0.0" - } - }, - "exec-series": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz", - "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=", - "dev": true, - "requires": { - "async-each-series": "1.1.0", - "object-assign": "4.1.1" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "executable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz", - "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=", - "dev": true, - "requires": { - "meow": "3.7.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.3" - } - }, - "express": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", - "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", - "dev": true, - "requires": { - "accepts": "1.3.4", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.0", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", - "qs": "6.5.1", - "range-parser": "1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.1", - "serve-static": "1.13.1", - "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "dev": true, - "requires": { - "async": "2.6.0", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "webpack-sources": "1.1.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", - "dev": true, - "requires": { - "ansi-gray": "0.1.1", - "color-support": "1.1.3", - "time-stamp": "1.1.0" - } - }, - "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "requires": { - "pend": "1.2.0" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } - }, - "file-loader": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz", - "integrity": "sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==", - "dev": true, - "requires": { - "loader-utils": "1.1.0" - } - }, - "file-type": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", - "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", - "dev": true - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "filename-reserved-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", - "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", - "dev": true - }, - "filenamify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", - "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", - "dev": true, - "requires": { - "filename-reserved-regex": "1.0.0", - "strip-outer": "1.0.0", - "trim-repeated": "1.0.0" - } - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.1.0", - "pkg-dir": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "find-versions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz", - "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=", - "dev": true, - "requires": { - "array-uniq": "1.0.3", - "get-stdin": "4.0.1", - "meow": "3.7.0", - "semver-regex": "1.0.0" - } - }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "dev": true - }, - "flush-write-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", - "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "follow-redirects": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", - "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", - "dev": true, - "requires": { - "debug": "3.1.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "friendly-errors-webpack-plugin": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.6.1.tgz", - "integrity": "sha1-4yeBxHIvVGoGqbXXp8+ihSA3XXA=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "error-stack-parser": "2.0.1", - "string-length": "1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.39", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "requires": { - "globule": "1.2.0" - } - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "requires": { - "is-property": "1.0.2" - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" - }, - "get-proxy": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz", - "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=", - "dev": true, - "requires": { - "rc": "1.2.4" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "gifsicle": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz", - "integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=", - "dev": true, - "requires": { - "bin-build": "2.2.0", - "bin-wrapper": "3.0.2", - "logalot": "2.1.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "glob-stream": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", - "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", - "dev": true, - "requires": { - "extend": "3.0.1", - "glob": "5.0.15", - "glob-parent": "3.1.0", - "micromatch": "2.3.11", - "ordered-read-streams": "0.3.0", - "through2": "0.6.5", - "to-absolute-glob": "0.1.1", - "unique-stream": "2.2.1" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "globs": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/globs/-/globs-0.1.3.tgz", - "integrity": "sha1-ZwA3ElKHy2VJqtlqRM+mhP18VQI=", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", - "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "minimatch": "3.0.4" - } - }, - "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", - "dev": true, - "requires": { - "sparkles": "1.0.0" - } - }, - "got": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", - "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=", - "dev": true, - "requires": { - "create-error-class": "3.0.2", - "duplexer2": "0.1.4", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", - "node-status-codes": "1.0.0", - "object-assign": "4.1.1", - "parse-json": "2.2.0", - "pinkie-promise": "2.0.1", - "read-all-stream": "3.1.0", - "readable-stream": "2.3.3", - "timed-out": "3.1.3", - "unzip-response": "1.0.2", - "url-parse-lax": "1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true - }, - "gulp-decompress": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz", - "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=", - "dev": true, - "requires": { - "archive-type": "3.2.0", - "decompress": "3.0.0", - "gulp-util": "3.0.8", - "readable-stream": "2.3.3" - } - }, - "gulp-rename": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", - "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", - "dev": true - }, - "gulp-sourcemaps": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", - "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", - "dev": true, - "requires": { - "convert-source-map": "1.5.1", - "graceful-fs": "4.1.11", - "strip-bom": "2.0.0", - "through2": "2.0.3", - "vinyl": "1.2.0" - }, - "dependencies": { - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" - } - } - } - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true, - "requires": { - "array-differ": "1.0.0", - "array-uniq": "1.0.3", - "beeper": "1.1.1", - "chalk": "1.1.3", - "dateformat": "2.2.0", - "fancy-log": "1.3.2", - "gulplog": "1.0.0", - "has-gulplog": "0.1.0", - "lodash._reescape": "3.0.0", - "lodash._reevaluate": "3.0.0", - "lodash._reinterpolate": "3.0.0", - "lodash.template": "3.6.2", - "minimist": "1.2.0", - "multipipe": "0.1.2", - "object-assign": "3.0.0", - "replace-ext": "0.0.1", - "through2": "2.0.3", - "vinyl": "0.5.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" - } - }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true, - "requires": { - "clone": "1.0.3", - "clone-stats": "0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "1.0.1" - } - }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "requires": { - "chalk": "1.1.3", - "commander": "2.12.2", - "is-my-json-valid": "2.17.1", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "requires": { - "sparkles": "1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "wbuf": "1.7.2" - } - }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "html-loader": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.4.5.tgz", - "integrity": "sha1-X7zYfNY6XEmn/OL+VvQl4Fcpxow=", - "dev": true, - "requires": { - "es6-templates": "0.2.3", - "fastparse": "1.1.1", - "html-minifier": "3.5.8", - "loader-utils": "1.1.0", - "object-assign": "4.1.1" - } - }, - "html-minifier": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.8.tgz", - "integrity": "sha512-WX7D6PB9PFq05fZ1/CyxPUuyqXed6vh2fGOM80+zJT5wAO93D/cUjLs0CcbBFjQmlwmCgRvl97RurtArIpOnkw==", - "dev": true, - "requires": { - "camel-case": "3.0.0", - "clean-css": "4.1.9", - "commander": "2.12.2", - "he": "1.1.1", - "ncname": "1.0.0", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.3.8" - }, - "dependencies": { - "uglify-js": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.8.tgz", - "integrity": "sha512-X0jAGtpSZRtd4RhbVNuGHyjZNa/h2MrVkKrR3Ew5iL2MJw6d7FmBke+fhVCALWySv1ygHnjjROG1KI1FAPvddw==", - "dev": true, - "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - } - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "dev": true, - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", - "dev": true - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", - "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=", - "dev": true - }, - "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", - "dev": true, - "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "dev": true, - "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.4", - "micromatch": "2.3.11" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "6.0.16" - } - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "imagemin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-5.3.1.tgz", - "integrity": "sha1-8Zwu7h5xumxlWMUV+fyWaAGJptQ=", - "dev": true, - "requires": { - "file-type": "4.4.0", - "globby": "6.1.0", - "make-dir": "1.1.0", - "p-pipe": "1.2.0", - "pify": "2.3.0", - "replace-ext": "1.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "imagemin-gifsicle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-5.2.0.tgz", - "integrity": "sha512-K01m5QuPK+0en8oVhiOOAicF7KjrHlCZxS++mfLI2mV/Ksfq/Y9nCXCWDz6jRv13wwlqe5T7hXT+ji2DnLc2yQ==", - "dev": true, - "requires": { - "exec-buffer": "3.2.0", - "gifsicle": "3.0.4", - "is-gif": "1.0.0" - } - }, - "imagemin-mozjpeg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/imagemin-mozjpeg/-/imagemin-mozjpeg-6.0.0.tgz", - "integrity": "sha1-caMqRXqhsmEXpo7u8tmxkMLlCR4=", - "dev": true, - "requires": { - "exec-buffer": "3.2.0", - "is-jpg": "1.0.0", - "mozjpeg": "4.1.1" - } - }, - "imagemin-optipng": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", - "integrity": "sha1-0i2kEsCfX/AKQzmWC5ioix2+hpU=", - "dev": true, - "requires": { - "exec-buffer": "3.2.0", - "is-png": "1.1.0", - "optipng-bin": "3.1.4" - } - }, - "imagemin-pngquant": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-5.0.1.tgz", - "integrity": "sha1-2KMp2lU6+iJrEc5i3r4Lfje0OeY=", - "dev": true, - "requires": { - "exec-buffer": "3.2.0", - "is-png": "1.1.0", - "pngquant-bin": "3.1.1" - } - }, - "imagemin-svgo": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-5.2.4.tgz", - "integrity": "sha512-1bNZdlWVKdfxzu0xDD1pWjwK/G8FLcztUh/GWaI7xLgCFrn0j35o+uBbY7VcdY2AmKgiLYTXhrzrbkQk6xj8aA==", - "dev": true, - "requires": { - "is-svg": "2.1.0", - "svgo": "0.7.2" - } - }, - "img-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-2.0.0.tgz", - "integrity": "sha1-WDdAs+KjiuulQ1x91TC+nOdFT9k=", - "dev": true, - "requires": { - "imagemin": "5.3.1", - "imagemin-gifsicle": "5.2.0", - "imagemin-mozjpeg": "6.0.0", - "imagemin-optipng": "5.2.1", - "imagemin-pngquant": "5.0.1", - "imagemin-svgo": "5.2.4", - "loader-utils": "1.1.0" - } - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "2.0.1" - } - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "internal-ip": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", - "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "dev": true, - "requires": { - "meow": "3.7.0" - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true, - "requires": { - "loose-envify": "1.3.1" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", - "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=", - "dev": true - }, - "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", - "dev": true - }, - "is-absolute": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", - "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=", - "dev": true, - "requires": { - "is-relative": "0.1.3" - } - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.11.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-bzip2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", - "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=", - "dev": true - }, - "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", - "dev": true - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-gif": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz", - "integrity": "sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-gzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=", - "dev": true - }, - "is-jpg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.0.tgz", - "integrity": "sha1-KVnBfnNDDbOCZNp1uQ3VTy2G2hw=", - "dev": true - }, - "is-my-json-valid": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz", - "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==", - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } - }, - "is-natural-number": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz", - "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-odd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", - "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", - "dev": true, - "requires": { - "is-number": "3.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "is-png": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", - "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=", - "dev": true - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "1.0.1" - } - }, - "is-relative": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", - "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=", - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true, - "requires": { - "html-comment-regex": "1.1.1" - } - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true - }, - "is-tar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz", - "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-url": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", - "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-valid-glob": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", - "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=", - "dev": true - }, - "is-windows": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", - "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "is-zip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz", - "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", - "dev": true - }, - "js-base64": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.2.tgz", - "integrity": "sha512-lLkz3IRPTNeATsKQGeltbzRK/5+bWsXBHfpZrxJAi4N30RtCtNA+rJznp4uR2+4OgkBsoeeFwONVLr4gzIVErQ==" - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "2.7.3" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "killable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", - "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "laravel-mix": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-1.7.2.tgz", - "integrity": "sha512-La1eAsCkEdySc9J9MJ/g8Dj1EfGo7aXW92GZKoSbrSg4uQWNNoV824e6+o4f4Eo/YWYrYwZTkdnWJJ1uVqP+dw==", - "dev": true, - "requires": { - "autoprefixer": "7.2.5", - "babel-core": "6.26.0", - "babel-loader": "7.1.2", - "babel-plugin-transform-object-rest-spread": "6.26.0", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.1", - "chokidar": "1.7.0", - "clean-css": "4.1.9", - "concatenate": "0.0.2", - "css-loader": "0.28.9", - "dotenv": "4.0.0", - "dotenv-expand": "4.0.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "0.11.2", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "3.0.1", - "glob": "7.1.2", - "html-loader": "0.4.5", - "img-loader": "2.0.0", - "lodash": "4.17.4", - "md5": "2.2.1", - "node-sass": "4.7.2", - "postcss-loader": "2.0.10", - "resolve-url-loader": "2.2.1", - "sass-loader": "6.0.6", - "style-loader": "0.18.2", - "uglify-js": "2.8.29", - "uglifyjs-webpack-plugin": "1.1.6", - "vue-loader": "13.7.0", - "vue-template-compiler": "2.5.13", - "webpack": "3.10.0", - "webpack-chunk-hash": "0.4.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.1", - "webpack-notifier": "1.5.1", - "yargs": "8.0.2" - } - }, - "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", - "dev": true - }, - "lazy-req": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", - "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=", - "dev": true - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "2.3.3" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true, - "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" - } - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", - "dev": true - }, - "lodash._createassigner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "dev": true, - "requires": { - "lodash._bindcallback": "3.0.1", - "lodash._isiterateecall": "3.0.9", - "lodash.restparam": "3.6.1" - } - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "requires": { - "lodash._root": "3.0.1" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", - "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=" - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "3.0.1", - "lodash._basetostring": "3.0.1", - "lodash._basevalues": "3.0.0", - "lodash._isiterateecall": "3.0.9", - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0", - "lodash.keys": "3.1.2", - "lodash.restparam": "3.6.1", - "lodash.templatesettings": "3.1.1" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "logalot": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", - "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", - "dev": true, - "requires": { - "figures": "1.7.0", - "squeak": "1.3.0" - } - }, - "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, - "requires": { - "js-tokens": "3.0.2" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", - "dev": true - }, - "lpad-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", - "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", - "dev": true, - "requires": { - "get-stdin": "4.0.1", - "indent-string": "2.1.0", - "longest": "1.0.1", - "meow": "3.7.0" - } - }, - "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "macaddress": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", - "dev": true - }, - "make-dir": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", - "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", - "dev": true - }, - "md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", - "dev": true, - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "1.1.6" - } - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - } - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "1.1.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "0.1.6", - "readable-stream": "2.3.3" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "requires": { - "readable-stream": "2.3.3" - } - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - }, - "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" - }, - "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", - "requires": { - "mime-db": "1.30.0" - } - }, - "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.8" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mississippi": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.1.tgz", - "integrity": "sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==", - "dev": true, - "requires": { - "concat-stream": "1.6.0", - "duplexify": "3.5.3", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.2", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "1.0.3", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" - }, - "dependencies": { - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" - } - } - } - }, - "mixin-deep": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz", - "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==", - "dev": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "mozjpeg": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-4.1.1.tgz", - "integrity": "sha1-hZAwsk9omlPbm0DwFg2JGVuI/VA=", - "dev": true, - "requires": { - "bin-build": "2.2.0", - "bin-wrapper": "3.0.2", - "logalot": "2.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.2.tgz", - "integrity": "sha512-xTO41ApiRHMVDBYhNL9bEhx7kRf1hq3OqPOnOy8bpTi0JZSxVPDre7ZRpTHLDlxmhf6d/FL+10E8VX1QRd+0DA==", - "dev": true, - "requires": { - "dns-packet": "1.3.1", - "thunky": "0.1.0" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, - "requires": { - "duplexer2": "0.0.2" - }, - "dependencies": { - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "requires": { - "readable-stream": "1.1.14" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=" - }, - "nanomatch": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", - "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "is-odd": "1.0.0", - "kind-of": "5.1.0", - "object.pick": "1.3.0", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "ncname": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", - "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", - "dev": true, - "requires": { - "xml-char-classes": "1.0.0" - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "1.1.4" - } - }, - "node-forge": { - "version": "0.6.33", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", - "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", - "dev": true - }, - "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.79.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - } - } - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.8.0", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.6", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" - } - }, - "node-notifier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", - "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", - "dev": true, - "requires": { - "growly": "1.3.0", - "semver": "5.5.0", - "shellwords": "0.1.1", - "which": "1.3.0" - } - }, - "node-sass": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", - "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", - "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.2", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.0", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.8.0", - "node-gyp": "3.6.2", - "npmlog": "4.1.2", - "request": "2.79.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "node-status-codes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", - "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "requires": { - "abbrev": "1.1.1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - } - } - }, - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true - }, - "object-path": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", - "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "obuf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", - "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true - }, - "opn": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", - "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, - "optipng-bin": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz", - "integrity": "sha1-ldNPLEiHBPb9cGBr/qDGWfHZXYQ=", - "dev": true, - "requires": { - "bin-build": "2.2.0", - "bin-wrapper": "3.0.2", - "logalot": "2.1.0" - } - }, - "ordered-read-streams": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", - "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", - "dev": true, - "requires": { - "is-stream": "1.1.0", - "readable-stream": "2.3.3" - } - }, - "original": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", - "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", - "dev": true, - "requires": { - "url-parse": "1.0.5" - }, - "dependencies": { - "url-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", - "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", - "dev": true, - "requires": { - "querystringify": "0.0.4", - "requires-port": "1.0.0" - } - } - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-filter-obj": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz", - "integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "dev": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-pipe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", - "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=", - "dev": true - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "requires": { - "no-case": "2.3.2" - } - }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "dev": true, - "requires": { - "asn1.js": "4.9.2", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "1.3.1" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", - "dev": true, - "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.10" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - }, - "pngquant-bin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-3.1.1.tgz", - "integrity": "sha1-0STZinWpSH9AwWQLTb/Lsr1aH9E=", - "dev": true, - "requires": { - "bin-build": "2.2.0", - "bin-wrapper": "3.0.2", - "logalot": "2.1.0" - } - }, - "portfinder": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", - "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", - "dev": true, - "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", - "dev": true, - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "5.1.0" - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "dev": true, - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1", - "postcss-load-options": "1.2.0", - "postcss-load-plugins": "2.3.0" - } - }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "dev": true, - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" - } - }, - "postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "dev": true, - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" - } - }, - "postcss-loader": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.10.tgz", - "integrity": "sha512-xQaDcEgJ/2JqFY18zpFkik8vyYs7oS5ZRbrjvDqkP97k2wYWfPT4+qA0m4o3pTSCsz0u26PNqs8ZO9FRUWAqrA==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.16", - "postcss-load-config": "1.2.0", - "schema-utils": "0.3.0" - } - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000795", - "electron-to-chromium": "1.3.31" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", - "dev": true - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", - "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", - "dev": true, - "requires": { - "postcss": "6.0.16" - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.16" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.16" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.16" - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true, - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true, - "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "prettier": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.10.2.tgz", - "integrity": "sha512-TcdNoQIWFoHblurqqU6d1ysopjq7UX0oRcT/hJ8qvBAELiYWn+Ugf0AXdnzISEJ7vuhNnQ98N8jR8Sh53x4IZg==", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", - "dev": true, - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.6" - } - }, - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", - "dev": true, - "requires": { - "duplexify": "3.5.3", - "inherits": "2.0.3", - "pump": "2.0.1" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - } - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", - "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", - "dev": true - }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "randomfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", - "dev": true, - "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.1" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.4.tgz", - "integrity": "sha1-oPYGyq4qO4YrvQ74VILAElsxX6M=", - "dev": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "read-all-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", - "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1", - "readable-stream": "2.3.3" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } - } - } - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" - } - }, - "recast": { - "version": "0.11.23", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", - "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", - "dev": true, - "requires": { - "ast-types": "0.9.6", - "esprima": "3.1.3", - "private": "0.1.8", - "source-map": "0.5.7" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } - }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true, - "requires": { - "balanced-match": "0.4.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regex-not": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", - "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1" - } - }, - "regex-parser": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.8.tgz", - "integrity": "sha1-2kwM2lqChVkJQWiTD0VfUytv+6w=", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "1.0.2" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.4.3", - "uuid": "3.2.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "dev": true, - "requires": { - "path-parse": "1.0.5" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "resolve-url-loader": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.2.1.tgz", - "integrity": "sha512-ywToZt/yttp4qG/SiiGMLAgaGuSaWSujAaf3WCadXehvQLxIgKFmMOSegaoH9Laa70Ayl4kti0zCAqLR48H/Mw==", - "dev": true, - "requires": { - "adjust-sourcemap-loader": "1.1.0", - "camelcase": "4.1.0", - "convert-source-map": "1.5.1", - "loader-utils": "1.1.0", - "lodash.defaults": "4.2.0", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.5.7", - "urix": "0.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "dev": true, - "requires": { - "convert-source-map": "0.3.5", - "css": "2.2.1" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", - "dev": true - } - } - }, - "rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } - }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true, - "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "1.2.0" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" - } - } - } - }, - "sass-loader": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.6.tgz", - "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", - "dev": true, - "requires": { - "async": "2.6.0", - "clone-deep": "0.3.0", - "loader-utils": "1.1.0", - "lodash.tail": "4.1.1", - "pify": "3.0.0" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "5.5.2" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "requires": { - "js-base64": "2.4.2", - "source-map": "0.4.4" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", - "dev": true, - "requires": { - "commander": "2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, - "requires": { - "graceful-readlink": "1.0.1" - } - } - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", - "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", - "dev": true, - "requires": { - "node-forge": "0.6.33" - } - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - }, - "semver-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", - "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=", - "dev": true - }, - "semver-truncate": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", - "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", - "dev": true, - "requires": { - "semver": "5.5.0" - } - }, - "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "serialize-javascript": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz", - "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=", - "dev": true - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.2", - "mime-types": "2.1.17", - "parseurl": "1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", - "dev": true, - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-getter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", - "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", - "dev": true, - "requires": { - "to-object-path": "0.3.0" - } - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "sha.js": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", - "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", - "dev": true, - "requires": { - "is-extendable": "0.1.1", - "kind-of": "2.0.1", - "lazy-cache": "0.2.7", - "mixin-object": "2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "snapdragon": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", - "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "2.0.2" - }, - "dependencies": { - "atob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", - "dev": true, - "requires": { - "atob": "2.0.3", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.16.3" - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.2.1" - } - }, - "sockjs-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-resolve": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", - "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", - "dev": true, - "requires": { - "atob": "1.1.3", - "resolve-url": "0.2.1", - "source-map-url": "0.3.0", - "urix": "0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", - "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=", - "dev": true - }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "requires": { - "spdx-license-ids": "1.2.2" - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" - }, - "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "dev": true, - "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", - "select-hose": "2.0.0", - "spdy-transport": "2.0.20" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "spdy-transport": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", - "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", - "dev": true, - "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "safe-buffer": "5.1.1", - "wbuf": "1.7.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "squeak": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", - "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "console-stream": "0.1.1", - "lpad-align": "1.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "ssri": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.1.0.tgz", - "integrity": "sha512-TevC8fgxQKTfQ1nWtM9GNzr3q5rrHNntG9CDMH1k3QhSZI6Kb+NbjLRs8oPFZa2Hgo7zoekL+UTvoEk7tsbjQg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "stackframe": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz", - "integrity": "sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==", - "dev": true - }, - "stat-mode": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", - "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", - "requires": { - "readable-stream": "2.3.3" - } - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.3" - } - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - } - }, - "stream-http": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", - "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", - "dev": true, - "requires": { - "strip-ansi": "3.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-bom-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", - "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", - "dev": true, - "requires": { - "first-chunk-stream": "1.0.0", - "strip-bom": "2.0.0" - } - }, - "strip-dirs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz", - "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "get-stdin": "4.0.1", - "is-absolute": "0.1.7", - "is-natural-number": "2.1.1", - "minimist": "1.2.0", - "sum-up": "1.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "strip-outer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz", - "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "style-loader": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz", - "integrity": "sha512-WPpJPZGUxWYHWIUMNNOYqql7zh85zGmr84FdTVWq52WTIkqlW9xSxD3QYWi/T31cqn9UNSsietVEgGn2aaSCzw==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" - } - }, - "sum-up": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz", - "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=", - "dev": true, - "requires": { - "chalk": "1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true, - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" - } - }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-stream": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", - "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", - "dev": true, - "requires": { - "bl": "1.2.1", - "end-of-stream": "1.4.1", - "readable-stream": "2.3.3", - "xtend": "4.0.1" - } - }, - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", - "dev": true - }, - "tempfile": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", - "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", - "dev": true, - "requires": { - "temp-dir": "1.0.0", - "uuid": "3.2.1" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", - "dev": true, - "requires": { - "through2": "2.0.3", - "xtend": "4.0.1" - }, - "dependencies": { - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" - } - } - } - }, - "thunky": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", - "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", - "dev": true - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timed-out": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", - "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", - "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", - "dev": true, - "requires": { - "setimmediate": "1.0.5" - } - }, - "to-absolute-glob": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", - "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", - "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "regex-not": "1.0.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - } - } - }, - "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", - "requires": { - "punycode": "1.4.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" - }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", - "requires": { - "glob": "6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - } - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.17" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.6.tgz", - "integrity": "sha512-VUja+7rYbznEvUaeb8IxOCTUrq4BCb1ml0vffa+mfwKtrAwlqnU0ENF14DtYltV1cxd/HSuK51CCA/D/8kMQVw==", - "dev": true, - "requires": { - "cacache": "10.0.2", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.3", - "serialize-javascript": "1.4.0", - "source-map": "0.6.1", - "uglify-es": "3.3.8", - "webpack-sources": "1.1.0", - "worker-farm": "1.5.2" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "schema-utils": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.3.tgz", - "integrity": "sha512-sgv/iF/T4/SewJkaVpldKC4WjSkz0JsOh2eKtxCPpCO1oR05+7MOF+H476HVRbLArkgA7j5TRJJ4p2jdFkUGQQ==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1" - } - }, - "uglify-es": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.8.tgz", - "integrity": "sha512-j8li0jWcAN6yBuAVYFZEFyYINZAm4WEdMwkA6qXFi4TLrze3Mp0Le7QjW6LR9HQjQJ2zRa9VgnFLs3PatijWOw==", - "dev": true, - "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" - } - } - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dev": true, - "requires": { - "macaddress": "0.2.8" - } - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "dev": true, - "requires": { - "unique-slug": "2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "dev": true, - "requires": { - "imurmurhash": "0.1.4" - } - }, - "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", - "dev": true, - "requires": { - "json-stable-stringify": "1.0.1", - "through2-filter": "2.0.0" - } - }, - "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "unzip-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", - "dev": true - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", - "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", - "dev": true, - "requires": { - "querystringify": "1.0.0", - "requires-port": "1.0.0" - }, - "dependencies": { - "querystringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", - "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", - "dev": true - } - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "1.0.4" - } - }, - "url-regex": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", - "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", - "dev": true, - "requires": { - "ip-regex": "1.0.3" - } - }, - "use": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", - "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "isobject": "3.0.1", - "lazy-cache": "2.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "lazy-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", - "dev": true, - "requires": { - "set-getter": "0.1.0" - } - } - } - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" - }, - "vali-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", - "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true, - "requires": { - "clone": "1.0.3", - "clone-stats": "0.0.1", - "replace-ext": "0.0.1" - }, - "dependencies": { - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - } - } - }, - "vinyl-assign": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz", - "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "readable-stream": "2.3.3" - } - }, - "vinyl-fs": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", - "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", - "dev": true, - "requires": { - "duplexify": "3.5.3", - "glob-stream": "5.3.5", - "graceful-fs": "4.1.11", - "gulp-sourcemaps": "1.6.0", - "is-valid-glob": "0.3.0", - "lazystream": "1.0.0", - "lodash.isequal": "4.5.0", - "merge-stream": "1.0.1", - "mkdirp": "0.5.1", - "object-assign": "4.1.1", - "readable-stream": "2.3.3", - "strip-bom": "2.0.0", - "strip-bom-stream": "1.0.0", - "through2": "2.0.3", - "through2-filter": "2.0.0", - "vali-date": "1.0.0", - "vinyl": "1.2.0" - }, - "dependencies": { - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" - } - } - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "vue": { - "version": "2.5.13", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.13.tgz", - "integrity": "sha512-3D+lY7HTkKbtswDM4BBHgqyq+qo8IAEE8lz8va1dz3LLmttjgo0FxairO4r1iN2OBqk8o1FyL4hvzzTFEdQSEw==", - "dev": true - }, - "vue-hot-reload-api": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.2.4.tgz", - "integrity": "sha512-e+ThJMYmZg4D9UnrLcr6LQxGu6YlcxkrmZGPCyIN4malcNhdeGGKxmFuM5y6ICMJJxQywLfT8MM1rYZr4LpeLw==", - "dev": true - }, - "vue-loader": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.0.tgz", - "integrity": "sha512-kDXRgglOOltghngrDFS/YfFew7e0d8fkvPHLYAfLgur7GW0cBt+J0fpBReWY2pixA09dL13abfE4fECyRH4HGg==", - "dev": true, - "requires": { - "consolidate": "0.14.5", - "hash-sum": "1.0.2", - "loader-utils": "1.1.0", - "lru-cache": "4.1.1", - "postcss": "6.0.16", - "postcss-load-config": "1.2.0", - "postcss-selector-parser": "2.2.3", - "prettier": "1.10.2", - "resolve": "1.5.0", - "source-map": "0.6.1", - "vue-hot-reload-api": "2.2.4", - "vue-style-loader": "3.1.1", - "vue-template-es2015-compiler": "1.6.0" - } - }, - "vue-style-loader": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.1.tgz", - "integrity": "sha512-AX0tRYm5sQUn2G1gYwyFhreU5/2+oFEf0ddsiF1SyRv6bycY1ntqNu7r3CF92KxTXbmRzfm9bVz3Ys/xm+kQQg==", - "dev": true, - "requires": { - "hash-sum": "1.0.2", - "loader-utils": "1.1.0" - } - }, - "vue-template-compiler": { - "version": "2.5.13", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.13.tgz", - "integrity": "sha512-15HWSgIxrGUcV0v7QRen2Y3fQsbgxXwMvjT/5XKMO0ANmaCcNh7y2OeIDTAuSGeosjb9+E1Pn2PHZ61VQWEgBQ==", - "dev": true, - "requires": { - "de-indent": "1.0.2", - "he": "1.1.1" - } - }, - "vue-template-es2015-compiler": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", - "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", - "dev": true - }, - "ware": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz", - "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=", - "dev": true, - "requires": { - "wrap-fn": "0.1.5" - } - }, - "watchpack": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", - "dev": true, - "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" - } - }, - "wbuf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", - "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", - "dev": true, - "requires": { - "minimalistic-assert": "1.0.0" - } - }, - "webpack": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", - "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", - "dev": true, - "requires": { - "acorn": "5.3.0", - "acorn-dynamic-import": "2.0.2", - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" - } - } - } - }, - "webpack-chunk-hash": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/webpack-chunk-hash/-/webpack-chunk-hash-0.4.0.tgz", - "integrity": "sha1-a0DDBw+8n/DP4P54HHF0r2x8FqQ=", - "dev": true - }, - "webpack-dev-middleware": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", - "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", - "dev": true, - "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "time-stamp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", - "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.1.tgz", - "integrity": "sha512-ombhu5KsO/85sVshIDTyQ5HF3xjZR3N0sf5Ao6h3vFwpNyzInEzA1GV3QPVjTMLTNckp8PjfG1PFGznzBwS5lg==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "2.0.0", - "compression": "1.7.1", - "connect-history-api-fallback": "1.5.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.2", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "import-local": "1.0.0", - "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.1", - "opn": "5.2.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.1", - "serve-index": "1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.1.0", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.5", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", - "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.1" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "chokidar": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.0.tgz", - "integrity": "sha512-OgXCNv2U6TnG04D3tth0gsvdbV4zdbxFG3sYUqcoQMoEFVd1j1pZR6TZ8iknC45o9IJ6PeQI/J6wT/+cHcniAw==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.0", - "fsevents": "1.1.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", - "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.0", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.7", - "object.pick": "1.3.0", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" - } - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true, - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "requires": { - "camelcase": "3.0.0" - } - } - } - }, - "webpack-merge": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.1.tgz", - "integrity": "sha512-geQsZ86YkXOVOjvPC5yv3JSNnL6/X3Kzh935AQ/gJNEYXEfJDQFu/sdFuktS9OW2JcH/SJec8TGfRdrpHshH7A==", - "dev": true, - "requires": { - "lodash": "4.17.4" - } - }, - "webpack-notifier": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.5.1.tgz", - "integrity": "sha1-z19rmhcR+Alpu8T3vRXUDqexh2E=", - "dev": true, - "requires": { - "node-notifier": "5.2.1", - "object-assign": "4.1.1", - "strip-ansi": "3.0.1" - } - }, - "webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", - "dev": true, - "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": "0.4.9", - "websocket-extensions": "0.1.3" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "requires": { - "string-width": "1.0.2" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "worker-farm": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", - "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", - "dev": true, - "requires": { - "errno": "0.1.6", - "xtend": "4.0.1" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - } - }, - "wrap-fn": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz", - "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=", - "dev": true, - "requires": { - "co": "3.1.0" - }, - "dependencies": { - "co": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", - "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xml-char-classes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", - "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - } - } - }, - "yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", - "dev": true, - "requires": { - "buffer-crc32": "0.2.13", - "fd-slicer": "1.0.1" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 063a56e9..00000000 --- a/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "npm run development", - "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch-poll": "npm run watch -- --watch-poll", - "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", - "prod": "npm run production", - "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" - }, - "devDependencies": { - "axios": "^0.17", - "bootstrap-sass": "^3.3.7", - "cross-env": "^5.1.3", - "jquery": "^3.2", - "laravel-mix": "^1.0", - "lodash": "^4.17.4", - "vue": "^2.5.7" - }, - "dependencies": { - "node-sass": "^4.7.2" - } -} diff --git a/phpunit.xml b/phpunit.xml deleted file mode 100644 index bb9c4a7e..00000000 --- a/phpunit.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - ./tests/Feature - - - - ./tests/Unit - - - - - ./app - - - - - - - - - diff --git a/public/.htaccess b/public/.htaccess deleted file mode 100644 index b75525be..00000000 --- a/public/.htaccess +++ /dev/null @@ -1,21 +0,0 @@ - - - Options -MultiViews -Indexes - - - RewriteEngine On - - # Handle Authorization Header - RewriteCond %{HTTP:Authorization} . - RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] - - # Redirect Trailing Slashes If Not A Folder... - RewriteCond %{REQUEST_FILENAME} !-d - RewriteCond %{REQUEST_URI} (.+)/$ - RewriteRule ^ %1 [L,R=301] - - # Handle Front Controller... - RewriteCond %{REQUEST_FILENAME} !-d - RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^ index.php [L] - diff --git a/public/android-icon-144x144.png b/public/android-icon-144x144.png deleted file mode 100644 index 7bfce4ba3ff432e729588326a68913eeef88fbf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11503 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 GhWrm=hOq$v diff --git a/public/android-icon-192x192.png b/public/android-icon-192x192.png deleted file mode 100644 index 3fb156564fedb30593f3cf8bf1b733ed1b87b4a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14771 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 z 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 PF(JzG8gkW8^YH%xPI1(8 diff --git a/public/android-icon-36x36.png b/public/android-icon-36x36.png deleted file mode 100644 index f10757db4ead028d133d0eb47fbfdab3c7dd6a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2127 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 F{s$)Rj6eVY diff --git a/public/android-icon-96x96.png b/public/android-icon-96x96.png deleted file mode 100644 index 8c6476be29620a654a1fc54f63e0405dc733aff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7278 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 w;r4J5jHsxcjg5#n#@5fB6+ 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

-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 GhWrm=hOq$v diff --git a/public/apple-icon-152x152.png b/public/apple-icon-152x152.png deleted file mode 100644 index bd8c16c2c62332671e008e651a2b9be31d4762c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12129 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 diff --git a/public/apple-icon-180x180.png b/public/apple-icon-180x180.png deleted file mode 100644 index 2121c29b4b45770cbddfd5911ade431e382e2fd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15243 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 diff --git a/public/apple-icon-72x72.png b/public/apple-icon-72x72.png deleted file mode 100644 index f439f5e01845c4bee7a5062c9f716320fd3c88f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5230 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 F{s$)Rj6eVY diff --git a/public/apple-icon-76x76.png b/public/apple-icon-76x76.png deleted file mode 100644 index 697576d7c07183ef0e07da06666f89893befcba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5569 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 diff --git a/public/apple-icon-precomposed.png b/public/apple-icon-precomposed.png deleted file mode 100644 index 38470441a99da7f5228d3e739e8b61d981ac32d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15345 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 -#ffffff \ No newline at end of file diff --git a/public/css/app.css b/public/css/app.css deleted file mode 100644 index 16c68132..00000000 --- a/public/css/app.css +++ /dev/null @@ -1,5314 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Raleway:300,400,600);/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} - -body { - margin: 0; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} - -audio:not([controls]) { - display: none; - height: 0; -} - -[hidden], -template { - display: none; -} - -a { - background-color: transparent; -} - -a:active, -a:hover { - outline: 0; -} - -abbr[title] { - border-bottom: 1px dotted; -} - -b, -strong { - font-weight: bold; -} - -dfn { - font-style: italic; -} - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -mark { - background: #ff0; - color: #000; -} - -small { - font-size: 80%; -} - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - border: 0; -} - -svg:not(:root) { - overflow: hidden; -} - -figure { - margin: 1em 40px; -} - -hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -pre { - overflow: auto; -} - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} - -button { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} - -button[disabled], -html input[disabled] { - cursor: default; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -input { - line-height: normal; -} - -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -input[type="search"] { - -webkit-appearance: textfield; - -webkit-box-sizing: content-box; - box-sizing: content-box; -} - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -legend { - border: 0; - padding: 0; -} - -textarea { - overflow: auto; -} - -optgroup { - font-weight: bold; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} - -html { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -*, -*:before, -*:after { - -webkit-box-sizing: inherit; - box-sizing: inherit; -} - -body { - background: #cfd2d4; -} - -#app { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - min-height: 100vh; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - background-image: url("/img/bg1.jpg"); - background-repeat: no-repeat; - background-size: cover; - background-position: bottom center; -} - -#app nav { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - height: 100%; - position: absolute; - width: 340px; - left: -340px; - -webkit-transition: all .35s ease-in-out; - transition: all .35s ease-in-out; - background: rgba(0, 0, 0, 0.7); - color: white; - z-index: 2; -} - -#app .content { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; -} - -#app .content .appheader { - background: rgba(0, 0, 0, 0.4); - text-align: center; - position: absolute; - height: 58px; - width: 100%; - top: -58px; - -webkit-transition: all .35s ease-in-out; - transition: all .35s ease-in-out; - z-index: 1; -} - -#app .content .appheader ul { - display: inline-block; - list-style: none; - height: 58px; - border-left: 1px solid rgba(0, 0, 0, 0.6); - border-right: 1px solid rgba(255, 255, 255, 0.1); - margin: 0; - padding: 0; -} - -#app .content .appheader li { - display: inline-block; - border-right: 1px solid rgba(0, 0, 0, 0.6); - border-left: 1px solid rgba(255, 255, 255, 0.1); -} - -#app .content .appheader a { - display: inline-block; - color: white; - text-decoration: none; - padding: 20px; -} - -#app main { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; -} - -#app main, -#app #sortable { - padding: 10px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - position: relative; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -ms-flex-line-pack: center; - align-content: center; - list-style: none; - margin: 0; -} - -#config-buttons { - position: fixed; - bottom: 0; - right: 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; -} - -#config-buttons a { - width: 50px; - height: 50px; - background: rgba(0, 0, 0, 0.8); - text-align: center; - line-height: 50px; - color: white; - margin-top: 1px; -} - -#config-buttons a img { - width: 26px; - height: 26px; - margin-top: 12px; -} - -.item-container { - position: relative; -} - -.item-container .item-edit { - color: white; - position: absolute; - bottom: 20px; - left: 8px; - width: 30px; - height: 30px; - background: rgba(0, 0, 0, 0.7); - border-radius: 50%; - text-align: center; - line-height: 30px; - display: none; -} - -.message-container { - width: 100%; - padding: 10px 20px; -} - -.message-container2 { - width: 100%; - padding: 10px 20px; -} - -.alert { - margin: 30px auto; - text-align: center; - max-width: 800px; - background: #f1f4f7; - padding: 5px 20px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding-left: 80px; - -webkit-box-shadow: 0 0 15px 3px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 15px 3px rgba(0, 0, 0, 0.3); -} - -.alert.alert-success, -.alert.alert-danger { - position: relative; -} - -.alert.alert-success:before, -.alert.alert-danger:before { - content: "\F00C"; - font-family: 'Font Awesome 5 Pro'; - font-weight: 900; - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 60px; - background: #0eb584; - text-align: center; - color: white; - line-height: 57px; - font-size: 24px; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} - -.alert.alert-danger:before { - content: "\F00D"; - background: #d64d55; -} - -.alert a { - color: #91a1b3; -} - -#app.header .item, -#app.header .add-item { - -webkit-transform: scale(0.9); - transform: scale(0.9); - opacity: 0.8; - margin: 20px 0; -} - -#app.sidebar nav { - left: 0; -} - -.add-item { - width: 280px; - height: 90px; - margin: 20px; - -webkit-box-flex: 0; - -ms-flex: 0 0 280px; - flex: 0 0 280px; - border-radius: 6px; - padding: 20px; - border: 4px dashed rgba(255, 255, 255, 0.7); - -webkit-box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.3); - color: white; - overflow: hidden; - position: relative; - display: none; - outline: 1px solid transparent; -} - -.add-item.active { - display: block; -} - -.add-item a { - display: block; - width: 100%; - text-align: center; - line-height: 40px; - color: white; - font-size: 19px; -} - -.item { - width: 280px; - height: 90px; - margin: 20px; - -webkit-box-flex: 0; - -ms-flex: 0 0 280px; - flex: 0 0 280px; - background-image: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 0.25))); - background-image: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.25)); - border-radius: 6px; - padding: 15px; - padding-right: 55px; - color: white; - overflow: hidden; - position: relative; - -webkit-transition: all .35s ease-in-out; - transition: all .35s ease-in-out; - outline: 1px solid transparent; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border: 1px solid #333333; - border: 1px solid #4a4a4a; - border: 1px solid rgba(76, 76, 76, 0.4); - background-clip: padding-box; -} - -.item:after { - content: ""; - position: absolute; - width: 90px; - height: 90px; - border-radius: 50%; - position: absolute; - right: -48px; - top: 0px; - background: rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 40px 0px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 40px 0px rgba(0, 0, 0, 0.2); -} - -.item .link { - position: absolute; - right: 0; - top: 0; - height: 100%; - width: 100%; - text-align: right; - line-height: 90px; - color: white; - font-size: 24px; - z-index: 1; - padding-right: 10px; -} - -.item .title { - font-size: 16px; -} - -.item .details { - width: 100%; -} - -.text-center { - text-align: center !important; -} - -.module-container { - -webkit-box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4); - box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4); - border: 1px solid #cdced8; - background: #f9fafd; - max-width: 1000px; - width: 100%; - margin: 10px 40px; -} - -.module-container header, -.module-container footer { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border-top: 1px solid #fff; - background: #f2f3f6; - font-size: 16px; - border-bottom: 1px solid #dbdce3; - height: 60px; - position: relative; -} - -.module-container header .section-title, -.module-container footer .section-title { - font-size: 18px; - color: #5b5b5b; - margin-left: 25px; -} - -.module-container footer { - border-top: 1px solid #dbdce3; -} - -.module-container .table { - width: 100%; - margin: 0; - background: #fff; -} - -.module-container .table thead th { - background: #f2f3f6; - color: #767d94; - border-top: 1px solid #fff; - text-align: left; - font-size: 13px; - text-transform: uppercase; - padding: 15px 25px; -} - -.module-container .table tbody tr:hover { - background: #fefbf2; -} - -.module-container .table tbody tr:hover td:first-child { - position: relative; -} - -.module-container .table tbody tr:hover td:first-child:before { - content: ""; - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 5px; - background: #0eb584; -} - -.module-container .table tbody td { - padding: 20px 25px; - font-size: 13px; - color: #2f313a; -} - -.module-container .table tbody td.form-error { - background: #e69191; - color: white; - text-align: center; -} - -.module-container .table tbody a { - color: #2f313a; -} - -.homesearch { - height: 51px; -} - -.module-actions { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -.module-actions .button { - font-size: 18px; - color: #515564; - padding: 0 10px; - border: none; - border-left: 1px solid #cdced8; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - line-height: 1; - position: relative; - background: transparent; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - min-width: 65px; - height: 60px; - text-decoration: none; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -.module-actions .button:after { - position: absolute; - content: ""; - top: 0; - left: 0; - bottom: 0; - border-right: 1px solid #fff; -} - -.module-actions .button span { - display: inline-block; - line-height: 1; - font-size: 9px; - font-weight: 400; - text-transform: uppercase; - color: #ababab; - position: relative; - top: 4px; - margin: 0; -} - -div.create { - padding: 30px 15px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; -} - -div.create .input { - width: 280px; - margin: 20px; -} - -div.create .input label:not(.switch) { - width: 100%; - font-size: 13px; - color: #9094a5; - margin-bottom: 15px; - display: block; - font-weight: 300; -} - -div.create .input input, -div.create .input select { - width: 100%; - border: 1px solid #dedfe2; - padding: 10px; - border-radius: 6px; -} - -.app-icon { - max-width: 60px; - margin-right: 15px; -} - -.sidenav { - position: relative; -} - -.sidenav .close-sidenav { - position: absolute; - top: 20px; - right: 20px; - font-size: 24px; - color: #ccc; -} - -.sidenav h2 { - font-weight: 300; - padding: 20px; - margin: 0; -} - -.sidenav ul { - list-style: none; - margin: 0; - padding: 20px; -} - -.sidenav ul li { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - padding: 5px; -} - -.sidenav ul li a { - color: #2b3542; -} - -.sidenav ul li a.active { - color: #46b0e6; -} - -.trashed { - font-size: 11px; - color: #91a1b3; - margin-left: 20px; -} - -.switch { - position: relative; - display: inline-block; - width: 36px; - height: 20px; -} - -/* Hide default HTML checkbox */ - -.switch input { - display: none; -} - -/* The slider */ - -.slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #4a556b; - -webkit-transition: .4s; - transition: .4s; -} - -.slider:before { - position: absolute; - content: ""; - height: 14px; - width: 14px; - left: 3px; - bottom: 3px; - background-color: white; - -webkit-transition: .4s; - transition: .4s; -} - -input:checked + .slider { - background-color: #2196F3; -} - -input:focus + .slider { - -webkit-box-shadow: 0 0 1px #2196F3; - box-shadow: 0 0 1px #2196F3; -} - -input:checked + .slider:before { - -webkit-transform: translateX(16px); - transform: translateX(16px); -} - -/* Rounded sliders */ - -.slider.round { - border-radius: 20px; -} - -.slider.round:before { - border-radius: 50%; -} - -@-webkit-keyframes autofill { - to { - background: #f5f5f5; - color: #2f313a; - font-weight: bold; - } -} - -@keyframes autofill { - to { - background: #f5f5f5; - color: #2f313a; - font-weight: bold; - } -} - -input:-webkit-autofill { - -webkit-animation-name: autofill; - -webkit-animation-fill-mode: both; -} - -input:autofill { - -webkit-animation-name: autofill; - animation-name: autofill; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; -} - -button.link { - border: none; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background: transparent; -} - -a.settinglink { - color: #2f313a; - font-size: 13px; - margin: 15px 5px; - display: inline-block; - font-weight: 700; -} - -.setting-view-image { - margin-bottom: 20px; - display: inline-block; -} - -.setting-view-image img { - max-width: 330px; -} - -.searchform { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-item-align: start; - align-self: flex-start; - text-align: center; - margin: 50px auto; - padding: 14px; - background: rgba(0, 0, 0, 0.2); - border-radius: 14px; - -webkit-box-shadow: inset 0px 1px 6px 0 rgba(0, 0, 0, 0.3); - box-shadow: inset 0px 1px 6px 0 rgba(0, 0, 0, 0.3); - border-top: 1px solid rgba(0, 0, 0, 0.5); - border-bottom: 1px solid rgba(255, 255, 255, 0.35); - position: relative; - width: 100%; - max-width: 500px; -} - -.searchform form { - width: 100%; -} - -.searchform .input-container { - background: white; - border-radius: 5px; - -webkit-box-shadow: 0px 0px 5px 0 rgba(0, 0, 0, 0.4); - box-shadow: 0px 0px 5px 0 rgba(0, 0, 0, 0.4); - overflow: hidden; - position: relative; -} - -.searchform input { - padding: 17px 15px; - font-size: 15px; - border: 0 none; - width: 100%; - background: transparent; -} - -.searchform button { - position: absolute; - right: 0px; - top: 0px; - border: none; - font-size: 16px; - padding: 7px 15px; - line-height: 38px; - font-weight: 500; - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; - color: white; - text-transform: uppercase; - background: #d64d55; -} - -.ui-autocomplete { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - float: left; - display: none; - min-width: 160px; - padding: 4px 0; - margin: 0 0 10px 25px; - list-style: none; - background-color: #ffffff; - border-color: #ccc; - border-color: rgba(0, 0, 0, 0.2); - border-style: solid; - border-width: 1px; - border-radius: 5px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - background-clip: padding-box; - *border-right-width: 2px; - *border-bottom-width: 2px; -} - -.ui-menu-item { - display: block; - padding: 3px 15px; - clear: both; - font-weight: normal; - line-height: 18px; - color: #555555; - white-space: nowrap; - text-decoration: none; -} - -.ui-state-hover, -.ui-state-active { - font-weight: 700; -} - -#appimage img { - max-width: 150px; -} - -#sapconfig { - display: none; - width: 100%; -} - -#sapconfig h2 { - background: #f2f3f6; - padding: 18px 25px; - margin-left: -15px; - width: calc(100% + 30px); - /* margin-right: -30px; */ - border-top: 1px solid #dbdce3; - border-bottom: 1px solid #dbdce3; - font-size: 18px; - color: #5b5b5b; - font-weight: 500; -} - -#sapconfig .items { - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} - -hr { - margin: 23px 0 18px; - height: 0; - border-style: none; - border-width: 0; - border-top: 1px solid #eaeaea; - border-bottom: 1px solid #fff; -} - -.upload-btn-wrapper { - position: relative; - overflow: hidden; - display: inline-block; -} - -.btn { - border: none; - color: white; - background-color: #d64d55; - padding: 8px 12px; - border-radius: 8px; - font-size: 16px; -} - -.btn.test { - font-size: 16px; - font-weight: 500; - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; - color: white; - text-transform: uppercase; - padding: 8px 50px; - background: #207774; -} - -.upload-btn-wrapper input[type=file] { - font-size: 100px; - position: absolute; - left: 0; - top: 0; - opacity: 0; -} - -.icon-container { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -.icon-container img { - margin-right: 15px; -} - -.ui-helper-hidden-accessible { - display: none; -} - -.livestats-container .livestats { - margin: 5px 0px -5px; - padding: 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - list-style: none; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - width: 100%; -} - -.livestats-container .livestats li { - text-align: center; - margin: 0; - line-height: 1; -} - -.livestats-container .livestats span { - display: block; - text-transform: uppercase; - font-size: 11px; - font-weight: 500; - opacity: 0.5; - line-height: 1; -} - -.livestats-container .livestats strong { - display: block; - line-height: 1; -} - -input:-webkit-autofill, -input:-webkit-autofill:hover, -input:-webkit-autofill:focus -input:-webkit-autofill, -textarea:-webkit-autofill, -textarea:-webkit-autofill:hover -textarea:-webkit-autofill:focus, -select:-webkit-autofill, -select:-webkit-autofill:hover, -select:-webkit-autofill:focus { - border: inherit; - -webkit-text-fill-color: inherit; - -webkit-box-shadow: inherit; - -webkit-transition: inherit; - transition: inherit; - color: #2f313a !important; -} - -/*! Huebee v2.0.0 -http://huebee.buzz ----------------------------------------------- */ - -.huebee { - position: absolute; - z-index: 1; - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transition: opacity 0.15s, -webkit-transform 0.15s; - transition: opacity 0.15s, -webkit-transform 0.15s; - transition: opacity 0.15s, transform 0.15s; - transition: opacity 0.15s, transform 0.15s, -webkit-transform 0.15s; -} - -.huebee.is-hidden { - opacity: 0; - -webkit-transform: translateY(10px); - transform: translateY(10px); -} - -.huebee.is-static-open { - position: relative; - z-index: auto; -} - -.huebee__container { - position: absolute; - left: 0; - top: 5px; - padding: 10px; - background: #EEE; - border-radius: 5px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3); -} - -.huebee.is-static-open .huebee__container { - position: relative; - display: inline-block; - left: auto; - top: auto; - -webkit-box-shadow: none; - box-shadow: none; -} - -.huebee__canvas { - display: block; - cursor: pointer; -} - -.huebee__cursor { - width: 15px; - height: 15px; - position: absolute; - left: 0px; - top: 0px; - -webkit-box-sizing: content-box; - box-sizing: content-box; - border: 3px solid white; - border-radius: 5px; - pointer-events: none; -} - -.huebee__cursor.is-hidden { - opacity: 0; -} - -.huebee__close-button { - display: block; - position: absolute; - width: 24px; - height: 24px; - top: -9px; - right: -9px; - border-radius: 12px; - background: #222; -} - -.huebee__close-button__x { - stroke: white; - stroke-width: 3; - stroke-linecap: round; -} - -.huebee__close-button:hover { - background: white; - cursor: pointer; -} - -.huebee__close-button:hover .huebee__close-button__x { - stroke: #222; -} - -/*! - * Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com - * License - http://fontawesome.com/license (Commercial License) - */ - -.fa, -.fas, -.far, -.fal, -.fab { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; -} - -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -.0667em; -} - -.fa-xs { - font-size: .75em; -} - -.fa-sm { - font-size: .875em; -} - -.fa-1x { - font-size: 1em; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-6x { - font-size: 6em; -} - -.fa-7x { - font-size: 7em; -} - -.fa-8x { - font-size: 8em; -} - -.fa-9x { - font-size: 9em; -} - -.fa-10x { - font-size: 10em; -} - -.fa-fw { - text-align: center; - width: 1.25em; -} - -.fa-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0; -} - -.fa-ul > li { - position: relative; -} - -.fa-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit; -} - -.fa-border { - border: solid 0.08em #eee; - border-radius: .1em; - padding: .2em .25em .15em; -} - -.fa-pull-left { - float: left; -} - -.fa-pull-right { - float: right; -} - -.fa.fa-pull-left, -.fas.fa-pull-left, -.far.fa-pull-left, -.fal.fa-pull-left, -.fab.fa-pull-left { - margin-right: .3em; -} - -.fa.fa-pull-right, -.fas.fa-pull-right, -.far.fa-pull-right, -.fal.fa-pull-right, -.fab.fa-pull-right { - margin-left: .3em; -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - transform: rotate(270deg); -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - transform: scale(-1, 1); -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - transform: scale(1, -1); -} - -.fa-flip-horizontal.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(-1, -1); - transform: scale(-1, -1); -} - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - -webkit-filter: none; - filter: none; -} - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2em; -} - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; -} - -.fa-stack-1x { - line-height: inherit; -} - -.fa-stack-2x { - font-size: 2em; -} - -.fa-inverse { - color: #fff; -} - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ - -.fa-500px:before { - content: "\F26E"; -} - -.fa-accessible-icon:before { - content: "\F368"; -} - -.fa-accusoft:before { - content: "\F369"; -} - -.fa-address-book:before { - content: "\F2B9"; -} - -.fa-address-card:before { - content: "\F2BB"; -} - -.fa-adjust:before { - content: "\F042"; -} - -.fa-adn:before { - content: "\F170"; -} - -.fa-adversal:before { - content: "\F36A"; -} - -.fa-affiliatetheme:before { - content: "\F36B"; -} - -.fa-alarm-clock:before { - content: "\F34E"; -} - -.fa-algolia:before { - content: "\F36C"; -} - -.fa-align-center:before { - content: "\F037"; -} - -.fa-align-justify:before { - content: "\F039"; -} - -.fa-align-left:before { - content: "\F036"; -} - -.fa-align-right:before { - content: "\F038"; -} - -.fa-amazon:before { - content: "\F270"; -} - -.fa-amazon-pay:before { - content: "\F42C"; -} - -.fa-ambulance:before { - content: "\F0F9"; -} - -.fa-american-sign-language-interpreting:before { - content: "\F2A3"; -} - -.fa-amilia:before { - content: "\F36D"; -} - -.fa-anchor:before { - content: "\F13D"; -} - -.fa-android:before { - content: "\F17B"; -} - -.fa-angellist:before { - content: "\F209"; -} - -.fa-angle-double-down:before { - content: "\F103"; -} - -.fa-angle-double-left:before { - content: "\F100"; -} - -.fa-angle-double-right:before { - content: "\F101"; -} - -.fa-angle-double-up:before { - content: "\F102"; -} - -.fa-angle-down:before { - content: "\F107"; -} - -.fa-angle-left:before { - content: "\F104"; -} - -.fa-angle-right:before { - content: "\F105"; -} - -.fa-angle-up:before { - content: "\F106"; -} - -.fa-angrycreative:before { - content: "\F36E"; -} - -.fa-angular:before { - content: "\F420"; -} - -.fa-app-store:before { - content: "\F36F"; -} - -.fa-app-store-ios:before { - content: "\F370"; -} - -.fa-apper:before { - content: "\F371"; -} - -.fa-apple:before { - content: "\F179"; -} - -.fa-apple-pay:before { - content: "\F415"; -} - -.fa-archive:before { - content: "\F187"; -} - -.fa-arrow-alt-circle-down:before { - content: "\F358"; -} - -.fa-arrow-alt-circle-left:before { - content: "\F359"; -} - -.fa-arrow-alt-circle-right:before { - content: "\F35A"; -} - -.fa-arrow-alt-circle-up:before { - content: "\F35B"; -} - -.fa-arrow-alt-down:before { - content: "\F354"; -} - -.fa-arrow-alt-from-bottom:before { - content: "\F346"; -} - -.fa-arrow-alt-from-left:before { - content: "\F347"; -} - -.fa-arrow-alt-from-right:before { - content: "\F348"; -} - -.fa-arrow-alt-from-top:before { - content: "\F349"; -} - -.fa-arrow-alt-left:before { - content: "\F355"; -} - -.fa-arrow-alt-right:before { - content: "\F356"; -} - -.fa-arrow-alt-square-down:before { - content: "\F350"; -} - -.fa-arrow-alt-square-left:before { - content: "\F351"; -} - -.fa-arrow-alt-square-right:before { - content: "\F352"; -} - -.fa-arrow-alt-square-up:before { - content: "\F353"; -} - -.fa-arrow-alt-to-bottom:before { - content: "\F34A"; -} - -.fa-arrow-alt-to-left:before { - content: "\F34B"; -} - -.fa-arrow-alt-to-right:before { - content: "\F34C"; -} - -.fa-arrow-alt-to-top:before { - content: "\F34D"; -} - -.fa-arrow-alt-up:before { - content: "\F357"; -} - -.fa-arrow-circle-down:before { - content: "\F0AB"; -} - -.fa-arrow-circle-left:before { - content: "\F0A8"; -} - -.fa-arrow-circle-right:before { - content: "\F0A9"; -} - -.fa-arrow-circle-up:before { - content: "\F0AA"; -} - -.fa-arrow-down:before { - content: "\F063"; -} - -.fa-arrow-from-bottom:before { - content: "\F342"; -} - -.fa-arrow-from-left:before { - content: "\F343"; -} - -.fa-arrow-from-right:before { - content: "\F344"; -} - -.fa-arrow-from-top:before { - content: "\F345"; -} - -.fa-arrow-left:before { - content: "\F060"; -} - -.fa-arrow-right:before { - content: "\F061"; -} - -.fa-arrow-square-down:before { - content: "\F339"; -} - -.fa-arrow-square-left:before { - content: "\F33A"; -} - -.fa-arrow-square-right:before { - content: "\F33B"; -} - -.fa-arrow-square-up:before { - content: "\F33C"; -} - -.fa-arrow-to-bottom:before { - content: "\F33D"; -} - -.fa-arrow-to-left:before { - content: "\F33E"; -} - -.fa-arrow-to-right:before { - content: "\F340"; -} - -.fa-arrow-to-top:before { - content: "\F341"; -} - -.fa-arrow-up:before { - content: "\F062"; -} - -.fa-arrows:before { - content: "\F047"; -} - -.fa-arrows-alt:before { - content: "\F0B2"; -} - -.fa-arrows-alt-h:before { - content: "\F337"; -} - -.fa-arrows-alt-v:before { - content: "\F338"; -} - -.fa-arrows-h:before { - content: "\F07E"; -} - -.fa-arrows-v:before { - content: "\F07D"; -} - -.fa-assistive-listening-systems:before { - content: "\F2A2"; -} - -.fa-asterisk:before { - content: "\F069"; -} - -.fa-asymmetrik:before { - content: "\F372"; -} - -.fa-at:before { - content: "\F1FA"; -} - -.fa-audible:before { - content: "\F373"; -} - -.fa-audio-description:before { - content: "\F29E"; -} - -.fa-autoprefixer:before { - content: "\F41C"; -} - -.fa-avianex:before { - content: "\F374"; -} - -.fa-aviato:before { - content: "\F421"; -} - -.fa-aws:before { - content: "\F375"; -} - -.fa-backward:before { - content: "\F04A"; -} - -.fa-badge:before { - content: "\F335"; -} - -.fa-badge-check:before { - content: "\F336"; -} - -.fa-balance-scale:before { - content: "\F24E"; -} - -.fa-ban:before { - content: "\F05E"; -} - -.fa-bandcamp:before { - content: "\F2D5"; -} - -.fa-barcode:before { - content: "\F02A"; -} - -.fa-bars:before { - content: "\F0C9"; -} - -.fa-bath:before { - content: "\F2CD"; -} - -.fa-battery-bolt:before { - content: "\F376"; -} - -.fa-battery-empty:before { - content: "\F244"; -} - -.fa-battery-full:before { - content: "\F240"; -} - -.fa-battery-half:before { - content: "\F242"; -} - -.fa-battery-quarter:before { - content: "\F243"; -} - -.fa-battery-slash:before { - content: "\F377"; -} - -.fa-battery-three-quarters:before { - content: "\F241"; -} - -.fa-bed:before { - content: "\F236"; -} - -.fa-beer:before { - content: "\F0FC"; -} - -.fa-behance:before { - content: "\F1B4"; -} - -.fa-behance-square:before { - content: "\F1B5"; -} - -.fa-bell:before { - content: "\F0F3"; -} - -.fa-bell-slash:before { - content: "\F1F6"; -} - -.fa-bicycle:before { - content: "\F206"; -} - -.fa-bimobject:before { - content: "\F378"; -} - -.fa-binoculars:before { - content: "\F1E5"; -} - -.fa-birthday-cake:before { - content: "\F1FD"; -} - -.fa-bitbucket:before { - content: "\F171"; -} - -.fa-bitcoin:before { - content: "\F379"; -} - -.fa-bity:before { - content: "\F37A"; -} - -.fa-black-tie:before { - content: "\F27E"; -} - -.fa-blackberry:before { - content: "\F37B"; -} - -.fa-blind:before { - content: "\F29D"; -} - -.fa-blogger:before { - content: "\F37C"; -} - -.fa-blogger-b:before { - content: "\F37D"; -} - -.fa-bluetooth:before { - content: "\F293"; -} - -.fa-bluetooth-b:before { - content: "\F294"; -} - -.fa-bold:before { - content: "\F032"; -} - -.fa-bolt:before { - content: "\F0E7"; -} - -.fa-bomb:before { - content: "\F1E2"; -} - -.fa-book:before { - content: "\F02D"; -} - -.fa-bookmark:before { - content: "\F02E"; -} - -.fa-braille:before { - content: "\F2A1"; -} - -.fa-briefcase:before { - content: "\F0B1"; -} - -.fa-browser:before { - content: "\F37E"; -} - -.fa-btc:before { - content: "\F15A"; -} - -.fa-bug:before { - content: "\F188"; -} - -.fa-building:before { - content: "\F1AD"; -} - -.fa-bullhorn:before { - content: "\F0A1"; -} - -.fa-bullseye:before { - content: "\F140"; -} - -.fa-buromobelexperte:before { - content: "\F37F"; -} - -.fa-bus:before { - content: "\F207"; -} - -.fa-buysellads:before { - content: "\F20D"; -} - -.fa-calculator:before { - content: "\F1EC"; -} - -.fa-calendar:before { - content: "\F133"; -} - -.fa-calendar-alt:before { - content: "\F073"; -} - -.fa-calendar-check:before { - content: "\F274"; -} - -.fa-calendar-edit:before { - content: "\F333"; -} - -.fa-calendar-exclamation:before { - content: "\F334"; -} - -.fa-calendar-minus:before { - content: "\F272"; -} - -.fa-calendar-plus:before { - content: "\F271"; -} - -.fa-calendar-times:before { - content: "\F273"; -} - -.fa-camera:before { - content: "\F030"; -} - -.fa-camera-alt:before { - content: "\F332"; -} - -.fa-camera-retro:before { - content: "\F083"; -} - -.fa-car:before { - content: "\F1B9"; -} - -.fa-caret-circle-down:before { - content: "\F32D"; -} - -.fa-caret-circle-left:before { - content: "\F32E"; -} - -.fa-caret-circle-right:before { - content: "\F330"; -} - -.fa-caret-circle-up:before { - content: "\F331"; -} - -.fa-caret-down:before { - content: "\F0D7"; -} - -.fa-caret-left:before { - content: "\F0D9"; -} - -.fa-caret-right:before { - content: "\F0DA"; -} - -.fa-caret-square-down:before { - content: "\F150"; -} - -.fa-caret-square-left:before { - content: "\F191"; -} - -.fa-caret-square-right:before { - content: "\F152"; -} - -.fa-caret-square-up:before { - content: "\F151"; -} - -.fa-caret-up:before { - content: "\F0D8"; -} - -.fa-cart-arrow-down:before { - content: "\F218"; -} - -.fa-cart-plus:before { - content: "\F217"; -} - -.fa-cc-amazon-pay:before { - content: "\F42D"; -} - -.fa-cc-amex:before { - content: "\F1F3"; -} - -.fa-cc-apple-pay:before { - content: "\F416"; -} - -.fa-cc-diners-club:before { - content: "\F24C"; -} - -.fa-cc-discover:before { - content: "\F1F2"; -} - -.fa-cc-jcb:before { - content: "\F24B"; -} - -.fa-cc-mastercard:before { - content: "\F1F1"; -} - -.fa-cc-paypal:before { - content: "\F1F4"; -} - -.fa-cc-stripe:before { - content: "\F1F5"; -} - -.fa-cc-visa:before { - content: "\F1F0"; -} - -.fa-centercode:before { - content: "\F380"; -} - -.fa-certificate:before { - content: "\F0A3"; -} - -.fa-chart-area:before { - content: "\F1FE"; -} - -.fa-chart-bar:before { - content: "\F080"; -} - -.fa-chart-line:before { - content: "\F201"; -} - -.fa-chart-pie:before { - content: "\F200"; -} - -.fa-check:before { - content: "\F00C"; -} - -.fa-check-circle:before { - content: "\F058"; -} - -.fa-check-square:before { - content: "\F14A"; -} - -.fa-chevron-circle-down:before { - content: "\F13A"; -} - -.fa-chevron-circle-left:before { - content: "\F137"; -} - -.fa-chevron-circle-right:before { - content: "\F138"; -} - -.fa-chevron-circle-up:before { - content: "\F139"; -} - -.fa-chevron-double-down:before { - content: "\F322"; -} - -.fa-chevron-double-left:before { - content: "\F323"; -} - -.fa-chevron-double-right:before { - content: "\F324"; -} - -.fa-chevron-double-up:before { - content: "\F325"; -} - -.fa-chevron-down:before { - content: "\F078"; -} - -.fa-chevron-left:before { - content: "\F053"; -} - -.fa-chevron-right:before { - content: "\F054"; -} - -.fa-chevron-square-down:before { - content: "\F329"; -} - -.fa-chevron-square-left:before { - content: "\F32A"; -} - -.fa-chevron-square-right:before { - content: "\F32B"; -} - -.fa-chevron-square-up:before { - content: "\F32C"; -} - -.fa-chevron-up:before { - content: "\F077"; -} - -.fa-child:before { - content: "\F1AE"; -} - -.fa-chrome:before { - content: "\F268"; -} - -.fa-circle:before { - content: "\F111"; -} - -.fa-circle-notch:before { - content: "\F1CE"; -} - -.fa-clipboard:before { - content: "\F328"; -} - -.fa-clock:before { - content: "\F017"; -} - -.fa-clone:before { - content: "\F24D"; -} - -.fa-closed-captioning:before { - content: "\F20A"; -} - -.fa-cloud:before { - content: "\F0C2"; -} - -.fa-cloud-download:before { - content: "\F0ED"; -} - -.fa-cloud-download-alt:before { - content: "\F381"; -} - -.fa-cloud-upload:before { - content: "\F0EE"; -} - -.fa-cloud-upload-alt:before { - content: "\F382"; -} - -.fa-cloudscale:before { - content: "\F383"; -} - -.fa-cloudsmith:before { - content: "\F384"; -} - -.fa-cloudversify:before { - content: "\F385"; -} - -.fa-club:before { - content: "\F327"; -} - -.fa-code:before { - content: "\F121"; -} - -.fa-code-branch:before { - content: "\F126"; -} - -.fa-code-commit:before { - content: "\F386"; -} - -.fa-code-merge:before { - content: "\F387"; -} - -.fa-codepen:before { - content: "\F1CB"; -} - -.fa-codiepie:before { - content: "\F284"; -} - -.fa-coffee:before { - content: "\F0F4"; -} - -.fa-cog:before { - content: "\F013"; -} - -.fa-cogs:before { - content: "\F085"; -} - -.fa-columns:before { - content: "\F0DB"; -} - -.fa-comment:before { - content: "\F075"; -} - -.fa-comment-alt:before { - content: "\F27A"; -} - -.fa-comments:before { - content: "\F086"; -} - -.fa-compass:before { - content: "\F14E"; -} - -.fa-compress:before { - content: "\F066"; -} - -.fa-compress-alt:before { - content: "\F422"; -} - -.fa-compress-wide:before { - content: "\F326"; -} - -.fa-connectdevelop:before { - content: "\F20E"; -} - -.fa-contao:before { - content: "\F26D"; -} - -.fa-copy:before { - content: "\F0C5"; -} - -.fa-copyright:before { - content: "\F1F9"; -} - -.fa-cpanel:before { - content: "\F388"; -} - -.fa-creative-commons:before { - content: "\F25E"; -} - -.fa-credit-card:before { - content: "\F09D"; -} - -.fa-credit-card-blank:before { - content: "\F389"; -} - -.fa-credit-card-front:before { - content: "\F38A"; -} - -.fa-crop:before { - content: "\F125"; -} - -.fa-crosshairs:before { - content: "\F05B"; -} - -.fa-css3:before { - content: "\F13C"; -} - -.fa-css3-alt:before { - content: "\F38B"; -} - -.fa-cube:before { - content: "\F1B2"; -} - -.fa-cubes:before { - content: "\F1B3"; -} - -.fa-cut:before { - content: "\F0C4"; -} - -.fa-cuttlefish:before { - content: "\F38C"; -} - -.fa-d-and-d:before { - content: "\F38D"; -} - -.fa-dashcube:before { - content: "\F210"; -} - -.fa-database:before { - content: "\F1C0"; -} - -.fa-deaf:before { - content: "\F2A4"; -} - -.fa-delicious:before { - content: "\F1A5"; -} - -.fa-deploydog:before { - content: "\F38E"; -} - -.fa-deskpro:before { - content: "\F38F"; -} - -.fa-desktop:before { - content: "\F108"; -} - -.fa-desktop-alt:before { - content: "\F390"; -} - -.fa-deviantart:before { - content: "\F1BD"; -} - -.fa-diamond:before { - content: "\F219"; -} - -.fa-digg:before { - content: "\F1A6"; -} - -.fa-digital-ocean:before { - content: "\F391"; -} - -.fa-discord:before { - content: "\F392"; -} - -.fa-discourse:before { - content: "\F393"; -} - -.fa-dochub:before { - content: "\F394"; -} - -.fa-docker:before { - content: "\F395"; -} - -.fa-dollar-sign:before { - content: "\F155"; -} - -.fa-dot-circle:before { - content: "\F192"; -} - -.fa-download:before { - content: "\F019"; -} - -.fa-draft2digital:before { - content: "\F396"; -} - -.fa-dribbble:before { - content: "\F17D"; -} - -.fa-dribbble-square:before { - content: "\F397"; -} - -.fa-dropbox:before { - content: "\F16B"; -} - -.fa-drupal:before { - content: "\F1A9"; -} - -.fa-dyalog:before { - content: "\F399"; -} - -.fa-earlybirds:before { - content: "\F39A"; -} - -.fa-edge:before { - content: "\F282"; -} - -.fa-edit:before { - content: "\F044"; -} - -.fa-eject:before { - content: "\F052"; -} - -.fa-ellipsis-h:before { - content: "\F141"; -} - -.fa-ellipsis-h-alt:before { - content: "\F39B"; -} - -.fa-ellipsis-v:before { - content: "\F142"; -} - -.fa-ellipsis-v-alt:before { - content: "\F39C"; -} - -.fa-ember:before { - content: "\F423"; -} - -.fa-empire:before { - content: "\F1D1"; -} - -.fa-envelope:before { - content: "\F0E0"; -} - -.fa-envelope-open:before { - content: "\F2B6"; -} - -.fa-envelope-square:before { - content: "\F199"; -} - -.fa-envira:before { - content: "\F299"; -} - -.fa-eraser:before { - content: "\F12D"; -} - -.fa-erlang:before { - content: "\F39D"; -} - -.fa-ethereum:before { - content: "\F42E"; -} - -.fa-etsy:before { - content: "\F2D7"; -} - -.fa-euro-sign:before { - content: "\F153"; -} - -.fa-exchange:before { - content: "\F0EC"; -} - -.fa-exchange-alt:before { - content: "\F362"; -} - -.fa-exclamation:before { - content: "\F12A"; -} - -.fa-exclamation-circle:before { - content: "\F06A"; -} - -.fa-exclamation-square:before { - content: "\F321"; -} - -.fa-exclamation-triangle:before { - content: "\F071"; -} - -.fa-expand:before { - content: "\F065"; -} - -.fa-expand-alt:before { - content: "\F424"; -} - -.fa-expand-arrows:before { - content: "\F31D"; -} - -.fa-expand-arrows-alt:before { - content: "\F31E"; -} - -.fa-expand-wide:before { - content: "\F320"; -} - -.fa-expeditedssl:before { - content: "\F23E"; -} - -.fa-external-link:before { - content: "\F08E"; -} - -.fa-external-link-alt:before { - content: "\F35D"; -} - -.fa-external-link-square:before { - content: "\F14C"; -} - -.fa-external-link-square-alt:before { - content: "\F360"; -} - -.fa-eye:before { - content: "\F06E"; -} - -.fa-eye-dropper:before { - content: "\F1FB"; -} - -.fa-eye-slash:before { - content: "\F070"; -} - -.fa-facebook:before { - content: "\F09A"; -} - -.fa-facebook-f:before { - content: "\F39E"; -} - -.fa-facebook-messenger:before { - content: "\F39F"; -} - -.fa-facebook-square:before { - content: "\F082"; -} - -.fa-fast-backward:before { - content: "\F049"; -} - -.fa-fast-forward:before { - content: "\F050"; -} - -.fa-fax:before { - content: "\F1AC"; -} - -.fa-female:before { - content: "\F182"; -} - -.fa-fighter-jet:before { - content: "\F0FB"; -} - -.fa-file:before { - content: "\F15B"; -} - -.fa-file-alt:before { - content: "\F15C"; -} - -.fa-file-archive:before { - content: "\F1C6"; -} - -.fa-file-audio:before { - content: "\F1C7"; -} - -.fa-file-check:before { - content: "\F316"; -} - -.fa-file-code:before { - content: "\F1C9"; -} - -.fa-file-edit:before { - content: "\F31C"; -} - -.fa-file-excel:before { - content: "\F1C3"; -} - -.fa-file-exclamation:before { - content: "\F31A"; -} - -.fa-file-image:before { - content: "\F1C5"; -} - -.fa-file-minus:before { - content: "\F318"; -} - -.fa-file-pdf:before { - content: "\F1C1"; -} - -.fa-file-plus:before { - content: "\F319"; -} - -.fa-file-powerpoint:before { - content: "\F1C4"; -} - -.fa-file-times:before { - content: "\F317"; -} - -.fa-file-video:before { - content: "\F1C8"; -} - -.fa-file-word:before { - content: "\F1C2"; -} - -.fa-film:before { - content: "\F008"; -} - -.fa-film-alt:before { - content: "\F3A0"; -} - -.fa-filter:before { - content: "\F0B0"; -} - -.fa-fire:before { - content: "\F06D"; -} - -.fa-fire-extinguisher:before { - content: "\F134"; -} - -.fa-firefox:before { - content: "\F269"; -} - -.fa-first-order:before { - content: "\F2B0"; -} - -.fa-firstdraft:before { - content: "\F3A1"; -} - -.fa-flag:before { - content: "\F024"; -} - -.fa-flag-checkered:before { - content: "\F11E"; -} - -.fa-flask:before { - content: "\F0C3"; -} - -.fa-flickr:before { - content: "\F16E"; -} - -.fa-fly:before { - content: "\F417"; -} - -.fa-folder:before { - content: "\F07B"; -} - -.fa-folder-open:before { - content: "\F07C"; -} - -.fa-font:before { - content: "\F031"; -} - -.fa-font-awesome:before { - content: "\F2B4"; -} - -.fa-font-awesome-alt:before { - content: "\F35C"; -} - -.fa-font-awesome-flag:before { - content: "\F425"; -} - -.fa-fonticons:before { - content: "\F280"; -} - -.fa-fonticons-fi:before { - content: "\F3A2"; -} - -.fa-fort-awesome:before { - content: "\F286"; -} - -.fa-fort-awesome-alt:before { - content: "\F3A3"; -} - -.fa-forumbee:before { - content: "\F211"; -} - -.fa-forward:before { - content: "\F04E"; -} - -.fa-foursquare:before { - content: "\F180"; -} - -.fa-free-code-camp:before { - content: "\F2C5"; -} - -.fa-freebsd:before { - content: "\F3A4"; -} - -.fa-frown:before { - content: "\F119"; -} - -.fa-futbol:before { - content: "\F1E3"; -} - -.fa-gamepad:before { - content: "\F11B"; -} - -.fa-gavel:before { - content: "\F0E3"; -} - -.fa-gem:before { - content: "\F3A5"; -} - -.fa-genderless:before { - content: "\F22D"; -} - -.fa-get-pocket:before { - content: "\F265"; -} - -.fa-gg:before { - content: "\F260"; -} - -.fa-gg-circle:before { - content: "\F261"; -} - -.fa-gift:before { - content: "\F06B"; -} - -.fa-git:before { - content: "\F1D3"; -} - -.fa-git-square:before { - content: "\F1D2"; -} - -.fa-github:before { - content: "\F09B"; -} - -.fa-github-alt:before { - content: "\F113"; -} - -.fa-github-square:before { - content: "\F092"; -} - -.fa-gitkraken:before { - content: "\F3A6"; -} - -.fa-gitlab:before { - content: "\F296"; -} - -.fa-gitter:before { - content: "\F426"; -} - -.fa-glass-martini:before { - content: "\F000"; -} - -.fa-glide:before { - content: "\F2A5"; -} - -.fa-glide-g:before { - content: "\F2A6"; -} - -.fa-globe:before { - content: "\F0AC"; -} - -.fa-gofore:before { - content: "\F3A7"; -} - -.fa-goodreads:before { - content: "\F3A8"; -} - -.fa-goodreads-g:before { - content: "\F3A9"; -} - -.fa-google:before { - content: "\F1A0"; -} - -.fa-google-drive:before { - content: "\F3AA"; -} - -.fa-google-play:before { - content: "\F3AB"; -} - -.fa-google-plus:before { - content: "\F2B3"; -} - -.fa-google-plus-g:before { - content: "\F0D5"; -} - -.fa-google-plus-square:before { - content: "\F0D4"; -} - -.fa-google-wallet:before { - content: "\F1EE"; -} - -.fa-graduation-cap:before { - content: "\F19D"; -} - -.fa-gratipay:before { - content: "\F184"; -} - -.fa-grav:before { - content: "\F2D6"; -} - -.fa-gripfire:before { - content: "\F3AC"; -} - -.fa-grunt:before { - content: "\F3AD"; -} - -.fa-gulp:before { - content: "\F3AE"; -} - -.fa-h-square:before { - content: "\F0FD"; -} - -.fa-h1:before { - content: "\F313"; -} - -.fa-h2:before { - content: "\F314"; -} - -.fa-h3:before { - content: "\F315"; -} - -.fa-hacker-news:before { - content: "\F1D4"; -} - -.fa-hacker-news-square:before { - content: "\F3AF"; -} - -.fa-hand-lizard:before { - content: "\F258"; -} - -.fa-hand-paper:before { - content: "\F256"; -} - -.fa-hand-peace:before { - content: "\F25B"; -} - -.fa-hand-point-down:before { - content: "\F0A7"; -} - -.fa-hand-point-left:before { - content: "\F0A5"; -} - -.fa-hand-point-right:before { - content: "\F0A4"; -} - -.fa-hand-point-up:before { - content: "\F0A6"; -} - -.fa-hand-pointer:before { - content: "\F25A"; -} - -.fa-hand-rock:before { - content: "\F255"; -} - -.fa-hand-scissors:before { - content: "\F257"; -} - -.fa-hand-spock:before { - content: "\F259"; -} - -.fa-handshake:before { - content: "\F2B5"; -} - -.fa-hashtag:before { - content: "\F292"; -} - -.fa-hdd:before { - content: "\F0A0"; -} - -.fa-heading:before { - content: "\F1DC"; -} - -.fa-headphones:before { - content: "\F025"; -} - -.fa-heart:before { - content: "\F004"; -} - -.fa-heartbeat:before { - content: "\F21E"; -} - -.fa-hexagon:before { - content: "\F312"; -} - -.fa-hire-a-helper:before { - content: "\F3B0"; -} - -.fa-history:before { - content: "\F1DA"; -} - -.fa-home:before { - content: "\F015"; -} - -.fa-hooli:before { - content: "\F427"; -} - -.fa-hospital:before { - content: "\F0F8"; -} - -.fa-hotjar:before { - content: "\F3B1"; -} - -.fa-hourglass:before { - content: "\F254"; -} - -.fa-hourglass-end:before { - content: "\F253"; -} - -.fa-hourglass-half:before { - content: "\F252"; -} - -.fa-hourglass-start:before { - content: "\F251"; -} - -.fa-houzz:before { - content: "\F27C"; -} - -.fa-html5:before { - content: "\F13B"; -} - -.fa-hubspot:before { - content: "\F3B2"; -} - -.fa-i-cursor:before { - content: "\F246"; -} - -.fa-id-badge:before { - content: "\F2C1"; -} - -.fa-id-card:before { - content: "\F2C2"; -} - -.fa-image:before { - content: "\F03E"; -} - -.fa-images:before { - content: "\F302"; -} - -.fa-imdb:before { - content: "\F2D8"; -} - -.fa-inbox:before { - content: "\F01C"; -} - -.fa-inbox-in:before { - content: "\F310"; -} - -.fa-inbox-out:before { - content: "\F311"; -} - -.fa-indent:before { - content: "\F03C"; -} - -.fa-industry:before { - content: "\F275"; -} - -.fa-industry-alt:before { - content: "\F3B3"; -} - -.fa-info:before { - content: "\F129"; -} - -.fa-info-circle:before { - content: "\F05A"; -} - -.fa-info-square:before { - content: "\F30F"; -} - -.fa-instagram:before { - content: "\F16D"; -} - -.fa-internet-explorer:before { - content: "\F26B"; -} - -.fa-ioxhost:before { - content: "\F208"; -} - -.fa-italic:before { - content: "\F033"; -} - -.fa-itunes:before { - content: "\F3B4"; -} - -.fa-itunes-note:before { - content: "\F3B5"; -} - -.fa-jack-o-lantern:before { - content: "\F30E"; -} - -.fa-jenkins:before { - content: "\F3B6"; -} - -.fa-joget:before { - content: "\F3B7"; -} - -.fa-joomla:before { - content: "\F1AA"; -} - -.fa-js:before { - content: "\F3B8"; -} - -.fa-js-square:before { - content: "\F3B9"; -} - -.fa-jsfiddle:before { - content: "\F1CC"; -} - -.fa-key:before { - content: "\F084"; -} - -.fa-keyboard:before { - content: "\F11C"; -} - -.fa-keycdn:before { - content: "\F3BA"; -} - -.fa-kickstarter:before { - content: "\F3BB"; -} - -.fa-kickstarter-k:before { - content: "\F3BC"; -} - -.fa-korvue:before { - content: "\F42F"; -} - -.fa-language:before { - content: "\F1AB"; -} - -.fa-laptop:before { - content: "\F109"; -} - -.fa-laravel:before { - content: "\F3BD"; -} - -.fa-lastfm:before { - content: "\F202"; -} - -.fa-lastfm-square:before { - content: "\F203"; -} - -.fa-leaf:before { - content: "\F06C"; -} - -.fa-leanpub:before { - content: "\F212"; -} - -.fa-lemon:before { - content: "\F094"; -} - -.fa-less:before { - content: "\F41D"; -} - -.fa-level-down:before { - content: "\F149"; -} - -.fa-level-down-alt:before { - content: "\F3BE"; -} - -.fa-level-up:before { - content: "\F148"; -} - -.fa-level-up-alt:before { - content: "\F3BF"; -} - -.fa-life-ring:before { - content: "\F1CD"; -} - -.fa-lightbulb:before { - content: "\F0EB"; -} - -.fa-line:before { - content: "\F3C0"; -} - -.fa-link:before { - content: "\F0C1"; -} - -.fa-linkedin:before { - content: "\F08C"; -} - -.fa-linkedin-in:before { - content: "\F0E1"; -} - -.fa-linode:before { - content: "\F2B8"; -} - -.fa-linux:before { - content: "\F17C"; -} - -.fa-lira-sign:before { - content: "\F195"; -} - -.fa-list:before { - content: "\F03A"; -} - -.fa-list-alt:before { - content: "\F022"; -} - -.fa-list-ol:before { - content: "\F0CB"; -} - -.fa-list-ul:before { - content: "\F0CA"; -} - -.fa-location-arrow:before { - content: "\F124"; -} - -.fa-lock:before { - content: "\F023"; -} - -.fa-lock-alt:before { - content: "\F30D"; -} - -.fa-lock-open:before { - content: "\F3C1"; -} - -.fa-lock-open-alt:before { - content: "\F3C2"; -} - -.fa-long-arrow-alt-down:before { - content: "\F309"; -} - -.fa-long-arrow-alt-left:before { - content: "\F30A"; -} - -.fa-long-arrow-alt-right:before { - content: "\F30B"; -} - -.fa-long-arrow-alt-up:before { - content: "\F30C"; -} - -.fa-long-arrow-down:before { - content: "\F175"; -} - -.fa-long-arrow-left:before { - content: "\F177"; -} - -.fa-long-arrow-right:before { - content: "\F178"; -} - -.fa-long-arrow-up:before { - content: "\F176"; -} - -.fa-low-vision:before { - content: "\F2A8"; -} - -.fa-lyft:before { - content: "\F3C3"; -} - -.fa-magento:before { - content: "\F3C4"; -} - -.fa-magic:before { - content: "\F0D0"; -} - -.fa-magnet:before { - content: "\F076"; -} - -.fa-male:before { - content: "\F183"; -} - -.fa-map:before { - content: "\F279"; -} - -.fa-map-marker:before { - content: "\F041"; -} - -.fa-map-marker-alt:before { - content: "\F3C5"; -} - -.fa-map-pin:before { - content: "\F276"; -} - -.fa-map-signs:before { - content: "\F277"; -} - -.fa-mars:before { - content: "\F222"; -} - -.fa-mars-double:before { - content: "\F227"; -} - -.fa-mars-stroke:before { - content: "\F229"; -} - -.fa-mars-stroke-h:before { - content: "\F22B"; -} - -.fa-mars-stroke-v:before { - content: "\F22A"; -} - -.fa-maxcdn:before { - content: "\F136"; -} - -.fa-medapps:before { - content: "\F3C6"; -} - -.fa-medium:before { - content: "\F23A"; -} - -.fa-medium-m:before { - content: "\F3C7"; -} - -.fa-medkit:before { - content: "\F0FA"; -} - -.fa-medrt:before { - content: "\F3C8"; -} - -.fa-meetup:before { - content: "\F2E0"; -} - -.fa-meh:before { - content: "\F11A"; -} - -.fa-mercury:before { - content: "\F223"; -} - -.fa-microchip:before { - content: "\F2DB"; -} - -.fa-microphone:before { - content: "\F130"; -} - -.fa-microphone-alt:before { - content: "\F3C9"; -} - -.fa-microphone-slash:before { - content: "\F131"; -} - -.fa-microsoft:before { - content: "\F3CA"; -} - -.fa-minus:before { - content: "\F068"; -} - -.fa-minus-circle:before { - content: "\F056"; -} - -.fa-minus-hexagon:before { - content: "\F307"; -} - -.fa-minus-octagon:before { - content: "\F308"; -} - -.fa-minus-square:before { - content: "\F146"; -} - -.fa-mix:before { - content: "\F3CB"; -} - -.fa-mixcloud:before { - content: "\F289"; -} - -.fa-mizuni:before { - content: "\F3CC"; -} - -.fa-mobile:before { - content: "\F10B"; -} - -.fa-mobile-alt:before { - content: "\F3CD"; -} - -.fa-mobile-android:before { - content: "\F3CE"; -} - -.fa-mobile-android-alt:before { - content: "\F3CF"; -} - -.fa-modx:before { - content: "\F285"; -} - -.fa-monero:before { - content: "\F3D0"; -} - -.fa-money-bill:before { - content: "\F0D6"; -} - -.fa-money-bill-alt:before { - content: "\F3D1"; -} - -.fa-moon:before { - content: "\F186"; -} - -.fa-motorcycle:before { - content: "\F21C"; -} - -.fa-mouse-pointer:before { - content: "\F245"; -} - -.fa-music:before { - content: "\F001"; -} - -.fa-napster:before { - content: "\F3D2"; -} - -.fa-neuter:before { - content: "\F22C"; -} - -.fa-newspaper:before { - content: "\F1EA"; -} - -.fa-nintendo-switch:before { - content: "\F418"; -} - -.fa-node:before { - content: "\F419"; -} - -.fa-node-js:before { - content: "\F3D3"; -} - -.fa-npm:before { - content: "\F3D4"; -} - -.fa-ns8:before { - content: "\F3D5"; -} - -.fa-nutritionix:before { - content: "\F3D6"; -} - -.fa-object-group:before { - content: "\F247"; -} - -.fa-object-ungroup:before { - content: "\F248"; -} - -.fa-octagon:before { - content: "\F306"; -} - -.fa-odnoklassniki:before { - content: "\F263"; -} - -.fa-odnoklassniki-square:before { - content: "\F264"; -} - -.fa-opencart:before { - content: "\F23D"; -} - -.fa-openid:before { - content: "\F19B"; -} - -.fa-opera:before { - content: "\F26A"; -} - -.fa-optin-monster:before { - content: "\F23C"; -} - -.fa-osi:before { - content: "\F41A"; -} - -.fa-outdent:before { - content: "\F03B"; -} - -.fa-page4:before { - content: "\F3D7"; -} - -.fa-pagelines:before { - content: "\F18C"; -} - -.fa-paint-brush:before { - content: "\F1FC"; -} - -.fa-palfed:before { - content: "\F3D8"; -} - -.fa-paper-plane:before { - content: "\F1D8"; -} - -.fa-paperclip:before { - content: "\F0C6"; -} - -.fa-paragraph:before { - content: "\F1DD"; -} - -.fa-paste:before { - content: "\F0EA"; -} - -.fa-patreon:before { - content: "\F3D9"; -} - -.fa-pause:before { - content: "\F04C"; -} - -.fa-pause-circle:before { - content: "\F28B"; -} - -.fa-paw:before { - content: "\F1B0"; -} - -.fa-paypal:before { - content: "\F1ED"; -} - -.fa-pen:before { - content: "\F304"; -} - -.fa-pen-alt:before { - content: "\F305"; -} - -.fa-pen-square:before { - content: "\F14B"; -} - -.fa-pencil:before { - content: "\F040"; -} - -.fa-pencil-alt:before { - content: "\F303"; -} - -.fa-percent:before { - content: "\F295"; -} - -.fa-periscope:before { - content: "\F3DA"; -} - -.fa-phabricator:before { - content: "\F3DB"; -} - -.fa-phoenix-framework:before { - content: "\F3DC"; -} - -.fa-phone:before { - content: "\F095"; -} - -.fa-phone-slash:before { - content: "\F3DD"; -} - -.fa-phone-square:before { - content: "\F098"; -} - -.fa-phone-volume:before { - content: "\F2A0"; -} - -.fa-pied-piper:before { - content: "\F2AE"; -} - -.fa-pied-piper-alt:before { - content: "\F1A8"; -} - -.fa-pied-piper-pp:before { - content: "\F1A7"; -} - -.fa-pinterest:before { - content: "\F0D2"; -} - -.fa-pinterest-p:before { - content: "\F231"; -} - -.fa-pinterest-square:before { - content: "\F0D3"; -} - -.fa-plane:before { - content: "\F072"; -} - -.fa-plane-alt:before { - content: "\F3DE"; -} - -.fa-play:before { - content: "\F04B"; -} - -.fa-play-circle:before { - content: "\F144"; -} - -.fa-playstation:before { - content: "\F3DF"; -} - -.fa-plug:before { - content: "\F1E6"; -} - -.fa-plus:before { - content: "\F067"; -} - -.fa-plus-circle:before { - content: "\F055"; -} - -.fa-plus-hexagon:before { - content: "\F300"; -} - -.fa-plus-octagon:before { - content: "\F301"; -} - -.fa-plus-square:before { - content: "\F0FE"; -} - -.fa-podcast:before { - content: "\F2CE"; -} - -.fa-poo:before { - content: "\F2FE"; -} - -.fa-portrait:before { - content: "\F3E0"; -} - -.fa-pound-sign:before { - content: "\F154"; -} - -.fa-power-off:before { - content: "\F011"; -} - -.fa-print:before { - content: "\F02F"; -} - -.fa-product-hunt:before { - content: "\F288"; -} - -.fa-pushed:before { - content: "\F3E1"; -} - -.fa-puzzle-piece:before { - content: "\F12E"; -} - -.fa-python:before { - content: "\F3E2"; -} - -.fa-qq:before { - content: "\F1D6"; -} - -.fa-qrcode:before { - content: "\F029"; -} - -.fa-question:before { - content: "\F128"; -} - -.fa-question-circle:before { - content: "\F059"; -} - -.fa-question-square:before { - content: "\F2FD"; -} - -.fa-quora:before { - content: "\F2C4"; -} - -.fa-quote-left:before { - content: "\F10D"; -} - -.fa-quote-right:before { - content: "\F10E"; -} - -.fa-random:before { - content: "\F074"; -} - -.fa-ravelry:before { - content: "\F2D9"; -} - -.fa-react:before { - content: "\F41B"; -} - -.fa-rebel:before { - content: "\F1D0"; -} - -.fa-rectangle-landscape:before { - content: "\F2FA"; -} - -.fa-rectangle-portrait:before { - content: "\F2FB"; -} - -.fa-rectangle-wide:before { - content: "\F2FC"; -} - -.fa-recycle:before { - content: "\F1B8"; -} - -.fa-red-river:before { - content: "\F3E3"; -} - -.fa-reddit:before { - content: "\F1A1"; -} - -.fa-reddit-alien:before { - content: "\F281"; -} - -.fa-reddit-square:before { - content: "\F1A2"; -} - -.fa-redo:before { - content: "\F01E"; -} - -.fa-redo-alt:before { - content: "\F2F9"; -} - -.fa-registered:before { - content: "\F25D"; -} - -.fa-rendact:before { - content: "\F3E4"; -} - -.fa-renren:before { - content: "\F18B"; -} - -.fa-repeat:before { - content: "\F363"; -} - -.fa-repeat-1:before { - content: "\F365"; -} - -.fa-repeat-1-alt:before { - content: "\F366"; -} - -.fa-repeat-alt:before { - content: "\F364"; -} - -.fa-reply:before { - content: "\F3E5"; -} - -.fa-reply-all:before { - content: "\F122"; -} - -.fa-replyd:before { - content: "\F3E6"; -} - -.fa-resolving:before { - content: "\F3E7"; -} - -.fa-retweet:before { - content: "\F079"; -} - -.fa-retweet-alt:before { - content: "\F361"; -} - -.fa-road:before { - content: "\F018"; -} - -.fa-rocket:before { - content: "\F135"; -} - -.fa-rocketchat:before { - content: "\F3E8"; -} - -.fa-rockrms:before { - content: "\F3E9"; -} - -.fa-rss:before { - content: "\F09E"; -} - -.fa-rss-square:before { - content: "\F143"; -} - -.fa-ruble-sign:before { - content: "\F158"; -} - -.fa-rupee-sign:before { - content: "\F156"; -} - -.fa-safari:before { - content: "\F267"; -} - -.fa-sass:before { - content: "\F41E"; -} - -.fa-save:before { - content: "\F0C7"; -} - -.fa-schlix:before { - content: "\F3EA"; -} - -.fa-scribd:before { - content: "\F28A"; -} - -.fa-scrubber:before { - content: "\F2F8"; -} - -.fa-search:before { - content: "\F002"; -} - -.fa-search-minus:before { - content: "\F010"; -} - -.fa-search-plus:before { - content: "\F00E"; -} - -.fa-searchengin:before { - content: "\F3EB"; -} - -.fa-sellcast:before { - content: "\F2DA"; -} - -.fa-sellsy:before { - content: "\F213"; -} - -.fa-server:before { - content: "\F233"; -} - -.fa-servicestack:before { - content: "\F3EC"; -} - -.fa-share:before { - content: "\F064"; -} - -.fa-share-all:before { - content: "\F367"; -} - -.fa-share-alt:before { - content: "\F1E0"; -} - -.fa-share-alt-square:before { - content: "\F1E1"; -} - -.fa-share-square:before { - content: "\F14D"; -} - -.fa-shekel-sign:before { - content: "\F20B"; -} - -.fa-shield:before { - content: "\F132"; -} - -.fa-shield-alt:before { - content: "\F3ED"; -} - -.fa-shield-check:before { - content: "\F2F7"; -} - -.fa-ship:before { - content: "\F21A"; -} - -.fa-shirtsinbulk:before { - content: "\F214"; -} - -.fa-shopping-bag:before { - content: "\F290"; -} - -.fa-shopping-basket:before { - content: "\F291"; -} - -.fa-shopping-cart:before { - content: "\F07A"; -} - -.fa-shower:before { - content: "\F2CC"; -} - -.fa-sign-in:before { - content: "\F090"; -} - -.fa-sign-in-alt:before { - content: "\F2F6"; -} - -.fa-sign-language:before { - content: "\F2A7"; -} - -.fa-sign-out:before { - content: "\F08B"; -} - -.fa-sign-out-alt:before { - content: "\F2F5"; -} - -.fa-signal:before { - content: "\F012"; -} - -.fa-simplybuilt:before { - content: "\F215"; -} - -.fa-sistrix:before { - content: "\F3EE"; -} - -.fa-sitemap:before { - content: "\F0E8"; -} - -.fa-skyatlas:before { - content: "\F216"; -} - -.fa-skype:before { - content: "\F17E"; -} - -.fa-slack:before { - content: "\F198"; -} - -.fa-slack-hash:before { - content: "\F3EF"; -} - -.fa-sliders-h:before { - content: "\F1DE"; -} - -.fa-sliders-h-square:before { - content: "\F3F0"; -} - -.fa-sliders-v:before { - content: "\F3F1"; -} - -.fa-sliders-v-square:before { - content: "\F3F2"; -} - -.fa-slideshare:before { - content: "\F1E7"; -} - -.fa-smile:before { - content: "\F118"; -} - -.fa-snapchat:before { - content: "\F2AB"; -} - -.fa-snapchat-ghost:before { - content: "\F2AC"; -} - -.fa-snapchat-square:before { - content: "\F2AD"; -} - -.fa-snowflake:before { - content: "\F2DC"; -} - -.fa-sort:before { - content: "\F0DC"; -} - -.fa-sort-alpha-down:before { - content: "\F15D"; -} - -.fa-sort-alpha-up:before { - content: "\F15E"; -} - -.fa-sort-amount-down:before { - content: "\F160"; -} - -.fa-sort-amount-up:before { - content: "\F161"; -} - -.fa-sort-down:before { - content: "\F0DD"; -} - -.fa-sort-numeric-down:before { - content: "\F162"; -} - -.fa-sort-numeric-up:before { - content: "\F163"; -} - -.fa-sort-up:before { - content: "\F0DE"; -} - -.fa-soundcloud:before { - content: "\F1BE"; -} - -.fa-space-shuttle:before { - content: "\F197"; -} - -.fa-spade:before { - content: "\F2F4"; -} - -.fa-speakap:before { - content: "\F3F3"; -} - -.fa-spinner:before { - content: "\F110"; -} - -.fa-spinner-third:before { - content: "\F3F4"; -} - -.fa-spotify:before { - content: "\F1BC"; -} - -.fa-square:before { - content: "\F0C8"; -} - -.fa-stack-exchange:before { - content: "\F18D"; -} - -.fa-stack-overflow:before { - content: "\F16C"; -} - -.fa-star:before { - content: "\F005"; -} - -.fa-star-exclamation:before { - content: "\F2F3"; -} - -.fa-star-half:before { - content: "\F089"; -} - -.fa-staylinked:before { - content: "\F3F5"; -} - -.fa-steam:before { - content: "\F1B6"; -} - -.fa-steam-square:before { - content: "\F1B7"; -} - -.fa-steam-symbol:before { - content: "\F3F6"; -} - -.fa-step-backward:before { - content: "\F048"; -} - -.fa-step-forward:before { - content: "\F051"; -} - -.fa-stethoscope:before { - content: "\F0F1"; -} - -.fa-sticker-mule:before { - content: "\F3F7"; -} - -.fa-sticky-note:before { - content: "\F249"; -} - -.fa-stop:before { - content: "\F04D"; -} - -.fa-stop-circle:before { - content: "\F28D"; -} - -.fa-stopwatch:before { - content: "\F2F2"; -} - -.fa-strava:before { - content: "\F428"; -} - -.fa-street-view:before { - content: "\F21D"; -} - -.fa-strikethrough:before { - content: "\F0CC"; -} - -.fa-stripe:before { - content: "\F429"; -} - -.fa-stripe-s:before { - content: "\F42A"; -} - -.fa-studiovinari:before { - content: "\F3F8"; -} - -.fa-stumbleupon:before { - content: "\F1A4"; -} - -.fa-stumbleupon-circle:before { - content: "\F1A3"; -} - -.fa-subscript:before { - content: "\F12C"; -} - -.fa-subway:before { - content: "\F239"; -} - -.fa-suitcase:before { - content: "\F0F2"; -} - -.fa-sun:before { - content: "\F185"; -} - -.fa-superpowers:before { - content: "\F2DD"; -} - -.fa-superscript:before { - content: "\F12B"; -} - -.fa-supple:before { - content: "\F3F9"; -} - -.fa-sync:before { - content: "\F021"; -} - -.fa-sync-alt:before { - content: "\F2F1"; -} - -.fa-table:before { - content: "\F0CE"; -} - -.fa-tablet:before { - content: "\F10A"; -} - -.fa-tablet-alt:before { - content: "\F3FA"; -} - -.fa-tablet-android:before { - content: "\F3FB"; -} - -.fa-tablet-android-alt:before { - content: "\F3FC"; -} - -.fa-tachometer:before { - content: "\F0E4"; -} - -.fa-tachometer-alt:before { - content: "\F3FD"; -} - -.fa-tag:before { - content: "\F02B"; -} - -.fa-tags:before { - content: "\F02C"; -} - -.fa-tasks:before { - content: "\F0AE"; -} - -.fa-taxi:before { - content: "\F1BA"; -} - -.fa-telegram:before { - content: "\F2C6"; -} - -.fa-telegram-plane:before { - content: "\F3FE"; -} - -.fa-tencent-weibo:before { - content: "\F1D5"; -} - -.fa-terminal:before { - content: "\F120"; -} - -.fa-text-height:before { - content: "\F034"; -} - -.fa-text-width:before { - content: "\F035"; -} - -.fa-th:before { - content: "\F00A"; -} - -.fa-th-large:before { - content: "\F009"; -} - -.fa-th-list:before { - content: "\F00B"; -} - -.fa-themeisle:before { - content: "\F2B2"; -} - -.fa-thermometer-empty:before { - content: "\F2CB"; -} - -.fa-thermometer-full:before { - content: "\F2C7"; -} - -.fa-thermometer-half:before { - content: "\F2C9"; -} - -.fa-thermometer-quarter:before { - content: "\F2CA"; -} - -.fa-thermometer-three-quarters:before { - content: "\F2C8"; -} - -.fa-thumbs-down:before { - content: "\F165"; -} - -.fa-thumbs-up:before { - content: "\F164"; -} - -.fa-thumbtack:before { - content: "\F08D"; -} - -.fa-ticket:before { - content: "\F145"; -} - -.fa-ticket-alt:before { - content: "\F3FF"; -} - -.fa-times:before { - content: "\F00D"; -} - -.fa-times-circle:before { - content: "\F057"; -} - -.fa-times-hexagon:before { - content: "\F2EE"; -} - -.fa-times-octagon:before { - content: "\F2F0"; -} - -.fa-times-square:before { - content: "\F2D3"; -} - -.fa-tint:before { - content: "\F043"; -} - -.fa-toggle-off:before { - content: "\F204"; -} - -.fa-toggle-on:before { - content: "\F205"; -} - -.fa-trademark:before { - content: "\F25C"; -} - -.fa-train:before { - content: "\F238"; -} - -.fa-transgender:before { - content: "\F224"; -} - -.fa-transgender-alt:before { - content: "\F225"; -} - -.fa-trash:before { - content: "\F1F8"; -} - -.fa-trash-alt:before { - content: "\F2ED"; -} - -.fa-tree:before { - content: "\F1BB"; -} - -.fa-tree-alt:before { - content: "\F400"; -} - -.fa-trello:before { - content: "\F181"; -} - -.fa-triangle:before { - content: "\F2EC"; -} - -.fa-tripadvisor:before { - content: "\F262"; -} - -.fa-trophy:before { - content: "\F091"; -} - -.fa-trophy-alt:before { - content: "\F2EB"; -} - -.fa-truck:before { - content: "\F0D1"; -} - -.fa-tty:before { - content: "\F1E4"; -} - -.fa-tumblr:before { - content: "\F173"; -} - -.fa-tumblr-square:before { - content: "\F174"; -} - -.fa-tv:before { - content: "\F26C"; -} - -.fa-tv-retro:before { - content: "\F401"; -} - -.fa-twitch:before { - content: "\F1E8"; -} - -.fa-twitter:before { - content: "\F099"; -} - -.fa-twitter-square:before { - content: "\F081"; -} - -.fa-typo3:before { - content: "\F42B"; -} - -.fa-uber:before { - content: "\F402"; -} - -.fa-uikit:before { - content: "\F403"; -} - -.fa-umbrella:before { - content: "\F0E9"; -} - -.fa-underline:before { - content: "\F0CD"; -} - -.fa-undo:before { - content: "\F0E2"; -} - -.fa-undo-alt:before { - content: "\F2EA"; -} - -.fa-uniregistry:before { - content: "\F404"; -} - -.fa-universal-access:before { - content: "\F29A"; -} - -.fa-university:before { - content: "\F19C"; -} - -.fa-unlink:before { - content: "\F127"; -} - -.fa-unlock:before { - content: "\F09C"; -} - -.fa-unlock-alt:before { - content: "\F13E"; -} - -.fa-untappd:before { - content: "\F405"; -} - -.fa-upload:before { - content: "\F093"; -} - -.fa-usb:before { - content: "\F287"; -} - -.fa-usd-circle:before { - content: "\F2E8"; -} - -.fa-usd-square:before { - content: "\F2E9"; -} - -.fa-user:before { - content: "\F007"; -} - -.fa-user-alt:before { - content: "\F406"; -} - -.fa-user-circle:before { - content: "\F2BD"; -} - -.fa-user-md:before { - content: "\F0F0"; -} - -.fa-user-plus:before { - content: "\F234"; -} - -.fa-user-secret:before { - content: "\F21B"; -} - -.fa-user-times:before { - content: "\F235"; -} - -.fa-users:before { - content: "\F0C0"; -} - -.fa-ussunnah:before { - content: "\F407"; -} - -.fa-utensil-fork:before { - content: "\F2E3"; -} - -.fa-utensil-knife:before { - content: "\F2E4"; -} - -.fa-utensil-spoon:before { - content: "\F2E5"; -} - -.fa-utensils:before { - content: "\F2E7"; -} - -.fa-utensils-alt:before { - content: "\F2E6"; -} - -.fa-vaadin:before { - content: "\F408"; -} - -.fa-venus:before { - content: "\F221"; -} - -.fa-venus-double:before { - content: "\F226"; -} - -.fa-venus-mars:before { - content: "\F228"; -} - -.fa-viacoin:before { - content: "\F237"; -} - -.fa-viadeo:before { - content: "\F2A9"; -} - -.fa-viadeo-square:before { - content: "\F2AA"; -} - -.fa-viber:before { - content: "\F409"; -} - -.fa-video:before { - content: "\F03D"; -} - -.fa-vimeo:before { - content: "\F40A"; -} - -.fa-vimeo-square:before { - content: "\F194"; -} - -.fa-vimeo-v:before { - content: "\F27D"; -} - -.fa-vine:before { - content: "\F1CA"; -} - -.fa-vk:before { - content: "\F189"; -} - -.fa-vnv:before { - content: "\F40B"; -} - -.fa-volume-down:before { - content: "\F027"; -} - -.fa-volume-mute:before { - content: "\F2E2"; -} - -.fa-volume-off:before { - content: "\F026"; -} - -.fa-volume-up:before { - content: "\F028"; -} - -.fa-vuejs:before { - content: "\F41F"; -} - -.fa-watch:before { - content: "\F2E1"; -} - -.fa-weibo:before { - content: "\F18A"; -} - -.fa-weixin:before { - content: "\F1D7"; -} - -.fa-whatsapp:before { - content: "\F232"; -} - -.fa-whatsapp-square:before { - content: "\F40C"; -} - -.fa-wheelchair:before { - content: "\F193"; -} - -.fa-whmcs:before { - content: "\F40D"; -} - -.fa-wifi:before { - content: "\F1EB"; -} - -.fa-wikipedia-w:before { - content: "\F266"; -} - -.fa-window:before { - content: "\F40E"; -} - -.fa-window-alt:before { - content: "\F40F"; -} - -.fa-window-close:before { - content: "\F410"; -} - -.fa-window-maximize:before { - content: "\F2D0"; -} - -.fa-window-minimize:before { - content: "\F2D1"; -} - -.fa-window-restore:before { - content: "\F2D2"; -} - -.fa-windows:before { - content: "\F17A"; -} - -.fa-won-sign:before { - content: "\F159"; -} - -.fa-wordpress:before { - content: "\F19A"; -} - -.fa-wordpress-simple:before { - content: "\F411"; -} - -.fa-wpbeginner:before { - content: "\F297"; -} - -.fa-wpexplorer:before { - content: "\F2DE"; -} - -.fa-wpforms:before { - content: "\F298"; -} - -.fa-wrench:before { - content: "\F0AD"; -} - -.fa-xbox:before { - content: "\F412"; -} - -.fa-xing:before { - content: "\F168"; -} - -.fa-xing-square:before { - content: "\F169"; -} - -.fa-y-combinator:before { - content: "\F23B"; -} - -.fa-yahoo:before { - content: "\F19E"; -} - -.fa-yandex:before { - content: "\F413"; -} - -.fa-yandex-international:before { - content: "\F414"; -} - -.fa-yelp:before { - content: "\F1E9"; -} - -.fa-yen-sign:before { - content: "\F157"; -} - -.fa-yoast:before { - content: "\F2B1"; -} - -.fa-youtube:before { - content: "\F167"; -} - -.sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -.sr-only-focusable:active, -.sr-only-focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; -} - -/*! - * Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com - * License - http://fontawesome.com/license (Commercial License) - */ - -@font-face { - font-family: 'Font Awesome 5 Pro'; - font-style: normal; - font-weight: 900; - src: url("/webfonts/fa-solid-900.eot"); - src: url("/webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("/webfonts/fa-solid-900.woff2") format("woff2"), url("/webfonts/fa-solid-900.woff") format("woff"), url("/webfonts/fa-solid-900.ttf") format("truetype"), url("/webfonts/fa-solid-900.svg#fontawesome") format("svg"); -} - -.fa, -.fas { - font-family: 'Font Awesome 5 Pro'; - font-weight: 900; -} - diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png deleted file mode 100644 index e12c6e82739acd0348a1f5ed1c685636be6b0e03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1317 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5)E61x z6XFU~P}|S|K{fUDKm=#Q#UYG3m@*(2t_)2LdED0a_Kxmupx&1D_Rj9^p8o#z8#m5d zumEUF-^7WVw``d{b7oU(>!vMR_Uzr;+}5^XGj~a%A_OJ#C$xJ9h0ldhFQdty}Axni`v%7cX6U=o;uJxM|atty@>GUAuSRzA4kEZ`!>1;Gsi1cJAD^V@G>eS8GSd+V$&~ zuUxrq!-nN6R;*sLrhn3;#Y>i~TC-;A^y!P1Ea~p+n=) zcS0t-z`)fh3GxHR8k^hFN53B}^I#XB@b=v#iFN-rO0v4Y@mjLt;ger~o-SMY&U@mN z%~J0@pRHt{@3=0 z5+vH@o9nDi3-n7=)NHq%Ja3y$NcGAMljcl%eB!6T|Nr9p^6y_CuKlaWkg#vxKSs|_ z{A?*~Nt+TpBCiVeZdEirBeCJZ2ahyc?8#5z*Q}ar!tO9^aix~`;|KF{TrUq=Ml~qP+W_m^mgQ2AnKSNO~P>nc}IZ!p>nJFb1 zASIXAC~^RmNFpim&CE?LsVqok0J}=RATQm1Q8@mC9h?&;z=!H7V^b&;|xiS3j3^ HP6))hErNhDg4idBwHCJ|H-rEQ)Cv*=YfuAdv5%)DWE+LhBs3LK5=bC{ zNWvD`!Ww~)5J)16ge(N`VXZ!@&%UR)40WVH#nz&>;zBP@XXUf3k11&c{zN3zDRUNCR4Sx=7~f(xw(~R&ng=mMPhM*L{e2-t2Y`4&E`Uhq_Meq z$Zl^|sY)v<)Edoz$z&fMHW-a(Ke3Iic3m*`}%A{LsFUS zTw7a1Qe||>nwkQ!SZ^@&^!0Uib#?3Y9U6^wXsAuC?$B!M8yjtQds$^=i%NCD zWD*t>bm{eV_4VBbgSe=YFisyjN$6^g~h zMZxXq58xdT!6n5f0N}XwOU;!>FSdj$ZoNF~w65rTDSqg+EiC4L-|n*dJBX)dBIGyk zLKz+PH=Zb2#f27J=+2N?Kj+eWuRNY<(qJD4@+Z5a)q$SxIKzYGnX$Cy-VQ2et@fg5EU`GfHw;rLH38}{s3 z4!$y|Po=GH(tkb%zRY#pxc;Nca<*XdgB!&6rEQI*DW{L^*B#zZs&kA=#wWSIv&!R2 zJE$Z0iqwhfRqz+TQYU>p{QQ(Howj4gwbW;{&P-l(JK&M2edv{4R_D1azCwg zR3Nv0LDI*J8&=n^bT2|iZcg6h(zb4-q@HBkKFt_=Kp&eN4eJfMu#khWJczeI4=u7zdvRvvX-oDS}@;@Slbq`b51|)~9n!Up|wZ$*shW6F(*sX&Z=J5SG4PZ~vd4 zhm@bxSUe^F-~F$7+}+I!V{;Am@Pu!O-_uWC^M3Yje~R{gC+$kj%WLybCjk4_)cx0l zb9B`WYW3`)o?ml(`hPWhzZSnrJh{i;&6oY(HNO9J`D}ymvh`MCgR9eX&zkwIknx8_ zVs9GxPHX$@Ob(z(9G#ze`8}B@(7j)XNY4U?2<2r{4V#N0vpoSyAz8D~fk%&^&UF9q zU1$|@{fd}W2N}9Anr|I^cheyc*+J%sd_31{p4D!3E!j(NnLM0eJe!rvEg9+pL~dkFa^+9bQn4;7>mUjW~4M2@qEiC zftgJOP*hY!^Nxq`)WNr=l1OoY#yn1iUmum8!9C8RqiCsLFe$7I4(g8|gQA5{(O3uy ura)8(O~YW)$YeB@MkQk~p+RVBFa`-Lkns9MWZE4#0mKpFqjgb7^L_&%H%#OJ diff --git a/public/favicon-96x96.png b/public/favicon-96x96.png deleted file mode 100644 index 8c6476be29620a654a1fc54f63e0405dc733aff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7278 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 w;r4J5jHsxcjg5#n#@{z4yHQ z{^tr<1s(w<;4AQZfp4&7;0ZvVC6ns~?!YF2pMZqJn-UEAWn<%oL?R*K+2YQIy$cu~ zEx8V${m45wc&mBjXEJYOYbzo?-!l`(g|CTm9c$|9JNi(sP{`>Vc%IE>WOsMl%cn2% zAa@F_3vZT|mC6~*J zZ6^)aSl0Oy`6lm5r6i3;O-iLhX*TQ9Zo5(}9!j-Z(fedF;r$Nw=#u%yE7=zqf$~bpDX%I1N3s)Fn7SjLZDsM{w3T^WJ}eF__0iI2;nr z5!M=(wTXR{Yt9^Xmt6BB;*7DF&jV=Y0nXL01wLcXIpwVX^Z$NWRcdfWDgTOz^nXiV Ha>)G)k!xzG diff --git a/public/img/bg1.jpg b/public/img/bg1.jpg deleted file mode 100644 index b87f702172b85faad181ed1a5419089597cd2143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277424 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

#^0ZEua7Lh!NED`CDaNt_U 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 gJ(RyZf~UdLqB5Guq4Xpa8?6iV3t*}GqAzW@LL diff --git a/public/img/heimdall-icon-small.png b/public/img/heimdall-icon-small.png deleted file mode 100644 index cff916cbaf81b0c70ce3ebb85c75c28a723c8b22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5337 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 diff --git a/public/img/yggdrasil.svg b/public/img/yggdrasil.svg deleted file mode 100644 index d8e2f64e..00000000 --- a/public/img/yggdrasil.svg +++ /dev/null @@ -1,171 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/public/index.php b/public/index.php deleted file mode 100644 index 4584cbcd..00000000 --- a/public/index.php +++ /dev/null @@ -1,60 +0,0 @@ - - */ - -define('LARAVEL_START', microtime(true)); - -/* -|-------------------------------------------------------------------------- -| Register The Auto Loader -|-------------------------------------------------------------------------- -| -| Composer provides a convenient, automatically generated class loader for -| our application. We just need to utilize it! We'll simply require it -| into the script here so that we don't have to worry about manual -| loading any of our classes later on. It feels great to relax. -| -*/ - -require __DIR__.'/../vendor/autoload.php'; - -/* -|-------------------------------------------------------------------------- -| Turn On The Lights -|-------------------------------------------------------------------------- -| -| We need to illuminate PHP development, so let us turn on the lights. -| This bootstraps the framework and gets it ready for use, then it -| will load up this application so that we can run it and send -| the responses back to the browser and delight our users. -| -*/ - -$app = require_once __DIR__.'/../bootstrap/app.php'; - -/* -|-------------------------------------------------------------------------- -| Run The Application -|-------------------------------------------------------------------------- -| -| Once we have the application, we can handle the incoming request -| through the kernel, and send the associated response back to -| the client's browser allowing them to enjoy the creative -| and wonderful application we have prepared for them. -| -*/ - -$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); - -$response = $kernel->handle( - $request = Illuminate\Http\Request::capture() -); - -$response->send(); - -$kernel->terminate($request, $response); diff --git a/public/js/app.js b/public/js/app.js deleted file mode 100644 index f5536c0c..00000000 --- a/public/js/app.js +++ /dev/null @@ -1,129 +0,0 @@ -/** - * Huebee PACKAGED v2.0.0 - * 1-click color picker - * MIT license - * http://huebee.buzz - * Copyright 2018 Metafizzy - */ - -!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return i.indexOf(e)==-1&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{},i=n[t]=n[t]||{};return i[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return i!=-1&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=0,o=n[i];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),i+=r?0:1,o=n[i]}return this}},t}),function(t,e){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(n){return e(t,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.Unipointer=e(t,t.EvEmitter)}(window,function(t,e){function n(){}function i(){}var o=i.prototype=Object.create(e.prototype);o.bindStartEvent=function(t){this._bindStartEvent(t,!0)},o.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},o._bindStartEvent=function(e,n){n=void 0===n||!!n;var i=n?"addEventListener":"removeEventListener";t.navigator.pointerEnabled?e[i]("pointerdown",this):t.navigator.msPointerEnabled?e[i]("MSPointerDown",this):(e[i]("mousedown",this),e[i]("touchstart",this))},o.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},o.getTouch=function(t){for(var e=0;e.5;var o=this.colorGrid[e.toUpperCase()];this.updateCursor(o),this.setTexts(),this.setBackgrounds(),n||this.emitEvent("change",[e,t.hue,t.sat,t.lum])}},f.setTexts=function(){if(this.setTextElems)for(var t=0;t=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" diff --git a/resources/assets/js/huebee.js b/resources/assets/js/huebee.js deleted file mode 100644 index af17b6a7..00000000 --- a/resources/assets/js/huebee.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Huebee PACKAGED v2.0.0 - * 1-click color picker - * MIT license - * http://huebee.buzz - * Copyright 2018 Metafizzy - */ - -!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return i.indexOf(e)==-1&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{},i=n[t]=n[t]||{};return i[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return i!=-1&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=0,o=n[i];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),i+=r?0:1,o=n[i]}return this}},t}),function(t,e){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(n){return e(t,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.Unipointer=e(t,t.EvEmitter)}(window,function(t,e){function n(){}function i(){}var o=i.prototype=Object.create(e.prototype);o.bindStartEvent=function(t){this._bindStartEvent(t,!0)},o.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},o._bindStartEvent=function(e,n){n=void 0===n||!!n;var i=n?"addEventListener":"removeEventListener";t.navigator.pointerEnabled?e[i]("pointerdown",this):t.navigator.msPointerEnabled?e[i]("MSPointerDown",this):(e[i]("mousedown",this),e[i]("touchstart",this))},o.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},o.getTouch=function(t){for(var e=0;e.5;var o=this.colorGrid[e.toUpperCase()];this.updateCursor(o),this.setTexts(),this.setBackgrounds(),n||this.emitEvent("change",[e,t.hue,t.sat,t.lum])}},f.setTexts=function(){if(this.setTextElems)for(var t=0;ta;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"

",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var s=!1;t(document).on("mouseup",function(){s=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!s){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return n&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,s=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("
").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),l=t.pageX,h=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,h=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(l=this.originalPageX),"x"===a.axis&&(h=this.originalPageY)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY=0;d--)l=s.snapElements[d].left-s.margins.left,h=l+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,l-g>_||m>h+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(l-_),r=g>=Math.abs(h-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(l-m),r=g>=Math.abs(h-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0 -}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,l=r+t.height,h=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+h>r&&l>s+h,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&l>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],l=[],h=this._connectWith();if(h&&e)for(s=h.length-1;s>=0;s--)for(o=t(h[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&l.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(l.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=l.length-1;s>=0;s--)l[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,l,h,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,h=r.length;h>s;s++)l=t(r[s]),l.data(this.widgetName+"-item",a),c.push({item:l,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t(" ",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,l,h,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(l=this.items[s].item.offset()[a],h=!1,e[u]-l>this.items[s][r]/2&&(h=!0),n>Math.abs(e[u]-l)&&(n=Math.abs(e[u]-l),o=this.items[s],this.direction=h?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})}); \ No newline at end of file diff --git a/resources/assets/sass/_app.scss b/resources/assets/sass/_app.scss deleted file mode 100644 index 11d71d99..00000000 --- a/resources/assets/sass/_app.scss +++ /dev/null @@ -1,795 +0,0 @@ -html { - box-sizing: border-box; - } - *, *:before, *:after { - box-sizing: inherit; - } -body { - background: $body-bg; -} - -#app { - display: flex; - min-height: 100vh; - flex-direction: column; - background-image: url('/img/bg1.jpg'); - background-repeat: no-repeat; - background-size: cover; - background-position: bottom center; - - nav { - display: flex; - flex-direction: column; - height: 100%; - position: absolute; - width: 340px; - left: -340px; - transition: all .35s ease-in-out; - background: rgba(0,0,0, 0.7); - color: white; - z-index: 2; - } - .content { - flex-grow: 1; - display: flex; - flex-direction: column; - .appheader { - background: rgba(0,0,0, 0.4); - text-align: center; - position:absolute; - height: 58px; - width: 100%; - top: -58px; - transition: all .35s ease-in-out; - z-index: 1; - ul { - display: inline-block; - list-style: none; - height: 58px; - border-left: 1px solid rgba(0,0,0,0.6); - border-right: 1px solid rgba(255,255,255,0.1); - margin: 0; - padding: 0; - } - li { - display: inline-block; - border-right: 1px solid rgba(0,0,0,0.6); - border-left: 1px solid rgba(255,255,255,0.1); - - } - a { - display: inline-block; - color: white; - text-decoration: none; - padding: 20px; - } - } - - } - main { - flex-direction: column; - } - main, #sortable { - padding: 10px; - display: flex; - justify-content: center; - align-items: center; - flex: 1; - position: relative; - flex-wrap: wrap; - align-content: center; - list-style: none; - margin: 0; - } -} -#config-buttons { - position: fixed; - bottom: 0; - right: 0; - display:flex; - flex-direction: column; - a { - width: 50px; - height: 50px; - background: rgba(0,0,0,0.8); - text-align: center; - line-height: 50px; - color: white; - margin-top: 1px; - img { - width: 26px; - height: 26px; - margin-top: 12px; - } - } -} - -.item-container { - //width: 340px; - //transition: width .35s ease-in-out; - position: relative; - .item-edit { - color: white; - position: absolute; - bottom: 20px; - left: 8px; - width: 30px; - height: 30px; - background: rgba(0,0,0,0.7); - border-radius: 50%; - text-align: center; - line-height: 30px; - display: none; - } -} -.message-container { - width: 100%; - padding: 10px 20px; -} -.message-container2 { - width: 100%; - padding: 10px 20px; -} - .alert { - margin: 30px auto; - text-align: center; - max-width: 800px; - background: #f1f4f7; - padding: 5px 20px; - display: flex; - justify-content: center; - padding-left: 80px; - box-shadow: 0 0 15px 3px rgba(0,0,0,0.3); - &.alert-success, &.alert-danger { - position: relative; - &:before { - content: "\f00c"; - font-family: 'Font Awesome 5 Pro'; - font-weight: 900; - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 60px; - background: $app-green; - text-align: center; - color: white; - line-height: 57px; - font-size: 24px; - align-items: center; - justify-content: center; - display: flex; - } - } - &.alert-danger { - &:before { - content: "\f00d"; - background: $app-red; - - } - } - a { - color: #91a1b3; - } - } - -#app { - &.header { - .appheader { - //top: 0; - } - .item-container { - //width: 240px; - .item-edit { - //display: block; - } - } - .item, .add-item { - transform: scale(0.9); - opacity: 0.8; - margin: 20px 0; - } - } - &.sidebar { - nav { - left: 0; - } - } -} -.add-item { - width: 280px; - height: 90px; - margin: 20px; - flex: 0 0 280px; - border-radius: 6px; - padding: 20px; - border: 4px dashed rgba(255,255,255,0.7); - box-shadow: 0 0 20px 2px rgba(0,0,0,0.3); - color: white; - overflow: hidden; - position: relative; - display: none; - outline: 1px solid transparent; - &.active { - display: block; - } - a { - display: block; - width: 100%; - text-align: center; - line-height: 40px; - color: white; - font-size: 19px; - } -} -.item { - width: 280px; - height: 90px; - margin: 20px; - flex: 0 0 280px; - background-image:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.25)); - border-radius: 6px; - padding: 15px; - padding-right: 55px; - //border: 2px solid rgba(0,0,0,0.4); - //box-shadow: 0 0 15px 1px rgba(35, 35, 35, 0.44); - color: white; - overflow: hidden; - position: relative; - transition: all .35s ease-in-out; - outline: 1px solid transparent; - display: flex; - align-items: center; - border: 1px solid #333333; - border: 1px solid rgb(74, 74, 74); - border: 1px solid rgba(76, 76, 76, 0.4); - -webkit-background-clip: padding-box; - background-clip: padding-box; - &:after { - content: ""; - position: absolute; - width: 90px; - height: 90px; - border-radius: 50%; - position: absolute; - right: -48px; - top: 0px; - background: rgba(255,255,255,0.1); - box-shadow: 0 0 40px 0px rgba(0,0,0,0.2); - } - .link { - position: absolute; - right: 0; - top: 0; - height: 100%; - width: 100%; - text-align: right; - line-height: 90px; - color: white; - font-size: 24px; - z-index: 1; - padding-right: 10px; - } - .title { - font-size: 16px; - } - .details { - width: 100%; - } -} -.text-center { - text-align: center!important; -} -.module-container { - box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4); - border: 1px solid #cdced8; - background: #f9fafd; - max-width: 1000px; - width: 100%; - margin: 10px 40px; - header, footer { - display: flex; - justify-content: space-between; - align-items: center; - border-top: 1px solid #fff; - background: #f2f3f6; - font-size: 16px; - border-bottom: 1px solid #dbdce3; - height: 60px; - position: relative; - .section-title { - font-size: 18px; - color: #5b5b5b; - margin-left: 25px; - } - } - footer { - border-top: 1px solid #dbdce3; - } - .table { - width: 100%; - margin:0; - background:#fff; - - thead { - th { - background: #f2f3f6; - color: #767d94; - border-top: 1px solid #fff; - text-align: left; - font-size: 13px; - text-transform: uppercase; - padding: 15px 25px; - } - } - tbody { - tr { - &:hover { - background: #fefbf2; - td:first-child { - position: relative; - &:before { - content: ""; - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 5px; - background: $app-green; - } - - } - } - } - td { - padding: 20px 25px; - font-size: 13px; - color: $app-text; - &.form-error { - background: #e69191; - color: white; - text-align: center; - } - } - a { - color: $app-text; - } - } - } -} -.homesearch { - height: 51px; -} -.module-actions { - display: flex; - justify-content:space-between; - align-items: center; - - .button { - font-size: 18px; - color: lighten($app-text, 15%); - padding: 0 10px; - border: none; - border-left: 1px solid $table-line; - display: flex; - line-height: 1; - position:relative; - background: transparent; - flex-direction: column; - justify-content: center; - align-items: center; - min-width: 65px; - height: 60px; - text-decoration: none; - box-sizing: border-box; - &:after { - position: absolute; - content: ""; - top:0; - left:0; - bottom: 0; - border-right: 1px solid #fff; - } - span { - display: inline-block; - line-height: 1; - font-size: 9px; - font-weight: 400; - text-transform: uppercase; - color: #ababab; - position: relative; - top: 4px; - margin: 0; - } - } -} -div.create { - padding: 30px 15px; - display: flex; - flex-wrap: wrap; - .input { - width: 280px; - margin: 20px; - label:not(.switch) { - width: 100%; - font-size: 13px; - color: lighten($app-text, 40%); - margin-bottom: 15px; - display: block; - font-weight: 300; - } - input, select { - width: 100%; - border: 1px solid #dedfe2; - padding: 10px; - border-radius: 6px; - } - } -} - -.app-icon { - max-width: 60px; - margin-right: 15px; -} - -.sidenav { - position: relative; - .close-sidenav { - position: absolute; - top:20px; - right: 20px; - font-size: 24px; - color: #ccc; - } - h2 { - font-weight: 300; - padding: 20px; - margin: 0; - } - ul { - list-style: none; - margin: 0; - padding: 20px; - li { - display: flex; - justify-content: space-between; - padding: 5px; - a { - color: #2b3542; - &.active { - color: #46b0e6; - } - } - } - } -} -.trashed { - font-size: 11px; - color: #91a1b3; - margin-left: 20px; -} - -.switch { - position: relative; - display: inline-block; - width: 36px; - height: 20px; - } - - /* Hide default HTML checkbox */ - .switch input {display:none;} - - /* The slider */ - .slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #4a556b; - -webkit-transition: .4s; - transition: .4s; - } - - .slider:before { - position: absolute; - content: ""; - height: 14px; - width: 14px; - left: 3px; - bottom: 3px; - background-color: white; - -webkit-transition: .4s; - transition: .4s; - } - - input:checked + .slider { - background-color: #2196F3; - } - - input:focus + .slider { - box-shadow: 0 0 1px #2196F3; - } - - input:checked + .slider:before { - -webkit-transform: translateX(16px); - -ms-transform: translateX(16px); - transform: translateX(16px); - } - - /* Rounded sliders */ - .slider.round { - border-radius: 20px; - } - - .slider.round:before { - border-radius: 50%; - } - - @-webkit-keyframes autofill { - to { - background:#f5f5f5; - color:$app-text; - font-weight: bold; - } -} - @keyframes autofill { - to { - background:#f5f5f5; - color:$app-text; - font-weight: bold; - } - } - - input:-webkit-autofill { - -webkit-animation-name: autofill; - -webkit-animation-fill-mode: both; - } - input:autofill { - animation-name: autofill; - animation-fill-mode: both; - } - - button.link { - border: none; - appearance: none; - background: transparent; - } - - a.settinglink { - color: $app-text; - font-size: 13px; - margin: 15px 5px; - display: inline-block; - font-weight: 700; - } - .setting-view-image { - margin-bottom: 20px; - display: inline-block; - img { - max-width: 330px; - } - } - - .searchform { - display: flex; - align-self: flex-start; - text-align: center; - margin: 50px auto; - padding: 14px; - background: rgba(0,0,0,0.2); - border-radius: 14px; - box-shadow: inset 0px 1px 6px 0 rgba(0,0,0,0.3); - border-top: 1px solid rgba(0,0,0,0.5); - border-bottom: 1px solid rgba(255,255,255,0.35); - position: relative; - width: 100%; - max-width: 500px; - form { - width: 100%; - } - .input-container { - background: white; - border-radius: 5px; - box-shadow: 0px 0px 5px 0 rgba(0,0,0,0.4); - overflow: hidden; - position: relative; - } - input { - padding: 17px 15px; - font-size: 15px; - border: 0 none; - width: 100%; - background: transparent; - } - button { - position: absolute; - right: 0px; - top: 0px; - border: none; - font-size: 16px; - padding: 7px 15px; - line-height: 38px; - font-weight: 500; - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; - color: white; - text-transform: uppercase; - background: $app-red; - } - } - - .ui-autocomplete { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - float: left; - display: none; - min-width: 160px; - padding: 4px 0; - margin: 0 0 10px 25px; - list-style: none; - background-color: #ffffff; - border-color: #ccc; - border-color: rgba(0, 0, 0, 0.2); - border-style: solid; - border-width: 1px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - *border-right-width: 2px; - *border-bottom-width: 2px; - -} - -.ui-menu-item { - display: block; - padding: 3px 15px; - clear: both; - font-weight: normal; - line-height: 18px; - color: #555555; - white-space: nowrap; - text-decoration: none; -} - -.ui-state-hover, .ui-state-active { - font-weight: 700; - -} - -#appimage { - img { - max-width: 150px; - } -} - -#sapconfig { - display: none; - width: 100%; - h2 { - background: #f2f3f6; - padding: 18px 25px; - margin-left: -15px; - width: calc(100% + 30px); - /* margin-right: -30px; */ - border-top: 1px solid #dbdce3; - border-bottom: 1px solid #dbdce3; - font-size: 18px; - color: #5b5b5b; - font-weight: 500; - } - .items { - display: flex; - } -} -hr { - margin: 23px 0 18px; - height: 0; - border-style: none; - border-width: 0; - border-top: 1px solid #eaeaea; - border-bottom: 1px solid #fff; - -} - -.upload-btn-wrapper { - position: relative; - overflow: hidden; - display: inline-block; - } - - .btn { - border: none; - color: white; - background-color: $app-red; - padding: 8px 12px; - border-radius: 8px; - font-size: 16px; - - &.test { - font-size: 16px; - font-weight: 500; - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; - color: white; - text-transform: uppercase; - padding: 8px 50px; - background: #207774; - } -} - - .upload-btn-wrapper input[type=file] { - font-size: 100px; - position: absolute; - left: 0; - top: 0; - opacity: 0; - } - - .icon-container { - display: flex; - align-items: center; - img { - margin-right: 15px; - } - } - -.ui-helper-hidden-accessible { - display: none; -} - -.livestats-container { - .livestats { - margin: 5px 0px -5px; - padding: 0; - display: flex; - list-style: none; - justify-content: space-between; - width: 100%; - - li { - text-align: center; - margin: 0; - line-height: 1; - } - span { - display: block; - text-transform: uppercase; - font-size: 11px; - font-weight: 500; - opacity: 0.5; - line-height: 1; - } - strong { - display: block; - line-height: 1; - } - - } -} - -input:-webkit-autofill, -input:-webkit-autofill:hover, -input:-webkit-autofill:focus -input:-webkit-autofill, -textarea:-webkit-autofill, -textarea:-webkit-autofill:hover -textarea:-webkit-autofill:focus, -select:-webkit-autofill, -select:-webkit-autofill:hover, -select:-webkit-autofill:focus { - border: inherit; - -webkit-text-fill-color: inherit; - -webkit-box-shadow: inherit; - transition: inherit; - color: $app-text!important; -} diff --git a/resources/assets/sass/_huebee.scss b/resources/assets/sass/_huebee.scss deleted file mode 100644 index 1421d379..00000000 --- a/resources/assets/sass/_huebee.scss +++ /dev/null @@ -1,83 +0,0 @@ -/*! Huebee v2.0.0 -http://huebee.buzz ----------------------------------------------- */ - -.huebee { - position: absolute; - z-index: 1; - transform: translateY(0px); - transition: opacity 0.15s, transform 0.15s; - } - - .huebee.is-hidden { - opacity: 0; - transform: translateY(10px); - } - - .huebee.is-static-open { - position: relative; - z-index: auto; - } - - .huebee__container { - position: absolute; - left: 0; - top: 5px; - padding: 10px; - background: #EEE; - border-radius: 5px; - box-shadow: 0 5px 10px hsla(0, 0%, 0%, 0.3); - } - - .huebee.is-static-open .huebee__container { - position: relative; - display: inline-block; - left: auto; - top: auto; - box-shadow: none; - } - - .huebee__canvas { - display: block; - cursor: pointer; - } - - .huebee__cursor { - width: 15px; - height: 15px; - position: absolute; - left: 0px; - top: 0px; - box-sizing: content-box; - border: 3px solid white; - border-radius: 5px; - pointer-events: none; - } - - .huebee__cursor.is-hidden { opacity: 0; } - - .huebee__close-button { - display: block; - position: absolute; - width: 24px; - height: 24px; - top: -9px; - right: -9px; - border-radius: 12px; - background: #222; - } - - .huebee__close-button__x { - stroke: white; - stroke-width: 3; - stroke-linecap: round; - } - - .huebee__close-button:hover { - background: white; - cursor: pointer; - } - - .huebee__close-button:hover .huebee__close-button__x { - stroke: #222; - } \ No newline at end of file diff --git a/resources/assets/sass/_normalise.scss b/resources/assets/sass/_normalise.scss deleted file mode 100644 index 9dddf73a..00000000 --- a/resources/assets/sass/_normalise.scss +++ /dev/null @@ -1,424 +0,0 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - -// -// 1. Set default font family to sans-serif. -// 2. Prevent iOS and IE text size adjust after device orientation change, -// without disabling user zoom. -// - -html { - font-family: sans-serif; // 1 - -ms-text-size-adjust: 100%; // 2 - -webkit-text-size-adjust: 100%; // 2 -} - -// -// Remove default margin. -// - -body { - margin: 0; -} - -// HTML5 display definitions -// ========================================================================== - -// -// Correct `block` display not defined for any HTML5 element in IE 8/9. -// Correct `block` display not defined for `details` or `summary` in IE 10/11 -// and Firefox. -// Correct `block` display not defined for `main` in IE 11. -// - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -// -// 1. Correct `inline-block` display not defined in IE 8/9. -// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. -// - -audio, -canvas, -progress, -video { - display: inline-block; // 1 - vertical-align: baseline; // 2 -} - -// -// Prevent modern browsers from displaying `audio` without controls. -// Remove excess height in iOS 5 devices. -// - -audio:not([controls]) { - display: none; - height: 0; -} - -// -// Address `[hidden]` styling not present in IE 8/9/10. -// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. -// - -[hidden], -template { - display: none; -} - -// Links -// ========================================================================== - -// -// Remove the gray background color from active links in IE 10. -// - -a { - background-color: transparent; -} - -// -// Improve readability of focused elements when they are also in an -// active/hover state. -// - -a:active, -a:hover { - outline: 0; -} - -// Text-level semantics -// ========================================================================== - -// -// Address styling not present in IE 8/9/10/11, Safari, and Chrome. -// - -abbr[title] { - border-bottom: 1px dotted; -} - -// -// Address style set to `bolder` in Firefox 4+, Safari, and Chrome. -// - -b, -strong { - font-weight: bold; -} - -// -// Address styling not present in Safari and Chrome. -// - -dfn { - font-style: italic; -} - -// -// Address variable `h1` font-size and margin within `section` and `article` -// contexts in Firefox 4+, Safari, and Chrome. -// - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -// -// Address styling not present in IE 8/9. -// - -mark { - background: #ff0; - color: #000; -} - -// -// Address inconsistent and variable font size in all browsers. -// - -small { - font-size: 80%; -} - -// -// Prevent `sub` and `sup` affecting `line-height` in all browsers. -// - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -// Embedded content -// ========================================================================== - -// -// Remove border when inside `a` element in IE 8/9/10. -// - -img { - border: 0; -} - -// -// Correct overflow not hidden in IE 9/10/11. -// - -svg:not(:root) { - overflow: hidden; -} - -// Grouping content -// ========================================================================== - -// -// Address margin not present in IE 8/9 and Safari. -// - -figure { - margin: 1em 40px; -} - -// -// Address differences between Firefox and other browsers. -// - -hr { - box-sizing: content-box; - height: 0; -} - -// -// Contain overflow in all browsers. -// - -pre { - overflow: auto; -} - -// -// Address odd `em`-unit font size rendering in all browsers. -// - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -// Forms -// ========================================================================== - -// -// Known limitation: by default, Chrome and Safari on OS X allow very limited -// styling of `select`, unless a `border` property is set. -// - -// -// 1. Correct color not being inherited. -// Known issue: affects color of disabled elements. -// 2. Correct font properties not being inherited. -// 3. Address margins set differently in Firefox 4+, Safari, and Chrome. -// - -button, -input, -optgroup, -select, -textarea { - color: inherit; // 1 - font: inherit; // 2 - margin: 0; // 3 -} - -// -// Address `overflow` set to `hidden` in IE 8/9/10/11. -// - -button { - overflow: visible; -} - -// -// Address inconsistent `text-transform` inheritance for `button` and `select`. -// All other form control elements do not inherit `text-transform` values. -// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. -// Correct `select` style inheritance in Firefox. -// - -button, -select { - text-transform: none; -} - -// -// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` -// and `video` controls. -// 2. Correct inability to style clickable `input` types in iOS. -// 3. Improve usability and consistency of cursor style between image-type -// `input` and others. -// - -button, -html input[type="button"], // 1 -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; // 2 - cursor: pointer; // 3 -} - -// -// Re-set default cursor for disabled elements. -// - -button[disabled], -html input[disabled] { - cursor: default; -} - -// -// Remove inner padding and border in Firefox 4+. -// - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -// -// Address Firefox 4+ setting `line-height` on `input` using `!important` in -// the UA stylesheet. -// - -input { - line-height: normal; -} - -// -// It's recommended that you don't attempt to style these elements. -// Firefox's implementation doesn't respect box-sizing, padding, or width. -// -// 1. Address box sizing set to `content-box` in IE 8/9/10. -// 2. Remove excess padding in IE 8/9/10. -// - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; // 1 - padding: 0; // 2 -} - -// -// Fix the cursor style for Chrome's increment/decrement buttons. For certain -// `font-size` values of the `input`, it causes the cursor style of the -// decrement button to change from `default` to `text`. -// - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -// -// 1. Address `appearance` set to `searchfield` in Safari and Chrome. -// 2. Address `box-sizing` set to `border-box` in Safari and Chrome. -// - -input[type="search"] { - -webkit-appearance: textfield; // 1 - box-sizing: content-box; //2 -} - -// -// Remove inner padding and search cancel button in Safari and Chrome on OS X. -// Safari (but not Chrome) clips the cancel button when the search input has -// padding (and `textfield` appearance). -// - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -// -// Define consistent border, margin, and padding. -// - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -// -// 1. Correct `color` not being inherited in IE 8/9/10/11. -// 2. Remove padding so people aren't caught out if they zero out fieldsets. -// - -legend { - border: 0; // 1 - padding: 0; // 2 -} - -// -// Remove default vertical scrollbar in IE 8/9/10/11. -// - -textarea { - overflow: auto; -} - -// -// Don't inherit the `font-weight` (applied by a rule above). -// NOTE: the default cannot safely be changed in Chrome and Safari on OS X. -// - -optgroup { - font-weight: bold; -} - -// Tables -// ========================================================================== - -// -// Remove most spacing between table cells. -// - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/resources/assets/sass/_variables.scss b/resources/assets/sass/_variables.scss deleted file mode 100644 index 937bda3f..00000000 --- a/resources/assets/sass/_variables.scss +++ /dev/null @@ -1,18 +0,0 @@ - -// Body -$body-bg: #cfd2d4; - - -$app-text: #2f313a; - -$app-block-color: #b71234; -$app-light-color: #84764d; -$app-dark-color: #1d1d1b; - -$app-green: #0eb584; -$app-red: #d64d55; -$app-blue: #47a4e9; -$app-purple: #514a77; - -$table-heading: #f2f3f6; -$table-line: #cdced8; diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss deleted file mode 100644 index f7914da1..00000000 --- a/resources/assets/sass/app.scss +++ /dev/null @@ -1,19 +0,0 @@ - -// Fonts -@import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600"); - -// Variables -@import "variables"; - -// Bootstrap -@import "normalise"; - -// Bootstrap -@import "app"; - -// Huebee -@import "huebee"; - -// fontawesome -@import "fontawesome/fontawesome"; -@import "fontawesome/fa-solid"; \ No newline at end of file diff --git a/resources/assets/sass/fontawesome/.__animated.scss b/resources/assets/sass/fontawesome/.__animated.scss deleted file mode 100644 index 13979ff3aec0ab65f8da0faa3e4b8905df0f5beb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vy5VyQ zs2ik%VFnO8qiJD8h>IrY=jtUE6y&7p6_zFzCFYf6=A|+i7#J8@npEFDIqJGtm>QZ{nwc1zxH_R( zIm#Ukfzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R815ke>TH5A7|4ZWWELwFr55Lx z7A2=Dq~#Z7D`e)CqyoF0`FV*sIh6`Isc9t&NjZsm*}%RqRM(KEQ2h`0iVTC?|Nj8d COE^;i diff --git a/resources/assets/sass/fontawesome/.__bordered-pulled.scss b/resources/assets/sass/fontawesome/.__bordered-pulled.scss deleted file mode 100644 index 246a14982c57cd21e33c3308a5deea6a85fab656..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103v;&Ujt z0@1-R1E|~?O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMv^GsNNlvsdO15^- z&ri=ujj1p)aLy>o&rP*9H*zwuG<9>)H860o)HN}(FxGXlaB|dju`o3>votd?HgR=A zvvQO>8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Au!xS0Myw8VK9&j$;d2LC`v8P zFD*(=RY=P(%2vqCD@g@*JM;4rb8;#ba#GVu6q0fh^Rj_`VW_SlO`-Z9?iCpZx&QwG Dq6jzc diff --git a/resources/assets/sass/fontawesome/.__core.scss b/resources/assets/sass/fontawesome/.__core.scss deleted file mode 100644 index 8c37ae19b3331e205840b2e2fba113450ef6bf40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vdL%k! zKST$^44`snG%bukK2%&ZIX_n~v7jI)Rj;r#u_!UGBr`9S!N9=4(AqT7BstN-DB0RQ zKR-PuHKxMIz&WERKR4Cd+{nqq($vjG*TBHVQrE=D!dTbI!pTwB#lqCk%+k!n*u>Qd z&B{^kXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQM$S0Z?ZXguy^ABqOs}p(wRD zzqBYhRUs|EC|e;juOt=N?aa?h%*m-#$Vp8rQAo;3%*zJ$g`v8JG==JaxL0Ht$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103viVJ^qI7A5ADWagzZ7#J8BTAL=CBqv%JC0o1a z=cnhS##9&?IA;{)=cZbl8#$R+n!35@8W^}(>Y5l?80$J&I63ONSeP1`S(=#`o47im zSvkrb4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5E$+u0P1XlFc`>%WMmdA6r~pD zmlh?bDx~EXWh-Rnm81f@o%wl*IXRUIIjLzS3Q0MMdD+0eFjUu&rcnJ4_lgXI-2eXo D9KAQB diff --git a/resources/assets/sass/fontawesome/.__icons.scss b/resources/assets/sass/fontawesome/.__icons.scss deleted file mode 100644 index 094ce6c445929a18e53455fdd4d36884688fe0a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vYTvST z9YhDi44`snG%bukK2%&ZIX_n~v7jI)Rj;r#u_!UGBr`9S!N9=4(AqT7BstN-DB0RQ zKR-PuHKxMIz&WERKR4Cd+{nqq($vjG*TBHVQrE=D!dTbI!pTwB#lqCk%+k!n*u>Qd z&B{^kXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQM$S0Z?ZXguy^ABqOs}p(wRD zzqBYhRUs|EC|e;juOt=N?aa?h%*m-#$Vp8rQAo;3%*zJ$g`v8JG==JaxL0Ht$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103v`r)70 z4AH?b1E|~?O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMv^GsNNlvsdO15^- z&ri=ujj1p)aLy>o&rP*9H*zwuG<9>)H860o)HN}(FxGXlaB|dju`o3>votd?HgR=A zvvQO>8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Au!xS0Myw8VK9&j$;d2LC`v8P zFD*(=RY=P(%2vqCD@g@*JM;4rb8;#ba#GVu6q0fh^Rj_`VW_SlO`-Z9?iCpZx&QwG D{`okE diff --git a/resources/assets/sass/fontawesome/.__list.scss b/resources/assets/sass/fontawesome/.__list.scss deleted file mode 100644 index 3fc6e60526289619193d80d4e1ea48c7608c467d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vvS6}k zgXmzG0aWgcriBs6hl-0P=jZAr78K;9>J^qI7A5ADWagzZ7#J8BTAL=CBqv%JC0o1a z=cnhS##9&?IA;{)=cZbl8#$R+n!35@8W^}(>Y5l?80$J&I63ONSeP1`S(=#`o47im zSvkrb4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5E$+u0P1XlFc`>%WMmdA6r~pD zmlh?bDx~EXWh-Rnm81f@o%wl*IXRUIIjLzS3Q0MMdD+0eFjUu&rcnJ4_lgXI-2eXo DI0-jY diff --git a/resources/assets/sass/fontawesome/.__mixins.scss b/resources/assets/sass/fontawesome/.__mixins.scss deleted file mode 100644 index 9400da2e1904c0f78829d4523e8e9a9c796f1edc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103v3Of1f z1VjhJ44`snG%bukK2%&ZIX_n~v7jI)Rj;r#u_!UGBr`9S!N9=4(AqT7BstN-DB0RQ zKR-PuHKxMIz&WERKR4Cd+{nqq($vjG*TBHVQrE=D!dTbI!pTwB#lqCk%+k!n*u>Qd z&B{^kXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQM$S0Z?ZXguy^ABqOs}p(wRD zzqBYhRUs|EC|e;juOt=N?aa?h%*m-#$Vp8rQAo;3%*zJ$g`v8JG==JaxL0Ht$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103v>YMTB z14IYI44`snG%bukK2%&ZIX_n~v7jI)Rj;r#u_!UGBr`9S!N9=4(AqT7BstN-DB0RQ zKR-PuHKxMIz&WERKR4Cd+{nqq($vjG*TBHVQrE=D!dTbI!pTwB#lqCk%+k!n*u>Qd z&B{^kXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQM$S0Z?ZXguy^ABqOs}p(wRD zzqBYhRUs|EC|e;juOt=N?aa?h%*m-#$Vp8rQAo;3%*zJ$g`v8JG==JaxL0Ht$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103v>VCJk z0-}Rq22i;(nifVNA1W@IoS&!cbj9nnLwI+$%B+a{vDW E00BZd3IG5A diff --git a/resources/assets/sass/fontawesome/.__stacked.scss b/resources/assets/sass/fontawesome/.__stacked.scss deleted file mode 100644 index 4329463cbef8cc15634ccd7109455d53a5208ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vnwWE% z8=`|@22i;(nifVNA1W@IoS&!cbj9nnLwI+$%B+a{vDW E0G(wxF8}}l diff --git a/resources/assets/sass/fontawesome/.__variables.scss b/resources/assets/sass/fontawesome/.__variables.scss deleted file mode 100644 index 9bdffbb4e7b16950646a9d17c4d3f893352dca0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103v61tU9 z4AH?b1E|~?O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMv^GsNNlvsdO15^- z&ri=ujj1p)aLy>o&rP*9H*zwuG<9>)H860o)HN}(FxGXlaB|dju`o3>votd?HgR=A zvvQO>8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Au!xS0Myw8VK9&j$;d2LC`v8P zFD*(=RY=P(%2vqCD@g@*JM;4rb8;#ba#GVu6q0fh^Rj_`VW_SlO`-Z9?iCpZx&QwG D;FdTe diff --git a/resources/assets/sass/fontawesome/._fa-brands.scss b/resources/assets/sass/fontawesome/._fa-brands.scss deleted file mode 100644 index 77dade5e96cb8756cac882230cbd88f9893b9b87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vGFNSB zhUj3J0aWgcriBs6hl-0P=jZAr78K;9>J^qI7A5ADWagzZ7#J8BTAL=CBqv%JC0o1a z=cnhS##9&?IA;{)=cZbl8#$R+n!35@8W^}(>Y5l?80$J&I63ONSeP1`S(=#`o47im zSvkrb4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5E$+u0P1XlFc`>%WMmdA6r~pD zmlh?bDx~EXWh-Rnm81f@o%wl*IXRUIIjLzS3Q0MMdD+0eFjUu&rcnJ4_lgXI-2eXo D!s$1^ diff --git a/resources/assets/sass/fontawesome/._fa-light.scss b/resources/assets/sass/fontawesome/._fa-light.scss deleted file mode 100644 index 0c5fdcfaa0732c94bc9476930c0c1a7f24dac693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vdf3mN z2+_eX1E|~?O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMv^GsNNlvsdO15^- z&ri=ujj1p)aLy>o&rP*9H*zwuG<9>)H860o)HN}(FxGXlaB|dju`o3>votd?HgR=A zvvQO>8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Au!xS0Myw8VK9&j$;d2LC`v8P zFD*(=RY=P(%2vqCD@g@*JM;4rb8;#ba#GVu6q0fh^Rj_`VW_SlO`-Z9?iCpZx&QwG D><~CK diff --git a/resources/assets/sass/fontawesome/._fa-regular.scss b/resources/assets/sass/fontawesome/._fa-regular.scss deleted file mode 100644 index b556b335e8e14afaa7783ab2a4b9575b6e84ab33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vsxH+p zgy>+H0aWgcriBs6hl-0P=jZAr78K;9>J^qI7A5ADWagzZ7#J8BTAL=CBqv%JC0o1a z=cnhS##9&?IA;{)=cZbl8#$R+n!35@8W^}(>Y5l?80$J&I63ONSeP1`S(=#`o47im zSvkrb4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5E$+u0P1XlFc`>%WMmdA6r~pD zmlh?bDx~EXWh-Rnm81f@o%wl*IXRUIIjLzS3Q0MMdD+0eFjUu&rcnJ4_lgXI-2eXo Dgf2Ji diff --git a/resources/assets/sass/fontawesome/._fa-solid.scss b/resources/assets/sass/fontawesome/._fa-solid.scss deleted file mode 100644 index 1839d7ecdee29a9002a821b593a4c1dbe6586e72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vD!VcN z4MYdS44`snG%bukK2%&ZIX_n~v7jI)Rj;r#u_!UGBr`9S!N9=4(AqT7BstN-DB0RQ zKR-PuHKxMIz&WERKR4Cd+{nqq($vjG*TBHVQrE=D!dTbI!pTwB#lqCk%+k!n*u>Qd z&B{^kXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQM$S0Z?ZXguy^ABqOs}p(wRD zzqBYhRUs|EC|e;juOt=N?aa?h%*m-#$Vp8rQAo;3%*zJ$g`v8JG==JaxL0Ht$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vn)G8` zAVdel44`snG%bukK2%&ZIX_n~v7jI)Rj;r#u_!UGBr`9S!N9=4(AqT7BstN-DB0RQ zKR-PuHKxMIz&WERKR4Cd+{nqq($vjG*TBHVQrE=D!dTbI!pTwB#lqCk%+k!n*u>Qd z&B{^kXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQM$S0Z?ZXguy^ABqOs}p(wRD zzqBYhRUs|EC|e;juOt=N?aa?h%*m-#$Vp8rQAo;3%*zJ$g`v8JG==JaxL0Ht li { position: relative; } -} - -.#{$fa-css-prefix}-li { - left: -$fa-li-width; - position: absolute; - text-align: center; - width: $fa-li-width; - line-height: inherit; -} diff --git a/resources/assets/sass/fontawesome/_mixins.scss b/resources/assets/sass/fontawesome/_mixins.scss deleted file mode 100644 index 06e549b6..00000000 --- a/resources/assets/sass/fontawesome/_mixins.scss +++ /dev/null @@ -1,57 +0,0 @@ -// Mixins -// -------------------------- - -@mixin fa-icon { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - display: inline-block; - font-style: normal; - font-variant: normal; - font-weight: normal; - line-height: 1; - vertical-align: -15%; -} - -@mixin fa-icon-rotate($degrees, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; - transform: rotate($degrees); -} - -@mixin fa-icon-flip($horiz, $vert, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; - transform: scale($horiz, $vert); -} - - -// Only display content to screen readers. A la Bootstrap 4. -// -// See: http://a11yproject.com/posts/how-to-hide-content/ - -@mixin sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// -// Credit: HTML5 Boilerplate - -@mixin sr-only-focusable { - &:active, - &:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; - } -} diff --git a/resources/assets/sass/fontawesome/_rotated-flipped.scss b/resources/assets/sass/fontawesome/_rotated-flipped.scss deleted file mode 100644 index 995bc4cc..00000000 --- a/resources/assets/sass/fontawesome/_rotated-flipped.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Rotated & Flipped Icons -// ------------------------- - -.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } -.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } -.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } - -.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } -.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } -.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); } - -// Hook for IE8-9 -// ------------------------- - -:root { - .#{$fa-css-prefix}-rotate-90, - .#{$fa-css-prefix}-rotate-180, - .#{$fa-css-prefix}-rotate-270, - .#{$fa-css-prefix}-flip-horizontal, - .#{$fa-css-prefix}-flip-vertical { - filter: none; - } -} diff --git a/resources/assets/sass/fontawesome/_screen-reader.scss b/resources/assets/sass/fontawesome/_screen-reader.scss deleted file mode 100644 index 5d0ab262..00000000 --- a/resources/assets/sass/fontawesome/_screen-reader.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { @include sr-only; } -.sr-only-focusable { @include sr-only-focusable; } diff --git a/resources/assets/sass/fontawesome/_stacked.scss b/resources/assets/sass/fontawesome/_stacked.scss deleted file mode 100644 index 6c09d84c..00000000 --- a/resources/assets/sass/fontawesome/_stacked.scss +++ /dev/null @@ -1,31 +0,0 @@ -// Stacked Icons -// ------------------------- - -.#{$fa-css-prefix}-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2em; -} - -.#{$fa-css-prefix}-stack-1x, -.#{$fa-css-prefix}-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; -} - -.#{$fa-css-prefix}-stack-1x { - line-height: inherit; -} - -.#{$fa-css-prefix}-stack-2x { - font-size: 2em; -} - -.#{$fa-css-prefix}-inverse { - color: $fa-inverse; -} diff --git a/resources/assets/sass/fontawesome/_variables.scss b/resources/assets/sass/fontawesome/_variables.scss deleted file mode 100644 index ffc5b86e..00000000 --- a/resources/assets/sass/fontawesome/_variables.scss +++ /dev/null @@ -1,959 +0,0 @@ -// Variables -// -------------------------- - -$fa-font-path: "/webfonts" !default; -$fa-font-size-base: 16px !default; -$fa-css-prefix: fa !default; -$fa-version: "5.0.2" !default; -$fa-border-color: #eee !default; -$fa-inverse: #fff !default; -$fa-li-width: 2em !default; - -// Convenience function used to set content property -@function fa-content($fa-var) { - @return unquote("\"#{ $fa-var }\""); -} - -$fa-var-500px: \f26e; -$fa-var-accessible-icon: \f368; -$fa-var-accusoft: \f369; -$fa-var-address-book: \f2b9; -$fa-var-address-card: \f2bb; -$fa-var-adjust: \f042; -$fa-var-adn: \f170; -$fa-var-adversal: \f36a; -$fa-var-affiliatetheme: \f36b; -$fa-var-alarm-clock: \f34e; -$fa-var-algolia: \f36c; -$fa-var-align-center: \f037; -$fa-var-align-justify: \f039; -$fa-var-align-left: \f036; -$fa-var-align-right: \f038; -$fa-var-amazon: \f270; -$fa-var-amazon-pay: \f42c; -$fa-var-ambulance: \f0f9; -$fa-var-american-sign-language-interpreting: \f2a3; -$fa-var-amilia: \f36d; -$fa-var-anchor: \f13d; -$fa-var-android: \f17b; -$fa-var-angellist: \f209; -$fa-var-angle-double-down: \f103; -$fa-var-angle-double-left: \f100; -$fa-var-angle-double-right: \f101; -$fa-var-angle-double-up: \f102; -$fa-var-angle-down: \f107; -$fa-var-angle-left: \f104; -$fa-var-angle-right: \f105; -$fa-var-angle-up: \f106; -$fa-var-angrycreative: \f36e; -$fa-var-angular: \f420; -$fa-var-app-store: \f36f; -$fa-var-app-store-ios: \f370; -$fa-var-apper: \f371; -$fa-var-apple: \f179; -$fa-var-apple-pay: \f415; -$fa-var-archive: \f187; -$fa-var-arrow-alt-circle-down: \f358; -$fa-var-arrow-alt-circle-left: \f359; -$fa-var-arrow-alt-circle-right: \f35a; -$fa-var-arrow-alt-circle-up: \f35b; -$fa-var-arrow-alt-down: \f354; -$fa-var-arrow-alt-from-bottom: \f346; -$fa-var-arrow-alt-from-left: \f347; -$fa-var-arrow-alt-from-right: \f348; -$fa-var-arrow-alt-from-top: \f349; -$fa-var-arrow-alt-left: \f355; -$fa-var-arrow-alt-right: \f356; -$fa-var-arrow-alt-square-down: \f350; -$fa-var-arrow-alt-square-left: \f351; -$fa-var-arrow-alt-square-right: \f352; -$fa-var-arrow-alt-square-up: \f353; -$fa-var-arrow-alt-to-bottom: \f34a; -$fa-var-arrow-alt-to-left: \f34b; -$fa-var-arrow-alt-to-right: \f34c; -$fa-var-arrow-alt-to-top: \f34d; -$fa-var-arrow-alt-up: \f357; -$fa-var-arrow-circle-down: \f0ab; -$fa-var-arrow-circle-left: \f0a8; -$fa-var-arrow-circle-right: \f0a9; -$fa-var-arrow-circle-up: \f0aa; -$fa-var-arrow-down: \f063; -$fa-var-arrow-from-bottom: \f342; -$fa-var-arrow-from-left: \f343; -$fa-var-arrow-from-right: \f344; -$fa-var-arrow-from-top: \f345; -$fa-var-arrow-left: \f060; -$fa-var-arrow-right: \f061; -$fa-var-arrow-square-down: \f339; -$fa-var-arrow-square-left: \f33a; -$fa-var-arrow-square-right: \f33b; -$fa-var-arrow-square-up: \f33c; -$fa-var-arrow-to-bottom: \f33d; -$fa-var-arrow-to-left: \f33e; -$fa-var-arrow-to-right: \f340; -$fa-var-arrow-to-top: \f341; -$fa-var-arrow-up: \f062; -$fa-var-arrows: \f047; -$fa-var-arrows-alt: \f0b2; -$fa-var-arrows-alt-h: \f337; -$fa-var-arrows-alt-v: \f338; -$fa-var-arrows-h: \f07e; -$fa-var-arrows-v: \f07d; -$fa-var-assistive-listening-systems: \f2a2; -$fa-var-asterisk: \f069; -$fa-var-asymmetrik: \f372; -$fa-var-at: \f1fa; -$fa-var-audible: \f373; -$fa-var-audio-description: \f29e; -$fa-var-autoprefixer: \f41c; -$fa-var-avianex: \f374; -$fa-var-aviato: \f421; -$fa-var-aws: \f375; -$fa-var-backward: \f04a; -$fa-var-badge: \f335; -$fa-var-badge-check: \f336; -$fa-var-balance-scale: \f24e; -$fa-var-ban: \f05e; -$fa-var-bandcamp: \f2d5; -$fa-var-barcode: \f02a; -$fa-var-bars: \f0c9; -$fa-var-bath: \f2cd; -$fa-var-battery-bolt: \f376; -$fa-var-battery-empty: \f244; -$fa-var-battery-full: \f240; -$fa-var-battery-half: \f242; -$fa-var-battery-quarter: \f243; -$fa-var-battery-slash: \f377; -$fa-var-battery-three-quarters: \f241; -$fa-var-bed: \f236; -$fa-var-beer: \f0fc; -$fa-var-behance: \f1b4; -$fa-var-behance-square: \f1b5; -$fa-var-bell: \f0f3; -$fa-var-bell-slash: \f1f6; -$fa-var-bicycle: \f206; -$fa-var-bimobject: \f378; -$fa-var-binoculars: \f1e5; -$fa-var-birthday-cake: \f1fd; -$fa-var-bitbucket: \f171; -$fa-var-bitcoin: \f379; -$fa-var-bity: \f37a; -$fa-var-black-tie: \f27e; -$fa-var-blackberry: \f37b; -$fa-var-blind: \f29d; -$fa-var-blogger: \f37c; -$fa-var-blogger-b: \f37d; -$fa-var-bluetooth: \f293; -$fa-var-bluetooth-b: \f294; -$fa-var-bold: \f032; -$fa-var-bolt: \f0e7; -$fa-var-bomb: \f1e2; -$fa-var-book: \f02d; -$fa-var-bookmark: \f02e; -$fa-var-braille: \f2a1; -$fa-var-briefcase: \f0b1; -$fa-var-browser: \f37e; -$fa-var-btc: \f15a; -$fa-var-bug: \f188; -$fa-var-building: \f1ad; -$fa-var-bullhorn: \f0a1; -$fa-var-bullseye: \f140; -$fa-var-buromobelexperte: \f37f; -$fa-var-bus: \f207; -$fa-var-buysellads: \f20d; -$fa-var-calculator: \f1ec; -$fa-var-calendar: \f133; -$fa-var-calendar-alt: \f073; -$fa-var-calendar-check: \f274; -$fa-var-calendar-edit: \f333; -$fa-var-calendar-exclamation: \f334; -$fa-var-calendar-minus: \f272; -$fa-var-calendar-plus: \f271; -$fa-var-calendar-times: \f273; -$fa-var-camera: \f030; -$fa-var-camera-alt: \f332; -$fa-var-camera-retro: \f083; -$fa-var-car: \f1b9; -$fa-var-caret-circle-down: \f32d; -$fa-var-caret-circle-left: \f32e; -$fa-var-caret-circle-right: \f330; -$fa-var-caret-circle-up: \f331; -$fa-var-caret-down: \f0d7; -$fa-var-caret-left: \f0d9; -$fa-var-caret-right: \f0da; -$fa-var-caret-square-down: \f150; -$fa-var-caret-square-left: \f191; -$fa-var-caret-square-right: \f152; -$fa-var-caret-square-up: \f151; -$fa-var-caret-up: \f0d8; -$fa-var-cart-arrow-down: \f218; -$fa-var-cart-plus: \f217; -$fa-var-cc-amazon-pay: \f42d; -$fa-var-cc-amex: \f1f3; -$fa-var-cc-apple-pay: \f416; -$fa-var-cc-diners-club: \f24c; -$fa-var-cc-discover: \f1f2; -$fa-var-cc-jcb: \f24b; -$fa-var-cc-mastercard: \f1f1; -$fa-var-cc-paypal: \f1f4; -$fa-var-cc-stripe: \f1f5; -$fa-var-cc-visa: \f1f0; -$fa-var-centercode: \f380; -$fa-var-certificate: \f0a3; -$fa-var-chart-area: \f1fe; -$fa-var-chart-bar: \f080; -$fa-var-chart-line: \f201; -$fa-var-chart-pie: \f200; -$fa-var-check: \f00c; -$fa-var-check-circle: \f058; -$fa-var-check-square: \f14a; -$fa-var-chevron-circle-down: \f13a; -$fa-var-chevron-circle-left: \f137; -$fa-var-chevron-circle-right: \f138; -$fa-var-chevron-circle-up: \f139; -$fa-var-chevron-double-down: \f322; -$fa-var-chevron-double-left: \f323; -$fa-var-chevron-double-right: \f324; -$fa-var-chevron-double-up: \f325; -$fa-var-chevron-down: \f078; -$fa-var-chevron-left: \f053; -$fa-var-chevron-right: \f054; -$fa-var-chevron-square-down: \f329; -$fa-var-chevron-square-left: \f32a; -$fa-var-chevron-square-right: \f32b; -$fa-var-chevron-square-up: \f32c; -$fa-var-chevron-up: \f077; -$fa-var-child: \f1ae; -$fa-var-chrome: \f268; -$fa-var-circle: \f111; -$fa-var-circle-notch: \f1ce; -$fa-var-clipboard: \f328; -$fa-var-clock: \f017; -$fa-var-clone: \f24d; -$fa-var-closed-captioning: \f20a; -$fa-var-cloud: \f0c2; -$fa-var-cloud-download: \f0ed; -$fa-var-cloud-download-alt: \f381; -$fa-var-cloud-upload: \f0ee; -$fa-var-cloud-upload-alt: \f382; -$fa-var-cloudscale: \f383; -$fa-var-cloudsmith: \f384; -$fa-var-cloudversify: \f385; -$fa-var-club: \f327; -$fa-var-code: \f121; -$fa-var-code-branch: \f126; -$fa-var-code-commit: \f386; -$fa-var-code-merge: \f387; -$fa-var-codepen: \f1cb; -$fa-var-codiepie: \f284; -$fa-var-coffee: \f0f4; -$fa-var-cog: \f013; -$fa-var-cogs: \f085; -$fa-var-columns: \f0db; -$fa-var-comment: \f075; -$fa-var-comment-alt: \f27a; -$fa-var-comments: \f086; -$fa-var-compass: \f14e; -$fa-var-compress: \f066; -$fa-var-compress-alt: \f422; -$fa-var-compress-wide: \f326; -$fa-var-connectdevelop: \f20e; -$fa-var-contao: \f26d; -$fa-var-copy: \f0c5; -$fa-var-copyright: \f1f9; -$fa-var-cpanel: \f388; -$fa-var-creative-commons: \f25e; -$fa-var-credit-card: \f09d; -$fa-var-credit-card-blank: \f389; -$fa-var-credit-card-front: \f38a; -$fa-var-crop: \f125; -$fa-var-crosshairs: \f05b; -$fa-var-css3: \f13c; -$fa-var-css3-alt: \f38b; -$fa-var-cube: \f1b2; -$fa-var-cubes: \f1b3; -$fa-var-cut: \f0c4; -$fa-var-cuttlefish: \f38c; -$fa-var-d-and-d: \f38d; -$fa-var-dashcube: \f210; -$fa-var-database: \f1c0; -$fa-var-deaf: \f2a4; -$fa-var-delicious: \f1a5; -$fa-var-deploydog: \f38e; -$fa-var-deskpro: \f38f; -$fa-var-desktop: \f108; -$fa-var-desktop-alt: \f390; -$fa-var-deviantart: \f1bd; -$fa-var-diamond: \f219; -$fa-var-digg: \f1a6; -$fa-var-digital-ocean: \f391; -$fa-var-discord: \f392; -$fa-var-discourse: \f393; -$fa-var-dochub: \f394; -$fa-var-docker: \f395; -$fa-var-dollar-sign: \f155; -$fa-var-dot-circle: \f192; -$fa-var-download: \f019; -$fa-var-draft2digital: \f396; -$fa-var-dribbble: \f17d; -$fa-var-dribbble-square: \f397; -$fa-var-dropbox: \f16b; -$fa-var-drupal: \f1a9; -$fa-var-dyalog: \f399; -$fa-var-earlybirds: \f39a; -$fa-var-edge: \f282; -$fa-var-edit: \f044; -$fa-var-eject: \f052; -$fa-var-ellipsis-h: \f141; -$fa-var-ellipsis-h-alt: \f39b; -$fa-var-ellipsis-v: \f142; -$fa-var-ellipsis-v-alt: \f39c; -$fa-var-ember: \f423; -$fa-var-empire: \f1d1; -$fa-var-envelope: \f0e0; -$fa-var-envelope-open: \f2b6; -$fa-var-envelope-square: \f199; -$fa-var-envira: \f299; -$fa-var-eraser: \f12d; -$fa-var-erlang: \f39d; -$fa-var-ethereum: \f42e; -$fa-var-etsy: \f2d7; -$fa-var-euro-sign: \f153; -$fa-var-exchange: \f0ec; -$fa-var-exchange-alt: \f362; -$fa-var-exclamation: \f12a; -$fa-var-exclamation-circle: \f06a; -$fa-var-exclamation-square: \f321; -$fa-var-exclamation-triangle: \f071; -$fa-var-expand: \f065; -$fa-var-expand-alt: \f424; -$fa-var-expand-arrows: \f31d; -$fa-var-expand-arrows-alt: \f31e; -$fa-var-expand-wide: \f320; -$fa-var-expeditedssl: \f23e; -$fa-var-external-link: \f08e; -$fa-var-external-link-alt: \f35d; -$fa-var-external-link-square: \f14c; -$fa-var-external-link-square-alt: \f360; -$fa-var-eye: \f06e; -$fa-var-eye-dropper: \f1fb; -$fa-var-eye-slash: \f070; -$fa-var-facebook: \f09a; -$fa-var-facebook-f: \f39e; -$fa-var-facebook-messenger: \f39f; -$fa-var-facebook-square: \f082; -$fa-var-fast-backward: \f049; -$fa-var-fast-forward: \f050; -$fa-var-fax: \f1ac; -$fa-var-female: \f182; -$fa-var-fighter-jet: \f0fb; -$fa-var-file: \f15b; -$fa-var-file-alt: \f15c; -$fa-var-file-archive: \f1c6; -$fa-var-file-audio: \f1c7; -$fa-var-file-check: \f316; -$fa-var-file-code: \f1c9; -$fa-var-file-edit: \f31c; -$fa-var-file-excel: \f1c3; -$fa-var-file-exclamation: \f31a; -$fa-var-file-image: \f1c5; -$fa-var-file-minus: \f318; -$fa-var-file-pdf: \f1c1; -$fa-var-file-plus: \f319; -$fa-var-file-powerpoint: \f1c4; -$fa-var-file-times: \f317; -$fa-var-file-video: \f1c8; -$fa-var-file-word: \f1c2; -$fa-var-film: \f008; -$fa-var-film-alt: \f3a0; -$fa-var-filter: \f0b0; -$fa-var-fire: \f06d; -$fa-var-fire-extinguisher: \f134; -$fa-var-firefox: \f269; -$fa-var-first-order: \f2b0; -$fa-var-firstdraft: \f3a1; -$fa-var-flag: \f024; -$fa-var-flag-checkered: \f11e; -$fa-var-flask: \f0c3; -$fa-var-flickr: \f16e; -$fa-var-fly: \f417; -$fa-var-folder: \f07b; -$fa-var-folder-open: \f07c; -$fa-var-font: \f031; -$fa-var-font-awesome: \f2b4; -$fa-var-font-awesome-alt: \f35c; -$fa-var-font-awesome-flag: \f425; -$fa-var-fonticons: \f280; -$fa-var-fonticons-fi: \f3a2; -$fa-var-fort-awesome: \f286; -$fa-var-fort-awesome-alt: \f3a3; -$fa-var-forumbee: \f211; -$fa-var-forward: \f04e; -$fa-var-foursquare: \f180; -$fa-var-free-code-camp: \f2c5; -$fa-var-freebsd: \f3a4; -$fa-var-frown: \f119; -$fa-var-futbol: \f1e3; -$fa-var-gamepad: \f11b; -$fa-var-gavel: \f0e3; -$fa-var-gem: \f3a5; -$fa-var-genderless: \f22d; -$fa-var-get-pocket: \f265; -$fa-var-gg: \f260; -$fa-var-gg-circle: \f261; -$fa-var-gift: \f06b; -$fa-var-git: \f1d3; -$fa-var-git-square: \f1d2; -$fa-var-github: \f09b; -$fa-var-github-alt: \f113; -$fa-var-github-square: \f092; -$fa-var-gitkraken: \f3a6; -$fa-var-gitlab: \f296; -$fa-var-gitter: \f426; -$fa-var-glass-martini: \f000; -$fa-var-glide: \f2a5; -$fa-var-glide-g: \f2a6; -$fa-var-globe: \f0ac; -$fa-var-gofore: \f3a7; -$fa-var-goodreads: \f3a8; -$fa-var-goodreads-g: \f3a9; -$fa-var-google: \f1a0; -$fa-var-google-drive: \f3aa; -$fa-var-google-play: \f3ab; -$fa-var-google-plus: \f2b3; -$fa-var-google-plus-g: \f0d5; -$fa-var-google-plus-square: \f0d4; -$fa-var-google-wallet: \f1ee; -$fa-var-graduation-cap: \f19d; -$fa-var-gratipay: \f184; -$fa-var-grav: \f2d6; -$fa-var-gripfire: \f3ac; -$fa-var-grunt: \f3ad; -$fa-var-gulp: \f3ae; -$fa-var-h-square: \f0fd; -$fa-var-h1: \f313; -$fa-var-h2: \f314; -$fa-var-h3: \f315; -$fa-var-hacker-news: \f1d4; -$fa-var-hacker-news-square: \f3af; -$fa-var-hand-lizard: \f258; -$fa-var-hand-paper: \f256; -$fa-var-hand-peace: \f25b; -$fa-var-hand-point-down: \f0a7; -$fa-var-hand-point-left: \f0a5; -$fa-var-hand-point-right: \f0a4; -$fa-var-hand-point-up: \f0a6; -$fa-var-hand-pointer: \f25a; -$fa-var-hand-rock: \f255; -$fa-var-hand-scissors: \f257; -$fa-var-hand-spock: \f259; -$fa-var-handshake: \f2b5; -$fa-var-hashtag: \f292; -$fa-var-hdd: \f0a0; -$fa-var-heading: \f1dc; -$fa-var-headphones: \f025; -$fa-var-heart: \f004; -$fa-var-heartbeat: \f21e; -$fa-var-hexagon: \f312; -$fa-var-hire-a-helper: \f3b0; -$fa-var-history: \f1da; -$fa-var-home: \f015; -$fa-var-hooli: \f427; -$fa-var-hospital: \f0f8; -$fa-var-hotjar: \f3b1; -$fa-var-hourglass: \f254; -$fa-var-hourglass-end: \f253; -$fa-var-hourglass-half: \f252; -$fa-var-hourglass-start: \f251; -$fa-var-houzz: \f27c; -$fa-var-html5: \f13b; -$fa-var-hubspot: \f3b2; -$fa-var-i-cursor: \f246; -$fa-var-id-badge: \f2c1; -$fa-var-id-card: \f2c2; -$fa-var-image: \f03e; -$fa-var-images: \f302; -$fa-var-imdb: \f2d8; -$fa-var-inbox: \f01c; -$fa-var-inbox-in: \f310; -$fa-var-inbox-out: \f311; -$fa-var-indent: \f03c; -$fa-var-industry: \f275; -$fa-var-industry-alt: \f3b3; -$fa-var-info: \f129; -$fa-var-info-circle: \f05a; -$fa-var-info-square: \f30f; -$fa-var-instagram: \f16d; -$fa-var-internet-explorer: \f26b; -$fa-var-ioxhost: \f208; -$fa-var-italic: \f033; -$fa-var-itunes: \f3b4; -$fa-var-itunes-note: \f3b5; -$fa-var-jack-o-lantern: \f30e; -$fa-var-jenkins: \f3b6; -$fa-var-joget: \f3b7; -$fa-var-joomla: \f1aa; -$fa-var-js: \f3b8; -$fa-var-js-square: \f3b9; -$fa-var-jsfiddle: \f1cc; -$fa-var-key: \f084; -$fa-var-keyboard: \f11c; -$fa-var-keycdn: \f3ba; -$fa-var-kickstarter: \f3bb; -$fa-var-kickstarter-k: \f3bc; -$fa-var-korvue: \f42f; -$fa-var-language: \f1ab; -$fa-var-laptop: \f109; -$fa-var-laravel: \f3bd; -$fa-var-lastfm: \f202; -$fa-var-lastfm-square: \f203; -$fa-var-leaf: \f06c; -$fa-var-leanpub: \f212; -$fa-var-lemon: \f094; -$fa-var-less: \f41d; -$fa-var-level-down: \f149; -$fa-var-level-down-alt: \f3be; -$fa-var-level-up: \f148; -$fa-var-level-up-alt: \f3bf; -$fa-var-life-ring: \f1cd; -$fa-var-lightbulb: \f0eb; -$fa-var-line: \f3c0; -$fa-var-link: \f0c1; -$fa-var-linkedin: \f08c; -$fa-var-linkedin-in: \f0e1; -$fa-var-linode: \f2b8; -$fa-var-linux: \f17c; -$fa-var-lira-sign: \f195; -$fa-var-list: \f03a; -$fa-var-list-alt: \f022; -$fa-var-list-ol: \f0cb; -$fa-var-list-ul: \f0ca; -$fa-var-location-arrow: \f124; -$fa-var-lock: \f023; -$fa-var-lock-alt: \f30d; -$fa-var-lock-open: \f3c1; -$fa-var-lock-open-alt: \f3c2; -$fa-var-long-arrow-alt-down: \f309; -$fa-var-long-arrow-alt-left: \f30a; -$fa-var-long-arrow-alt-right: \f30b; -$fa-var-long-arrow-alt-up: \f30c; -$fa-var-long-arrow-down: \f175; -$fa-var-long-arrow-left: \f177; -$fa-var-long-arrow-right: \f178; -$fa-var-long-arrow-up: \f176; -$fa-var-low-vision: \f2a8; -$fa-var-lyft: \f3c3; -$fa-var-magento: \f3c4; -$fa-var-magic: \f0d0; -$fa-var-magnet: \f076; -$fa-var-male: \f183; -$fa-var-map: \f279; -$fa-var-map-marker: \f041; -$fa-var-map-marker-alt: \f3c5; -$fa-var-map-pin: \f276; -$fa-var-map-signs: \f277; -$fa-var-mars: \f222; -$fa-var-mars-double: \f227; -$fa-var-mars-stroke: \f229; -$fa-var-mars-stroke-h: \f22b; -$fa-var-mars-stroke-v: \f22a; -$fa-var-maxcdn: \f136; -$fa-var-medapps: \f3c6; -$fa-var-medium: \f23a; -$fa-var-medium-m: \f3c7; -$fa-var-medkit: \f0fa; -$fa-var-medrt: \f3c8; -$fa-var-meetup: \f2e0; -$fa-var-meh: \f11a; -$fa-var-mercury: \f223; -$fa-var-microchip: \f2db; -$fa-var-microphone: \f130; -$fa-var-microphone-alt: \f3c9; -$fa-var-microphone-slash: \f131; -$fa-var-microsoft: \f3ca; -$fa-var-minus: \f068; -$fa-var-minus-circle: \f056; -$fa-var-minus-hexagon: \f307; -$fa-var-minus-octagon: \f308; -$fa-var-minus-square: \f146; -$fa-var-mix: \f3cb; -$fa-var-mixcloud: \f289; -$fa-var-mizuni: \f3cc; -$fa-var-mobile: \f10b; -$fa-var-mobile-alt: \f3cd; -$fa-var-mobile-android: \f3ce; -$fa-var-mobile-android-alt: \f3cf; -$fa-var-modx: \f285; -$fa-var-monero: \f3d0; -$fa-var-money-bill: \f0d6; -$fa-var-money-bill-alt: \f3d1; -$fa-var-moon: \f186; -$fa-var-motorcycle: \f21c; -$fa-var-mouse-pointer: \f245; -$fa-var-music: \f001; -$fa-var-napster: \f3d2; -$fa-var-neuter: \f22c; -$fa-var-newspaper: \f1ea; -$fa-var-nintendo-switch: \f418; -$fa-var-node: \f419; -$fa-var-node-js: \f3d3; -$fa-var-npm: \f3d4; -$fa-var-ns8: \f3d5; -$fa-var-nutritionix: \f3d6; -$fa-var-object-group: \f247; -$fa-var-object-ungroup: \f248; -$fa-var-octagon: \f306; -$fa-var-odnoklassniki: \f263; -$fa-var-odnoklassniki-square: \f264; -$fa-var-opencart: \f23d; -$fa-var-openid: \f19b; -$fa-var-opera: \f26a; -$fa-var-optin-monster: \f23c; -$fa-var-osi: \f41a; -$fa-var-outdent: \f03b; -$fa-var-page4: \f3d7; -$fa-var-pagelines: \f18c; -$fa-var-paint-brush: \f1fc; -$fa-var-palfed: \f3d8; -$fa-var-paper-plane: \f1d8; -$fa-var-paperclip: \f0c6; -$fa-var-paragraph: \f1dd; -$fa-var-paste: \f0ea; -$fa-var-patreon: \f3d9; -$fa-var-pause: \f04c; -$fa-var-pause-circle: \f28b; -$fa-var-paw: \f1b0; -$fa-var-paypal: \f1ed; -$fa-var-pen: \f304; -$fa-var-pen-alt: \f305; -$fa-var-pen-square: \f14b; -$fa-var-pencil: \f040; -$fa-var-pencil-alt: \f303; -$fa-var-percent: \f295; -$fa-var-periscope: \f3da; -$fa-var-phabricator: \f3db; -$fa-var-phoenix-framework: \f3dc; -$fa-var-phone: \f095; -$fa-var-phone-slash: \f3dd; -$fa-var-phone-square: \f098; -$fa-var-phone-volume: \f2a0; -$fa-var-pied-piper: \f2ae; -$fa-var-pied-piper-alt: \f1a8; -$fa-var-pied-piper-pp: \f1a7; -$fa-var-pinterest: \f0d2; -$fa-var-pinterest-p: \f231; -$fa-var-pinterest-square: \f0d3; -$fa-var-plane: \f072; -$fa-var-plane-alt: \f3de; -$fa-var-play: \f04b; -$fa-var-play-circle: \f144; -$fa-var-playstation: \f3df; -$fa-var-plug: \f1e6; -$fa-var-plus: \f067; -$fa-var-plus-circle: \f055; -$fa-var-plus-hexagon: \f300; -$fa-var-plus-octagon: \f301; -$fa-var-plus-square: \f0fe; -$fa-var-podcast: \f2ce; -$fa-var-poo: \f2fe; -$fa-var-portrait: \f3e0; -$fa-var-pound-sign: \f154; -$fa-var-power-off: \f011; -$fa-var-print: \f02f; -$fa-var-product-hunt: \f288; -$fa-var-pushed: \f3e1; -$fa-var-puzzle-piece: \f12e; -$fa-var-python: \f3e2; -$fa-var-qq: \f1d6; -$fa-var-qrcode: \f029; -$fa-var-question: \f128; -$fa-var-question-circle: \f059; -$fa-var-question-square: \f2fd; -$fa-var-quora: \f2c4; -$fa-var-quote-left: \f10d; -$fa-var-quote-right: \f10e; -$fa-var-random: \f074; -$fa-var-ravelry: \f2d9; -$fa-var-react: \f41b; -$fa-var-rebel: \f1d0; -$fa-var-rectangle-landscape: \f2fa; -$fa-var-rectangle-portrait: \f2fb; -$fa-var-rectangle-wide: \f2fc; -$fa-var-recycle: \f1b8; -$fa-var-red-river: \f3e3; -$fa-var-reddit: \f1a1; -$fa-var-reddit-alien: \f281; -$fa-var-reddit-square: \f1a2; -$fa-var-redo: \f01e; -$fa-var-redo-alt: \f2f9; -$fa-var-registered: \f25d; -$fa-var-rendact: \f3e4; -$fa-var-renren: \f18b; -$fa-var-repeat: \f363; -$fa-var-repeat-1: \f365; -$fa-var-repeat-1-alt: \f366; -$fa-var-repeat-alt: \f364; -$fa-var-reply: \f3e5; -$fa-var-reply-all: \f122; -$fa-var-replyd: \f3e6; -$fa-var-resolving: \f3e7; -$fa-var-retweet: \f079; -$fa-var-retweet-alt: \f361; -$fa-var-road: \f018; -$fa-var-rocket: \f135; -$fa-var-rocketchat: \f3e8; -$fa-var-rockrms: \f3e9; -$fa-var-rss: \f09e; -$fa-var-rss-square: \f143; -$fa-var-ruble-sign: \f158; -$fa-var-rupee-sign: \f156; -$fa-var-safari: \f267; -$fa-var-sass: \f41e; -$fa-var-save: \f0c7; -$fa-var-schlix: \f3ea; -$fa-var-scribd: \f28a; -$fa-var-scrubber: \f2f8; -$fa-var-search: \f002; -$fa-var-search-minus: \f010; -$fa-var-search-plus: \f00e; -$fa-var-searchengin: \f3eb; -$fa-var-sellcast: \f2da; -$fa-var-sellsy: \f213; -$fa-var-server: \f233; -$fa-var-servicestack: \f3ec; -$fa-var-share: \f064; -$fa-var-share-all: \f367; -$fa-var-share-alt: \f1e0; -$fa-var-share-alt-square: \f1e1; -$fa-var-share-square: \f14d; -$fa-var-shekel-sign: \f20b; -$fa-var-shield: \f132; -$fa-var-shield-alt: \f3ed; -$fa-var-shield-check: \f2f7; -$fa-var-ship: \f21a; -$fa-var-shirtsinbulk: \f214; -$fa-var-shopping-bag: \f290; -$fa-var-shopping-basket: \f291; -$fa-var-shopping-cart: \f07a; -$fa-var-shower: \f2cc; -$fa-var-sign-in: \f090; -$fa-var-sign-in-alt: \f2f6; -$fa-var-sign-language: \f2a7; -$fa-var-sign-out: \f08b; -$fa-var-sign-out-alt: \f2f5; -$fa-var-signal: \f012; -$fa-var-simplybuilt: \f215; -$fa-var-sistrix: \f3ee; -$fa-var-sitemap: \f0e8; -$fa-var-skyatlas: \f216; -$fa-var-skype: \f17e; -$fa-var-slack: \f198; -$fa-var-slack-hash: \f3ef; -$fa-var-sliders-h: \f1de; -$fa-var-sliders-h-square: \f3f0; -$fa-var-sliders-v: \f3f1; -$fa-var-sliders-v-square: \f3f2; -$fa-var-slideshare: \f1e7; -$fa-var-smile: \f118; -$fa-var-snapchat: \f2ab; -$fa-var-snapchat-ghost: \f2ac; -$fa-var-snapchat-square: \f2ad; -$fa-var-snowflake: \f2dc; -$fa-var-sort: \f0dc; -$fa-var-sort-alpha-down: \f15d; -$fa-var-sort-alpha-up: \f15e; -$fa-var-sort-amount-down: \f160; -$fa-var-sort-amount-up: \f161; -$fa-var-sort-down: \f0dd; -$fa-var-sort-numeric-down: \f162; -$fa-var-sort-numeric-up: \f163; -$fa-var-sort-up: \f0de; -$fa-var-soundcloud: \f1be; -$fa-var-space-shuttle: \f197; -$fa-var-spade: \f2f4; -$fa-var-speakap: \f3f3; -$fa-var-spinner: \f110; -$fa-var-spinner-third: \f3f4; -$fa-var-spotify: \f1bc; -$fa-var-square: \f0c8; -$fa-var-stack-exchange: \f18d; -$fa-var-stack-overflow: \f16c; -$fa-var-star: \f005; -$fa-var-star-exclamation: \f2f3; -$fa-var-star-half: \f089; -$fa-var-staylinked: \f3f5; -$fa-var-steam: \f1b6; -$fa-var-steam-square: \f1b7; -$fa-var-steam-symbol: \f3f6; -$fa-var-step-backward: \f048; -$fa-var-step-forward: \f051; -$fa-var-stethoscope: \f0f1; -$fa-var-sticker-mule: \f3f7; -$fa-var-sticky-note: \f249; -$fa-var-stop: \f04d; -$fa-var-stop-circle: \f28d; -$fa-var-stopwatch: \f2f2; -$fa-var-strava: \f428; -$fa-var-street-view: \f21d; -$fa-var-strikethrough: \f0cc; -$fa-var-stripe: \f429; -$fa-var-stripe-s: \f42a; -$fa-var-studiovinari: \f3f8; -$fa-var-stumbleupon: \f1a4; -$fa-var-stumbleupon-circle: \f1a3; -$fa-var-subscript: \f12c; -$fa-var-subway: \f239; -$fa-var-suitcase: \f0f2; -$fa-var-sun: \f185; -$fa-var-superpowers: \f2dd; -$fa-var-superscript: \f12b; -$fa-var-supple: \f3f9; -$fa-var-sync: \f021; -$fa-var-sync-alt: \f2f1; -$fa-var-table: \f0ce; -$fa-var-tablet: \f10a; -$fa-var-tablet-alt: \f3fa; -$fa-var-tablet-android: \f3fb; -$fa-var-tablet-android-alt: \f3fc; -$fa-var-tachometer: \f0e4; -$fa-var-tachometer-alt: \f3fd; -$fa-var-tag: \f02b; -$fa-var-tags: \f02c; -$fa-var-tasks: \f0ae; -$fa-var-taxi: \f1ba; -$fa-var-telegram: \f2c6; -$fa-var-telegram-plane: \f3fe; -$fa-var-tencent-weibo: \f1d5; -$fa-var-terminal: \f120; -$fa-var-text-height: \f034; -$fa-var-text-width: \f035; -$fa-var-th: \f00a; -$fa-var-th-large: \f009; -$fa-var-th-list: \f00b; -$fa-var-themeisle: \f2b2; -$fa-var-thermometer-empty: \f2cb; -$fa-var-thermometer-full: \f2c7; -$fa-var-thermometer-half: \f2c9; -$fa-var-thermometer-quarter: \f2ca; -$fa-var-thermometer-three-quarters: \f2c8; -$fa-var-thumbs-down: \f165; -$fa-var-thumbs-up: \f164; -$fa-var-thumbtack: \f08d; -$fa-var-ticket: \f145; -$fa-var-ticket-alt: \f3ff; -$fa-var-times: \f00d; -$fa-var-times-circle: \f057; -$fa-var-times-hexagon: \f2ee; -$fa-var-times-octagon: \f2f0; -$fa-var-times-square: \f2d3; -$fa-var-tint: \f043; -$fa-var-toggle-off: \f204; -$fa-var-toggle-on: \f205; -$fa-var-trademark: \f25c; -$fa-var-train: \f238; -$fa-var-transgender: \f224; -$fa-var-transgender-alt: \f225; -$fa-var-trash: \f1f8; -$fa-var-trash-alt: \f2ed; -$fa-var-tree: \f1bb; -$fa-var-tree-alt: \f400; -$fa-var-trello: \f181; -$fa-var-triangle: \f2ec; -$fa-var-tripadvisor: \f262; -$fa-var-trophy: \f091; -$fa-var-trophy-alt: \f2eb; -$fa-var-truck: \f0d1; -$fa-var-tty: \f1e4; -$fa-var-tumblr: \f173; -$fa-var-tumblr-square: \f174; -$fa-var-tv: \f26c; -$fa-var-tv-retro: \f401; -$fa-var-twitch: \f1e8; -$fa-var-twitter: \f099; -$fa-var-twitter-square: \f081; -$fa-var-typo3: \f42b; -$fa-var-uber: \f402; -$fa-var-uikit: \f403; -$fa-var-umbrella: \f0e9; -$fa-var-underline: \f0cd; -$fa-var-undo: \f0e2; -$fa-var-undo-alt: \f2ea; -$fa-var-uniregistry: \f404; -$fa-var-universal-access: \f29a; -$fa-var-university: \f19c; -$fa-var-unlink: \f127; -$fa-var-unlock: \f09c; -$fa-var-unlock-alt: \f13e; -$fa-var-untappd: \f405; -$fa-var-upload: \f093; -$fa-var-usb: \f287; -$fa-var-usd-circle: \f2e8; -$fa-var-usd-square: \f2e9; -$fa-var-user: \f007; -$fa-var-user-alt: \f406; -$fa-var-user-circle: \f2bd; -$fa-var-user-md: \f0f0; -$fa-var-user-plus: \f234; -$fa-var-user-secret: \f21b; -$fa-var-user-times: \f235; -$fa-var-users: \f0c0; -$fa-var-ussunnah: \f407; -$fa-var-utensil-fork: \f2e3; -$fa-var-utensil-knife: \f2e4; -$fa-var-utensil-spoon: \f2e5; -$fa-var-utensils: \f2e7; -$fa-var-utensils-alt: \f2e6; -$fa-var-vaadin: \f408; -$fa-var-venus: \f221; -$fa-var-venus-double: \f226; -$fa-var-venus-mars: \f228; -$fa-var-viacoin: \f237; -$fa-var-viadeo: \f2a9; -$fa-var-viadeo-square: \f2aa; -$fa-var-viber: \f409; -$fa-var-video: \f03d; -$fa-var-vimeo: \f40a; -$fa-var-vimeo-square: \f194; -$fa-var-vimeo-v: \f27d; -$fa-var-vine: \f1ca; -$fa-var-vk: \f189; -$fa-var-vnv: \f40b; -$fa-var-volume-down: \f027; -$fa-var-volume-mute: \f2e2; -$fa-var-volume-off: \f026; -$fa-var-volume-up: \f028; -$fa-var-vuejs: \f41f; -$fa-var-watch: \f2e1; -$fa-var-weibo: \f18a; -$fa-var-weixin: \f1d7; -$fa-var-whatsapp: \f232; -$fa-var-whatsapp-square: \f40c; -$fa-var-wheelchair: \f193; -$fa-var-whmcs: \f40d; -$fa-var-wifi: \f1eb; -$fa-var-wikipedia-w: \f266; -$fa-var-window: \f40e; -$fa-var-window-alt: \f40f; -$fa-var-window-close: \f410; -$fa-var-window-maximize: \f2d0; -$fa-var-window-minimize: \f2d1; -$fa-var-window-restore: \f2d2; -$fa-var-windows: \f17a; -$fa-var-won-sign: \f159; -$fa-var-wordpress: \f19a; -$fa-var-wordpress-simple: \f411; -$fa-var-wpbeginner: \f297; -$fa-var-wpexplorer: \f2de; -$fa-var-wpforms: \f298; -$fa-var-wrench: \f0ad; -$fa-var-xbox: \f412; -$fa-var-xing: \f168; -$fa-var-xing-square: \f169; -$fa-var-y-combinator: \f23b; -$fa-var-yahoo: \f19e; -$fa-var-yandex: \f413; -$fa-var-yandex-international: \f414; -$fa-var-yelp: \f1e9; -$fa-var-yen-sign: \f157; -$fa-var-yoast: \f2b1; -$fa-var-youtube: \f167; diff --git a/resources/assets/sass/fontawesome/fa-brands.scss b/resources/assets/sass/fontawesome/fa-brands.scss deleted file mode 100644 index 13b91e3b..00000000 --- a/resources/assets/sass/fontawesome/fa-brands.scss +++ /dev/null @@ -1,21 +0,0 @@ -/*! - * Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com - * License - http://fontawesome.com/license (Commercial License) - */ -@import 'variables'; - -@font-face { - font-family: 'Font Awesome 5 Brands'; - font-style: normal; - font-weight: normal; - src: url('#{$fa-font-path}/fa-brands-400.eot'); - src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'), - url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'), - url('#{$fa-font-path}/fa-brands-400.woff') format('woff'), - url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'), - url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg'); -} - -.fab { - font-family: 'Font Awesome 5 Brands'; -} diff --git a/resources/assets/sass/fontawesome/fa-light.scss b/resources/assets/sass/fontawesome/fa-light.scss deleted file mode 100644 index d7664394..00000000 --- a/resources/assets/sass/fontawesome/fa-light.scss +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com - * License - http://fontawesome.com/license (Commercial License) - */ -@import 'variables'; - -@font-face { - font-family: 'Font Awesome 5 Pro'; - font-style: normal; - font-weight: 300; - src: url('#{$fa-font-path}/fa-light-300.eot'); - src: url('#{$fa-font-path}/fa-light-300.eot?#iefix') format('embedded-opentype'), - url('#{$fa-font-path}/fa-light-300.woff2') format('woff2'), - url('#{$fa-font-path}/fa-light-300.woff') format('woff'), - url('#{$fa-font-path}/fa-light-300.ttf') format('truetype'), - url('#{$fa-font-path}/fa-light-300.svg#fontawesome') format('svg'); -} - -.fal { - font-family: 'Font Awesome 5 Pro'; - font-weight: 300; -} diff --git a/resources/assets/sass/fontawesome/fa-regular.scss b/resources/assets/sass/fontawesome/fa-regular.scss deleted file mode 100644 index 83356aa6..00000000 --- a/resources/assets/sass/fontawesome/fa-regular.scss +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com - * License - http://fontawesome.com/license (Commercial License) - */ -@import 'variables'; - -@font-face { - font-family: 'Font Awesome 5 Pro'; - font-style: normal; - font-weight: 400; - src: url('#{$fa-font-path}/fa-regular-400.eot'); - src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'), - url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'), - url('#{$fa-font-path}/fa-regular-400.woff') format('woff'), - url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'), - url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg'); -} - -.far { - font-family: 'Font Awesome 5 Pro'; - font-weight: 400; -} diff --git a/resources/assets/sass/fontawesome/fa-solid.scss b/resources/assets/sass/fontawesome/fa-solid.scss deleted file mode 100644 index 63c3c742..00000000 --- a/resources/assets/sass/fontawesome/fa-solid.scss +++ /dev/null @@ -1,23 +0,0 @@ -/*! - * Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com - * License - http://fontawesome.com/license (Commercial License) - */ -@import 'variables'; - -@font-face { - font-family: 'Font Awesome 5 Pro'; - font-style: normal; - font-weight: 900; - src: url('#{$fa-font-path}/fa-solid-900.eot'); - src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'), - url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'), - url('#{$fa-font-path}/fa-solid-900.woff') format('woff'), - url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'), - url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg'); -} - -.fa, -.fas { - font-family: 'Font Awesome 5 Pro'; - font-weight: 900; -} diff --git a/resources/assets/sass/fontawesome/fontawesome.scss b/resources/assets/sass/fontawesome/fontawesome.scss deleted file mode 100644 index 0f09fe0a..00000000 --- a/resources/assets/sass/fontawesome/fontawesome.scss +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com - * License - http://fontawesome.com/license (Commercial License) - */ -@import 'variables'; -@import 'mixins'; -@import 'core'; -@import 'larger'; -@import 'fixed-width'; -@import 'list'; -@import 'bordered-pulled'; -@import 'animated'; -@import 'rotated-flipped'; -@import 'stacked'; -@import 'icons'; -@import 'screen-reader'; diff --git a/resources/lang/de/app.php b/resources/lang/de/app.php deleted file mode 100644 index adaeb1e4..00000000 --- a/resources/lang/de/app.php +++ /dev/null @@ -1,58 +0,0 @@ - 'System', - 'settings.appearance' => 'Aussehen', - 'settings.miscellaneous' => 'Sonstiges', - 'settings.version' => 'Ausführung', - 'settings.background_image' => 'Hintergrundbild', - 'settings.homepage_search' => 'Homepage Suchen', - 'settings.search_provider' => 'Suchanbieter', - 'settings.language' => 'Sprache', - 'settings.reset' => 'Zurücksetzen auf Standard zurück', - 'settings.remove' => 'Entfernen', - 'settings.search' => 'suche', - 'settings.no_items' => 'Keine Elemente gefunden', - 'settings.label' => 'Etikett', - 'settings.value' => 'Wert', - 'settings.edit' => 'Bearbeiten', - 'settings.view' => 'Ansicht', - 'options.none' => '- nicht festgelegt -', - 'options.google' => 'Google', - 'options.ddg' => 'DuckDuckGo', - 'options.bing' => 'Bing', - 'options.yes' => 'Ja', - 'options.no' => 'Nein', - 'buttons.save' => 'Speichern', - 'buttons.cancel' => 'Abbrechen', - 'buttons.add' => 'Hinzufügen', - 'buttons.upload' => 'Hochladen einer Datei', - 'dash.pin_item' => 'Element auf dem Dashboard anheften', - 'dash.no_apps' => 'Derzeit gibt es keine angeheftete Anwendungen :link1 oder :link2', - 'dash.link1' => 'Hinzufügen einer Anwendung hier', - 'dash.link2' => 'Heften Sie ein Element auf dem Armaturenbrett', - 'dash.pinned_items' => 'Angeheftete Elemente', - 'apps.app_list' => 'Anwendungsliste', - 'apps.view_trash' => 'Ansicht Papierkorb', - 'apps.add_application' => 'Anwendung hinzufügen', - 'apps.application_name' => 'Anwendungsname', - 'apps.colour' => 'Farbe', - 'apps.icon' => 'Symbol', - 'apps.pinned' => 'Festgesteckt', - 'apps.title' => 'Titel', - 'apps.hex' => 'Hex-Farbe', - 'apps.username' => 'Benutzername', - 'apps.password' => 'Passwort', - 'apps.config' => 'Konfig', - 'url' => 'Url', - 'title' => 'Titel', - 'delete' => 'Löschen', - 'optional' => 'Wahlweise', - 'restore' => 'Wiederherstellen', - 'alert.success.item_created' => 'Element erfolgreich erstellt', - 'alert.success.item_updated' => 'Artikel erfolgreich aktualisiert', - 'alert.success.item_deleted' => 'Element erfolgreich gelöscht', - 'alert.success.item_restored' => 'Element erfolgreich wiederhergestellt', - 'alert.success.setting_updated' => 'Sie haben diese Einstellung erfolgreich bearbeitet', - 'alert.error.not_exist' => 'Diese Einstellung existiert nicht.', -); \ No newline at end of file diff --git a/resources/lang/en/app.php b/resources/lang/en/app.php deleted file mode 100644 index 6abc3655..00000000 --- a/resources/lang/en/app.php +++ /dev/null @@ -1,80 +0,0 @@ - 'System', - 'settings.appearance' => 'Appearance', - 'settings.miscellaneous' => 'Miscellaneous', - - 'settings.version' => 'Version', - 'settings.background_image' => 'Background Image', - 'settings.homepage_search' => 'Homepage Search', - 'settings.search_provider' => 'Search Provider', - 'settings.language' => 'Language', - 'settings.reset' => 'Reset back to default', - 'settings.remove' => 'Remove', - 'settings.search' => 'search', - 'settings.no_items' => 'No items found', - - - 'settings.label' => 'Label', - 'settings.value' => 'Value', - 'settings.edit' => 'Edit', - 'settings.view' => 'View', - - 'options.none' => '- not set -', - 'options.google' => 'Google', - 'options.ddg' => 'DuckDuckGo', - 'options.bing' => 'Bing', - 'options.yes' => 'Yes', - 'options.no' => 'No', - - 'buttons.save' => 'Save', - 'buttons.cancel' => 'Cancel', - 'buttons.add' => 'Add', - 'buttons.upload' => 'Upload a file', - - 'dash.pin_item' => 'Pin item to dashboard', - 'dash.no_apps' => 'There are currently no pinned applications, :link1 or :link2', - 'dash.link1' => 'Add an application here', - 'dash.link2' => 'Pin an item to the dash', - 'dash.pinned_items' => 'Pinned Items', - - 'apps.app_list' => 'Application list', - 'apps.view_trash' => 'View trash', - 'apps.add_application' => 'Add application', - 'apps.application_name' => 'Application name', - 'apps.colour' => 'Colour', - 'apps.icon' => 'Icon', - 'apps.pinned' => 'Pinned', - 'apps.title' => 'Title', - 'apps.hex' => 'Hex colour', - 'apps.username' => 'Username', - 'apps.password' => 'Password', - 'apps.config' => 'Config', - 'apps.apikey' => 'Api Key', - 'apps.enable' => 'Enable', - - 'url' => 'Url', - 'title' => 'Title', - 'delete' => 'Delete', - 'optional' => 'Optional', - 'restore' => 'Restore', - - 'alert.success.item_created' => 'Item created successfully', - 'alert.success.item_updated' => 'Item updated successfully', - 'alert.success.item_deleted' => 'Item deleted successfully', - 'alert.success.item_restored' => 'Item restored successfully', - - 'alert.success.setting_updated' => 'You have successfully edited this Setting', - 'alert.error.not_exist' => 'This Setting does not exist.', - - -]; diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php deleted file mode 100644 index e5506df2..00000000 --- a/resources/lang/en/auth.php +++ /dev/null @@ -1,19 +0,0 @@ - 'These credentials do not match our records.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', - -]; diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php deleted file mode 100644 index d4814118..00000000 --- a/resources/lang/en/pagination.php +++ /dev/null @@ -1,19 +0,0 @@ - '« Previous', - 'next' => 'Next »', - -]; diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php deleted file mode 100644 index e5544d20..00000000 --- a/resources/lang/en/passwords.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Passwords must be at least six characters and match the confirmation.', - 'reset' => 'Your password has been reset!', - 'sent' => 'We have e-mailed your password reset link!', - 'token' => 'This password reset token is invalid.', - 'user' => "We can't find a user with that e-mail address.", - -]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php deleted file mode 100644 index edc036dd..00000000 --- a/resources/lang/en/validation.php +++ /dev/null @@ -1,121 +0,0 @@ - 'The :attribute must be accepted.', - 'active_url' => 'The :attribute is not a valid URL.', - 'after' => 'The :attribute must be a date after :date.', - 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', - 'alpha' => 'The :attribute may only contain letters.', - 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', - 'alpha_num' => 'The :attribute may only contain letters and numbers.', - 'array' => 'The :attribute must be an array.', - 'before' => 'The :attribute must be a date before :date.', - 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', - 'between' => [ - 'numeric' => 'The :attribute must be between :min and :max.', - 'file' => 'The :attribute must be between :min and :max kilobytes.', - 'string' => 'The :attribute must be between :min and :max characters.', - 'array' => 'The :attribute must have between :min and :max items.', - ], - 'boolean' => 'The :attribute field must be true or false.', - 'confirmed' => 'The :attribute confirmation does not match.', - 'date' => 'The :attribute is not a valid date.', - 'date_format' => 'The :attribute does not match the format :format.', - 'different' => 'The :attribute and :other must be different.', - 'digits' => 'The :attribute must be :digits digits.', - 'digits_between' => 'The :attribute must be between :min and :max digits.', - 'dimensions' => 'The :attribute has invalid image dimensions.', - 'distinct' => 'The :attribute field has a duplicate value.', - 'email' => 'The :attribute must be a valid email address.', - 'exists' => 'The selected :attribute is invalid.', - 'file' => 'The :attribute must be a file.', - 'filled' => 'The :attribute field must have a value.', - 'image' => 'The :attribute must be an image.', - 'in' => 'The selected :attribute is invalid.', - 'in_array' => 'The :attribute field does not exist in :other.', - 'integer' => 'The :attribute must be an integer.', - 'ip' => 'The :attribute must be a valid IP address.', - 'ipv4' => 'The :attribute must be a valid IPv4 address.', - 'ipv6' => 'The :attribute must be a valid IPv6 address.', - 'json' => 'The :attribute must be a valid JSON string.', - 'max' => [ - 'numeric' => 'The :attribute may not be greater than :max.', - 'file' => 'The :attribute may not be greater than :max kilobytes.', - 'string' => 'The :attribute may not be greater than :max characters.', - 'array' => 'The :attribute may not have more than :max items.', - ], - 'mimes' => 'The :attribute must be a file of type: :values.', - 'mimetypes' => 'The :attribute must be a file of type: :values.', - 'min' => [ - 'numeric' => 'The :attribute must be at least :min.', - 'file' => 'The :attribute must be at least :min kilobytes.', - 'string' => 'The :attribute must be at least :min characters.', - 'array' => 'The :attribute must have at least :min items.', - ], - 'not_in' => 'The selected :attribute is invalid.', - 'numeric' => 'The :attribute must be a number.', - 'present' => 'The :attribute field must be present.', - 'regex' => 'The :attribute format is invalid.', - 'required' => 'The :attribute field is required.', - 'required_if' => 'The :attribute field is required when :other is :value.', - 'required_unless' => 'The :attribute field is required unless :other is in :values.', - 'required_with' => 'The :attribute field is required when :values is present.', - 'required_with_all' => 'The :attribute field is required when :values is present.', - 'required_without' => 'The :attribute field is required when :values is not present.', - 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'same' => 'The :attribute and :other must match.', - 'size' => [ - 'numeric' => 'The :attribute must be :size.', - 'file' => 'The :attribute must be :size kilobytes.', - 'string' => 'The :attribute must be :size characters.', - 'array' => 'The :attribute must contain :size items.', - ], - 'string' => 'The :attribute must be a string.', - 'timezone' => 'The :attribute must be a valid zone.', - 'unique' => 'The :attribute has already been taken.', - 'uploaded' => 'The :attribute failed to upload.', - 'url' => 'The :attribute format is invalid.', - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => [ - 'attribute-name' => [ - 'rule-name' => 'custom-message', - ], - ], - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap attribute place-holders - | with something more reader friendly such as E-Mail Address instead - | of "email". This simply helps us make messages a little cleaner. - | - */ - - 'attributes' => [], - -]; diff --git a/resources/lang/es/app.php b/resources/lang/es/app.php deleted file mode 100644 index dd7c632a..00000000 --- a/resources/lang/es/app.php +++ /dev/null @@ -1,58 +0,0 @@ - 'Sistema', - 'settings.appearance' => 'Apariencia', - 'settings.miscellaneous' => 'Miscelánea', - 'settings.version' => 'Versión', - 'settings.background_image' => 'Imagen De Fondo', - 'settings.homepage_search' => 'Página De Inicio De Búsqueda', - 'settings.search_provider' => 'Proveedor de búsqueda', - 'settings.language' => 'Idioma', - 'settings.reset' => 'Restablecer a predeterminado', - 'settings.remove' => 'Quitar', - 'settings.search' => 'búsqueda', - 'settings.no_items' => 'No se encontraron elementos', - 'settings.label' => 'Etiqueta', - 'settings.value' => 'Valor', - 'settings.edit' => 'Editar', - 'settings.view' => 'Ver', - 'options.none' => '- no establecido -', - 'options.google' => 'Google', - 'options.ddg' => 'DuckDuckGo', - 'options.bing' => 'Bing', - 'options.yes' => 'Sí', - 'options.no' => 'No', - 'buttons.save' => 'Guardar', - 'buttons.cancel' => 'Cancelar', - 'buttons.add' => 'Añadir', - 'buttons.upload' => 'Cargar un archivo', - 'dash.pin_item' => 'Pin elemento al tablero', - 'dash.no_apps' => 'Actualmente no hay anclados aplicaciones :link1 o :link2', - 'dash.link1' => 'Agregue una aplicación aquí', - 'dash.link2' => 'Pin de un elemento en el tablero', - 'dash.pinned_items' => 'Elementos Anclados', - 'apps.app_list' => 'Lista de aplicaciones', - 'apps.view_trash' => 'Vista de la basura', - 'apps.add_application' => 'Agregar aplicación', - 'apps.application_name' => 'Nombre de la aplicación', - 'apps.colour' => 'Color', - 'apps.icon' => 'Icono', - 'apps.pinned' => 'Fijado', - 'apps.title' => 'Título', - 'apps.hex' => 'Hexagonal de color', - 'apps.username' => 'Nombre de usuario', - 'apps.password' => 'Contraseña', - 'apps.config' => 'Config', - 'url' => 'Url', - 'title' => 'Título', - 'delete' => 'Borrar', - 'optional' => 'Opcional', - 'restore' => 'Restaurar', - 'alert.success.item_created' => 'Elemento creado con éxito', - 'alert.success.item_updated' => 'Artículo actualizado con éxito', - 'alert.success.item_deleted' => 'Elemento eliminado correctamente', - 'alert.success.item_restored' => 'Elemento restaurado con éxito', - 'alert.success.setting_updated' => 'Ha editado con éxito esta configuración', - 'alert.error.not_exist' => 'Esta configuración no existe.', -); \ No newline at end of file diff --git a/resources/lang/fi/app.php b/resources/lang/fi/app.php deleted file mode 100644 index 478591e5..00000000 --- a/resources/lang/fi/app.php +++ /dev/null @@ -1,58 +0,0 @@ - 'Järjestelmä', - 'settings.appearance' => 'Ulkonäkö', - 'settings.miscellaneous' => 'Sekalainen', - 'settings.version' => 'Versio', - 'settings.background_image' => 'Tausta Kuva', - 'settings.homepage_search' => 'Kotisivu Haku', - 'settings.search_provider' => 'Hakupalvelu', - 'settings.language' => 'Kieli', - 'settings.reset' => 'Palauta takaisin default', - 'settings.remove' => 'Poista', - 'settings.search' => 'haku', - 'settings.no_items' => 'Kohteita ei löytynyt', - 'settings.label' => 'Etiketti', - 'settings.value' => 'Arvo', - 'settings.edit' => 'Muokkaa', - 'settings.view' => 'Näkymä', - 'options.none' => '- ole asetettu -', - 'options.google' => 'Google', - 'options.ddg' => 'DuckDuckGo', - 'options.bing' => 'Bing', - 'options.yes' => 'Kyllä', - 'options.no' => 'Ei', - 'buttons.save' => 'Tallenna', - 'buttons.cancel' => 'Peruuta', - 'buttons.add' => 'Lisää', - 'buttons.upload' => 'Lataa tiedosto', - 'dash.pin_item' => 'Kiinnitä kohde kojelautaan', - 'dash.no_apps' => 'Tällä hetkellä ei ole kiinnitettyjä sovelluksia :link1 tai :link2', - 'dash.link1' => 'Lisää sovellus tähän', - 'dash.link2' => 'Kiinnitä kohde kojelautaan', - 'dash.pinned_items' => 'Kiinnitetyt Kohteet', - 'apps.app_list' => 'Sovellus luettelosta', - 'apps.view_trash' => 'Näytä roskakori', - 'apps.add_application' => 'Lisää sovellus', - 'apps.application_name' => 'Sovelluksen nimi', - 'apps.colour' => 'Väri', - 'apps.icon' => 'Kuvake', - 'apps.pinned' => 'Puristuksiin', - 'apps.title' => 'Otsikko', - 'apps.hex' => 'Hex väri', - 'apps.username' => 'Käyttäjätunnus', - 'apps.password' => 'Salasana', - 'apps.config' => 'Config', - 'url' => 'Url', - 'title' => 'Otsikko', - 'delete' => 'Poistaa', - 'optional' => 'Valinnainen', - 'restore' => 'Palauttaa', - 'alert.success.item_created' => 'Tuote luotiin onnistuneesti', - 'alert.success.item_updated' => 'Kohde on päivitetty onnistuneesti', - 'alert.success.item_deleted' => 'Kohde poistettu onnistuneesti', - 'alert.success.item_restored' => 'Tuote palautettiin onnistuneesti', - 'alert.success.setting_updated' => 'Olet muokannut tätä asetusta', - 'alert.error.not_exist' => 'Tätä asetusta ei ole olemassa.', -); \ No newline at end of file diff --git a/resources/lang/fr/app.php b/resources/lang/fr/app.php deleted file mode 100644 index 639b24b3..00000000 --- a/resources/lang/fr/app.php +++ /dev/null @@ -1,58 +0,0 @@ - 'Système', - 'settings.appearance' => 'Apparence', - 'settings.miscellaneous' => 'Divers', - 'settings.version' => 'Version', - 'settings.background_image' => 'Image D\'Arrière-Plan', - 'settings.homepage_search' => 'La Page D\'Accueil De Recherche', - 'settings.search_provider' => 'Fournisseur de recherche', - 'settings.language' => 'Langue', - 'settings.reset' => 'Réinitialiser aux valeurs par défaut', - 'settings.remove' => 'Supprimer', - 'settings.search' => 'chercher', - 'settings.no_items' => 'Pas d\'articles trouvés', - 'settings.label' => 'Étiquette', - 'settings.value' => 'Valeur', - 'settings.edit' => 'Modifier', - 'settings.view' => 'Vue', - 'options.none' => '- non défini -', - 'options.google' => 'Google', - 'options.ddg' => 'DuckDuckGo', - 'options.bing' => 'Bing', - 'options.yes' => 'Oui', - 'options.no' => 'Non', - 'buttons.save' => 'Enregistrer', - 'buttons.cancel' => 'Annuler', - 'buttons.add' => 'Ajouter', - 'buttons.upload' => 'Télécharger un fichier', - 'dash.pin_item' => 'Épingler l\'élément au tableau de bord', - 'dash.no_apps' => 'Il n\'existe actuellement aucun épinglé applications :link1 ou :link2', - 'dash.link1' => 'Ajouter une application ici', - 'dash.link2' => 'Pin un élément au tableau de bord', - 'dash.pinned_items' => 'Éléments épinglés', - 'apps.app_list' => 'Liste des applications', - 'apps.view_trash' => 'Voir la corbeille', - 'apps.add_application' => 'Ajouter une application', - 'apps.application_name' => 'Nom de l\'application', - 'apps.colour' => 'Couleur', - 'apps.icon' => 'Icône', - 'apps.pinned' => 'Épinglé', - 'apps.title' => 'Titre', - 'apps.hex' => 'Hexadécimal de la couleur', - 'apps.username' => 'Nom d\'utilisateur', - 'apps.password' => 'Mot de passe', - 'apps.config' => 'Config', - 'url' => 'Url', - 'title' => 'Titre', - 'delete' => 'Effacer', - 'optional' => 'Optionnel', - 'restore' => 'Restaurer', - 'alert.success.item_created' => 'Élément créé avec succès', - 'alert.success.item_updated' => 'Article mis à jour avec succès', - 'alert.success.item_deleted' => 'Élément supprimé avec succès', - 'alert.success.item_restored' => 'Élément à restaurer avec succès', - 'alert.success.setting_updated' => 'Vous avez modifié ce paramètre avec succès', - 'alert.error.not_exist' => 'Ce paramètre n\'existe pas.', -); \ No newline at end of file diff --git a/resources/lang/sv/app.php b/resources/lang/sv/app.php deleted file mode 100644 index 44bfbc81..00000000 --- a/resources/lang/sv/app.php +++ /dev/null @@ -1,58 +0,0 @@ - 'Systemet', - 'settings.appearance' => 'Utseende', - 'settings.miscellaneous' => 'Övrigt', - 'settings.version' => 'Version', - 'settings.background_image' => 'Bakgrundsbild', - 'settings.homepage_search' => 'Startsida Sök', - 'settings.search_provider' => 'Sök Leverantör', - 'settings.language' => 'SprÃ¥k', - 'settings.reset' => 'Ã…terställ tillbaka till standard', - 'settings.remove' => 'Avlägsna', - 'settings.search' => 'sök', - 'settings.no_items' => 'Inga poster hittades', - 'settings.label' => 'Etikett', - 'settings.value' => 'Värde', - 'settings.edit' => 'Ändra', - 'settings.view' => 'Visa', - 'options.none' => '- inte sätta -', - 'options.google' => 'Google', - 'options.ddg' => 'DuckDuckGo', - 'options.bing' => 'Bing', - 'options.yes' => 'Ja', - 'options.no' => 'Nej', - 'buttons.save' => 'Spara', - 'buttons.cancel' => 'Avbryt', - 'buttons.add' => 'Lägg till', - 'buttons.upload' => 'Ladda upp en fil', - 'dash.pin_item' => 'Pin objekt till instrumentpanelen', - 'dash.no_apps' => 'Det finns för närvarande inga fästa applikationer, :link1 eller :link2', - 'dash.link1' => 'Lägg till en ansökan här', - 'dash.link2' => 'Pin-ett objekt till dash', - 'dash.pinned_items' => 'Fasta Objekt', - 'apps.app_list' => 'Applikationslista', - 'apps.view_trash' => 'Visa papperskorgen', - 'apps.add_application' => 'Lägg till applikation', - 'apps.application_name' => 'Ansökan namn', - 'apps.colour' => 'Färg', - 'apps.icon' => 'Ikonen', - 'apps.pinned' => 'NÃ¥las', - 'apps.title' => 'Titel', - 'apps.hex' => 'Hex-färg', - 'apps.username' => 'Användarnamn', - 'apps.password' => 'Lösenord', - 'apps.config' => 'Config', - 'url' => 'Url', - 'title' => 'Titel', - 'delete' => 'Radera', - 'optional' => 'Frivillig', - 'restore' => 'Ã…terställa', - 'alert.success.item_created' => 'Objekt som skapats', - 'alert.success.item_updated' => 'FöremÃ¥let uppdaterades framgÃ¥ngsrikt', - 'alert.success.item_deleted' => 'Objekt som har tagits bort', - 'alert.success.item_restored' => 'Artikeln Ã¥terställdes framgÃ¥ngsrikt', - 'alert.success.setting_updated' => 'Du har framgÃ¥ngsrikt redigerat denna inställning', - 'alert.error.not_exist' => 'Denna inställning existerar inte.', -); \ No newline at end of file diff --git a/resources/lang/tr/app.php b/resources/lang/tr/app.php deleted file mode 100644 index 671cd6db..00000000 --- a/resources/lang/tr/app.php +++ /dev/null @@ -1,78 +0,0 @@ - 'Sistem', - 'settings.appearance' => 'Görünüm', - 'settings.miscellaneous' => 'ÇeÅŸitli', - - 'settings.version' => 'Versiyon', - 'settings.background_image' => 'Arkaplan Resmi', - 'settings.homepage_search' => 'Anasayfa Arama', - 'settings.search_provider' => 'Arama Motoru', - 'settings.language' => 'Dil', - 'settings.reset' => 'Varsayılana Geri Dön', - 'settings.remove' => 'Sil', - 'settings.search' => 'ara', - 'settings.no_items' => 'Öğe bulunamadı', - - - 'settings.label' => 'Etiket', - 'settings.value' => 'DeÄŸer', - 'settings.edit' => 'Düzenle', - 'settings.view' => 'Görüntüle', - - 'options.none' => '- ayarlanmadı -', - 'options.google' => 'Google', - 'options.ddg' => 'DuckDuckGo', - 'options.bing' => 'Bing', - 'options.yes' => 'Evet', - 'options.no' => 'Hayır', - - 'buttons.save' => 'Kaydet', - 'buttons.cancel' => 'Ä°ptal', - 'buttons.add' => 'Ekle', - 'buttons.upload' => 'Dosya yükle', - - 'dash.pin_item' => 'Ana panele iÄŸnele', - 'dash.no_apps' => 'Ana panele iÄŸneli öğeler, :link1 or :link2', - 'dash.link1' => 'Yeni uygulama ekle', - 'dash.link2' => 'Ana panele iÄŸnele', - 'dash.pinned_items' => 'Ä°ÄŸnelenen öğeler', - - 'apps.app_list' => 'Uygulama listesi', - 'apps.view_trash' => 'Çöpü görüntüle', - 'apps.add_application' => 'Uygulama ekle', - 'apps.application_name' => 'Uygulama adı', - 'apps.colour' => 'Renk', - 'apps.icon' => 'Ä°kon', - 'apps.pinned' => 'Ä°ÄŸneli', - 'apps.title' => 'BaÅŸlık', - 'apps.hex' => 'Hex deÄŸeri', - 'apps.username' => 'Kullanıcı adı', - 'apps.password' => 'Åžifre', - 'apps.config' => 'Yapılandırma', - - 'url' => 'Adres', - 'title' => 'BaÅŸlık', - 'delete' => 'Sil', - 'optional' => 'Ä°steÄŸe baÄŸlı', - 'restore' => 'Eski haline getir', - - 'alert.success.item_created' => 'Öğe yaratıldı', - 'alert.success.item_updated' => 'Öğe güncellendi', - 'alert.success.item_deleted' => 'Öğe silindi', - 'alert.success.item_restored' => 'Öğe eski haline getirildi', - - 'alert.success.setting_updated' => 'Ayarlama kaydedildi', - 'alert.error.not_exist' => 'Böyle bir seçenek yok.', - - -]; diff --git a/resources/lang/tr/auth.php b/resources/lang/tr/auth.php deleted file mode 100644 index e2043f85..00000000 --- a/resources/lang/tr/auth.php +++ /dev/null @@ -1,19 +0,0 @@ - 'Kimlik bilgileri doÄŸru deÄŸil.', - 'throttle' => 'Çok fazla giriÅŸim. :seconds saniye sonra tekrar deneyin.', - -]; diff --git a/resources/lang/tr/pagination.php b/resources/lang/tr/pagination.php deleted file mode 100644 index f8dc740f..00000000 --- a/resources/lang/tr/pagination.php +++ /dev/null @@ -1,19 +0,0 @@ - '« Önceki', - 'next' => 'Sonraki »', - -]; diff --git a/resources/lang/tr/passwords.php b/resources/lang/tr/passwords.php deleted file mode 100644 index 5b3314d7..00000000 --- a/resources/lang/tr/passwords.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Åžifre en az altı karakter olmalı ve onaylamasına uymalıdır.', - 'reset' => 'Åžifreniz sıfırlandı!', - 'sent' => 'Åžifre sıfırlama baÄŸlantısı eposta adresinize yollandı!', - 'token' => 'Åžifre sıfırlama simgesi geçerli deÄŸil.', - 'user' => "Adresle iliÅŸkili kullanıcı adı bulunamadı.", - -]; diff --git a/resources/lang/tr/validation.php b/resources/lang/tr/validation.php deleted file mode 100644 index 02a9d887..00000000 --- a/resources/lang/tr/validation.php +++ /dev/null @@ -1,121 +0,0 @@ - ':attribute kabul edilmelidir.', - 'active_url' => ':attribute geçerli bir adres deÄŸil.', - 'after' => ':attribute :date tarihinden sonra olmalıdır.', - 'after_or_equal' => ':attribute :date ile aynı veya daha sonra tarihte olmalıdır.', - 'alpha' => ':attribute sadece harf içerebilir.', - 'alpha_dash' => ':attribute sadece harf, rakam, veya tire içerebilir.', - 'alpha_num' => ':attribute sadece harf ve rakam içerebilir.', - 'array' => ':attribute dizi olmalıdır.', - 'before' => ':attribute :date tarihinden önce olmalıdır.', - 'before_or_equal' => ':attribute :date ile aynı ya da daha önce tarihte olmalıdır.', - 'between' => [ - 'numeric' => ':attribute :min ile :max arasında olmalıdır.', - 'file' => ':attribute :min ile :max kilobayt arasında olmalıdır.', - 'string' => ':attribute :min ile :max arasında karakter içermelidir.', - 'array' => ':attribute :min ile :max arasi öğe içermelidir.', - ], - 'boolean' => ':attribute alanı doÄŸru ya da yanlış olmalıdır.', - 'confirmed' => ':attribute onaylamasına uymuyor.', - 'date' => ':attribute geçerli bir tarih deÄŸil.', - 'date_format' => ':attribute :format düzenine uymuyor.', - 'different' => ':attribute ve :other farklı olmalı.', - 'digits' => ':attribute :digits haneli olmalıdır.', - 'digits_between' => ':attribute :min ile :max arası haneli olmalıdır.', - 'dimensions' => ':attribute resim boyutları geçersiz.', - 'distinct' => ':attribute alan deÄŸeri zaten mevcut.', - 'email' => ':attribute geçerli bir eposta adresi olmalıdır.', - 'exists' => 'Seçili :attribute geçersiz.', - 'file' => ':attribute dosya olmalıdır.', - 'filled' => ':attribute alanı deÄŸer içermelidir.', - 'image' => ':attribute resim olmalıdır.', - 'in' => 'Seçili :attribute geçersiz.', - 'in_array' => ':attribute :other içinde bulunmalıdır.', - 'integer' => ':attribute tamsayı olmalıdır.', - 'ip' => ':attribute geçerli IP adresi olmalıdır.', - 'ipv4' => ':attribute geçerli IPv4 adresi olmalıdır.', - 'ipv6' => ':attribute geçerli IPv6 adresi olmalıdır.', - 'json' => ':attribute geçerli JSON dizesi olmalıdır.', - 'max' => [ - 'numeric' => ':attribute :max sayısından küçük olmalıdır.', - 'file' => ':attribute :max kilobayttan küçük olmalıdır.', - 'string' => ':attribute :max haneden az olmalıdır.', - 'array' => ':attribute :max öğeden az içermelidir.', - ], - 'mimes' => 'Geçerli :attribute dosya tipi: :values.', - 'mimetypes' => 'Geçerli :attribute dosya tipi: :values.', - 'min' => [ - 'numeric' => ':attribute en az :min olmalıdır.', - 'file' => ':attribute en az :min kilobayt olmalıdır.', - 'string' => ':attribute en az :min haneli olmalıdır.', - 'array' => ':attribute en az :min öğe içermelidir.', - ], - 'not_in' => 'Seçili :attribute geçersiz.', - 'numeric' => ':attribute sayı olmalıdır.', - 'present' => ':attribute alanı dolu olmalı.', - 'regex' => ':attribute düzeni geçersiz.', - 'required' => ':attribute alanı gereklidir.', - 'required_if' => ':other :value ise :attribute alanı gereklidir.', - 'required_unless' => ':other :values içinde deÄŸilse :attribute alanı gereklidir.', - 'required_with' => ':values dolu ise :attribute alanı gereklidir.', - 'required_with_all' => ':values dolu ise :attribute alanı gereklidir.', - 'required_without' => ':values boÅŸ ise :attribute alanı gereklidir.', - 'required_without_all' => ':values deÄŸerlerinin tamamı boÅŸ ise :attribute alanı gereklidir.', - 'same' => ':attribute ve :other aynı olmalı.', - 'size' => [ - 'numeric' => ':attribute :size olmalıdır.', - 'file' => ':attribute :size kilobayt olmalıdır.', - 'string' => ':attribute :size haneli olmalıdır.', - 'array' => ':attribute :size öğe içermelidir.', - ], - 'string' => ':attribute dize olmalıdır.', - 'timezone' => ':attribute geçerli bir zaman dilimi olmalıdır.', - 'unique' => ':attribute zaten kullanımda.', - 'uploaded' => ':attribute yüklenemedi.', - 'url' => ':attribute düzeni geçersiz.', - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => [ - 'attribute-name' => [ - 'rule-name' => 'custom-message', - ], - ], - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap attribute place-holders - | with something more reader friendly such as E-Mail Address instead - | of "email". This simply helps us make messages a little cleaner. - | - */ - - 'attributes' => [], - -]; diff --git a/resources/views/add.blade.php b/resources/views/add.blade.php deleted file mode 100644 index ce3e2764..00000000 --- a/resources/views/add.blade.php +++ /dev/null @@ -1,4 +0,0 @@ - -
- {{ __('app.dash.pin_item') }} -
diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php deleted file mode 100644 index 6abca5bd..00000000 --- a/resources/views/app.blade.php +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - {{ config('app.name') }} - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
- @if ($message = Session::get('success')) -
-
-

{{ $message }}

-
-
- @endif - @if (count($errors) > 0) -
-
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-
- @endif - - @yield('content') -
- @if(Route::is('dash')) - - @endif - - - - -
-
- -
-
- - - - - @yield('scripts') - - - diff --git a/resources/views/item.blade.php b/resources/views/item.blade.php deleted file mode 100644 index a245af23..00000000 --- a/resources/views/item.blade.php +++ /dev/null @@ -1,18 +0,0 @@ -
-
- @if($app->icon) - - @else - - @endif -
-
{{ $app->title }}
- @if(isset($app->config->enabled) && ((bool)$app->config->enabled === true)) -
- @endif -
- -
- - -
diff --git a/resources/views/items/create.blade.php b/resources/views/items/create.blade.php deleted file mode 100644 index 88886f2f..00000000 --- a/resources/views/items/create.blade.php +++ /dev/null @@ -1,12 +0,0 @@ -@extends('app') - -@section('content') - - {!! Form::open(array('route' => 'items.store', 'id' => 'itemform', 'files' => true, 'method'=>'POST')) !!} - @include('items.form') - {!! Form::close() !!} - -@endsection -@section('scripts') - @include('items.scripts') -@endsection \ No newline at end of file diff --git a/resources/views/items/edit.blade.php b/resources/views/items/edit.blade.php deleted file mode 100644 index ce7f54e1..00000000 --- a/resources/views/items/edit.blade.php +++ /dev/null @@ -1,12 +0,0 @@ -@extends('app') - -@section('content') - - {!! Form::model($item, ['method' => 'PATCH', 'id' => 'itemform', 'files' => true, 'route' => ['items.update', $item->id]]) !!} - @include('items.form') - {!! Form::close() !!} - -@endsection -@section('scripts') - @include('items.scripts') -@endsection \ No newline at end of file diff --git a/resources/views/items/form.blade.php b/resources/views/items/form.blade.php deleted file mode 100644 index 8110c93b..00000000 --- a/resources/views/items/form.blade.php +++ /dev/null @@ -1,76 +0,0 @@ -
-
-
{{ __('app.apps.add_application') }}
-
- - {{ __('app.buttons.cancel') }} -
-
-
- {!! csrf_field() !!} - -
- - {!! Form::text('title', null, array('placeholder' => __('app.apps.title'), 'id' => 'appname', 'class' => 'form-control')) !!} -
- - {!! Form::text('url', null, array('placeholder' => __('app.url'), 'id' => 'appurl', 'class' => 'form-control')) !!} -
-
- - {!! Form::text('colour', null, array('placeholder' => __('app.apps.hex'),'class' => 'form-control color-picker')) !!} -
- - {!! Form::hidden('pinned', '0') !!} - -
-
- -
-
- @if(isset($item->icon) && !empty($item->icon) || old('icon')) - icon)) $icon = $item->icon; - else $icon = old('icon'); - ?> - - {!! Form::hidden('icon', $icon, ['class' => 'form-control']) !!} - @endif -
-
- - -
-
-
- - @if(isset($item) && isset($item->config->view)) -
- @if(isset($item)) - @include('supportedapps.'.$item->config->view) - @endif -
- @else -
- @endif - -
- - -
- - diff --git a/resources/views/items/list.blade.php b/resources/views/items/list.blade.php deleted file mode 100644 index 0f43485d..00000000 --- a/resources/views/items/list.blade.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('app') - -@section('content') -
-
-
- {{ __('app.apps.app_list') }} - @if( isset($trash) && $trash->count() > 0 ) - {{ __('app.apps.view_trash') }} ({{ $trash->count() }}) - @endif - -
- -
- - - - - - - - - - - - @if($apps->first()) - @foreach($apps as $app) - - - - - - - @endforeach - @else - - - - @endif - - - -
{{ __('app.title') }}{{ __('app.url') }}{{ __('app.settings.edit') }}{{ __('app.delete') }}
{{ $app->title }}{{ $app->url }} - {!! Form::open(['method' => 'DELETE','route' => ['items.destroy', $app->id],'style'=>'display:inline']) !!} - - {!! Form::close() !!} -
- {{ __('app.settings.no_items') }} -
-
- - -@endsection \ No newline at end of file diff --git a/resources/views/items/scripts.blade.php b/resources/views/items/scripts.blade.php deleted file mode 100644 index f8e92d45..00000000 --- a/resources/views/items/scripts.blade.php +++ /dev/null @@ -1,34 +0,0 @@ - \ No newline at end of file diff --git a/resources/views/items/trash.blade.php b/resources/views/items/trash.blade.php deleted file mode 100644 index d500361b..00000000 --- a/resources/views/items/trash.blade.php +++ /dev/null @@ -1,52 +0,0 @@ -@extends('app') - -@section('content') -
-
-
- Showing Deleted Applications -
- -
- - - - - - - - - - - - @if($trash->first()) - @foreach($trash as $app) - - - - - - - @endforeach - @else - - - - @endif - - - -
{{ __('app.title') }}Url{{ __('app.restore') }}{{ __('app.delete') }}
{{ $app->title }}{{ __('app.url') }} - {!! Form::open(['method' => 'DELETE','route' => ['items.destroy', $app->id],'style'=>'display:inline']) !!} - - - {!! Form::close() !!} -
- {{ __('app.settings.no_items') }} -
-
- - -@endsection \ No newline at end of file diff --git a/resources/views/partials/search.blade.php b/resources/views/partials/search.blade.php deleted file mode 100644 index 3df5d38f..00000000 --- a/resources/views/partials/search.blade.php +++ /dev/null @@ -1 +0,0 @@ -{!! App\Setting::search() !!} diff --git a/resources/views/settings/edit.blade.php b/resources/views/settings/edit.blade.php deleted file mode 100644 index 66289441..00000000 --- a/resources/views/settings/edit.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('app') - -@section('content') - - {!! Form::model($setting, ['method' => 'PATCH', 'files' => true, 'route' => ['settings.edit', $setting->id]]) !!} - @include('settings.form') - {!! Form::close() !!} - -@endsection \ No newline at end of file diff --git a/resources/views/settings/form.blade.php b/resources/views/settings/form.blade.php deleted file mode 100644 index 44d993a8..00000000 --- a/resources/views/settings/form.blade.php +++ /dev/null @@ -1,30 +0,0 @@ -
-
-
{{ __($setting->label) }}
-
- - {{ __('app.buttons.cancel') }} -
-
-
- {!! csrf_field() !!} - - -
- {!! $setting->edit_value !!} -
- - -
- - -
diff --git a/resources/views/settings/list.blade.php b/resources/views/settings/list.blade.php deleted file mode 100644 index 07714351..00000000 --- a/resources/views/settings/list.blade.php +++ /dev/null @@ -1,52 +0,0 @@ -@extends('app') - -@section('content') - - @foreach ($groups as $group) -
-
-
- {{ __($group->title) }} - -
-
- - - - - - - - - - - @if (count($group->settings) > 0) - @foreach ($group->settings as $setting) - - - - - - @endforeach - @else - - - - - @endif - - - -
{{ __('app.settings.label') }}{{ __('app.settings.value') }}{{ __('app.settings.edit') }}
{{ __($setting->label) }} - {!! $setting->list_value !!} - - @if((bool)$setting->system !== true) - - @endif -
- {{ __('app.settings.no_items') }} -
-
- @endforeach - -@endsection \ No newline at end of file diff --git a/resources/views/sortable.blade.php b/resources/views/sortable.blade.php deleted file mode 100644 index a69cfa6c..00000000 --- a/resources/views/sortable.blade.php +++ /dev/null @@ -1,6 +0,0 @@ -
- @foreach($apps as $app) - @include('item') - @endforeach - @include('add') -
diff --git a/resources/views/supportedapps/nzbget.blade.php b/resources/views/supportedapps/nzbget.blade.php deleted file mode 100644 index e3c72652..00000000 --- a/resources/views/supportedapps/nzbget.blade.php +++ /dev/null @@ -1,15 +0,0 @@ -

{{ __('app.apps.config') }} ({{ __('app.optional') }})

-
- -
- - {!! Form::text('config[username]', null, array('placeholder' => __('app.apps.username'), 'data-config' => 'username', 'class' => 'form-control config-item')) !!} -
-
- - {!! Form::text('config[password]', null, array('placeholder' => __('app.apps.password'), 'data-config' => 'password', 'class' => 'form-control config-item')) !!} -
-
- -
-
\ No newline at end of file diff --git a/resources/views/supportedapps/pihole.blade.php b/resources/views/supportedapps/pihole.blade.php deleted file mode 100644 index 23323569..00000000 --- a/resources/views/supportedapps/pihole.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -

{{ __('app.apps.config') }} ({{ __('app.optional') }})

-
- - -
- - {!! Form::hidden('config[enabled]', '0') !!} - -
-
- -
-
\ No newline at end of file diff --git a/resources/views/supportedapps/sabnzbd.blade.php b/resources/views/supportedapps/sabnzbd.blade.php deleted file mode 100644 index fdfd2697..00000000 --- a/resources/views/supportedapps/sabnzbd.blade.php +++ /dev/null @@ -1,11 +0,0 @@ -

{{ __('app.apps.config') }} ({{ __('app.optional') }})

-
- -
- - {!! Form::text('config[apikey]', null, array('placeholder' => __('app.apps.apikey'), 'data-config' => 'apikey', 'class' => 'form-control config-item')) !!} -
-
- -
-
\ No newline at end of file diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php deleted file mode 100644 index f884c446..00000000 --- a/resources/views/welcome.blade.php +++ /dev/null @@ -1,25 +0,0 @@ -@extends('app') - -@section('content') - @include('partials.search') - - @if($apps->first()) - @include('sortable') - @else -
-
-

{!! __('app.dash.no_apps', - [ - 'link1' => ''.__('app.dash.link1').'', - 'link2' => ''.__('app.dash.link2').'' - ]) !!}

-
- -
-
- @include('add') -
- @endif - - -@endsection \ No newline at end of file diff --git a/routes/api.php b/routes/api.php deleted file mode 100644 index 0f37e006..00000000 --- a/routes/api.php +++ /dev/null @@ -1,15 +0,0 @@ -id === (int) $id; -});*/ diff --git a/routes/console.php b/routes/console.php deleted file mode 100644 index cf9f69d7..00000000 --- a/routes/console.php +++ /dev/null @@ -1,18 +0,0 @@ -comment(Inspiring::quote()); -})->describe('Display an inspiring quote');*/ diff --git a/routes/web.php b/routes/web.php deleted file mode 100644 index 7986a920..00000000 --- a/routes/web.php +++ /dev/null @@ -1,51 +0,0 @@ -name('dash'); - -Route::resources([ - 'items' => 'ItemController', -]); -Route::get('items/pin/{id}', 'ItemController@pin')->name('items.pin'); -Route::get('items/restore/{id}', 'ItemController@restore')->name('items.restore'); -Route::get('items/unpin/{id}', 'ItemController@unpin')->name('items.unpin'); -Route::get('items/pintoggle/{id}/{ajax?}', 'ItemController@pinToggle')->name('items.pintoggle'); -Route::post('order', 'ItemController@setOrder')->name('items.order'); - -Route::post('appload', 'ItemController@appload')->name('appload'); -Route::post('test_config', 'ItemController@testConfig')->name('test_config'); -Route::get('/get_stats/{id}', 'ItemController@getStats')->name('get_stats'); - -Route::get('view/{name_view}', function ($name_view) { - return view('supportedapps.'.$name_view); -}); - -/** - * Settings. - */ -Route::group([ - 'as' => 'settings.', - 'prefix' => 'settings', -], function () { - - Route::get('/', 'SettingsController@index') - ->name('index'); - Route::get('edit/{id}', 'SettingsController@edit') - ->name('edit'); - Route::get('clear/{id}', 'SettingsController@clear') - ->name('clear'); - - - Route::patch('edit/{id}', 'SettingsController@update'); - -}); \ No newline at end of file diff --git a/server.php b/server.php deleted file mode 100644 index 5fb6379e..00000000 --- a/server.php +++ /dev/null @@ -1,21 +0,0 @@ - - */ - -$uri = urldecode( - parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) -); - -// This file allows us to emulate Apache's "mod_rewrite" functionality from the -// built-in PHP web server. This provides a convenient way to test a Laravel -// application without having installed a "real" web server software here. -if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { - return false; -} - -require_once __DIR__.'/public/index.php'; diff --git a/storage/app/.gitignore b/storage/app/.gitignore deleted file mode 100644 index e69de29b..00000000 diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore deleted file mode 100644 index 7463801d..00000000 --- a/storage/app/public/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -backgrounds/ -icons/ diff --git a/storage/app/public/supportedapps/duplicati.png b/storage/app/public/supportedapps/duplicati.png deleted file mode 100644 index caa094de6519926a27808d4ad2d436e69d85787e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2615 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 I|4zO2U%KB&g8%>k diff --git a/storage/app/public/supportedapps/nextcloud.png b/storage/app/public/supportedapps/nextcloud.png deleted file mode 100644 index 83a333ce3c3e42bd1c05a796454617400dc2e547..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40577 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 F`G4^Wzcc^< diff --git a/storage/app/public/supportedapps/pfsense.png b/storage/app/public/supportedapps/pfsense.png deleted file mode 100644 index 0c6611dc38606827a7890d5b6762329878464b57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4695 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 diff --git a/storage/app/public/supportedapps/plex.png b/storage/app/public/supportedapps/plex.png deleted file mode 100644 index 3277ab1e7d29bdee342a11a8b0a5a9bfd9b2b35f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11864 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 IB$h_)Yg(n6XkJCAEtc47-(oGbw~C^6 z)mmLA#F%eT=%|t@BIsJ=5x;Xmosy|^PM>}CmsPe<>Qv(=HTGqGdF|U z9P8fSb%yh}_o&wh97{IB($3^quhNeG-*B?-=sb1?!P&rVISkrf^P589{j9yE9U591 zbQ3(f)ogQ_Q&?>Nv=-0%^9P8KHbhHm?tYww#2o9u$kfwx;|-! zKOb&1iO?wz;x4x(R3ZrC;}1G9Iyqr83nsbOD_bvd9&w|ja0B>$MBgjFm1y_D`e9eD zF@h^?&}mP(X;!#r3=}+uZX0G^8qPCz+NI`w4qET}@`_0@-IXx`xaK;P7_B8GqV%TQ z@K1{QfVumSrlCQ3s1V3mys=>b3A{|xtimZdd>Yon?x(*8FPMj92l1%jRlZfs_95@dl%t(yy9k z9{?Zm|I{5!XR1Tf=)YyO2EOSF2tw}ahTb;-={OfDngmm$PYXU z(4mb;AiVe?MF*^k{jjZ5b4voOEGlbb?d zQKjAcQKmc;Yao4ffAQdt#`-}ml+sz(RDS9^2y;k}PZR&*oY)F&O%@#Qa?Zq`>pl)= z3G^nW#e8Gj3UyeC2h?_IKXub*1*W|q*)Pp^6RO{t&+B`rn z_CpzGWq+P#iFW2pm_qsLDtNJ6KEWR6YZpykf@C^1TuO1UN*wGy`0xH-?l*21voyI6 z6YOJiAIiIsFL;W%N|IXFpo9STiBb{zP0;)HZ?69vhY}ds$#xM>zTO18zNh#+%jIZQ zyeUDgccFh6!6pA=@z`aTG~M{kS5ZfC$|Odl+*aow2qS+V11Oi02+ z3d1t=+ZCd?)hpW3>PWiAtjnijle$d0B-hHj+yE0nqwR~9)^dGz-8fXFAPnr%&Ie(2 z`_n)0N15dqM1WPNC>o^3998`oaGF0|5i0rX7ue>g94tryMF3!_f#sWWkCjmbZmfJ8 zMUv;xa@0nz45 zFeTB^)w_d1Q2J!?eY0%Y#k1sU#!EJp>e{8mbi9>>K?}pO1Inrb+Wpz|0(J{ZvjE&U z^7YO6gm?nK3y<`gWLTn)MWvQ(zBe(_ROzvZCg<{~=_6e#MlJR7Y~mKFr91;|Xfe@m z$({(!XnJnDyl|K8Q|>Fp#tm(~-eU1}Y$VrwPBLshr}Hh)QblLECA{kBfG(5tCf*cMeA zA|;IU@1{N9Wx*yg6!Z)(+o?Te*R$g^f_p8 z<714Br#_}S)Faz-@g$@y+Bypg&VRRr09hhhgfc`zW50dTW6T&JBKff;B_{z`g!x`{ zKi~cXdNbJ+m0_@?R#>a(vW%IoDG|PA|DqH(UorGc6@aKe2(+#q#|IGaKC2FVE~MO0 z8#X@zLB?nHK1C;y(N4of)q zAC@;5ncFQW4r8qk9_EdwCb@37u@WPzyO zvf#)-AE&X*Vv9WS4yQywsNW@h&Uv)njTZKl*KAE~4szepVBCU9uoZ|+fl0Zpt0y8r+H diff --git a/storage/app/public/supportedapps/sabnzbd.png b/storage/app/public/supportedapps/sabnzbd.png deleted file mode 100644 index acf3d27466010814591ce284c7d4e6263ee1c0ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3852 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 diff --git a/storage/app/public/supportedapps/unifi.png b/storage/app/public/supportedapps/unifi.png deleted file mode 100644 index 7eaa608b406a245f200d3ab31966d6e59ea67561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3601 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 Jd8^?Z|9|Tbz0Cjs diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore deleted file mode 100644 index b02b700f..00000000 --- a/storage/framework/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -config.php -routes.php -schedule-* -compiled.php -services.json -events.scanned.php -routes.scanned.php -down diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/storage/framework/cache/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/storage/framework/sessions/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/storage/framework/testing/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/storage/framework/views/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/storage/logs/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php deleted file mode 100644 index df7814bb..00000000 --- a/tests/CreatesApplication.php +++ /dev/null @@ -1,25 +0,0 @@ -make(Kernel::class)->bootstrap(); - - Hash::setRounds(4); - - return $app; - } -} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php deleted file mode 100644 index f31e495c..00000000 --- a/tests/Feature/ExampleTest.php +++ /dev/null @@ -1,21 +0,0 @@ -get('/'); - - $response->assertStatus(200); - } -} diff --git a/tests/TestCase.php b/tests/TestCase.php deleted file mode 100644 index 2932d4a6..00000000 --- a/tests/TestCase.php +++ /dev/null @@ -1,10 +0,0 @@ -assertTrue(true); - } -} diff --git a/vendor/autoload.php b/vendor/autoload.php deleted file mode 100644 index 919c15b6..00000000 --- a/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath.'\\'; - if (isset($this->prefixDirsPsr4[$search])) { - foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE deleted file mode 100644 index f27399a0..00000000 --- a/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php deleted file mode 100644 index 4567b8fb..00000000 --- a/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,3420 +0,0 @@ - $baseDir . '/app/Console/Kernel.php', - 'App\\Exceptions\\Handler' => $baseDir . '/app/Exceptions/Handler.php', - 'App\\Http\\Controllers\\Auth\\ForgotPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ForgotPasswordController.php', - 'App\\Http\\Controllers\\Auth\\LoginController' => $baseDir . '/app/Http/Controllers/Auth/LoginController.php', - 'App\\Http\\Controllers\\Auth\\RegisterController' => $baseDir . '/app/Http/Controllers/Auth/RegisterController.php', - 'App\\Http\\Controllers\\Auth\\ResetPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ResetPasswordController.php', - 'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php', - 'App\\Http\\Controllers\\ItemController' => $baseDir . '/app/Http/Controllers/ItemController.php', - 'App\\Http\\Controllers\\SettingsController' => $baseDir . '/app/Http/Controllers/SettingsController.php', - 'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php', - 'App\\Http\\Middleware\\EncryptCookies' => $baseDir . '/app/Http/Middleware/EncryptCookies.php', - 'App\\Http\\Middleware\\RedirectIfAuthenticated' => $baseDir . '/app/Http/Middleware/RedirectIfAuthenticated.php', - 'App\\Http\\Middleware\\TrimStrings' => $baseDir . '/app/Http/Middleware/TrimStrings.php', - 'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php', - 'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php', - 'App\\Item' => $baseDir . '/app/Item.php', - 'App\\Providers\\AppServiceProvider' => $baseDir . '/app/Providers/AppServiceProvider.php', - 'App\\Providers\\AuthServiceProvider' => $baseDir . '/app/Providers/AuthServiceProvider.php', - 'App\\Providers\\BroadcastServiceProvider' => $baseDir . '/app/Providers/BroadcastServiceProvider.php', - 'App\\Providers\\EventServiceProvider' => $baseDir . '/app/Providers/EventServiceProvider.php', - 'App\\Providers\\RouteServiceProvider' => $baseDir . '/app/Providers/RouteServiceProvider.php', - 'App\\Setting' => $baseDir . '/app/Setting.php', - 'App\\SettingGroup' => $baseDir . '/app/SettingGroup.php', - 'App\\SupportedApps\\Contracts\\Applications' => $baseDir . '/app/SupportedApps/Contracts/Applications.php', - 'App\\SupportedApps\\Contracts\\Livestats' => $baseDir . '/app/SupportedApps/Contracts/Livestats.php', - 'App\\SupportedApps\\Duplicati' => $baseDir . '/app/SupportedApps/Duplicati.php', - 'App\\SupportedApps\\Emby' => $baseDir . '/app/SupportedApps/Emby.php', - 'App\\SupportedApps\\Nzbget' => $baseDir . '/app/SupportedApps/Nzbget.php', - 'App\\SupportedApps\\Pfsense' => $baseDir . '/app/SupportedApps/Pfsense.php', - 'App\\SupportedApps\\Pihole' => $baseDir . '/app/SupportedApps/Pihole.php', - 'App\\SupportedApps\\Plex' => $baseDir . '/app/SupportedApps/Plex.php', - 'App\\SupportedApps\\Portainer' => $baseDir . '/app/SupportedApps/Portainer.php', - 'App\\SupportedApps\\Unifi' => $baseDir . '/app/SupportedApps/Unifi.php', - 'App\\User' => $baseDir . '/app/User.php', - 'ArithmeticError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php', - 'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php', - 'Carbon\\Carbon' => $vendorDir . '/nesbot/carbon/src/Carbon/Carbon.php', - 'Carbon\\CarbonInterval' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonInterval.php', - 'Carbon\\Exceptions\\InvalidDateException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php', - 'Collective\\Html\\Componentable' => $vendorDir . '/laravelcollective/html/src/Componentable.php', - 'Collective\\Html\\Eloquent\\FormAccessible' => $vendorDir . '/laravelcollective/html/src/Eloquent/FormAccessible.php', - 'Collective\\Html\\FormBuilder' => $vendorDir . '/laravelcollective/html/src/FormBuilder.php', - 'Collective\\Html\\FormFacade' => $vendorDir . '/laravelcollective/html/src/FormFacade.php', - 'Collective\\Html\\HtmlBuilder' => $vendorDir . '/laravelcollective/html/src/HtmlBuilder.php', - 'Collective\\Html\\HtmlFacade' => $vendorDir . '/laravelcollective/html/src/HtmlFacade.php', - 'Collective\\Html\\HtmlServiceProvider' => $vendorDir . '/laravelcollective/html/src/HtmlServiceProvider.php', - 'Cron\\AbstractField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/AbstractField.php', - 'Cron\\CronExpression' => $vendorDir . '/mtdowling/cron-expression/src/Cron/CronExpression.php', - 'Cron\\DayOfMonthField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/DayOfMonthField.php', - 'Cron\\DayOfWeekField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/DayOfWeekField.php', - 'Cron\\FieldFactory' => $vendorDir . '/mtdowling/cron-expression/src/Cron/FieldFactory.php', - 'Cron\\FieldInterface' => $vendorDir . '/mtdowling/cron-expression/src/Cron/FieldInterface.php', - 'Cron\\HoursField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/HoursField.php', - 'Cron\\MinutesField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/MinutesField.php', - 'Cron\\MonthField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/MonthField.php', - 'Cron\\YearField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/YearField.php', - 'DatabaseSeeder' => $baseDir . '/database/seeds/DatabaseSeeder.php', - 'DeepCopy\\DeepCopy' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php', - 'DeepCopy\\Exception\\CloneException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php', - 'DeepCopy\\Exception\\PropertyException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php', - 'DeepCopy\\Filter\\Filter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php', - 'DeepCopy\\Filter\\KeepFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php', - 'DeepCopy\\Filter\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php', - 'DeepCopy\\Filter\\SetNullFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php', - 'DeepCopy\\Matcher\\Doctrine\\DoctrineProxyMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php', - 'DeepCopy\\Matcher\\Matcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php', - 'DeepCopy\\Matcher\\PropertyMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php', - 'DeepCopy\\Matcher\\PropertyNameMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php', - 'DeepCopy\\Matcher\\PropertyTypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php', - 'DeepCopy\\Reflection\\ReflectionHelper' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php', - 'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php', - 'DeepCopy\\TypeFilter\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php', - 'DeepCopy\\TypeFilter\\ShallowCopyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php', - 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedList' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php', - 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php', - 'DeepCopy\\TypeFilter\\TypeFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php', - 'DeepCopy\\TypeMatcher\\TypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php', - 'DivisionByZeroError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php', - 'Doctrine\\Common\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php', - 'Doctrine\\Common\\Lexer\\AbstractLexer' => $vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php', - 'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php', - 'Doctrine\\Instantiator\\Exception\\InvalidArgumentException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php', - 'Doctrine\\Instantiator\\Exception\\UnexpectedValueException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php', - 'Doctrine\\Instantiator\\Instantiator' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php', - 'Doctrine\\Instantiator\\InstantiatorInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php', - 'Dotenv\\Dotenv' => $vendorDir . '/vlucas/phpdotenv/src/Dotenv.php', - 'Dotenv\\Exception\\ExceptionInterface' => $vendorDir . '/vlucas/phpdotenv/src/Exception/ExceptionInterface.php', - 'Dotenv\\Exception\\InvalidCallbackException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/InvalidCallbackException.php', - 'Dotenv\\Exception\\InvalidFileException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/InvalidFileException.php', - 'Dotenv\\Exception\\InvalidPathException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/InvalidPathException.php', - 'Dotenv\\Exception\\ValidationException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/ValidationException.php', - 'Dotenv\\Loader' => $vendorDir . '/vlucas/phpdotenv/src/Loader.php', - 'Dotenv\\Validator' => $vendorDir . '/vlucas/phpdotenv/src/Validator.php', - 'Egulias\\EmailValidator\\EmailLexer' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailLexer.php', - 'Egulias\\EmailValidator\\EmailParser' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailParser.php', - 'Egulias\\EmailValidator\\EmailValidator' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailValidator.php', - 'Egulias\\EmailValidator\\Exception\\AtextAfterCFWS' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php', - 'Egulias\\EmailValidator\\Exception\\CRLFAtTheEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php', - 'Egulias\\EmailValidator\\Exception\\CRLFX2' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRLFX2.php', - 'Egulias\\EmailValidator\\Exception\\CRNoLF' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRNoLF.php', - 'Egulias\\EmailValidator\\Exception\\CharNotAllowed' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php', - 'Egulias\\EmailValidator\\Exception\\CommaInDomain' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php', - 'Egulias\\EmailValidator\\Exception\\ConsecutiveAt' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php', - 'Egulias\\EmailValidator\\Exception\\ConsecutiveDot' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php', - 'Egulias\\EmailValidator\\Exception\\DomainHyphened' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php', - 'Egulias\\EmailValidator\\Exception\\DotAtEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php', - 'Egulias\\EmailValidator\\Exception\\DotAtStart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DotAtStart.php', - 'Egulias\\EmailValidator\\Exception\\ExpectedQPair' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingAT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingATEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingCTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingDTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingDomainLiteralClose' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php', - 'Egulias\\EmailValidator\\Exception\\InvalidEmail' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php', - 'Egulias\\EmailValidator\\Exception\\NoDNSRecord' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php', - 'Egulias\\EmailValidator\\Exception\\NoDomainPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php', - 'Egulias\\EmailValidator\\Exception\\NoLocalPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php', - 'Egulias\\EmailValidator\\Exception\\UnclosedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php', - 'Egulias\\EmailValidator\\Exception\\UnclosedQuotedString' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php', - 'Egulias\\EmailValidator\\Exception\\UnopenedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php', - 'Egulias\\EmailValidator\\Parser\\DomainPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/DomainPart.php', - 'Egulias\\EmailValidator\\Parser\\LocalPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/LocalPart.php', - 'Egulias\\EmailValidator\\Parser\\Parser' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/Parser.php', - 'Egulias\\EmailValidator\\Validation\\DNSCheckValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php', - 'Egulias\\EmailValidator\\Validation\\EmailValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/EmailValidation.php', - 'Egulias\\EmailValidator\\Validation\\Error\\RFCWarnings' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php', - 'Egulias\\EmailValidator\\Validation\\Error\\SpoofEmail' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php', - 'Egulias\\EmailValidator\\Validation\\Exception\\EmptyValidationList' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php', - 'Egulias\\EmailValidator\\Validation\\MultipleErrors' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php', - 'Egulias\\EmailValidator\\Validation\\MultipleValidationWithAnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php', - 'Egulias\\EmailValidator\\Validation\\NoRFCWarningsValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php', - 'Egulias\\EmailValidator\\Validation\\RFCValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/RFCValidation.php', - 'Egulias\\EmailValidator\\Validation\\SpoofCheckValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php', - 'Egulias\\EmailValidator\\Warning\\AddressLiteral' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php', - 'Egulias\\EmailValidator\\Warning\\CFWSNearAt' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php', - 'Egulias\\EmailValidator\\Warning\\CFWSWithFWS' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php', - 'Egulias\\EmailValidator\\Warning\\Comment' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/Comment.php', - 'Egulias\\EmailValidator\\Warning\\DeprecatedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php', - 'Egulias\\EmailValidator\\Warning\\DomainLiteral' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php', - 'Egulias\\EmailValidator\\Warning\\DomainTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php', - 'Egulias\\EmailValidator\\Warning\\EmailTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php', - 'Egulias\\EmailValidator\\Warning\\IPV6BadChar' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php', - 'Egulias\\EmailValidator\\Warning\\IPV6ColonEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php', - 'Egulias\\EmailValidator\\Warning\\IPV6ColonStart' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php', - 'Egulias\\EmailValidator\\Warning\\IPV6Deprecated' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php', - 'Egulias\\EmailValidator\\Warning\\IPV6DoubleColon' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php', - 'Egulias\\EmailValidator\\Warning\\IPV6GroupCount' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php', - 'Egulias\\EmailValidator\\Warning\\IPV6MaxGroups' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php', - 'Egulias\\EmailValidator\\Warning\\LabelTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php', - 'Egulias\\EmailValidator\\Warning\\LocalTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php', - 'Egulias\\EmailValidator\\Warning\\NoDNSMXRecord' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php', - 'Egulias\\EmailValidator\\Warning\\ObsoleteDTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php', - 'Egulias\\EmailValidator\\Warning\\QuotedPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/QuotedPart.php', - 'Egulias\\EmailValidator\\Warning\\QuotedString' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/QuotedString.php', - 'Egulias\\EmailValidator\\Warning\\TLD' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/TLD.php', - 'Egulias\\EmailValidator\\Warning\\Warning' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/Warning.php', - 'Error' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/Error.php', - 'Faker\\Calculator\\Iban' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Iban.php', - 'Faker\\Calculator\\Inn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Inn.php', - 'Faker\\Calculator\\Luhn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php', - 'Faker\\DefaultGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/DefaultGenerator.php', - 'Faker\\Documentor' => $vendorDir . '/fzaninotto/faker/src/Faker/Documentor.php', - 'Faker\\Factory' => $vendorDir . '/fzaninotto/faker/src/Faker/Factory.php', - 'Faker\\Generator' => $vendorDir . '/fzaninotto/faker/src/Faker/Generator.php', - 'Faker\\Guesser\\Name' => $vendorDir . '/fzaninotto/faker/src/Faker/Guesser/Name.php', - 'Faker\\ORM\\CakePHP\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php', - 'Faker\\ORM\\CakePHP\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php', - 'Faker\\ORM\\CakePHP\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php', - 'Faker\\ORM\\Doctrine\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php', - 'Faker\\ORM\\Doctrine\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php', - 'Faker\\ORM\\Doctrine\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php', - 'Faker\\ORM\\Mandango\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php', - 'Faker\\ORM\\Mandango\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php', - 'Faker\\ORM\\Mandango\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php', - 'Faker\\ORM\\Propel2\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php', - 'Faker\\ORM\\Propel2\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php', - 'Faker\\ORM\\Propel2\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php', - 'Faker\\ORM\\Propel\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php', - 'Faker\\ORM\\Propel\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php', - 'Faker\\ORM\\Propel\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php', - 'Faker\\ORM\\Spot\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php', - 'Faker\\ORM\\Spot\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php', - 'Faker\\ORM\\Spot\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php', - 'Faker\\Provider\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Address.php', - 'Faker\\Provider\\Barcode' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Barcode.php', - 'Faker\\Provider\\Base' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Base.php', - 'Faker\\Provider\\Biased' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Biased.php', - 'Faker\\Provider\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Color.php', - 'Faker\\Provider\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Company.php', - 'Faker\\Provider\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/DateTime.php', - 'Faker\\Provider\\File' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/File.php', - 'Faker\\Provider\\HtmlLorem' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php', - 'Faker\\Provider\\Image' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Image.php', - 'Faker\\Provider\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Internet.php', - 'Faker\\Provider\\Lorem' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Lorem.php', - 'Faker\\Provider\\Miscellaneous' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php', - 'Faker\\Provider\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Payment.php', - 'Faker\\Provider\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Person.php', - 'Faker\\Provider\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php', - 'Faker\\Provider\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Text.php', - 'Faker\\Provider\\UserAgent' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/UserAgent.php', - 'Faker\\Provider\\Uuid' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Uuid.php', - 'Faker\\Provider\\ar_JO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php', - 'Faker\\Provider\\ar_JO\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php', - 'Faker\\Provider\\ar_JO\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php', - 'Faker\\Provider\\ar_JO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php', - 'Faker\\Provider\\ar_JO\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php', - 'Faker\\Provider\\ar_SA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php', - 'Faker\\Provider\\ar_SA\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php', - 'Faker\\Provider\\ar_SA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php', - 'Faker\\Provider\\ar_SA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php', - 'Faker\\Provider\\ar_SA\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php', - 'Faker\\Provider\\ar_SA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php', - 'Faker\\Provider\\ar_SA\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php', - 'Faker\\Provider\\at_AT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php', - 'Faker\\Provider\\bg_BG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php', - 'Faker\\Provider\\bg_BG\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php', - 'Faker\\Provider\\bg_BG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php', - 'Faker\\Provider\\bg_BG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php', - 'Faker\\Provider\\bn_BD\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Address.php', - 'Faker\\Provider\\bn_BD\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Company.php', - 'Faker\\Provider\\bn_BD\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Person.php', - 'Faker\\Provider\\bn_BD\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/PhoneNumber.php', - 'Faker\\Provider\\bn_BD\\Utils' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Utils.php', - 'Faker\\Provider\\cs_CZ\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Address.php', - 'Faker\\Provider\\cs_CZ\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Company.php', - 'Faker\\Provider\\cs_CZ\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php', - 'Faker\\Provider\\cs_CZ\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php', - 'Faker\\Provider\\cs_CZ\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Payment.php', - 'Faker\\Provider\\cs_CZ\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php', - 'Faker\\Provider\\cs_CZ\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php', - 'Faker\\Provider\\cs_CZ\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php', - 'Faker\\Provider\\da_DK\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php', - 'Faker\\Provider\\da_DK\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php', - 'Faker\\Provider\\da_DK\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php', - 'Faker\\Provider\\da_DK\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php', - 'Faker\\Provider\\da_DK\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php', - 'Faker\\Provider\\da_DK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php', - 'Faker\\Provider\\de_AT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php', - 'Faker\\Provider\\de_AT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php', - 'Faker\\Provider\\de_AT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php', - 'Faker\\Provider\\de_AT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php', - 'Faker\\Provider\\de_AT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php', - 'Faker\\Provider\\de_AT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php', - 'Faker\\Provider\\de_AT\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php', - 'Faker\\Provider\\de_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php', - 'Faker\\Provider\\de_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php', - 'Faker\\Provider\\de_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php', - 'Faker\\Provider\\de_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php', - 'Faker\\Provider\\de_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php', - 'Faker\\Provider\\de_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php', - 'Faker\\Provider\\de_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php', - 'Faker\\Provider\\de_DE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php', - 'Faker\\Provider\\de_DE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php', - 'Faker\\Provider\\de_DE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php', - 'Faker\\Provider\\de_DE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Payment.php', - 'Faker\\Provider\\de_DE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php', - 'Faker\\Provider\\de_DE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php', - 'Faker\\Provider\\de_DE\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php', - 'Faker\\Provider\\el_CY\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php', - 'Faker\\Provider\\el_CY\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php', - 'Faker\\Provider\\el_CY\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php', - 'Faker\\Provider\\el_CY\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php', - 'Faker\\Provider\\el_CY\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php', - 'Faker\\Provider\\el_CY\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php', - 'Faker\\Provider\\el_GR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php', - 'Faker\\Provider\\el_GR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php', - 'Faker\\Provider\\el_GR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php', - 'Faker\\Provider\\el_GR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php', - 'Faker\\Provider\\el_GR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php', - 'Faker\\Provider\\el_GR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php', - 'Faker\\Provider\\en_AU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php', - 'Faker\\Provider\\en_AU\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php', - 'Faker\\Provider\\en_AU\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php', - 'Faker\\Provider\\en_CA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_CA/Address.php', - 'Faker\\Provider\\en_CA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_CA/PhoneNumber.php', - 'Faker\\Provider\\en_GB\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php', - 'Faker\\Provider\\en_GB\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php', - 'Faker\\Provider\\en_GB\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php', - 'Faker\\Provider\\en_GB\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php', - 'Faker\\Provider\\en_GB\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php', - 'Faker\\Provider\\en_HK\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php', - 'Faker\\Provider\\en_HK\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php', - 'Faker\\Provider\\en_HK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php', - 'Faker\\Provider\\en_IN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php', - 'Faker\\Provider\\en_IN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php', - 'Faker\\Provider\\en_IN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php', - 'Faker\\Provider\\en_IN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php', - 'Faker\\Provider\\en_NG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php', - 'Faker\\Provider\\en_NG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php', - 'Faker\\Provider\\en_NG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php', - 'Faker\\Provider\\en_NG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php', - 'Faker\\Provider\\en_NZ\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php', - 'Faker\\Provider\\en_NZ\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php', - 'Faker\\Provider\\en_NZ\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php', - 'Faker\\Provider\\en_PH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php', - 'Faker\\Provider\\en_PH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php', - 'Faker\\Provider\\en_SG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php', - 'Faker\\Provider\\en_SG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php', - 'Faker\\Provider\\en_UG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php', - 'Faker\\Provider\\en_UG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php', - 'Faker\\Provider\\en_UG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php', - 'Faker\\Provider\\en_UG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php', - 'Faker\\Provider\\en_US\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Address.php', - 'Faker\\Provider\\en_US\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Company.php', - 'Faker\\Provider\\en_US\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php', - 'Faker\\Provider\\en_US\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Person.php', - 'Faker\\Provider\\en_US\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php', - 'Faker\\Provider\\en_US\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Text.php', - 'Faker\\Provider\\en_ZA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php', - 'Faker\\Provider\\en_ZA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php', - 'Faker\\Provider\\en_ZA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php', - 'Faker\\Provider\\en_ZA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php', - 'Faker\\Provider\\en_ZA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php', - 'Faker\\Provider\\es_AR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php', - 'Faker\\Provider\\es_AR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php', - 'Faker\\Provider\\es_AR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php', - 'Faker\\Provider\\es_AR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php', - 'Faker\\Provider\\es_ES\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php', - 'Faker\\Provider\\es_ES\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php', - 'Faker\\Provider\\es_ES\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php', - 'Faker\\Provider\\es_ES\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php', - 'Faker\\Provider\\es_ES\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php', - 'Faker\\Provider\\es_ES\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php', - 'Faker\\Provider\\es_ES\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php', - 'Faker\\Provider\\es_PE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php', - 'Faker\\Provider\\es_PE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php', - 'Faker\\Provider\\es_PE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php', - 'Faker\\Provider\\es_PE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/PhoneNumber.php', - 'Faker\\Provider\\es_VE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Address.php', - 'Faker\\Provider\\es_VE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Company.php', - 'Faker\\Provider\\es_VE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php', - 'Faker\\Provider\\es_VE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php', - 'Faker\\Provider\\es_VE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php', - 'Faker\\Provider\\fa_IR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php', - 'Faker\\Provider\\fa_IR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php', - 'Faker\\Provider\\fa_IR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php', - 'Faker\\Provider\\fa_IR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php', - 'Faker\\Provider\\fa_IR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php', - 'Faker\\Provider\\fa_IR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php', - 'Faker\\Provider\\fi_FI\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php', - 'Faker\\Provider\\fi_FI\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php', - 'Faker\\Provider\\fi_FI\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php', - 'Faker\\Provider\\fi_FI\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php', - 'Faker\\Provider\\fi_FI\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php', - 'Faker\\Provider\\fi_FI\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php', - 'Faker\\Provider\\fr_BE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php', - 'Faker\\Provider\\fr_BE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php', - 'Faker\\Provider\\fr_BE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php', - 'Faker\\Provider\\fr_BE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php', - 'Faker\\Provider\\fr_BE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php', - 'Faker\\Provider\\fr_BE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php', - 'Faker\\Provider\\fr_CA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php', - 'Faker\\Provider\\fr_CA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php', - 'Faker\\Provider\\fr_CA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php', - 'Faker\\Provider\\fr_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php', - 'Faker\\Provider\\fr_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php', - 'Faker\\Provider\\fr_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php', - 'Faker\\Provider\\fr_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php', - 'Faker\\Provider\\fr_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php', - 'Faker\\Provider\\fr_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php', - 'Faker\\Provider\\fr_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php', - 'Faker\\Provider\\fr_FR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php', - 'Faker\\Provider\\fr_FR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php', - 'Faker\\Provider\\fr_FR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php', - 'Faker\\Provider\\fr_FR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php', - 'Faker\\Provider\\fr_FR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php', - 'Faker\\Provider\\fr_FR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php', - 'Faker\\Provider\\fr_FR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php', - 'Faker\\Provider\\he_IL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php', - 'Faker\\Provider\\he_IL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php', - 'Faker\\Provider\\he_IL\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php', - 'Faker\\Provider\\he_IL\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php', - 'Faker\\Provider\\he_IL\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php', - 'Faker\\Provider\\hr_HR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php', - 'Faker\\Provider\\hr_HR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php', - 'Faker\\Provider\\hr_HR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php', - 'Faker\\Provider\\hr_HR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php', - 'Faker\\Provider\\hr_HR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php', - 'Faker\\Provider\\hu_HU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php', - 'Faker\\Provider\\hu_HU\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php', - 'Faker\\Provider\\hu_HU\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php', - 'Faker\\Provider\\hu_HU\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php', - 'Faker\\Provider\\hu_HU\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php', - 'Faker\\Provider\\hu_HU\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php', - 'Faker\\Provider\\hy_AM\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php', - 'Faker\\Provider\\hy_AM\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php', - 'Faker\\Provider\\hy_AM\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php', - 'Faker\\Provider\\hy_AM\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php', - 'Faker\\Provider\\hy_AM\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php', - 'Faker\\Provider\\hy_AM\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php', - 'Faker\\Provider\\id_ID\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php', - 'Faker\\Provider\\id_ID\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php', - 'Faker\\Provider\\id_ID\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php', - 'Faker\\Provider\\id_ID\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php', - 'Faker\\Provider\\id_ID\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php', - 'Faker\\Provider\\is_IS\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php', - 'Faker\\Provider\\is_IS\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php', - 'Faker\\Provider\\is_IS\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php', - 'Faker\\Provider\\is_IS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php', - 'Faker\\Provider\\is_IS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php', - 'Faker\\Provider\\is_IS\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php', - 'Faker\\Provider\\it_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php', - 'Faker\\Provider\\it_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php', - 'Faker\\Provider\\it_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php', - 'Faker\\Provider\\it_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php', - 'Faker\\Provider\\it_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php', - 'Faker\\Provider\\it_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php', - 'Faker\\Provider\\it_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php', - 'Faker\\Provider\\it_IT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php', - 'Faker\\Provider\\it_IT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php', - 'Faker\\Provider\\it_IT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php', - 'Faker\\Provider\\it_IT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Payment.php', - 'Faker\\Provider\\it_IT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php', - 'Faker\\Provider\\it_IT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php', - 'Faker\\Provider\\it_IT\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php', - 'Faker\\Provider\\ja_JP\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Address.php', - 'Faker\\Provider\\ja_JP\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php', - 'Faker\\Provider\\ja_JP\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php', - 'Faker\\Provider\\ja_JP\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php', - 'Faker\\Provider\\ja_JP\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php', - 'Faker\\Provider\\ja_JP\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php', - 'Faker\\Provider\\ka_GE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php', - 'Faker\\Provider\\ka_GE\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php', - 'Faker\\Provider\\ka_GE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php', - 'Faker\\Provider\\ka_GE\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php', - 'Faker\\Provider\\ka_GE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php', - 'Faker\\Provider\\ka_GE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php', - 'Faker\\Provider\\ka_GE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php', - 'Faker\\Provider\\ka_GE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php', - 'Faker\\Provider\\ka_GE\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php', - 'Faker\\Provider\\kk_KZ\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php', - 'Faker\\Provider\\kk_KZ\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php', - 'Faker\\Provider\\kk_KZ\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php', - 'Faker\\Provider\\kk_KZ\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php', - 'Faker\\Provider\\kk_KZ\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php', - 'Faker\\Provider\\kk_KZ\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php', - 'Faker\\Provider\\kk_KZ\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php', - 'Faker\\Provider\\kk_KZ\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php', - 'Faker\\Provider\\ko_KR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php', - 'Faker\\Provider\\ko_KR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php', - 'Faker\\Provider\\ko_KR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php', - 'Faker\\Provider\\ko_KR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php', - 'Faker\\Provider\\ko_KR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php', - 'Faker\\Provider\\ko_KR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php', - 'Faker\\Provider\\lt_LT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php', - 'Faker\\Provider\\lt_LT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php', - 'Faker\\Provider\\lt_LT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php', - 'Faker\\Provider\\lt_LT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php', - 'Faker\\Provider\\lt_LT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php', - 'Faker\\Provider\\lt_LT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php', - 'Faker\\Provider\\lv_LV\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php', - 'Faker\\Provider\\lv_LV\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php', - 'Faker\\Provider\\lv_LV\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php', - 'Faker\\Provider\\lv_LV\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php', - 'Faker\\Provider\\lv_LV\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php', - 'Faker\\Provider\\lv_LV\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php', - 'Faker\\Provider\\me_ME\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php', - 'Faker\\Provider\\me_ME\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php', - 'Faker\\Provider\\me_ME\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php', - 'Faker\\Provider\\me_ME\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php', - 'Faker\\Provider\\me_ME\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php', - 'Faker\\Provider\\mn_MN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php', - 'Faker\\Provider\\mn_MN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php', - 'Faker\\Provider\\nb_NO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php', - 'Faker\\Provider\\nb_NO\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php', - 'Faker\\Provider\\nb_NO\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php', - 'Faker\\Provider\\nb_NO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php', - 'Faker\\Provider\\nb_NO\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php', - 'Faker\\Provider\\ne_NP\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php', - 'Faker\\Provider\\ne_NP\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php', - 'Faker\\Provider\\ne_NP\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php', - 'Faker\\Provider\\ne_NP\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/PhoneNumber.php', - 'Faker\\Provider\\nl_BE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php', - 'Faker\\Provider\\nl_BE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php', - 'Faker\\Provider\\nl_BE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php', - 'Faker\\Provider\\nl_BE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php', - 'Faker\\Provider\\nl_BE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php', - 'Faker\\Provider\\nl_BE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php', - 'Faker\\Provider\\nl_NL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php', - 'Faker\\Provider\\nl_NL\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php', - 'Faker\\Provider\\nl_NL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php', - 'Faker\\Provider\\nl_NL\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php', - 'Faker\\Provider\\nl_NL\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php', - 'Faker\\Provider\\nl_NL\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php', - 'Faker\\Provider\\nl_NL\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php', - 'Faker\\Provider\\nl_NL\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php', - 'Faker\\Provider\\pl_PL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php', - 'Faker\\Provider\\pl_PL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php', - 'Faker\\Provider\\pl_PL\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php', - 'Faker\\Provider\\pl_PL\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php', - 'Faker\\Provider\\pl_PL\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php', - 'Faker\\Provider\\pl_PL\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php', - 'Faker\\Provider\\pl_PL\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php', - 'Faker\\Provider\\pt_BR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php', - 'Faker\\Provider\\pt_BR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php', - 'Faker\\Provider\\pt_BR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php', - 'Faker\\Provider\\pt_BR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php', - 'Faker\\Provider\\pt_BR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php', - 'Faker\\Provider\\pt_BR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php', - 'Faker\\Provider\\pt_PT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php', - 'Faker\\Provider\\pt_PT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php', - 'Faker\\Provider\\pt_PT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php', - 'Faker\\Provider\\pt_PT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php', - 'Faker\\Provider\\ro_MD\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php', - 'Faker\\Provider\\ro_MD\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php', - 'Faker\\Provider\\ro_MD\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php', - 'Faker\\Provider\\ro_MD\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php', - 'Faker\\Provider\\ro_MD\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php', - 'Faker\\Provider\\ro_RO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php', - 'Faker\\Provider\\ro_RO\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php', - 'Faker\\Provider\\ro_RO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php', - 'Faker\\Provider\\ro_RO\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php', - 'Faker\\Provider\\ro_RO\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php', - 'Faker\\Provider\\ru_RU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php', - 'Faker\\Provider\\ru_RU\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php', - 'Faker\\Provider\\ru_RU\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php', - 'Faker\\Provider\\ru_RU\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php', - 'Faker\\Provider\\ru_RU\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Payment.php', - 'Faker\\Provider\\ru_RU\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php', - 'Faker\\Provider\\ru_RU\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php', - 'Faker\\Provider\\ru_RU\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php', - 'Faker\\Provider\\sk_SK\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php', - 'Faker\\Provider\\sk_SK\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php', - 'Faker\\Provider\\sk_SK\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php', - 'Faker\\Provider\\sk_SK\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Payment.php', - 'Faker\\Provider\\sk_SK\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php', - 'Faker\\Provider\\sk_SK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php', - 'Faker\\Provider\\sl_SI\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php', - 'Faker\\Provider\\sl_SI\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php', - 'Faker\\Provider\\sl_SI\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php', - 'Faker\\Provider\\sl_SI\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php', - 'Faker\\Provider\\sl_SI\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/PhoneNumber.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php', - 'Faker\\Provider\\sr_Latn_RS\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Address.php', - 'Faker\\Provider\\sr_Latn_RS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Payment.php', - 'Faker\\Provider\\sr_Latn_RS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Person.php', - 'Faker\\Provider\\sr_RS\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Address.php', - 'Faker\\Provider\\sr_RS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Payment.php', - 'Faker\\Provider\\sr_RS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php', - 'Faker\\Provider\\sv_SE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php', - 'Faker\\Provider\\sv_SE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php', - 'Faker\\Provider\\sv_SE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php', - 'Faker\\Provider\\sv_SE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php', - 'Faker\\Provider\\sv_SE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php', - 'Faker\\Provider\\th_TH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php', - 'Faker\\Provider\\th_TH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php', - 'Faker\\Provider\\th_TH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php', - 'Faker\\Provider\\th_TH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php', - 'Faker\\Provider\\th_TH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php', - 'Faker\\Provider\\tr_TR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php', - 'Faker\\Provider\\tr_TR\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php', - 'Faker\\Provider\\tr_TR\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php', - 'Faker\\Provider\\tr_TR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php', - 'Faker\\Provider\\tr_TR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php', - 'Faker\\Provider\\tr_TR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Person.php', - 'Faker\\Provider\\tr_TR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php', - 'Faker\\Provider\\uk_UA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Address.php', - 'Faker\\Provider\\uk_UA\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php', - 'Faker\\Provider\\uk_UA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php', - 'Faker\\Provider\\uk_UA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php', - 'Faker\\Provider\\uk_UA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php', - 'Faker\\Provider\\uk_UA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php', - 'Faker\\Provider\\uk_UA\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php', - 'Faker\\Provider\\uk_Ua\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php', - 'Faker\\Provider\\vi_VN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php', - 'Faker\\Provider\\vi_VN\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php', - 'Faker\\Provider\\vi_VN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php', - 'Faker\\Provider\\vi_VN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php', - 'Faker\\Provider\\vi_VN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php', - 'Faker\\Provider\\zh_CN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php', - 'Faker\\Provider\\zh_CN\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php', - 'Faker\\Provider\\zh_CN\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php', - 'Faker\\Provider\\zh_CN\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php', - 'Faker\\Provider\\zh_CN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php', - 'Faker\\Provider\\zh_CN\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php', - 'Faker\\Provider\\zh_CN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php', - 'Faker\\Provider\\zh_CN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php', - 'Faker\\Provider\\zh_TW\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php', - 'Faker\\Provider\\zh_TW\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php', - 'Faker\\Provider\\zh_TW\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php', - 'Faker\\Provider\\zh_TW\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php', - 'Faker\\Provider\\zh_TW\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php', - 'Faker\\Provider\\zh_TW\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php', - 'Faker\\Provider\\zh_TW\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php', - 'Faker\\Provider\\zh_TW\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php', - 'Faker\\Provider\\zh_TW\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php', - 'Faker\\UniqueGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/UniqueGenerator.php', - 'Faker\\ValidGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/ValidGenerator.php', - 'Fideloper\\Proxy\\TrustProxies' => $vendorDir . '/fideloper/proxy/src/TrustProxies.php', - 'Fideloper\\Proxy\\TrustedProxyServiceProvider' => $vendorDir . '/fideloper/proxy/src/TrustedProxyServiceProvider.php', - 'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php', - 'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php', - 'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php', - 'GuzzleHttp\\Client' => $vendorDir . '/guzzlehttp/guzzle/src/Client.php', - 'GuzzleHttp\\ClientInterface' => $vendorDir . '/guzzlehttp/guzzle/src/ClientInterface.php', - 'GuzzleHttp\\Cookie\\CookieJar' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/CookieJar.php', - 'GuzzleHttp\\Cookie\\CookieJarInterface' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php', - 'GuzzleHttp\\Cookie\\FileCookieJar' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php', - 'GuzzleHttp\\Cookie\\SessionCookieJar' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php', - 'GuzzleHttp\\Cookie\\SetCookie' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/SetCookie.php', - 'GuzzleHttp\\Exception\\BadResponseException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/BadResponseException.php', - 'GuzzleHttp\\Exception\\ClientException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/ClientException.php', - 'GuzzleHttp\\Exception\\ConnectException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/ConnectException.php', - 'GuzzleHttp\\Exception\\GuzzleException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/GuzzleException.php', - 'GuzzleHttp\\Exception\\RequestException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/RequestException.php', - 'GuzzleHttp\\Exception\\SeekException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/SeekException.php', - 'GuzzleHttp\\Exception\\ServerException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/ServerException.php', - 'GuzzleHttp\\Exception\\TooManyRedirectsException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php', - 'GuzzleHttp\\Exception\\TransferException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/TransferException.php', - 'GuzzleHttp\\HandlerStack' => $vendorDir . '/guzzlehttp/guzzle/src/HandlerStack.php', - 'GuzzleHttp\\Handler\\CurlFactory' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/CurlFactory.php', - 'GuzzleHttp\\Handler\\CurlFactoryInterface' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php', - 'GuzzleHttp\\Handler\\CurlHandler' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/CurlHandler.php', - 'GuzzleHttp\\Handler\\CurlMultiHandler' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php', - 'GuzzleHttp\\Handler\\EasyHandle' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/EasyHandle.php', - 'GuzzleHttp\\Handler\\MockHandler' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/MockHandler.php', - 'GuzzleHttp\\Handler\\Proxy' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/Proxy.php', - 'GuzzleHttp\\Handler\\StreamHandler' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/StreamHandler.php', - 'GuzzleHttp\\MessageFormatter' => $vendorDir . '/guzzlehttp/guzzle/src/MessageFormatter.php', - 'GuzzleHttp\\Middleware' => $vendorDir . '/guzzlehttp/guzzle/src/Middleware.php', - 'GuzzleHttp\\Pool' => $vendorDir . '/guzzlehttp/guzzle/src/Pool.php', - 'GuzzleHttp\\PrepareBodyMiddleware' => $vendorDir . '/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php', - 'GuzzleHttp\\Promise\\AggregateException' => $vendorDir . '/guzzlehttp/promises/src/AggregateException.php', - 'GuzzleHttp\\Promise\\CancellationException' => $vendorDir . '/guzzlehttp/promises/src/CancellationException.php', - 'GuzzleHttp\\Promise\\Coroutine' => $vendorDir . '/guzzlehttp/promises/src/Coroutine.php', - 'GuzzleHttp\\Promise\\EachPromise' => $vendorDir . '/guzzlehttp/promises/src/EachPromise.php', - 'GuzzleHttp\\Promise\\FulfilledPromise' => $vendorDir . '/guzzlehttp/promises/src/FulfilledPromise.php', - 'GuzzleHttp\\Promise\\Promise' => $vendorDir . '/guzzlehttp/promises/src/Promise.php', - 'GuzzleHttp\\Promise\\PromiseInterface' => $vendorDir . '/guzzlehttp/promises/src/PromiseInterface.php', - 'GuzzleHttp\\Promise\\PromisorInterface' => $vendorDir . '/guzzlehttp/promises/src/PromisorInterface.php', - 'GuzzleHttp\\Promise\\RejectedPromise' => $vendorDir . '/guzzlehttp/promises/src/RejectedPromise.php', - 'GuzzleHttp\\Promise\\RejectionException' => $vendorDir . '/guzzlehttp/promises/src/RejectionException.php', - 'GuzzleHttp\\Promise\\TaskQueue' => $vendorDir . '/guzzlehttp/promises/src/TaskQueue.php', - 'GuzzleHttp\\Promise\\TaskQueueInterface' => $vendorDir . '/guzzlehttp/promises/src/TaskQueueInterface.php', - 'GuzzleHttp\\Psr7\\AppendStream' => $vendorDir . '/guzzlehttp/psr7/src/AppendStream.php', - 'GuzzleHttp\\Psr7\\BufferStream' => $vendorDir . '/guzzlehttp/psr7/src/BufferStream.php', - 'GuzzleHttp\\Psr7\\CachingStream' => $vendorDir . '/guzzlehttp/psr7/src/CachingStream.php', - 'GuzzleHttp\\Psr7\\DroppingStream' => $vendorDir . '/guzzlehttp/psr7/src/DroppingStream.php', - 'GuzzleHttp\\Psr7\\FnStream' => $vendorDir . '/guzzlehttp/psr7/src/FnStream.php', - 'GuzzleHttp\\Psr7\\InflateStream' => $vendorDir . '/guzzlehttp/psr7/src/InflateStream.php', - 'GuzzleHttp\\Psr7\\LazyOpenStream' => $vendorDir . '/guzzlehttp/psr7/src/LazyOpenStream.php', - 'GuzzleHttp\\Psr7\\LimitStream' => $vendorDir . '/guzzlehttp/psr7/src/LimitStream.php', - 'GuzzleHttp\\Psr7\\MessageTrait' => $vendorDir . '/guzzlehttp/psr7/src/MessageTrait.php', - 'GuzzleHttp\\Psr7\\MultipartStream' => $vendorDir . '/guzzlehttp/psr7/src/MultipartStream.php', - 'GuzzleHttp\\Psr7\\NoSeekStream' => $vendorDir . '/guzzlehttp/psr7/src/NoSeekStream.php', - 'GuzzleHttp\\Psr7\\PumpStream' => $vendorDir . '/guzzlehttp/psr7/src/PumpStream.php', - 'GuzzleHttp\\Psr7\\Request' => $vendorDir . '/guzzlehttp/psr7/src/Request.php', - 'GuzzleHttp\\Psr7\\Response' => $vendorDir . '/guzzlehttp/psr7/src/Response.php', - 'GuzzleHttp\\Psr7\\ServerRequest' => $vendorDir . '/guzzlehttp/psr7/src/ServerRequest.php', - 'GuzzleHttp\\Psr7\\Stream' => $vendorDir . '/guzzlehttp/psr7/src/Stream.php', - 'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => $vendorDir . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php', - 'GuzzleHttp\\Psr7\\StreamWrapper' => $vendorDir . '/guzzlehttp/psr7/src/StreamWrapper.php', - 'GuzzleHttp\\Psr7\\UploadedFile' => $vendorDir . '/guzzlehttp/psr7/src/UploadedFile.php', - 'GuzzleHttp\\Psr7\\Uri' => $vendorDir . '/guzzlehttp/psr7/src/Uri.php', - 'GuzzleHttp\\Psr7\\UriNormalizer' => $vendorDir . '/guzzlehttp/psr7/src/UriNormalizer.php', - 'GuzzleHttp\\Psr7\\UriResolver' => $vendorDir . '/guzzlehttp/psr7/src/UriResolver.php', - 'GuzzleHttp\\RedirectMiddleware' => $vendorDir . '/guzzlehttp/guzzle/src/RedirectMiddleware.php', - 'GuzzleHttp\\RequestOptions' => $vendorDir . '/guzzlehttp/guzzle/src/RequestOptions.php', - 'GuzzleHttp\\RetryMiddleware' => $vendorDir . '/guzzlehttp/guzzle/src/RetryMiddleware.php', - 'GuzzleHttp\\TransferStats' => $vendorDir . '/guzzlehttp/guzzle/src/TransferStats.php', - 'GuzzleHttp\\UriTemplate' => $vendorDir . '/guzzlehttp/guzzle/src/UriTemplate.php', - 'Hamcrest\\Arrays\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php', - 'Hamcrest\\Arrays\\IsArrayContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php', - 'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php', - 'Hamcrest\\Arrays\\IsArrayContainingInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php', - 'Hamcrest\\Arrays\\IsArrayContainingKey' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php', - 'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php', - 'Hamcrest\\Arrays\\IsArrayWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php', - 'Hamcrest\\Arrays\\MatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php', - 'Hamcrest\\Arrays\\SeriesMatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php', - 'Hamcrest\\AssertionError' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php', - 'Hamcrest\\BaseDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php', - 'Hamcrest\\BaseMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php', - 'Hamcrest\\Collection\\IsEmptyTraversable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php', - 'Hamcrest\\Collection\\IsTraversableWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php', - 'Hamcrest\\Core\\AllOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php', - 'Hamcrest\\Core\\AnyOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php', - 'Hamcrest\\Core\\CombinableMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php', - 'Hamcrest\\Core\\DescribedAs' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php', - 'Hamcrest\\Core\\Every' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php', - 'Hamcrest\\Core\\HasToString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php', - 'Hamcrest\\Core\\Is' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php', - 'Hamcrest\\Core\\IsAnything' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php', - 'Hamcrest\\Core\\IsCollectionContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php', - 'Hamcrest\\Core\\IsEqual' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php', - 'Hamcrest\\Core\\IsIdentical' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php', - 'Hamcrest\\Core\\IsInstanceOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php', - 'Hamcrest\\Core\\IsNot' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php', - 'Hamcrest\\Core\\IsNull' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php', - 'Hamcrest\\Core\\IsSame' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php', - 'Hamcrest\\Core\\IsTypeOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php', - 'Hamcrest\\Core\\Set' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php', - 'Hamcrest\\Core\\ShortcutCombination' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php', - 'Hamcrest\\Description' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php', - 'Hamcrest\\DiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php', - 'Hamcrest\\FeatureMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php', - 'Hamcrest\\Internal\\SelfDescribingValue' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php', - 'Hamcrest\\Matcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php', - 'Hamcrest\\MatcherAssert' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php', - 'Hamcrest\\Matchers' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php', - 'Hamcrest\\NullDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php', - 'Hamcrest\\Number\\IsCloseTo' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php', - 'Hamcrest\\Number\\OrderingComparison' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php', - 'Hamcrest\\SelfDescribing' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php', - 'Hamcrest\\StringDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php', - 'Hamcrest\\Text\\IsEmptyString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php', - 'Hamcrest\\Text\\IsEqualIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php', - 'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php', - 'Hamcrest\\Text\\MatchesPattern' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php', - 'Hamcrest\\Text\\StringContains' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php', - 'Hamcrest\\Text\\StringContainsIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php', - 'Hamcrest\\Text\\StringContainsInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php', - 'Hamcrest\\Text\\StringEndsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php', - 'Hamcrest\\Text\\StringStartsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php', - 'Hamcrest\\Text\\SubstringMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php', - 'Hamcrest\\TypeSafeDiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php', - 'Hamcrest\\TypeSafeMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php', - 'Hamcrest\\Type\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php', - 'Hamcrest\\Type\\IsBoolean' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php', - 'Hamcrest\\Type\\IsCallable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php', - 'Hamcrest\\Type\\IsDouble' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php', - 'Hamcrest\\Type\\IsInteger' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php', - 'Hamcrest\\Type\\IsNumeric' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php', - 'Hamcrest\\Type\\IsObject' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php', - 'Hamcrest\\Type\\IsResource' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php', - 'Hamcrest\\Type\\IsScalar' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php', - 'Hamcrest\\Type\\IsString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php', - 'Hamcrest\\Util' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php', - 'Hamcrest\\Xml\\HasXPath' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php', - 'Illuminate\\Auth\\Access\\AuthorizationException' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php', - 'Illuminate\\Auth\\Access\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/Gate.php', - 'Illuminate\\Auth\\Access\\HandlesAuthorization' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php', - 'Illuminate\\Auth\\Access\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/Response.php', - 'Illuminate\\Auth\\AuthManager' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthManager.php', - 'Illuminate\\Auth\\AuthServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php', - 'Illuminate\\Auth\\Authenticatable' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Authenticatable.php', - 'Illuminate\\Auth\\AuthenticationException' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthenticationException.php', - 'Illuminate\\Auth\\Console\\AuthMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php', - 'Illuminate\\Auth\\Console\\ClearResetsCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php', - 'Illuminate\\Auth\\CreatesUserProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php', - 'Illuminate\\Auth\\DatabaseUserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php', - 'Illuminate\\Auth\\EloquentUserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php', - 'Illuminate\\Auth\\Events\\Attempting' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Attempting.php', - 'Illuminate\\Auth\\Events\\Authenticated' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php', - 'Illuminate\\Auth\\Events\\Failed' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Failed.php', - 'Illuminate\\Auth\\Events\\Lockout' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Lockout.php', - 'Illuminate\\Auth\\Events\\Login' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Login.php', - 'Illuminate\\Auth\\Events\\Logout' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Logout.php', - 'Illuminate\\Auth\\Events\\PasswordReset' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php', - 'Illuminate\\Auth\\Events\\Registered' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Registered.php', - 'Illuminate\\Auth\\GenericUser' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/GenericUser.php', - 'Illuminate\\Auth\\GuardHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/GuardHelpers.php', - 'Illuminate\\Auth\\Middleware\\Authenticate' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php', - 'Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php', - 'Illuminate\\Auth\\Middleware\\Authorize' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php', - 'Illuminate\\Auth\\Notifications\\ResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php', - 'Illuminate\\Auth\\Passwords\\CanResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php', - 'Illuminate\\Auth\\Passwords\\DatabaseTokenRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php', - 'Illuminate\\Auth\\Passwords\\PasswordBroker' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php', - 'Illuminate\\Auth\\Passwords\\PasswordBrokerManager' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php', - 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php', - 'Illuminate\\Auth\\Passwords\\TokenRepositoryInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php', - 'Illuminate\\Auth\\Recaller' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Recaller.php', - 'Illuminate\\Auth\\RequestGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/RequestGuard.php', - 'Illuminate\\Auth\\SessionGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/SessionGuard.php', - 'Illuminate\\Auth\\TokenGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/TokenGuard.php', - 'Illuminate\\Broadcasting\\BroadcastController' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php', - 'Illuminate\\Broadcasting\\BroadcastEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php', - 'Illuminate\\Broadcasting\\BroadcastException' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php', - 'Illuminate\\Broadcasting\\BroadcastManager' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php', - 'Illuminate\\Broadcasting\\BroadcastServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php', - 'Illuminate\\Broadcasting\\Broadcasters\\Broadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\LogBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\NullBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\RedisBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php', - 'Illuminate\\Broadcasting\\Channel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Channel.php', - 'Illuminate\\Broadcasting\\InteractsWithSockets' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php', - 'Illuminate\\Broadcasting\\PendingBroadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php', - 'Illuminate\\Broadcasting\\PresenceChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php', - 'Illuminate\\Broadcasting\\PrivateChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php', - 'Illuminate\\Bus\\BusServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php', - 'Illuminate\\Bus\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Dispatcher.php', - 'Illuminate\\Bus\\Queueable' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Queueable.php', - 'Illuminate\\Cache\\ApcStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ApcStore.php', - 'Illuminate\\Cache\\ApcWrapper' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ApcWrapper.php', - 'Illuminate\\Cache\\ArrayStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ArrayStore.php', - 'Illuminate\\Cache\\CacheManager' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/CacheManager.php', - 'Illuminate\\Cache\\CacheServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php', - 'Illuminate\\Cache\\Console\\CacheTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php', - 'Illuminate\\Cache\\Console\\ClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php', - 'Illuminate\\Cache\\Console\\ForgetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php', - 'Illuminate\\Cache\\DatabaseStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/DatabaseStore.php', - 'Illuminate\\Cache\\Events\\CacheEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php', - 'Illuminate\\Cache\\Events\\CacheHit' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php', - 'Illuminate\\Cache\\Events\\CacheMissed' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php', - 'Illuminate\\Cache\\Events\\KeyForgotten' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php', - 'Illuminate\\Cache\\Events\\KeyWritten' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php', - 'Illuminate\\Cache\\FileStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/FileStore.php', - 'Illuminate\\Cache\\Lock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Lock.php', - 'Illuminate\\Cache\\MemcachedConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php', - 'Illuminate\\Cache\\MemcachedLock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedLock.php', - 'Illuminate\\Cache\\MemcachedStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedStore.php', - 'Illuminate\\Cache\\NullStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/NullStore.php', - 'Illuminate\\Cache\\RateLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RateLimiter.php', - 'Illuminate\\Cache\\RedisLock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisLock.php', - 'Illuminate\\Cache\\RedisStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisStore.php', - 'Illuminate\\Cache\\RedisTaggedCache' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php', - 'Illuminate\\Cache\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Repository.php', - 'Illuminate\\Cache\\RetrievesMultipleKeys' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php', - 'Illuminate\\Cache\\TagSet' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TagSet.php', - 'Illuminate\\Cache\\TaggableStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TaggableStore.php', - 'Illuminate\\Cache\\TaggedCache' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TaggedCache.php', - 'Illuminate\\Config\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Config/Repository.php', - 'Illuminate\\Console\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Application.php', - 'Illuminate\\Console\\Command' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Command.php', - 'Illuminate\\Console\\ConfirmableTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php', - 'Illuminate\\Console\\DetectsApplicationNamespace' => $vendorDir . '/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php', - 'Illuminate\\Console\\Events\\ArtisanStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php', - 'Illuminate\\Console\\Events\\CommandFinished' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php', - 'Illuminate\\Console\\Events\\CommandStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php', - 'Illuminate\\Console\\GeneratorCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/GeneratorCommand.php', - 'Illuminate\\Console\\OutputStyle' => $vendorDir . '/laravel/framework/src/Illuminate/Console/OutputStyle.php', - 'Illuminate\\Console\\Parser' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Parser.php', - 'Illuminate\\Console\\Scheduling\\CacheMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheMutex.php', - 'Illuminate\\Console\\Scheduling\\CallbackEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php', - 'Illuminate\\Console\\Scheduling\\CommandBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php', - 'Illuminate\\Console\\Scheduling\\Event' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Event.php', - 'Illuminate\\Console\\Scheduling\\ManagesFrequencies' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php', - 'Illuminate\\Console\\Scheduling\\Mutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Mutex.php', - 'Illuminate\\Console\\Scheduling\\Schedule' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php', - 'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php', - 'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php', - 'Illuminate\\Container\\BoundMethod' => $vendorDir . '/laravel/framework/src/Illuminate/Container/BoundMethod.php', - 'Illuminate\\Container\\Container' => $vendorDir . '/laravel/framework/src/Illuminate/Container/Container.php', - 'Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php', - 'Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php', - 'Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php', - 'Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php', - 'Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php', - 'Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php', - 'Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php', - 'Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php', - 'Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php', - 'Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php', - 'Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php', - 'Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php', - 'Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php', - 'Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php', - 'Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php', - 'Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php', - 'Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php', - 'Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php', - 'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php', - 'Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php', - 'Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php', - 'Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php', - 'Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php', - 'Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php', - 'Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Store.php', - 'Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Config/Repository.php', - 'Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Console/Application.php', - 'Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php', - 'Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php', - 'Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/Container.php', - 'Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php', - 'Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php', - 'Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php', - 'Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php', - 'Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php', - 'Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php', - 'Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php', - 'Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php', - 'Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php', - 'Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php', - 'Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php', - 'Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php', - 'Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php', - 'Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php', - 'Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php', - 'Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php', - 'Illuminate\\Contracts\\Logging\\Log' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Logging/Log.php', - 'Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php', - 'Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php', - 'Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php', - 'Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php', - 'Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php', - 'Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php', - 'Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php', - 'Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php', - 'Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php', - 'Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php', - 'Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php', - 'Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php', - 'Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Job.php', - 'Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php', - 'Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php', - 'Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php', - 'Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php', - 'Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php', - 'Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php', - 'Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php', - 'Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php', - 'Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php', - 'Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php', - 'Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php', - 'Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php', - 'Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Session/Session.php', - 'Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php', - 'Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php', - 'Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php', - 'Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php', - 'Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php', - 'Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php', - 'Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php', - 'Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php', - 'Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php', - 'Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php', - 'Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php', - 'Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php', - 'Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php', - 'Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php', - 'Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/Engine.php', - 'Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/Factory.php', - 'Illuminate\\Contracts\\View\\View' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/View.php', - 'Illuminate\\Cookie\\CookieJar' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/CookieJar.php', - 'Illuminate\\Cookie\\CookieServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php', - 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php', - 'Illuminate\\Cookie\\Middleware\\EncryptCookies' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php', - 'Illuminate\\Database\\Capsule\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Capsule/Manager.php', - 'Illuminate\\Database\\Concerns\\BuildsQueries' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php', - 'Illuminate\\Database\\Concerns\\ManagesTransactions' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php', - 'Illuminate\\Database\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connection.php', - 'Illuminate\\Database\\ConnectionInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionInterface.php', - 'Illuminate\\Database\\ConnectionResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionResolver.php', - 'Illuminate\\Database\\ConnectionResolverInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php', - 'Illuminate\\Database\\Connectors\\ConnectionFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php', - 'Illuminate\\Database\\Connectors\\Connector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/Connector.php', - 'Illuminate\\Database\\Connectors\\ConnectorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php', - 'Illuminate\\Database\\Connectors\\MySqlConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php', - 'Illuminate\\Database\\Connectors\\PostgresConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php', - 'Illuminate\\Database\\Connectors\\SQLiteConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php', - 'Illuminate\\Database\\Connectors\\SqlServerConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php', - 'Illuminate\\Database\\Console\\Factories\\FactoryMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\BaseCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\FreshCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\InstallCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\MigrateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\MigrateMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\RefreshCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php', - 'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php', - 'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php', - 'Illuminate\\Database\\DatabaseManager' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DatabaseManager.php', - 'Illuminate\\Database\\DatabaseServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php', - 'Illuminate\\Database\\DetectsDeadlocks' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php', - 'Illuminate\\Database\\DetectsLostConnections' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php', - 'Illuminate\\Database\\Eloquent\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php', - 'Illuminate\\Database\\Eloquent\\Collection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\GuardsAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasGlobalScopes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasRelationships' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasTimestamps' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HidesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\QueriesRelationships' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php', - 'Illuminate\\Database\\Eloquent\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php', - 'Illuminate\\Database\\Eloquent\\FactoryBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php', - 'Illuminate\\Database\\Eloquent\\JsonEncodingException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php', - 'Illuminate\\Database\\Eloquent\\MassAssignmentException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php', - 'Illuminate\\Database\\Eloquent\\Model' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Model.php', - 'Illuminate\\Database\\Eloquent\\ModelNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php', - 'Illuminate\\Database\\Eloquent\\QueueEntityResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php', - 'Illuminate\\Database\\Eloquent\\RelationNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php', - 'Illuminate\\Database\\Eloquent\\Relations\\BelongsTo' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php', - 'Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\InteractsWithPivotTable' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasManyThrough' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasOne' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasOneOrMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphOne' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphOneOrMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphPivot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphTo' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphToMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Pivot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Relation' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php', - 'Illuminate\\Database\\Eloquent\\Scope' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php', - 'Illuminate\\Database\\Eloquent\\SoftDeletes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php', - 'Illuminate\\Database\\Eloquent\\SoftDeletingScope' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php', - 'Illuminate\\Database\\Events\\ConnectionEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php', - 'Illuminate\\Database\\Events\\QueryExecuted' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php', - 'Illuminate\\Database\\Events\\StatementPrepared' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php', - 'Illuminate\\Database\\Events\\TransactionBeginning' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php', - 'Illuminate\\Database\\Events\\TransactionCommitted' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php', - 'Illuminate\\Database\\Events\\TransactionRolledBack' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php', - 'Illuminate\\Database\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Grammar.php', - 'Illuminate\\Database\\MigrationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php', - 'Illuminate\\Database\\Migrations\\DatabaseMigrationRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php', - 'Illuminate\\Database\\Migrations\\Migration' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/Migration.php', - 'Illuminate\\Database\\Migrations\\MigrationCreator' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php', - 'Illuminate\\Database\\Migrations\\MigrationRepositoryInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php', - 'Illuminate\\Database\\Migrations\\Migrator' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php', - 'Illuminate\\Database\\MySqlConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/MySqlConnection.php', - 'Illuminate\\Database\\PostgresConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/PostgresConnection.php', - 'Illuminate\\Database\\QueryException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/QueryException.php', - 'Illuminate\\Database\\Query\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Builder.php', - 'Illuminate\\Database\\Query\\Expression' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Expression.php', - 'Illuminate\\Database\\Query\\Grammars\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php', - 'Illuminate\\Database\\Query\\Grammars\\MySqlGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\PostgresGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\SQLiteGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\SqlServerGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php', - 'Illuminate\\Database\\Query\\JoinClause' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/JoinClause.php', - 'Illuminate\\Database\\Query\\JsonExpression' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php', - 'Illuminate\\Database\\Query\\Processors\\MySqlProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\PostgresProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\Processor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php', - 'Illuminate\\Database\\Query\\Processors\\SQLiteProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\SqlServerProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php', - 'Illuminate\\Database\\SQLiteConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/SQLiteConnection.php', - 'Illuminate\\Database\\Schema\\Blueprint' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php', - 'Illuminate\\Database\\Schema\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Builder.php', - 'Illuminate\\Database\\Schema\\Grammars\\ChangeColumn' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php', - 'Illuminate\\Database\\Schema\\Grammars\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\MySqlGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\PostgresGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\RenameColumn' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php', - 'Illuminate\\Database\\Schema\\Grammars\\SQLiteGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\SqlServerGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php', - 'Illuminate\\Database\\Schema\\MySqlBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php', - 'Illuminate\\Database\\Schema\\PostgresBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php', - 'Illuminate\\Database\\Schema\\SQLiteBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php', - 'Illuminate\\Database\\Schema\\SqlServerBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php', - 'Illuminate\\Database\\Seeder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Seeder.php', - 'Illuminate\\Database\\SqlServerConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/SqlServerConnection.php', - 'Illuminate\\Encryption\\Encrypter' => $vendorDir . '/laravel/framework/src/Illuminate/Encryption/Encrypter.php', - 'Illuminate\\Encryption\\EncryptionServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php', - 'Illuminate\\Events\\CallQueuedListener' => $vendorDir . '/laravel/framework/src/Illuminate/Events/CallQueuedListener.php', - 'Illuminate\\Events\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Events/Dispatcher.php', - 'Illuminate\\Events\\EventServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Events/EventServiceProvider.php', - 'Illuminate\\Filesystem\\Cache' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/Cache.php', - 'Illuminate\\Filesystem\\Filesystem' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/Filesystem.php', - 'Illuminate\\Filesystem\\FilesystemAdapter' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php', - 'Illuminate\\Filesystem\\FilesystemManager' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php', - 'Illuminate\\Filesystem\\FilesystemServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php', - 'Illuminate\\Foundation\\AliasLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/AliasLoader.php', - 'Illuminate\\Foundation\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Application.php', - 'Illuminate\\Foundation\\Auth\\Access\\Authorizable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php', - 'Illuminate\\Foundation\\Auth\\Access\\AuthorizesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php', - 'Illuminate\\Foundation\\Auth\\AuthenticatesUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php', - 'Illuminate\\Foundation\\Auth\\RedirectsUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php', - 'Illuminate\\Foundation\\Auth\\RegistersUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php', - 'Illuminate\\Foundation\\Auth\\ResetsPasswords' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php', - 'Illuminate\\Foundation\\Auth\\SendsPasswordResetEmails' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php', - 'Illuminate\\Foundation\\Auth\\ThrottlesLogins' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php', - 'Illuminate\\Foundation\\Auth\\User' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/User.php', - 'Illuminate\\Foundation\\Bootstrap\\BootProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php', - 'Illuminate\\Foundation\\Bootstrap\\HandleExceptions' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php', - 'Illuminate\\Foundation\\Bootstrap\\LoadConfiguration' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php', - 'Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php', - 'Illuminate\\Foundation\\Bootstrap\\RegisterFacades' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php', - 'Illuminate\\Foundation\\Bootstrap\\RegisterProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php', - 'Illuminate\\Foundation\\Bootstrap\\SetRequestForConsole' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php', - 'Illuminate\\Foundation\\Bus\\Dispatchable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php', - 'Illuminate\\Foundation\\Bus\\DispatchesJobs' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php', - 'Illuminate\\Foundation\\Bus\\PendingChain' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php', - 'Illuminate\\Foundation\\Bus\\PendingDispatch' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php', - 'Illuminate\\Foundation\\ComposerScripts' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php', - 'Illuminate\\Foundation\\Console\\AppNameCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php', - 'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php', - 'Illuminate\\Foundation\\Console\\ClosureCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php', - 'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php', - 'Illuminate\\Foundation\\Console\\ConfigClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php', - 'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php', - 'Illuminate\\Foundation\\Console\\DownCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php', - 'Illuminate\\Foundation\\Console\\EnvironmentCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php', - 'Illuminate\\Foundation\\Console\\EventGenerateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php', - 'Illuminate\\Foundation\\Console\\EventMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ExceptionMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php', - 'Illuminate\\Foundation\\Console\\JobMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php', - 'Illuminate\\Foundation\\Console\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php', - 'Illuminate\\Foundation\\Console\\KeyGenerateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php', - 'Illuminate\\Foundation\\Console\\ListenerMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php', - 'Illuminate\\Foundation\\Console\\MailMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ModelMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php', - 'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php', - 'Illuminate\\Foundation\\Console\\OptimizeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php', - 'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php', - 'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php', - 'Illuminate\\Foundation\\Console\\PresetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php', - 'Illuminate\\Foundation\\Console\\Presets\\Bootstrap' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php', - 'Illuminate\\Foundation\\Console\\Presets\\None' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php', - 'Illuminate\\Foundation\\Console\\Presets\\Preset' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php', - 'Illuminate\\Foundation\\Console\\Presets\\React' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php', - 'Illuminate\\Foundation\\Console\\Presets\\Vue' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php', - 'Illuminate\\Foundation\\Console\\ProviderMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php', - 'Illuminate\\Foundation\\Console\\QueuedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php', - 'Illuminate\\Foundation\\Console\\RequestMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ResourceMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php', - 'Illuminate\\Foundation\\Console\\RouteCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php', - 'Illuminate\\Foundation\\Console\\RouteClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php', - 'Illuminate\\Foundation\\Console\\RouteListCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php', - 'Illuminate\\Foundation\\Console\\RuleMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ServeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php', - 'Illuminate\\Foundation\\Console\\StorageLinkCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php', - 'Illuminate\\Foundation\\Console\\TestMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php', - 'Illuminate\\Foundation\\Console\\UpCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php', - 'Illuminate\\Foundation\\Console\\VendorPublishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php', - 'Illuminate\\Foundation\\Console\\ViewClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php', - 'Illuminate\\Foundation\\EnvironmentDetector' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php', - 'Illuminate\\Foundation\\Events\\Dispatchable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php', - 'Illuminate\\Foundation\\Events\\LocaleUpdated' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php', - 'Illuminate\\Foundation\\Exceptions\\Handler' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php', - 'Illuminate\\Foundation\\Http\\Events\\RequestHandled' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php', - 'Illuminate\\Foundation\\Http\\Exceptions\\MaintenanceModeException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php', - 'Illuminate\\Foundation\\Http\\FormRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php', - 'Illuminate\\Foundation\\Http\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php', - 'Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php', - 'Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php', - 'Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php', - 'Illuminate\\Foundation\\Http\\Middleware\\TrimStrings' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php', - 'Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php', - 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php', - 'Illuminate\\Foundation\\Inspiring' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Inspiring.php', - 'Illuminate\\Foundation\\PackageManifest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/PackageManifest.php', - 'Illuminate\\Foundation\\ProviderRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php', - 'Illuminate\\Foundation\\Providers\\ArtisanServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\ComposerServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\FormRequestServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithAuthentication' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithConsole' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithContainer' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithExceptionHandling' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithRedis' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithSession' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\MakesHttpRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\MocksApplicationServices' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\HasInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\SoftDeletedInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php', - 'Illuminate\\Foundation\\Testing\\DatabaseMigrations' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php', - 'Illuminate\\Foundation\\Testing\\DatabaseTransactions' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php', - 'Illuminate\\Foundation\\Testing\\HttpException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php', - 'Illuminate\\Foundation\\Testing\\RefreshDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php', - 'Illuminate\\Foundation\\Testing\\RefreshDatabaseState' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php', - 'Illuminate\\Foundation\\Testing\\TestCase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php', - 'Illuminate\\Foundation\\Testing\\TestResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php', - 'Illuminate\\Foundation\\Testing\\WithFaker' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php', - 'Illuminate\\Foundation\\Testing\\WithoutEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php', - 'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php', - 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', - 'Illuminate\\Hashing\\BcryptHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php', - 'Illuminate\\Hashing\\HashServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php', - 'Illuminate\\Http\\Concerns\\InteractsWithContentTypes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php', - 'Illuminate\\Http\\Concerns\\InteractsWithFlashData' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php', - 'Illuminate\\Http\\Concerns\\InteractsWithInput' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php', - 'Illuminate\\Http\\Exceptions\\HttpResponseException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php', - 'Illuminate\\Http\\Exceptions\\PostTooLargeException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php', - 'Illuminate\\Http\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Http/File.php', - 'Illuminate\\Http\\FileHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/Http/FileHelpers.php', - 'Illuminate\\Http\\JsonResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/JsonResponse.php', - 'Illuminate\\Http\\Middleware\\CheckResponseForModifications' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php', - 'Illuminate\\Http\\Middleware\\FrameGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php', - 'Illuminate\\Http\\RedirectResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php', - 'Illuminate\\Http\\Request' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Request.php', - 'Illuminate\\Http\\Resources\\CollectsResources' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php', - 'Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php', - 'Illuminate\\Http\\Resources\\DelegatesToResource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php', - 'Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php', - 'Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php', - 'Illuminate\\Http\\Resources\\Json\\Resource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php', - 'Illuminate\\Http\\Resources\\Json\\ResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php', - 'Illuminate\\Http\\Resources\\Json\\ResourceResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php', - 'Illuminate\\Http\\Resources\\MergeValue' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php', - 'Illuminate\\Http\\Resources\\MissingValue' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php', - 'Illuminate\\Http\\Resources\\PotentiallyMissing' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php', - 'Illuminate\\Http\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Response.php', - 'Illuminate\\Http\\ResponseTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Http/ResponseTrait.php', - 'Illuminate\\Http\\Testing\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/File.php', - 'Illuminate\\Http\\Testing\\FileFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php', - 'Illuminate\\Http\\Testing\\MimeType' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/MimeType.php', - 'Illuminate\\Http\\UploadedFile' => $vendorDir . '/laravel/framework/src/Illuminate/Http/UploadedFile.php', - 'Illuminate\\Log\\Events\\MessageLogged' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php', - 'Illuminate\\Log\\LogServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php', - 'Illuminate\\Log\\Writer' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Writer.php', - 'Illuminate\\Mail\\Events\\MessageSending' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php', - 'Illuminate\\Mail\\Events\\MessageSent' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php', - 'Illuminate\\Mail\\MailServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php', - 'Illuminate\\Mail\\Mailable' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Mailable.php', - 'Illuminate\\Mail\\Mailer' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Mailer.php', - 'Illuminate\\Mail\\Markdown' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Markdown.php', - 'Illuminate\\Mail\\Message' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Message.php', - 'Illuminate\\Mail\\PendingMail' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/PendingMail.php', - 'Illuminate\\Mail\\SendQueuedMailable' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php', - 'Illuminate\\Mail\\TransportManager' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/TransportManager.php', - 'Illuminate\\Mail\\Transport\\ArrayTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php', - 'Illuminate\\Mail\\Transport\\LogTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php', - 'Illuminate\\Mail\\Transport\\MailgunTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php', - 'Illuminate\\Mail\\Transport\\MandrillTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php', - 'Illuminate\\Mail\\Transport\\SesTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php', - 'Illuminate\\Mail\\Transport\\SparkPostTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php', - 'Illuminate\\Mail\\Transport\\Transport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/Transport.php', - 'Illuminate\\Notifications\\Action' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Action.php', - 'Illuminate\\Notifications\\AnonymousNotifiable' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php', - 'Illuminate\\Notifications\\ChannelManager' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/ChannelManager.php', - 'Illuminate\\Notifications\\Channels\\BroadcastChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php', - 'Illuminate\\Notifications\\Channels\\DatabaseChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php', - 'Illuminate\\Notifications\\Channels\\MailChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php', - 'Illuminate\\Notifications\\Channels\\NexmoSmsChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php', - 'Illuminate\\Notifications\\Channels\\SlackWebhookChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php', - 'Illuminate\\Notifications\\Console\\NotificationTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php', - 'Illuminate\\Notifications\\DatabaseNotification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php', - 'Illuminate\\Notifications\\DatabaseNotificationCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php', - 'Illuminate\\Notifications\\Events\\BroadcastNotificationCreated' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php', - 'Illuminate\\Notifications\\Events\\NotificationFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php', - 'Illuminate\\Notifications\\Events\\NotificationSending' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php', - 'Illuminate\\Notifications\\Events\\NotificationSent' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php', - 'Illuminate\\Notifications\\HasDatabaseNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php', - 'Illuminate\\Notifications\\Messages\\BroadcastMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php', - 'Illuminate\\Notifications\\Messages\\DatabaseMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php', - 'Illuminate\\Notifications\\Messages\\MailMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php', - 'Illuminate\\Notifications\\Messages\\NexmoMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php', - 'Illuminate\\Notifications\\Messages\\SimpleMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php', - 'Illuminate\\Notifications\\Messages\\SlackAttachment' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php', - 'Illuminate\\Notifications\\Messages\\SlackAttachmentField' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php', - 'Illuminate\\Notifications\\Messages\\SlackMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php', - 'Illuminate\\Notifications\\Notifiable' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php', - 'Illuminate\\Notifications\\Notification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notification.php', - 'Illuminate\\Notifications\\NotificationSender' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php', - 'Illuminate\\Notifications\\NotificationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php', - 'Illuminate\\Notifications\\RoutesNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php', - 'Illuminate\\Notifications\\SendQueuedNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php', - 'Illuminate\\Pagination\\AbstractPaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php', - 'Illuminate\\Pagination\\LengthAwarePaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php', - 'Illuminate\\Pagination\\PaginationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php', - 'Illuminate\\Pagination\\Paginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/Paginator.php', - 'Illuminate\\Pagination\\UrlWindow' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/UrlWindow.php', - 'Illuminate\\Pipeline\\Hub' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/Hub.php', - 'Illuminate\\Pipeline\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/Pipeline.php', - 'Illuminate\\Pipeline\\PipelineServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php', - 'Illuminate\\Queue\\BeanstalkdQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php', - 'Illuminate\\Queue\\CallQueuedHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php', - 'Illuminate\\Queue\\Capsule\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php', - 'Illuminate\\Queue\\Connectors\\BeanstalkdConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php', - 'Illuminate\\Queue\\Connectors\\ConnectorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php', - 'Illuminate\\Queue\\Connectors\\DatabaseConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php', - 'Illuminate\\Queue\\Connectors\\NullConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php', - 'Illuminate\\Queue\\Connectors\\RedisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php', - 'Illuminate\\Queue\\Connectors\\SqsConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php', - 'Illuminate\\Queue\\Connectors\\SyncConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php', - 'Illuminate\\Queue\\Console\\FailedTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php', - 'Illuminate\\Queue\\Console\\FlushFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php', - 'Illuminate\\Queue\\Console\\ForgetFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php', - 'Illuminate\\Queue\\Console\\ListFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php', - 'Illuminate\\Queue\\Console\\ListenCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php', - 'Illuminate\\Queue\\Console\\RestartCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php', - 'Illuminate\\Queue\\Console\\RetryCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php', - 'Illuminate\\Queue\\Console\\TableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php', - 'Illuminate\\Queue\\Console\\WorkCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php', - 'Illuminate\\Queue\\DatabaseQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php', - 'Illuminate\\Queue\\Events\\JobExceptionOccurred' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php', - 'Illuminate\\Queue\\Events\\JobFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php', - 'Illuminate\\Queue\\Events\\JobProcessed' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php', - 'Illuminate\\Queue\\Events\\JobProcessing' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php', - 'Illuminate\\Queue\\Events\\Looping' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/Looping.php', - 'Illuminate\\Queue\\Events\\WorkerStopping' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php', - 'Illuminate\\Queue\\Failed\\DatabaseFailedJobProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php', - 'Illuminate\\Queue\\Failed\\FailedJobProviderInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php', - 'Illuminate\\Queue\\Failed\\NullFailedJobProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php', - 'Illuminate\\Queue\\FailingJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/FailingJob.php', - 'Illuminate\\Queue\\InteractsWithQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php', - 'Illuminate\\Queue\\InvalidPayloadException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php', - 'Illuminate\\Queue\\Jobs\\BeanstalkdJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php', - 'Illuminate\\Queue\\Jobs\\DatabaseJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php', - 'Illuminate\\Queue\\Jobs\\DatabaseJobRecord' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php', - 'Illuminate\\Queue\\Jobs\\Job' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/Job.php', - 'Illuminate\\Queue\\Jobs\\JobName' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php', - 'Illuminate\\Queue\\Jobs\\RedisJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php', - 'Illuminate\\Queue\\Jobs\\SqsJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php', - 'Illuminate\\Queue\\Jobs\\SyncJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php', - 'Illuminate\\Queue\\Listener' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Listener.php', - 'Illuminate\\Queue\\ListenerOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/ListenerOptions.php', - 'Illuminate\\Queue\\LuaScripts' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/LuaScripts.php', - 'Illuminate\\Queue\\ManuallyFailedException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php', - 'Illuminate\\Queue\\MaxAttemptsExceededException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php', - 'Illuminate\\Queue\\NullQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/NullQueue.php', - 'Illuminate\\Queue\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Queue.php', - 'Illuminate\\Queue\\QueueManager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueManager.php', - 'Illuminate\\Queue\\QueueServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php', - 'Illuminate\\Queue\\RedisQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php', - 'Illuminate\\Queue\\SerializesAndRestoresModelIdentifiers' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php', - 'Illuminate\\Queue\\SerializesModels' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesModels.php', - 'Illuminate\\Queue\\SqsQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SqsQueue.php', - 'Illuminate\\Queue\\SyncQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SyncQueue.php', - 'Illuminate\\Queue\\Worker' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Worker.php', - 'Illuminate\\Queue\\WorkerOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/WorkerOptions.php', - 'Illuminate\\Redis\\Connections\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/Connection.php', - 'Illuminate\\Redis\\Connections\\PhpRedisClusterConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php', - 'Illuminate\\Redis\\Connections\\PhpRedisConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php', - 'Illuminate\\Redis\\Connections\\PredisClusterConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php', - 'Illuminate\\Redis\\Connections\\PredisConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php', - 'Illuminate\\Redis\\Connectors\\PhpRedisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php', - 'Illuminate\\Redis\\Connectors\\PredisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php', - 'Illuminate\\Redis\\Limiters\\ConcurrencyLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php', - 'Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php', - 'Illuminate\\Redis\\Limiters\\DurationLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php', - 'Illuminate\\Redis\\Limiters\\DurationLimiterBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php', - 'Illuminate\\Redis\\RedisManager' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/RedisManager.php', - 'Illuminate\\Redis\\RedisServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php', - 'Illuminate\\Routing\\Console\\ControllerMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php', - 'Illuminate\\Routing\\Console\\MiddlewareMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php', - 'Illuminate\\Routing\\Contracts\\ControllerDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php', - 'Illuminate\\Routing\\Controller' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Controller.php', - 'Illuminate\\Routing\\ControllerDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php', - 'Illuminate\\Routing\\ControllerMiddlewareOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php', - 'Illuminate\\Routing\\Events\\RouteMatched' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php', - 'Illuminate\\Routing\\Exceptions\\UrlGenerationException' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php', - 'Illuminate\\Routing\\ImplicitRouteBinding' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php', - 'Illuminate\\Routing\\Matching\\HostValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php', - 'Illuminate\\Routing\\Matching\\MethodValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php', - 'Illuminate\\Routing\\Matching\\SchemeValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php', - 'Illuminate\\Routing\\Matching\\UriValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php', - 'Illuminate\\Routing\\Matching\\ValidatorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php', - 'Illuminate\\Routing\\MiddlewareNameResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php', - 'Illuminate\\Routing\\Middleware\\SubstituteBindings' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php', - 'Illuminate\\Routing\\Middleware\\ThrottleRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php', - 'Illuminate\\Routing\\Middleware\\ThrottleRequestsWithRedis' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php', - 'Illuminate\\Routing\\PendingResourceRegistration' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php', - 'Illuminate\\Routing\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Pipeline.php', - 'Illuminate\\Routing\\RedirectController' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RedirectController.php', - 'Illuminate\\Routing\\Redirector' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Redirector.php', - 'Illuminate\\Routing\\ResourceRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php', - 'Illuminate\\Routing\\ResponseFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ResponseFactory.php', - 'Illuminate\\Routing\\Route' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Route.php', - 'Illuminate\\Routing\\RouteAction' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteAction.php', - 'Illuminate\\Routing\\RouteBinding' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteBinding.php', - 'Illuminate\\Routing\\RouteCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteCollection.php', - 'Illuminate\\Routing\\RouteCompiler' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteCompiler.php', - 'Illuminate\\Routing\\RouteDependencyResolverTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php', - 'Illuminate\\Routing\\RouteGroup' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteGroup.php', - 'Illuminate\\Routing\\RouteParameterBinder' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php', - 'Illuminate\\Routing\\RouteRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php', - 'Illuminate\\Routing\\RouteSignatureParameters' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php', - 'Illuminate\\Routing\\RouteUrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php', - 'Illuminate\\Routing\\Router' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Router.php', - 'Illuminate\\Routing\\RoutingServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php', - 'Illuminate\\Routing\\SortedMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php', - 'Illuminate\\Routing\\UrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/UrlGenerator.php', - 'Illuminate\\Routing\\ViewController' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ViewController.php', - 'Illuminate\\Session\\CacheBasedSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php', - 'Illuminate\\Session\\Console\\SessionTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php', - 'Illuminate\\Session\\CookieSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php', - 'Illuminate\\Session\\DatabaseSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php', - 'Illuminate\\Session\\EncryptedStore' => $vendorDir . '/laravel/framework/src/Illuminate/Session/EncryptedStore.php', - 'Illuminate\\Session\\ExistenceAwareInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php', - 'Illuminate\\Session\\FileSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/FileSessionHandler.php', - 'Illuminate\\Session\\Middleware\\AuthenticateSession' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php', - 'Illuminate\\Session\\Middleware\\StartSession' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php', - 'Illuminate\\Session\\NullSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/NullSessionHandler.php', - 'Illuminate\\Session\\SessionManager' => $vendorDir . '/laravel/framework/src/Illuminate/Session/SessionManager.php', - 'Illuminate\\Session\\SessionServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php', - 'Illuminate\\Session\\Store' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Store.php', - 'Illuminate\\Session\\TokenMismatchException' => $vendorDir . '/laravel/framework/src/Illuminate/Session/TokenMismatchException.php', - 'Illuminate\\Support\\AggregateServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php', - 'Illuminate\\Support\\Arr' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Arr.php', - 'Illuminate\\Support\\Carbon' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Carbon.php', - 'Illuminate\\Support\\Collection' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Collection.php', - 'Illuminate\\Support\\Composer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Composer.php', - 'Illuminate\\Support\\Debug\\Dumper' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Debug/Dumper.php', - 'Illuminate\\Support\\Debug\\HtmlDumper' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php', - 'Illuminate\\Support\\Facades\\App' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/App.php', - 'Illuminate\\Support\\Facades\\Artisan' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Artisan.php', - 'Illuminate\\Support\\Facades\\Auth' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Auth.php', - 'Illuminate\\Support\\Facades\\Blade' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Blade.php', - 'Illuminate\\Support\\Facades\\Broadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php', - 'Illuminate\\Support\\Facades\\Bus' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Bus.php', - 'Illuminate\\Support\\Facades\\Cache' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Cache.php', - 'Illuminate\\Support\\Facades\\Config' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Config.php', - 'Illuminate\\Support\\Facades\\Cookie' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Cookie.php', - 'Illuminate\\Support\\Facades\\Crypt' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Crypt.php', - 'Illuminate\\Support\\Facades\\DB' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/DB.php', - 'Illuminate\\Support\\Facades\\Event' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Event.php', - 'Illuminate\\Support\\Facades\\Facade' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Facade.php', - 'Illuminate\\Support\\Facades\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/File.php', - 'Illuminate\\Support\\Facades\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Gate.php', - 'Illuminate\\Support\\Facades\\Hash' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Hash.php', - 'Illuminate\\Support\\Facades\\Input' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Input.php', - 'Illuminate\\Support\\Facades\\Lang' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Lang.php', - 'Illuminate\\Support\\Facades\\Log' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Log.php', - 'Illuminate\\Support\\Facades\\Mail' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Mail.php', - 'Illuminate\\Support\\Facades\\Notification' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Notification.php', - 'Illuminate\\Support\\Facades\\Password' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Password.php', - 'Illuminate\\Support\\Facades\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Queue.php', - 'Illuminate\\Support\\Facades\\Redirect' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Redirect.php', - 'Illuminate\\Support\\Facades\\Redis' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Redis.php', - 'Illuminate\\Support\\Facades\\Request' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Request.php', - 'Illuminate\\Support\\Facades\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Response.php', - 'Illuminate\\Support\\Facades\\Route' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Route.php', - 'Illuminate\\Support\\Facades\\Schema' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Schema.php', - 'Illuminate\\Support\\Facades\\Session' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Session.php', - 'Illuminate\\Support\\Facades\\Storage' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Storage.php', - 'Illuminate\\Support\\Facades\\URL' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/URL.php', - 'Illuminate\\Support\\Facades\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Validator.php', - 'Illuminate\\Support\\Facades\\View' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/View.php', - 'Illuminate\\Support\\Fluent' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Fluent.php', - 'Illuminate\\Support\\HigherOrderCollectionProxy' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php', - 'Illuminate\\Support\\HigherOrderTapProxy' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php', - 'Illuminate\\Support\\HtmlString' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HtmlString.php', - 'Illuminate\\Support\\InteractsWithTime' => $vendorDir . '/laravel/framework/src/Illuminate/Support/InteractsWithTime.php', - 'Illuminate\\Support\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Manager.php', - 'Illuminate\\Support\\MessageBag' => $vendorDir . '/laravel/framework/src/Illuminate/Support/MessageBag.php', - 'Illuminate\\Support\\NamespacedItemResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php', - 'Illuminate\\Support\\Optional' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Optional.php', - 'Illuminate\\Support\\Pluralizer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Pluralizer.php', - 'Illuminate\\Support\\ProcessUtils' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ProcessUtils.php', - 'Illuminate\\Support\\ServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ServiceProvider.php', - 'Illuminate\\Support\\Str' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Str.php', - 'Illuminate\\Support\\Testing\\Fakes\\BusFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\EventFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\MailFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\NotificationFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\PendingMailFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\QueueFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php', - 'Illuminate\\Support\\Traits\\CapsuleManagerTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php', - 'Illuminate\\Support\\Traits\\Macroable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Macroable.php', - 'Illuminate\\Support\\ViewErrorBag' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ViewErrorBag.php', - 'Illuminate\\Translation\\ArrayLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/ArrayLoader.php', - 'Illuminate\\Translation\\FileLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/FileLoader.php', - 'Illuminate\\Translation\\MessageSelector' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/MessageSelector.php', - 'Illuminate\\Translation\\TranslationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php', - 'Illuminate\\Translation\\Translator' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/Translator.php', - 'Illuminate\\Validation\\ClosureValidationRule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php', - 'Illuminate\\Validation\\Concerns\\FormatsMessages' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php', - 'Illuminate\\Validation\\Concerns\\ReplacesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php', - 'Illuminate\\Validation\\Concerns\\ValidatesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php', - 'Illuminate\\Validation\\DatabasePresenceVerifier' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php', - 'Illuminate\\Validation\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Factory.php', - 'Illuminate\\Validation\\PresenceVerifierInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php', - 'Illuminate\\Validation\\Rule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rule.php', - 'Illuminate\\Validation\\Rules\\DatabaseRule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php', - 'Illuminate\\Validation\\Rules\\Dimensions' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php', - 'Illuminate\\Validation\\Rules\\Exists' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Exists.php', - 'Illuminate\\Validation\\Rules\\In' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/In.php', - 'Illuminate\\Validation\\Rules\\NotIn' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php', - 'Illuminate\\Validation\\Rules\\Unique' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Unique.php', - 'Illuminate\\Validation\\UnauthorizedException' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php', - 'Illuminate\\Validation\\ValidatesWhenResolvedTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php', - 'Illuminate\\Validation\\ValidationData' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationData.php', - 'Illuminate\\Validation\\ValidationException' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationException.php', - 'Illuminate\\Validation\\ValidationRuleParser' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php', - 'Illuminate\\Validation\\ValidationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php', - 'Illuminate\\Validation\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Validator.php', - 'Illuminate\\View\\Compilers\\BladeCompiler' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php', - 'Illuminate\\View\\Compilers\\Compiler' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Compiler.php', - 'Illuminate\\View\\Compilers\\CompilerInterface' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesAuthorizations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesComments' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesComponents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesConditionals' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesEchos' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesIncludes' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesInjections' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesJson' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesLayouts' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesLoops' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesRawPhp' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesStacks' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesTranslations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php', - 'Illuminate\\View\\Concerns\\ManagesComponents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php', - 'Illuminate\\View\\Concerns\\ManagesEvents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php', - 'Illuminate\\View\\Concerns\\ManagesLayouts' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php', - 'Illuminate\\View\\Concerns\\ManagesLoops' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php', - 'Illuminate\\View\\Concerns\\ManagesStacks' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php', - 'Illuminate\\View\\Concerns\\ManagesTranslations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php', - 'Illuminate\\View\\Engines\\CompilerEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php', - 'Illuminate\\View\\Engines\\Engine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/Engine.php', - 'Illuminate\\View\\Engines\\EngineResolver' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php', - 'Illuminate\\View\\Engines\\FileEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/FileEngine.php', - 'Illuminate\\View\\Engines\\PhpEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php', - 'Illuminate\\View\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/View/Factory.php', - 'Illuminate\\View\\FileViewFinder' => $vendorDir . '/laravel/framework/src/Illuminate/View/FileViewFinder.php', - 'Illuminate\\View\\Middleware\\ShareErrorsFromSession' => $vendorDir . '/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php', - 'Illuminate\\View\\View' => $vendorDir . '/laravel/framework/src/Illuminate/View/View.php', - 'Illuminate\\View\\ViewFinderInterface' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewFinderInterface.php', - 'Illuminate\\View\\ViewName' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewName.php', - 'Illuminate\\View\\ViewServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewServiceProvider.php', - 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php', - 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php', - 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php', - 'Laravel\\Tinker\\ClassAliasAutoloader' => $vendorDir . '/laravel/tinker/src/ClassAliasAutoloader.php', - 'Laravel\\Tinker\\Console\\TinkerCommand' => $vendorDir . '/laravel/tinker/src/Console/TinkerCommand.php', - 'Laravel\\Tinker\\TinkerCaster' => $vendorDir . '/laravel/tinker/src/TinkerCaster.php', - 'Laravel\\Tinker\\TinkerServiceProvider' => $vendorDir . '/laravel/tinker/src/TinkerServiceProvider.php', - 'League\\Flysystem\\AdapterInterface' => $vendorDir . '/league/flysystem/src/AdapterInterface.php', - 'League\\Flysystem\\Adapter\\AbstractAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractAdapter.php', - 'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php', - 'League\\Flysystem\\Adapter\\CanOverwriteFiles' => $vendorDir . '/league/flysystem/src/Adapter/CanOverwriteFiles.php', - 'League\\Flysystem\\Adapter\\Ftp' => $vendorDir . '/league/flysystem/src/Adapter/Ftp.php', - 'League\\Flysystem\\Adapter\\Ftpd' => $vendorDir . '/league/flysystem/src/Adapter/Ftpd.php', - 'League\\Flysystem\\Adapter\\Local' => $vendorDir . '/league/flysystem/src/Adapter/Local.php', - 'League\\Flysystem\\Adapter\\NullAdapter' => $vendorDir . '/league/flysystem/src/Adapter/NullAdapter.php', - 'League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedReadingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedWritingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php', - 'League\\Flysystem\\Adapter\\SynologyFtp' => $vendorDir . '/league/flysystem/src/Adapter/SynologyFtp.php', - 'League\\Flysystem\\Config' => $vendorDir . '/league/flysystem/src/Config.php', - 'League\\Flysystem\\ConfigAwareTrait' => $vendorDir . '/league/flysystem/src/ConfigAwareTrait.php', - 'League\\Flysystem\\Directory' => $vendorDir . '/league/flysystem/src/Directory.php', - 'League\\Flysystem\\Exception' => $vendorDir . '/league/flysystem/src/Exception.php', - 'League\\Flysystem\\File' => $vendorDir . '/league/flysystem/src/File.php', - 'League\\Flysystem\\FileExistsException' => $vendorDir . '/league/flysystem/src/FileExistsException.php', - 'League\\Flysystem\\FileNotFoundException' => $vendorDir . '/league/flysystem/src/FileNotFoundException.php', - 'League\\Flysystem\\Filesystem' => $vendorDir . '/league/flysystem/src/Filesystem.php', - 'League\\Flysystem\\FilesystemInterface' => $vendorDir . '/league/flysystem/src/FilesystemInterface.php', - 'League\\Flysystem\\FilesystemNotFoundException' => $vendorDir . '/league/flysystem/src/FilesystemNotFoundException.php', - 'League\\Flysystem\\Handler' => $vendorDir . '/league/flysystem/src/Handler.php', - 'League\\Flysystem\\MountManager' => $vendorDir . '/league/flysystem/src/MountManager.php', - 'League\\Flysystem\\NotSupportedException' => $vendorDir . '/league/flysystem/src/NotSupportedException.php', - 'League\\Flysystem\\PluginInterface' => $vendorDir . '/league/flysystem/src/PluginInterface.php', - 'League\\Flysystem\\Plugin\\AbstractPlugin' => $vendorDir . '/league/flysystem/src/Plugin/AbstractPlugin.php', - 'League\\Flysystem\\Plugin\\EmptyDir' => $vendorDir . '/league/flysystem/src/Plugin/EmptyDir.php', - 'League\\Flysystem\\Plugin\\ForcedCopy' => $vendorDir . '/league/flysystem/src/Plugin/ForcedCopy.php', - 'League\\Flysystem\\Plugin\\ForcedRename' => $vendorDir . '/league/flysystem/src/Plugin/ForcedRename.php', - 'League\\Flysystem\\Plugin\\GetWithMetadata' => $vendorDir . '/league/flysystem/src/Plugin/GetWithMetadata.php', - 'League\\Flysystem\\Plugin\\ListFiles' => $vendorDir . '/league/flysystem/src/Plugin/ListFiles.php', - 'League\\Flysystem\\Plugin\\ListPaths' => $vendorDir . '/league/flysystem/src/Plugin/ListPaths.php', - 'League\\Flysystem\\Plugin\\ListWith' => $vendorDir . '/league/flysystem/src/Plugin/ListWith.php', - 'League\\Flysystem\\Plugin\\PluggableTrait' => $vendorDir . '/league/flysystem/src/Plugin/PluggableTrait.php', - 'League\\Flysystem\\Plugin\\PluginNotFoundException' => $vendorDir . '/league/flysystem/src/Plugin/PluginNotFoundException.php', - 'League\\Flysystem\\ReadInterface' => $vendorDir . '/league/flysystem/src/ReadInterface.php', - 'League\\Flysystem\\RootViolationException' => $vendorDir . '/league/flysystem/src/RootViolationException.php', - 'League\\Flysystem\\SafeStorage' => $vendorDir . '/league/flysystem/src/SafeStorage.php', - 'League\\Flysystem\\UnreadableFileException' => $vendorDir . '/league/flysystem/src/UnreadableFileException.php', - 'League\\Flysystem\\Util' => $vendorDir . '/league/flysystem/src/Util.php', - 'League\\Flysystem\\Util\\ContentListingFormatter' => $vendorDir . '/league/flysystem/src/Util/ContentListingFormatter.php', - 'League\\Flysystem\\Util\\MimeType' => $vendorDir . '/league/flysystem/src/Util/MimeType.php', - 'League\\Flysystem\\Util\\StreamHasher' => $vendorDir . '/league/flysystem/src/Util/StreamHasher.php', - 'Mockery' => $vendorDir . '/mockery/mockery/library/Mockery.php', - 'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegration' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php', - 'Mockery\\Adapter\\Phpunit\\MockeryTestCase' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php', - 'Mockery\\Adapter\\Phpunit\\TestListener' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php', - 'Mockery\\CompositeExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/CompositeExpectation.php', - 'Mockery\\Configuration' => $vendorDir . '/mockery/mockery/library/Mockery/Configuration.php', - 'Mockery\\Container' => $vendorDir . '/mockery/mockery/library/Mockery/Container.php', - 'Mockery\\CountValidator\\AtLeast' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/AtLeast.php', - 'Mockery\\CountValidator\\AtMost' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/AtMost.php', - 'Mockery\\CountValidator\\CountValidatorAbstract' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php', - 'Mockery\\CountValidator\\Exact' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/Exact.php', - 'Mockery\\CountValidator\\Exception' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/Exception.php', - 'Mockery\\Exception' => $vendorDir . '/mockery/mockery/library/Mockery/Exception.php', - 'Mockery\\Exception\\BadMethodCallException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/BadMethodCallException.php', - 'Mockery\\Exception\\InvalidArgumentException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php', - 'Mockery\\Exception\\InvalidCountException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidCountException.php', - 'Mockery\\Exception\\InvalidOrderException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php', - 'Mockery\\Exception\\NoMatchingExpectationException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php', - 'Mockery\\Exception\\RuntimeException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/RuntimeException.php', - 'Mockery\\Expectation' => $vendorDir . '/mockery/mockery/library/Mockery/Expectation.php', - 'Mockery\\ExpectationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/ExpectationDirector.php', - 'Mockery\\ExpectationInterface' => $vendorDir . '/mockery/mockery/library/Mockery/ExpectationInterface.php', - 'Mockery\\ExpectsHigherOrderMessage' => $vendorDir . '/mockery/mockery/library/Mockery/ExpectsHigherOrderMessage.php', - 'Mockery\\Generator\\CachingGenerator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/CachingGenerator.php', - 'Mockery\\Generator\\DefinedTargetClass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php', - 'Mockery\\Generator\\Generator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Generator.php', - 'Mockery\\Generator\\Method' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Method.php', - 'Mockery\\Generator\\MockConfiguration' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockConfiguration.php', - 'Mockery\\Generator\\MockConfigurationBuilder' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php', - 'Mockery\\Generator\\MockDefinition' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockDefinition.php', - 'Mockery\\Generator\\Parameter' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Parameter.php', - 'Mockery\\Generator\\StringManipulationGenerator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\CallTypeHintPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\ClassNamePass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\ClassPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\InstanceMockPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\InterfacePass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\MagicMethodTypeHintsPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\MethodDefinitionPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\Pass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveBuiltinMethodsThatAreFinalPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveBuiltinMethodsThatAreFinalPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveDestructorPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveUnserializeForInternalSerializableClassesPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\TraitPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php', - 'Mockery\\Generator\\TargetClassInterface' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php', - 'Mockery\\Generator\\UndefinedTargetClass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php', - 'Mockery\\HigherOrderMessage' => $vendorDir . '/mockery/mockery/library/Mockery/HigherOrderMessage.php', - 'Mockery\\Instantiator' => $vendorDir . '/mockery/mockery/library/Mockery/Instantiator.php', - 'Mockery\\Loader\\EvalLoader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/EvalLoader.php', - 'Mockery\\Loader\\Loader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/Loader.php', - 'Mockery\\Loader\\RequireLoader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/RequireLoader.php', - 'Mockery\\Matcher\\Any' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Any.php', - 'Mockery\\Matcher\\AnyArgs' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/AnyArgs.php', - 'Mockery\\Matcher\\AnyOf' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/AnyOf.php', - 'Mockery\\Matcher\\ArgumentListMatcher' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php', - 'Mockery\\Matcher\\Closure' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Closure.php', - 'Mockery\\Matcher\\Contains' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Contains.php', - 'Mockery\\Matcher\\Ducktype' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Ducktype.php', - 'Mockery\\Matcher\\HasKey' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/HasKey.php', - 'Mockery\\Matcher\\HasValue' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/HasValue.php', - 'Mockery\\Matcher\\MatcherAbstract' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php', - 'Mockery\\Matcher\\MultiArgumentClosure' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php', - 'Mockery\\Matcher\\MustBe' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MustBe.php', - 'Mockery\\Matcher\\NoArgs' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/NoArgs.php', - 'Mockery\\Matcher\\Not' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Not.php', - 'Mockery\\Matcher\\NotAnyOf' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php', - 'Mockery\\Matcher\\PHPUnitConstraint' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/PHPUnitConstraint.php', - 'Mockery\\Matcher\\Pattern' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Pattern.php', - 'Mockery\\Matcher\\Subset' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Subset.php', - 'Mockery\\Matcher\\Type' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Type.php', - 'Mockery\\MethodCall' => $vendorDir . '/mockery/mockery/library/Mockery/MethodCall.php', - 'Mockery\\Mock' => $vendorDir . '/mockery/mockery/library/Mockery/Mock.php', - 'Mockery\\MockInterface' => $vendorDir . '/mockery/mockery/library/Mockery/MockInterface.php', - 'Mockery\\ReceivedMethodCalls' => $vendorDir . '/mockery/mockery/library/Mockery/ReceivedMethodCalls.php', - 'Mockery\\Undefined' => $vendorDir . '/mockery/mockery/library/Mockery/Undefined.php', - 'Mockery\\VerificationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationDirector.php', - 'Mockery\\VerificationExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationExpectation.php', - 'Monolog\\ErrorHandler' => $vendorDir . '/monolog/monolog/src/Monolog/ErrorHandler.php', - 'Monolog\\Formatter\\ChromePHPFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php', - 'Monolog\\Formatter\\ElasticaFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php', - 'Monolog\\Formatter\\FlowdockFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php', - 'Monolog\\Formatter\\FluentdFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php', - 'Monolog\\Formatter\\FormatterInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php', - 'Monolog\\Formatter\\GelfMessageFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php', - 'Monolog\\Formatter\\HtmlFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php', - 'Monolog\\Formatter\\JsonFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php', - 'Monolog\\Formatter\\LineFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LineFormatter.php', - 'Monolog\\Formatter\\LogglyFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php', - 'Monolog\\Formatter\\LogstashFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php', - 'Monolog\\Formatter\\MongoDBFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php', - 'Monolog\\Formatter\\NormalizerFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php', - 'Monolog\\Formatter\\ScalarFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php', - 'Monolog\\Formatter\\WildfireFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php', - 'Monolog\\Handler\\AbstractHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractHandler.php', - 'Monolog\\Handler\\AbstractProcessingHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php', - 'Monolog\\Handler\\AbstractSyslogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php', - 'Monolog\\Handler\\AmqpHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AmqpHandler.php', - 'Monolog\\Handler\\BrowserConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php', - 'Monolog\\Handler\\BufferHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/BufferHandler.php', - 'Monolog\\Handler\\ChromePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php', - 'Monolog\\Handler\\CouchDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php', - 'Monolog\\Handler\\CubeHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/CubeHandler.php', - 'Monolog\\Handler\\Curl\\Util' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/Curl/Util.php', - 'Monolog\\Handler\\DeduplicationHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php', - 'Monolog\\Handler\\DoctrineCouchDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php', - 'Monolog\\Handler\\DynamoDbHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php', - 'Monolog\\Handler\\ElasticSearchHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php', - 'Monolog\\Handler\\ErrorLogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php', - 'Monolog\\Handler\\FilterHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FilterHandler.php', - 'Monolog\\Handler\\FingersCrossedHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php', - 'Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php', - 'Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php', - 'Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php', - 'Monolog\\Handler\\FirePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php', - 'Monolog\\Handler\\FleepHookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php', - 'Monolog\\Handler\\FlowdockHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php', - 'Monolog\\Handler\\GelfHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php', - 'Monolog\\Handler\\GroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php', - 'Monolog\\Handler\\HandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php', - 'Monolog\\Handler\\HandlerWrapper' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', - 'Monolog\\Handler\\HipChatHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php', - 'Monolog\\Handler\\IFTTTHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', - 'Monolog\\Handler\\LogEntriesHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', - 'Monolog\\Handler\\LogglyHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', - 'Monolog\\Handler\\MailHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MailHandler.php', - 'Monolog\\Handler\\MandrillHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MandrillHandler.php', - 'Monolog\\Handler\\MissingExtensionException' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php', - 'Monolog\\Handler\\MongoDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php', - 'Monolog\\Handler\\NativeMailerHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php', - 'Monolog\\Handler\\NewRelicHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php', - 'Monolog\\Handler\\NullHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NullHandler.php', - 'Monolog\\Handler\\PHPConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php', - 'Monolog\\Handler\\PsrHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php', - 'Monolog\\Handler\\PushoverHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php', - 'Monolog\\Handler\\RavenHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php', - 'Monolog\\Handler\\RedisHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RedisHandler.php', - 'Monolog\\Handler\\RollbarHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RollbarHandler.php', - 'Monolog\\Handler\\RotatingFileHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php', - 'Monolog\\Handler\\SamplingHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SamplingHandler.php', - 'Monolog\\Handler\\SlackHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackHandler.php', - 'Monolog\\Handler\\SlackWebhookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php', - 'Monolog\\Handler\\Slack\\SlackRecord' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php', - 'Monolog\\Handler\\SlackbotHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php', - 'Monolog\\Handler\\SocketHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SocketHandler.php', - 'Monolog\\Handler\\StreamHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/StreamHandler.php', - 'Monolog\\Handler\\SwiftMailerHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php', - 'Monolog\\Handler\\SyslogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogHandler.php', - 'Monolog\\Handler\\SyslogUdpHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php', - 'Monolog\\Handler\\SyslogUdp\\UdpSocket' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php', - 'Monolog\\Handler\\TestHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/TestHandler.php', - 'Monolog\\Handler\\WhatFailureGroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php', - 'Monolog\\Handler\\ZendMonitorHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php', - 'Monolog\\Logger' => $vendorDir . '/monolog/monolog/src/Monolog/Logger.php', - 'Monolog\\Processor\\GitProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/GitProcessor.php', - 'Monolog\\Processor\\IntrospectionProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php', - 'Monolog\\Processor\\MemoryPeakUsageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php', - 'Monolog\\Processor\\MemoryProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php', - 'Monolog\\Processor\\MemoryUsageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', - 'Monolog\\Processor\\MercurialProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', - 'Monolog\\Processor\\ProcessIdProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', - 'Monolog\\Processor\\PsrLogMessageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', - 'Monolog\\Processor\\TagProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php', - 'Monolog\\Processor\\UidProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php', - 'Monolog\\Processor\\WebProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php', - 'Monolog\\Registry' => $vendorDir . '/monolog/monolog/src/Monolog/Registry.php', - 'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php', - 'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php', - 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', - 'PHPUnit\\Framework\\BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/BaseTestListener.php', - 'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', - 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', - 'PHPUnit\\Framework\\Constraint\\ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', - 'PHPUnit\\Framework\\Constraint\\Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', - 'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', - 'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', - 'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php', - 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php', - 'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', - 'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', - 'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', - 'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', - 'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', - 'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', - 'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php', - 'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php', - 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', - 'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', - 'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php', - 'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', - 'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php', - 'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', - 'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', - 'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', - 'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', - 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php', - 'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php', - 'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php', - 'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php', - 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', - 'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', - 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', - 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php', - 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', - 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php', - 'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', - 'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', - 'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php', - 'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php', - 'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php', - 'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php', - 'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', - 'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', - 'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php', - 'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', - 'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', - 'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Match.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Generator.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invokable.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Verifiable.php', - 'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php', - 'PHPUnit\\Framework\\RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php', - 'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php', - 'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php', - 'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php', - 'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', - 'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php', - 'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', - 'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php', - 'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php', - 'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php', - 'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php', - 'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php', - 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', - 'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php', - 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php', - 'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', - 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', - 'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php', - 'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php', - 'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', - 'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php', - 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php', - 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', - 'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php', - 'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php', - 'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php', - 'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', - 'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php', - 'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php', - 'PHPUnit\\Util\\Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php', - 'PHPUnit\\Util\\ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php', - 'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php', - 'PHPUnit\\Util\\Fileloader' => $vendorDir . '/phpunit/phpunit/src/Util/Fileloader.php', - 'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php', - 'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php', - 'PHPUnit\\Util\\Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php', - 'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php', - 'PHPUnit\\Util\\InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', - 'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php', - 'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php', - 'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php', - 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', - 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', - 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', - 'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php', - 'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php', - 'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php', - 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', - 'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', - 'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', - 'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php', - 'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php', - 'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/MockObject.php', - 'PHP_Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php', - 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ASYNC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AWAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMPILER_HALT_OFFSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENUM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EQUALS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_JOIN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LAMBDA_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LAMBDA_CP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LAMBDA_OP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ONUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SHAPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SUPER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php', - 'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', - 'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TYPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TYPELIST_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TYPELIST_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHERE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_ATTRIBUTE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_CATEGORY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_CATEGORY_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_CHILDREN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_REQUIRED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_TAG_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_TAG_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_TEXT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'ParseError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ParseError.php', - 'Parsedown' => $vendorDir . '/erusev/parsedown/Parsedown.php', - 'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php', - 'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php', - 'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php', - 'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php', - 'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', - 'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php', - 'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php', - 'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php', - 'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php', - 'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', - 'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php', - 'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php', - 'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php', - 'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php', - 'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php', - 'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php', - 'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php', - 'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php', - 'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php', - 'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php', - 'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php', - 'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php', - 'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php', - 'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', - 'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', - 'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', - 'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php', - 'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php', - 'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php', - 'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php', - 'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php', - 'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', - 'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php', - 'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php', - 'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', - 'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php', - 'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php', - 'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php', - 'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', - 'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php', - 'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php', - 'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', - 'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php', - 'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php', - 'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php', - 'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', - 'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php', - 'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php', - 'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php', - 'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/AbstractVersionConstraint.php', - 'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/AndVersionConstraintGroup.php', - 'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/AnyVersionConstraint.php', - 'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/ExactVersionConstraint.php', - 'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/Exception.php', - 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php', - 'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/InvalidVersionException.php', - 'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/OrVersionConstraintGroup.php', - 'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php', - 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php', - 'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/SpecificMajorVersionConstraint.php', - 'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/UnsupportedVersionConstraintException.php', - 'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php', - 'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/VersionConstraint.php', - 'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php', - 'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php', - 'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php', - 'PhpParser\\Autoloader' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Autoloader.php', - 'PhpParser\\Builder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder.php', - 'PhpParser\\BuilderAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/BuilderAbstract.php', - 'PhpParser\\BuilderFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/BuilderFactory.php', - 'PhpParser\\Builder\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Class_.php', - 'PhpParser\\Builder\\Declaration' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Declaration.php', - 'PhpParser\\Builder\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php', - 'PhpParser\\Builder\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Function_.php', - 'PhpParser\\Builder\\Interface_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Interface_.php', - 'PhpParser\\Builder\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Method.php', - 'PhpParser\\Builder\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php', - 'PhpParser\\Builder\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Param.php', - 'PhpParser\\Builder\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Property.php', - 'PhpParser\\Builder\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php', - 'PhpParser\\Builder\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php', - 'PhpParser\\Comment' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment.php', - 'PhpParser\\Comment\\Doc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment/Doc.php', - 'PhpParser\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Error.php', - 'PhpParser\\ErrorHandler' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler.php', - 'PhpParser\\ErrorHandler\\Collecting' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php', - 'PhpParser\\ErrorHandler\\Throwing' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php', - 'PhpParser\\Lexer' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer.php', - 'PhpParser\\Lexer\\Emulative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php', - 'PhpParser\\Node' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node.php', - 'PhpParser\\NodeAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php', - 'PhpParser\\NodeDumper' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeDumper.php', - 'PhpParser\\NodeTraverser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeTraverser.php', - 'PhpParser\\NodeTraverserInterface' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php', - 'PhpParser\\NodeVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php', - 'PhpParser\\NodeVisitorAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php', - 'PhpParser\\NodeVisitor\\NameResolver' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php', - 'PhpParser\\Node\\Arg' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Arg.php', - 'PhpParser\\Node\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Const_.php', - 'PhpParser\\Node\\Expr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr.php', - 'PhpParser\\Node\\Expr\\ArrayDimFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php', - 'PhpParser\\Node\\Expr\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php', - 'PhpParser\\Node\\Expr\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php', - 'PhpParser\\Node\\Expr\\Assign' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php', - 'PhpParser\\Node\\Expr\\AssignOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Mod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Mul' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Plus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Pow' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php', - 'PhpParser\\Node\\Expr\\AssignOp\\ShiftLeft' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php', - 'PhpParser\\Node\\Expr\\AssignOp\\ShiftRight' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php', - 'PhpParser\\Node\\Expr\\AssignRef' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php', - 'PhpParser\\Node\\Expr\\BinaryOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BooleanOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Coalesce' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Equal' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Greater' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\GreaterOrEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Identical' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Mod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Mul' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\NotEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Plus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Pow' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\ShiftLeft' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\ShiftRight' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Smaller' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Spaceship' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php', - 'PhpParser\\Node\\Expr\\BitwiseNot' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php', - 'PhpParser\\Node\\Expr\\BooleanNot' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php', - 'PhpParser\\Node\\Expr\\Cast' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php', - 'PhpParser\\Node\\Expr\\Cast\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php', - 'PhpParser\\Node\\Expr\\Cast\\Bool_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php', - 'PhpParser\\Node\\Expr\\Cast\\Double' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php', - 'PhpParser\\Node\\Expr\\Cast\\Int_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php', - 'PhpParser\\Node\\Expr\\Cast\\Object_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php', - 'PhpParser\\Node\\Expr\\Cast\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php', - 'PhpParser\\Node\\Expr\\Cast\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php', - 'PhpParser\\Node\\Expr\\ClassConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php', - 'PhpParser\\Node\\Expr\\Clone_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php', - 'PhpParser\\Node\\Expr\\Closure' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php', - 'PhpParser\\Node\\Expr\\ClosureUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php', - 'PhpParser\\Node\\Expr\\ConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php', - 'PhpParser\\Node\\Expr\\Empty_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php', - 'PhpParser\\Node\\Expr\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php', - 'PhpParser\\Node\\Expr\\ErrorSuppress' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php', - 'PhpParser\\Node\\Expr\\Eval_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php', - 'PhpParser\\Node\\Expr\\Exit_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php', - 'PhpParser\\Node\\Expr\\FuncCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php', - 'PhpParser\\Node\\Expr\\Include_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php', - 'PhpParser\\Node\\Expr\\Instanceof_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php', - 'PhpParser\\Node\\Expr\\Isset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php', - 'PhpParser\\Node\\Expr\\List_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php', - 'PhpParser\\Node\\Expr\\MethodCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php', - 'PhpParser\\Node\\Expr\\New_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php', - 'PhpParser\\Node\\Expr\\PostDec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php', - 'PhpParser\\Node\\Expr\\PostInc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php', - 'PhpParser\\Node\\Expr\\PreDec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php', - 'PhpParser\\Node\\Expr\\PreInc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php', - 'PhpParser\\Node\\Expr\\Print_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php', - 'PhpParser\\Node\\Expr\\PropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php', - 'PhpParser\\Node\\Expr\\ShellExec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php', - 'PhpParser\\Node\\Expr\\StaticCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php', - 'PhpParser\\Node\\Expr\\StaticPropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php', - 'PhpParser\\Node\\Expr\\Ternary' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php', - 'PhpParser\\Node\\Expr\\UnaryMinus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php', - 'PhpParser\\Node\\Expr\\UnaryPlus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php', - 'PhpParser\\Node\\Expr\\Variable' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php', - 'PhpParser\\Node\\Expr\\YieldFrom' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php', - 'PhpParser\\Node\\Expr\\Yield_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php', - 'PhpParser\\Node\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php', - 'PhpParser\\Node\\Name' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name.php', - 'PhpParser\\Node\\Name\\FullyQualified' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php', - 'PhpParser\\Node\\Name\\Relative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php', - 'PhpParser\\Node\\NullableType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php', - 'PhpParser\\Node\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Param.php', - 'PhpParser\\Node\\Scalar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php', - 'PhpParser\\Node\\Scalar\\DNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php', - 'PhpParser\\Node\\Scalar\\Encapsed' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php', - 'PhpParser\\Node\\Scalar\\EncapsedStringPart' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php', - 'PhpParser\\Node\\Scalar\\LNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php', - 'PhpParser\\Node\\Scalar\\MagicConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Dir' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\File' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Line' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php', - 'PhpParser\\Node\\Scalar\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php', - 'PhpParser\\Node\\Stmt' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php', - 'PhpParser\\Node\\Stmt\\Break_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php', - 'PhpParser\\Node\\Stmt\\Case_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php', - 'PhpParser\\Node\\Stmt\\Catch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php', - 'PhpParser\\Node\\Stmt\\ClassConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php', - 'PhpParser\\Node\\Stmt\\ClassLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php', - 'PhpParser\\Node\\Stmt\\ClassMethod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php', - 'PhpParser\\Node\\Stmt\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php', - 'PhpParser\\Node\\Stmt\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php', - 'PhpParser\\Node\\Stmt\\Continue_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php', - 'PhpParser\\Node\\Stmt\\DeclareDeclare' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php', - 'PhpParser\\Node\\Stmt\\Declare_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php', - 'PhpParser\\Node\\Stmt\\Do_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php', - 'PhpParser\\Node\\Stmt\\Echo_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php', - 'PhpParser\\Node\\Stmt\\ElseIf_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php', - 'PhpParser\\Node\\Stmt\\Else_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php', - 'PhpParser\\Node\\Stmt\\Finally_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php', - 'PhpParser\\Node\\Stmt\\For_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php', - 'PhpParser\\Node\\Stmt\\Foreach_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php', - 'PhpParser\\Node\\Stmt\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php', - 'PhpParser\\Node\\Stmt\\Global_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php', - 'PhpParser\\Node\\Stmt\\Goto_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php', - 'PhpParser\\Node\\Stmt\\GroupUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php', - 'PhpParser\\Node\\Stmt\\HaltCompiler' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php', - 'PhpParser\\Node\\Stmt\\If_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php', - 'PhpParser\\Node\\Stmt\\InlineHTML' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php', - 'PhpParser\\Node\\Stmt\\Interface_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php', - 'PhpParser\\Node\\Stmt\\Label' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php', - 'PhpParser\\Node\\Stmt\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php', - 'PhpParser\\Node\\Stmt\\Nop' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php', - 'PhpParser\\Node\\Stmt\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php', - 'PhpParser\\Node\\Stmt\\PropertyProperty' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php', - 'PhpParser\\Node\\Stmt\\Return_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php', - 'PhpParser\\Node\\Stmt\\StaticVar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php', - 'PhpParser\\Node\\Stmt\\Static_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php', - 'PhpParser\\Node\\Stmt\\Switch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php', - 'PhpParser\\Node\\Stmt\\Throw_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php', - 'PhpParser\\Node\\Stmt\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Precedence' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php', - 'PhpParser\\Node\\Stmt\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php', - 'PhpParser\\Node\\Stmt\\TryCatch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php', - 'PhpParser\\Node\\Stmt\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php', - 'PhpParser\\Node\\Stmt\\UseUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php', - 'PhpParser\\Node\\Stmt\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php', - 'PhpParser\\Node\\Stmt\\While_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php', - 'PhpParser\\Parser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser.php', - 'PhpParser\\ParserAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php', - 'PhpParser\\ParserFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserFactory.php', - 'PhpParser\\Parser\\Multiple' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Multiple.php', - 'PhpParser\\Parser\\Php5' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php5.php', - 'PhpParser\\Parser\\Php7' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php', - 'PhpParser\\Parser\\Tokens' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php', - 'PhpParser\\PrettyPrinterAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', - 'PhpParser\\PrettyPrinter\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', - 'PhpParser\\Serializer' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Serializer.php', - 'PhpParser\\Serializer\\XML' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Serializer/XML.php', - 'PhpParser\\Unserializer' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Unserializer.php', - 'PhpParser\\Unserializer\\XML' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Unserializer/XML.php', - 'Prophecy\\Argument' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument.php', - 'Prophecy\\Argument\\ArgumentsWildcard' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php', - 'Prophecy\\Argument\\Token\\AnyValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php', - 'Prophecy\\Argument\\Token\\AnyValuesToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php', - 'Prophecy\\Argument\\Token\\ApproximateValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php', - 'Prophecy\\Argument\\Token\\ArrayCountToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php', - 'Prophecy\\Argument\\Token\\ArrayEntryToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php', - 'Prophecy\\Argument\\Token\\ArrayEveryEntryToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php', - 'Prophecy\\Argument\\Token\\CallbackToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php', - 'Prophecy\\Argument\\Token\\ExactValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php', - 'Prophecy\\Argument\\Token\\IdenticalValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php', - 'Prophecy\\Argument\\Token\\LogicalAndToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php', - 'Prophecy\\Argument\\Token\\LogicalNotToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php', - 'Prophecy\\Argument\\Token\\ObjectStateToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php', - 'Prophecy\\Argument\\Token\\StringContainsToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php', - 'Prophecy\\Argument\\Token\\TokenInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php', - 'Prophecy\\Argument\\Token\\TypeToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php', - 'Prophecy\\Call\\Call' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Call/Call.php', - 'Prophecy\\Call\\CallCenter' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Call/CallCenter.php', - 'Prophecy\\Comparator\\ClosureComparator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php', - 'Prophecy\\Comparator\\Factory' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/Factory.php', - 'Prophecy\\Comparator\\ProphecyComparator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php', - 'Prophecy\\Doubler\\CachedDoubler' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php', - 'Prophecy\\Doubler\\ClassPatch\\ClassPatchInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php', - 'Prophecy\\Doubler\\ClassPatch\\DisableConstructorPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\HhvmExceptionPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\KeywordPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\MagicCallPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\ProphecySubjectPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\ReflectionClassNewInstancePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php', - 'Prophecy\\Doubler\\ClassPatch\\SplFileInfoPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\TraversablePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php', - 'Prophecy\\Doubler\\DoubleInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php', - 'Prophecy\\Doubler\\Doubler' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php', - 'Prophecy\\Doubler\\Generator\\ClassCodeGenerator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php', - 'Prophecy\\Doubler\\Generator\\ClassCreator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php', - 'Prophecy\\Doubler\\Generator\\ClassMirror' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php', - 'Prophecy\\Doubler\\Generator\\Node\\ArgumentNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php', - 'Prophecy\\Doubler\\Generator\\Node\\ClassNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php', - 'Prophecy\\Doubler\\Generator\\Node\\MethodNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php', - 'Prophecy\\Doubler\\Generator\\ReflectionInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php', - 'Prophecy\\Doubler\\LazyDouble' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php', - 'Prophecy\\Doubler\\NameGenerator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php', - 'Prophecy\\Exception\\Call\\UnexpectedCallException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php', - 'Prophecy\\Exception\\Doubler\\ClassCreatorException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php', - 'Prophecy\\Exception\\Doubler\\ClassMirrorException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php', - 'Prophecy\\Exception\\Doubler\\ClassNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\DoubleException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php', - 'Prophecy\\Exception\\Doubler\\DoublerException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php', - 'Prophecy\\Exception\\Doubler\\InterfaceNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\MethodNotExtendableException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php', - 'Prophecy\\Exception\\Doubler\\MethodNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\ReturnByReferenceException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php', - 'Prophecy\\Exception\\Exception' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Exception.php', - 'Prophecy\\Exception\\InvalidArgumentException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php', - 'Prophecy\\Exception\\Prediction\\AggregateException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php', - 'Prophecy\\Exception\\Prediction\\FailedPredictionException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php', - 'Prophecy\\Exception\\Prediction\\NoCallsException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php', - 'Prophecy\\Exception\\Prediction\\PredictionException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php', - 'Prophecy\\Exception\\Prediction\\UnexpectedCallsCountException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php', - 'Prophecy\\Exception\\Prediction\\UnexpectedCallsException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php', - 'Prophecy\\Exception\\Prophecy\\MethodProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php', - 'Prophecy\\Exception\\Prophecy\\ObjectProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php', - 'Prophecy\\Exception\\Prophecy\\ProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php', - 'Prophecy\\PhpDocumentor\\ClassAndInterfaceTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php', - 'Prophecy\\PhpDocumentor\\ClassTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php', - 'Prophecy\\PhpDocumentor\\LegacyClassTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php', - 'Prophecy\\PhpDocumentor\\MethodTagRetrieverInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php', - 'Prophecy\\Prediction\\CallPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php', - 'Prophecy\\Prediction\\CallTimesPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php', - 'Prophecy\\Prediction\\CallbackPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php', - 'Prophecy\\Prediction\\NoCallsPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php', - 'Prophecy\\Prediction\\PredictionInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php', - 'Prophecy\\Promise\\CallbackPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php', - 'Prophecy\\Promise\\PromiseInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php', - 'Prophecy\\Promise\\ReturnArgumentPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php', - 'Prophecy\\Promise\\ReturnPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php', - 'Prophecy\\Promise\\ThrowPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php', - 'Prophecy\\Prophecy\\MethodProphecy' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php', - 'Prophecy\\Prophecy\\ObjectProphecy' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php', - 'Prophecy\\Prophecy\\ProphecyInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php', - 'Prophecy\\Prophecy\\ProphecySubjectInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php', - 'Prophecy\\Prophecy\\Revealer' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php', - 'Prophecy\\Prophecy\\RevealerInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php', - 'Prophecy\\Prophet' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophet.php', - 'Prophecy\\Util\\ExportUtil' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php', - 'Prophecy\\Util\\StringUtil' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Util/StringUtil.php', - 'Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', - 'Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', - 'Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', - 'Psr\\Http\\Message\\MessageInterface' => $vendorDir . '/psr/http-message/src/MessageInterface.php', - 'Psr\\Http\\Message\\RequestInterface' => $vendorDir . '/psr/http-message/src/RequestInterface.php', - 'Psr\\Http\\Message\\ResponseInterface' => $vendorDir . '/psr/http-message/src/ResponseInterface.php', - 'Psr\\Http\\Message\\ServerRequestInterface' => $vendorDir . '/psr/http-message/src/ServerRequestInterface.php', - 'Psr\\Http\\Message\\StreamInterface' => $vendorDir . '/psr/http-message/src/StreamInterface.php', - 'Psr\\Http\\Message\\UploadedFileInterface' => $vendorDir . '/psr/http-message/src/UploadedFileInterface.php', - 'Psr\\Http\\Message\\UriInterface' => $vendorDir . '/psr/http-message/src/UriInterface.php', - 'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php', - 'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php', - 'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php', - 'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareInterface.php', - 'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareTrait.php', - 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php', - 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php', - 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', - 'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', - 'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', - 'Psy\\Autoloader' => $vendorDir . '/psy/psysh/src/Psy/Autoloader.php', - 'Psy\\CodeCleaner' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner.php', - 'Psy\\CodeCleaner\\AbstractClassPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/AbstractClassPass.php', - 'Psy\\CodeCleaner\\AssignThisVariablePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/AssignThisVariablePass.php', - 'Psy\\CodeCleaner\\CallTimePassByReferencePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/CallTimePassByReferencePass.php', - 'Psy\\CodeCleaner\\CalledClassPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/CalledClassPass.php', - 'Psy\\CodeCleaner\\CodeCleanerPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/CodeCleanerPass.php', - 'Psy\\CodeCleaner\\ExitPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/ExitPass.php', - 'Psy\\CodeCleaner\\FinalClassPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/FinalClassPass.php', - 'Psy\\CodeCleaner\\FunctionContextPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/FunctionContextPass.php', - 'Psy\\CodeCleaner\\FunctionReturnInWriteContextPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/FunctionReturnInWriteContextPass.php', - 'Psy\\CodeCleaner\\ImplicitReturnPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/ImplicitReturnPass.php', - 'Psy\\CodeCleaner\\InstanceOfPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/InstanceOfPass.php', - 'Psy\\CodeCleaner\\LeavePsyshAlonePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/LeavePsyshAlonePass.php', - 'Psy\\CodeCleaner\\LegacyEmptyPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/LegacyEmptyPass.php', - 'Psy\\CodeCleaner\\LoopContextPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/LoopContextPass.php', - 'Psy\\CodeCleaner\\MagicConstantsPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/MagicConstantsPass.php', - 'Psy\\CodeCleaner\\NamespaceAwarePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/NamespaceAwarePass.php', - 'Psy\\CodeCleaner\\NamespacePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/NamespacePass.php', - 'Psy\\CodeCleaner\\NoReturnValue' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/NoReturnValue.php', - 'Psy\\CodeCleaner\\PassableByReferencePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/PassableByReferencePass.php', - 'Psy\\CodeCleaner\\RequirePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/RequirePass.php', - 'Psy\\CodeCleaner\\StaticConstructorPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/StaticConstructorPass.php', - 'Psy\\CodeCleaner\\StrictTypesPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/StrictTypesPass.php', - 'Psy\\CodeCleaner\\UseStatementPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/UseStatementPass.php', - 'Psy\\CodeCleaner\\ValidClassNamePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/ValidClassNamePass.php', - 'Psy\\CodeCleaner\\ValidConstantPass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/ValidConstantPass.php', - 'Psy\\CodeCleaner\\ValidFunctionNamePass' => $vendorDir . '/psy/psysh/src/Psy/CodeCleaner/ValidFunctionNamePass.php', - 'Psy\\Command\\BufferCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/BufferCommand.php', - 'Psy\\Command\\ClearCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/ClearCommand.php', - 'Psy\\Command\\Command' => $vendorDir . '/psy/psysh/src/Psy/Command/Command.php', - 'Psy\\Command\\DocCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/DocCommand.php', - 'Psy\\Command\\DumpCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/DumpCommand.php', - 'Psy\\Command\\EditCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/EditCommand.php', - 'Psy\\Command\\ExitCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/ExitCommand.php', - 'Psy\\Command\\HelpCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/HelpCommand.php', - 'Psy\\Command\\HistoryCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/HistoryCommand.php', - 'Psy\\Command\\ListCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand.php', - 'Psy\\Command\\ListCommand\\ClassConstantEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/ClassConstantEnumerator.php', - 'Psy\\Command\\ListCommand\\ClassEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/ClassEnumerator.php', - 'Psy\\Command\\ListCommand\\ConstantEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/ConstantEnumerator.php', - 'Psy\\Command\\ListCommand\\Enumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/Enumerator.php', - 'Psy\\Command\\ListCommand\\FunctionEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/FunctionEnumerator.php', - 'Psy\\Command\\ListCommand\\GlobalVariableEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/GlobalVariableEnumerator.php', - 'Psy\\Command\\ListCommand\\InterfaceEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/InterfaceEnumerator.php', - 'Psy\\Command\\ListCommand\\MethodEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/MethodEnumerator.php', - 'Psy\\Command\\ListCommand\\PropertyEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/PropertyEnumerator.php', - 'Psy\\Command\\ListCommand\\TraitEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/TraitEnumerator.php', - 'Psy\\Command\\ListCommand\\VariableEnumerator' => $vendorDir . '/psy/psysh/src/Psy/Command/ListCommand/VariableEnumerator.php', - 'Psy\\Command\\ParseCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/ParseCommand.php', - 'Psy\\Command\\PsyVersionCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/PsyVersionCommand.php', - 'Psy\\Command\\ReflectingCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/ReflectingCommand.php', - 'Psy\\Command\\ShowCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/ShowCommand.php', - 'Psy\\Command\\SudoCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/SudoCommand.php', - 'Psy\\Command\\ThrowUpCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/ThrowUpCommand.php', - 'Psy\\Command\\TraceCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/TraceCommand.php', - 'Psy\\Command\\WhereamiCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/WhereamiCommand.php', - 'Psy\\Command\\WtfCommand' => $vendorDir . '/psy/psysh/src/Psy/Command/WtfCommand.php', - 'Psy\\Compiler' => $vendorDir . '/psy/psysh/src/Psy/Compiler.php', - 'Psy\\ConfigPaths' => $vendorDir . '/psy/psysh/src/Psy/ConfigPaths.php', - 'Psy\\Configuration' => $vendorDir . '/psy/psysh/src/Psy/Configuration.php', - 'Psy\\ConsoleColorFactory' => $vendorDir . '/psy/psysh/src/Psy/ConsoleColorFactory.php', - 'Psy\\Context' => $vendorDir . '/psy/psysh/src/Psy/Context.php', - 'Psy\\ContextAware' => $vendorDir . '/psy/psysh/src/Psy/ContextAware.php', - 'Psy\\Exception\\BreakException' => $vendorDir . '/psy/psysh/src/Psy/Exception/BreakException.php', - 'Psy\\Exception\\DeprecatedException' => $vendorDir . '/psy/psysh/src/Psy/Exception/DeprecatedException.php', - 'Psy\\Exception\\ErrorException' => $vendorDir . '/psy/psysh/src/Psy/Exception/ErrorException.php', - 'Psy\\Exception\\Exception' => $vendorDir . '/psy/psysh/src/Psy/Exception/Exception.php', - 'Psy\\Exception\\FatalErrorException' => $vendorDir . '/psy/psysh/src/Psy/Exception/FatalErrorException.php', - 'Psy\\Exception\\ParseErrorException' => $vendorDir . '/psy/psysh/src/Psy/Exception/ParseErrorException.php', - 'Psy\\Exception\\RuntimeException' => $vendorDir . '/psy/psysh/src/Psy/Exception/RuntimeException.php', - 'Psy\\Exception\\ThrowUpException' => $vendorDir . '/psy/psysh/src/Psy/Exception/ThrowUpException.php', - 'Psy\\Exception\\TypeErrorException' => $vendorDir . '/psy/psysh/src/Psy/Exception/TypeErrorException.php', - 'Psy\\ExecutionLoop\\ForkingLoop' => $vendorDir . '/psy/psysh/src/Psy/ExecutionLoop/ForkingLoop.php', - 'Psy\\ExecutionLoop\\Loop' => $vendorDir . '/psy/psysh/src/Psy/ExecutionLoop/Loop.php', - 'Psy\\Formatter\\CodeFormatter' => $vendorDir . '/psy/psysh/src/Psy/Formatter/CodeFormatter.php', - 'Psy\\Formatter\\DocblockFormatter' => $vendorDir . '/psy/psysh/src/Psy/Formatter/DocblockFormatter.php', - 'Psy\\Formatter\\Formatter' => $vendorDir . '/psy/psysh/src/Psy/Formatter/Formatter.php', - 'Psy\\Formatter\\SignatureFormatter' => $vendorDir . '/psy/psysh/src/Psy/Formatter/SignatureFormatter.php', - 'Psy\\Input\\CodeArgument' => $vendorDir . '/psy/psysh/src/Psy/Input/CodeArgument.php', - 'Psy\\Input\\FilterOptions' => $vendorDir . '/psy/psysh/src/Psy/Input/FilterOptions.php', - 'Psy\\Input\\ShellInput' => $vendorDir . '/psy/psysh/src/Psy/Input/ShellInput.php', - 'Psy\\Input\\SilentInput' => $vendorDir . '/psy/psysh/src/Psy/Input/SilentInput.php', - 'Psy\\Output\\OutputPager' => $vendorDir . '/psy/psysh/src/Psy/Output/OutputPager.php', - 'Psy\\Output\\PassthruPager' => $vendorDir . '/psy/psysh/src/Psy/Output/PassthruPager.php', - 'Psy\\Output\\ProcOutputPager' => $vendorDir . '/psy/psysh/src/Psy/Output/ProcOutputPager.php', - 'Psy\\Output\\ShellOutput' => $vendorDir . '/psy/psysh/src/Psy/Output/ShellOutput.php', - 'Psy\\ParserFactory' => $vendorDir . '/psy/psysh/src/Psy/ParserFactory.php', - 'Psy\\Readline\\GNUReadline' => $vendorDir . '/psy/psysh/src/Psy/Readline/GNUReadline.php', - 'Psy\\Readline\\HoaConsole' => $vendorDir . '/psy/psysh/src/Psy/Readline/HoaConsole.php', - 'Psy\\Readline\\Libedit' => $vendorDir . '/psy/psysh/src/Psy/Readline/Libedit.php', - 'Psy\\Readline\\Readline' => $vendorDir . '/psy/psysh/src/Psy/Readline/Readline.php', - 'Psy\\Readline\\Transient' => $vendorDir . '/psy/psysh/src/Psy/Readline/Transient.php', - 'Psy\\Reflection\\ReflectionConstant' => $vendorDir . '/psy/psysh/src/Psy/Reflection/ReflectionConstant.php', - 'Psy\\Reflection\\ReflectionLanguageConstruct' => $vendorDir . '/psy/psysh/src/Psy/Reflection/ReflectionLanguageConstruct.php', - 'Psy\\Reflection\\ReflectionLanguageConstructParameter' => $vendorDir . '/psy/psysh/src/Psy/Reflection/ReflectionLanguageConstructParameter.php', - 'Psy\\Shell' => $vendorDir . '/psy/psysh/src/Psy/Shell.php', - 'Psy\\Sudo' => $vendorDir . '/psy/psysh/src/Psy/Sudo.php', - 'Psy\\Sudo\\SudoVisitor' => $vendorDir . '/psy/psysh/src/Psy/Sudo/SudoVisitor.php', - 'Psy\\TabCompletion\\AutoCompleter' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/AutoCompleter.php', - 'Psy\\TabCompletion\\Matcher\\AbstractContextAwareMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractContextAwareMatcher.php', - 'Psy\\TabCompletion\\Matcher\\AbstractDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\AbstractMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassAttributesMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/ClassAttributesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassMethodDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassMethodsMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/ClassMethodsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassNamesMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/ClassNamesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\CommandsMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/CommandsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ConstantsMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/ConstantsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\FunctionDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\FunctionsMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/FunctionsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\KeywordsMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/KeywordsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\MongoClientMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/MongoClientMatcher.php', - 'Psy\\TabCompletion\\Matcher\\MongoDatabaseMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/MongoDatabaseMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectAttributesMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectAttributesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectMethodDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectMethodsMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectMethodsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\VariablesMatcher' => $vendorDir . '/psy/psysh/src/Psy/TabCompletion/Matcher/VariablesMatcher.php', - 'Psy\\Util\\Docblock' => $vendorDir . '/psy/psysh/src/Psy/Util/Docblock.php', - 'Psy\\Util\\Json' => $vendorDir . '/psy/psysh/src/Psy/Util/Json.php', - 'Psy\\Util\\Mirror' => $vendorDir . '/psy/psysh/src/Psy/Util/Mirror.php', - 'Psy\\Util\\Str' => $vendorDir . '/psy/psysh/src/Psy/Util/Str.php', - 'Psy\\VarDumper\\Cloner' => $vendorDir . '/psy/psysh/src/Psy/VarDumper/Cloner.php', - 'Psy\\VarDumper\\Dumper' => $vendorDir . '/psy/psysh/src/Psy/VarDumper/Dumper.php', - 'Psy\\VarDumper\\Presenter' => $vendorDir . '/psy/psysh/src/Psy/VarDumper/Presenter.php', - 'Psy\\VarDumper\\PresenterAware' => $vendorDir . '/psy/psysh/src/Psy/VarDumper/PresenterAware.php', - 'Psy\\VersionUpdater\\Checker' => $vendorDir . '/psy/psysh/src/Psy/VersionUpdater/Checker.php', - 'Psy\\VersionUpdater\\GitHubChecker' => $vendorDir . '/psy/psysh/src/Psy/VersionUpdater/GitHubChecker.php', - 'Psy\\VersionUpdater\\IntervalChecker' => $vendorDir . '/psy/psysh/src/Psy/VersionUpdater/IntervalChecker.php', - 'Psy\\VersionUpdater\\NoopChecker' => $vendorDir . '/psy/psysh/src/Psy/VersionUpdater/NoopChecker.php', - 'Ramsey\\Uuid\\BinaryUtils' => $vendorDir . '/ramsey/uuid/src/BinaryUtils.php', - 'Ramsey\\Uuid\\Builder\\DefaultUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php', - 'Ramsey\\Uuid\\Builder\\DegradedUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php', - 'Ramsey\\Uuid\\Builder\\UuidBuilderInterface' => $vendorDir . '/ramsey/uuid/src/Builder/UuidBuilderInterface.php', - 'Ramsey\\Uuid\\Codec\\CodecInterface' => $vendorDir . '/ramsey/uuid/src/Codec/CodecInterface.php', - 'Ramsey\\Uuid\\Codec\\GuidStringCodec' => $vendorDir . '/ramsey/uuid/src/Codec/GuidStringCodec.php', - 'Ramsey\\Uuid\\Codec\\OrderedTimeCodec' => $vendorDir . '/ramsey/uuid/src/Codec/OrderedTimeCodec.php', - 'Ramsey\\Uuid\\Codec\\StringCodec' => $vendorDir . '/ramsey/uuid/src/Codec/StringCodec.php', - 'Ramsey\\Uuid\\Codec\\TimestampFirstCombCodec' => $vendorDir . '/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php', - 'Ramsey\\Uuid\\Codec\\TimestampLastCombCodec' => $vendorDir . '/ramsey/uuid/src/Codec/TimestampLastCombCodec.php', - 'Ramsey\\Uuid\\Converter\\NumberConverterInterface' => $vendorDir . '/ramsey/uuid/src/Converter/NumberConverterInterface.php', - 'Ramsey\\Uuid\\Converter\\Number\\BigNumberConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Number/BigNumberConverter.php', - 'Ramsey\\Uuid\\Converter\\Number\\DegradedNumberConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php', - 'Ramsey\\Uuid\\Converter\\TimeConverterInterface' => $vendorDir . '/ramsey/uuid/src/Converter/TimeConverterInterface.php', - 'Ramsey\\Uuid\\Converter\\Time\\BigNumberTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php', - 'Ramsey\\Uuid\\Converter\\Time\\DegradedTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php', - 'Ramsey\\Uuid\\Converter\\Time\\PhpTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php', - 'Ramsey\\Uuid\\DegradedUuid' => $vendorDir . '/ramsey/uuid/src/DegradedUuid.php', - 'Ramsey\\Uuid\\Exception\\InvalidUuidStringException' => $vendorDir . '/ramsey/uuid/src/Exception/InvalidUuidStringException.php', - 'Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException' => $vendorDir . '/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php', - 'Ramsey\\Uuid\\Exception\\UnsupportedOperationException' => $vendorDir . '/ramsey/uuid/src/Exception/UnsupportedOperationException.php', - 'Ramsey\\Uuid\\FeatureSet' => $vendorDir . '/ramsey/uuid/src/FeatureSet.php', - 'Ramsey\\Uuid\\Generator\\CombGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/CombGenerator.php', - 'Ramsey\\Uuid\\Generator\\DefaultTimeGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/DefaultTimeGenerator.php', - 'Ramsey\\Uuid\\Generator\\MtRandGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/MtRandGenerator.php', - 'Ramsey\\Uuid\\Generator\\OpenSslGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/OpenSslGenerator.php', - 'Ramsey\\Uuid\\Generator\\PeclUuidRandomGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php', - 'Ramsey\\Uuid\\Generator\\PeclUuidTimeGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php', - 'Ramsey\\Uuid\\Generator\\RandomBytesGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/RandomBytesGenerator.php', - 'Ramsey\\Uuid\\Generator\\RandomGeneratorFactory' => $vendorDir . '/ramsey/uuid/src/Generator/RandomGeneratorFactory.php', - 'Ramsey\\Uuid\\Generator\\RandomGeneratorInterface' => $vendorDir . '/ramsey/uuid/src/Generator/RandomGeneratorInterface.php', - 'Ramsey\\Uuid\\Generator\\RandomLibAdapter' => $vendorDir . '/ramsey/uuid/src/Generator/RandomLibAdapter.php', - 'Ramsey\\Uuid\\Generator\\SodiumRandomGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/SodiumRandomGenerator.php', - 'Ramsey\\Uuid\\Generator\\TimeGeneratorFactory' => $vendorDir . '/ramsey/uuid/src/Generator/TimeGeneratorFactory.php', - 'Ramsey\\Uuid\\Generator\\TimeGeneratorInterface' => $vendorDir . '/ramsey/uuid/src/Generator/TimeGeneratorInterface.php', - 'Ramsey\\Uuid\\Provider\\NodeProviderInterface' => $vendorDir . '/ramsey/uuid/src/Provider/NodeProviderInterface.php', - 'Ramsey\\Uuid\\Provider\\Node\\FallbackNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\Node\\RandomNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\Node\\SystemNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\TimeProviderInterface' => $vendorDir . '/ramsey/uuid/src/Provider/TimeProviderInterface.php', - 'Ramsey\\Uuid\\Provider\\Time\\FixedTimeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php', - 'Ramsey\\Uuid\\Provider\\Time\\SystemTimeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php', - 'Ramsey\\Uuid\\Uuid' => $vendorDir . '/ramsey/uuid/src/Uuid.php', - 'Ramsey\\Uuid\\UuidFactory' => $vendorDir . '/ramsey/uuid/src/UuidFactory.php', - 'Ramsey\\Uuid\\UuidFactoryInterface' => $vendorDir . '/ramsey/uuid/src/UuidFactoryInterface.php', - 'Ramsey\\Uuid\\UuidInterface' => $vendorDir . '/ramsey/uuid/src/UuidInterface.php', - 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php', - 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\HHVM' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/HHVM.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php', - 'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php', - 'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php', - 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php', - 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', - 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', - 'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php', - 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', - 'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php', - 'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php', - 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php', - 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php', - 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php', - 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php', - 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php', - 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php', - 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php', - 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php', - 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php', - 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php', - 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php', - 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php', - 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php', - 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php', - 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', - 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', - 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', - 'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', - 'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', - 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', - 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php', - 'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php', - 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php', - 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php', - 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php', - 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php', - 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php', - 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php', - 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php', - 'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php', - 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php', - 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php', - 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php', - 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php', - 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php', - 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php', - 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php', - 'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php', - 'SettingsSeeder' => $baseDir . '/database/seeds/SettingsSeeder.php', - 'Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', - 'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', - 'Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', - 'Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', - 'Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', - 'Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', - 'Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', - 'Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', - 'Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', - 'Symfony\\Component\\Console\\EventListener\\ErrorListener' => $vendorDir . '/symfony/console/EventListener/ErrorListener.php', - 'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => $vendorDir . '/symfony/console/Event/ConsoleCommandEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => $vendorDir . '/symfony/console/Event/ConsoleErrorEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleEvent' => $vendorDir . '/symfony/console/Event/ConsoleEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleExceptionEvent' => $vendorDir . '/symfony/console/Event/ConsoleExceptionEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => $vendorDir . '/symfony/console/Event/ConsoleTerminateEvent.php', - 'Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', - 'Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', - 'Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', - 'Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', - 'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', - 'Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', - 'Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', - 'Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', - 'Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', - 'Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', - 'Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', - 'Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', - 'Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', - 'Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', - 'Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', - 'Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', - 'Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', - 'Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', - 'Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', - 'Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', - 'Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', - 'Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', - 'Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', - 'Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', - 'Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', - 'Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', - 'Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', - 'Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', - 'Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', - 'Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', - 'Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', - 'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', - 'Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', - 'Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', - 'Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', - 'Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', - 'Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', - 'Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', - 'Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', - 'Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', - 'Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', - 'Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', - 'Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', - 'Symfony\\Component\\Console\\Tester\\ApplicationTester' => $vendorDir . '/symfony/console/Tester/ApplicationTester.php', - 'Symfony\\Component\\Console\\Tester\\CommandTester' => $vendorDir . '/symfony/console/Tester/CommandTester.php', - 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => $vendorDir . '/symfony/css-selector/CssSelectorConverter.php', - 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/css-selector/Exception/ExceptionInterface.php', - 'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => $vendorDir . '/symfony/css-selector/Exception/ExpressionErrorException.php', - 'Symfony\\Component\\CssSelector\\Exception\\InternalErrorException' => $vendorDir . '/symfony/css-selector/Exception/InternalErrorException.php', - 'Symfony\\Component\\CssSelector\\Exception\\ParseException' => $vendorDir . '/symfony/css-selector/Exception/ParseException.php', - 'Symfony\\Component\\CssSelector\\Exception\\SyntaxErrorException' => $vendorDir . '/symfony/css-selector/Exception/SyntaxErrorException.php', - 'Symfony\\Component\\CssSelector\\Node\\AbstractNode' => $vendorDir . '/symfony/css-selector/Node/AbstractNode.php', - 'Symfony\\Component\\CssSelector\\Node\\AttributeNode' => $vendorDir . '/symfony/css-selector/Node/AttributeNode.php', - 'Symfony\\Component\\CssSelector\\Node\\ClassNode' => $vendorDir . '/symfony/css-selector/Node/ClassNode.php', - 'Symfony\\Component\\CssSelector\\Node\\CombinedSelectorNode' => $vendorDir . '/symfony/css-selector/Node/CombinedSelectorNode.php', - 'Symfony\\Component\\CssSelector\\Node\\ElementNode' => $vendorDir . '/symfony/css-selector/Node/ElementNode.php', - 'Symfony\\Component\\CssSelector\\Node\\FunctionNode' => $vendorDir . '/symfony/css-selector/Node/FunctionNode.php', - 'Symfony\\Component\\CssSelector\\Node\\HashNode' => $vendorDir . '/symfony/css-selector/Node/HashNode.php', - 'Symfony\\Component\\CssSelector\\Node\\NegationNode' => $vendorDir . '/symfony/css-selector/Node/NegationNode.php', - 'Symfony\\Component\\CssSelector\\Node\\NodeInterface' => $vendorDir . '/symfony/css-selector/Node/NodeInterface.php', - 'Symfony\\Component\\CssSelector\\Node\\PseudoNode' => $vendorDir . '/symfony/css-selector/Node/PseudoNode.php', - 'Symfony\\Component\\CssSelector\\Node\\SelectorNode' => $vendorDir . '/symfony/css-selector/Node/SelectorNode.php', - 'Symfony\\Component\\CssSelector\\Node\\Specificity' => $vendorDir . '/symfony/css-selector/Node/Specificity.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\CommentHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/CommentHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HandlerInterface' => $vendorDir . '/symfony/css-selector/Parser/Handler/HandlerInterface.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HashHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/HashHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\IdentifierHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/IdentifierHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\NumberHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/NumberHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\StringHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/StringHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\WhitespaceHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/WhitespaceHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Parser' => $vendorDir . '/symfony/css-selector/Parser/Parser.php', - 'Symfony\\Component\\CssSelector\\Parser\\ParserInterface' => $vendorDir . '/symfony/css-selector/Parser/ParserInterface.php', - 'Symfony\\Component\\CssSelector\\Parser\\Reader' => $vendorDir . '/symfony/css-selector/Parser/Reader.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ClassParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/ClassParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ElementParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/ElementParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\EmptyStringParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\HashParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/HashParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Token' => $vendorDir . '/symfony/css-selector/Parser/Token.php', - 'Symfony\\Component\\CssSelector\\Parser\\TokenStream' => $vendorDir . '/symfony/css-selector/Parser/TokenStream.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\Tokenizer' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/Tokenizer.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerEscaping' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerPatterns' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AbstractExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/AbstractExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AttributeMatchingExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\CombinationExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/CombinationExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\ExtensionInterface' => $vendorDir . '/symfony/css-selector/XPath/Extension/ExtensionInterface.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\FunctionExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/FunctionExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\HtmlExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/HtmlExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\NodeExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/NodeExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\PseudoClassExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/PseudoClassExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Translator' => $vendorDir . '/symfony/css-selector/XPath/Translator.php', - 'Symfony\\Component\\CssSelector\\XPath\\TranslatorInterface' => $vendorDir . '/symfony/css-selector/XPath/TranslatorInterface.php', - 'Symfony\\Component\\CssSelector\\XPath\\XPathExpr' => $vendorDir . '/symfony/css-selector/XPath/XPathExpr.php', - 'Symfony\\Component\\Debug\\BufferingLogger' => $vendorDir . '/symfony/debug/BufferingLogger.php', - 'Symfony\\Component\\Debug\\Debug' => $vendorDir . '/symfony/debug/Debug.php', - 'Symfony\\Component\\Debug\\DebugClassLoader' => $vendorDir . '/symfony/debug/DebugClassLoader.php', - 'Symfony\\Component\\Debug\\ErrorHandler' => $vendorDir . '/symfony/debug/ErrorHandler.php', - 'Symfony\\Component\\Debug\\ExceptionHandler' => $vendorDir . '/symfony/debug/ExceptionHandler.php', - 'Symfony\\Component\\Debug\\Exception\\ClassNotFoundException' => $vendorDir . '/symfony/debug/Exception/ClassNotFoundException.php', - 'Symfony\\Component\\Debug\\Exception\\ContextErrorException' => $vendorDir . '/symfony/debug/Exception/ContextErrorException.php', - 'Symfony\\Component\\Debug\\Exception\\FatalErrorException' => $vendorDir . '/symfony/debug/Exception/FatalErrorException.php', - 'Symfony\\Component\\Debug\\Exception\\FatalThrowableError' => $vendorDir . '/symfony/debug/Exception/FatalThrowableError.php', - 'Symfony\\Component\\Debug\\Exception\\FlattenException' => $vendorDir . '/symfony/debug/Exception/FlattenException.php', - 'Symfony\\Component\\Debug\\Exception\\OutOfMemoryException' => $vendorDir . '/symfony/debug/Exception/OutOfMemoryException.php', - 'Symfony\\Component\\Debug\\Exception\\SilencedErrorContext' => $vendorDir . '/symfony/debug/Exception/SilencedErrorContext.php', - 'Symfony\\Component\\Debug\\Exception\\UndefinedFunctionException' => $vendorDir . '/symfony/debug/Exception/UndefinedFunctionException.php', - 'Symfony\\Component\\Debug\\Exception\\UndefinedMethodException' => $vendorDir . '/symfony/debug/Exception/UndefinedMethodException.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\ClassNotFoundFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\FatalErrorHandlerInterface' => $vendorDir . '/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\UndefinedFunctionFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\UndefinedMethodFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php', - 'Symfony\\Component\\EventDispatcher\\ContainerAwareEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/ContainerAwareEventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcherInterface' => $vendorDir . '/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\WrappedListener' => $vendorDir . '/symfony/event-dispatcher/Debug/WrappedListener.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\ExtractingEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\RegisterListenersPass' => $vendorDir . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\\Component\\EventDispatcher\\Event' => $vendorDir . '/symfony/event-dispatcher/Event.php', - 'Symfony\\Component\\EventDispatcher\\EventDispatcher' => $vendorDir . '/symfony/event-dispatcher/EventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\EventDispatcherInterface' => $vendorDir . '/symfony/event-dispatcher/EventDispatcherInterface.php', - 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => $vendorDir . '/symfony/event-dispatcher/EventSubscriberInterface.php', - 'Symfony\\Component\\EventDispatcher\\GenericEvent' => $vendorDir . '/symfony/event-dispatcher/GenericEvent.php', - 'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/ImmutableEventDispatcher.php', - 'Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', - 'Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', - 'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', - 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', - 'Symfony\\Component\\Finder\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/finder/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', - 'Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', - 'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', - 'Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', - 'Symfony\\Component\\HttpFoundation\\AcceptHeader' => $vendorDir . '/symfony/http-foundation/AcceptHeader.php', - 'Symfony\\Component\\HttpFoundation\\AcceptHeaderItem' => $vendorDir . '/symfony/http-foundation/AcceptHeaderItem.php', - 'Symfony\\Component\\HttpFoundation\\ApacheRequest' => $vendorDir . '/symfony/http-foundation/ApacheRequest.php', - 'Symfony\\Component\\HttpFoundation\\BinaryFileResponse' => $vendorDir . '/symfony/http-foundation/BinaryFileResponse.php', - 'Symfony\\Component\\HttpFoundation\\Cookie' => $vendorDir . '/symfony/http-foundation/Cookie.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\ConflictingHeadersException' => $vendorDir . '/symfony/http-foundation/Exception/ConflictingHeadersException.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\RequestExceptionInterface' => $vendorDir . '/symfony/http-foundation/Exception/RequestExceptionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\SuspiciousOperationException' => $vendorDir . '/symfony/http-foundation/Exception/SuspiciousOperationException.php', - 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => $vendorDir . '/symfony/http-foundation/ExpressionRequestMatcher.php', - 'Symfony\\Component\\HttpFoundation\\FileBag' => $vendorDir . '/symfony/http-foundation/FileBag.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/http-foundation/File/Exception/AccessDeniedException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileNotFoundException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => $vendorDir . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => $vendorDir . '/symfony/http-foundation/File/Exception/UploadException.php', - 'Symfony\\Component\\HttpFoundation\\File\\File' => $vendorDir . '/symfony/http-foundation/File/File.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\ExtensionGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/ExtensionGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\ExtensionGuesserInterface' => $vendorDir . '/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\FileBinaryMimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\FileinfoMimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeExtensionGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesserInterface' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php', - 'Symfony\\Component\\HttpFoundation\\File\\Stream' => $vendorDir . '/symfony/http-foundation/File/Stream.php', - 'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => $vendorDir . '/symfony/http-foundation/File/UploadedFile.php', - 'Symfony\\Component\\HttpFoundation\\HeaderBag' => $vendorDir . '/symfony/http-foundation/HeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\IpUtils' => $vendorDir . '/symfony/http-foundation/IpUtils.php', - 'Symfony\\Component\\HttpFoundation\\JsonResponse' => $vendorDir . '/symfony/http-foundation/JsonResponse.php', - 'Symfony\\Component\\HttpFoundation\\ParameterBag' => $vendorDir . '/symfony/http-foundation/ParameterBag.php', - 'Symfony\\Component\\HttpFoundation\\RedirectResponse' => $vendorDir . '/symfony/http-foundation/RedirectResponse.php', - 'Symfony\\Component\\HttpFoundation\\Request' => $vendorDir . '/symfony/http-foundation/Request.php', - 'Symfony\\Component\\HttpFoundation\\RequestMatcher' => $vendorDir . '/symfony/http-foundation/RequestMatcher.php', - 'Symfony\\Component\\HttpFoundation\\RequestMatcherInterface' => $vendorDir . '/symfony/http-foundation/RequestMatcherInterface.php', - 'Symfony\\Component\\HttpFoundation\\RequestStack' => $vendorDir . '/symfony/http-foundation/RequestStack.php', - 'Symfony\\Component\\HttpFoundation\\Response' => $vendorDir . '/symfony/http-foundation/Response.php', - 'Symfony\\Component\\HttpFoundation\\ResponseHeaderBag' => $vendorDir . '/symfony/http-foundation/ResponseHeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\ServerBag' => $vendorDir . '/symfony/http-foundation/ServerBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\AttributeBag' => $vendorDir . '/symfony/http-foundation/Session/Attribute/AttributeBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\AttributeBagInterface' => $vendorDir . '/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\NamespacedAttributeBag' => $vendorDir . '/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\AutoExpireFlashBag' => $vendorDir . '/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBag' => $vendorDir . '/symfony/http-foundation/Session/Flash/FlashBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBagInterface' => $vendorDir . '/symfony/http-foundation/Session/Flash/FlashBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Session' => $vendorDir . '/symfony/http-foundation/Session/Session.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => $vendorDir . '/symfony/http-foundation/Session/SessionBagProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcacheSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\WriteCheckSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => $vendorDir . '/symfony/http-foundation/Session/Storage/MetadataBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockArraySessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockFileSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/NativeSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\PhpBridgeSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\AbstractProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\NativeProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/NativeProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\SessionStorageInterface' => $vendorDir . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php', - 'Symfony\\Component\\HttpFoundation\\StreamedResponse' => $vendorDir . '/symfony/http-foundation/StreamedResponse.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\Bundle' => $vendorDir . '/symfony/http-kernel/Bundle/Bundle.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface' => $vendorDir . '/symfony/http-kernel/Bundle/BundleInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\CacheClearerInterface' => $vendorDir . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\ChainCacheClearer' => $vendorDir . '/symfony/http-kernel/CacheClearer/ChainCacheClearer.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\Psr6CacheClearer' => $vendorDir . '/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmer' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmer.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerAggregate' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerInterface' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\WarmableInterface' => $vendorDir . '/symfony/http-kernel/CacheWarmer/WarmableInterface.php', - 'Symfony\\Component\\HttpKernel\\Client' => $vendorDir . '/symfony/http-kernel/Client.php', - 'Symfony\\Component\\HttpKernel\\Config\\EnvParametersResource' => $vendorDir . '/symfony/http-kernel/Config/EnvParametersResource.php', - 'Symfony\\Component\\HttpKernel\\Config\\FileLocator' => $vendorDir . '/symfony/http-kernel/Config/FileLocator.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadata' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactory' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactoryInterface' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ContainerControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerReference' => $vendorDir . '/symfony/http-kernel/Controller/ControllerReference.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ControllerResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\TraceableArgumentResolver' => $vendorDir . '/symfony/http-kernel/Controller/TraceableArgumentResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\TraceableControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/TraceableControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\AjaxDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/AjaxDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\ConfigDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/ConfigDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/DataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DataCollectorInterface' => $vendorDir . '/symfony/http-kernel/DataCollector/DataCollectorInterface.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DumpDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/DumpDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\EventDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/EventDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\ExceptionDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/ExceptionDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\LateDataCollectorInterface' => $vendorDir . '/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\LoggerDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/LoggerDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\MemoryDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/MemoryDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/RequestDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\RouterDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/RouterDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\TimeDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/TimeDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\Util\\ValueExporter' => $vendorDir . '/symfony/http-kernel/DataCollector/Util/ValueExporter.php', - 'Symfony\\Component\\HttpKernel\\Debug\\FileLinkFormatter' => $vendorDir . '/symfony/http-kernel/Debug/FileLinkFormatter.php', - 'Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher' => $vendorDir . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddAnnotatedClassesToCachePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddClassesToCachePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/AddClassesToCachePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ConfigurableExtension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerArgumentValueResolverPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\Extension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/Extension.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\FragmentRendererPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LazyLoadingFragmentHandler' => $vendorDir . '/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LoggerPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/LoggerPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\MergeExtensionConfigurationPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RegisterControllerArgumentLocatorsPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RemoveEmptyControllerArgumentLocatorsPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ResettableServicePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ResettableServicePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ServicesResetter' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ServicesResetter.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/AbstractSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractTestSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/AbstractTestSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AddRequestFormatsListener' => $vendorDir . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener' => $vendorDir . '/symfony/http-kernel/EventListener/DebugHandlersListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DumpListener' => $vendorDir . '/symfony/http-kernel/EventListener/DumpListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ExceptionListener' => $vendorDir . '/symfony/http-kernel/EventListener/ExceptionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener' => $vendorDir . '/symfony/http-kernel/EventListener/FragmentListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener' => $vendorDir . '/symfony/http-kernel/EventListener/LocaleListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener' => $vendorDir . '/symfony/http-kernel/EventListener/ProfilerListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener' => $vendorDir . '/symfony/http-kernel/EventListener/ResponseListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener' => $vendorDir . '/symfony/http-kernel/EventListener/RouterListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SaveSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/SaveSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/SessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\StreamedResponseListener' => $vendorDir . '/symfony/http-kernel/EventListener/StreamedResponseListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SurrogateListener' => $vendorDir . '/symfony/http-kernel/EventListener/SurrogateListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\TestSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/TestSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\TranslatorListener' => $vendorDir . '/symfony/http-kernel/EventListener/TranslatorListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener' => $vendorDir . '/symfony/http-kernel/EventListener/ValidateRequestListener.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerArgumentsEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterControllerEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FinishRequestEvent' => $vendorDir . '/symfony/http-kernel/Event/FinishRequestEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForControllerResultEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseForExceptionEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent' => $vendorDir . '/symfony/http-kernel/Event/KernelEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\PostResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/PostResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => $vendorDir . '/symfony/http-kernel/Exception/BadRequestHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ConflictHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => $vendorDir . '/symfony/http-kernel/Exception/GoneHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => $vendorDir . '/symfony/http-kernel/Exception/HttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => $vendorDir . '/symfony/http-kernel/Exception/HttpExceptionInterface.php', - 'Symfony\\Component\\HttpKernel\\Exception\\LengthRequiredHttpException' => $vendorDir . '/symfony/http-kernel/Exception/LengthRequiredHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\NotAcceptableHttpException' => $vendorDir . '/symfony/http-kernel/Exception/NotAcceptableHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException' => $vendorDir . '/symfony/http-kernel/Exception/NotFoundHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\PreconditionFailedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/PreconditionFailedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\PreconditionRequiredHttpException' => $vendorDir . '/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ServiceUnavailableHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\TooManyRequestsHttpException' => $vendorDir . '/symfony/http-kernel/Exception/TooManyRequestsHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnauthorizedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnprocessableEntityHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnsupportedMediaTypeHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\AbstractSurrogateFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\EsiFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/EsiFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentHandler' => $vendorDir . '/symfony/http-kernel/Fragment/FragmentHandler.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentRendererInterface' => $vendorDir . '/symfony/http-kernel/Fragment/FragmentRendererInterface.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\HIncludeFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\InlineFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/InlineFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\RoutableFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\SsiFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/SsiFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\AbstractSurrogate' => $vendorDir . '/symfony/http-kernel/HttpCache/AbstractSurrogate.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Esi' => $vendorDir . '/symfony/http-kernel/HttpCache/Esi.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\HttpCache' => $vendorDir . '/symfony/http-kernel/HttpCache/HttpCache.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\ResponseCacheStrategy' => $vendorDir . '/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\ResponseCacheStrategyInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Ssi' => $vendorDir . '/symfony/http-kernel/HttpCache/Ssi.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Store' => $vendorDir . '/symfony/http-kernel/HttpCache/Store.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/StoreInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\SurrogateInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/SurrogateInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpKernel' => $vendorDir . '/symfony/http-kernel/HttpKernel.php', - 'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => $vendorDir . '/symfony/http-kernel/HttpKernelInterface.php', - 'Symfony\\Component\\HttpKernel\\Kernel' => $vendorDir . '/symfony/http-kernel/Kernel.php', - 'Symfony\\Component\\HttpKernel\\KernelEvents' => $vendorDir . '/symfony/http-kernel/KernelEvents.php', - 'Symfony\\Component\\HttpKernel\\KernelInterface' => $vendorDir . '/symfony/http-kernel/KernelInterface.php', - 'Symfony\\Component\\HttpKernel\\Log\\DebugLoggerInterface' => $vendorDir . '/symfony/http-kernel/Log/DebugLoggerInterface.php', - 'Symfony\\Component\\HttpKernel\\Log\\Logger' => $vendorDir . '/symfony/http-kernel/Log/Logger.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\FileProfilerStorage' => $vendorDir . '/symfony/http-kernel/Profiler/FileProfilerStorage.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\Profile' => $vendorDir . '/symfony/http-kernel/Profiler/Profile.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\Profiler' => $vendorDir . '/symfony/http-kernel/Profiler/Profiler.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\ProfilerStorageInterface' => $vendorDir . '/symfony/http-kernel/Profiler/ProfilerStorageInterface.php', - 'Symfony\\Component\\HttpKernel\\RebootableInterface' => $vendorDir . '/symfony/http-kernel/RebootableInterface.php', - 'Symfony\\Component\\HttpKernel\\TerminableInterface' => $vendorDir . '/symfony/http-kernel/TerminableInterface.php', - 'Symfony\\Component\\HttpKernel\\UriSigner' => $vendorDir . '/symfony/http-kernel/UriSigner.php', - 'Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', - 'Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', - 'Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', - 'Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', - 'Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', - 'Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', - 'Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', - 'Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', - 'Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', - 'Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', - 'Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', - 'Symfony\\Component\\Process\\ProcessBuilder' => $vendorDir . '/symfony/process/ProcessBuilder.php', - 'Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', - 'Symfony\\Component\\Routing\\Annotation\\Route' => $vendorDir . '/symfony/routing/Annotation/Route.php', - 'Symfony\\Component\\Routing\\CompiledRoute' => $vendorDir . '/symfony/routing/CompiledRoute.php', - 'Symfony\\Component\\Routing\\DependencyInjection\\RoutingResolverPass' => $vendorDir . '/symfony/routing/DependencyInjection/RoutingResolverPass.php', - 'Symfony\\Component\\Routing\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/routing/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Routing\\Exception\\InvalidParameterException' => $vendorDir . '/symfony/routing/Exception/InvalidParameterException.php', - 'Symfony\\Component\\Routing\\Exception\\MethodNotAllowedException' => $vendorDir . '/symfony/routing/Exception/MethodNotAllowedException.php', - 'Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException' => $vendorDir . '/symfony/routing/Exception/MissingMandatoryParametersException.php', - 'Symfony\\Component\\Routing\\Exception\\NoConfigurationException' => $vendorDir . '/symfony/routing/Exception/NoConfigurationException.php', - 'Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException' => $vendorDir . '/symfony/routing/Exception/ResourceNotFoundException.php', - 'Symfony\\Component\\Routing\\Exception\\RouteNotFoundException' => $vendorDir . '/symfony/routing/Exception/RouteNotFoundException.php', - 'Symfony\\Component\\Routing\\Generator\\ConfigurableRequirementsInterface' => $vendorDir . '/symfony/routing/Generator/ConfigurableRequirementsInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/GeneratorDumper.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumperInterface' => $vendorDir . '/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php', - 'Symfony\\Component\\Routing\\Generator\\UrlGenerator' => $vendorDir . '/symfony/routing/Generator/UrlGenerator.php', - 'Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface' => $vendorDir . '/symfony/routing/Generator/UrlGeneratorInterface.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationClassLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationClassLoader.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationDirectoryLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationDirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationFileLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ClosureLoader' => $vendorDir . '/symfony/routing/Loader/ClosureLoader.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\CollectionConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/CollectionConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\ImportConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/ImportConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\RouteConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/RouteConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\RoutingConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/RoutingConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\AddTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/AddTrait.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\RouteTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php', - 'Symfony\\Component\\Routing\\Loader\\DependencyInjection\\ServiceRouterLoader' => $vendorDir . '/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php', - 'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => $vendorDir . '/symfony/routing/Loader/DirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ObjectRouteLoader' => $vendorDir . '/symfony/routing/Loader/ObjectRouteLoader.php', - 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ProtectedPhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/routing/Loader/XmlFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/routing/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/DumperCollection.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperRoute' => $vendorDir . '/symfony/routing/Matcher/Dumper/DumperRoute.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\StaticPrefixCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php', - 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\RequestMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/RequestMatcherInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\TraceableUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/TraceableUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher' => $vendorDir . '/symfony/routing/Matcher/UrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/UrlMatcherInterface.php', - 'Symfony\\Component\\Routing\\RequestContext' => $vendorDir . '/symfony/routing/RequestContext.php', - 'Symfony\\Component\\Routing\\RequestContextAwareInterface' => $vendorDir . '/symfony/routing/RequestContextAwareInterface.php', - 'Symfony\\Component\\Routing\\Route' => $vendorDir . '/symfony/routing/Route.php', - 'Symfony\\Component\\Routing\\RouteCollection' => $vendorDir . '/symfony/routing/RouteCollection.php', - 'Symfony\\Component\\Routing\\RouteCollectionBuilder' => $vendorDir . '/symfony/routing/RouteCollectionBuilder.php', - 'Symfony\\Component\\Routing\\RouteCompiler' => $vendorDir . '/symfony/routing/RouteCompiler.php', - 'Symfony\\Component\\Routing\\RouteCompilerInterface' => $vendorDir . '/symfony/routing/RouteCompilerInterface.php', - 'Symfony\\Component\\Routing\\Router' => $vendorDir . '/symfony/routing/Router.php', - 'Symfony\\Component\\Routing\\RouterInterface' => $vendorDir . '/symfony/routing/RouterInterface.php', - 'Symfony\\Component\\Translation\\Catalogue\\AbstractOperation' => $vendorDir . '/symfony/translation/Catalogue/AbstractOperation.php', - 'Symfony\\Component\\Translation\\Catalogue\\MergeOperation' => $vendorDir . '/symfony/translation/Catalogue/MergeOperation.php', - 'Symfony\\Component\\Translation\\Catalogue\\OperationInterface' => $vendorDir . '/symfony/translation/Catalogue/OperationInterface.php', - 'Symfony\\Component\\Translation\\Catalogue\\TargetOperation' => $vendorDir . '/symfony/translation/Catalogue/TargetOperation.php', - 'Symfony\\Component\\Translation\\Command\\XliffLintCommand' => $vendorDir . '/symfony/translation/Command/XliffLintCommand.php', - 'Symfony\\Component\\Translation\\DataCollectorTranslator' => $vendorDir . '/symfony/translation/DataCollectorTranslator.php', - 'Symfony\\Component\\Translation\\DataCollector\\TranslationDataCollector' => $vendorDir . '/symfony/translation/DataCollector/TranslationDataCollector.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslationDumperPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslationDumperPass.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslationExtractorPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslationExtractorPass.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslatorPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslatorPass.php', - 'Symfony\\Component\\Translation\\Dumper\\CsvFileDumper' => $vendorDir . '/symfony/translation/Dumper/CsvFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\DumperInterface' => $vendorDir . '/symfony/translation/Dumper/DumperInterface.php', - 'Symfony\\Component\\Translation\\Dumper\\FileDumper' => $vendorDir . '/symfony/translation/Dumper/FileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\IcuResFileDumper' => $vendorDir . '/symfony/translation/Dumper/IcuResFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\IniFileDumper' => $vendorDir . '/symfony/translation/Dumper/IniFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\JsonFileDumper' => $vendorDir . '/symfony/translation/Dumper/JsonFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\MoFileDumper' => $vendorDir . '/symfony/translation/Dumper/MoFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\PhpFileDumper' => $vendorDir . '/symfony/translation/Dumper/PhpFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\PoFileDumper' => $vendorDir . '/symfony/translation/Dumper/PoFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\QtFileDumper' => $vendorDir . '/symfony/translation/Dumper/QtFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\XliffFileDumper' => $vendorDir . '/symfony/translation/Dumper/XliffFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\YamlFileDumper' => $vendorDir . '/symfony/translation/Dumper/YamlFileDumper.php', - 'Symfony\\Component\\Translation\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/translation/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Translation\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/translation/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Translation\\Exception\\InvalidResourceException' => $vendorDir . '/symfony/translation/Exception/InvalidResourceException.php', - 'Symfony\\Component\\Translation\\Exception\\LogicException' => $vendorDir . '/symfony/translation/Exception/LogicException.php', - 'Symfony\\Component\\Translation\\Exception\\NotFoundResourceException' => $vendorDir . '/symfony/translation/Exception/NotFoundResourceException.php', - 'Symfony\\Component\\Translation\\Exception\\RuntimeException' => $vendorDir . '/symfony/translation/Exception/RuntimeException.php', - 'Symfony\\Component\\Translation\\Extractor\\AbstractFileExtractor' => $vendorDir . '/symfony/translation/Extractor/AbstractFileExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\ChainExtractor' => $vendorDir . '/symfony/translation/Extractor/ChainExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\ExtractorInterface' => $vendorDir . '/symfony/translation/Extractor/ExtractorInterface.php', - 'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => $vendorDir . '/symfony/translation/Extractor/PhpExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => $vendorDir . '/symfony/translation/Extractor/PhpStringTokenParser.php', - 'Symfony\\Component\\Translation\\Formatter\\ChoiceMessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php', - 'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => $vendorDir . '/symfony/translation/Formatter/MessageFormatter.php', - 'Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/MessageFormatterInterface.php', - 'Symfony\\Component\\Translation\\IdentityTranslator' => $vendorDir . '/symfony/translation/IdentityTranslator.php', - 'Symfony\\Component\\Translation\\Interval' => $vendorDir . '/symfony/translation/Interval.php', - 'Symfony\\Component\\Translation\\Loader\\ArrayLoader' => $vendorDir . '/symfony/translation/Loader/ArrayLoader.php', - 'Symfony\\Component\\Translation\\Loader\\CsvFileLoader' => $vendorDir . '/symfony/translation/Loader/CsvFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\FileLoader' => $vendorDir . '/symfony/translation/Loader/FileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IcuDatFileLoader' => $vendorDir . '/symfony/translation/Loader/IcuDatFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IcuResFileLoader' => $vendorDir . '/symfony/translation/Loader/IcuResFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IniFileLoader' => $vendorDir . '/symfony/translation/Loader/IniFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\JsonFileLoader' => $vendorDir . '/symfony/translation/Loader/JsonFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\LoaderInterface' => $vendorDir . '/symfony/translation/Loader/LoaderInterface.php', - 'Symfony\\Component\\Translation\\Loader\\MoFileLoader' => $vendorDir . '/symfony/translation/Loader/MoFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\PhpFileLoader' => $vendorDir . '/symfony/translation/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\PoFileLoader' => $vendorDir . '/symfony/translation/Loader/PoFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\QtFileLoader' => $vendorDir . '/symfony/translation/Loader/QtFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\XliffFileLoader' => $vendorDir . '/symfony/translation/Loader/XliffFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/translation/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Translation\\LoggingTranslator' => $vendorDir . '/symfony/translation/LoggingTranslator.php', - 'Symfony\\Component\\Translation\\MessageCatalogue' => $vendorDir . '/symfony/translation/MessageCatalogue.php', - 'Symfony\\Component\\Translation\\MessageCatalogueInterface' => $vendorDir . '/symfony/translation/MessageCatalogueInterface.php', - 'Symfony\\Component\\Translation\\MessageSelector' => $vendorDir . '/symfony/translation/MessageSelector.php', - 'Symfony\\Component\\Translation\\MetadataAwareInterface' => $vendorDir . '/symfony/translation/MetadataAwareInterface.php', - 'Symfony\\Component\\Translation\\PluralizationRules' => $vendorDir . '/symfony/translation/PluralizationRules.php', - 'Symfony\\Component\\Translation\\Reader\\TranslationReader' => $vendorDir . '/symfony/translation/Reader/TranslationReader.php', - 'Symfony\\Component\\Translation\\Reader\\TranslationReaderInterface' => $vendorDir . '/symfony/translation/Reader/TranslationReaderInterface.php', - 'Symfony\\Component\\Translation\\Translator' => $vendorDir . '/symfony/translation/Translator.php', - 'Symfony\\Component\\Translation\\TranslatorBagInterface' => $vendorDir . '/symfony/translation/TranslatorBagInterface.php', - 'Symfony\\Component\\Translation\\TranslatorInterface' => $vendorDir . '/symfony/translation/TranslatorInterface.php', - 'Symfony\\Component\\Translation\\Util\\ArrayConverter' => $vendorDir . '/symfony/translation/Util/ArrayConverter.php', - 'Symfony\\Component\\Translation\\Writer\\TranslationWriter' => $vendorDir . '/symfony/translation/Writer/TranslationWriter.php', - 'Symfony\\Component\\Translation\\Writer\\TranslationWriterInterface' => $vendorDir . '/symfony/translation/Writer/TranslationWriterInterface.php', - 'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => $vendorDir . '/symfony/var-dumper/Caster/AmqpCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ArgsStub' => $vendorDir . '/symfony/var-dumper/Caster/ArgsStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\Caster' => $vendorDir . '/symfony/var-dumper/Caster/Caster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ClassStub' => $vendorDir . '/symfony/var-dumper/Caster/ClassStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\ConstStub' => $vendorDir . '/symfony/var-dumper/Caster/ConstStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\CutArrayStub' => $vendorDir . '/symfony/var-dumper/Caster/CutArrayStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\CutStub' => $vendorDir . '/symfony/var-dumper/Caster/CutStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\DOMCaster' => $vendorDir . '/symfony/var-dumper/Caster/DOMCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DateCaster' => $vendorDir . '/symfony/var-dumper/Caster/DateCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DoctrineCaster' => $vendorDir . '/symfony/var-dumper/Caster/DoctrineCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => $vendorDir . '/symfony/var-dumper/Caster/EnumStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\MongoCaster' => $vendorDir . '/symfony/var-dumper/Caster/MongoCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => $vendorDir . '/symfony/var-dumper/Caster/RedisCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ReflectionCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/ResourceCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\SplCaster' => $vendorDir . '/symfony/var-dumper/Caster/SplCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\StubCaster' => $vendorDir . '/symfony/var-dumper/Caster/StubCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\SymfonyCaster' => $vendorDir . '/symfony/var-dumper/Caster/SymfonyCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\TraceStub' => $vendorDir . '/symfony/var-dumper/Caster/TraceStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\XmlReaderCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlReaderCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\XmlResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlResourceCaster.php', - 'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' => $vendorDir . '/symfony/var-dumper/Cloner/AbstractCloner.php', - 'Symfony\\Component\\VarDumper\\Cloner\\ClonerInterface' => $vendorDir . '/symfony/var-dumper/Cloner/ClonerInterface.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Cursor' => $vendorDir . '/symfony/var-dumper/Cloner/Cursor.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Data' => $vendorDir . '/symfony/var-dumper/Cloner/Data.php', - 'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => $vendorDir . '/symfony/var-dumper/Cloner/DumperInterface.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Stub' => $vendorDir . '/symfony/var-dumper/Cloner/Stub.php', - 'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => $vendorDir . '/symfony/var-dumper/Cloner/VarCloner.php', - 'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => $vendorDir . '/symfony/var-dumper/Dumper/AbstractDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => $vendorDir . '/symfony/var-dumper/Dumper/CliDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => $vendorDir . '/symfony/var-dumper/Dumper/DataDumperInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => $vendorDir . '/symfony/var-dumper/Dumper/HtmlDumper.php', - 'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => $vendorDir . '/symfony/var-dumper/Exception/ThrowingCasterException.php', - 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php', - 'Symfony\\Component\\VarDumper\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php', - 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', - 'Symfony\\Polyfill\\Php70\\Php70' => $vendorDir . '/symfony/polyfill-php70/Php70.php', - 'Symfony\\Thanks\\Command\\ThanksCommand' => $vendorDir . '/symfony/thanks/src/Command/ThanksCommand.php', - 'Symfony\\Thanks\\Thanks' => $vendorDir . '/symfony/thanks/src/Thanks.php', - 'Tests\\CreatesApplication' => $baseDir . '/tests/CreatesApplication.php', - 'Tests\\Feature\\ExampleTest' => $baseDir . '/tests/Feature/ExampleTest.php', - 'Tests\\TestCase' => $baseDir . '/tests/TestCase.php', - 'Tests\\Unit\\ExampleTest' => $baseDir . '/tests/Unit/ExampleTest.php', - 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php', - 'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php', - 'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php', - 'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php', - 'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php', - 'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php', - 'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php', - 'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php', - 'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php', - 'TijsVerkoyen\\CssToInlineStyles\\CssToInlineStyles' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Property' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php', - 'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php', - 'Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', - 'Whoops\\Exception\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php', - 'Whoops\\Exception\\Formatter' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Formatter.php', - 'Whoops\\Exception\\Frame' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Frame.php', - 'Whoops\\Exception\\FrameCollection' => $vendorDir . '/filp/whoops/src/Whoops/Exception/FrameCollection.php', - 'Whoops\\Exception\\Inspector' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Inspector.php', - 'Whoops\\Handler\\CallbackHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php', - 'Whoops\\Handler\\Handler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/Handler.php', - 'Whoops\\Handler\\HandlerInterface' => $vendorDir . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php', - 'Whoops\\Handler\\JsonResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php', - 'Whoops\\Handler\\PlainTextHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php', - 'Whoops\\Handler\\PrettyPageHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php', - 'Whoops\\Handler\\XmlResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php', - 'Whoops\\Run' => $vendorDir . '/filp/whoops/src/Whoops/Run.php', - 'Whoops\\RunInterface' => $vendorDir . '/filp/whoops/src/Whoops/RunInterface.php', - 'Whoops\\Util\\HtmlDumperOutput' => $vendorDir . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php', - 'Whoops\\Util\\Misc' => $vendorDir . '/filp/whoops/src/Whoops/Util/Misc.php', - 'Whoops\\Util\\SystemFacade' => $vendorDir . '/filp/whoops/src/Whoops/Util/SystemFacade.php', - 'Whoops\\Util\\TemplateHelper' => $vendorDir . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', - 'XdgBaseDir\\Xdg' => $vendorDir . '/dnoegel/php-xdg-base-dir/src/Xdg.php', - 'phpDocumentor\\Reflection\\DocBlock' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock.php', - 'phpDocumentor\\Reflection\\DocBlockFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php', - 'phpDocumentor\\Reflection\\DocBlockFactoryInterface' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php', - 'phpDocumentor\\Reflection\\DocBlock\\Description' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Description.php', - 'phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\ExampleFinder' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php', - 'phpDocumentor\\Reflection\\DocBlock\\Serializer' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php', - 'phpDocumentor\\Reflection\\DocBlock\\StandardTagFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tag' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php', - 'phpDocumentor\\Reflection\\DocBlock\\TagFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Author' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\BaseTag' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Covers' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Deprecated' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Example' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\StaticMethod' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\Strategy' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\AlignFormatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\PassthroughFormatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Generic' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Link' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Method' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Param' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Property' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyRead' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyWrite' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Fqsen' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Reference' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Url' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Return_' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\See' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Since' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Source' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Throws' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Uses' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Var_' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Version' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php', - 'phpDocumentor\\Reflection\\Element' => $vendorDir . '/phpdocumentor/reflection-common/src/Element.php', - 'phpDocumentor\\Reflection\\File' => $vendorDir . '/phpdocumentor/reflection-common/src/File.php', - 'phpDocumentor\\Reflection\\Fqsen' => $vendorDir . '/phpdocumentor/reflection-common/src/Fqsen.php', - 'phpDocumentor\\Reflection\\FqsenResolver' => $vendorDir . '/phpdocumentor/type-resolver/src/FqsenResolver.php', - 'phpDocumentor\\Reflection\\Location' => $vendorDir . '/phpdocumentor/reflection-common/src/Location.php', - 'phpDocumentor\\Reflection\\Project' => $vendorDir . '/phpdocumentor/reflection-common/src/Project.php', - 'phpDocumentor\\Reflection\\ProjectFactory' => $vendorDir . '/phpdocumentor/reflection-common/src/ProjectFactory.php', - 'phpDocumentor\\Reflection\\Type' => $vendorDir . '/phpdocumentor/type-resolver/src/Type.php', - 'phpDocumentor\\Reflection\\TypeResolver' => $vendorDir . '/phpdocumentor/type-resolver/src/TypeResolver.php', - 'phpDocumentor\\Reflection\\Types\\Array_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Array_.php', - 'phpDocumentor\\Reflection\\Types\\Boolean' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Boolean.php', - 'phpDocumentor\\Reflection\\Types\\Callable_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Callable_.php', - 'phpDocumentor\\Reflection\\Types\\Compound' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Compound.php', - 'phpDocumentor\\Reflection\\Types\\Context' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Context.php', - 'phpDocumentor\\Reflection\\Types\\ContextFactory' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/ContextFactory.php', - 'phpDocumentor\\Reflection\\Types\\Float_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Float_.php', - 'phpDocumentor\\Reflection\\Types\\Integer' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Integer.php', - 'phpDocumentor\\Reflection\\Types\\Iterable_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Iterable_.php', - 'phpDocumentor\\Reflection\\Types\\Mixed_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Mixed_.php', - 'phpDocumentor\\Reflection\\Types\\Null_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Null_.php', - 'phpDocumentor\\Reflection\\Types\\Nullable' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Nullable.php', - 'phpDocumentor\\Reflection\\Types\\Object_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Object_.php', - 'phpDocumentor\\Reflection\\Types\\Parent_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Parent_.php', - 'phpDocumentor\\Reflection\\Types\\Resource_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Resource_.php', - 'phpDocumentor\\Reflection\\Types\\Scalar' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Scalar.php', - 'phpDocumentor\\Reflection\\Types\\Self_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Self_.php', - 'phpDocumentor\\Reflection\\Types\\Static_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Static_.php', - 'phpDocumentor\\Reflection\\Types\\String_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/String_.php', - 'phpDocumentor\\Reflection\\Types\\This' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/This.php', - 'phpDocumentor\\Reflection\\Types\\Void_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Void_.php', -); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php deleted file mode 100644 index 9c8c93e1..00000000 --- a/vendor/composer/autoload_files.php +++ /dev/null @@ -1,23 +0,0 @@ - $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', - '5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php', - '023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php', - '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php', - '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php', - 'e7223560d890eab89cda23685e711e2c' => $vendorDir . '/psy/psysh/src/Psy/functions.php', - '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', - 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', - 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', - 'f18cc91337d49233e5754e93f3ed9ec3' => $vendorDir . '/laravelcollective/html/src/helpers.php', - 'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php', - '58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php', - '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', - 'e617b14322a074392076a2f38eaf6115' => $baseDir . '/app/Helper.php', -); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php deleted file mode 100644 index 058a3a17..00000000 --- a/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,15 +0,0 @@ - array($vendorDir . '/phpspec/prophecy/src'), - 'Parsedown' => array($vendorDir . '/erusev/parsedown'), - 'Mockery' => array($vendorDir . '/mockery/mockery/library'), - 'JakubOnderka\\PhpConsoleHighlighter' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'), - 'JakubOnderka\\PhpConsoleColor' => array($vendorDir . '/jakub-onderka/php-console-color/src'), - 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'), -); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php deleted file mode 100644 index 6987608a..00000000 --- a/vendor/composer/autoload_psr4.php +++ /dev/null @@ -1,54 +0,0 @@ - array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'), - 'XdgBaseDir\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'), - 'Whoops\\' => array($vendorDir . '/filp/whoops/src/Whoops'), - 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'TijsVerkoyen\\CssToInlineStyles\\' => array($vendorDir . '/tijsverkoyen/css-to-inline-styles/src'), - 'Tests\\' => array($baseDir . '/tests'), - 'Symfony\\Thanks\\' => array($vendorDir . '/symfony/thanks/src'), - 'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'), - 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), - 'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'), - 'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'), - 'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'), - 'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), - 'Symfony\\Component\\HttpKernel\\' => array($vendorDir . '/symfony/http-kernel'), - 'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'), - 'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), - 'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'), - 'Symfony\\Component\\Debug\\' => array($vendorDir . '/symfony/debug'), - 'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'), - 'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), - 'Ramsey\\Uuid\\' => array($vendorDir . '/ramsey/uuid/src'), - 'Psy\\' => array($vendorDir . '/psy/psysh/src/Psy'), - 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), - 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), - 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), - 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), - 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), - 'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'), - 'Laravel\\Tinker\\' => array($vendorDir . '/laravel/tinker/src'), - 'Illuminate\\' => array($vendorDir . '/laravel/framework/src/Illuminate'), - 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), - 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), - 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), - 'Fideloper\\Proxy\\' => array($vendorDir . '/fideloper/proxy/src'), - 'Faker\\' => array($vendorDir . '/fzaninotto/faker/src/Faker'), - 'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/EmailValidator'), - 'Dotenv\\' => array($vendorDir . '/vlucas/phpdotenv/src'), - 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), - 'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector'), - 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), - 'Cron\\' => array($vendorDir . '/mtdowling/cron-expression/src/Cron'), - 'Collective\\Html\\' => array($vendorDir . '/laravelcollective/html/src'), - 'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'), - 'App\\' => array($baseDir . '/app'), -); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php deleted file mode 100644 index 04d92ec8..00000000 --- a/vendor/composer/autoload_real.php +++ /dev/null @@ -1,70 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require_once __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } - foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire4b6fb9210a1ea37c2db27b8ff53a1ecf($fileIdentifier, $file); - } - - return $loader; - } -} - -function composerRequire4b6fb9210a1ea37c2db27b8ff53a1ecf($fileIdentifier, $file) -{ - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - require $file; - - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - } -} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php deleted file mode 100644 index d5a266af..00000000 --- a/vendor/composer/autoload_static.php +++ /dev/null @@ -1,3770 +0,0 @@ - __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', - '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php', - '023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php', - '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', - '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php', - 'e7223560d890eab89cda23685e711e2c' => __DIR__ . '/..' . '/psy/psysh/src/Psy/functions.php', - '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', - 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', - 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', - 'f18cc91337d49233e5754e93f3ed9ec3' => __DIR__ . '/..' . '/laravelcollective/html/src/helpers.php', - 'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php', - '58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php', - '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', - 'e617b14322a074392076a2f38eaf6115' => __DIR__ . '/../..' . '/app/Helper.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'p' => - array ( - 'phpDocumentor\\Reflection\\' => 25, - ), - 'X' => - array ( - 'XdgBaseDir\\' => 11, - ), - 'W' => - array ( - 'Whoops\\' => 7, - 'Webmozart\\Assert\\' => 17, - ), - 'T' => - array ( - 'TijsVerkoyen\\CssToInlineStyles\\' => 31, - 'Tests\\' => 6, - ), - 'S' => - array ( - 'Symfony\\Thanks\\' => 15, - 'Symfony\\Polyfill\\Php70\\' => 23, - 'Symfony\\Polyfill\\Mbstring\\' => 26, - 'Symfony\\Component\\VarDumper\\' => 28, - 'Symfony\\Component\\Translation\\' => 30, - 'Symfony\\Component\\Routing\\' => 26, - 'Symfony\\Component\\Process\\' => 26, - 'Symfony\\Component\\HttpKernel\\' => 29, - 'Symfony\\Component\\HttpFoundation\\' => 33, - 'Symfony\\Component\\Finder\\' => 25, - 'Symfony\\Component\\EventDispatcher\\' => 34, - 'Symfony\\Component\\Debug\\' => 24, - 'Symfony\\Component\\CssSelector\\' => 30, - 'Symfony\\Component\\Console\\' => 26, - ), - 'R' => - array ( - 'Ramsey\\Uuid\\' => 12, - ), - 'P' => - array ( - 'Psy\\' => 4, - 'Psr\\SimpleCache\\' => 16, - 'Psr\\Log\\' => 8, - 'Psr\\Http\\Message\\' => 17, - 'Psr\\Container\\' => 14, - 'PhpParser\\' => 10, - ), - 'M' => - array ( - 'Monolog\\' => 8, - ), - 'L' => - array ( - 'League\\Flysystem\\' => 17, - 'Laravel\\Tinker\\' => 15, - ), - 'I' => - array ( - 'Illuminate\\' => 11, - ), - 'G' => - array ( - 'GuzzleHttp\\Psr7\\' => 16, - 'GuzzleHttp\\Promise\\' => 19, - 'GuzzleHttp\\' => 11, - ), - 'F' => - array ( - 'Fideloper\\Proxy\\' => 16, - 'Faker\\' => 6, - ), - 'E' => - array ( - 'Egulias\\EmailValidator\\' => 23, - ), - 'D' => - array ( - 'Dotenv\\' => 7, - 'Doctrine\\Instantiator\\' => 22, - 'Doctrine\\Common\\Inflector\\' => 26, - 'DeepCopy\\' => 9, - ), - 'C' => - array ( - 'Cron\\' => 5, - 'Collective\\Html\\' => 16, - 'Carbon\\' => 7, - ), - 'A' => - array ( - 'App\\' => 4, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'phpDocumentor\\Reflection\\' => - array ( - 0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src', - 1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src', - 2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src', - ), - 'XdgBaseDir\\' => - array ( - 0 => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src', - ), - 'Whoops\\' => - array ( - 0 => __DIR__ . '/..' . '/filp/whoops/src/Whoops', - ), - 'Webmozart\\Assert\\' => - array ( - 0 => __DIR__ . '/..' . '/webmozart/assert/src', - ), - 'TijsVerkoyen\\CssToInlineStyles\\' => - array ( - 0 => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src', - ), - 'Tests\\' => - array ( - 0 => __DIR__ . '/../..' . '/tests', - ), - 'Symfony\\Thanks\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/thanks/src', - ), - 'Symfony\\Polyfill\\Php70\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php70', - ), - 'Symfony\\Polyfill\\Mbstring\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', - ), - 'Symfony\\Component\\VarDumper\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/var-dumper', - ), - 'Symfony\\Component\\Translation\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/translation', - ), - 'Symfony\\Component\\Routing\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/routing', - ), - 'Symfony\\Component\\Process\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/process', - ), - 'Symfony\\Component\\HttpKernel\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/http-kernel', - ), - 'Symfony\\Component\\HttpFoundation\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/http-foundation', - ), - 'Symfony\\Component\\Finder\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/finder', - ), - 'Symfony\\Component\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/event-dispatcher', - ), - 'Symfony\\Component\\Debug\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/debug', - ), - 'Symfony\\Component\\CssSelector\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/css-selector', - ), - 'Symfony\\Component\\Console\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/console', - ), - 'Ramsey\\Uuid\\' => - array ( - 0 => __DIR__ . '/..' . '/ramsey/uuid/src', - ), - 'Psy\\' => - array ( - 0 => __DIR__ . '/..' . '/psy/psysh/src/Psy', - ), - 'Psr\\SimpleCache\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/simple-cache/src', - ), - 'Psr\\Log\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/log/Psr/Log', - ), - 'Psr\\Http\\Message\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/http-message/src', - ), - 'Psr\\Container\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/container/src', - ), - 'PhpParser\\' => - array ( - 0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser', - ), - 'Monolog\\' => - array ( - 0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog', - ), - 'League\\Flysystem\\' => - array ( - 0 => __DIR__ . '/..' . '/league/flysystem/src', - ), - 'Laravel\\Tinker\\' => - array ( - 0 => __DIR__ . '/..' . '/laravel/tinker/src', - ), - 'Illuminate\\' => - array ( - 0 => __DIR__ . '/..' . '/laravel/framework/src/Illuminate', - ), - 'GuzzleHttp\\Psr7\\' => - array ( - 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src', - ), - 'GuzzleHttp\\Promise\\' => - array ( - 0 => __DIR__ . '/..' . '/guzzlehttp/promises/src', - ), - 'GuzzleHttp\\' => - array ( - 0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src', - ), - 'Fideloper\\Proxy\\' => - array ( - 0 => __DIR__ . '/..' . '/fideloper/proxy/src', - ), - 'Faker\\' => - array ( - 0 => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker', - ), - 'Egulias\\EmailValidator\\' => - array ( - 0 => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator', - ), - 'Dotenv\\' => - array ( - 0 => __DIR__ . '/..' . '/vlucas/phpdotenv/src', - ), - 'Doctrine\\Instantiator\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator', - ), - 'Doctrine\\Common\\Inflector\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector', - ), - 'DeepCopy\\' => - array ( - 0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy', - ), - 'Cron\\' => - array ( - 0 => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron', - ), - 'Collective\\Html\\' => - array ( - 0 => __DIR__ . '/..' . '/laravelcollective/html/src', - ), - 'Carbon\\' => - array ( - 0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon', - ), - 'App\\' => - array ( - 0 => __DIR__ . '/../..' . '/app', - ), - ); - - public static $prefixesPsr0 = array ( - 'P' => - array ( - 'Prophecy\\' => - array ( - 0 => __DIR__ . '/..' . '/phpspec/prophecy/src', - ), - 'Parsedown' => - array ( - 0 => __DIR__ . '/..' . '/erusev/parsedown', - ), - ), - 'M' => - array ( - 'Mockery' => - array ( - 0 => __DIR__ . '/..' . '/mockery/mockery/library', - ), - ), - 'J' => - array ( - 'JakubOnderka\\PhpConsoleHighlighter' => - array ( - 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src', - ), - 'JakubOnderka\\PhpConsoleColor' => - array ( - 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src', - ), - ), - 'D' => - array ( - 'Doctrine\\Common\\Lexer\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/lexer/lib', - ), - ), - ); - - public static $classMap = array ( - 'App\\Console\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php', - 'App\\Exceptions\\Handler' => __DIR__ . '/../..' . '/app/Exceptions/Handler.php', - 'App\\Http\\Controllers\\Auth\\ForgotPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ForgotPasswordController.php', - 'App\\Http\\Controllers\\Auth\\LoginController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/LoginController.php', - 'App\\Http\\Controllers\\Auth\\RegisterController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/RegisterController.php', - 'App\\Http\\Controllers\\Auth\\ResetPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ResetPasswordController.php', - 'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php', - 'App\\Http\\Controllers\\ItemController' => __DIR__ . '/../..' . '/app/Http/Controllers/ItemController.php', - 'App\\Http\\Controllers\\SettingsController' => __DIR__ . '/../..' . '/app/Http/Controllers/SettingsController.php', - 'App\\Http\\Kernel' => __DIR__ . '/../..' . '/app/Http/Kernel.php', - 'App\\Http\\Middleware\\EncryptCookies' => __DIR__ . '/../..' . '/app/Http/Middleware/EncryptCookies.php', - 'App\\Http\\Middleware\\RedirectIfAuthenticated' => __DIR__ . '/../..' . '/app/Http/Middleware/RedirectIfAuthenticated.php', - 'App\\Http\\Middleware\\TrimStrings' => __DIR__ . '/../..' . '/app/Http/Middleware/TrimStrings.php', - 'App\\Http\\Middleware\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php', - 'App\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php', - 'App\\Item' => __DIR__ . '/../..' . '/app/Item.php', - 'App\\Providers\\AppServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AppServiceProvider.php', - 'App\\Providers\\AuthServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AuthServiceProvider.php', - 'App\\Providers\\BroadcastServiceProvider' => __DIR__ . '/../..' . '/app/Providers/BroadcastServiceProvider.php', - 'App\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/app/Providers/EventServiceProvider.php', - 'App\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/app/Providers/RouteServiceProvider.php', - 'App\\Setting' => __DIR__ . '/../..' . '/app/Setting.php', - 'App\\SettingGroup' => __DIR__ . '/../..' . '/app/SettingGroup.php', - 'App\\SupportedApps\\Contracts\\Applications' => __DIR__ . '/../..' . '/app/SupportedApps/Contracts/Applications.php', - 'App\\SupportedApps\\Contracts\\Livestats' => __DIR__ . '/../..' . '/app/SupportedApps/Contracts/Livestats.php', - 'App\\SupportedApps\\Duplicati' => __DIR__ . '/../..' . '/app/SupportedApps/Duplicati.php', - 'App\\SupportedApps\\Emby' => __DIR__ . '/../..' . '/app/SupportedApps/Emby.php', - 'App\\SupportedApps\\Nzbget' => __DIR__ . '/../..' . '/app/SupportedApps/Nzbget.php', - 'App\\SupportedApps\\Pfsense' => __DIR__ . '/../..' . '/app/SupportedApps/Pfsense.php', - 'App\\SupportedApps\\Pihole' => __DIR__ . '/../..' . '/app/SupportedApps/Pihole.php', - 'App\\SupportedApps\\Plex' => __DIR__ . '/../..' . '/app/SupportedApps/Plex.php', - 'App\\SupportedApps\\Portainer' => __DIR__ . '/../..' . '/app/SupportedApps/Portainer.php', - 'App\\SupportedApps\\Unifi' => __DIR__ . '/../..' . '/app/SupportedApps/Unifi.php', - 'App\\User' => __DIR__ . '/../..' . '/app/User.php', - 'ArithmeticError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php', - 'AssertionError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php', - 'Carbon\\Carbon' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Carbon.php', - 'Carbon\\CarbonInterval' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonInterval.php', - 'Carbon\\Exceptions\\InvalidDateException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php', - 'Collective\\Html\\Componentable' => __DIR__ . '/..' . '/laravelcollective/html/src/Componentable.php', - 'Collective\\Html\\Eloquent\\FormAccessible' => __DIR__ . '/..' . '/laravelcollective/html/src/Eloquent/FormAccessible.php', - 'Collective\\Html\\FormBuilder' => __DIR__ . '/..' . '/laravelcollective/html/src/FormBuilder.php', - 'Collective\\Html\\FormFacade' => __DIR__ . '/..' . '/laravelcollective/html/src/FormFacade.php', - 'Collective\\Html\\HtmlBuilder' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlBuilder.php', - 'Collective\\Html\\HtmlFacade' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlFacade.php', - 'Collective\\Html\\HtmlServiceProvider' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlServiceProvider.php', - 'Cron\\AbstractField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/AbstractField.php', - 'Cron\\CronExpression' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/CronExpression.php', - 'Cron\\DayOfMonthField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/DayOfMonthField.php', - 'Cron\\DayOfWeekField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/DayOfWeekField.php', - 'Cron\\FieldFactory' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/FieldFactory.php', - 'Cron\\FieldInterface' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/FieldInterface.php', - 'Cron\\HoursField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/HoursField.php', - 'Cron\\MinutesField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/MinutesField.php', - 'Cron\\MonthField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/MonthField.php', - 'Cron\\YearField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/YearField.php', - 'DatabaseSeeder' => __DIR__ . '/../..' . '/database/seeds/DatabaseSeeder.php', - 'DeepCopy\\DeepCopy' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php', - 'DeepCopy\\Exception\\CloneException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php', - 'DeepCopy\\Exception\\PropertyException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php', - 'DeepCopy\\Filter\\Filter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php', - 'DeepCopy\\Filter\\KeepFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php', - 'DeepCopy\\Filter\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php', - 'DeepCopy\\Filter\\SetNullFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php', - 'DeepCopy\\Matcher\\Doctrine\\DoctrineProxyMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php', - 'DeepCopy\\Matcher\\Matcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php', - 'DeepCopy\\Matcher\\PropertyMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php', - 'DeepCopy\\Matcher\\PropertyNameMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php', - 'DeepCopy\\Matcher\\PropertyTypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php', - 'DeepCopy\\Reflection\\ReflectionHelper' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php', - 'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php', - 'DeepCopy\\TypeFilter\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php', - 'DeepCopy\\TypeFilter\\ShallowCopyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php', - 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedList' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php', - 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php', - 'DeepCopy\\TypeFilter\\TypeFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php', - 'DeepCopy\\TypeMatcher\\TypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php', - 'DivisionByZeroError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php', - 'Doctrine\\Common\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php', - 'Doctrine\\Common\\Lexer\\AbstractLexer' => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php', - 'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php', - 'Doctrine\\Instantiator\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php', - 'Doctrine\\Instantiator\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php', - 'Doctrine\\Instantiator\\Instantiator' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php', - 'Doctrine\\Instantiator\\InstantiatorInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php', - 'Dotenv\\Dotenv' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Dotenv.php', - 'Dotenv\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/ExceptionInterface.php', - 'Dotenv\\Exception\\InvalidCallbackException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/InvalidCallbackException.php', - 'Dotenv\\Exception\\InvalidFileException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/InvalidFileException.php', - 'Dotenv\\Exception\\InvalidPathException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/InvalidPathException.php', - 'Dotenv\\Exception\\ValidationException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/ValidationException.php', - 'Dotenv\\Loader' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Loader.php', - 'Dotenv\\Validator' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Validator.php', - 'Egulias\\EmailValidator\\EmailLexer' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailLexer.php', - 'Egulias\\EmailValidator\\EmailParser' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailParser.php', - 'Egulias\\EmailValidator\\EmailValidator' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailValidator.php', - 'Egulias\\EmailValidator\\Exception\\AtextAfterCFWS' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php', - 'Egulias\\EmailValidator\\Exception\\CRLFAtTheEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php', - 'Egulias\\EmailValidator\\Exception\\CRLFX2' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRLFX2.php', - 'Egulias\\EmailValidator\\Exception\\CRNoLF' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRNoLF.php', - 'Egulias\\EmailValidator\\Exception\\CharNotAllowed' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php', - 'Egulias\\EmailValidator\\Exception\\CommaInDomain' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php', - 'Egulias\\EmailValidator\\Exception\\ConsecutiveAt' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php', - 'Egulias\\EmailValidator\\Exception\\ConsecutiveDot' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php', - 'Egulias\\EmailValidator\\Exception\\DomainHyphened' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php', - 'Egulias\\EmailValidator\\Exception\\DotAtEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php', - 'Egulias\\EmailValidator\\Exception\\DotAtStart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DotAtStart.php', - 'Egulias\\EmailValidator\\Exception\\ExpectedQPair' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingAT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingATEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingCTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingDTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingDomainLiteralClose' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php', - 'Egulias\\EmailValidator\\Exception\\InvalidEmail' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php', - 'Egulias\\EmailValidator\\Exception\\NoDNSRecord' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php', - 'Egulias\\EmailValidator\\Exception\\NoDomainPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php', - 'Egulias\\EmailValidator\\Exception\\NoLocalPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php', - 'Egulias\\EmailValidator\\Exception\\UnclosedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php', - 'Egulias\\EmailValidator\\Exception\\UnclosedQuotedString' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php', - 'Egulias\\EmailValidator\\Exception\\UnopenedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php', - 'Egulias\\EmailValidator\\Parser\\DomainPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/DomainPart.php', - 'Egulias\\EmailValidator\\Parser\\LocalPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/LocalPart.php', - 'Egulias\\EmailValidator\\Parser\\Parser' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/Parser.php', - 'Egulias\\EmailValidator\\Validation\\DNSCheckValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php', - 'Egulias\\EmailValidator\\Validation\\EmailValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/EmailValidation.php', - 'Egulias\\EmailValidator\\Validation\\Error\\RFCWarnings' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php', - 'Egulias\\EmailValidator\\Validation\\Error\\SpoofEmail' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php', - 'Egulias\\EmailValidator\\Validation\\Exception\\EmptyValidationList' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php', - 'Egulias\\EmailValidator\\Validation\\MultipleErrors' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php', - 'Egulias\\EmailValidator\\Validation\\MultipleValidationWithAnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php', - 'Egulias\\EmailValidator\\Validation\\NoRFCWarningsValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php', - 'Egulias\\EmailValidator\\Validation\\RFCValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/RFCValidation.php', - 'Egulias\\EmailValidator\\Validation\\SpoofCheckValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php', - 'Egulias\\EmailValidator\\Warning\\AddressLiteral' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php', - 'Egulias\\EmailValidator\\Warning\\CFWSNearAt' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php', - 'Egulias\\EmailValidator\\Warning\\CFWSWithFWS' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php', - 'Egulias\\EmailValidator\\Warning\\Comment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/Comment.php', - 'Egulias\\EmailValidator\\Warning\\DeprecatedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php', - 'Egulias\\EmailValidator\\Warning\\DomainLiteral' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php', - 'Egulias\\EmailValidator\\Warning\\DomainTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php', - 'Egulias\\EmailValidator\\Warning\\EmailTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php', - 'Egulias\\EmailValidator\\Warning\\IPV6BadChar' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php', - 'Egulias\\EmailValidator\\Warning\\IPV6ColonEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php', - 'Egulias\\EmailValidator\\Warning\\IPV6ColonStart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php', - 'Egulias\\EmailValidator\\Warning\\IPV6Deprecated' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php', - 'Egulias\\EmailValidator\\Warning\\IPV6DoubleColon' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php', - 'Egulias\\EmailValidator\\Warning\\IPV6GroupCount' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php', - 'Egulias\\EmailValidator\\Warning\\IPV6MaxGroups' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php', - 'Egulias\\EmailValidator\\Warning\\LabelTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php', - 'Egulias\\EmailValidator\\Warning\\LocalTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php', - 'Egulias\\EmailValidator\\Warning\\NoDNSMXRecord' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php', - 'Egulias\\EmailValidator\\Warning\\ObsoleteDTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php', - 'Egulias\\EmailValidator\\Warning\\QuotedPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/QuotedPart.php', - 'Egulias\\EmailValidator\\Warning\\QuotedString' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/QuotedString.php', - 'Egulias\\EmailValidator\\Warning\\TLD' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/TLD.php', - 'Egulias\\EmailValidator\\Warning\\Warning' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/Warning.php', - 'Error' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/Error.php', - 'Faker\\Calculator\\Iban' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Iban.php', - 'Faker\\Calculator\\Inn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Inn.php', - 'Faker\\Calculator\\Luhn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php', - 'Faker\\DefaultGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/DefaultGenerator.php', - 'Faker\\Documentor' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Documentor.php', - 'Faker\\Factory' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Factory.php', - 'Faker\\Generator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Generator.php', - 'Faker\\Guesser\\Name' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Guesser/Name.php', - 'Faker\\ORM\\CakePHP\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php', - 'Faker\\ORM\\CakePHP\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php', - 'Faker\\ORM\\CakePHP\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php', - 'Faker\\ORM\\Doctrine\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php', - 'Faker\\ORM\\Doctrine\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php', - 'Faker\\ORM\\Doctrine\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php', - 'Faker\\ORM\\Mandango\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php', - 'Faker\\ORM\\Mandango\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php', - 'Faker\\ORM\\Mandango\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php', - 'Faker\\ORM\\Propel2\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php', - 'Faker\\ORM\\Propel2\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php', - 'Faker\\ORM\\Propel2\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php', - 'Faker\\ORM\\Propel\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php', - 'Faker\\ORM\\Propel\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php', - 'Faker\\ORM\\Propel\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php', - 'Faker\\ORM\\Spot\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php', - 'Faker\\ORM\\Spot\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php', - 'Faker\\ORM\\Spot\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php', - 'Faker\\Provider\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Address.php', - 'Faker\\Provider\\Barcode' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Barcode.php', - 'Faker\\Provider\\Base' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Base.php', - 'Faker\\Provider\\Biased' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Biased.php', - 'Faker\\Provider\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Color.php', - 'Faker\\Provider\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Company.php', - 'Faker\\Provider\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/DateTime.php', - 'Faker\\Provider\\File' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/File.php', - 'Faker\\Provider\\HtmlLorem' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php', - 'Faker\\Provider\\Image' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Image.php', - 'Faker\\Provider\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Internet.php', - 'Faker\\Provider\\Lorem' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Lorem.php', - 'Faker\\Provider\\Miscellaneous' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php', - 'Faker\\Provider\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Payment.php', - 'Faker\\Provider\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Person.php', - 'Faker\\Provider\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php', - 'Faker\\Provider\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Text.php', - 'Faker\\Provider\\UserAgent' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/UserAgent.php', - 'Faker\\Provider\\Uuid' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Uuid.php', - 'Faker\\Provider\\ar_JO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php', - 'Faker\\Provider\\ar_JO\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php', - 'Faker\\Provider\\ar_JO\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php', - 'Faker\\Provider\\ar_JO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php', - 'Faker\\Provider\\ar_JO\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php', - 'Faker\\Provider\\ar_SA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php', - 'Faker\\Provider\\ar_SA\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php', - 'Faker\\Provider\\ar_SA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php', - 'Faker\\Provider\\ar_SA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php', - 'Faker\\Provider\\ar_SA\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php', - 'Faker\\Provider\\ar_SA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php', - 'Faker\\Provider\\ar_SA\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php', - 'Faker\\Provider\\at_AT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php', - 'Faker\\Provider\\bg_BG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php', - 'Faker\\Provider\\bg_BG\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php', - 'Faker\\Provider\\bg_BG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php', - 'Faker\\Provider\\bg_BG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php', - 'Faker\\Provider\\bn_BD\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Address.php', - 'Faker\\Provider\\bn_BD\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Company.php', - 'Faker\\Provider\\bn_BD\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Person.php', - 'Faker\\Provider\\bn_BD\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/PhoneNumber.php', - 'Faker\\Provider\\bn_BD\\Utils' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Utils.php', - 'Faker\\Provider\\cs_CZ\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Address.php', - 'Faker\\Provider\\cs_CZ\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Company.php', - 'Faker\\Provider\\cs_CZ\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php', - 'Faker\\Provider\\cs_CZ\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php', - 'Faker\\Provider\\cs_CZ\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Payment.php', - 'Faker\\Provider\\cs_CZ\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php', - 'Faker\\Provider\\cs_CZ\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php', - 'Faker\\Provider\\cs_CZ\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php', - 'Faker\\Provider\\da_DK\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php', - 'Faker\\Provider\\da_DK\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php', - 'Faker\\Provider\\da_DK\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php', - 'Faker\\Provider\\da_DK\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php', - 'Faker\\Provider\\da_DK\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php', - 'Faker\\Provider\\da_DK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php', - 'Faker\\Provider\\de_AT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php', - 'Faker\\Provider\\de_AT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php', - 'Faker\\Provider\\de_AT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php', - 'Faker\\Provider\\de_AT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php', - 'Faker\\Provider\\de_AT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php', - 'Faker\\Provider\\de_AT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php', - 'Faker\\Provider\\de_AT\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php', - 'Faker\\Provider\\de_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php', - 'Faker\\Provider\\de_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php', - 'Faker\\Provider\\de_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php', - 'Faker\\Provider\\de_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php', - 'Faker\\Provider\\de_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php', - 'Faker\\Provider\\de_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php', - 'Faker\\Provider\\de_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php', - 'Faker\\Provider\\de_DE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php', - 'Faker\\Provider\\de_DE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php', - 'Faker\\Provider\\de_DE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php', - 'Faker\\Provider\\de_DE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Payment.php', - 'Faker\\Provider\\de_DE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php', - 'Faker\\Provider\\de_DE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php', - 'Faker\\Provider\\de_DE\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php', - 'Faker\\Provider\\el_CY\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php', - 'Faker\\Provider\\el_CY\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php', - 'Faker\\Provider\\el_CY\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php', - 'Faker\\Provider\\el_CY\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php', - 'Faker\\Provider\\el_CY\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php', - 'Faker\\Provider\\el_CY\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php', - 'Faker\\Provider\\el_GR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php', - 'Faker\\Provider\\el_GR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php', - 'Faker\\Provider\\el_GR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php', - 'Faker\\Provider\\el_GR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php', - 'Faker\\Provider\\el_GR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php', - 'Faker\\Provider\\el_GR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php', - 'Faker\\Provider\\en_AU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php', - 'Faker\\Provider\\en_AU\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php', - 'Faker\\Provider\\en_AU\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php', - 'Faker\\Provider\\en_CA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_CA/Address.php', - 'Faker\\Provider\\en_CA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_CA/PhoneNumber.php', - 'Faker\\Provider\\en_GB\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php', - 'Faker\\Provider\\en_GB\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php', - 'Faker\\Provider\\en_GB\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php', - 'Faker\\Provider\\en_GB\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php', - 'Faker\\Provider\\en_GB\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php', - 'Faker\\Provider\\en_HK\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php', - 'Faker\\Provider\\en_HK\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php', - 'Faker\\Provider\\en_HK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php', - 'Faker\\Provider\\en_IN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php', - 'Faker\\Provider\\en_IN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php', - 'Faker\\Provider\\en_IN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php', - 'Faker\\Provider\\en_IN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php', - 'Faker\\Provider\\en_NG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php', - 'Faker\\Provider\\en_NG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php', - 'Faker\\Provider\\en_NG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php', - 'Faker\\Provider\\en_NG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php', - 'Faker\\Provider\\en_NZ\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php', - 'Faker\\Provider\\en_NZ\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php', - 'Faker\\Provider\\en_NZ\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php', - 'Faker\\Provider\\en_PH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php', - 'Faker\\Provider\\en_PH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php', - 'Faker\\Provider\\en_SG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php', - 'Faker\\Provider\\en_SG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php', - 'Faker\\Provider\\en_UG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php', - 'Faker\\Provider\\en_UG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php', - 'Faker\\Provider\\en_UG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php', - 'Faker\\Provider\\en_UG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php', - 'Faker\\Provider\\en_US\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Address.php', - 'Faker\\Provider\\en_US\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Company.php', - 'Faker\\Provider\\en_US\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php', - 'Faker\\Provider\\en_US\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Person.php', - 'Faker\\Provider\\en_US\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php', - 'Faker\\Provider\\en_US\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Text.php', - 'Faker\\Provider\\en_ZA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php', - 'Faker\\Provider\\en_ZA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php', - 'Faker\\Provider\\en_ZA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php', - 'Faker\\Provider\\en_ZA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php', - 'Faker\\Provider\\en_ZA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php', - 'Faker\\Provider\\es_AR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php', - 'Faker\\Provider\\es_AR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php', - 'Faker\\Provider\\es_AR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php', - 'Faker\\Provider\\es_AR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php', - 'Faker\\Provider\\es_ES\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php', - 'Faker\\Provider\\es_ES\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php', - 'Faker\\Provider\\es_ES\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php', - 'Faker\\Provider\\es_ES\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php', - 'Faker\\Provider\\es_ES\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php', - 'Faker\\Provider\\es_ES\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php', - 'Faker\\Provider\\es_ES\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php', - 'Faker\\Provider\\es_PE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php', - 'Faker\\Provider\\es_PE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php', - 'Faker\\Provider\\es_PE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php', - 'Faker\\Provider\\es_PE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/PhoneNumber.php', - 'Faker\\Provider\\es_VE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Address.php', - 'Faker\\Provider\\es_VE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Company.php', - 'Faker\\Provider\\es_VE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php', - 'Faker\\Provider\\es_VE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php', - 'Faker\\Provider\\es_VE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php', - 'Faker\\Provider\\fa_IR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php', - 'Faker\\Provider\\fa_IR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php', - 'Faker\\Provider\\fa_IR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php', - 'Faker\\Provider\\fa_IR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php', - 'Faker\\Provider\\fa_IR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php', - 'Faker\\Provider\\fa_IR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php', - 'Faker\\Provider\\fi_FI\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php', - 'Faker\\Provider\\fi_FI\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php', - 'Faker\\Provider\\fi_FI\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php', - 'Faker\\Provider\\fi_FI\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php', - 'Faker\\Provider\\fi_FI\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php', - 'Faker\\Provider\\fi_FI\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php', - 'Faker\\Provider\\fr_BE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php', - 'Faker\\Provider\\fr_BE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php', - 'Faker\\Provider\\fr_BE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php', - 'Faker\\Provider\\fr_BE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php', - 'Faker\\Provider\\fr_BE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php', - 'Faker\\Provider\\fr_BE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php', - 'Faker\\Provider\\fr_CA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php', - 'Faker\\Provider\\fr_CA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php', - 'Faker\\Provider\\fr_CA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php', - 'Faker\\Provider\\fr_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php', - 'Faker\\Provider\\fr_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php', - 'Faker\\Provider\\fr_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php', - 'Faker\\Provider\\fr_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php', - 'Faker\\Provider\\fr_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php', - 'Faker\\Provider\\fr_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php', - 'Faker\\Provider\\fr_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php', - 'Faker\\Provider\\fr_FR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php', - 'Faker\\Provider\\fr_FR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php', - 'Faker\\Provider\\fr_FR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php', - 'Faker\\Provider\\fr_FR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php', - 'Faker\\Provider\\fr_FR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php', - 'Faker\\Provider\\fr_FR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php', - 'Faker\\Provider\\fr_FR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php', - 'Faker\\Provider\\he_IL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php', - 'Faker\\Provider\\he_IL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php', - 'Faker\\Provider\\he_IL\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php', - 'Faker\\Provider\\he_IL\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php', - 'Faker\\Provider\\he_IL\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php', - 'Faker\\Provider\\hr_HR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php', - 'Faker\\Provider\\hr_HR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php', - 'Faker\\Provider\\hr_HR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php', - 'Faker\\Provider\\hr_HR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php', - 'Faker\\Provider\\hr_HR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php', - 'Faker\\Provider\\hu_HU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php', - 'Faker\\Provider\\hu_HU\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php', - 'Faker\\Provider\\hu_HU\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php', - 'Faker\\Provider\\hu_HU\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php', - 'Faker\\Provider\\hu_HU\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php', - 'Faker\\Provider\\hu_HU\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php', - 'Faker\\Provider\\hy_AM\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php', - 'Faker\\Provider\\hy_AM\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php', - 'Faker\\Provider\\hy_AM\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php', - 'Faker\\Provider\\hy_AM\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php', - 'Faker\\Provider\\hy_AM\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php', - 'Faker\\Provider\\hy_AM\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php', - 'Faker\\Provider\\id_ID\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php', - 'Faker\\Provider\\id_ID\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php', - 'Faker\\Provider\\id_ID\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php', - 'Faker\\Provider\\id_ID\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php', - 'Faker\\Provider\\id_ID\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php', - 'Faker\\Provider\\is_IS\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php', - 'Faker\\Provider\\is_IS\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php', - 'Faker\\Provider\\is_IS\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php', - 'Faker\\Provider\\is_IS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php', - 'Faker\\Provider\\is_IS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php', - 'Faker\\Provider\\is_IS\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php', - 'Faker\\Provider\\it_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php', - 'Faker\\Provider\\it_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php', - 'Faker\\Provider\\it_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php', - 'Faker\\Provider\\it_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php', - 'Faker\\Provider\\it_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php', - 'Faker\\Provider\\it_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php', - 'Faker\\Provider\\it_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php', - 'Faker\\Provider\\it_IT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php', - 'Faker\\Provider\\it_IT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php', - 'Faker\\Provider\\it_IT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php', - 'Faker\\Provider\\it_IT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Payment.php', - 'Faker\\Provider\\it_IT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php', - 'Faker\\Provider\\it_IT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php', - 'Faker\\Provider\\it_IT\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php', - 'Faker\\Provider\\ja_JP\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Address.php', - 'Faker\\Provider\\ja_JP\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php', - 'Faker\\Provider\\ja_JP\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php', - 'Faker\\Provider\\ja_JP\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php', - 'Faker\\Provider\\ja_JP\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php', - 'Faker\\Provider\\ja_JP\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php', - 'Faker\\Provider\\ka_GE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php', - 'Faker\\Provider\\ka_GE\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php', - 'Faker\\Provider\\ka_GE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php', - 'Faker\\Provider\\ka_GE\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php', - 'Faker\\Provider\\ka_GE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php', - 'Faker\\Provider\\ka_GE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php', - 'Faker\\Provider\\ka_GE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php', - 'Faker\\Provider\\ka_GE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php', - 'Faker\\Provider\\ka_GE\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php', - 'Faker\\Provider\\kk_KZ\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php', - 'Faker\\Provider\\kk_KZ\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php', - 'Faker\\Provider\\kk_KZ\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php', - 'Faker\\Provider\\kk_KZ\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php', - 'Faker\\Provider\\kk_KZ\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php', - 'Faker\\Provider\\kk_KZ\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php', - 'Faker\\Provider\\kk_KZ\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php', - 'Faker\\Provider\\kk_KZ\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php', - 'Faker\\Provider\\ko_KR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php', - 'Faker\\Provider\\ko_KR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php', - 'Faker\\Provider\\ko_KR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php', - 'Faker\\Provider\\ko_KR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php', - 'Faker\\Provider\\ko_KR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php', - 'Faker\\Provider\\ko_KR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php', - 'Faker\\Provider\\lt_LT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php', - 'Faker\\Provider\\lt_LT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php', - 'Faker\\Provider\\lt_LT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php', - 'Faker\\Provider\\lt_LT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php', - 'Faker\\Provider\\lt_LT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php', - 'Faker\\Provider\\lt_LT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php', - 'Faker\\Provider\\lv_LV\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php', - 'Faker\\Provider\\lv_LV\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php', - 'Faker\\Provider\\lv_LV\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php', - 'Faker\\Provider\\lv_LV\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php', - 'Faker\\Provider\\lv_LV\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php', - 'Faker\\Provider\\lv_LV\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php', - 'Faker\\Provider\\me_ME\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php', - 'Faker\\Provider\\me_ME\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php', - 'Faker\\Provider\\me_ME\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php', - 'Faker\\Provider\\me_ME\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php', - 'Faker\\Provider\\me_ME\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php', - 'Faker\\Provider\\mn_MN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php', - 'Faker\\Provider\\mn_MN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php', - 'Faker\\Provider\\nb_NO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php', - 'Faker\\Provider\\nb_NO\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php', - 'Faker\\Provider\\nb_NO\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php', - 'Faker\\Provider\\nb_NO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php', - 'Faker\\Provider\\nb_NO\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php', - 'Faker\\Provider\\ne_NP\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php', - 'Faker\\Provider\\ne_NP\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php', - 'Faker\\Provider\\ne_NP\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php', - 'Faker\\Provider\\ne_NP\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/PhoneNumber.php', - 'Faker\\Provider\\nl_BE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php', - 'Faker\\Provider\\nl_BE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php', - 'Faker\\Provider\\nl_BE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php', - 'Faker\\Provider\\nl_BE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php', - 'Faker\\Provider\\nl_BE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php', - 'Faker\\Provider\\nl_BE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php', - 'Faker\\Provider\\nl_NL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php', - 'Faker\\Provider\\nl_NL\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php', - 'Faker\\Provider\\nl_NL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php', - 'Faker\\Provider\\nl_NL\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php', - 'Faker\\Provider\\nl_NL\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php', - 'Faker\\Provider\\nl_NL\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php', - 'Faker\\Provider\\nl_NL\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php', - 'Faker\\Provider\\nl_NL\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php', - 'Faker\\Provider\\pl_PL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php', - 'Faker\\Provider\\pl_PL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php', - 'Faker\\Provider\\pl_PL\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php', - 'Faker\\Provider\\pl_PL\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php', - 'Faker\\Provider\\pl_PL\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php', - 'Faker\\Provider\\pl_PL\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php', - 'Faker\\Provider\\pl_PL\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php', - 'Faker\\Provider\\pt_BR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php', - 'Faker\\Provider\\pt_BR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php', - 'Faker\\Provider\\pt_BR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php', - 'Faker\\Provider\\pt_BR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php', - 'Faker\\Provider\\pt_BR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php', - 'Faker\\Provider\\pt_BR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php', - 'Faker\\Provider\\pt_PT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php', - 'Faker\\Provider\\pt_PT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php', - 'Faker\\Provider\\pt_PT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php', - 'Faker\\Provider\\pt_PT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php', - 'Faker\\Provider\\ro_MD\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php', - 'Faker\\Provider\\ro_MD\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php', - 'Faker\\Provider\\ro_MD\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php', - 'Faker\\Provider\\ro_MD\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php', - 'Faker\\Provider\\ro_MD\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php', - 'Faker\\Provider\\ro_RO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php', - 'Faker\\Provider\\ro_RO\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php', - 'Faker\\Provider\\ro_RO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php', - 'Faker\\Provider\\ro_RO\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php', - 'Faker\\Provider\\ro_RO\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php', - 'Faker\\Provider\\ru_RU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php', - 'Faker\\Provider\\ru_RU\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php', - 'Faker\\Provider\\ru_RU\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php', - 'Faker\\Provider\\ru_RU\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php', - 'Faker\\Provider\\ru_RU\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Payment.php', - 'Faker\\Provider\\ru_RU\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php', - 'Faker\\Provider\\ru_RU\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php', - 'Faker\\Provider\\ru_RU\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php', - 'Faker\\Provider\\sk_SK\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php', - 'Faker\\Provider\\sk_SK\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php', - 'Faker\\Provider\\sk_SK\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php', - 'Faker\\Provider\\sk_SK\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Payment.php', - 'Faker\\Provider\\sk_SK\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php', - 'Faker\\Provider\\sk_SK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php', - 'Faker\\Provider\\sl_SI\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php', - 'Faker\\Provider\\sl_SI\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php', - 'Faker\\Provider\\sl_SI\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php', - 'Faker\\Provider\\sl_SI\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php', - 'Faker\\Provider\\sl_SI\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/PhoneNumber.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php', - 'Faker\\Provider\\sr_Latn_RS\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Address.php', - 'Faker\\Provider\\sr_Latn_RS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Payment.php', - 'Faker\\Provider\\sr_Latn_RS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Person.php', - 'Faker\\Provider\\sr_RS\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Address.php', - 'Faker\\Provider\\sr_RS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Payment.php', - 'Faker\\Provider\\sr_RS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php', - 'Faker\\Provider\\sv_SE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php', - 'Faker\\Provider\\sv_SE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php', - 'Faker\\Provider\\sv_SE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php', - 'Faker\\Provider\\sv_SE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php', - 'Faker\\Provider\\sv_SE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php', - 'Faker\\Provider\\th_TH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php', - 'Faker\\Provider\\th_TH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php', - 'Faker\\Provider\\th_TH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php', - 'Faker\\Provider\\th_TH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php', - 'Faker\\Provider\\th_TH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php', - 'Faker\\Provider\\tr_TR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php', - 'Faker\\Provider\\tr_TR\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php', - 'Faker\\Provider\\tr_TR\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php', - 'Faker\\Provider\\tr_TR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php', - 'Faker\\Provider\\tr_TR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php', - 'Faker\\Provider\\tr_TR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Person.php', - 'Faker\\Provider\\tr_TR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php', - 'Faker\\Provider\\uk_UA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Address.php', - 'Faker\\Provider\\uk_UA\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php', - 'Faker\\Provider\\uk_UA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php', - 'Faker\\Provider\\uk_UA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php', - 'Faker\\Provider\\uk_UA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php', - 'Faker\\Provider\\uk_UA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php', - 'Faker\\Provider\\uk_UA\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php', - 'Faker\\Provider\\uk_Ua\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php', - 'Faker\\Provider\\vi_VN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php', - 'Faker\\Provider\\vi_VN\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php', - 'Faker\\Provider\\vi_VN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php', - 'Faker\\Provider\\vi_VN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php', - 'Faker\\Provider\\vi_VN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php', - 'Faker\\Provider\\zh_CN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php', - 'Faker\\Provider\\zh_CN\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php', - 'Faker\\Provider\\zh_CN\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php', - 'Faker\\Provider\\zh_CN\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php', - 'Faker\\Provider\\zh_CN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php', - 'Faker\\Provider\\zh_CN\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php', - 'Faker\\Provider\\zh_CN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php', - 'Faker\\Provider\\zh_CN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php', - 'Faker\\Provider\\zh_TW\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php', - 'Faker\\Provider\\zh_TW\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php', - 'Faker\\Provider\\zh_TW\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php', - 'Faker\\Provider\\zh_TW\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php', - 'Faker\\Provider\\zh_TW\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php', - 'Faker\\Provider\\zh_TW\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php', - 'Faker\\Provider\\zh_TW\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php', - 'Faker\\Provider\\zh_TW\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php', - 'Faker\\Provider\\zh_TW\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php', - 'Faker\\UniqueGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/UniqueGenerator.php', - 'Faker\\ValidGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ValidGenerator.php', - 'Fideloper\\Proxy\\TrustProxies' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustProxies.php', - 'Fideloper\\Proxy\\TrustedProxyServiceProvider' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustedProxyServiceProvider.php', - 'File_Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php', - 'File_Iterator_Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php', - 'File_Iterator_Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php', - 'GuzzleHttp\\Client' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Client.php', - 'GuzzleHttp\\ClientInterface' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/ClientInterface.php', - 'GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Cookie/CookieJar.php', - 'GuzzleHttp\\Cookie\\CookieJarInterface' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php', - 'GuzzleHttp\\Cookie\\FileCookieJar' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php', - 'GuzzleHttp\\Cookie\\SessionCookieJar' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php', - 'GuzzleHttp\\Cookie\\SetCookie' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Cookie/SetCookie.php', - 'GuzzleHttp\\Exception\\BadResponseException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/BadResponseException.php', - 'GuzzleHttp\\Exception\\ClientException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/ClientException.php', - 'GuzzleHttp\\Exception\\ConnectException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/ConnectException.php', - 'GuzzleHttp\\Exception\\GuzzleException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/GuzzleException.php', - 'GuzzleHttp\\Exception\\RequestException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/RequestException.php', - 'GuzzleHttp\\Exception\\SeekException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/SeekException.php', - 'GuzzleHttp\\Exception\\ServerException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/ServerException.php', - 'GuzzleHttp\\Exception\\TooManyRedirectsException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php', - 'GuzzleHttp\\Exception\\TransferException' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Exception/TransferException.php', - 'GuzzleHttp\\HandlerStack' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/HandlerStack.php', - 'GuzzleHttp\\Handler\\CurlFactory' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Handler/CurlFactory.php', - 'GuzzleHttp\\Handler\\CurlFactoryInterface' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php', - 'GuzzleHttp\\Handler\\CurlHandler' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Handler/CurlHandler.php', - 'GuzzleHttp\\Handler\\CurlMultiHandler' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php', - 'GuzzleHttp\\Handler\\EasyHandle' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Handler/EasyHandle.php', - 'GuzzleHttp\\Handler\\MockHandler' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Handler/MockHandler.php', - 'GuzzleHttp\\Handler\\Proxy' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Handler/Proxy.php', - 'GuzzleHttp\\Handler\\StreamHandler' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Handler/StreamHandler.php', - 'GuzzleHttp\\MessageFormatter' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/MessageFormatter.php', - 'GuzzleHttp\\Middleware' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Middleware.php', - 'GuzzleHttp\\Pool' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Pool.php', - 'GuzzleHttp\\PrepareBodyMiddleware' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php', - 'GuzzleHttp\\Promise\\AggregateException' => __DIR__ . '/..' . '/guzzlehttp/promises/src/AggregateException.php', - 'GuzzleHttp\\Promise\\CancellationException' => __DIR__ . '/..' . '/guzzlehttp/promises/src/CancellationException.php', - 'GuzzleHttp\\Promise\\Coroutine' => __DIR__ . '/..' . '/guzzlehttp/promises/src/Coroutine.php', - 'GuzzleHttp\\Promise\\EachPromise' => __DIR__ . '/..' . '/guzzlehttp/promises/src/EachPromise.php', - 'GuzzleHttp\\Promise\\FulfilledPromise' => __DIR__ . '/..' . '/guzzlehttp/promises/src/FulfilledPromise.php', - 'GuzzleHttp\\Promise\\Promise' => __DIR__ . '/..' . '/guzzlehttp/promises/src/Promise.php', - 'GuzzleHttp\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/guzzlehttp/promises/src/PromiseInterface.php', - 'GuzzleHttp\\Promise\\PromisorInterface' => __DIR__ . '/..' . '/guzzlehttp/promises/src/PromisorInterface.php', - 'GuzzleHttp\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/guzzlehttp/promises/src/RejectedPromise.php', - 'GuzzleHttp\\Promise\\RejectionException' => __DIR__ . '/..' . '/guzzlehttp/promises/src/RejectionException.php', - 'GuzzleHttp\\Promise\\TaskQueue' => __DIR__ . '/..' . '/guzzlehttp/promises/src/TaskQueue.php', - 'GuzzleHttp\\Promise\\TaskQueueInterface' => __DIR__ . '/..' . '/guzzlehttp/promises/src/TaskQueueInterface.php', - 'GuzzleHttp\\Psr7\\AppendStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/AppendStream.php', - 'GuzzleHttp\\Psr7\\BufferStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/BufferStream.php', - 'GuzzleHttp\\Psr7\\CachingStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/CachingStream.php', - 'GuzzleHttp\\Psr7\\DroppingStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/DroppingStream.php', - 'GuzzleHttp\\Psr7\\FnStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/FnStream.php', - 'GuzzleHttp\\Psr7\\InflateStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/InflateStream.php', - 'GuzzleHttp\\Psr7\\LazyOpenStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/LazyOpenStream.php', - 'GuzzleHttp\\Psr7\\LimitStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/LimitStream.php', - 'GuzzleHttp\\Psr7\\MessageTrait' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/MessageTrait.php', - 'GuzzleHttp\\Psr7\\MultipartStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/MultipartStream.php', - 'GuzzleHttp\\Psr7\\NoSeekStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/NoSeekStream.php', - 'GuzzleHttp\\Psr7\\PumpStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/PumpStream.php', - 'GuzzleHttp\\Psr7\\Request' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Request.php', - 'GuzzleHttp\\Psr7\\Response' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Response.php', - 'GuzzleHttp\\Psr7\\ServerRequest' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/ServerRequest.php', - 'GuzzleHttp\\Psr7\\Stream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Stream.php', - 'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php', - 'GuzzleHttp\\Psr7\\StreamWrapper' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/StreamWrapper.php', - 'GuzzleHttp\\Psr7\\UploadedFile' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UploadedFile.php', - 'GuzzleHttp\\Psr7\\Uri' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Uri.php', - 'GuzzleHttp\\Psr7\\UriNormalizer' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriNormalizer.php', - 'GuzzleHttp\\Psr7\\UriResolver' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriResolver.php', - 'GuzzleHttp\\RedirectMiddleware' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/RedirectMiddleware.php', - 'GuzzleHttp\\RequestOptions' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/RequestOptions.php', - 'GuzzleHttp\\RetryMiddleware' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/RetryMiddleware.php', - 'GuzzleHttp\\TransferStats' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/TransferStats.php', - 'GuzzleHttp\\UriTemplate' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/UriTemplate.php', - 'Hamcrest\\Arrays\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php', - 'Hamcrest\\Arrays\\IsArrayContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php', - 'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php', - 'Hamcrest\\Arrays\\IsArrayContainingInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php', - 'Hamcrest\\Arrays\\IsArrayContainingKey' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php', - 'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php', - 'Hamcrest\\Arrays\\IsArrayWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php', - 'Hamcrest\\Arrays\\MatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php', - 'Hamcrest\\Arrays\\SeriesMatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php', - 'Hamcrest\\AssertionError' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php', - 'Hamcrest\\BaseDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php', - 'Hamcrest\\BaseMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php', - 'Hamcrest\\Collection\\IsEmptyTraversable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php', - 'Hamcrest\\Collection\\IsTraversableWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php', - 'Hamcrest\\Core\\AllOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php', - 'Hamcrest\\Core\\AnyOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php', - 'Hamcrest\\Core\\CombinableMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php', - 'Hamcrest\\Core\\DescribedAs' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php', - 'Hamcrest\\Core\\Every' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php', - 'Hamcrest\\Core\\HasToString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php', - 'Hamcrest\\Core\\Is' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php', - 'Hamcrest\\Core\\IsAnything' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php', - 'Hamcrest\\Core\\IsCollectionContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php', - 'Hamcrest\\Core\\IsEqual' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php', - 'Hamcrest\\Core\\IsIdentical' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php', - 'Hamcrest\\Core\\IsInstanceOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php', - 'Hamcrest\\Core\\IsNot' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php', - 'Hamcrest\\Core\\IsNull' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php', - 'Hamcrest\\Core\\IsSame' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php', - 'Hamcrest\\Core\\IsTypeOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php', - 'Hamcrest\\Core\\Set' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php', - 'Hamcrest\\Core\\ShortcutCombination' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php', - 'Hamcrest\\Description' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php', - 'Hamcrest\\DiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php', - 'Hamcrest\\FeatureMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php', - 'Hamcrest\\Internal\\SelfDescribingValue' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php', - 'Hamcrest\\Matcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php', - 'Hamcrest\\MatcherAssert' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php', - 'Hamcrest\\Matchers' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php', - 'Hamcrest\\NullDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php', - 'Hamcrest\\Number\\IsCloseTo' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php', - 'Hamcrest\\Number\\OrderingComparison' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php', - 'Hamcrest\\SelfDescribing' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php', - 'Hamcrest\\StringDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php', - 'Hamcrest\\Text\\IsEmptyString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php', - 'Hamcrest\\Text\\IsEqualIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php', - 'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php', - 'Hamcrest\\Text\\MatchesPattern' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php', - 'Hamcrest\\Text\\StringContains' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php', - 'Hamcrest\\Text\\StringContainsIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php', - 'Hamcrest\\Text\\StringContainsInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php', - 'Hamcrest\\Text\\StringEndsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php', - 'Hamcrest\\Text\\StringStartsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php', - 'Hamcrest\\Text\\SubstringMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php', - 'Hamcrest\\TypeSafeDiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php', - 'Hamcrest\\TypeSafeMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php', - 'Hamcrest\\Type\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php', - 'Hamcrest\\Type\\IsBoolean' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php', - 'Hamcrest\\Type\\IsCallable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php', - 'Hamcrest\\Type\\IsDouble' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php', - 'Hamcrest\\Type\\IsInteger' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php', - 'Hamcrest\\Type\\IsNumeric' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php', - 'Hamcrest\\Type\\IsObject' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php', - 'Hamcrest\\Type\\IsResource' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php', - 'Hamcrest\\Type\\IsScalar' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php', - 'Hamcrest\\Type\\IsString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php', - 'Hamcrest\\Util' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php', - 'Hamcrest\\Xml\\HasXPath' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php', - 'Illuminate\\Auth\\Access\\AuthorizationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php', - 'Illuminate\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/Gate.php', - 'Illuminate\\Auth\\Access\\HandlesAuthorization' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php', - 'Illuminate\\Auth\\Access\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/Response.php', - 'Illuminate\\Auth\\AuthManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthManager.php', - 'Illuminate\\Auth\\AuthServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php', - 'Illuminate\\Auth\\Authenticatable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Authenticatable.php', - 'Illuminate\\Auth\\AuthenticationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthenticationException.php', - 'Illuminate\\Auth\\Console\\AuthMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php', - 'Illuminate\\Auth\\Console\\ClearResetsCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php', - 'Illuminate\\Auth\\CreatesUserProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php', - 'Illuminate\\Auth\\DatabaseUserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php', - 'Illuminate\\Auth\\EloquentUserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php', - 'Illuminate\\Auth\\Events\\Attempting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Attempting.php', - 'Illuminate\\Auth\\Events\\Authenticated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php', - 'Illuminate\\Auth\\Events\\Failed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Failed.php', - 'Illuminate\\Auth\\Events\\Lockout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Lockout.php', - 'Illuminate\\Auth\\Events\\Login' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Login.php', - 'Illuminate\\Auth\\Events\\Logout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Logout.php', - 'Illuminate\\Auth\\Events\\PasswordReset' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php', - 'Illuminate\\Auth\\Events\\Registered' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Registered.php', - 'Illuminate\\Auth\\GenericUser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/GenericUser.php', - 'Illuminate\\Auth\\GuardHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/GuardHelpers.php', - 'Illuminate\\Auth\\Middleware\\Authenticate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php', - 'Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php', - 'Illuminate\\Auth\\Middleware\\Authorize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php', - 'Illuminate\\Auth\\Notifications\\ResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php', - 'Illuminate\\Auth\\Passwords\\CanResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php', - 'Illuminate\\Auth\\Passwords\\DatabaseTokenRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php', - 'Illuminate\\Auth\\Passwords\\PasswordBroker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php', - 'Illuminate\\Auth\\Passwords\\PasswordBrokerManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php', - 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php', - 'Illuminate\\Auth\\Passwords\\TokenRepositoryInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php', - 'Illuminate\\Auth\\Recaller' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Recaller.php', - 'Illuminate\\Auth\\RequestGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/RequestGuard.php', - 'Illuminate\\Auth\\SessionGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/SessionGuard.php', - 'Illuminate\\Auth\\TokenGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/TokenGuard.php', - 'Illuminate\\Broadcasting\\BroadcastController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php', - 'Illuminate\\Broadcasting\\BroadcastEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php', - 'Illuminate\\Broadcasting\\BroadcastException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php', - 'Illuminate\\Broadcasting\\BroadcastManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php', - 'Illuminate\\Broadcasting\\BroadcastServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php', - 'Illuminate\\Broadcasting\\Broadcasters\\Broadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\LogBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\NullBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\RedisBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php', - 'Illuminate\\Broadcasting\\Channel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Channel.php', - 'Illuminate\\Broadcasting\\InteractsWithSockets' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php', - 'Illuminate\\Broadcasting\\PendingBroadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php', - 'Illuminate\\Broadcasting\\PresenceChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php', - 'Illuminate\\Broadcasting\\PrivateChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php', - 'Illuminate\\Bus\\BusServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php', - 'Illuminate\\Bus\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Dispatcher.php', - 'Illuminate\\Bus\\Queueable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Queueable.php', - 'Illuminate\\Cache\\ApcStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ApcStore.php', - 'Illuminate\\Cache\\ApcWrapper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ApcWrapper.php', - 'Illuminate\\Cache\\ArrayStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ArrayStore.php', - 'Illuminate\\Cache\\CacheManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/CacheManager.php', - 'Illuminate\\Cache\\CacheServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php', - 'Illuminate\\Cache\\Console\\CacheTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php', - 'Illuminate\\Cache\\Console\\ClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php', - 'Illuminate\\Cache\\Console\\ForgetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php', - 'Illuminate\\Cache\\DatabaseStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/DatabaseStore.php', - 'Illuminate\\Cache\\Events\\CacheEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php', - 'Illuminate\\Cache\\Events\\CacheHit' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php', - 'Illuminate\\Cache\\Events\\CacheMissed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php', - 'Illuminate\\Cache\\Events\\KeyForgotten' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php', - 'Illuminate\\Cache\\Events\\KeyWritten' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php', - 'Illuminate\\Cache\\FileStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/FileStore.php', - 'Illuminate\\Cache\\Lock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Lock.php', - 'Illuminate\\Cache\\MemcachedConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php', - 'Illuminate\\Cache\\MemcachedLock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedLock.php', - 'Illuminate\\Cache\\MemcachedStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedStore.php', - 'Illuminate\\Cache\\NullStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/NullStore.php', - 'Illuminate\\Cache\\RateLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RateLimiter.php', - 'Illuminate\\Cache\\RedisLock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisLock.php', - 'Illuminate\\Cache\\RedisStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisStore.php', - 'Illuminate\\Cache\\RedisTaggedCache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php', - 'Illuminate\\Cache\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Repository.php', - 'Illuminate\\Cache\\RetrievesMultipleKeys' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php', - 'Illuminate\\Cache\\TagSet' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TagSet.php', - 'Illuminate\\Cache\\TaggableStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TaggableStore.php', - 'Illuminate\\Cache\\TaggedCache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TaggedCache.php', - 'Illuminate\\Config\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Config/Repository.php', - 'Illuminate\\Console\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Application.php', - 'Illuminate\\Console\\Command' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Command.php', - 'Illuminate\\Console\\ConfirmableTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php', - 'Illuminate\\Console\\DetectsApplicationNamespace' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php', - 'Illuminate\\Console\\Events\\ArtisanStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php', - 'Illuminate\\Console\\Events\\CommandFinished' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php', - 'Illuminate\\Console\\Events\\CommandStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php', - 'Illuminate\\Console\\GeneratorCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/GeneratorCommand.php', - 'Illuminate\\Console\\OutputStyle' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/OutputStyle.php', - 'Illuminate\\Console\\Parser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Parser.php', - 'Illuminate\\Console\\Scheduling\\CacheMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheMutex.php', - 'Illuminate\\Console\\Scheduling\\CallbackEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php', - 'Illuminate\\Console\\Scheduling\\CommandBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php', - 'Illuminate\\Console\\Scheduling\\Event' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Event.php', - 'Illuminate\\Console\\Scheduling\\ManagesFrequencies' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php', - 'Illuminate\\Console\\Scheduling\\Mutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Mutex.php', - 'Illuminate\\Console\\Scheduling\\Schedule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php', - 'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php', - 'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php', - 'Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/BoundMethod.php', - 'Illuminate\\Container\\Container' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/Container.php', - 'Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php', - 'Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php', - 'Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php', - 'Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php', - 'Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php', - 'Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php', - 'Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php', - 'Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php', - 'Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php', - 'Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php', - 'Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php', - 'Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php', - 'Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php', - 'Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php', - 'Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php', - 'Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php', - 'Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php', - 'Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php', - 'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php', - 'Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php', - 'Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php', - 'Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php', - 'Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php', - 'Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php', - 'Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Store.php', - 'Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Config/Repository.php', - 'Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Console/Application.php', - 'Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php', - 'Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php', - 'Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/Container.php', - 'Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php', - 'Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php', - 'Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php', - 'Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php', - 'Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php', - 'Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php', - 'Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php', - 'Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php', - 'Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php', - 'Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php', - 'Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php', - 'Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php', - 'Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php', - 'Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php', - 'Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php', - 'Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php', - 'Illuminate\\Contracts\\Logging\\Log' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Logging/Log.php', - 'Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php', - 'Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php', - 'Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php', - 'Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php', - 'Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php', - 'Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php', - 'Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php', - 'Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php', - 'Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php', - 'Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php', - 'Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php', - 'Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php', - 'Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Job.php', - 'Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php', - 'Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php', - 'Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php', - 'Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php', - 'Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php', - 'Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php', - 'Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php', - 'Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php', - 'Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php', - 'Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php', - 'Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php', - 'Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php', - 'Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Session/Session.php', - 'Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php', - 'Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php', - 'Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php', - 'Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php', - 'Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php', - 'Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php', - 'Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php', - 'Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php', - 'Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php', - 'Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php', - 'Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php', - 'Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php', - 'Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php', - 'Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php', - 'Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/Engine.php', - 'Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/Factory.php', - 'Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/View.php', - 'Illuminate\\Cookie\\CookieJar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/CookieJar.php', - 'Illuminate\\Cookie\\CookieServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php', - 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php', - 'Illuminate\\Cookie\\Middleware\\EncryptCookies' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php', - 'Illuminate\\Database\\Capsule\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Capsule/Manager.php', - 'Illuminate\\Database\\Concerns\\BuildsQueries' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php', - 'Illuminate\\Database\\Concerns\\ManagesTransactions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php', - 'Illuminate\\Database\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connection.php', - 'Illuminate\\Database\\ConnectionInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionInterface.php', - 'Illuminate\\Database\\ConnectionResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionResolver.php', - 'Illuminate\\Database\\ConnectionResolverInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php', - 'Illuminate\\Database\\Connectors\\ConnectionFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php', - 'Illuminate\\Database\\Connectors\\Connector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/Connector.php', - 'Illuminate\\Database\\Connectors\\ConnectorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php', - 'Illuminate\\Database\\Connectors\\MySqlConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php', - 'Illuminate\\Database\\Connectors\\PostgresConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php', - 'Illuminate\\Database\\Connectors\\SQLiteConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php', - 'Illuminate\\Database\\Connectors\\SqlServerConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php', - 'Illuminate\\Database\\Console\\Factories\\FactoryMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\BaseCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\FreshCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\InstallCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\MigrateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\MigrateMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\RefreshCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php', - 'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php', - 'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php', - 'Illuminate\\Database\\DatabaseManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DatabaseManager.php', - 'Illuminate\\Database\\DatabaseServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php', - 'Illuminate\\Database\\DetectsDeadlocks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php', - 'Illuminate\\Database\\DetectsLostConnections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php', - 'Illuminate\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php', - 'Illuminate\\Database\\Eloquent\\Collection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\GuardsAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasGlobalScopes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasRelationships' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasTimestamps' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HidesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\QueriesRelationships' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php', - 'Illuminate\\Database\\Eloquent\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php', - 'Illuminate\\Database\\Eloquent\\FactoryBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php', - 'Illuminate\\Database\\Eloquent\\JsonEncodingException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php', - 'Illuminate\\Database\\Eloquent\\MassAssignmentException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php', - 'Illuminate\\Database\\Eloquent\\Model' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Model.php', - 'Illuminate\\Database\\Eloquent\\ModelNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php', - 'Illuminate\\Database\\Eloquent\\QueueEntityResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php', - 'Illuminate\\Database\\Eloquent\\RelationNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php', - 'Illuminate\\Database\\Eloquent\\Relations\\BelongsTo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php', - 'Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\InteractsWithPivotTable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasManyThrough' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasOne' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasOneOrMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphOne' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphOneOrMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphPivot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphTo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphToMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Pivot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Relation' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php', - 'Illuminate\\Database\\Eloquent\\Scope' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php', - 'Illuminate\\Database\\Eloquent\\SoftDeletes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php', - 'Illuminate\\Database\\Eloquent\\SoftDeletingScope' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php', - 'Illuminate\\Database\\Events\\ConnectionEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php', - 'Illuminate\\Database\\Events\\QueryExecuted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php', - 'Illuminate\\Database\\Events\\StatementPrepared' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php', - 'Illuminate\\Database\\Events\\TransactionBeginning' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php', - 'Illuminate\\Database\\Events\\TransactionCommitted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php', - 'Illuminate\\Database\\Events\\TransactionRolledBack' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php', - 'Illuminate\\Database\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Grammar.php', - 'Illuminate\\Database\\MigrationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php', - 'Illuminate\\Database\\Migrations\\DatabaseMigrationRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php', - 'Illuminate\\Database\\Migrations\\Migration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/Migration.php', - 'Illuminate\\Database\\Migrations\\MigrationCreator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php', - 'Illuminate\\Database\\Migrations\\MigrationRepositoryInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php', - 'Illuminate\\Database\\Migrations\\Migrator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php', - 'Illuminate\\Database\\MySqlConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/MySqlConnection.php', - 'Illuminate\\Database\\PostgresConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/PostgresConnection.php', - 'Illuminate\\Database\\QueryException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/QueryException.php', - 'Illuminate\\Database\\Query\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Builder.php', - 'Illuminate\\Database\\Query\\Expression' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Expression.php', - 'Illuminate\\Database\\Query\\Grammars\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php', - 'Illuminate\\Database\\Query\\Grammars\\MySqlGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\PostgresGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\SQLiteGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\SqlServerGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php', - 'Illuminate\\Database\\Query\\JoinClause' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/JoinClause.php', - 'Illuminate\\Database\\Query\\JsonExpression' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php', - 'Illuminate\\Database\\Query\\Processors\\MySqlProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\PostgresProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\Processor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php', - 'Illuminate\\Database\\Query\\Processors\\SQLiteProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\SqlServerProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php', - 'Illuminate\\Database\\SQLiteConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/SQLiteConnection.php', - 'Illuminate\\Database\\Schema\\Blueprint' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php', - 'Illuminate\\Database\\Schema\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Builder.php', - 'Illuminate\\Database\\Schema\\Grammars\\ChangeColumn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php', - 'Illuminate\\Database\\Schema\\Grammars\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\MySqlGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\PostgresGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\RenameColumn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php', - 'Illuminate\\Database\\Schema\\Grammars\\SQLiteGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\SqlServerGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php', - 'Illuminate\\Database\\Schema\\MySqlBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php', - 'Illuminate\\Database\\Schema\\PostgresBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php', - 'Illuminate\\Database\\Schema\\SQLiteBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php', - 'Illuminate\\Database\\Schema\\SqlServerBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php', - 'Illuminate\\Database\\Seeder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Seeder.php', - 'Illuminate\\Database\\SqlServerConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/SqlServerConnection.php', - 'Illuminate\\Encryption\\Encrypter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Encryption/Encrypter.php', - 'Illuminate\\Encryption\\EncryptionServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php', - 'Illuminate\\Events\\CallQueuedListener' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/CallQueuedListener.php', - 'Illuminate\\Events\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/Dispatcher.php', - 'Illuminate\\Events\\EventServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/EventServiceProvider.php', - 'Illuminate\\Filesystem\\Cache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/Cache.php', - 'Illuminate\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/Filesystem.php', - 'Illuminate\\Filesystem\\FilesystemAdapter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php', - 'Illuminate\\Filesystem\\FilesystemManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php', - 'Illuminate\\Filesystem\\FilesystemServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php', - 'Illuminate\\Foundation\\AliasLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/AliasLoader.php', - 'Illuminate\\Foundation\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Application.php', - 'Illuminate\\Foundation\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php', - 'Illuminate\\Foundation\\Auth\\Access\\AuthorizesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php', - 'Illuminate\\Foundation\\Auth\\AuthenticatesUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php', - 'Illuminate\\Foundation\\Auth\\RedirectsUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php', - 'Illuminate\\Foundation\\Auth\\RegistersUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php', - 'Illuminate\\Foundation\\Auth\\ResetsPasswords' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php', - 'Illuminate\\Foundation\\Auth\\SendsPasswordResetEmails' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php', - 'Illuminate\\Foundation\\Auth\\ThrottlesLogins' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php', - 'Illuminate\\Foundation\\Auth\\User' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/User.php', - 'Illuminate\\Foundation\\Bootstrap\\BootProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php', - 'Illuminate\\Foundation\\Bootstrap\\HandleExceptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php', - 'Illuminate\\Foundation\\Bootstrap\\LoadConfiguration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php', - 'Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php', - 'Illuminate\\Foundation\\Bootstrap\\RegisterFacades' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php', - 'Illuminate\\Foundation\\Bootstrap\\RegisterProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php', - 'Illuminate\\Foundation\\Bootstrap\\SetRequestForConsole' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php', - 'Illuminate\\Foundation\\Bus\\Dispatchable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php', - 'Illuminate\\Foundation\\Bus\\DispatchesJobs' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php', - 'Illuminate\\Foundation\\Bus\\PendingChain' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php', - 'Illuminate\\Foundation\\Bus\\PendingDispatch' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php', - 'Illuminate\\Foundation\\ComposerScripts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php', - 'Illuminate\\Foundation\\Console\\AppNameCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php', - 'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php', - 'Illuminate\\Foundation\\Console\\ClosureCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php', - 'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php', - 'Illuminate\\Foundation\\Console\\ConfigClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php', - 'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php', - 'Illuminate\\Foundation\\Console\\DownCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php', - 'Illuminate\\Foundation\\Console\\EnvironmentCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php', - 'Illuminate\\Foundation\\Console\\EventGenerateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php', - 'Illuminate\\Foundation\\Console\\EventMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ExceptionMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php', - 'Illuminate\\Foundation\\Console\\JobMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php', - 'Illuminate\\Foundation\\Console\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php', - 'Illuminate\\Foundation\\Console\\KeyGenerateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php', - 'Illuminate\\Foundation\\Console\\ListenerMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php', - 'Illuminate\\Foundation\\Console\\MailMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ModelMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php', - 'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php', - 'Illuminate\\Foundation\\Console\\OptimizeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php', - 'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php', - 'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php', - 'Illuminate\\Foundation\\Console\\PresetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php', - 'Illuminate\\Foundation\\Console\\Presets\\Bootstrap' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php', - 'Illuminate\\Foundation\\Console\\Presets\\None' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php', - 'Illuminate\\Foundation\\Console\\Presets\\Preset' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php', - 'Illuminate\\Foundation\\Console\\Presets\\React' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php', - 'Illuminate\\Foundation\\Console\\Presets\\Vue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php', - 'Illuminate\\Foundation\\Console\\ProviderMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php', - 'Illuminate\\Foundation\\Console\\QueuedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php', - 'Illuminate\\Foundation\\Console\\RequestMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ResourceMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php', - 'Illuminate\\Foundation\\Console\\RouteCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php', - 'Illuminate\\Foundation\\Console\\RouteClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php', - 'Illuminate\\Foundation\\Console\\RouteListCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php', - 'Illuminate\\Foundation\\Console\\RuleMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ServeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php', - 'Illuminate\\Foundation\\Console\\StorageLinkCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php', - 'Illuminate\\Foundation\\Console\\TestMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php', - 'Illuminate\\Foundation\\Console\\UpCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php', - 'Illuminate\\Foundation\\Console\\VendorPublishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php', - 'Illuminate\\Foundation\\Console\\ViewClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php', - 'Illuminate\\Foundation\\EnvironmentDetector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php', - 'Illuminate\\Foundation\\Events\\Dispatchable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php', - 'Illuminate\\Foundation\\Events\\LocaleUpdated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php', - 'Illuminate\\Foundation\\Exceptions\\Handler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php', - 'Illuminate\\Foundation\\Http\\Events\\RequestHandled' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php', - 'Illuminate\\Foundation\\Http\\Exceptions\\MaintenanceModeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php', - 'Illuminate\\Foundation\\Http\\FormRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php', - 'Illuminate\\Foundation\\Http\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php', - 'Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php', - 'Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php', - 'Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php', - 'Illuminate\\Foundation\\Http\\Middleware\\TrimStrings' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php', - 'Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php', - 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php', - 'Illuminate\\Foundation\\Inspiring' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Inspiring.php', - 'Illuminate\\Foundation\\PackageManifest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/PackageManifest.php', - 'Illuminate\\Foundation\\ProviderRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php', - 'Illuminate\\Foundation\\Providers\\ArtisanServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\ComposerServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\FormRequestServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithAuthentication' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithConsole' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithContainer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithExceptionHandling' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithRedis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\MakesHttpRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\MocksApplicationServices' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\HasInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\SoftDeletedInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php', - 'Illuminate\\Foundation\\Testing\\DatabaseMigrations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php', - 'Illuminate\\Foundation\\Testing\\DatabaseTransactions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php', - 'Illuminate\\Foundation\\Testing\\HttpException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php', - 'Illuminate\\Foundation\\Testing\\RefreshDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php', - 'Illuminate\\Foundation\\Testing\\RefreshDatabaseState' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php', - 'Illuminate\\Foundation\\Testing\\TestCase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php', - 'Illuminate\\Foundation\\Testing\\TestResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php', - 'Illuminate\\Foundation\\Testing\\WithFaker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php', - 'Illuminate\\Foundation\\Testing\\WithoutEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php', - 'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php', - 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', - 'Illuminate\\Hashing\\BcryptHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php', - 'Illuminate\\Hashing\\HashServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php', - 'Illuminate\\Http\\Concerns\\InteractsWithContentTypes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php', - 'Illuminate\\Http\\Concerns\\InteractsWithFlashData' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php', - 'Illuminate\\Http\\Concerns\\InteractsWithInput' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php', - 'Illuminate\\Http\\Exceptions\\HttpResponseException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php', - 'Illuminate\\Http\\Exceptions\\PostTooLargeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php', - 'Illuminate\\Http\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/File.php', - 'Illuminate\\Http\\FileHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/FileHelpers.php', - 'Illuminate\\Http\\JsonResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/JsonResponse.php', - 'Illuminate\\Http\\Middleware\\CheckResponseForModifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php', - 'Illuminate\\Http\\Middleware\\FrameGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php', - 'Illuminate\\Http\\RedirectResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php', - 'Illuminate\\Http\\Request' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Request.php', - 'Illuminate\\Http\\Resources\\CollectsResources' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php', - 'Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php', - 'Illuminate\\Http\\Resources\\DelegatesToResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php', - 'Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php', - 'Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php', - 'Illuminate\\Http\\Resources\\Json\\Resource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php', - 'Illuminate\\Http\\Resources\\Json\\ResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php', - 'Illuminate\\Http\\Resources\\Json\\ResourceResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php', - 'Illuminate\\Http\\Resources\\MergeValue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php', - 'Illuminate\\Http\\Resources\\MissingValue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php', - 'Illuminate\\Http\\Resources\\PotentiallyMissing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php', - 'Illuminate\\Http\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Response.php', - 'Illuminate\\Http\\ResponseTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/ResponseTrait.php', - 'Illuminate\\Http\\Testing\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/File.php', - 'Illuminate\\Http\\Testing\\FileFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php', - 'Illuminate\\Http\\Testing\\MimeType' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/MimeType.php', - 'Illuminate\\Http\\UploadedFile' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/UploadedFile.php', - 'Illuminate\\Log\\Events\\MessageLogged' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php', - 'Illuminate\\Log\\LogServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php', - 'Illuminate\\Log\\Writer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Writer.php', - 'Illuminate\\Mail\\Events\\MessageSending' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php', - 'Illuminate\\Mail\\Events\\MessageSent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php', - 'Illuminate\\Mail\\MailServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php', - 'Illuminate\\Mail\\Mailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Mailable.php', - 'Illuminate\\Mail\\Mailer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Mailer.php', - 'Illuminate\\Mail\\Markdown' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Markdown.php', - 'Illuminate\\Mail\\Message' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Message.php', - 'Illuminate\\Mail\\PendingMail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/PendingMail.php', - 'Illuminate\\Mail\\SendQueuedMailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php', - 'Illuminate\\Mail\\TransportManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/TransportManager.php', - 'Illuminate\\Mail\\Transport\\ArrayTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php', - 'Illuminate\\Mail\\Transport\\LogTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php', - 'Illuminate\\Mail\\Transport\\MailgunTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php', - 'Illuminate\\Mail\\Transport\\MandrillTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php', - 'Illuminate\\Mail\\Transport\\SesTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php', - 'Illuminate\\Mail\\Transport\\SparkPostTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php', - 'Illuminate\\Mail\\Transport\\Transport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/Transport.php', - 'Illuminate\\Notifications\\Action' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Action.php', - 'Illuminate\\Notifications\\AnonymousNotifiable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php', - 'Illuminate\\Notifications\\ChannelManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/ChannelManager.php', - 'Illuminate\\Notifications\\Channels\\BroadcastChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php', - 'Illuminate\\Notifications\\Channels\\DatabaseChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php', - 'Illuminate\\Notifications\\Channels\\MailChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php', - 'Illuminate\\Notifications\\Channels\\NexmoSmsChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php', - 'Illuminate\\Notifications\\Channels\\SlackWebhookChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php', - 'Illuminate\\Notifications\\Console\\NotificationTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php', - 'Illuminate\\Notifications\\DatabaseNotification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php', - 'Illuminate\\Notifications\\DatabaseNotificationCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php', - 'Illuminate\\Notifications\\Events\\BroadcastNotificationCreated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php', - 'Illuminate\\Notifications\\Events\\NotificationFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php', - 'Illuminate\\Notifications\\Events\\NotificationSending' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php', - 'Illuminate\\Notifications\\Events\\NotificationSent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php', - 'Illuminate\\Notifications\\HasDatabaseNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php', - 'Illuminate\\Notifications\\Messages\\BroadcastMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php', - 'Illuminate\\Notifications\\Messages\\DatabaseMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php', - 'Illuminate\\Notifications\\Messages\\MailMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php', - 'Illuminate\\Notifications\\Messages\\NexmoMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php', - 'Illuminate\\Notifications\\Messages\\SimpleMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php', - 'Illuminate\\Notifications\\Messages\\SlackAttachment' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php', - 'Illuminate\\Notifications\\Messages\\SlackAttachmentField' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php', - 'Illuminate\\Notifications\\Messages\\SlackMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php', - 'Illuminate\\Notifications\\Notifiable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php', - 'Illuminate\\Notifications\\Notification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notification.php', - 'Illuminate\\Notifications\\NotificationSender' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php', - 'Illuminate\\Notifications\\NotificationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php', - 'Illuminate\\Notifications\\RoutesNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php', - 'Illuminate\\Notifications\\SendQueuedNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php', - 'Illuminate\\Pagination\\AbstractPaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php', - 'Illuminate\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php', - 'Illuminate\\Pagination\\PaginationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php', - 'Illuminate\\Pagination\\Paginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/Paginator.php', - 'Illuminate\\Pagination\\UrlWindow' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/UrlWindow.php', - 'Illuminate\\Pipeline\\Hub' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/Hub.php', - 'Illuminate\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/Pipeline.php', - 'Illuminate\\Pipeline\\PipelineServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php', - 'Illuminate\\Queue\\BeanstalkdQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php', - 'Illuminate\\Queue\\CallQueuedHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php', - 'Illuminate\\Queue\\Capsule\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php', - 'Illuminate\\Queue\\Connectors\\BeanstalkdConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php', - 'Illuminate\\Queue\\Connectors\\ConnectorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php', - 'Illuminate\\Queue\\Connectors\\DatabaseConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php', - 'Illuminate\\Queue\\Connectors\\NullConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php', - 'Illuminate\\Queue\\Connectors\\RedisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php', - 'Illuminate\\Queue\\Connectors\\SqsConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php', - 'Illuminate\\Queue\\Connectors\\SyncConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php', - 'Illuminate\\Queue\\Console\\FailedTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php', - 'Illuminate\\Queue\\Console\\FlushFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php', - 'Illuminate\\Queue\\Console\\ForgetFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php', - 'Illuminate\\Queue\\Console\\ListFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php', - 'Illuminate\\Queue\\Console\\ListenCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php', - 'Illuminate\\Queue\\Console\\RestartCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php', - 'Illuminate\\Queue\\Console\\RetryCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php', - 'Illuminate\\Queue\\Console\\TableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php', - 'Illuminate\\Queue\\Console\\WorkCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php', - 'Illuminate\\Queue\\DatabaseQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php', - 'Illuminate\\Queue\\Events\\JobExceptionOccurred' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php', - 'Illuminate\\Queue\\Events\\JobFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php', - 'Illuminate\\Queue\\Events\\JobProcessed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php', - 'Illuminate\\Queue\\Events\\JobProcessing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php', - 'Illuminate\\Queue\\Events\\Looping' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/Looping.php', - 'Illuminate\\Queue\\Events\\WorkerStopping' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php', - 'Illuminate\\Queue\\Failed\\DatabaseFailedJobProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php', - 'Illuminate\\Queue\\Failed\\FailedJobProviderInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php', - 'Illuminate\\Queue\\Failed\\NullFailedJobProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php', - 'Illuminate\\Queue\\FailingJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/FailingJob.php', - 'Illuminate\\Queue\\InteractsWithQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php', - 'Illuminate\\Queue\\InvalidPayloadException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php', - 'Illuminate\\Queue\\Jobs\\BeanstalkdJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php', - 'Illuminate\\Queue\\Jobs\\DatabaseJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php', - 'Illuminate\\Queue\\Jobs\\DatabaseJobRecord' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php', - 'Illuminate\\Queue\\Jobs\\Job' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/Job.php', - 'Illuminate\\Queue\\Jobs\\JobName' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php', - 'Illuminate\\Queue\\Jobs\\RedisJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php', - 'Illuminate\\Queue\\Jobs\\SqsJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php', - 'Illuminate\\Queue\\Jobs\\SyncJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php', - 'Illuminate\\Queue\\Listener' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Listener.php', - 'Illuminate\\Queue\\ListenerOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/ListenerOptions.php', - 'Illuminate\\Queue\\LuaScripts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/LuaScripts.php', - 'Illuminate\\Queue\\ManuallyFailedException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php', - 'Illuminate\\Queue\\MaxAttemptsExceededException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php', - 'Illuminate\\Queue\\NullQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/NullQueue.php', - 'Illuminate\\Queue\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Queue.php', - 'Illuminate\\Queue\\QueueManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueManager.php', - 'Illuminate\\Queue\\QueueServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php', - 'Illuminate\\Queue\\RedisQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php', - 'Illuminate\\Queue\\SerializesAndRestoresModelIdentifiers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php', - 'Illuminate\\Queue\\SerializesModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesModels.php', - 'Illuminate\\Queue\\SqsQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SqsQueue.php', - 'Illuminate\\Queue\\SyncQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SyncQueue.php', - 'Illuminate\\Queue\\Worker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Worker.php', - 'Illuminate\\Queue\\WorkerOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/WorkerOptions.php', - 'Illuminate\\Redis\\Connections\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/Connection.php', - 'Illuminate\\Redis\\Connections\\PhpRedisClusterConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php', - 'Illuminate\\Redis\\Connections\\PhpRedisConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php', - 'Illuminate\\Redis\\Connections\\PredisClusterConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php', - 'Illuminate\\Redis\\Connections\\PredisConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php', - 'Illuminate\\Redis\\Connectors\\PhpRedisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php', - 'Illuminate\\Redis\\Connectors\\PredisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php', - 'Illuminate\\Redis\\Limiters\\ConcurrencyLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php', - 'Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php', - 'Illuminate\\Redis\\Limiters\\DurationLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php', - 'Illuminate\\Redis\\Limiters\\DurationLimiterBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php', - 'Illuminate\\Redis\\RedisManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/RedisManager.php', - 'Illuminate\\Redis\\RedisServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php', - 'Illuminate\\Routing\\Console\\ControllerMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php', - 'Illuminate\\Routing\\Console\\MiddlewareMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php', - 'Illuminate\\Routing\\Contracts\\ControllerDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php', - 'Illuminate\\Routing\\Controller' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Controller.php', - 'Illuminate\\Routing\\ControllerDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php', - 'Illuminate\\Routing\\ControllerMiddlewareOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php', - 'Illuminate\\Routing\\Events\\RouteMatched' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php', - 'Illuminate\\Routing\\Exceptions\\UrlGenerationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php', - 'Illuminate\\Routing\\ImplicitRouteBinding' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php', - 'Illuminate\\Routing\\Matching\\HostValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php', - 'Illuminate\\Routing\\Matching\\MethodValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php', - 'Illuminate\\Routing\\Matching\\SchemeValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php', - 'Illuminate\\Routing\\Matching\\UriValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php', - 'Illuminate\\Routing\\Matching\\ValidatorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php', - 'Illuminate\\Routing\\MiddlewareNameResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php', - 'Illuminate\\Routing\\Middleware\\SubstituteBindings' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php', - 'Illuminate\\Routing\\Middleware\\ThrottleRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php', - 'Illuminate\\Routing\\Middleware\\ThrottleRequestsWithRedis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php', - 'Illuminate\\Routing\\PendingResourceRegistration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php', - 'Illuminate\\Routing\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Pipeline.php', - 'Illuminate\\Routing\\RedirectController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RedirectController.php', - 'Illuminate\\Routing\\Redirector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Redirector.php', - 'Illuminate\\Routing\\ResourceRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php', - 'Illuminate\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ResponseFactory.php', - 'Illuminate\\Routing\\Route' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Route.php', - 'Illuminate\\Routing\\RouteAction' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteAction.php', - 'Illuminate\\Routing\\RouteBinding' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteBinding.php', - 'Illuminate\\Routing\\RouteCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteCollection.php', - 'Illuminate\\Routing\\RouteCompiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteCompiler.php', - 'Illuminate\\Routing\\RouteDependencyResolverTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php', - 'Illuminate\\Routing\\RouteGroup' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteGroup.php', - 'Illuminate\\Routing\\RouteParameterBinder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php', - 'Illuminate\\Routing\\RouteRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php', - 'Illuminate\\Routing\\RouteSignatureParameters' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php', - 'Illuminate\\Routing\\RouteUrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php', - 'Illuminate\\Routing\\Router' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Router.php', - 'Illuminate\\Routing\\RoutingServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php', - 'Illuminate\\Routing\\SortedMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php', - 'Illuminate\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/UrlGenerator.php', - 'Illuminate\\Routing\\ViewController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ViewController.php', - 'Illuminate\\Session\\CacheBasedSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php', - 'Illuminate\\Session\\Console\\SessionTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php', - 'Illuminate\\Session\\CookieSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php', - 'Illuminate\\Session\\DatabaseSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php', - 'Illuminate\\Session\\EncryptedStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/EncryptedStore.php', - 'Illuminate\\Session\\ExistenceAwareInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php', - 'Illuminate\\Session\\FileSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/FileSessionHandler.php', - 'Illuminate\\Session\\Middleware\\AuthenticateSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php', - 'Illuminate\\Session\\Middleware\\StartSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php', - 'Illuminate\\Session\\NullSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/NullSessionHandler.php', - 'Illuminate\\Session\\SessionManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/SessionManager.php', - 'Illuminate\\Session\\SessionServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php', - 'Illuminate\\Session\\Store' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Store.php', - 'Illuminate\\Session\\TokenMismatchException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/TokenMismatchException.php', - 'Illuminate\\Support\\AggregateServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php', - 'Illuminate\\Support\\Arr' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Arr.php', - 'Illuminate\\Support\\Carbon' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Carbon.php', - 'Illuminate\\Support\\Collection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Collection.php', - 'Illuminate\\Support\\Composer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Composer.php', - 'Illuminate\\Support\\Debug\\Dumper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Debug/Dumper.php', - 'Illuminate\\Support\\Debug\\HtmlDumper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php', - 'Illuminate\\Support\\Facades\\App' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/App.php', - 'Illuminate\\Support\\Facades\\Artisan' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Artisan.php', - 'Illuminate\\Support\\Facades\\Auth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Auth.php', - 'Illuminate\\Support\\Facades\\Blade' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Blade.php', - 'Illuminate\\Support\\Facades\\Broadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php', - 'Illuminate\\Support\\Facades\\Bus' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Bus.php', - 'Illuminate\\Support\\Facades\\Cache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Cache.php', - 'Illuminate\\Support\\Facades\\Config' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Config.php', - 'Illuminate\\Support\\Facades\\Cookie' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Cookie.php', - 'Illuminate\\Support\\Facades\\Crypt' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Crypt.php', - 'Illuminate\\Support\\Facades\\DB' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/DB.php', - 'Illuminate\\Support\\Facades\\Event' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Event.php', - 'Illuminate\\Support\\Facades\\Facade' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Facade.php', - 'Illuminate\\Support\\Facades\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/File.php', - 'Illuminate\\Support\\Facades\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Gate.php', - 'Illuminate\\Support\\Facades\\Hash' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Hash.php', - 'Illuminate\\Support\\Facades\\Input' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Input.php', - 'Illuminate\\Support\\Facades\\Lang' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Lang.php', - 'Illuminate\\Support\\Facades\\Log' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Log.php', - 'Illuminate\\Support\\Facades\\Mail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Mail.php', - 'Illuminate\\Support\\Facades\\Notification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Notification.php', - 'Illuminate\\Support\\Facades\\Password' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Password.php', - 'Illuminate\\Support\\Facades\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Queue.php', - 'Illuminate\\Support\\Facades\\Redirect' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Redirect.php', - 'Illuminate\\Support\\Facades\\Redis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Redis.php', - 'Illuminate\\Support\\Facades\\Request' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Request.php', - 'Illuminate\\Support\\Facades\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Response.php', - 'Illuminate\\Support\\Facades\\Route' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Route.php', - 'Illuminate\\Support\\Facades\\Schema' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Schema.php', - 'Illuminate\\Support\\Facades\\Session' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Session.php', - 'Illuminate\\Support\\Facades\\Storage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Storage.php', - 'Illuminate\\Support\\Facades\\URL' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/URL.php', - 'Illuminate\\Support\\Facades\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Validator.php', - 'Illuminate\\Support\\Facades\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/View.php', - 'Illuminate\\Support\\Fluent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Fluent.php', - 'Illuminate\\Support\\HigherOrderCollectionProxy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php', - 'Illuminate\\Support\\HigherOrderTapProxy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php', - 'Illuminate\\Support\\HtmlString' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HtmlString.php', - 'Illuminate\\Support\\InteractsWithTime' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/InteractsWithTime.php', - 'Illuminate\\Support\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Manager.php', - 'Illuminate\\Support\\MessageBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/MessageBag.php', - 'Illuminate\\Support\\NamespacedItemResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php', - 'Illuminate\\Support\\Optional' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Optional.php', - 'Illuminate\\Support\\Pluralizer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Pluralizer.php', - 'Illuminate\\Support\\ProcessUtils' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ProcessUtils.php', - 'Illuminate\\Support\\ServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ServiceProvider.php', - 'Illuminate\\Support\\Str' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Str.php', - 'Illuminate\\Support\\Testing\\Fakes\\BusFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\EventFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\MailFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\NotificationFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\PendingMailFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\QueueFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php', - 'Illuminate\\Support\\Traits\\CapsuleManagerTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php', - 'Illuminate\\Support\\Traits\\Macroable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Macroable.php', - 'Illuminate\\Support\\ViewErrorBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ViewErrorBag.php', - 'Illuminate\\Translation\\ArrayLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/ArrayLoader.php', - 'Illuminate\\Translation\\FileLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/FileLoader.php', - 'Illuminate\\Translation\\MessageSelector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/MessageSelector.php', - 'Illuminate\\Translation\\TranslationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php', - 'Illuminate\\Translation\\Translator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/Translator.php', - 'Illuminate\\Validation\\ClosureValidationRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php', - 'Illuminate\\Validation\\Concerns\\FormatsMessages' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php', - 'Illuminate\\Validation\\Concerns\\ReplacesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php', - 'Illuminate\\Validation\\Concerns\\ValidatesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php', - 'Illuminate\\Validation\\DatabasePresenceVerifier' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php', - 'Illuminate\\Validation\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Factory.php', - 'Illuminate\\Validation\\PresenceVerifierInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php', - 'Illuminate\\Validation\\Rule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rule.php', - 'Illuminate\\Validation\\Rules\\DatabaseRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php', - 'Illuminate\\Validation\\Rules\\Dimensions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php', - 'Illuminate\\Validation\\Rules\\Exists' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Exists.php', - 'Illuminate\\Validation\\Rules\\In' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/In.php', - 'Illuminate\\Validation\\Rules\\NotIn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php', - 'Illuminate\\Validation\\Rules\\Unique' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Unique.php', - 'Illuminate\\Validation\\UnauthorizedException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php', - 'Illuminate\\Validation\\ValidatesWhenResolvedTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php', - 'Illuminate\\Validation\\ValidationData' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationData.php', - 'Illuminate\\Validation\\ValidationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationException.php', - 'Illuminate\\Validation\\ValidationRuleParser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php', - 'Illuminate\\Validation\\ValidationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php', - 'Illuminate\\Validation\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Validator.php', - 'Illuminate\\View\\Compilers\\BladeCompiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php', - 'Illuminate\\View\\Compilers\\Compiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Compiler.php', - 'Illuminate\\View\\Compilers\\CompilerInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesAuthorizations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesComments' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesComponents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesConditionals' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesEchos' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesIncludes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesInjections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesJson' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesLayouts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesLoops' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesRawPhp' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesStacks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesTranslations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php', - 'Illuminate\\View\\Concerns\\ManagesComponents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php', - 'Illuminate\\View\\Concerns\\ManagesEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php', - 'Illuminate\\View\\Concerns\\ManagesLayouts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php', - 'Illuminate\\View\\Concerns\\ManagesLoops' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php', - 'Illuminate\\View\\Concerns\\ManagesStacks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php', - 'Illuminate\\View\\Concerns\\ManagesTranslations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php', - 'Illuminate\\View\\Engines\\CompilerEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php', - 'Illuminate\\View\\Engines\\Engine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/Engine.php', - 'Illuminate\\View\\Engines\\EngineResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php', - 'Illuminate\\View\\Engines\\FileEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/FileEngine.php', - 'Illuminate\\View\\Engines\\PhpEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php', - 'Illuminate\\View\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Factory.php', - 'Illuminate\\View\\FileViewFinder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/FileViewFinder.php', - 'Illuminate\\View\\Middleware\\ShareErrorsFromSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php', - 'Illuminate\\View\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/View.php', - 'Illuminate\\View\\ViewFinderInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewFinderInterface.php', - 'Illuminate\\View\\ViewName' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewName.php', - 'Illuminate\\View\\ViewServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewServiceProvider.php', - 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php', - 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php', - 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php', - 'Laravel\\Tinker\\ClassAliasAutoloader' => __DIR__ . '/..' . '/laravel/tinker/src/ClassAliasAutoloader.php', - 'Laravel\\Tinker\\Console\\TinkerCommand' => __DIR__ . '/..' . '/laravel/tinker/src/Console/TinkerCommand.php', - 'Laravel\\Tinker\\TinkerCaster' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerCaster.php', - 'Laravel\\Tinker\\TinkerServiceProvider' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerServiceProvider.php', - 'League\\Flysystem\\AdapterInterface' => __DIR__ . '/..' . '/league/flysystem/src/AdapterInterface.php', - 'League\\Flysystem\\Adapter\\AbstractAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractAdapter.php', - 'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php', - 'League\\Flysystem\\Adapter\\CanOverwriteFiles' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/CanOverwriteFiles.php', - 'League\\Flysystem\\Adapter\\Ftp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftp.php', - 'League\\Flysystem\\Adapter\\Ftpd' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftpd.php', - 'League\\Flysystem\\Adapter\\Local' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Local.php', - 'League\\Flysystem\\Adapter\\NullAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/NullAdapter.php', - 'League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedReadingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedWritingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php', - 'League\\Flysystem\\Adapter\\SynologyFtp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/SynologyFtp.php', - 'League\\Flysystem\\Config' => __DIR__ . '/..' . '/league/flysystem/src/Config.php', - 'League\\Flysystem\\ConfigAwareTrait' => __DIR__ . '/..' . '/league/flysystem/src/ConfigAwareTrait.php', - 'League\\Flysystem\\Directory' => __DIR__ . '/..' . '/league/flysystem/src/Directory.php', - 'League\\Flysystem\\Exception' => __DIR__ . '/..' . '/league/flysystem/src/Exception.php', - 'League\\Flysystem\\File' => __DIR__ . '/..' . '/league/flysystem/src/File.php', - 'League\\Flysystem\\FileExistsException' => __DIR__ . '/..' . '/league/flysystem/src/FileExistsException.php', - 'League\\Flysystem\\FileNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FileNotFoundException.php', - 'League\\Flysystem\\Filesystem' => __DIR__ . '/..' . '/league/flysystem/src/Filesystem.php', - 'League\\Flysystem\\FilesystemInterface' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemInterface.php', - 'League\\Flysystem\\FilesystemNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemNotFoundException.php', - 'League\\Flysystem\\Handler' => __DIR__ . '/..' . '/league/flysystem/src/Handler.php', - 'League\\Flysystem\\MountManager' => __DIR__ . '/..' . '/league/flysystem/src/MountManager.php', - 'League\\Flysystem\\NotSupportedException' => __DIR__ . '/..' . '/league/flysystem/src/NotSupportedException.php', - 'League\\Flysystem\\PluginInterface' => __DIR__ . '/..' . '/league/flysystem/src/PluginInterface.php', - 'League\\Flysystem\\Plugin\\AbstractPlugin' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/AbstractPlugin.php', - 'League\\Flysystem\\Plugin\\EmptyDir' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/EmptyDir.php', - 'League\\Flysystem\\Plugin\\ForcedCopy' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedCopy.php', - 'League\\Flysystem\\Plugin\\ForcedRename' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedRename.php', - 'League\\Flysystem\\Plugin\\GetWithMetadata' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/GetWithMetadata.php', - 'League\\Flysystem\\Plugin\\ListFiles' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListFiles.php', - 'League\\Flysystem\\Plugin\\ListPaths' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListPaths.php', - 'League\\Flysystem\\Plugin\\ListWith' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListWith.php', - 'League\\Flysystem\\Plugin\\PluggableTrait' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluggableTrait.php', - 'League\\Flysystem\\Plugin\\PluginNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluginNotFoundException.php', - 'League\\Flysystem\\ReadInterface' => __DIR__ . '/..' . '/league/flysystem/src/ReadInterface.php', - 'League\\Flysystem\\RootViolationException' => __DIR__ . '/..' . '/league/flysystem/src/RootViolationException.php', - 'League\\Flysystem\\SafeStorage' => __DIR__ . '/..' . '/league/flysystem/src/SafeStorage.php', - 'League\\Flysystem\\UnreadableFileException' => __DIR__ . '/..' . '/league/flysystem/src/UnreadableFileException.php', - 'League\\Flysystem\\Util' => __DIR__ . '/..' . '/league/flysystem/src/Util.php', - 'League\\Flysystem\\Util\\ContentListingFormatter' => __DIR__ . '/..' . '/league/flysystem/src/Util/ContentListingFormatter.php', - 'League\\Flysystem\\Util\\MimeType' => __DIR__ . '/..' . '/league/flysystem/src/Util/MimeType.php', - 'League\\Flysystem\\Util\\StreamHasher' => __DIR__ . '/..' . '/league/flysystem/src/Util/StreamHasher.php', - 'Mockery' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery.php', - 'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php', - 'Mockery\\Adapter\\Phpunit\\MockeryTestCase' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php', - 'Mockery\\Adapter\\Phpunit\\TestListener' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php', - 'Mockery\\CompositeExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CompositeExpectation.php', - 'Mockery\\Configuration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Configuration.php', - 'Mockery\\Container' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Container.php', - 'Mockery\\CountValidator\\AtLeast' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/AtLeast.php', - 'Mockery\\CountValidator\\AtMost' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/AtMost.php', - 'Mockery\\CountValidator\\CountValidatorAbstract' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php', - 'Mockery\\CountValidator\\Exact' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/Exact.php', - 'Mockery\\CountValidator\\Exception' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/Exception.php', - 'Mockery\\Exception' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception.php', - 'Mockery\\Exception\\BadMethodCallException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/BadMethodCallException.php', - 'Mockery\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php', - 'Mockery\\Exception\\InvalidCountException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidCountException.php', - 'Mockery\\Exception\\InvalidOrderException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php', - 'Mockery\\Exception\\NoMatchingExpectationException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php', - 'Mockery\\Exception\\RuntimeException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/RuntimeException.php', - 'Mockery\\Expectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Expectation.php', - 'Mockery\\ExpectationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ExpectationDirector.php', - 'Mockery\\ExpectationInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ExpectationInterface.php', - 'Mockery\\ExpectsHigherOrderMessage' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ExpectsHigherOrderMessage.php', - 'Mockery\\Generator\\CachingGenerator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/CachingGenerator.php', - 'Mockery\\Generator\\DefinedTargetClass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php', - 'Mockery\\Generator\\Generator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Generator.php', - 'Mockery\\Generator\\Method' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Method.php', - 'Mockery\\Generator\\MockConfiguration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockConfiguration.php', - 'Mockery\\Generator\\MockConfigurationBuilder' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php', - 'Mockery\\Generator\\MockDefinition' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockDefinition.php', - 'Mockery\\Generator\\Parameter' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Parameter.php', - 'Mockery\\Generator\\StringManipulationGenerator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\CallTypeHintPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\ClassNamePass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\ClassPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\InstanceMockPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\InterfacePass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\MagicMethodTypeHintsPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\MethodDefinitionPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\Pass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveBuiltinMethodsThatAreFinalPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveBuiltinMethodsThatAreFinalPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveDestructorPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveUnserializeForInternalSerializableClassesPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\TraitPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php', - 'Mockery\\Generator\\TargetClassInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php', - 'Mockery\\Generator\\UndefinedTargetClass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php', - 'Mockery\\HigherOrderMessage' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/HigherOrderMessage.php', - 'Mockery\\Instantiator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Instantiator.php', - 'Mockery\\Loader\\EvalLoader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/EvalLoader.php', - 'Mockery\\Loader\\Loader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/Loader.php', - 'Mockery\\Loader\\RequireLoader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/RequireLoader.php', - 'Mockery\\Matcher\\Any' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Any.php', - 'Mockery\\Matcher\\AnyArgs' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/AnyArgs.php', - 'Mockery\\Matcher\\AnyOf' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/AnyOf.php', - 'Mockery\\Matcher\\ArgumentListMatcher' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php', - 'Mockery\\Matcher\\Closure' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Closure.php', - 'Mockery\\Matcher\\Contains' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Contains.php', - 'Mockery\\Matcher\\Ducktype' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Ducktype.php', - 'Mockery\\Matcher\\HasKey' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/HasKey.php', - 'Mockery\\Matcher\\HasValue' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/HasValue.php', - 'Mockery\\Matcher\\MatcherAbstract' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php', - 'Mockery\\Matcher\\MultiArgumentClosure' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php', - 'Mockery\\Matcher\\MustBe' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MustBe.php', - 'Mockery\\Matcher\\NoArgs' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/NoArgs.php', - 'Mockery\\Matcher\\Not' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Not.php', - 'Mockery\\Matcher\\NotAnyOf' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php', - 'Mockery\\Matcher\\PHPUnitConstraint' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/PHPUnitConstraint.php', - 'Mockery\\Matcher\\Pattern' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Pattern.php', - 'Mockery\\Matcher\\Subset' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Subset.php', - 'Mockery\\Matcher\\Type' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Type.php', - 'Mockery\\MethodCall' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/MethodCall.php', - 'Mockery\\Mock' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Mock.php', - 'Mockery\\MockInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/MockInterface.php', - 'Mockery\\ReceivedMethodCalls' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ReceivedMethodCalls.php', - 'Mockery\\Undefined' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Undefined.php', - 'Mockery\\VerificationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationDirector.php', - 'Mockery\\VerificationExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationExpectation.php', - 'Monolog\\ErrorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/ErrorHandler.php', - 'Monolog\\Formatter\\ChromePHPFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php', - 'Monolog\\Formatter\\ElasticaFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php', - 'Monolog\\Formatter\\FlowdockFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php', - 'Monolog\\Formatter\\FluentdFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php', - 'Monolog\\Formatter\\FormatterInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php', - 'Monolog\\Formatter\\GelfMessageFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php', - 'Monolog\\Formatter\\HtmlFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php', - 'Monolog\\Formatter\\JsonFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php', - 'Monolog\\Formatter\\LineFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LineFormatter.php', - 'Monolog\\Formatter\\LogglyFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php', - 'Monolog\\Formatter\\LogstashFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php', - 'Monolog\\Formatter\\MongoDBFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php', - 'Monolog\\Formatter\\NormalizerFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php', - 'Monolog\\Formatter\\ScalarFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php', - 'Monolog\\Formatter\\WildfireFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php', - 'Monolog\\Handler\\AbstractHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractHandler.php', - 'Monolog\\Handler\\AbstractProcessingHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php', - 'Monolog\\Handler\\AbstractSyslogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php', - 'Monolog\\Handler\\AmqpHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AmqpHandler.php', - 'Monolog\\Handler\\BrowserConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php', - 'Monolog\\Handler\\BufferHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/BufferHandler.php', - 'Monolog\\Handler\\ChromePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php', - 'Monolog\\Handler\\CouchDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php', - 'Monolog\\Handler\\CubeHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/CubeHandler.php', - 'Monolog\\Handler\\Curl\\Util' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/Curl/Util.php', - 'Monolog\\Handler\\DeduplicationHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php', - 'Monolog\\Handler\\DoctrineCouchDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php', - 'Monolog\\Handler\\DynamoDbHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php', - 'Monolog\\Handler\\ElasticSearchHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php', - 'Monolog\\Handler\\ErrorLogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php', - 'Monolog\\Handler\\FilterHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FilterHandler.php', - 'Monolog\\Handler\\FingersCrossedHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php', - 'Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php', - 'Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php', - 'Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php', - 'Monolog\\Handler\\FirePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php', - 'Monolog\\Handler\\FleepHookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php', - 'Monolog\\Handler\\FlowdockHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php', - 'Monolog\\Handler\\GelfHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php', - 'Monolog\\Handler\\GroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php', - 'Monolog\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php', - 'Monolog\\Handler\\HandlerWrapper' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', - 'Monolog\\Handler\\HipChatHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php', - 'Monolog\\Handler\\IFTTTHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', - 'Monolog\\Handler\\LogEntriesHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', - 'Monolog\\Handler\\LogglyHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', - 'Monolog\\Handler\\MailHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MailHandler.php', - 'Monolog\\Handler\\MandrillHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MandrillHandler.php', - 'Monolog\\Handler\\MissingExtensionException' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php', - 'Monolog\\Handler\\MongoDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php', - 'Monolog\\Handler\\NativeMailerHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php', - 'Monolog\\Handler\\NewRelicHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php', - 'Monolog\\Handler\\NullHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NullHandler.php', - 'Monolog\\Handler\\PHPConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php', - 'Monolog\\Handler\\PsrHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php', - 'Monolog\\Handler\\PushoverHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php', - 'Monolog\\Handler\\RavenHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php', - 'Monolog\\Handler\\RedisHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RedisHandler.php', - 'Monolog\\Handler\\RollbarHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RollbarHandler.php', - 'Monolog\\Handler\\RotatingFileHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php', - 'Monolog\\Handler\\SamplingHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SamplingHandler.php', - 'Monolog\\Handler\\SlackHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackHandler.php', - 'Monolog\\Handler\\SlackWebhookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php', - 'Monolog\\Handler\\Slack\\SlackRecord' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php', - 'Monolog\\Handler\\SlackbotHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php', - 'Monolog\\Handler\\SocketHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SocketHandler.php', - 'Monolog\\Handler\\StreamHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/StreamHandler.php', - 'Monolog\\Handler\\SwiftMailerHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php', - 'Monolog\\Handler\\SyslogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogHandler.php', - 'Monolog\\Handler\\SyslogUdpHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php', - 'Monolog\\Handler\\SyslogUdp\\UdpSocket' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php', - 'Monolog\\Handler\\TestHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/TestHandler.php', - 'Monolog\\Handler\\WhatFailureGroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php', - 'Monolog\\Handler\\ZendMonitorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php', - 'Monolog\\Logger' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Logger.php', - 'Monolog\\Processor\\GitProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/GitProcessor.php', - 'Monolog\\Processor\\IntrospectionProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php', - 'Monolog\\Processor\\MemoryPeakUsageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php', - 'Monolog\\Processor\\MemoryProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php', - 'Monolog\\Processor\\MemoryUsageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', - 'Monolog\\Processor\\MercurialProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', - 'Monolog\\Processor\\ProcessIdProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', - 'Monolog\\Processor\\PsrLogMessageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', - 'Monolog\\Processor\\TagProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php', - 'Monolog\\Processor\\UidProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php', - 'Monolog\\Processor\\WebProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php', - 'Monolog\\Registry' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Registry.php', - 'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php', - 'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php', - 'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', - 'PHPUnit\\Framework\\BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/BaseTestListener.php', - 'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', - 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', - 'PHPUnit\\Framework\\Constraint\\ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', - 'PHPUnit\\Framework\\Constraint\\Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', - 'PHPUnit\\Framework\\Constraint\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', - 'PHPUnit\\Framework\\Constraint\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', - 'PHPUnit\\Framework\\Constraint\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php', - 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php', - 'PHPUnit\\Framework\\Constraint\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', - 'PHPUnit\\Framework\\Constraint\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', - 'PHPUnit\\Framework\\Constraint\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', - 'PHPUnit\\Framework\\Constraint\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', - 'PHPUnit\\Framework\\Constraint\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', - 'PHPUnit\\Framework\\Constraint\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', - 'PHPUnit\\Framework\\Constraint\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php', - 'PHPUnit\\Framework\\Constraint\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php', - 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', - 'PHPUnit\\Framework\\Constraint\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', - 'PHPUnit\\Framework\\Constraint\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php', - 'PHPUnit\\Framework\\Constraint\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', - 'PHPUnit\\Framework\\Constraint\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php', - 'PHPUnit\\Framework\\Constraint\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', - 'PHPUnit\\Framework\\Constraint\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', - 'PHPUnit\\Framework\\Constraint\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', - 'PHPUnit\\Framework\\Constraint\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', - 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php', - 'PHPUnit\\Framework\\Constraint\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php', - 'PHPUnit\\Framework\\Constraint\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php', - 'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php', - 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', - 'PHPUnit\\Framework\\Constraint\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', - 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', - 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php', - 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', - 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php', - 'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', - 'PHPUnit\\Framework\\Error\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', - 'PHPUnit\\Framework\\Error\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php', - 'PHPUnit\\Framework\\Error\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php', - 'PHPUnit\\Framework\\Error\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php', - 'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php', - 'PHPUnit\\Framework\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', - 'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', - 'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php', - 'PHPUnit\\Framework\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', - 'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', - 'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Match.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Generator.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invokable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invokable.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Verifiable.php', - 'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php', - 'PHPUnit\\Framework\\RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php', - 'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php', - 'PHPUnit\\Framework\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php', - 'PHPUnit\\Framework\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php', - 'PHPUnit\\Framework\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', - 'PHPUnit\\Framework\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php', - 'PHPUnit\\Framework\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', - 'PHPUnit\\Framework\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php', - 'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php', - 'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php', - 'PHPUnit\\Framework\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php', - 'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php', - 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', - 'PHPUnit\\Framework\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php', - 'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php', - 'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', - 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', - 'PHPUnit\\Framework\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php', - 'PHPUnit\\Framework\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php', - 'PHPUnit\\Runner\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', - 'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php', - 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php', - 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', - 'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php', - 'PHPUnit\\Runner\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php', - 'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php', - 'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', - 'PHPUnit\\TextUI\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php', - 'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php', - 'PHPUnit\\Util\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php', - 'PHPUnit\\Util\\ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php', - 'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php', - 'PHPUnit\\Util\\Fileloader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Fileloader.php', - 'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php', - 'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php', - 'PHPUnit\\Util\\Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php', - 'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php', - 'PHPUnit\\Util\\InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', - 'PHPUnit\\Util\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php', - 'PHPUnit\\Util\\Log\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php', - 'PHPUnit\\Util\\Log\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php', - 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', - 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', - 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', - 'PHPUnit\\Util\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php', - 'PHPUnit\\Util\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php', - 'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php', - 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', - 'PHPUnit\\Util\\TestDox\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', - 'PHPUnit\\Util\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', - 'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php', - 'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php', - 'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/MockObject.php', - 'PHP_Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php', - 'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ASYNC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AWAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMPILER_HALT_OFFSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENUM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EQUALS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_JOIN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LAMBDA_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LAMBDA_CP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LAMBDA_OP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ONUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SHAPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SUPER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php', - 'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', - 'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TYPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TYPELIST_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TYPELIST_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHERE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_ATTRIBUTE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_CATEGORY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_CATEGORY_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_CHILDREN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_REQUIRED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_TAG_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_TAG_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XHP_TEXT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'ParseError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ParseError.php', - 'Parsedown' => __DIR__ . '/..' . '/erusev/parsedown/Parsedown.php', - 'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php', - 'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php', - 'PharIo\\Manifest\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php', - 'PharIo\\Manifest\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php', - 'PharIo\\Manifest\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', - 'PharIo\\Manifest\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php', - 'PharIo\\Manifest\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php', - 'PharIo\\Manifest\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php', - 'PharIo\\Manifest\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php', - 'PharIo\\Manifest\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', - 'PharIo\\Manifest\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php', - 'PharIo\\Manifest\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php', - 'PharIo\\Manifest\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php', - 'PharIo\\Manifest\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php', - 'PharIo\\Manifest\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php', - 'PharIo\\Manifest\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php', - 'PharIo\\Manifest\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php', - 'PharIo\\Manifest\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php', - 'PharIo\\Manifest\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php', - 'PharIo\\Manifest\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php', - 'PharIo\\Manifest\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php', - 'PharIo\\Manifest\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php', - 'PharIo\\Manifest\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php', - 'PharIo\\Manifest\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', - 'PharIo\\Manifest\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', - 'PharIo\\Manifest\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', - 'PharIo\\Manifest\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php', - 'PharIo\\Manifest\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php', - 'PharIo\\Manifest\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php', - 'PharIo\\Manifest\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php', - 'PharIo\\Manifest\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php', - 'PharIo\\Manifest\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', - 'PharIo\\Manifest\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php', - 'PharIo\\Manifest\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php', - 'PharIo\\Manifest\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', - 'PharIo\\Manifest\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php', - 'PharIo\\Manifest\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php', - 'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php', - 'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', - 'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php', - 'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php', - 'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', - 'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php', - 'PharIo\\Manifest\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php', - 'PharIo\\Manifest\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php', - 'PharIo\\Manifest\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', - 'PharIo\\Manifest\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php', - 'PharIo\\Manifest\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php', - 'PharIo\\Manifest\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php', - 'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/AbstractVersionConstraint.php', - 'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/AndVersionConstraintGroup.php', - 'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/AnyVersionConstraint.php', - 'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/ExactVersionConstraint.php', - 'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/Exception.php', - 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php', - 'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/InvalidVersionException.php', - 'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/OrVersionConstraintGroup.php', - 'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php', - 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php', - 'PharIo\\Version\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/SpecificMajorVersionConstraint.php', - 'PharIo\\Version\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/UnsupportedVersionConstraintException.php', - 'PharIo\\Version\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php', - 'PharIo\\Version\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraint.php', - 'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php', - 'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php', - 'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php', - 'PhpParser\\Autoloader' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Autoloader.php', - 'PhpParser\\Builder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder.php', - 'PhpParser\\BuilderAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/BuilderAbstract.php', - 'PhpParser\\BuilderFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/BuilderFactory.php', - 'PhpParser\\Builder\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Class_.php', - 'PhpParser\\Builder\\Declaration' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Declaration.php', - 'PhpParser\\Builder\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php', - 'PhpParser\\Builder\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Function_.php', - 'PhpParser\\Builder\\Interface_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Interface_.php', - 'PhpParser\\Builder\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Method.php', - 'PhpParser\\Builder\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php', - 'PhpParser\\Builder\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Param.php', - 'PhpParser\\Builder\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Property.php', - 'PhpParser\\Builder\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php', - 'PhpParser\\Builder\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php', - 'PhpParser\\Comment' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment.php', - 'PhpParser\\Comment\\Doc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment/Doc.php', - 'PhpParser\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Error.php', - 'PhpParser\\ErrorHandler' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler.php', - 'PhpParser\\ErrorHandler\\Collecting' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php', - 'PhpParser\\ErrorHandler\\Throwing' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php', - 'PhpParser\\Lexer' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer.php', - 'PhpParser\\Lexer\\Emulative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php', - 'PhpParser\\Node' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node.php', - 'PhpParser\\NodeAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php', - 'PhpParser\\NodeDumper' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeDumper.php', - 'PhpParser\\NodeTraverser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeTraverser.php', - 'PhpParser\\NodeTraverserInterface' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php', - 'PhpParser\\NodeVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php', - 'PhpParser\\NodeVisitorAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php', - 'PhpParser\\NodeVisitor\\NameResolver' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php', - 'PhpParser\\Node\\Arg' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Arg.php', - 'PhpParser\\Node\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Const_.php', - 'PhpParser\\Node\\Expr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr.php', - 'PhpParser\\Node\\Expr\\ArrayDimFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php', - 'PhpParser\\Node\\Expr\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php', - 'PhpParser\\Node\\Expr\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php', - 'PhpParser\\Node\\Expr\\Assign' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php', - 'PhpParser\\Node\\Expr\\AssignOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Mod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Mul' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Plus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Pow' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php', - 'PhpParser\\Node\\Expr\\AssignOp\\ShiftLeft' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php', - 'PhpParser\\Node\\Expr\\AssignOp\\ShiftRight' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php', - 'PhpParser\\Node\\Expr\\AssignRef' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php', - 'PhpParser\\Node\\Expr\\BinaryOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BooleanOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Coalesce' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Equal' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Greater' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\GreaterOrEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Identical' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Mod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Mul' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\NotEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Plus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Pow' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\ShiftLeft' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\ShiftRight' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Smaller' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Spaceship' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php', - 'PhpParser\\Node\\Expr\\BitwiseNot' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php', - 'PhpParser\\Node\\Expr\\BooleanNot' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php', - 'PhpParser\\Node\\Expr\\Cast' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php', - 'PhpParser\\Node\\Expr\\Cast\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php', - 'PhpParser\\Node\\Expr\\Cast\\Bool_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php', - 'PhpParser\\Node\\Expr\\Cast\\Double' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php', - 'PhpParser\\Node\\Expr\\Cast\\Int_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php', - 'PhpParser\\Node\\Expr\\Cast\\Object_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php', - 'PhpParser\\Node\\Expr\\Cast\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php', - 'PhpParser\\Node\\Expr\\Cast\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php', - 'PhpParser\\Node\\Expr\\ClassConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php', - 'PhpParser\\Node\\Expr\\Clone_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php', - 'PhpParser\\Node\\Expr\\Closure' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php', - 'PhpParser\\Node\\Expr\\ClosureUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php', - 'PhpParser\\Node\\Expr\\ConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php', - 'PhpParser\\Node\\Expr\\Empty_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php', - 'PhpParser\\Node\\Expr\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php', - 'PhpParser\\Node\\Expr\\ErrorSuppress' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php', - 'PhpParser\\Node\\Expr\\Eval_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php', - 'PhpParser\\Node\\Expr\\Exit_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php', - 'PhpParser\\Node\\Expr\\FuncCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php', - 'PhpParser\\Node\\Expr\\Include_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php', - 'PhpParser\\Node\\Expr\\Instanceof_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php', - 'PhpParser\\Node\\Expr\\Isset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php', - 'PhpParser\\Node\\Expr\\List_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php', - 'PhpParser\\Node\\Expr\\MethodCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php', - 'PhpParser\\Node\\Expr\\New_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php', - 'PhpParser\\Node\\Expr\\PostDec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php', - 'PhpParser\\Node\\Expr\\PostInc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php', - 'PhpParser\\Node\\Expr\\PreDec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php', - 'PhpParser\\Node\\Expr\\PreInc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php', - 'PhpParser\\Node\\Expr\\Print_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php', - 'PhpParser\\Node\\Expr\\PropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php', - 'PhpParser\\Node\\Expr\\ShellExec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php', - 'PhpParser\\Node\\Expr\\StaticCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php', - 'PhpParser\\Node\\Expr\\StaticPropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php', - 'PhpParser\\Node\\Expr\\Ternary' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php', - 'PhpParser\\Node\\Expr\\UnaryMinus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php', - 'PhpParser\\Node\\Expr\\UnaryPlus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php', - 'PhpParser\\Node\\Expr\\Variable' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php', - 'PhpParser\\Node\\Expr\\YieldFrom' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php', - 'PhpParser\\Node\\Expr\\Yield_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php', - 'PhpParser\\Node\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php', - 'PhpParser\\Node\\Name' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name.php', - 'PhpParser\\Node\\Name\\FullyQualified' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php', - 'PhpParser\\Node\\Name\\Relative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php', - 'PhpParser\\Node\\NullableType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php', - 'PhpParser\\Node\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Param.php', - 'PhpParser\\Node\\Scalar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php', - 'PhpParser\\Node\\Scalar\\DNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php', - 'PhpParser\\Node\\Scalar\\Encapsed' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php', - 'PhpParser\\Node\\Scalar\\EncapsedStringPart' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php', - 'PhpParser\\Node\\Scalar\\LNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php', - 'PhpParser\\Node\\Scalar\\MagicConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Dir' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\File' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Line' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php', - 'PhpParser\\Node\\Scalar\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php', - 'PhpParser\\Node\\Stmt' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php', - 'PhpParser\\Node\\Stmt\\Break_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php', - 'PhpParser\\Node\\Stmt\\Case_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php', - 'PhpParser\\Node\\Stmt\\Catch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php', - 'PhpParser\\Node\\Stmt\\ClassConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php', - 'PhpParser\\Node\\Stmt\\ClassLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php', - 'PhpParser\\Node\\Stmt\\ClassMethod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php', - 'PhpParser\\Node\\Stmt\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php', - 'PhpParser\\Node\\Stmt\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php', - 'PhpParser\\Node\\Stmt\\Continue_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php', - 'PhpParser\\Node\\Stmt\\DeclareDeclare' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php', - 'PhpParser\\Node\\Stmt\\Declare_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php', - 'PhpParser\\Node\\Stmt\\Do_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php', - 'PhpParser\\Node\\Stmt\\Echo_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php', - 'PhpParser\\Node\\Stmt\\ElseIf_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php', - 'PhpParser\\Node\\Stmt\\Else_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php', - 'PhpParser\\Node\\Stmt\\Finally_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php', - 'PhpParser\\Node\\Stmt\\For_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php', - 'PhpParser\\Node\\Stmt\\Foreach_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php', - 'PhpParser\\Node\\Stmt\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php', - 'PhpParser\\Node\\Stmt\\Global_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php', - 'PhpParser\\Node\\Stmt\\Goto_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php', - 'PhpParser\\Node\\Stmt\\GroupUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php', - 'PhpParser\\Node\\Stmt\\HaltCompiler' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php', - 'PhpParser\\Node\\Stmt\\If_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php', - 'PhpParser\\Node\\Stmt\\InlineHTML' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php', - 'PhpParser\\Node\\Stmt\\Interface_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php', - 'PhpParser\\Node\\Stmt\\Label' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php', - 'PhpParser\\Node\\Stmt\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php', - 'PhpParser\\Node\\Stmt\\Nop' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php', - 'PhpParser\\Node\\Stmt\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php', - 'PhpParser\\Node\\Stmt\\PropertyProperty' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php', - 'PhpParser\\Node\\Stmt\\Return_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php', - 'PhpParser\\Node\\Stmt\\StaticVar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php', - 'PhpParser\\Node\\Stmt\\Static_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php', - 'PhpParser\\Node\\Stmt\\Switch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php', - 'PhpParser\\Node\\Stmt\\Throw_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php', - 'PhpParser\\Node\\Stmt\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Precedence' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php', - 'PhpParser\\Node\\Stmt\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php', - 'PhpParser\\Node\\Stmt\\TryCatch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php', - 'PhpParser\\Node\\Stmt\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php', - 'PhpParser\\Node\\Stmt\\UseUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php', - 'PhpParser\\Node\\Stmt\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php', - 'PhpParser\\Node\\Stmt\\While_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php', - 'PhpParser\\Parser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser.php', - 'PhpParser\\ParserAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php', - 'PhpParser\\ParserFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserFactory.php', - 'PhpParser\\Parser\\Multiple' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Multiple.php', - 'PhpParser\\Parser\\Php5' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php5.php', - 'PhpParser\\Parser\\Php7' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php', - 'PhpParser\\Parser\\Tokens' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php', - 'PhpParser\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', - 'PhpParser\\PrettyPrinter\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', - 'PhpParser\\Serializer' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Serializer.php', - 'PhpParser\\Serializer\\XML' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Serializer/XML.php', - 'PhpParser\\Unserializer' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Unserializer.php', - 'PhpParser\\Unserializer\\XML' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Unserializer/XML.php', - 'Prophecy\\Argument' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument.php', - 'Prophecy\\Argument\\ArgumentsWildcard' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php', - 'Prophecy\\Argument\\Token\\AnyValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php', - 'Prophecy\\Argument\\Token\\AnyValuesToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php', - 'Prophecy\\Argument\\Token\\ApproximateValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php', - 'Prophecy\\Argument\\Token\\ArrayCountToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php', - 'Prophecy\\Argument\\Token\\ArrayEntryToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php', - 'Prophecy\\Argument\\Token\\ArrayEveryEntryToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php', - 'Prophecy\\Argument\\Token\\CallbackToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php', - 'Prophecy\\Argument\\Token\\ExactValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php', - 'Prophecy\\Argument\\Token\\IdenticalValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php', - 'Prophecy\\Argument\\Token\\LogicalAndToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php', - 'Prophecy\\Argument\\Token\\LogicalNotToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php', - 'Prophecy\\Argument\\Token\\ObjectStateToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php', - 'Prophecy\\Argument\\Token\\StringContainsToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php', - 'Prophecy\\Argument\\Token\\TokenInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php', - 'Prophecy\\Argument\\Token\\TypeToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php', - 'Prophecy\\Call\\Call' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Call/Call.php', - 'Prophecy\\Call\\CallCenter' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Call/CallCenter.php', - 'Prophecy\\Comparator\\ClosureComparator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php', - 'Prophecy\\Comparator\\Factory' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/Factory.php', - 'Prophecy\\Comparator\\ProphecyComparator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php', - 'Prophecy\\Doubler\\CachedDoubler' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php', - 'Prophecy\\Doubler\\ClassPatch\\ClassPatchInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php', - 'Prophecy\\Doubler\\ClassPatch\\DisableConstructorPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\HhvmExceptionPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\KeywordPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\MagicCallPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\ProphecySubjectPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\ReflectionClassNewInstancePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php', - 'Prophecy\\Doubler\\ClassPatch\\SplFileInfoPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\TraversablePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php', - 'Prophecy\\Doubler\\DoubleInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php', - 'Prophecy\\Doubler\\Doubler' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php', - 'Prophecy\\Doubler\\Generator\\ClassCodeGenerator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php', - 'Prophecy\\Doubler\\Generator\\ClassCreator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php', - 'Prophecy\\Doubler\\Generator\\ClassMirror' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php', - 'Prophecy\\Doubler\\Generator\\Node\\ArgumentNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php', - 'Prophecy\\Doubler\\Generator\\Node\\ClassNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php', - 'Prophecy\\Doubler\\Generator\\Node\\MethodNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php', - 'Prophecy\\Doubler\\Generator\\ReflectionInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php', - 'Prophecy\\Doubler\\LazyDouble' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php', - 'Prophecy\\Doubler\\NameGenerator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php', - 'Prophecy\\Exception\\Call\\UnexpectedCallException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php', - 'Prophecy\\Exception\\Doubler\\ClassCreatorException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php', - 'Prophecy\\Exception\\Doubler\\ClassMirrorException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php', - 'Prophecy\\Exception\\Doubler\\ClassNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\DoubleException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php', - 'Prophecy\\Exception\\Doubler\\DoublerException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php', - 'Prophecy\\Exception\\Doubler\\InterfaceNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\MethodNotExtendableException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php', - 'Prophecy\\Exception\\Doubler\\MethodNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\ReturnByReferenceException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php', - 'Prophecy\\Exception\\Exception' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Exception.php', - 'Prophecy\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php', - 'Prophecy\\Exception\\Prediction\\AggregateException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php', - 'Prophecy\\Exception\\Prediction\\FailedPredictionException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php', - 'Prophecy\\Exception\\Prediction\\NoCallsException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php', - 'Prophecy\\Exception\\Prediction\\PredictionException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php', - 'Prophecy\\Exception\\Prediction\\UnexpectedCallsCountException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php', - 'Prophecy\\Exception\\Prediction\\UnexpectedCallsException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php', - 'Prophecy\\Exception\\Prophecy\\MethodProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php', - 'Prophecy\\Exception\\Prophecy\\ObjectProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php', - 'Prophecy\\Exception\\Prophecy\\ProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php', - 'Prophecy\\PhpDocumentor\\ClassAndInterfaceTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php', - 'Prophecy\\PhpDocumentor\\ClassTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php', - 'Prophecy\\PhpDocumentor\\LegacyClassTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php', - 'Prophecy\\PhpDocumentor\\MethodTagRetrieverInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php', - 'Prophecy\\Prediction\\CallPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php', - 'Prophecy\\Prediction\\CallTimesPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php', - 'Prophecy\\Prediction\\CallbackPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php', - 'Prophecy\\Prediction\\NoCallsPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php', - 'Prophecy\\Prediction\\PredictionInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php', - 'Prophecy\\Promise\\CallbackPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php', - 'Prophecy\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php', - 'Prophecy\\Promise\\ReturnArgumentPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php', - 'Prophecy\\Promise\\ReturnPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php', - 'Prophecy\\Promise\\ThrowPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php', - 'Prophecy\\Prophecy\\MethodProphecy' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php', - 'Prophecy\\Prophecy\\ObjectProphecy' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php', - 'Prophecy\\Prophecy\\ProphecyInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php', - 'Prophecy\\Prophecy\\ProphecySubjectInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php', - 'Prophecy\\Prophecy\\Revealer' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php', - 'Prophecy\\Prophecy\\RevealerInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php', - 'Prophecy\\Prophet' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophet.php', - 'Prophecy\\Util\\ExportUtil' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php', - 'Prophecy\\Util\\StringUtil' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Util/StringUtil.php', - 'Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', - 'Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', - 'Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', - 'Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/..' . '/psr/http-message/src/MessageInterface.php', - 'Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/..' . '/psr/http-message/src/RequestInterface.php', - 'Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/..' . '/psr/http-message/src/ResponseInterface.php', - 'Psr\\Http\\Message\\ServerRequestInterface' => __DIR__ . '/..' . '/psr/http-message/src/ServerRequestInterface.php', - 'Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/..' . '/psr/http-message/src/StreamInterface.php', - 'Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/..' . '/psr/http-message/src/UploadedFileInterface.php', - 'Psr\\Http\\Message\\UriInterface' => __DIR__ . '/..' . '/psr/http-message/src/UriInterface.php', - 'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php', - 'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php', - 'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php', - 'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php', - 'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php', - 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php', - 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php', - 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', - 'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', - 'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', - 'Psy\\Autoloader' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Autoloader.php', - 'Psy\\CodeCleaner' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner.php', - 'Psy\\CodeCleaner\\AbstractClassPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/AbstractClassPass.php', - 'Psy\\CodeCleaner\\AssignThisVariablePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/AssignThisVariablePass.php', - 'Psy\\CodeCleaner\\CallTimePassByReferencePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/CallTimePassByReferencePass.php', - 'Psy\\CodeCleaner\\CalledClassPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/CalledClassPass.php', - 'Psy\\CodeCleaner\\CodeCleanerPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/CodeCleanerPass.php', - 'Psy\\CodeCleaner\\ExitPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/ExitPass.php', - 'Psy\\CodeCleaner\\FinalClassPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/FinalClassPass.php', - 'Psy\\CodeCleaner\\FunctionContextPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/FunctionContextPass.php', - 'Psy\\CodeCleaner\\FunctionReturnInWriteContextPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/FunctionReturnInWriteContextPass.php', - 'Psy\\CodeCleaner\\ImplicitReturnPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/ImplicitReturnPass.php', - 'Psy\\CodeCleaner\\InstanceOfPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/InstanceOfPass.php', - 'Psy\\CodeCleaner\\LeavePsyshAlonePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/LeavePsyshAlonePass.php', - 'Psy\\CodeCleaner\\LegacyEmptyPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/LegacyEmptyPass.php', - 'Psy\\CodeCleaner\\LoopContextPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/LoopContextPass.php', - 'Psy\\CodeCleaner\\MagicConstantsPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/MagicConstantsPass.php', - 'Psy\\CodeCleaner\\NamespaceAwarePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/NamespaceAwarePass.php', - 'Psy\\CodeCleaner\\NamespacePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/NamespacePass.php', - 'Psy\\CodeCleaner\\NoReturnValue' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/NoReturnValue.php', - 'Psy\\CodeCleaner\\PassableByReferencePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/PassableByReferencePass.php', - 'Psy\\CodeCleaner\\RequirePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/RequirePass.php', - 'Psy\\CodeCleaner\\StaticConstructorPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/StaticConstructorPass.php', - 'Psy\\CodeCleaner\\StrictTypesPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/StrictTypesPass.php', - 'Psy\\CodeCleaner\\UseStatementPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/UseStatementPass.php', - 'Psy\\CodeCleaner\\ValidClassNamePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/ValidClassNamePass.php', - 'Psy\\CodeCleaner\\ValidConstantPass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/ValidConstantPass.php', - 'Psy\\CodeCleaner\\ValidFunctionNamePass' => __DIR__ . '/..' . '/psy/psysh/src/Psy/CodeCleaner/ValidFunctionNamePass.php', - 'Psy\\Command\\BufferCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/BufferCommand.php', - 'Psy\\Command\\ClearCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ClearCommand.php', - 'Psy\\Command\\Command' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/Command.php', - 'Psy\\Command\\DocCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/DocCommand.php', - 'Psy\\Command\\DumpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/DumpCommand.php', - 'Psy\\Command\\EditCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/EditCommand.php', - 'Psy\\Command\\ExitCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ExitCommand.php', - 'Psy\\Command\\HelpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/HelpCommand.php', - 'Psy\\Command\\HistoryCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/HistoryCommand.php', - 'Psy\\Command\\ListCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand.php', - 'Psy\\Command\\ListCommand\\ClassConstantEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/ClassConstantEnumerator.php', - 'Psy\\Command\\ListCommand\\ClassEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/ClassEnumerator.php', - 'Psy\\Command\\ListCommand\\ConstantEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/ConstantEnumerator.php', - 'Psy\\Command\\ListCommand\\Enumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/Enumerator.php', - 'Psy\\Command\\ListCommand\\FunctionEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/FunctionEnumerator.php', - 'Psy\\Command\\ListCommand\\GlobalVariableEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/GlobalVariableEnumerator.php', - 'Psy\\Command\\ListCommand\\InterfaceEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/InterfaceEnumerator.php', - 'Psy\\Command\\ListCommand\\MethodEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/MethodEnumerator.php', - 'Psy\\Command\\ListCommand\\PropertyEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/PropertyEnumerator.php', - 'Psy\\Command\\ListCommand\\TraitEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/TraitEnumerator.php', - 'Psy\\Command\\ListCommand\\VariableEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ListCommand/VariableEnumerator.php', - 'Psy\\Command\\ParseCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ParseCommand.php', - 'Psy\\Command\\PsyVersionCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/PsyVersionCommand.php', - 'Psy\\Command\\ReflectingCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ReflectingCommand.php', - 'Psy\\Command\\ShowCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ShowCommand.php', - 'Psy\\Command\\SudoCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/SudoCommand.php', - 'Psy\\Command\\ThrowUpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/ThrowUpCommand.php', - 'Psy\\Command\\TraceCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/TraceCommand.php', - 'Psy\\Command\\WhereamiCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/WhereamiCommand.php', - 'Psy\\Command\\WtfCommand' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Command/WtfCommand.php', - 'Psy\\Compiler' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Compiler.php', - 'Psy\\ConfigPaths' => __DIR__ . '/..' . '/psy/psysh/src/Psy/ConfigPaths.php', - 'Psy\\Configuration' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Configuration.php', - 'Psy\\ConsoleColorFactory' => __DIR__ . '/..' . '/psy/psysh/src/Psy/ConsoleColorFactory.php', - 'Psy\\Context' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Context.php', - 'Psy\\ContextAware' => __DIR__ . '/..' . '/psy/psysh/src/Psy/ContextAware.php', - 'Psy\\Exception\\BreakException' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/BreakException.php', - 'Psy\\Exception\\DeprecatedException' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/DeprecatedException.php', - 'Psy\\Exception\\ErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/ErrorException.php', - 'Psy\\Exception\\Exception' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/Exception.php', - 'Psy\\Exception\\FatalErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/FatalErrorException.php', - 'Psy\\Exception\\ParseErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/ParseErrorException.php', - 'Psy\\Exception\\RuntimeException' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/RuntimeException.php', - 'Psy\\Exception\\ThrowUpException' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/ThrowUpException.php', - 'Psy\\Exception\\TypeErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Exception/TypeErrorException.php', - 'Psy\\ExecutionLoop\\ForkingLoop' => __DIR__ . '/..' . '/psy/psysh/src/Psy/ExecutionLoop/ForkingLoop.php', - 'Psy\\ExecutionLoop\\Loop' => __DIR__ . '/..' . '/psy/psysh/src/Psy/ExecutionLoop/Loop.php', - 'Psy\\Formatter\\CodeFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Formatter/CodeFormatter.php', - 'Psy\\Formatter\\DocblockFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Formatter/DocblockFormatter.php', - 'Psy\\Formatter\\Formatter' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Formatter/Formatter.php', - 'Psy\\Formatter\\SignatureFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Formatter/SignatureFormatter.php', - 'Psy\\Input\\CodeArgument' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Input/CodeArgument.php', - 'Psy\\Input\\FilterOptions' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Input/FilterOptions.php', - 'Psy\\Input\\ShellInput' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Input/ShellInput.php', - 'Psy\\Input\\SilentInput' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Input/SilentInput.php', - 'Psy\\Output\\OutputPager' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Output/OutputPager.php', - 'Psy\\Output\\PassthruPager' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Output/PassthruPager.php', - 'Psy\\Output\\ProcOutputPager' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Output/ProcOutputPager.php', - 'Psy\\Output\\ShellOutput' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Output/ShellOutput.php', - 'Psy\\ParserFactory' => __DIR__ . '/..' . '/psy/psysh/src/Psy/ParserFactory.php', - 'Psy\\Readline\\GNUReadline' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Readline/GNUReadline.php', - 'Psy\\Readline\\HoaConsole' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Readline/HoaConsole.php', - 'Psy\\Readline\\Libedit' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Readline/Libedit.php', - 'Psy\\Readline\\Readline' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Readline/Readline.php', - 'Psy\\Readline\\Transient' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Readline/Transient.php', - 'Psy\\Reflection\\ReflectionConstant' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Reflection/ReflectionConstant.php', - 'Psy\\Reflection\\ReflectionLanguageConstruct' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Reflection/ReflectionLanguageConstruct.php', - 'Psy\\Reflection\\ReflectionLanguageConstructParameter' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Reflection/ReflectionLanguageConstructParameter.php', - 'Psy\\Shell' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Shell.php', - 'Psy\\Sudo' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Sudo.php', - 'Psy\\Sudo\\SudoVisitor' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Sudo/SudoVisitor.php', - 'Psy\\TabCompletion\\AutoCompleter' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/AutoCompleter.php', - 'Psy\\TabCompletion\\Matcher\\AbstractContextAwareMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractContextAwareMatcher.php', - 'Psy\\TabCompletion\\Matcher\\AbstractDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\AbstractMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/AbstractMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassAttributesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/ClassAttributesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassMethodDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassMethodsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/ClassMethodsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassNamesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/ClassNamesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\CommandsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/CommandsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ConstantsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/ConstantsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\FunctionDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\FunctionsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/FunctionsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\KeywordsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/KeywordsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\MongoClientMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/MongoClientMatcher.php', - 'Psy\\TabCompletion\\Matcher\\MongoDatabaseMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/MongoDatabaseMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectAttributesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectAttributesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectMethodDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectMethodsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/ObjectMethodsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\VariablesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/Psy/TabCompletion/Matcher/VariablesMatcher.php', - 'Psy\\Util\\Docblock' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Util/Docblock.php', - 'Psy\\Util\\Json' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Util/Json.php', - 'Psy\\Util\\Mirror' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Util/Mirror.php', - 'Psy\\Util\\Str' => __DIR__ . '/..' . '/psy/psysh/src/Psy/Util/Str.php', - 'Psy\\VarDumper\\Cloner' => __DIR__ . '/..' . '/psy/psysh/src/Psy/VarDumper/Cloner.php', - 'Psy\\VarDumper\\Dumper' => __DIR__ . '/..' . '/psy/psysh/src/Psy/VarDumper/Dumper.php', - 'Psy\\VarDumper\\Presenter' => __DIR__ . '/..' . '/psy/psysh/src/Psy/VarDumper/Presenter.php', - 'Psy\\VarDumper\\PresenterAware' => __DIR__ . '/..' . '/psy/psysh/src/Psy/VarDumper/PresenterAware.php', - 'Psy\\VersionUpdater\\Checker' => __DIR__ . '/..' . '/psy/psysh/src/Psy/VersionUpdater/Checker.php', - 'Psy\\VersionUpdater\\GitHubChecker' => __DIR__ . '/..' . '/psy/psysh/src/Psy/VersionUpdater/GitHubChecker.php', - 'Psy\\VersionUpdater\\IntervalChecker' => __DIR__ . '/..' . '/psy/psysh/src/Psy/VersionUpdater/IntervalChecker.php', - 'Psy\\VersionUpdater\\NoopChecker' => __DIR__ . '/..' . '/psy/psysh/src/Psy/VersionUpdater/NoopChecker.php', - 'Ramsey\\Uuid\\BinaryUtils' => __DIR__ . '/..' . '/ramsey/uuid/src/BinaryUtils.php', - 'Ramsey\\Uuid\\Builder\\DefaultUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php', - 'Ramsey\\Uuid\\Builder\\DegradedUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php', - 'Ramsey\\Uuid\\Builder\\UuidBuilderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/UuidBuilderInterface.php', - 'Ramsey\\Uuid\\Codec\\CodecInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/CodecInterface.php', - 'Ramsey\\Uuid\\Codec\\GuidStringCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/GuidStringCodec.php', - 'Ramsey\\Uuid\\Codec\\OrderedTimeCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/OrderedTimeCodec.php', - 'Ramsey\\Uuid\\Codec\\StringCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/StringCodec.php', - 'Ramsey\\Uuid\\Codec\\TimestampFirstCombCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php', - 'Ramsey\\Uuid\\Codec\\TimestampLastCombCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/TimestampLastCombCodec.php', - 'Ramsey\\Uuid\\Converter\\NumberConverterInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/NumberConverterInterface.php', - 'Ramsey\\Uuid\\Converter\\Number\\BigNumberConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Number/BigNumberConverter.php', - 'Ramsey\\Uuid\\Converter\\Number\\DegradedNumberConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php', - 'Ramsey\\Uuid\\Converter\\TimeConverterInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/TimeConverterInterface.php', - 'Ramsey\\Uuid\\Converter\\Time\\BigNumberTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php', - 'Ramsey\\Uuid\\Converter\\Time\\DegradedTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php', - 'Ramsey\\Uuid\\Converter\\Time\\PhpTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php', - 'Ramsey\\Uuid\\DegradedUuid' => __DIR__ . '/..' . '/ramsey/uuid/src/DegradedUuid.php', - 'Ramsey\\Uuid\\Exception\\InvalidUuidStringException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/InvalidUuidStringException.php', - 'Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php', - 'Ramsey\\Uuid\\Exception\\UnsupportedOperationException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/UnsupportedOperationException.php', - 'Ramsey\\Uuid\\FeatureSet' => __DIR__ . '/..' . '/ramsey/uuid/src/FeatureSet.php', - 'Ramsey\\Uuid\\Generator\\CombGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/CombGenerator.php', - 'Ramsey\\Uuid\\Generator\\DefaultTimeGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/DefaultTimeGenerator.php', - 'Ramsey\\Uuid\\Generator\\MtRandGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/MtRandGenerator.php', - 'Ramsey\\Uuid\\Generator\\OpenSslGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/OpenSslGenerator.php', - 'Ramsey\\Uuid\\Generator\\PeclUuidRandomGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php', - 'Ramsey\\Uuid\\Generator\\PeclUuidTimeGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php', - 'Ramsey\\Uuid\\Generator\\RandomBytesGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomBytesGenerator.php', - 'Ramsey\\Uuid\\Generator\\RandomGeneratorFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomGeneratorFactory.php', - 'Ramsey\\Uuid\\Generator\\RandomGeneratorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomGeneratorInterface.php', - 'Ramsey\\Uuid\\Generator\\RandomLibAdapter' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomLibAdapter.php', - 'Ramsey\\Uuid\\Generator\\SodiumRandomGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/SodiumRandomGenerator.php', - 'Ramsey\\Uuid\\Generator\\TimeGeneratorFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/TimeGeneratorFactory.php', - 'Ramsey\\Uuid\\Generator\\TimeGeneratorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/TimeGeneratorInterface.php', - 'Ramsey\\Uuid\\Provider\\NodeProviderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/NodeProviderInterface.php', - 'Ramsey\\Uuid\\Provider\\Node\\FallbackNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\Node\\RandomNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\Node\\SystemNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\TimeProviderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/TimeProviderInterface.php', - 'Ramsey\\Uuid\\Provider\\Time\\FixedTimeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php', - 'Ramsey\\Uuid\\Provider\\Time\\SystemTimeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php', - 'Ramsey\\Uuid\\Uuid' => __DIR__ . '/..' . '/ramsey/uuid/src/Uuid.php', - 'Ramsey\\Uuid\\UuidFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidFactory.php', - 'Ramsey\\Uuid\\UuidFactoryInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidFactoryInterface.php', - 'Ramsey\\Uuid\\UuidInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidInterface.php', - 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php', - 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\HHVM' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/HHVM.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php', - 'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php', - 'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php', - 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php', - 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', - 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', - 'SebastianBergmann\\CodeCoverage\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php', - 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', - 'SebastianBergmann\\CodeCoverage\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php', - 'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php', - 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php', - 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php', - 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php', - 'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php', - 'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php', - 'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php', - 'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php', - 'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php', - 'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php', - 'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php', - 'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php', - 'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php', - 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php', - 'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php', - 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', - 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', - 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', - 'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', - 'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', - 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', - 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php', - 'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php', - 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php', - 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php', - 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php', - 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php', - 'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php', - 'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php', - 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php', - 'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php', - 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php', - 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php', - 'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php', - 'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php', - 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php', - 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php', - 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php', - 'SessionUpdateTimestampHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php', - 'SettingsSeeder' => __DIR__ . '/../..' . '/database/seeds/SettingsSeeder.php', - 'Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', - 'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', - 'Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', - 'Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', - 'Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', - 'Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', - 'Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', - 'Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', - 'Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', - 'Symfony\\Component\\Console\\EventListener\\ErrorListener' => __DIR__ . '/..' . '/symfony/console/EventListener/ErrorListener.php', - 'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleCommandEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleErrorEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleExceptionEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleExceptionEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleTerminateEvent.php', - 'Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', - 'Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', - 'Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', - 'Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', - 'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', - 'Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', - 'Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', - 'Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', - 'Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', - 'Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', - 'Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', - 'Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', - 'Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', - 'Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', - 'Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', - 'Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', - 'Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', - 'Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', - 'Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', - 'Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', - 'Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', - 'Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', - 'Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', - 'Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', - 'Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', - 'Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', - 'Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', - 'Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', - 'Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', - 'Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', - 'Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', - 'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', - 'Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', - 'Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', - 'Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', - 'Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', - 'Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', - 'Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', - 'Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', - 'Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', - 'Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', - 'Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', - 'Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', - 'Symfony\\Component\\Console\\Tester\\ApplicationTester' => __DIR__ . '/..' . '/symfony/console/Tester/ApplicationTester.php', - 'Symfony\\Component\\Console\\Tester\\CommandTester' => __DIR__ . '/..' . '/symfony/console/Tester/CommandTester.php', - 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => __DIR__ . '/..' . '/symfony/css-selector/CssSelectorConverter.php', - 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExceptionInterface.php', - 'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExpressionErrorException.php', - 'Symfony\\Component\\CssSelector\\Exception\\InternalErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/InternalErrorException.php', - 'Symfony\\Component\\CssSelector\\Exception\\ParseException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ParseException.php', - 'Symfony\\Component\\CssSelector\\Exception\\SyntaxErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/SyntaxErrorException.php', - 'Symfony\\Component\\CssSelector\\Node\\AbstractNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/AbstractNode.php', - 'Symfony\\Component\\CssSelector\\Node\\AttributeNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/AttributeNode.php', - 'Symfony\\Component\\CssSelector\\Node\\ClassNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/ClassNode.php', - 'Symfony\\Component\\CssSelector\\Node\\CombinedSelectorNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/CombinedSelectorNode.php', - 'Symfony\\Component\\CssSelector\\Node\\ElementNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/ElementNode.php', - 'Symfony\\Component\\CssSelector\\Node\\FunctionNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/FunctionNode.php', - 'Symfony\\Component\\CssSelector\\Node\\HashNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/HashNode.php', - 'Symfony\\Component\\CssSelector\\Node\\NegationNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/NegationNode.php', - 'Symfony\\Component\\CssSelector\\Node\\NodeInterface' => __DIR__ . '/..' . '/symfony/css-selector/Node/NodeInterface.php', - 'Symfony\\Component\\CssSelector\\Node\\PseudoNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/PseudoNode.php', - 'Symfony\\Component\\CssSelector\\Node\\SelectorNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/SelectorNode.php', - 'Symfony\\Component\\CssSelector\\Node\\Specificity' => __DIR__ . '/..' . '/symfony/css-selector/Node/Specificity.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\CommentHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/CommentHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/HandlerInterface.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HashHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/HashHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\IdentifierHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/IdentifierHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\NumberHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/NumberHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\StringHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/StringHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\WhitespaceHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/WhitespaceHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Parser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Parser.php', - 'Symfony\\Component\\CssSelector\\Parser\\ParserInterface' => __DIR__ . '/..' . '/symfony/css-selector/Parser/ParserInterface.php', - 'Symfony\\Component\\CssSelector\\Parser\\Reader' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Reader.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ClassParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/ClassParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ElementParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/ElementParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\EmptyStringParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\HashParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/HashParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Token' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Token.php', - 'Symfony\\Component\\CssSelector\\Parser\\TokenStream' => __DIR__ . '/..' . '/symfony/css-selector/Parser/TokenStream.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/Tokenizer.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerEscaping' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerPatterns' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AbstractExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/AbstractExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AttributeMatchingExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\CombinationExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/CombinationExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\ExtensionInterface' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/ExtensionInterface.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\FunctionExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/FunctionExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\HtmlExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/HtmlExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\NodeExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/NodeExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\PseudoClassExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/PseudoClassExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Translator' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Translator.php', - 'Symfony\\Component\\CssSelector\\XPath\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/css-selector/XPath/TranslatorInterface.php', - 'Symfony\\Component\\CssSelector\\XPath\\XPathExpr' => __DIR__ . '/..' . '/symfony/css-selector/XPath/XPathExpr.php', - 'Symfony\\Component\\Debug\\BufferingLogger' => __DIR__ . '/..' . '/symfony/debug/BufferingLogger.php', - 'Symfony\\Component\\Debug\\Debug' => __DIR__ . '/..' . '/symfony/debug/Debug.php', - 'Symfony\\Component\\Debug\\DebugClassLoader' => __DIR__ . '/..' . '/symfony/debug/DebugClassLoader.php', - 'Symfony\\Component\\Debug\\ErrorHandler' => __DIR__ . '/..' . '/symfony/debug/ErrorHandler.php', - 'Symfony\\Component\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/symfony/debug/ExceptionHandler.php', - 'Symfony\\Component\\Debug\\Exception\\ClassNotFoundException' => __DIR__ . '/..' . '/symfony/debug/Exception/ClassNotFoundException.php', - 'Symfony\\Component\\Debug\\Exception\\ContextErrorException' => __DIR__ . '/..' . '/symfony/debug/Exception/ContextErrorException.php', - 'Symfony\\Component\\Debug\\Exception\\FatalErrorException' => __DIR__ . '/..' . '/symfony/debug/Exception/FatalErrorException.php', - 'Symfony\\Component\\Debug\\Exception\\FatalThrowableError' => __DIR__ . '/..' . '/symfony/debug/Exception/FatalThrowableError.php', - 'Symfony\\Component\\Debug\\Exception\\FlattenException' => __DIR__ . '/..' . '/symfony/debug/Exception/FlattenException.php', - 'Symfony\\Component\\Debug\\Exception\\OutOfMemoryException' => __DIR__ . '/..' . '/symfony/debug/Exception/OutOfMemoryException.php', - 'Symfony\\Component\\Debug\\Exception\\SilencedErrorContext' => __DIR__ . '/..' . '/symfony/debug/Exception/SilencedErrorContext.php', - 'Symfony\\Component\\Debug\\Exception\\UndefinedFunctionException' => __DIR__ . '/..' . '/symfony/debug/Exception/UndefinedFunctionException.php', - 'Symfony\\Component\\Debug\\Exception\\UndefinedMethodException' => __DIR__ . '/..' . '/symfony/debug/Exception/UndefinedMethodException.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\ClassNotFoundFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\FatalErrorHandlerInterface' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\UndefinedFunctionFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\UndefinedMethodFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php', - 'Symfony\\Component\\EventDispatcher\\ContainerAwareEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/ContainerAwareEventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcherInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\WrappedListener' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/WrappedListener.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\ExtractingEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\RegisterListenersPass' => __DIR__ . '/..' . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\\Component\\EventDispatcher\\Event' => __DIR__ . '/..' . '/symfony/event-dispatcher/Event.php', - 'Symfony\\Component\\EventDispatcher\\EventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\EventDispatcherInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventDispatcherInterface.php', - 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventSubscriberInterface.php', - 'Symfony\\Component\\EventDispatcher\\GenericEvent' => __DIR__ . '/..' . '/symfony/event-dispatcher/GenericEvent.php', - 'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/ImmutableEventDispatcher.php', - 'Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', - 'Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', - 'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', - 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', - 'Symfony\\Component\\Finder\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/finder/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', - 'Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', - 'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', - 'Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', - 'Symfony\\Component\\HttpFoundation\\AcceptHeader' => __DIR__ . '/..' . '/symfony/http-foundation/AcceptHeader.php', - 'Symfony\\Component\\HttpFoundation\\AcceptHeaderItem' => __DIR__ . '/..' . '/symfony/http-foundation/AcceptHeaderItem.php', - 'Symfony\\Component\\HttpFoundation\\ApacheRequest' => __DIR__ . '/..' . '/symfony/http-foundation/ApacheRequest.php', - 'Symfony\\Component\\HttpFoundation\\BinaryFileResponse' => __DIR__ . '/..' . '/symfony/http-foundation/BinaryFileResponse.php', - 'Symfony\\Component\\HttpFoundation\\Cookie' => __DIR__ . '/..' . '/symfony/http-foundation/Cookie.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\ConflictingHeadersException' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/ConflictingHeadersException.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\RequestExceptionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/RequestExceptionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\SuspiciousOperationException' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/SuspiciousOperationException.php', - 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/ExpressionRequestMatcher.php', - 'Symfony\\Component\\HttpFoundation\\FileBag' => __DIR__ . '/..' . '/symfony/http-foundation/FileBag.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/AccessDeniedException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileNotFoundException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UploadException.php', - 'Symfony\\Component\\HttpFoundation\\File\\File' => __DIR__ . '/..' . '/symfony/http-foundation/File/File.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\ExtensionGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/ExtensionGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\ExtensionGuesserInterface' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\FileBinaryMimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\FileinfoMimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeExtensionGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesserInterface' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php', - 'Symfony\\Component\\HttpFoundation\\File\\Stream' => __DIR__ . '/..' . '/symfony/http-foundation/File/Stream.php', - 'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => __DIR__ . '/..' . '/symfony/http-foundation/File/UploadedFile.php', - 'Symfony\\Component\\HttpFoundation\\HeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\IpUtils' => __DIR__ . '/..' . '/symfony/http-foundation/IpUtils.php', - 'Symfony\\Component\\HttpFoundation\\JsonResponse' => __DIR__ . '/..' . '/symfony/http-foundation/JsonResponse.php', - 'Symfony\\Component\\HttpFoundation\\ParameterBag' => __DIR__ . '/..' . '/symfony/http-foundation/ParameterBag.php', - 'Symfony\\Component\\HttpFoundation\\RedirectResponse' => __DIR__ . '/..' . '/symfony/http-foundation/RedirectResponse.php', - 'Symfony\\Component\\HttpFoundation\\Request' => __DIR__ . '/..' . '/symfony/http-foundation/Request.php', - 'Symfony\\Component\\HttpFoundation\\RequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/RequestMatcher.php', - 'Symfony\\Component\\HttpFoundation\\RequestMatcherInterface' => __DIR__ . '/..' . '/symfony/http-foundation/RequestMatcherInterface.php', - 'Symfony\\Component\\HttpFoundation\\RequestStack' => __DIR__ . '/..' . '/symfony/http-foundation/RequestStack.php', - 'Symfony\\Component\\HttpFoundation\\Response' => __DIR__ . '/..' . '/symfony/http-foundation/Response.php', - 'Symfony\\Component\\HttpFoundation\\ResponseHeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/ResponseHeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\ServerBag' => __DIR__ . '/..' . '/symfony/http-foundation/ServerBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\AttributeBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/AttributeBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\AttributeBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\NamespacedAttributeBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\AutoExpireFlashBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/FlashBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/FlashBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Session' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Session.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcacheSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\WriteCheckSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MetadataBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockArraySessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockFileSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/NativeSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\PhpBridgeSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\AbstractProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\NativeProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/NativeProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\SessionStorageInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php', - 'Symfony\\Component\\HttpFoundation\\StreamedResponse' => __DIR__ . '/..' . '/symfony/http-foundation/StreamedResponse.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\Bundle' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/Bundle.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/BundleInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\CacheClearerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\ChainCacheClearer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/ChainCacheClearer.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\Psr6CacheClearer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmer.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerAggregate' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\WarmableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/WarmableInterface.php', - 'Symfony\\Component\\HttpKernel\\Client' => __DIR__ . '/..' . '/symfony/http-kernel/Client.php', - 'Symfony\\Component\\HttpKernel\\Config\\EnvParametersResource' => __DIR__ . '/..' . '/symfony/http-kernel/Config/EnvParametersResource.php', - 'Symfony\\Component\\HttpKernel\\Config\\FileLocator' => __DIR__ . '/..' . '/symfony/http-kernel/Config/FileLocator.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadata' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactory' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactoryInterface' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ContainerControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerReference' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerReference.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\TraceableArgumentResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/TraceableArgumentResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\TraceableControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/TraceableControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\AjaxDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/AjaxDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\ConfigDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/ConfigDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DataCollectorInterface' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DataCollectorInterface.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DumpDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DumpDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\EventDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/EventDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\ExceptionDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/ExceptionDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\LateDataCollectorInterface' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\LoggerDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/LoggerDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\MemoryDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/MemoryDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/RequestDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\RouterDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/RouterDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\TimeDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/TimeDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\Util\\ValueExporter' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/Util/ValueExporter.php', - 'Symfony\\Component\\HttpKernel\\Debug\\FileLinkFormatter' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/FileLinkFormatter.php', - 'Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddAnnotatedClassesToCachePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddClassesToCachePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/AddClassesToCachePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ConfigurableExtension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerArgumentValueResolverPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\Extension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/Extension.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\FragmentRendererPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LazyLoadingFragmentHandler' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LoggerPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/LoggerPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\MergeExtensionConfigurationPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RegisterControllerArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RemoveEmptyControllerArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ResettableServicePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ResettableServicePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ServicesResetter' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ServicesResetter.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AbstractSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractTestSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AbstractTestSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AddRequestFormatsListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DebugHandlersListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DumpListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DumpListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ExceptionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ExceptionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/FragmentListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/LocaleListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ProfilerListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ResponseListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/RouterListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SaveSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SaveSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\StreamedResponseListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/StreamedResponseListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SurrogateListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SurrogateListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\TestSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/TestSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\TranslatorListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/TranslatorListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ValidateRequestListener.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerArgumentsEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterControllerEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FinishRequestEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FinishRequestEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForControllerResultEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseForExceptionEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/KernelEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\PostResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/PostResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/BadRequestHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ConflictHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/GoneHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpExceptionInterface.php', - 'Symfony\\Component\\HttpKernel\\Exception\\LengthRequiredHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/LengthRequiredHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\NotAcceptableHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/NotAcceptableHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/NotFoundHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\PreconditionFailedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/PreconditionFailedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\PreconditionRequiredHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ServiceUnavailableHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\TooManyRequestsHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/TooManyRequestsHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnauthorizedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnprocessableEntityHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnsupportedMediaTypeHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\AbstractSurrogateFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\EsiFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/EsiFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentHandler' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/FragmentHandler.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentRendererInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/FragmentRendererInterface.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\HIncludeFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\InlineFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/InlineFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\RoutableFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\SsiFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/SsiFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\AbstractSurrogate' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/AbstractSurrogate.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Esi' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Esi.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\HttpCache' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/HttpCache.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\ResponseCacheStrategy' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\ResponseCacheStrategyInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Ssi' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Ssi.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Store' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Store.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/StoreInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\SurrogateInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/SurrogateInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpKernel' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernel.php', - 'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernelInterface.php', - 'Symfony\\Component\\HttpKernel\\Kernel' => __DIR__ . '/..' . '/symfony/http-kernel/Kernel.php', - 'Symfony\\Component\\HttpKernel\\KernelEvents' => __DIR__ . '/..' . '/symfony/http-kernel/KernelEvents.php', - 'Symfony\\Component\\HttpKernel\\KernelInterface' => __DIR__ . '/..' . '/symfony/http-kernel/KernelInterface.php', - 'Symfony\\Component\\HttpKernel\\Log\\DebugLoggerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Log/DebugLoggerInterface.php', - 'Symfony\\Component\\HttpKernel\\Log\\Logger' => __DIR__ . '/..' . '/symfony/http-kernel/Log/Logger.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\FileProfilerStorage' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/FileProfilerStorage.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\Profile' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/Profile.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\Profiler' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/Profiler.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\ProfilerStorageInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/ProfilerStorageInterface.php', - 'Symfony\\Component\\HttpKernel\\RebootableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/RebootableInterface.php', - 'Symfony\\Component\\HttpKernel\\TerminableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/TerminableInterface.php', - 'Symfony\\Component\\HttpKernel\\UriSigner' => __DIR__ . '/..' . '/symfony/http-kernel/UriSigner.php', - 'Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', - 'Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', - 'Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', - 'Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', - 'Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', - 'Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', - 'Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', - 'Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', - 'Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', - 'Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', - 'Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', - 'Symfony\\Component\\Process\\ProcessBuilder' => __DIR__ . '/..' . '/symfony/process/ProcessBuilder.php', - 'Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', - 'Symfony\\Component\\Routing\\Annotation\\Route' => __DIR__ . '/..' . '/symfony/routing/Annotation/Route.php', - 'Symfony\\Component\\Routing\\CompiledRoute' => __DIR__ . '/..' . '/symfony/routing/CompiledRoute.php', - 'Symfony\\Component\\Routing\\DependencyInjection\\RoutingResolverPass' => __DIR__ . '/..' . '/symfony/routing/DependencyInjection/RoutingResolverPass.php', - 'Symfony\\Component\\Routing\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/routing/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Routing\\Exception\\InvalidParameterException' => __DIR__ . '/..' . '/symfony/routing/Exception/InvalidParameterException.php', - 'Symfony\\Component\\Routing\\Exception\\MethodNotAllowedException' => __DIR__ . '/..' . '/symfony/routing/Exception/MethodNotAllowedException.php', - 'Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException' => __DIR__ . '/..' . '/symfony/routing/Exception/MissingMandatoryParametersException.php', - 'Symfony\\Component\\Routing\\Exception\\NoConfigurationException' => __DIR__ . '/..' . '/symfony/routing/Exception/NoConfigurationException.php', - 'Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException' => __DIR__ . '/..' . '/symfony/routing/Exception/ResourceNotFoundException.php', - 'Symfony\\Component\\Routing\\Exception\\RouteNotFoundException' => __DIR__ . '/..' . '/symfony/routing/Exception/RouteNotFoundException.php', - 'Symfony\\Component\\Routing\\Generator\\ConfigurableRequirementsInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/ConfigurableRequirementsInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/GeneratorDumper.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php', - 'Symfony\\Component\\Routing\\Generator\\UrlGenerator' => __DIR__ . '/..' . '/symfony/routing/Generator/UrlGenerator.php', - 'Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/UrlGeneratorInterface.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationClassLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationClassLoader.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationDirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationDirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ClosureLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ClosureLoader.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\CollectionConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/CollectionConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\ImportConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/ImportConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\RouteConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/RouteConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\RoutingConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/RoutingConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\AddTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/AddTrait.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\RouteTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php', - 'Symfony\\Component\\Routing\\Loader\\DependencyInjection\\ServiceRouterLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php', - 'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ObjectRouteLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ObjectRouteLoader.php', - 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ProtectedPhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/XmlFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/DumperCollection.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperRoute' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/DumperRoute.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\StaticPrefixCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php', - 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\RequestMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/RequestMatcherInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\TraceableUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/TraceableUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/UrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/UrlMatcherInterface.php', - 'Symfony\\Component\\Routing\\RequestContext' => __DIR__ . '/..' . '/symfony/routing/RequestContext.php', - 'Symfony\\Component\\Routing\\RequestContextAwareInterface' => __DIR__ . '/..' . '/symfony/routing/RequestContextAwareInterface.php', - 'Symfony\\Component\\Routing\\Route' => __DIR__ . '/..' . '/symfony/routing/Route.php', - 'Symfony\\Component\\Routing\\RouteCollection' => __DIR__ . '/..' . '/symfony/routing/RouteCollection.php', - 'Symfony\\Component\\Routing\\RouteCollectionBuilder' => __DIR__ . '/..' . '/symfony/routing/RouteCollectionBuilder.php', - 'Symfony\\Component\\Routing\\RouteCompiler' => __DIR__ . '/..' . '/symfony/routing/RouteCompiler.php', - 'Symfony\\Component\\Routing\\RouteCompilerInterface' => __DIR__ . '/..' . '/symfony/routing/RouteCompilerInterface.php', - 'Symfony\\Component\\Routing\\Router' => __DIR__ . '/..' . '/symfony/routing/Router.php', - 'Symfony\\Component\\Routing\\RouterInterface' => __DIR__ . '/..' . '/symfony/routing/RouterInterface.php', - 'Symfony\\Component\\Translation\\Catalogue\\AbstractOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/AbstractOperation.php', - 'Symfony\\Component\\Translation\\Catalogue\\MergeOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/MergeOperation.php', - 'Symfony\\Component\\Translation\\Catalogue\\OperationInterface' => __DIR__ . '/..' . '/symfony/translation/Catalogue/OperationInterface.php', - 'Symfony\\Component\\Translation\\Catalogue\\TargetOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/TargetOperation.php', - 'Symfony\\Component\\Translation\\Command\\XliffLintCommand' => __DIR__ . '/..' . '/symfony/translation/Command/XliffLintCommand.php', - 'Symfony\\Component\\Translation\\DataCollectorTranslator' => __DIR__ . '/..' . '/symfony/translation/DataCollectorTranslator.php', - 'Symfony\\Component\\Translation\\DataCollector\\TranslationDataCollector' => __DIR__ . '/..' . '/symfony/translation/DataCollector/TranslationDataCollector.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslationDumperPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslationDumperPass.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslationExtractorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslationExtractorPass.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslatorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslatorPass.php', - 'Symfony\\Component\\Translation\\Dumper\\CsvFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/CsvFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\DumperInterface' => __DIR__ . '/..' . '/symfony/translation/Dumper/DumperInterface.php', - 'Symfony\\Component\\Translation\\Dumper\\FileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/FileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\IcuResFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/IcuResFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\IniFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/IniFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\JsonFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/JsonFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\MoFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/MoFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\PhpFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/PhpFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\PoFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/PoFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\QtFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/QtFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\XliffFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/XliffFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\YamlFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/YamlFileDumper.php', - 'Symfony\\Component\\Translation\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/translation/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Translation\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/translation/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Translation\\Exception\\InvalidResourceException' => __DIR__ . '/..' . '/symfony/translation/Exception/InvalidResourceException.php', - 'Symfony\\Component\\Translation\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/translation/Exception/LogicException.php', - 'Symfony\\Component\\Translation\\Exception\\NotFoundResourceException' => __DIR__ . '/..' . '/symfony/translation/Exception/NotFoundResourceException.php', - 'Symfony\\Component\\Translation\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/translation/Exception/RuntimeException.php', - 'Symfony\\Component\\Translation\\Extractor\\AbstractFileExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/AbstractFileExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\ChainExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/ChainExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\ExtractorInterface' => __DIR__ . '/..' . '/symfony/translation/Extractor/ExtractorInterface.php', - 'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpStringTokenParser.php', - 'Symfony\\Component\\Translation\\Formatter\\ChoiceMessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php', - 'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatter.php', - 'Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatterInterface.php', - 'Symfony\\Component\\Translation\\IdentityTranslator' => __DIR__ . '/..' . '/symfony/translation/IdentityTranslator.php', - 'Symfony\\Component\\Translation\\Interval' => __DIR__ . '/..' . '/symfony/translation/Interval.php', - 'Symfony\\Component\\Translation\\Loader\\ArrayLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/ArrayLoader.php', - 'Symfony\\Component\\Translation\\Loader\\CsvFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/CsvFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\FileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/FileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IcuDatFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IcuDatFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IcuResFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IcuResFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IniFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IniFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\JsonFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/JsonFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\LoaderInterface' => __DIR__ . '/..' . '/symfony/translation/Loader/LoaderInterface.php', - 'Symfony\\Component\\Translation\\Loader\\MoFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/MoFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\PoFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/PoFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\QtFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/QtFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\XliffFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/XliffFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Translation\\LoggingTranslator' => __DIR__ . '/..' . '/symfony/translation/LoggingTranslator.php', - 'Symfony\\Component\\Translation\\MessageCatalogue' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogue.php', - 'Symfony\\Component\\Translation\\MessageCatalogueInterface' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogueInterface.php', - 'Symfony\\Component\\Translation\\MessageSelector' => __DIR__ . '/..' . '/symfony/translation/MessageSelector.php', - 'Symfony\\Component\\Translation\\MetadataAwareInterface' => __DIR__ . '/..' . '/symfony/translation/MetadataAwareInterface.php', - 'Symfony\\Component\\Translation\\PluralizationRules' => __DIR__ . '/..' . '/symfony/translation/PluralizationRules.php', - 'Symfony\\Component\\Translation\\Reader\\TranslationReader' => __DIR__ . '/..' . '/symfony/translation/Reader/TranslationReader.php', - 'Symfony\\Component\\Translation\\Reader\\TranslationReaderInterface' => __DIR__ . '/..' . '/symfony/translation/Reader/TranslationReaderInterface.php', - 'Symfony\\Component\\Translation\\Translator' => __DIR__ . '/..' . '/symfony/translation/Translator.php', - 'Symfony\\Component\\Translation\\TranslatorBagInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorBagInterface.php', - 'Symfony\\Component\\Translation\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorInterface.php', - 'Symfony\\Component\\Translation\\Util\\ArrayConverter' => __DIR__ . '/..' . '/symfony/translation/Util/ArrayConverter.php', - 'Symfony\\Component\\Translation\\Writer\\TranslationWriter' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriter.php', - 'Symfony\\Component\\Translation\\Writer\\TranslationWriterInterface' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriterInterface.php', - 'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/AmqpCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ArgsStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ArgsStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\Caster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/Caster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ClassStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ClassStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\ConstStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ConstStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\CutArrayStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CutArrayStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\CutStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CutStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\DOMCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DOMCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DateCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DateCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DoctrineCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DoctrineCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/EnumStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\MongoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/MongoCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/RedisCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ReflectionCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ResourceCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\SplCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SplCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\StubCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/StubCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\SymfonyCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SymfonyCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\TraceStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/TraceStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\XmlReaderCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlReaderCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\XmlResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlResourceCaster.php', - 'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/AbstractCloner.php', - 'Symfony\\Component\\VarDumper\\Cloner\\ClonerInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/ClonerInterface.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Cursor' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Cursor.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Data' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Data.php', - 'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/DumperInterface.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Stub' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Stub.php', - 'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/VarCloner.php', - 'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/AbstractDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/CliDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/DataDumperInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/HtmlDumper.php', - 'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => __DIR__ . '/..' . '/symfony/var-dumper/Exception/ThrowingCasterException.php', - 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php', - 'Symfony\\Component\\VarDumper\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php', - 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', - 'Symfony\\Polyfill\\Php70\\Php70' => __DIR__ . '/..' . '/symfony/polyfill-php70/Php70.php', - 'Symfony\\Thanks\\Command\\ThanksCommand' => __DIR__ . '/..' . '/symfony/thanks/src/Command/ThanksCommand.php', - 'Symfony\\Thanks\\Thanks' => __DIR__ . '/..' . '/symfony/thanks/src/Thanks.php', - 'Tests\\CreatesApplication' => __DIR__ . '/../..' . '/tests/CreatesApplication.php', - 'Tests\\Feature\\ExampleTest' => __DIR__ . '/../..' . '/tests/Feature/ExampleTest.php', - 'Tests\\TestCase' => __DIR__ . '/../..' . '/tests/TestCase.php', - 'Tests\\Unit\\ExampleTest' => __DIR__ . '/../..' . '/tests/Unit/ExampleTest.php', - 'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php', - 'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php', - 'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php', - 'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php', - 'TheSeer\\Tokenizer\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php', - 'TheSeer\\Tokenizer\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php', - 'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php', - 'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php', - 'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php', - 'TijsVerkoyen\\CssToInlineStyles\\CssToInlineStyles' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Property' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php', - 'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php', - 'Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', - 'Whoops\\Exception\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php', - 'Whoops\\Exception\\Formatter' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Formatter.php', - 'Whoops\\Exception\\Frame' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Frame.php', - 'Whoops\\Exception\\FrameCollection' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/FrameCollection.php', - 'Whoops\\Exception\\Inspector' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Inspector.php', - 'Whoops\\Handler\\CallbackHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php', - 'Whoops\\Handler\\Handler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/Handler.php', - 'Whoops\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php', - 'Whoops\\Handler\\JsonResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php', - 'Whoops\\Handler\\PlainTextHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php', - 'Whoops\\Handler\\PrettyPageHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php', - 'Whoops\\Handler\\XmlResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php', - 'Whoops\\Run' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Run.php', - 'Whoops\\RunInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/RunInterface.php', - 'Whoops\\Util\\HtmlDumperOutput' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php', - 'Whoops\\Util\\Misc' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/Misc.php', - 'Whoops\\Util\\SystemFacade' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/SystemFacade.php', - 'Whoops\\Util\\TemplateHelper' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', - 'XdgBaseDir\\Xdg' => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src/Xdg.php', - 'phpDocumentor\\Reflection\\DocBlock' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock.php', - 'phpDocumentor\\Reflection\\DocBlockFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php', - 'phpDocumentor\\Reflection\\DocBlockFactoryInterface' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php', - 'phpDocumentor\\Reflection\\DocBlock\\Description' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Description.php', - 'phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\ExampleFinder' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php', - 'phpDocumentor\\Reflection\\DocBlock\\Serializer' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php', - 'phpDocumentor\\Reflection\\DocBlock\\StandardTagFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tag' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php', - 'phpDocumentor\\Reflection\\DocBlock\\TagFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Author' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\BaseTag' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Covers' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Deprecated' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Example' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\StaticMethod' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\Strategy' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\AlignFormatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\PassthroughFormatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Generic' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Link' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Method' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Param' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Property' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyRead' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyWrite' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Fqsen' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Reference' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Url' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Return_' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\See' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Since' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Source' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Throws' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Uses' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Var_' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Version' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php', - 'phpDocumentor\\Reflection\\Element' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Element.php', - 'phpDocumentor\\Reflection\\File' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/File.php', - 'phpDocumentor\\Reflection\\Fqsen' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Fqsen.php', - 'phpDocumentor\\Reflection\\FqsenResolver' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/FqsenResolver.php', - 'phpDocumentor\\Reflection\\Location' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Location.php', - 'phpDocumentor\\Reflection\\Project' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Project.php', - 'phpDocumentor\\Reflection\\ProjectFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/ProjectFactory.php', - 'phpDocumentor\\Reflection\\Type' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Type.php', - 'phpDocumentor\\Reflection\\TypeResolver' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/TypeResolver.php', - 'phpDocumentor\\Reflection\\Types\\Array_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Array_.php', - 'phpDocumentor\\Reflection\\Types\\Boolean' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Boolean.php', - 'phpDocumentor\\Reflection\\Types\\Callable_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Callable_.php', - 'phpDocumentor\\Reflection\\Types\\Compound' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Compound.php', - 'phpDocumentor\\Reflection\\Types\\Context' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Context.php', - 'phpDocumentor\\Reflection\\Types\\ContextFactory' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/ContextFactory.php', - 'phpDocumentor\\Reflection\\Types\\Float_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Float_.php', - 'phpDocumentor\\Reflection\\Types\\Integer' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Integer.php', - 'phpDocumentor\\Reflection\\Types\\Iterable_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Iterable_.php', - 'phpDocumentor\\Reflection\\Types\\Mixed_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Mixed_.php', - 'phpDocumentor\\Reflection\\Types\\Null_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Null_.php', - 'phpDocumentor\\Reflection\\Types\\Nullable' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Nullable.php', - 'phpDocumentor\\Reflection\\Types\\Object_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Object_.php', - 'phpDocumentor\\Reflection\\Types\\Parent_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Parent_.php', - 'phpDocumentor\\Reflection\\Types\\Resource_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Resource_.php', - 'phpDocumentor\\Reflection\\Types\\Scalar' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Scalar.php', - 'phpDocumentor\\Reflection\\Types\\Self_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Self_.php', - 'phpDocumentor\\Reflection\\Types\\Static_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Static_.php', - 'phpDocumentor\\Reflection\\Types\\String_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/String_.php', - 'phpDocumentor\\Reflection\\Types\\This' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/This.php', - 'phpDocumentor\\Reflection\\Types\\Void_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Void_.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$prefixesPsr0; - $loader->classMap = ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json deleted file mode 100644 index 23b777c1..00000000 --- a/vendor/composer/installed.json +++ /dev/null @@ -1,4389 +0,0 @@ -[ - { - "name": "symfony/thanks", - "version": "v1.0.5", - "version_normalized": "1.0.5.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/thanks.git", - "reference": "c757ee0c9dcfcc0e9e30fbbbdcadeb9dcc9aaaf4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/thanks/zipball/c757ee0c9dcfcc0e9e30fbbbdcadeb9dcc9aaaf4", - "reference": "c757ee0c9dcfcc0e9e30fbbbdcadeb9dcc9aaaf4", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0", - "php": "^5.5.9|^7.0.0" - }, - "time": "2018-01-26 10:44:34", - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "class": "Symfony\\Thanks\\Thanks" - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Thanks\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - } - ], - "description": "Give thanks (in the form of a GitHub â­) to your fellow PHP package maintainers (not limited to Symfony components)!" - }, - { - "name": "doctrine/lexer", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "time": "2014-09-09 13:34:57", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "lexer", - "parser" - ] - }, - { - "name": "erusev/parsedown", - "version": "1.6.4", - "version_normalized": "1.6.4.0", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/fbe3fe878f4fe69048bb8a52783a09802004f548", - "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "time": "2017-11-14 20:44:03", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ] - }, - { - "name": "vlucas/phpdotenv", - "version": "v2.4.0", - "version_normalized": "2.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", - "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.0" - }, - "time": "2016-09-01 10:05:43", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Dotenv\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause-Attribution" - ], - "authors": [ - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "http://www.vancelucas.com" - } - ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", - "keywords": [ - "dotenv", - "env", - "environment" - ] - }, - { - "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.1", - "version_normalized": "2.2.1.0", - "source": { - "type": "git", - "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", - "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "time": "2017-11-27 11:13:29", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "TijsVerkoyen\\CssToInlineStyles\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Tijs Verkoyen", - "email": "css_to_inline_styles@verkoyen.eu", - "role": "Developer" - } - ], - "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", - "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles" - }, - { - "name": "paragonie/random_compat", - "version": "v2.0.11", - "version_normalized": "2.0.11.0", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8", - "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "time": "2017-09-27 21:40:39", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "lib/random.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "pseudorandom", - "random" - ] - }, - { - "name": "psr/log", - "version": "1.0.2", - "version_normalized": "1.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2016-10-10 12:19:37", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ] - }, - { - "name": "egulias/email-validator", - "version": "2.1.3", - "version_normalized": "2.1.3.0", - "source": { - "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/1bec00a10039b823cc94eef4eddd47dcd3b2ca04", - "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" - }, - "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35", - "satooshi/php-coveralls": "^1.0.1" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "time": "2017-11-15 23:40:40", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "EmailValidator" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Gulias Davis" - } - ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ] - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v6.0.2", - "version_normalized": "6.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/412333372fb6c8ffb65496a2bbd7321af75733fc", - "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc", - "shasum": "" - }, - "require": { - "egulias/email-validator": "~2.0", - "php": ">=7.0.0" - }, - "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "~3.3@dev" - }, - "time": "2017-09-30 22:39:41", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "http://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ] - }, - { - "name": "ramsey/uuid", - "version": "3.7.3", - "version_normalized": "3.7.3.0", - "source": { - "type": "git", - "url": "https://github.com/ramsey/uuid.git", - "reference": "44abcdad877d9a46685a3a4d221e3b2c4b87cb76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/44abcdad877d9a46685a3a4d221e3b2c4b87cb76", - "reference": "44abcdad877d9a46685a3a4d221e3b2c4b87cb76", - "shasum": "" - }, - "require": { - "paragonie/random_compat": "^1.0|^2.0", - "php": "^5.4 || ^7.0" - }, - "replace": { - "rhumsaa/uuid": "self.version" - }, - "require-dev": { - "codeception/aspect-mock": "^1.0 | ~2.0.0", - "doctrine/annotations": "~1.2.0", - "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ^2.1", - "ircmaxell/random-lib": "^1.1", - "jakub-onderka/php-parallel-lint": "^0.9.0", - "mockery/mockery": "^0.9.9", - "moontoast/math": "^1.1", - "php-mock/php-mock-phpunit": "^0.3|^1.1", - "phpunit/phpunit": "^4.7|^5.0", - "squizlabs/php_codesniffer": "^2.3" - }, - "suggest": { - "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", - "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", - "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", - "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", - "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", - "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." - }, - "time": "2018-01-20 00:28:24", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Ramsey\\Uuid\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marijn Huizendveld", - "email": "marijn.huizendveld@gmail.com" - }, - { - "name": "Thibaud Fabre", - "email": "thibaud@aztech.io" - }, - { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" - } - ], - "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", - "homepage": "https://github.com/ramsey/uuid", - "keywords": [ - "guid", - "identifier", - "uuid" - ] - }, - { - "name": "psr/simple-cache", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24", - "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-01-02 13:31:39", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ] - }, - { - "name": "psr/container", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-02-14 16:28:37", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ] - }, - { - "name": "nesbot/carbon", - "version": "1.22.1", - "version_normalized": "1.22.1.0", - "source": { - "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", - "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "symfony/translation": "~2.6 || ~3.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2", - "phpunit/phpunit": "~4.0 || ~5.0" - }, - "time": "2017-01-16 07:55:07", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.23-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" - } - ], - "description": "A simple API extension for DateTime.", - "homepage": "http://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ] - }, - { - "name": "mtdowling/cron-expression", - "version": "v1.2.1", - "version_normalized": "1.2.1.0", - "source": { - "type": "git", - "url": "https://github.com/mtdowling/cron-expression.git", - "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/9504fa9ea681b586028adaaa0877db4aecf32bad", - "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "time": "2017-01-23 04:29:33", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Cron\\": "src/Cron/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": [ - "cron", - "schedule" - ] - }, - { - "name": "monolog/monolog", - "version": "1.23.0", - "version_normalized": "1.23.0.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", - "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", - "swiftmailer/swiftmailer": "^5.3|^6.0" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" - }, - "time": "2017-06-19 01:22:40", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ] - }, - { - "name": "fideloper/proxy", - "version": "3.3.4", - "version_normalized": "3.3.4.0", - "source": { - "type": "git", - "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "9cdf6f118af58d89764249bbcc7bb260c132924f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/9cdf6f118af58d89764249bbcc7bb260c132924f", - "reference": "9cdf6f118af58d89764249bbcc7bb260c132924f", - "shasum": "" - }, - "require": { - "illuminate/contracts": "~5.0", - "php": ">=5.4.0" - }, - "require-dev": { - "illuminate/http": "~5.0", - "mockery/mockery": "~0.9.3", - "phpunit/phpunit": "^5.7" - }, - "time": "2017-06-15 17:19:42", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3-dev" - }, - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Fideloper\\Proxy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Fidao", - "email": "fideloper@gmail.com" - } - ], - "description": "Set trusted proxies for Laravel", - "keywords": [ - "load balancing", - "proxy", - "trusted proxy" - ] - }, - { - "name": "jakub-onderka/php-console-color", - "version": "0.1", - "version_normalized": "0.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "0.*", - "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "3.7.*", - "squizlabs/php_codesniffer": "1.*" - }, - "time": "2014-04-08 15:00:19", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleColor": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com", - "homepage": "http://www.acci.cz" - } - ] - }, - { - "name": "nikic/php-parser", - "version": "v3.1.4", - "version_normalized": "3.1.4.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "e57b3a09784f846411aa7ed664eedb73e3399078" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e57b3a09784f846411aa7ed664eedb73e3399078", - "reference": "e57b3a09784f846411aa7ed664eedb73e3399078", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "time": "2018-01-25 21:31:33", - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ] - }, - { - "name": "jakub-onderka/php-console-highlighter", - "version": "v0.3.2", - "version_normalized": "0.3.2.0", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "shasum": "" - }, - "require": { - "jakub-onderka/php-console-color": "~0.1", - "php": ">=5.3.0" - }, - "require-dev": { - "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~0.5", - "jakub-onderka/php-var-dump-check": "~0.1", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5" - }, - "time": "2015-04-20 18:58:01", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleHighlighter": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "acci@acci.cz", - "homepage": "http://www.acci.cz/" - } - ] - }, - { - "name": "dnoegel/php-xdg-base-dir", - "version": "0.1", - "version_normalized": "0.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a", - "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "@stable" - }, - "time": "2014-10-24 07:27:01", - "type": "project", - "installation-source": "dist", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php" - }, - { - "name": "psy/psysh", - "version": "v0.8.17", - "version_normalized": "0.8.17.0", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", - "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", - "shasum": "" - }, - "require": { - "dnoegel/php-xdg-base-dir": "0.1", - "jakub-onderka/php-console-highlighter": "0.3.*", - "nikic/php-parser": "~1.3|~2.0|~3.0", - "php": ">=5.3.9", - "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", - "symfony/var-dumper": "~2.7|~3.0|~4.0" - }, - "require-dev": { - "hoa/console": "~3.16|~1.14", - "phpunit/phpunit": "^4.8.35|^5.4.3", - "symfony/finder": "~2.1|~3.0|~4.0" - }, - "suggest": { - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", - "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." - }, - "time": "2017-12-28 16:14:16", - "bin": [ - "bin/psysh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-develop": "0.8.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "src/Psy/functions.php" - ], - "psr-4": { - "Psy\\": "src/Psy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ] - }, - { - "name": "laravel/tinker", - "version": "v1.0.3", - "version_normalized": "1.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/laravel/tinker.git", - "reference": "852c2abe0b0991555a403f1c0583e64de6acb4a6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/852c2abe0b0991555a403f1c0583e64de6acb4a6", - "reference": "852c2abe0b0991555a403f1c0583e64de6acb4a6", - "shasum": "" - }, - "require": { - "illuminate/console": "~5.1", - "illuminate/contracts": "~5.1", - "illuminate/support": "~5.1", - "php": ">=5.5.9", - "psy/psysh": "0.7.*|0.8.*", - "symfony/var-dumper": "~3.0|~4.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "suggest": { - "illuminate/database": "The Illuminate Database package (~5.1)." - }, - "time": "2017-12-18 16:25:11", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Laravel\\Tinker\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "Powerful REPL for the Laravel framework.", - "keywords": [ - "REPL", - "Tinker", - "laravel", - "psysh" - ] - }, - { - "name": "filp/whoops", - "version": "2.1.14", - "version_normalized": "2.1.14.0", - "source": { - "type": "git", - "url": "https://github.com/filp/whoops.git", - "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/c6081b8838686aa04f1e83ba7e91f78b7b2a23e6", - "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6", - "shasum": "" - }, - "require": { - "php": "^5.5.9 || ^7.0", - "psr/log": "^1.0.1" - }, - "require-dev": { - "mockery/mockery": "0.9.*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" - }, - "time": "2017-11-23 18:22:44", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Whoops\\": "src/Whoops/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "description": "php error handling for cool kids", - "homepage": "https://filp.github.io/whoops/", - "keywords": [ - "error", - "exception", - "handling", - "library", - "throwable", - "whoops" - ] - }, - { - "name": "fzaninotto/faker", - "version": "v1.7.1", - "version_normalized": "1.7.1.0", - "source": { - "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", - "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", - "squizlabs/php_codesniffer": "^1.5" - }, - "time": "2017-08-15 16:48:10", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ] - }, - { - "name": "hamcrest/hamcrest-php", - "version": "v2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", - "shasum": "" - }, - "require": { - "php": "^5.3|^7.0" - }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" - }, - "require-dev": { - "phpunit/php-file-iterator": "1.3.3", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "^1.0" - }, - "time": "2016-01-20 08:20:44", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "hamcrest" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD" - ], - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" - ] - }, - { - "name": "mockery/mockery", - "version": "1.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "1bac8c362b12f522fdd1f1fa3556284c91affa38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/1bac8c362b12f522fdd1f1fa3556284c91affa38", - "reference": "1bac8c362b12f522fdd1f1fa3556284c91affa38", - "shasum": "" - }, - "require": { - "hamcrest/hamcrest-php": "~2.0", - "lib-pcre": ">=7.0", - "php": ">=5.6.0" - }, - "require-dev": { - "phpunit/phpunit": "~5.7|~6.1" - }, - "time": "2017-10-06 16:20:43", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Mockery": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" - }, - { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" - } - ], - "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", - "homepage": "http://github.com/mockery/mockery", - "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" - ] - }, - { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "time": "2017-09-11 18:02:19", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ] - }, - { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", - "version_normalized": "0.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" - }, - "time": "2017-07-14 14:27:02", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ] - }, - { - "name": "phpunit/php-token-stream", - "version": "2.0.2", - "version_normalized": "2.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "791198a2c6254db10131eecfe8c06670700904db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", - "reference": "791198a2c6254db10131eecfe8c06670700904db", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2.4" - }, - "time": "2017-11-27 05:48:46", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ] - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "time": "2016-10-03 07:35:21", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version" - }, - { - "name": "sebastian/resource-operations", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "shasum": "" - }, - "require": { - "php": ">=5.6.0" - }, - "time": "2015-07-28 20:34:47", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-03-03 06:23:57", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "version_normalized": "1.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-03-29 09:07:27", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/" - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.3", - "version_normalized": "3.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-08-03 12:35:26", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/" - }, - { - "name": "sebastian/global-state", - "version": "2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "time": "2017-04-27 15:39:26", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ] - }, - { - "name": "sebastian/exporter", - "version": "3.1.0", - "version_normalized": "3.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" - }, - "time": "2017-04-03 13:19:02", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ] - }, - { - "name": "sebastian/environment", - "version": "3.1.0", - "version_normalized": "3.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.1" - }, - "time": "2017-07-01 08:51:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ] - }, - { - "name": "sebastian/diff", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" - }, - "time": "2017-08-03 08:09:46", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ] - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "version_normalized": "1.2.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2015-06-21 13:50:34", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ] - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "5.0.6", - "version_normalized": "5.0.6.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf", - "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.0", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.1" - }, - "conflict": { - "phpunit/phpunit": "<6.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.5" - }, - "suggest": { - "ext-soap": "*" - }, - "time": "2018-01-06 05:45:45", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ] - }, - { - "name": "phpunit/php-timer", - "version": "1.0.9", - "version_normalized": "1.0.9.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "time": "2017-02-26 11:10:40", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ] - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", - "version_normalized": "1.4.5.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2017-11-27 13:52:08", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ] - }, - { - "name": "theseer/tokenizer", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" - }, - "time": "2017-04-07 12:08:54", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "time": "2017-03-04 06:30:41", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/" - }, - { - "name": "phpunit/php-code-coverage", - "version": "5.3.0", - "version_normalized": "5.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1", - "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.0", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^2.0.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-xdebug": "^2.5.5" - }, - "time": "2017-12-06 09:29:45", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ] - }, - { - "name": "phpspec/prophecy", - "version": "1.7.3", - "version_normalized": "1.7.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", - "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7" - }, - "time": "2017-11-24 13:59:53", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ] - }, - { - "name": "phar-io/version", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "time": "2017-03-05 17:38:23", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints" - }, - { - "name": "phar-io/manifest", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" - }, - "time": "2017-03-05 18:14:27", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)" - }, - { - "name": "myclabs/deep-copy", - "version": "1.7.0", - "version_normalized": "1.7.0.0", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" - }, - "time": "2017-10-19 19:58:43", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ] - }, - { - "name": "sebastian/comparator", - "version": "2.1.3", - "version_normalized": "2.1.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/diff": "^2.0 || ^3.0", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.4" - }, - "time": "2018-02-01 13:46:46", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ] - }, - { - "name": "webmozart/assert", - "version": "1.3.0", - "version_normalized": "1.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "time": "2018-01-29 19:49:41", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ] - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", - "version_normalized": "4.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "time": "2017-11-30 07:14:17", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock." - }, - { - "name": "phpunit/phpunit", - "version": "6.5.6", - "version_normalized": "6.5.6.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3330ef26ade05359d006041316ed0fa9e8e3cefe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3330ef26ade05359d006041316ed0fa9e8e3cefe", - "reference": "3330ef26ade05359d006041316ed0fa9e8e3cefe", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.0", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.3", - "phpunit/php-file-iterator": "^1.4.3", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^1.0.9", - "phpunit/phpunit-mock-objects": "^5.0.5", - "sebastian/comparator": "^2.1", - "sebastian/diff": "^2.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2", - "phpunit/dbunit": "<3.0" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^1.1" - }, - "time": "2018-02-01 05:57:37", - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.5.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ] - }, - { - "name": "league/flysystem", - "version": "1.0.42", - "version_normalized": "1.0.42.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "09eabc54e199950041aef258a85847676496fe8e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/09eabc54e199950041aef258a85847676496fe8e", - "reference": "09eabc54e199950041aef258a85847676496fe8e", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" - }, - "require-dev": { - "ext-fileinfo": "*", - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7" - }, - "suggest": { - "ext-fileinfo": "Required for MimeType", - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" - }, - "time": "2018-01-27 16:03:56", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "League\\Flysystem\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frenky.net" - } - ], - "description": "Filesystem abstraction: Many filesystems, one API.", - "keywords": [ - "Cloud Files", - "WebDAV", - "abstraction", - "aws", - "cloud", - "copy.com", - "dropbox", - "file systems", - "files", - "filesystem", - "filesystems", - "ftp", - "rackspace", - "remote", - "s3", - "sftp", - "storage" - ] - }, - { - "name": "symfony/debug", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "53f6af2805daf52a43b393b93d2f24925d35c937" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/53f6af2805daf52a43b393b93d2f24925d35c937", - "reference": "53f6af2805daf52a43b393b93d2f24925d35c937", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" - }, - "time": "2018-01-18 22:16:57", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.7.0", - "version_normalized": "1.7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "time": "2018-01-30 19:27:44", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/console", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "26b6f419edda16c19775211987651cb27baea7f1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/26b6f419edda16c19775211987651cb27baea7f1", - "reference": "26b6f419edda16c19775211987651cb27baea7f1", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/process": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "time": "2018-01-29 09:03:43", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/finder", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/613e26310776f49a1773b6737c6bd554b8bc8c6f", - "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2018-01-03 07:37:34", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/polyfill-php70", - "version": "v1.7.0", - "version_normalized": "1.7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3532bfcd8f933a7816f3a0a59682fc404776600f", - "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f", - "shasum": "" - }, - "require": { - "paragonie/random_compat": "~1.0|~2.0", - "php": ">=5.3.3" - }, - "time": "2018-01-30 19:27:44", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/http-foundation", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "8c39071ac9cc7e6d8dab1d556c990dc0d2cc3d30" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8c39071ac9cc7e6d8dab1d556c990dc0d2cc3d30", - "reference": "8c39071ac9cc7e6d8dab1d556c990dc0d2cc3d30", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php70": "~1.6" - }, - "require-dev": { - "symfony/expression-language": "~2.8|~3.0|~4.0" - }, - "time": "2018-01-29 09:03:43", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpFoundation Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/http-kernel", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "911d2e5dd4beb63caad9a72e43857de984301907" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/911d2e5dd4beb63caad9a72e43857de984301907", - "reference": "911d2e5dd4beb63caad9a72e43857de984301907", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.4.4|^4.0.4" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4", - "symfony/var-dumper": "<3.3", - "twig/twig": "<1.34|<2.4,>=2" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" - }, - "time": "2018-01-29 12:29:46", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpKernel Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/process", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "09a5172057be8fc677840e591b17f385e58c7c0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/09a5172057be8fc677840e591b17f385e58c7c0d", - "reference": "09a5172057be8fc677840e591b17f385e58c7c0d", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2018-01-29 09:03:43", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/routing", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "235d01730d553a97732990588407eaf6779bb4b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/235d01730d553a97732990588407eaf6779bb4b2", - "reference": "235d01730d553a97732990588407eaf6779bb4b2", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.3", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/common": "~2.2", - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, - "time": "2018-01-16 18:03:57", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Routing Component", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ] - }, - { - "name": "symfony/var-dumper", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "472a9849930cf21f73abdb02240f17cf5b5bd1a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/472a9849930cf21f73abdb02240f17cf5b5bd1a7", - "reference": "472a9849930cf21f73abdb02240f17cf5b5bd1a7", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" - }, - "require-dev": { - "ext-iconv": "*", - "twig/twig": "~1.34|~2.4" - }, - "suggest": { - "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", - "ext-symfony_debug": "" - }, - "time": "2018-01-29 09:03:43", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony mechanism for exploring and dumping PHP variables", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ] - }, - { - "name": "symfony/translation", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "10b32cf0eae28b9b39fe26c456c42b19854c4b84" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/10b32cf0eae28b9b39fe26c456c42b19854c4b84", - "reference": "10b32cf0eae28b9b39fe26c456c42b19854c4b84", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "psr/log": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "time": "2018-01-18 22:16:57", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "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 Translation Component", - "homepage": "https://symfony.com" - }, - { - "name": "laravelcollective/html", - "version": "v5.5.1", - "version_normalized": "5.5.1.0", - "source": { - "type": "git", - "url": "https://github.com/LaravelCollective/html.git", - "reference": "2f6dc39ab3655724a615fe8a652d8b7f04fc9ac6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/LaravelCollective/html/zipball/2f6dc39ab3655724a615fe8a652d8b7f04fc9ac6", - "reference": "2f6dc39ab3655724a615fe8a652d8b7f04fc9ac6", - "shasum": "" - }, - "require": { - "illuminate/http": "5.5.*", - "illuminate/routing": "5.5.*", - "illuminate/session": "5.5.*", - "illuminate/support": "5.5.*", - "illuminate/view": "5.5.*", - "php": ">=7.0.0" - }, - "require-dev": { - "illuminate/database": "5.5.*", - "mockery/mockery": "~0.9.4", - "phpunit/phpunit": "~5.4" - }, - "time": "2017-08-31 14:46:03", - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Collective\\Html\\HtmlServiceProvider" - ], - "aliases": { - "Form": "Collective\\Html\\FormFacade", - "Html": "Collective\\Html\\HtmlFacade" - } - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Collective\\Html\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylorotwell@gmail.com" - }, - { - "name": "Adam Engebretson", - "email": "adam@laravelcollective.com" - } - ], - "description": "HTML and Form Builders for the Laravel Framework", - "homepage": "http://laravelcollective.com" - }, - { - "name": "symfony/css-selector", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "e66394bc7610e69279bfdb3ab11b4fe65403f556" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/e66394bc7610e69279bfdb3ab11b4fe65403f556", - "reference": "e66394bc7610e69279bfdb3ab11b4fe65403f556", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2018-01-03 07:37:34", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "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" - } - ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/event-dispatcher", - "version": "v3.4.4", - "version_normalized": "3.4.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/26b87b6bca8f8f797331a30b76fdae5342dc26ca", - "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "time": "2018-01-03 07:37:34", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com" - }, - { - "name": "doctrine/inflector", - "version": "v1.2.0", - "version_normalized": "1.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462", - "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" - }, - "time": "2017-07-22 12:18:28", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "inflection", - "pluralize", - "singularize", - "string" - ] - }, - { - "name": "laravel/framework", - "version": "v5.5.34", - "version_normalized": "5.5.34.0", - "source": { - "type": "git", - "url": "https://github.com/laravel/framework.git", - "reference": "1de7c0aec13eadbdddc2d1ba4019b064b2c6b966" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1de7c0aec13eadbdddc2d1ba4019b064b2c6b966", - "reference": "1de7c0aec13eadbdddc2d1ba4019b064b2c6b966", - "shasum": "" - }, - "require": { - "doctrine/inflector": "~1.1", - "erusev/parsedown": "~1.6", - "ext-mbstring": "*", - "ext-openssl": "*", - "league/flysystem": "~1.0", - "monolog/monolog": "~1.12", - "mtdowling/cron-expression": "~1.0", - "nesbot/carbon": "~1.20", - "php": ">=7.0", - "psr/container": "~1.0", - "psr/simple-cache": "^1.0", - "ramsey/uuid": "~3.0", - "swiftmailer/swiftmailer": "~6.0", - "symfony/console": "~3.3", - "symfony/debug": "~3.3", - "symfony/finder": "~3.3", - "symfony/http-foundation": "~3.3", - "symfony/http-kernel": "~3.3", - "symfony/process": "~3.3", - "symfony/routing": "~3.3", - "symfony/var-dumper": "~3.3", - "tijsverkoyen/css-to-inline-styles": "~2.2", - "vlucas/phpdotenv": "~2.2" - }, - "replace": { - "illuminate/auth": "self.version", - "illuminate/broadcasting": "self.version", - "illuminate/bus": "self.version", - "illuminate/cache": "self.version", - "illuminate/config": "self.version", - "illuminate/console": "self.version", - "illuminate/container": "self.version", - "illuminate/contracts": "self.version", - "illuminate/cookie": "self.version", - "illuminate/database": "self.version", - "illuminate/encryption": "self.version", - "illuminate/events": "self.version", - "illuminate/filesystem": "self.version", - "illuminate/hashing": "self.version", - "illuminate/http": "self.version", - "illuminate/log": "self.version", - "illuminate/mail": "self.version", - "illuminate/notifications": "self.version", - "illuminate/pagination": "self.version", - "illuminate/pipeline": "self.version", - "illuminate/queue": "self.version", - "illuminate/redis": "self.version", - "illuminate/routing": "self.version", - "illuminate/session": "self.version", - "illuminate/support": "self.version", - "illuminate/translation": "self.version", - "illuminate/validation": "self.version", - "illuminate/view": "self.version", - "tightenco/collect": "self.version" - }, - "require-dev": { - "aws/aws-sdk-php": "~3.0", - "doctrine/dbal": "~2.5", - "filp/whoops": "^2.1.4", - "mockery/mockery": "~1.0", - "orchestra/testbench-core": "3.5.*", - "pda/pheanstalk": "~3.0", - "phpunit/phpunit": "~6.0", - "predis/predis": "^1.1.1", - "symfony/css-selector": "~3.3", - "symfony/dom-crawler": "~3.3" - }, - "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", - "laravel/tinker": "Required to use the tinker console command (~1.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", - "league/flysystem-cached-adapter": "Required to use Flysystem caching (~1.0).", - "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", - "nexmo/client": "Required to use the Nexmo transport (~1.0).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", - "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).", - "symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.3).", - "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.3).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." - }, - "time": "2018-02-06 15:36:55", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "src/Illuminate/Foundation/helpers.php", - "src/Illuminate/Support/helpers.php" - ], - "psr-4": { - "Illuminate\\": "src/Illuminate/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Laravel Framework.", - "homepage": "https://laravel.com", - "keywords": [ - "framework", - "laravel" - ] - }, - { - "name": "doctrine/instantiator", - "version": "1.0.5", - "version_normalized": "1.0.5.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", - "shasum": "" - }, - "require": { - "php": ">=5.3,<8.0-DEV" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "time": "2015-06-14 21:17:01", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ] - }, - { - "name": "guzzlehttp/promises", - "version": "v1.3.1", - "version_normalized": "1.3.1.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "shasum": "" - }, - "require": { - "php": ">=5.5.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0" - }, - "time": "2016-12-20 10:07:11", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ] - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2016-08-06 14:39:51", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ] - }, - { - "name": "guzzlehttp/psr7", - "version": "1.4.2", - "version_normalized": "1.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "time": "2017-03-20 17:10:46", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "request", - "response", - "stream", - "uri", - "url" - ] - }, - { - "name": "guzzlehttp/guzzle", - "version": "6.3.0", - "version_normalized": "6.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "shasum": "" - }, - "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", - "psr/log": "^1.0" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" - }, - "time": "2017-06-22 18:50:49", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ] - } -] diff --git a/vendor/dnoegel/php-xdg-base-dir/.gitignore b/vendor/dnoegel/php-xdg-base-dir/.gitignore deleted file mode 100644 index 57872d0f..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/vendor/ diff --git a/vendor/dnoegel/php-xdg-base-dir/LICENSE b/vendor/dnoegel/php-xdg-base-dir/LICENSE deleted file mode 100644 index 029a00ab..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2014 Daniel Nögel - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/dnoegel/php-xdg-base-dir/README.md b/vendor/dnoegel/php-xdg-base-dir/README.md deleted file mode 100644 index 9e51bbb5..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# XDG Base Directory - -[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md) - -Implementation of XDG Base Directory specification for php - -## Install - -Via Composer - -``` bash -$ composer require dnoegel/php-xdg-base-dir -``` - -## Usage - -``` php -$xdg = \XdgBaseDir\Xdg(); - -echo $xdg->getHomeDir(); -echo $xdg->getHomeConfigDir() -echo $xdg->getHomeDataDir() -echo $xdg->getHomeCacheDir() -echo $xdg->getRuntimeDir() - -$xdg->getDataDirs() // returns array -$xdg->getConfigDirs() // returns array -``` - -## Testing - -``` bash -$ phpunit -``` - -## License - -The MIT License (MIT). Please see [License File](https://github.com/dnoegel/php-xdg-base-dir/blob/master/LICENSE) for more information. diff --git a/vendor/dnoegel/php-xdg-base-dir/composer.json b/vendor/dnoegel/php-xdg-base-dir/composer.json deleted file mode 100644 index f6caf31a..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/composer.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "dnoegel/php-xdg-base-dir", - "description": "implementation of xdg base directory specification for php", - "type": "project", - "license": "MIT", - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "@stable" - }, - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - } -} diff --git a/vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist b/vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist deleted file mode 100644 index 4000c012..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - ./tests/ - - - - - - ./src/ - - - diff --git a/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php b/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php deleted file mode 100644 index e2acda19..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php +++ /dev/null @@ -1,121 +0,0 @@ -getHomeDir() . DIRECTORY_SEPARATOR . '.config'; - - return $path; - } - - /** - * @return string - */ - public function getHomeDataDir() - { - $path = getenv('XDG_DATA_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.local' . DIRECTORY_SEPARATOR . 'share'; - - return $path; - } - - /** - * @return array - */ - public function getConfigDirs() - { - $configDirs = getenv('XDG_CONFIG_DIRS') ? explode(':', getenv('XDG_CONFIG_DIRS')) : array('/etc/xdg'); - - $paths = array_merge(array($this->getHomeConfigDir()), $configDirs); - - return $paths; - } - - /** - * @return array - */ - public function getDataDirs() - { - $dataDirs = getenv('XDG_DATA_DIRS') ? explode(':', getenv('XDG_DATA_DIRS')) : array('/usr/local/share', '/usr/share'); - - $paths = array_merge(array($this->getHomeDataDir()), $dataDirs); - - return $paths; - } - - /** - * @return string - */ - public function getHomeCacheDir() - { - $path = getenv('XDG_CACHE_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.cache'; - - return $path; - - } - - public function getRuntimeDir($strict=true) - { - if ($runtimeDir = getenv('XDG_RUNTIME_DIR')) { - return $runtimeDir; - } - - if ($strict) { - throw new \RuntimeException('XDG_RUNTIME_DIR was not set'); - } - - $fallback = sys_get_temp_dir() . DIRECTORY_SEPARATOR . self::RUNTIME_DIR_FALLBACK . getenv('USER'); - - $create = false; - - if (!is_dir($fallback)) { - mkdir($fallback, 0700, true); - } - - $st = lstat($fallback); - - # The fallback must be a directory - if (!$st['mode'] & self::S_IFDIR) { - rmdir($fallback); - $create = true; - } elseif ($st['uid'] != getmyuid() || - $st['mode'] & (self::S_IRWXG | self::S_IRWXO) - ) { - rmdir($fallback); - $create = true; - } - - if ($create) { - mkdir($fallback, 0700, true); - } - - return $fallback; - } - -} diff --git a/vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php b/vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php deleted file mode 100644 index 92c2e07e..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php +++ /dev/null @@ -1,116 +0,0 @@ -assertEquals('/fake-dir', $this->getXdg()->getHomeDir()); - } - - public function testGetFallbackHomeDir() - { - putenv('HOME='); - putenv('HOMEDRIVE=C:'); - putenv('HOMEPATH=fake-dir'); - $this->assertEquals('C:/fake-dir', $this->getXdg()->getHomeDir()); - } - - public function testXdgPutCache() - { - putenv('XDG_DATA_HOME=tmp/'); - putenv('XDG_CONFIG_HOME=tmp/'); - putenv('XDG_CACHE_HOME=tmp/'); - $this->assertEquals('tmp/', $this->getXdg()->getHomeCacheDir()); - } - - public function testXdgPutData() - { - putenv('XDG_DATA_HOME=tmp/'); - $this->assertEquals('tmp/', $this->getXdg()->getHomeDataDir()); - } - - public function testXdgPutConfig() - { - putenv('XDG_CONFIG_HOME=tmp/'); - $this->assertEquals('tmp/', $this->getXdg()->getHomeConfigDir()); - } - - public function testXdgDataDirsShouldIncludeHomeDataDir() - { - putenv('XDG_DATA_HOME=tmp/'); - putenv('XDG_CONFIG_HOME=tmp/'); - - $this->assertArrayHasKey('tmp/', array_flip($this->getXdg()->getDataDirs())); - } - - public function testXdgConfigDirsShouldIncludeHomeConfigDir() - { - putenv('XDG_CONFIG_HOME=tmp/'); - - $this->assertArrayHasKey('tmp/', array_flip($this->getXdg()->getConfigDirs())); - } - - /** - * If XDG_RUNTIME_DIR is set, it should be returned - */ - public function testGetRuntimeDir() - { - putenv('XDG_RUNTIME_DIR=/tmp/'); - $runtimeDir = $this->getXdg()->getRuntimeDir(); - - $this->assertEquals(is_dir($runtimeDir), true); - } - - /** - * In strict mode, an exception should be shown if XDG_RUNTIME_DIR does not exist - * - * @expectedException \RuntimeException - */ - public function testGetRuntimeDirShouldThrowException() - { - putenv('XDG_RUNTIME_DIR='); - $this->getXdg()->getRuntimeDir(true); - } - - /** - * In fallback mode a directory should be created - */ - public function testGetRuntimeDirShouldCreateDirectory() - { - putenv('XDG_RUNTIME_DIR='); - $dir = $this->getXdg()->getRuntimeDir(false); - $permission = decoct(fileperms($dir) & 0777); - $this->assertEquals(700, $permission); - } - - /** - * Ensure, that the fallback directories are created with correct permission - */ - public function testGetRuntimeShouldDeleteDirsWithWrongPermission() - { - $runtimeDir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . XdgBaseDir\Xdg::RUNTIME_DIR_FALLBACK . getenv('USER'); - - rmdir($runtimeDir); - mkdir($runtimeDir, 0764, true); - - // Permission should be wrong now - $permission = decoct(fileperms($runtimeDir) & 0777); - $this->assertEquals(764, $permission); - - putenv('XDG_RUNTIME_DIR='); - $dir = $this->getXdg()->getRuntimeDir(false); - - // Permission should be fixed - $permission = decoct(fileperms($dir) & 0777); - $this->assertEquals(700, $permission); - } -} diff --git a/vendor/doctrine/inflector/LICENSE b/vendor/doctrine/inflector/LICENSE deleted file mode 100644 index 8c38cc1b..00000000 --- a/vendor/doctrine/inflector/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2015 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/inflector/README.md b/vendor/doctrine/inflector/README.md deleted file mode 100644 index acb55a01..00000000 --- a/vendor/doctrine/inflector/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Doctrine Inflector - -Doctrine Inflector is a small library that can perform string manipulations -with regard to upper-/lowercase and singular/plural forms of words. - -[![Build Status](https://travis-ci.org/doctrine/inflector.svg?branch=master)](https://travis-ci.org/doctrine/inflector) diff --git a/vendor/doctrine/inflector/composer.json b/vendor/doctrine/inflector/composer.json deleted file mode 100644 index e06b6494..00000000 --- a/vendor/doctrine/inflector/composer.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "doctrine/inflector", - "type": "library", - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "keywords": ["string", "inflection", "singularize", "pluralize"], - "homepage": "http://www.doctrine-project.org", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"}, - {"name": "Jonathan Wage", "email": "jonwage@gmail.com"}, - {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} - ], - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" - }, - "autoload": { - "psr-4": { "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" } - }, - "autoload-dev": { - "psr-4": { "Doctrine\\Tests\\Common\\Inflector\\": "tests/Doctrine/Common/Inflector" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - } -} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php b/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php deleted file mode 100644 index 3a951af8..00000000 --- a/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php +++ /dev/null @@ -1,499 +0,0 @@ -. - */ - -namespace Doctrine\Common\Inflector; - -/** - * Doctrine inflector has static methods for inflecting text. - * - * The methods in these classes are from several different sources collected - * across several different php projects and several different authors. The - * original author names and emails are not known. - * - * Pluralize & Singularize implementation are borrowed from CakePHP with some modifications. - * - * @link www.doctrine-project.org - * @since 1.0 - * @author Konsta Vesterinen - * @author Jonathan H. Wage - */ -class Inflector -{ - /** - * Plural inflector rules. - * - * @var array - */ - private static $plural = array( - 'rules' => array( - '/(s)tatus$/i' => '\1\2tatuses', - '/(quiz)$/i' => '\1zes', - '/^(ox)$/i' => '\1\2en', - '/([m|l])ouse$/i' => '\1ice', - '/(matr|vert|ind)(ix|ex)$/i' => '\1ices', - '/(x|ch|ss|sh)$/i' => '\1es', - '/([^aeiouy]|qu)y$/i' => '\1ies', - '/(hive|gulf)$/i' => '\1s', - '/(?:([^f])fe|([lr])f)$/i' => '\1\2ves', - '/sis$/i' => 'ses', - '/([ti])um$/i' => '\1a', - '/(p)erson$/i' => '\1eople', - '/(m)an$/i' => '\1en', - '/(c)hild$/i' => '\1hildren', - '/(f)oot$/i' => '\1eet', - '/(buffal|her|potat|tomat|volcan)o$/i' => '\1\2oes', - '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)us$/i' => '\1i', - '/us$/i' => 'uses', - '/(alias)$/i' => '\1es', - '/(analys|ax|cris|test|thes)is$/i' => '\1es', - '/s$/' => 's', - '/^$/' => '', - '/$/' => 's', - ), - 'uninflected' => array( - '.*[nrlm]ese', - '.*deer', - '.*fish', - '.*measles', - '.*ois', - '.*pox', - '.*sheep', - 'people', - 'cookie', - 'police', - ), - 'irregular' => array( - 'atlas' => 'atlases', - 'axe' => 'axes', - 'beef' => 'beefs', - 'brother' => 'brothers', - 'cafe' => 'cafes', - 'chateau' => 'chateaux', - 'niveau' => 'niveaux', - 'child' => 'children', - 'cookie' => 'cookies', - 'corpus' => 'corpuses', - 'cow' => 'cows', - 'criterion' => 'criteria', - 'curriculum' => 'curricula', - 'demo' => 'demos', - 'domino' => 'dominoes', - 'echo' => 'echoes', - 'foot' => 'feet', - 'fungus' => 'fungi', - 'ganglion' => 'ganglions', - 'genie' => 'genies', - 'genus' => 'genera', - 'graffito' => 'graffiti', - 'hippopotamus' => 'hippopotami', - 'hoof' => 'hoofs', - 'human' => 'humans', - 'iris' => 'irises', - 'larva' => 'larvae', - 'leaf' => 'leaves', - 'loaf' => 'loaves', - 'man' => 'men', - 'medium' => 'media', - 'memorandum' => 'memoranda', - 'money' => 'monies', - 'mongoose' => 'mongooses', - 'motto' => 'mottoes', - 'move' => 'moves', - 'mythos' => 'mythoi', - 'niche' => 'niches', - 'nucleus' => 'nuclei', - 'numen' => 'numina', - 'occiput' => 'occiputs', - 'octopus' => 'octopuses', - 'opus' => 'opuses', - 'ox' => 'oxen', - 'passerby' => 'passersby', - 'penis' => 'penises', - 'person' => 'people', - 'plateau' => 'plateaux', - 'runner-up' => 'runners-up', - 'sex' => 'sexes', - 'soliloquy' => 'soliloquies', - 'son-in-law' => 'sons-in-law', - 'syllabus' => 'syllabi', - 'testis' => 'testes', - 'thief' => 'thieves', - 'tooth' => 'teeth', - 'tornado' => 'tornadoes', - 'trilby' => 'trilbys', - 'turf' => 'turfs', - 'volcano' => 'volcanoes', - ) - ); - - /** - * Singular inflector rules. - * - * @var array - */ - private static $singular = array( - 'rules' => array( - '/(s)tatuses$/i' => '\1\2tatus', - '/^(.*)(menu)s$/i' => '\1\2', - '/(quiz)zes$/i' => '\\1', - '/(matr)ices$/i' => '\1ix', - '/(vert|ind)ices$/i' => '\1ex', - '/^(ox)en/i' => '\1', - '/(alias)(es)*$/i' => '\1', - '/(buffal|her|potat|tomat|volcan)oes$/i' => '\1o', - '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$/i' => '\1us', - '/([ftw]ax)es/i' => '\1', - '/(analys|ax|cris|test|thes)es$/i' => '\1is', - '/(shoe|slave)s$/i' => '\1', - '/(o)es$/i' => '\1', - '/ouses$/' => 'ouse', - '/([^a])uses$/' => '\1us', - '/([m|l])ice$/i' => '\1ouse', - '/(x|ch|ss|sh)es$/i' => '\1', - '/(m)ovies$/i' => '\1\2ovie', - '/(s)eries$/i' => '\1\2eries', - '/([^aeiouy]|qu)ies$/i' => '\1y', - '/([lr])ves$/i' => '\1f', - '/(tive)s$/i' => '\1', - '/(hive)s$/i' => '\1', - '/(drive)s$/i' => '\1', - '/(dive)s$/i' => '\1', - '/([^fo])ves$/i' => '\1fe', - '/(^analy)ses$/i' => '\1sis', - '/(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' => '\1\2sis', - '/([ti])a$/i' => '\1um', - '/(p)eople$/i' => '\1\2erson', - '/(m)en$/i' => '\1an', - '/(c)hildren$/i' => '\1\2hild', - '/(f)eet$/i' => '\1oot', - '/(n)ews$/i' => '\1\2ews', - '/eaus$/' => 'eau', - '/^(.*us)$/' => '\\1', - '/s$/i' => '', - ), - 'uninflected' => array( - '.*[nrlm]ese', - '.*deer', - '.*fish', - '.*measles', - '.*ois', - '.*pox', - '.*sheep', - '.*ss', - 'police', - 'pants', - 'clothes', - ), - 'irregular' => array( - 'caches' => 'cache', - 'criteria' => 'criterion', - 'curves' => 'curve', - 'emphases' => 'emphasis', - 'foes' => 'foe', - 'hoaxes' => 'hoax', - 'media' => 'medium', - 'neuroses' => 'neurosis', - 'waves' => 'wave', - 'oases' => 'oasis', - ) - ); - - /** - * Words that should not be inflected. - * - * @var array - */ - private static $uninflected = array( - 'Amoyese', 'bison', 'Borghese', 'bream', 'breeches', 'britches', 'buffalo', 'cantus', - 'carp', 'chassis', 'clippers', 'cod', 'coitus', 'Congoese', 'contretemps', 'corps', - 'debris', 'diabetes', 'djinn', 'eland', 'elk', 'equipment', 'Faroese', 'flounder', - 'Foochowese', 'Furniture', 'gallows', 'Genevese', 'Genoese', 'Gilbertese', 'graffiti', - 'headquarters', 'herpes', 'hijinks', 'Hottentotese', 'information', 'innings', - 'jackanapes', 'Kiplingese', 'Kongoese', 'Lucchese', 'Luggage', 'mackerel', 'Maltese', '.*?media', - 'mews', 'moose', 'mumps', 'Nankingese', 'news', 'nexus', 'Niasese', - 'Pekingese', 'Piedmontese', 'pincers', 'Pistoiese', 'pliers', 'Portuguese', - 'proceedings', 'rabies', 'rice', 'rhinoceros', 'salmon', 'Sarawakese', 'scissors', - 'sea[- ]bass', 'series', 'Shavese', 'shears', 'siemens', 'species', 'staff', 'swine', - 'testes', 'trousers', 'trout', 'tuna', 'Vermontese', 'Wenchowese', 'whiting', - 'wildebeest', 'Yengeese' - ); - - /** - * Method cache array. - * - * @var array - */ - private static $cache = array(); - - /** - * The initial state of Inflector so reset() works. - * - * @var array - */ - private static $initialState = array(); - - /** - * Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'. - * - * @param string $word The word to tableize. - * - * @return string The tableized word. - */ - public static function tableize($word) - { - return strtolower(preg_replace('~(?<=\\w)([A-Z])~', '_$1', $word)); - } - - /** - * Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'. - * - * @param string $word The word to classify. - * - * @return string The classified word. - */ - public static function classify($word) - { - return str_replace(' ', '', ucwords(strtr($word, '_-', ' '))); - } - - /** - * Camelizes a word. This uses the classify() method and turns the first character to lowercase. - * - * @param string $word The word to camelize. - * - * @return string The camelized word. - */ - public static function camelize($word) - { - return lcfirst(self::classify($word)); - } - - /** - * Uppercases words with configurable delimeters between words. - * - * Takes a string and capitalizes all of the words, like PHP's built-in - * ucwords function. This extends that behavior, however, by allowing the - * word delimeters to be configured, rather than only separating on - * whitespace. - * - * Here is an example: - * - * - * - * - * @param string $string The string to operate on. - * @param string $delimiters A list of word separators. - * - * @return string The string with all delimeter-separated words capitalized. - */ - public static function ucwords($string, $delimiters = " \n\t\r\0\x0B-") - { - return preg_replace_callback( - '/[^' . preg_quote($delimiters, '/') . ']+/', - function($matches) { - return ucfirst($matches[0]); - }, - $string - ); - } - - /** - * Clears Inflectors inflected value caches, and resets the inflection - * rules to the initial values. - * - * @return void - */ - public static function reset() - { - if (empty(self::$initialState)) { - self::$initialState = get_class_vars('Inflector'); - - return; - } - - foreach (self::$initialState as $key => $val) { - if ($key != 'initialState') { - self::${$key} = $val; - } - } - } - - /** - * Adds custom inflection $rules, of either 'plural' or 'singular' $type. - * - * ### Usage: - * - * {{{ - * Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables')); - * Inflector::rules('plural', array( - * 'rules' => array('/^(inflect)ors$/i' => '\1ables'), - * 'uninflected' => array('dontinflectme'), - * 'irregular' => array('red' => 'redlings') - * )); - * }}} - * - * @param string $type The type of inflection, either 'plural' or 'singular' - * @param array $rules An array of rules to be added. - * @param boolean $reset If true, will unset default inflections for all - * new rules that are being defined in $rules. - * - * @return void - */ - public static function rules($type, $rules, $reset = false) - { - foreach ($rules as $rule => $pattern) { - if ( ! is_array($pattern)) { - continue; - } - - if ($reset) { - self::${$type}[$rule] = $pattern; - } else { - self::${$type}[$rule] = ($rule === 'uninflected') - ? array_merge($pattern, self::${$type}[$rule]) - : $pattern + self::${$type}[$rule]; - } - - unset($rules[$rule], self::${$type}['cache' . ucfirst($rule)]); - - if (isset(self::${$type}['merged'][$rule])) { - unset(self::${$type}['merged'][$rule]); - } - - if ($type === 'plural') { - self::$cache['pluralize'] = self::$cache['tableize'] = array(); - } elseif ($type === 'singular') { - self::$cache['singularize'] = array(); - } - } - - self::${$type}['rules'] = $rules + self::${$type}['rules']; - } - - /** - * Returns a word in plural form. - * - * @param string $word The word in singular form. - * - * @return string The word in plural form. - */ - public static function pluralize($word) - { - if (isset(self::$cache['pluralize'][$word])) { - return self::$cache['pluralize'][$word]; - } - - if (!isset(self::$plural['merged']['irregular'])) { - self::$plural['merged']['irregular'] = self::$plural['irregular']; - } - - if (!isset(self::$plural['merged']['uninflected'])) { - self::$plural['merged']['uninflected'] = array_merge(self::$plural['uninflected'], self::$uninflected); - } - - if (!isset(self::$plural['cacheUninflected']) || !isset(self::$plural['cacheIrregular'])) { - self::$plural['cacheUninflected'] = '(?:' . implode('|', self::$plural['merged']['uninflected']) . ')'; - self::$plural['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$plural['merged']['irregular'])) . ')'; - } - - if (preg_match('/(.*)\\b(' . self::$plural['cacheIrregular'] . ')$/i', $word, $regs)) { - self::$cache['pluralize'][$word] = $regs[1] . substr($word, 0, 1) . substr(self::$plural['merged']['irregular'][strtolower($regs[2])], 1); - - return self::$cache['pluralize'][$word]; - } - - if (preg_match('/^(' . self::$plural['cacheUninflected'] . ')$/i', $word, $regs)) { - self::$cache['pluralize'][$word] = $word; - - return $word; - } - - foreach (self::$plural['rules'] as $rule => $replacement) { - if (preg_match($rule, $word)) { - self::$cache['pluralize'][$word] = preg_replace($rule, $replacement, $word); - - return self::$cache['pluralize'][$word]; - } - } - } - - /** - * Returns a word in singular form. - * - * @param string $word The word in plural form. - * - * @return string The word in singular form. - */ - public static function singularize($word) - { - if (isset(self::$cache['singularize'][$word])) { - return self::$cache['singularize'][$word]; - } - - if (!isset(self::$singular['merged']['uninflected'])) { - self::$singular['merged']['uninflected'] = array_merge( - self::$singular['uninflected'], - self::$uninflected - ); - } - - if (!isset(self::$singular['merged']['irregular'])) { - self::$singular['merged']['irregular'] = array_merge( - self::$singular['irregular'], - array_flip(self::$plural['irregular']) - ); - } - - if (!isset(self::$singular['cacheUninflected']) || !isset(self::$singular['cacheIrregular'])) { - self::$singular['cacheUninflected'] = '(?:' . join('|', self::$singular['merged']['uninflected']) . ')'; - self::$singular['cacheIrregular'] = '(?:' . join('|', array_keys(self::$singular['merged']['irregular'])) . ')'; - } - - if (preg_match('/(.*)\\b(' . self::$singular['cacheIrregular'] . ')$/i', $word, $regs)) { - self::$cache['singularize'][$word] = $regs[1] . substr($word, 0, 1) . substr(self::$singular['merged']['irregular'][strtolower($regs[2])], 1); - - return self::$cache['singularize'][$word]; - } - - if (preg_match('/^(' . self::$singular['cacheUninflected'] . ')$/i', $word, $regs)) { - self::$cache['singularize'][$word] = $word; - - return $word; - } - - foreach (self::$singular['rules'] as $rule => $replacement) { - if (preg_match($rule, $word)) { - self::$cache['singularize'][$word] = preg_replace($rule, $replacement, $word); - - return self::$cache['singularize'][$word]; - } - } - - self::$cache['singularize'][$word] = $word; - - return $word; - } -} diff --git a/vendor/doctrine/instantiator/.gitignore b/vendor/doctrine/instantiator/.gitignore deleted file mode 100644 index e3e368dd..00000000 --- a/vendor/doctrine/instantiator/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -phpunit.xml -composer.lock -build -vendor -coverage.clover diff --git a/vendor/doctrine/instantiator/.scrutinizer.yml b/vendor/doctrine/instantiator/.scrutinizer.yml deleted file mode 100644 index aad5e403..00000000 --- a/vendor/doctrine/instantiator/.scrutinizer.yml +++ /dev/null @@ -1,46 +0,0 @@ -before_commands: - - "composer install --prefer-source" - -tools: - external_code_coverage: - timeout: 600 - php_code_coverage: - enabled: true - test_command: ./vendor/bin/phpunit - php_code_sniffer: - enabled: true - config: - standard: PSR2 - filter: - paths: ["src/*", "tests/*"] - php_cpd: - enabled: true - excluded_dirs: ["build/*", "tests", "vendor"] - php_cs_fixer: - enabled: true - config: - level: all - filter: - paths: ["src/*", "tests/*"] - php_loc: - enabled: true - excluded_dirs: ["build", "tests", "vendor"] - php_mess_detector: - enabled: true - config: - ruleset: phpmd.xml.dist - design_rules: { eval_expression: false } - filter: - paths: ["src/*"] - php_pdepend: - enabled: true - excluded_dirs: ["build", "tests", "vendor"] - php_analyzer: - enabled: true - filter: - paths: ["src/*", "tests/*"] - php_hhvm: - enabled: true - filter: - paths: ["src/*", "tests/*"] - sensiolabs_security_checker: true diff --git a/vendor/doctrine/instantiator/.travis.install.sh b/vendor/doctrine/instantiator/.travis.install.sh deleted file mode 100644 index 2819188c..00000000 --- a/vendor/doctrine/instantiator/.travis.install.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -set -x -if [ "$TRAVIS_PHP_VERSION" = 'hhvm' ] || [ "$TRAVIS_PHP_VERSION" = 'hhvm-nightly' ] ; then - curl -sS https://getcomposer.org/installer > composer-installer.php - hhvm composer-installer.php - hhvm -v ResourceLimit.SocketDefaultTimeout=30 -v Http.SlowQueryThreshold=30000 composer.phar update --prefer-source -elif [ "$TRAVIS_PHP_VERSION" = '5.3.3' ] ; then - composer self-update - composer update --prefer-source --no-dev - composer dump-autoload -else - composer self-update - composer update --prefer-source -fi diff --git a/vendor/doctrine/instantiator/.travis.yml b/vendor/doctrine/instantiator/.travis.yml deleted file mode 100644 index 7f1ec5f9..00000000 --- a/vendor/doctrine/instantiator/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: php - -php: - - 5.3.3 - - 5.3 - - 5.4 - - 5.5 - - 5.6 - - hhvm - -before_script: - - ./.travis.install.sh - - if [ $TRAVIS_PHP_VERSION = '5.6' ]; then PHPUNIT_FLAGS="--coverage-clover coverage.clover"; else PHPUNIT_FLAGS=""; fi - -script: - - if [ $TRAVIS_PHP_VERSION = '5.3.3' ]; then phpunit; fi - - if [ $TRAVIS_PHP_VERSION != '5.3.3' ]; then ./vendor/bin/phpunit $PHPUNIT_FLAGS; fi - - if [ $TRAVIS_PHP_VERSION != '5.3.3' ]; then ./vendor/bin/phpcs --standard=PSR2 ./src/ ./tests/; fi - - if [[ $TRAVIS_PHP_VERSION != '5.3.3' && $TRAVIS_PHP_VERSION != '5.4.29' && $TRAVIS_PHP_VERSION != '5.5.13' ]]; then php -n ./vendor/bin/athletic -p ./tests/DoctrineTest/InstantiatorPerformance/ -f GroupedFormatter; fi - -after_script: - - if [ $TRAVIS_PHP_VERSION = '5.6' ]; then wget https://scrutinizer-ci.com/ocular.phar; php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi diff --git a/vendor/doctrine/instantiator/CONTRIBUTING.md b/vendor/doctrine/instantiator/CONTRIBUTING.md deleted file mode 100644 index 75b84b2a..00000000 --- a/vendor/doctrine/instantiator/CONTRIBUTING.md +++ /dev/null @@ -1,35 +0,0 @@ -# Contributing - - * Coding standard for the project is [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) - * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php) - * Any contribution must provide tests for additional introduced conditions - * Any un-confirmed issue needs a failing test case before being accepted - * Pull requests must be sent from a new hotfix/feature branch, not from `master`. - -## Installation - -To install the project and run the tests, you need to clone it first: - -```sh -$ git clone git://github.com/doctrine/instantiator.git -``` - -You will then need to run a composer installation: - -```sh -$ cd Instantiator -$ curl -s https://getcomposer.org/installer | php -$ php composer.phar update -``` - -## Testing - -The PHPUnit version to be used is the one installed as a dev- dependency via composer: - -```sh -$ ./vendor/bin/phpunit -``` - -Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement -won't be merged. - diff --git a/vendor/doctrine/instantiator/LICENSE b/vendor/doctrine/instantiator/LICENSE deleted file mode 100644 index 4d983d1a..00000000 --- a/vendor/doctrine/instantiator/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2014 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/instantiator/README.md b/vendor/doctrine/instantiator/README.md deleted file mode 100644 index 393ec7ca..00000000 --- a/vendor/doctrine/instantiator/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Instantiator - -This library provides a way of avoiding usage of constructors when instantiating PHP classes. - -[![Build Status](https://travis-ci.org/doctrine/instantiator.svg?branch=master)](https://travis-ci.org/doctrine/instantiator) -[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master) -[![Dependency Status](https://www.versioneye.com/package/php--doctrine--instantiator/badge.svg)](https://www.versioneye.com/package/php--doctrine--instantiator) -[![HHVM Status](http://hhvm.h4cc.de/badge/doctrine/instantiator.png)](http://hhvm.h4cc.de/package/doctrine/instantiator) - -[![Latest Stable Version](https://poser.pugx.org/doctrine/instantiator/v/stable.png)](https://packagist.org/packages/doctrine/instantiator) -[![Latest Unstable Version](https://poser.pugx.org/doctrine/instantiator/v/unstable.png)](https://packagist.org/packages/doctrine/instantiator) - -## Installation - -The suggested installation method is via [composer](https://getcomposer.org/): - -```sh -php composer.phar require "doctrine/instantiator:~1.0.3" -``` - -## Usage - -The instantiator is able to create new instances of any class without using the constructor or any API of the class -itself: - -```php -$instantiator = new \Doctrine\Instantiator\Instantiator(); - -$instance = $instantiator->instantiate('My\\ClassName\\Here'); -``` - -## Contributing - -Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out! - -## Credits - -This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which -has been donated to the doctrine organization, and which is now deprecated in favour of this package. diff --git a/vendor/doctrine/instantiator/composer.json b/vendor/doctrine/instantiator/composer.json deleted file mode 100644 index 4823890b..00000000 --- a/vendor/doctrine/instantiator/composer.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "doctrine/instantiator", - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "type": "library", - "license": "MIT", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "instantiate", - "constructor" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "require": { - "php": ">=5.3,<8.0-DEV" - }, - "require-dev": { - "ext-phar": "*", - "ext-pdo": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0", - "athletic/athletic": "~0.1.8" - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "autoload-dev": { - "psr-0": { - "DoctrineTest\\InstantiatorPerformance\\": "tests", - "DoctrineTest\\InstantiatorTest\\": "tests", - "DoctrineTest\\InstantiatorTestAsset\\": "tests" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/doctrine/instantiator/phpmd.xml.dist b/vendor/doctrine/instantiator/phpmd.xml.dist deleted file mode 100644 index 82541056..00000000 --- a/vendor/doctrine/instantiator/phpmd.xml.dist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/vendor/doctrine/instantiator/phpunit.xml.dist b/vendor/doctrine/instantiator/phpunit.xml.dist deleted file mode 100644 index 0a8d5709..00000000 --- a/vendor/doctrine/instantiator/phpunit.xml.dist +++ /dev/null @@ -1,22 +0,0 @@ - - - - ./tests/DoctrineTest/InstantiatorTest - - - - ./src - - - diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php deleted file mode 100644 index 3065375a..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php +++ /dev/null @@ -1,29 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -/** - * Base exception marker interface for the instantiator component - * - * @author Marco Pivetta - */ -interface ExceptionInterface -{ -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php deleted file mode 100644 index ea8d28c5..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,62 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -use InvalidArgumentException as BaseInvalidArgumentException; -use ReflectionClass; - -/** - * Exception for invalid arguments provided to the instantiator - * - * @author Marco Pivetta - */ -class InvalidArgumentException extends BaseInvalidArgumentException implements ExceptionInterface -{ - /** - * @param string $className - * - * @return self - */ - public static function fromNonExistingClass($className) - { - if (interface_exists($className)) { - return new self(sprintf('The provided type "%s" is an interface, and can not be instantiated', $className)); - } - - if (PHP_VERSION_ID >= 50400 && trait_exists($className)) { - return new self(sprintf('The provided type "%s" is a trait, and can not be instantiated', $className)); - } - - return new self(sprintf('The provided class "%s" does not exist', $className)); - } - - /** - * @param ReflectionClass $reflectionClass - * - * @return self - */ - public static function fromAbstractClass(ReflectionClass $reflectionClass) - { - return new self(sprintf( - 'The provided class "%s" is abstract, and can not be instantiated', - $reflectionClass->getName() - )); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php deleted file mode 100644 index 1681e56e..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php +++ /dev/null @@ -1,79 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -use Exception; -use ReflectionClass; -use UnexpectedValueException as BaseUnexpectedValueException; - -/** - * Exception for given parameters causing invalid/unexpected state on instantiation - * - * @author Marco Pivetta - */ -class UnexpectedValueException extends BaseUnexpectedValueException implements ExceptionInterface -{ - /** - * @param ReflectionClass $reflectionClass - * @param Exception $exception - * - * @return self - */ - public static function fromSerializationTriggeredException(ReflectionClass $reflectionClass, Exception $exception) - { - return new self( - sprintf( - 'An exception was raised while trying to instantiate an instance of "%s" via un-serialization', - $reflectionClass->getName() - ), - 0, - $exception - ); - } - - /** - * @param ReflectionClass $reflectionClass - * @param string $errorString - * @param int $errorCode - * @param string $errorFile - * @param int $errorLine - * - * @return UnexpectedValueException - */ - public static function fromUncleanUnSerialization( - ReflectionClass $reflectionClass, - $errorString, - $errorCode, - $errorFile, - $errorLine - ) { - return new self( - sprintf( - 'Could not produce an instance of "%s" via un-serialization, since an error was triggered ' - . 'in file "%s" at line "%d"', - $reflectionClass->getName(), - $errorFile, - $errorLine - ), - 0, - new Exception($errorString, $errorCode) - ); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php deleted file mode 100644 index 6d5b3b65..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php +++ /dev/null @@ -1,273 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator; - -use Closure; -use Doctrine\Instantiator\Exception\InvalidArgumentException; -use Doctrine\Instantiator\Exception\UnexpectedValueException; -use Exception; -use ReflectionClass; - -/** - * {@inheritDoc} - * - * @author Marco Pivetta - */ -final class Instantiator implements InstantiatorInterface -{ - /** - * Markers used internally by PHP to define whether {@see \unserialize} should invoke - * the method {@see \Serializable::unserialize()} when dealing with classes implementing - * the {@see \Serializable} interface. - */ - const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C'; - const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O'; - - /** - * @var \Closure[] of {@see \Closure} instances used to instantiate specific classes - */ - private static $cachedInstantiators = array(); - - /** - * @var object[] of objects that can directly be cloned - */ - private static $cachedCloneables = array(); - - /** - * {@inheritDoc} - */ - public function instantiate($className) - { - if (isset(self::$cachedCloneables[$className])) { - return clone self::$cachedCloneables[$className]; - } - - if (isset(self::$cachedInstantiators[$className])) { - $factory = self::$cachedInstantiators[$className]; - - return $factory(); - } - - return $this->buildAndCacheFromFactory($className); - } - - /** - * Builds the requested object and caches it in static properties for performance - * - * @param string $className - * - * @return object - */ - private function buildAndCacheFromFactory($className) - { - $factory = self::$cachedInstantiators[$className] = $this->buildFactory($className); - $instance = $factory(); - - if ($this->isSafeToClone(new ReflectionClass($instance))) { - self::$cachedCloneables[$className] = clone $instance; - } - - return $instance; - } - - /** - * Builds a {@see \Closure} capable of instantiating the given $className without - * invoking its constructor. - * - * @param string $className - * - * @return Closure - */ - private function buildFactory($className) - { - $reflectionClass = $this->getReflectionClass($className); - - if ($this->isInstantiableViaReflection($reflectionClass)) { - return function () use ($reflectionClass) { - return $reflectionClass->newInstanceWithoutConstructor(); - }; - } - - $serializedString = sprintf( - '%s:%d:"%s":0:{}', - $this->getSerializationFormat($reflectionClass), - strlen($className), - $className - ); - - $this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString); - - return function () use ($serializedString) { - return unserialize($serializedString); - }; - } - - /** - * @param string $className - * - * @return ReflectionClass - * - * @throws InvalidArgumentException - */ - private function getReflectionClass($className) - { - if (! class_exists($className)) { - throw InvalidArgumentException::fromNonExistingClass($className); - } - - $reflection = new ReflectionClass($className); - - if ($reflection->isAbstract()) { - throw InvalidArgumentException::fromAbstractClass($reflection); - } - - return $reflection; - } - - /** - * @param ReflectionClass $reflectionClass - * @param string $serializedString - * - * @throws UnexpectedValueException - * - * @return void - */ - private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, $serializedString) - { - set_error_handler(function ($code, $message, $file, $line) use ($reflectionClass, & $error) { - $error = UnexpectedValueException::fromUncleanUnSerialization( - $reflectionClass, - $message, - $code, - $file, - $line - ); - }); - - $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString); - - restore_error_handler(); - - if ($error) { - throw $error; - } - } - - /** - * @param ReflectionClass $reflectionClass - * @param string $serializedString - * - * @throws UnexpectedValueException - * - * @return void - */ - private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, $serializedString) - { - try { - unserialize($serializedString); - } catch (Exception $exception) { - restore_error_handler(); - - throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception); - } - } - - /** - * @param ReflectionClass $reflectionClass - * - * @return bool - */ - private function isInstantiableViaReflection(ReflectionClass $reflectionClass) - { - if (\PHP_VERSION_ID >= 50600) { - return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal()); - } - - return \PHP_VERSION_ID >= 50400 && ! $this->hasInternalAncestors($reflectionClass); - } - - /** - * Verifies whether the given class is to be considered internal - * - * @param ReflectionClass $reflectionClass - * - * @return bool - */ - private function hasInternalAncestors(ReflectionClass $reflectionClass) - { - do { - if ($reflectionClass->isInternal()) { - return true; - } - } while ($reflectionClass = $reflectionClass->getParentClass()); - - return false; - } - - /** - * Verifies if the given PHP version implements the `Serializable` interface serialization - * with an incompatible serialization format. If that's the case, use serialization marker - * "C" instead of "O". - * - * @link http://news.php.net/php.internals/74654 - * - * @param ReflectionClass $reflectionClass - * - * @return string the serialization format marker, either self::SERIALIZATION_FORMAT_USE_UNSERIALIZER - * or self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER - */ - private function getSerializationFormat(ReflectionClass $reflectionClass) - { - if ($this->isPhpVersionWithBrokenSerializationFormat() - && $reflectionClass->implementsInterface('Serializable') - ) { - return self::SERIALIZATION_FORMAT_USE_UNSERIALIZER; - } - - return self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER; - } - - /** - * Checks whether the current PHP runtime uses an incompatible serialization format - * - * @return bool - */ - private function isPhpVersionWithBrokenSerializationFormat() - { - return PHP_VERSION_ID === 50429 || PHP_VERSION_ID === 50513; - } - - /** - * Checks if a class is cloneable - * - * @param ReflectionClass $reflection - * - * @return bool - */ - private function isSafeToClone(ReflectionClass $reflection) - { - if (method_exists($reflection, 'isCloneable') && ! $reflection->isCloneable()) { - return false; - } - - // not cloneable if it implements `__clone`, as we want to avoid calling it - return ! $reflection->hasMethod('__clone'); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php deleted file mode 100644 index b665bea8..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php +++ /dev/null @@ -1,37 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator; - -/** - * Instantiator provides utility methods to build objects without invoking their constructors - * - * @author Marco Pivetta - */ -interface InstantiatorInterface -{ - /** - * @param string $className - * - * @return object - * - * @throws \Doctrine\Instantiator\Exception\ExceptionInterface - */ - public function instantiate($className); -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorPerformance/InstantiatorPerformanceEvent.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorPerformance/InstantiatorPerformanceEvent.php deleted file mode 100644 index 3e8fc6ff..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorPerformance/InstantiatorPerformanceEvent.php +++ /dev/null @@ -1,96 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorPerformance; - -use Athletic\AthleticEvent; -use Doctrine\Instantiator\Instantiator; - -/** - * Performance tests for {@see \Doctrine\Instantiator\Instantiator} - * - * @author Marco Pivetta - */ -class InstantiatorPerformanceEvent extends AthleticEvent -{ - /** - * @var \Doctrine\Instantiator\Instantiator - */ - private $instantiator; - - /** - * {@inheritDoc} - */ - protected function setUp() - { - $this->instantiator = new Instantiator(); - - $this->instantiator->instantiate(__CLASS__); - $this->instantiator->instantiate('ArrayObject'); - $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\SimpleSerializableAsset'); - $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\SerializableArrayObjectAsset'); - $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\UnCloneableAsset'); - } - - /** - * @iterations 20000 - * @baseline - * @group instantiation - */ - public function testInstantiateSelf() - { - $this->instantiator->instantiate(__CLASS__); - } - - /** - * @iterations 20000 - * @group instantiation - */ - public function testInstantiateInternalClass() - { - $this->instantiator->instantiate('ArrayObject'); - } - - /** - * @iterations 20000 - * @group instantiation - */ - public function testInstantiateSimpleSerializableAssetClass() - { - $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\SimpleSerializableAsset'); - } - - /** - * @iterations 20000 - * @group instantiation - */ - public function testInstantiateSerializableArrayObjectAsset() - { - $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\SerializableArrayObjectAsset'); - } - - /** - * @iterations 20000 - * @group instantiation - */ - public function testInstantiateUnCloneableAsset() - { - $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\UnCloneableAsset'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/InvalidArgumentExceptionTest.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/InvalidArgumentExceptionTest.php deleted file mode 100644 index 39d9b94d..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/InvalidArgumentExceptionTest.php +++ /dev/null @@ -1,83 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTest\Exception; - -use Doctrine\Instantiator\Exception\InvalidArgumentException; -use PHPUnit_Framework_TestCase; -use ReflectionClass; - -/** - * Tests for {@see \Doctrine\Instantiator\Exception\InvalidArgumentException} - * - * @author Marco Pivetta - * - * @covers \Doctrine\Instantiator\Exception\InvalidArgumentException - */ -class InvalidArgumentExceptionTest extends PHPUnit_Framework_TestCase -{ - public function testFromNonExistingTypeWithNonExistingClass() - { - $className = __CLASS__ . uniqid(); - $exception = InvalidArgumentException::fromNonExistingClass($className); - - $this->assertInstanceOf('Doctrine\\Instantiator\\Exception\\InvalidArgumentException', $exception); - $this->assertSame('The provided class "' . $className . '" does not exist', $exception->getMessage()); - } - - public function testFromNonExistingTypeWithTrait() - { - if (PHP_VERSION_ID < 50400) { - $this->markTestSkipped('Need at least PHP 5.4.0, as this test requires traits support to run'); - } - - $exception = InvalidArgumentException::fromNonExistingClass( - 'DoctrineTest\\InstantiatorTestAsset\\SimpleTraitAsset' - ); - - $this->assertSame( - 'The provided type "DoctrineTest\\InstantiatorTestAsset\\SimpleTraitAsset" is a trait, ' - . 'and can not be instantiated', - $exception->getMessage() - ); - } - - public function testFromNonExistingTypeWithInterface() - { - $exception = InvalidArgumentException::fromNonExistingClass('Doctrine\\Instantiator\\InstantiatorInterface'); - - $this->assertSame( - 'The provided type "Doctrine\\Instantiator\\InstantiatorInterface" is an interface, ' - . 'and can not be instantiated', - $exception->getMessage() - ); - } - - public function testFromAbstractClass() - { - $reflection = new ReflectionClass('DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset'); - $exception = InvalidArgumentException::fromAbstractClass($reflection); - - $this->assertSame( - 'The provided class "DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset" is abstract, ' - . 'and can not be instantiated', - $exception->getMessage() - ); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/UnexpectedValueExceptionTest.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/UnexpectedValueExceptionTest.php deleted file mode 100644 index 84154e73..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/UnexpectedValueExceptionTest.php +++ /dev/null @@ -1,69 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTest\Exception; - -use Doctrine\Instantiator\Exception\UnexpectedValueException; -use Exception; -use PHPUnit_Framework_TestCase; -use ReflectionClass; - -/** - * Tests for {@see \Doctrine\Instantiator\Exception\UnexpectedValueException} - * - * @author Marco Pivetta - * - * @covers \Doctrine\Instantiator\Exception\UnexpectedValueException - */ -class UnexpectedValueExceptionTest extends PHPUnit_Framework_TestCase -{ - public function testFromSerializationTriggeredException() - { - $reflectionClass = new ReflectionClass($this); - $previous = new Exception(); - $exception = UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $previous); - - $this->assertInstanceOf('Doctrine\\Instantiator\\Exception\\UnexpectedValueException', $exception); - $this->assertSame($previous, $exception->getPrevious()); - $this->assertSame( - 'An exception was raised while trying to instantiate an instance of "' - . __CLASS__ . '" via un-serialization', - $exception->getMessage() - ); - } - - public function testFromUncleanUnSerialization() - { - $reflection = new ReflectionClass('DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset'); - $exception = UnexpectedValueException::fromUncleanUnSerialization($reflection, 'foo', 123, 'bar', 456); - - $this->assertInstanceOf('Doctrine\\Instantiator\\Exception\\UnexpectedValueException', $exception); - $this->assertSame( - 'Could not produce an instance of "DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset" ' - . 'via un-serialization, since an error was triggered in file "bar" at line "456"', - $exception->getMessage() - ); - - $previous = $exception->getPrevious(); - - $this->assertInstanceOf('Exception', $previous); - $this->assertSame('foo', $previous->getMessage()); - $this->assertSame(123, $previous->getCode()); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php deleted file mode 100644 index 0a2cb931..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php +++ /dev/null @@ -1,219 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTest; - -use Doctrine\Instantiator\Exception\UnexpectedValueException; -use Doctrine\Instantiator\Instantiator; -use PHPUnit_Framework_TestCase; -use ReflectionClass; - -/** - * Tests for {@see \Doctrine\Instantiator\Instantiator} - * - * @author Marco Pivetta - * - * @covers \Doctrine\Instantiator\Instantiator - */ -class InstantiatorTest extends PHPUnit_Framework_TestCase -{ - /** - * @var Instantiator - */ - private $instantiator; - - /** - * {@inheritDoc} - */ - protected function setUp() - { - $this->instantiator = new Instantiator(); - } - - /** - * @param string $className - * - * @dataProvider getInstantiableClasses - */ - public function testCanInstantiate($className) - { - $this->assertInstanceOf($className, $this->instantiator->instantiate($className)); - } - - /** - * @param string $className - * - * @dataProvider getInstantiableClasses - */ - public function testInstantiatesSeparateInstances($className) - { - $instance1 = $this->instantiator->instantiate($className); - $instance2 = $this->instantiator->instantiate($className); - - $this->assertEquals($instance1, $instance2); - $this->assertNotSame($instance1, $instance2); - } - - public function testExceptionOnUnSerializationException() - { - if (defined('HHVM_VERSION')) { - $this->markTestSkipped( - 'As of facebook/hhvm#3432, HHVM has no PDORow, and therefore ' - . ' no internal final classes that cannot be instantiated' - ); - } - - $className = 'DoctrineTest\\InstantiatorTestAsset\\UnserializeExceptionArrayObjectAsset'; - - if (\PHP_VERSION_ID >= 50600) { - $className = 'PDORow'; - } - - if (\PHP_VERSION_ID === 50429 || \PHP_VERSION_ID === 50513) { - $className = 'DoctrineTest\\InstantiatorTestAsset\\SerializableArrayObjectAsset'; - } - - $this->setExpectedException('Doctrine\\Instantiator\\Exception\\UnexpectedValueException'); - - $this->instantiator->instantiate($className); - } - - public function testNoticeOnUnSerializationException() - { - if (\PHP_VERSION_ID >= 50600) { - $this->markTestSkipped( - 'PHP 5.6 supports `ReflectionClass#newInstanceWithoutConstructor()` for some internal classes' - ); - } - - try { - $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\WakeUpNoticesAsset'); - - $this->fail('No exception was raised'); - } catch (UnexpectedValueException $exception) { - $wakeUpNoticesReflection = new ReflectionClass('DoctrineTest\\InstantiatorTestAsset\\WakeUpNoticesAsset'); - $previous = $exception->getPrevious(); - - $this->assertInstanceOf('Exception', $previous); - - // in PHP 5.4.29 and PHP 5.5.13, this case is not a notice, but an exception being thrown - if (! (\PHP_VERSION_ID === 50429 || \PHP_VERSION_ID === 50513)) { - $this->assertSame( - 'Could not produce an instance of "DoctrineTest\\InstantiatorTestAsset\WakeUpNoticesAsset" ' - . 'via un-serialization, since an error was triggered in file "' - . $wakeUpNoticesReflection->getFileName() . '" at line "36"', - $exception->getMessage() - ); - - $this->assertSame('Something went bananas while un-serializing this instance', $previous->getMessage()); - $this->assertSame(\E_USER_NOTICE, $previous->getCode()); - } - } - } - - /** - * @param string $invalidClassName - * - * @dataProvider getInvalidClassNames - */ - public function testInstantiationFromNonExistingClass($invalidClassName) - { - $this->setExpectedException('Doctrine\\Instantiator\\Exception\\InvalidArgumentException'); - - $this->instantiator->instantiate($invalidClassName); - } - - public function testInstancesAreNotCloned() - { - $className = 'TemporaryClass' . uniqid(); - - eval('namespace ' . __NAMESPACE__ . '; class ' . $className . '{}'); - - $instance = $this->instantiator->instantiate(__NAMESPACE__ . '\\' . $className); - - $instance->foo = 'bar'; - - $instance2 = $this->instantiator->instantiate(__NAMESPACE__ . '\\' . $className); - - $this->assertObjectNotHasAttribute('foo', $instance2); - } - - /** - * Provides a list of instantiable classes (existing) - * - * @return string[][] - */ - public function getInstantiableClasses() - { - $classes = array( - array('stdClass'), - array(__CLASS__), - array('Doctrine\\Instantiator\\Instantiator'), - array('Exception'), - array('PharException'), - array('DoctrineTest\\InstantiatorTestAsset\\SimpleSerializableAsset'), - array('DoctrineTest\\InstantiatorTestAsset\\ExceptionAsset'), - array('DoctrineTest\\InstantiatorTestAsset\\FinalExceptionAsset'), - array('DoctrineTest\\InstantiatorTestAsset\\PharExceptionAsset'), - array('DoctrineTest\\InstantiatorTestAsset\\UnCloneableAsset'), - array('DoctrineTest\\InstantiatorTestAsset\\XMLReaderAsset'), - ); - - if (\PHP_VERSION_ID === 50429 || \PHP_VERSION_ID === 50513) { - return $classes; - } - - $classes = array_merge( - $classes, - array( - array('PharException'), - array('ArrayObject'), - array('DoctrineTest\\InstantiatorTestAsset\\ArrayObjectAsset'), - array('DoctrineTest\\InstantiatorTestAsset\\SerializableArrayObjectAsset'), - ) - ); - - if (\PHP_VERSION_ID >= 50600) { - $classes[] = array('DoctrineTest\\InstantiatorTestAsset\\WakeUpNoticesAsset'); - $classes[] = array('DoctrineTest\\InstantiatorTestAsset\\UnserializeExceptionArrayObjectAsset'); - } - - return $classes; - } - - /** - * Provides a list of instantiable classes (existing) - * - * @return string[][] - */ - public function getInvalidClassNames() - { - $classNames = array( - array(__CLASS__ . uniqid()), - array('Doctrine\\Instantiator\\InstantiatorInterface'), - array('DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset'), - ); - - if (\PHP_VERSION_ID >= 50400) { - $classNames[] = array('DoctrineTest\\InstantiatorTestAsset\\SimpleTraitAsset'); - } - - return $classNames; - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php deleted file mode 100644 index fbe28ddd..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php +++ /dev/null @@ -1,29 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -/** - * A simple asset for an abstract class - * - * @author Marco Pivetta - */ -abstract class AbstractClassAsset -{ -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ArrayObjectAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ArrayObjectAsset.php deleted file mode 100644 index 56146d70..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ArrayObjectAsset.php +++ /dev/null @@ -1,41 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use ArrayObject; -use BadMethodCallException; - -/** - * Test asset that extends an internal PHP class - * - * @author Marco Pivetta - */ -class ArrayObjectAsset extends ArrayObject -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ExceptionAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ExceptionAsset.php deleted file mode 100644 index 43bbe46b..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ExceptionAsset.php +++ /dev/null @@ -1,41 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use BadMethodCallException; -use Exception; - -/** - * Test asset that extends an internal PHP base exception - * - * @author Marco Pivetta - */ -class ExceptionAsset extends Exception -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/FinalExceptionAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/FinalExceptionAsset.php deleted file mode 100644 index 7d268f5b..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/FinalExceptionAsset.php +++ /dev/null @@ -1,41 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use BadMethodCallException; -use Exception; - -/** - * Test asset that extends an internal PHP base exception - * - * @author Marco Pivetta - */ -final class FinalExceptionAsset extends Exception -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharAsset.php deleted file mode 100644 index 553fd561..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharAsset.php +++ /dev/null @@ -1,41 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use BadMethodCallException; -use Phar; - -/** - * Test asset that extends an internal PHP class - * - * @author Marco Pivetta - */ -class PharAsset extends Phar -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharExceptionAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharExceptionAsset.php deleted file mode 100644 index 42bf73e7..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharExceptionAsset.php +++ /dev/null @@ -1,44 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use BadMethodCallException; -use PharException; - -/** - * Test asset that extends an internal PHP class - * This class should be serializable without problems - * and without getting the "Erroneous data format for unserializing" - * error - * - * @author Marco Pivetta - */ -class PharExceptionAsset extends PharException -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SerializableArrayObjectAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SerializableArrayObjectAsset.php deleted file mode 100644 index ba19aaf6..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SerializableArrayObjectAsset.php +++ /dev/null @@ -1,62 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use ArrayObject; -use BadMethodCallException; -use Serializable; - -/** - * Serializable test asset that also extends an internal class - * - * @author Marco Pivetta - */ -class SerializableArrayObjectAsset extends ArrayObject implements Serializable -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } - - /** - * {@inheritDoc} - */ - public function serialize() - { - return ''; - } - - /** - * {@inheritDoc} - * - * Should not be called - * - * @throws BadMethodCallException - */ - public function unserialize($serialized) - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleSerializableAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleSerializableAsset.php deleted file mode 100644 index 39f84a6c..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleSerializableAsset.php +++ /dev/null @@ -1,61 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use BadMethodCallException; -use Serializable; - -/** - * Base serializable test asset - * - * @author Marco Pivetta - */ -class SimpleSerializableAsset implements Serializable -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } - - /** - * {@inheritDoc} - */ - public function serialize() - { - return ''; - } - - /** - * {@inheritDoc} - * - * Should not be called - * - * @throws BadMethodCallException - */ - public function unserialize($serialized) - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleTraitAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleTraitAsset.php deleted file mode 100644 index 04e78069..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleTraitAsset.php +++ /dev/null @@ -1,29 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -/** - * A simple trait with no attached logic - * - * @author Marco Pivetta - */ -trait SimpleTraitAsset -{ -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnCloneableAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnCloneableAsset.php deleted file mode 100644 index 7d03bdab..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnCloneableAsset.php +++ /dev/null @@ -1,50 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use BadMethodCallException; - -/** - * Base un-cloneable asset - * - * @author Marco Pivetta - */ -class UnCloneableAsset -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } - - /** - * Magic `__clone` - should not be invoked - * - * @throws BadMethodCallException - */ - public function __clone() - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnserializeExceptionArrayObjectAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnserializeExceptionArrayObjectAsset.php deleted file mode 100644 index b348a405..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnserializeExceptionArrayObjectAsset.php +++ /dev/null @@ -1,39 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use ArrayObject; -use BadMethodCallException; - -/** - * A simple asset for an abstract class - * - * @author Marco Pivetta - */ -class UnserializeExceptionArrayObjectAsset extends ArrayObject -{ - /** - * {@inheritDoc} - */ - public function __wakeup() - { - throw new BadMethodCallException(); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/WakeUpNoticesAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/WakeUpNoticesAsset.php deleted file mode 100644 index 18dc6711..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/WakeUpNoticesAsset.php +++ /dev/null @@ -1,38 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use ArrayObject; - -/** - * A simple asset for an abstract class - * - * @author Marco Pivetta - */ -class WakeUpNoticesAsset extends ArrayObject -{ - /** - * Wakeup method called after un-serialization - */ - public function __wakeup() - { - trigger_error('Something went bananas while un-serializing this instance'); - } -} diff --git a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/XMLReaderAsset.php b/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/XMLReaderAsset.php deleted file mode 100644 index 39ee6992..00000000 --- a/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/XMLReaderAsset.php +++ /dev/null @@ -1,41 +0,0 @@ -. - */ - -namespace DoctrineTest\InstantiatorTestAsset; - -use BadMethodCallException; -use XMLReader; - -/** - * Test asset that extends an internal PHP class - * - * @author Dave Marshall - */ -class XMLReaderAsset extends XMLReader -{ - /** - * Constructor - should not be called - * - * @throws BadMethodCallException - */ - public function __construct() - { - throw new BadMethodCallException('Not supposed to be called!'); - } -} diff --git a/vendor/doctrine/lexer/LICENSE b/vendor/doctrine/lexer/LICENSE deleted file mode 100644 index 5e781fce..00000000 --- a/vendor/doctrine/lexer/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2013 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/lexer/README.md b/vendor/doctrine/lexer/README.md deleted file mode 100644 index 66f44308..00000000 --- a/vendor/doctrine/lexer/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Doctrine Lexer - -Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers. - -This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL). diff --git a/vendor/doctrine/lexer/composer.json b/vendor/doctrine/lexer/composer.json deleted file mode 100644 index 8cd694c6..00000000 --- a/vendor/doctrine/lexer/composer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "doctrine/lexer", - "type": "library", - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "keywords": ["lexer", "parser"], - "homepage": "http://www.doctrine-project.org", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} - ], - "require": { - "php": ">=5.3.2" - }, - "autoload": { - "psr-0": { "Doctrine\\Common\\Lexer\\": "lib/" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php deleted file mode 100644 index 399a5523..00000000 --- a/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php +++ /dev/null @@ -1,327 +0,0 @@ -. - */ - -namespace Doctrine\Common\Lexer; - -/** - * Base class for writing simple lexers, i.e. for creating small DSLs. - * - * @since 2.0 - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - */ -abstract class AbstractLexer -{ - /** - * Lexer original input string. - * - * @var string - */ - private $input; - - /** - * Array of scanned tokens. - * - * Each token is an associative array containing three items: - * - 'value' : the string value of the token in the input string - * - 'type' : the type of the token (identifier, numeric, string, input - * parameter, none) - * - 'position' : the position of the token in the input string - * - * @var array - */ - private $tokens = array(); - - /** - * Current lexer position in input string. - * - * @var integer - */ - private $position = 0; - - /** - * Current peek of current lexer position. - * - * @var integer - */ - private $peek = 0; - - /** - * The next token in the input. - * - * @var array - */ - public $lookahead; - - /** - * The last matched/seen token. - * - * @var array - */ - public $token; - - /** - * Sets the input data to be tokenized. - * - * The Lexer is immediately reset and the new input tokenized. - * Any unprocessed tokens from any previous input are lost. - * - * @param string $input The input to be tokenized. - * - * @return void - */ - public function setInput($input) - { - $this->input = $input; - $this->tokens = array(); - - $this->reset(); - $this->scan($input); - } - - /** - * Resets the lexer. - * - * @return void - */ - public function reset() - { - $this->lookahead = null; - $this->token = null; - $this->peek = 0; - $this->position = 0; - } - - /** - * Resets the peek pointer to 0. - * - * @return void - */ - public function resetPeek() - { - $this->peek = 0; - } - - /** - * Resets the lexer position on the input to the given position. - * - * @param integer $position Position to place the lexical scanner. - * - * @return void - */ - public function resetPosition($position = 0) - { - $this->position = $position; - } - - /** - * Retrieve the original lexer's input until a given position. - * - * @param integer $position - * - * @return string - */ - public function getInputUntilPosition($position) - { - return substr($this->input, 0, $position); - } - - /** - * Checks whether a given token matches the current lookahead. - * - * @param integer|string $token - * - * @return boolean - */ - public function isNextToken($token) - { - return null !== $this->lookahead && $this->lookahead['type'] === $token; - } - - /** - * Checks whether any of the given tokens matches the current lookahead. - * - * @param array $tokens - * - * @return boolean - */ - public function isNextTokenAny(array $tokens) - { - return null !== $this->lookahead && in_array($this->lookahead['type'], $tokens, true); - } - - /** - * Moves to the next token in the input string. - * - * @return boolean - */ - public function moveNext() - { - $this->peek = 0; - $this->token = $this->lookahead; - $this->lookahead = (isset($this->tokens[$this->position])) - ? $this->tokens[$this->position++] : null; - - return $this->lookahead !== null; - } - - /** - * Tells the lexer to skip input tokens until it sees a token with the given value. - * - * @param string $type The token type to skip until. - * - * @return void - */ - public function skipUntil($type) - { - while ($this->lookahead !== null && $this->lookahead['type'] !== $type) { - $this->moveNext(); - } - } - - /** - * Checks if given value is identical to the given token. - * - * @param mixed $value - * @param integer $token - * - * @return boolean - */ - public function isA($value, $token) - { - return $this->getType($value) === $token; - } - - /** - * Moves the lookahead token forward. - * - * @return array|null The next token or NULL if there are no more tokens ahead. - */ - public function peek() - { - if (isset($this->tokens[$this->position + $this->peek])) { - return $this->tokens[$this->position + $this->peek++]; - } else { - return null; - } - } - - /** - * Peeks at the next token, returns it and immediately resets the peek. - * - * @return array|null The next token or NULL if there are no more tokens ahead. - */ - public function glimpse() - { - $peek = $this->peek(); - $this->peek = 0; - return $peek; - } - - /** - * Scans the input string for tokens. - * - * @param string $input A query string. - * - * @return void - */ - protected function scan($input) - { - static $regex; - - if ( ! isset($regex)) { - $regex = sprintf( - '/(%s)|%s/%s', - implode(')|(', $this->getCatchablePatterns()), - implode('|', $this->getNonCatchablePatterns()), - $this->getModifiers() - ); - } - - $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; - $matches = preg_split($regex, $input, -1, $flags); - - foreach ($matches as $match) { - // Must remain before 'value' assignment since it can change content - $type = $this->getType($match[0]); - - $this->tokens[] = array( - 'value' => $match[0], - 'type' => $type, - 'position' => $match[1], - ); - } - } - - /** - * Gets the literal for a given token. - * - * @param integer $token - * - * @return string - */ - public function getLiteral($token) - { - $className = get_class($this); - $reflClass = new \ReflectionClass($className); - $constants = $reflClass->getConstants(); - - foreach ($constants as $name => $value) { - if ($value === $token) { - return $className . '::' . $name; - } - } - - return $token; - } - - /** - * Regex modifiers - * - * @return string - */ - protected function getModifiers() - { - return 'i'; - } - - /** - * Lexical catchable patterns. - * - * @return array - */ - abstract protected function getCatchablePatterns(); - - /** - * Lexical non-catchable patterns. - * - * @return array - */ - abstract protected function getNonCatchablePatterns(); - - /** - * Retrieve token type. Also processes the token value if necessary. - * - * @param string $value - * - * @return integer - */ - abstract protected function getType(&$value); -} diff --git a/vendor/egulias/email-validator/EmailValidator/EmailLexer.php b/vendor/egulias/email-validator/EmailValidator/EmailLexer.php deleted file mode 100644 index 882c9681..00000000 --- a/vendor/egulias/email-validator/EmailValidator/EmailLexer.php +++ /dev/null @@ -1,221 +0,0 @@ - self::S_OPENPARENTHESIS, - ')' => self::S_CLOSEPARENTHESIS, - '<' => self::S_LOWERTHAN, - '>' => self::S_GREATERTHAN, - '[' => self::S_OPENBRACKET, - ']' => self::S_CLOSEBRACKET, - ':' => self::S_COLON, - ';' => self::S_SEMICOLON, - '@' => self::S_AT, - '\\' => self::S_BACKSLASH, - '/' => self::S_SLASH, - ',' => self::S_COMMA, - '.' => self::S_DOT, - '"' => self::S_DQUOTE, - '-' => self::S_HYPHEN, - '::' => self::S_DOUBLECOLON, - ' ' => self::S_SP, - "\t" => self::S_HTAB, - "\r" => self::S_CR, - "\n" => self::S_LF, - "\r\n" => self::CRLF, - 'IPv6' => self::S_IPV6TAG, - '{' => self::S_OPENQBRACKET, - '}' => self::S_CLOSEQBRACKET, - '' => self::S_EMPTY, - '\0' => self::C_NUL, - ); - - protected $hasInvalidTokens = false; - - protected $previous; - - public function reset() - { - $this->hasInvalidTokens = false; - parent::reset(); - } - - public function hasInvalidTokens() - { - return $this->hasInvalidTokens; - } - - /** - * @param $type - * @throws \UnexpectedValueException - * @return boolean - */ - public function find($type) - { - $search = clone $this; - $search->skipUntil($type); - - if (!$search->lookahead) { - throw new \UnexpectedValueException($type . ' not found'); - } - return true; - } - - /** - * getPrevious - * - * @return array token - */ - public function getPrevious() - { - return $this->previous; - } - - /** - * moveNext - * - * @return boolean - */ - public function moveNext() - { - $this->previous = $this->token; - - return parent::moveNext(); - } - - /** - * Lexical catchable patterns. - * - * @return string[] - */ - protected function getCatchablePatterns() - { - return array( - '[a-zA-Z_]+[46]?', //ASCII and domain literal - '[^\x00-\x7F]', //UTF-8 - '[0-9]+', - '\r\n', - '::', - '\s+?', - '.', - ); - } - - /** - * Lexical non-catchable patterns. - * - * @return string[] - */ - protected function getNonCatchablePatterns() - { - return array('[\xA0-\xff]+'); - } - - /** - * Retrieve token type. Also processes the token value if necessary. - * - * @param string $value - * @throws \InvalidArgumentException - * @return integer - */ - protected function getType(&$value) - { - if ($this->isNullType($value)) { - return self::C_NUL; - } - - if ($this->isValid($value)) { - return $this->charValue[$value]; - } - - if ($this->isUTF8Invalid($value)) { - $this->hasInvalidTokens = true; - return self::INVALID; - } - - return self::GENERIC; - } - - protected function isValid($value) - { - if (isset($this->charValue[$value])) { - return true; - } - - return false; - } - - /** - * @param $value - * @return bool - */ - protected function isNullType($value) - { - if ($value === "\0") { - return true; - } - - return false; - } - - /** - * @param $value - * @return bool - */ - protected function isUTF8Invalid($value) - { - if (preg_match('/\p{Cc}+/u', $value)) { - return true; - } - - return false; - } - - protected function getModifiers() - { - return 'iu'; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/EmailParser.php b/vendor/egulias/email-validator/EmailValidator/EmailParser.php deleted file mode 100644 index d0627d82..00000000 --- a/vendor/egulias/email-validator/EmailValidator/EmailParser.php +++ /dev/null @@ -1,104 +0,0 @@ - - */ -class EmailParser -{ - const EMAIL_MAX_LENGTH = 254; - - protected $warnings; - protected $domainPart = ''; - protected $localPart = ''; - protected $lexer; - protected $localPartParser; - protected $domainPartParser; - - public function __construct(EmailLexer $lexer) - { - $this->lexer = $lexer; - $this->localPartParser = new LocalPart($this->lexer); - $this->domainPartParser = new DomainPart($this->lexer); - $this->warnings = new \SplObjectStorage(); - } - - /** - * @param $str - * @return array - */ - public function parse($str) - { - $this->lexer->setInput($str); - - if (!$this->hasAtToken()) { - throw new NoLocalPart(); - } - - - $this->localPartParser->parse($str); - $this->domainPartParser->parse($str); - - $this->setParts($str); - - if ($this->lexer->hasInvalidTokens()) { - throw new ExpectingATEXT(); - } - - return array('local' => $this->localPart, 'domain' => $this->domainPart); - } - - public function getWarnings() - { - $localPartWarnings = $this->localPartParser->getWarnings(); - $domainPartWarnings = $this->domainPartParser->getWarnings(); - $this->warnings = array_merge($localPartWarnings, $domainPartWarnings); - - $this->addLongEmailWarning($this->localPart, $this->domainPart); - - return $this->warnings; - } - - public function getParsedDomainPart() - { - return $this->domainPart; - } - - protected function setParts($email) - { - $parts = explode('@', $email); - $this->domainPart = $this->domainPartParser->getDomainPart(); - $this->localPart = $parts[0]; - } - - protected function hasAtToken() - { - $this->lexer->moveNext(); - $this->lexer->moveNext(); - if ($this->lexer->token['type'] === EmailLexer::S_AT) { - return false; - } - - return true; - } - - /** - * @param string $localPart - * @param string $parsedDomainPart - */ - protected function addLongEmailWarning($localPart, $parsedDomainPart) - { - if (strlen($localPart . '@' . $parsedDomainPart) > self::EMAIL_MAX_LENGTH) { - $this->warnings[EmailTooLong::CODE] = new EmailTooLong(); - } - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/EmailValidator.php b/vendor/egulias/email-validator/EmailValidator/EmailValidator.php deleted file mode 100644 index 44b4b93c..00000000 --- a/vendor/egulias/email-validator/EmailValidator/EmailValidator.php +++ /dev/null @@ -1,67 +0,0 @@ -lexer = new EmailLexer(); - } - - /** - * @param $email - * @param EmailValidation $emailValidation - * @return bool - */ - public function isValid($email, EmailValidation $emailValidation) - { - $isValid = $emailValidation->isValid($email, $this->lexer); - $this->warnings = $emailValidation->getWarnings(); - $this->error = $emailValidation->getError(); - - return $isValid; - } - - /** - * @return boolean - */ - public function hasWarnings() - { - return !empty($this->warnings); - } - - /** - * @return array - */ - public function getWarnings() - { - return $this->warnings; - } - - /** - * @return InvalidEmail - */ - public function getError() - { - return $this->error; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php b/vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php deleted file mode 100644 index 97f41a2c..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php +++ /dev/null @@ -1,9 +0,0 @@ -lexer->moveNext(); - - if ($this->lexer->token['type'] === EmailLexer::S_DOT) { - throw new DotAtStart(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_EMPTY) { - throw new NoDomainPart(); - } - if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) { - throw new DomainHyphened(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { - $this->warnings[DeprecatedComment::CODE] = new DeprecatedComment(); - $this->parseDomainComments(); - } - - $domain = $this->doParseDomainPart(); - - $prev = $this->lexer->getPrevious(); - $length = strlen($domain); - - if ($prev['type'] === EmailLexer::S_DOT) { - throw new DotAtEnd(); - } - if ($prev['type'] === EmailLexer::S_HYPHEN) { - throw new DomainHyphened(); - } - if ($length > self::DOMAIN_MAX_LENGTH) { - $this->warnings[DomainTooLong::CODE] = new DomainTooLong(); - } - if ($prev['type'] === EmailLexer::S_CR) { - throw new CRLFAtTheEnd(); - } - $this->domainPart = $domain; - } - - public function getDomainPart() - { - return $this->domainPart; - } - - public function checkIPV6Tag($addressLiteral, $maxGroups = 8) - { - $prev = $this->lexer->getPrevious(); - if ($prev['type'] === EmailLexer::S_COLON) { - $this->warnings[IPV6ColonEnd::CODE] = new IPV6ColonEnd(); - } - - $IPv6 = substr($addressLiteral, 5); - //Daniel Marschall's new IPv6 testing strategy - $matchesIP = explode(':', $IPv6); - $groupCount = count($matchesIP); - $colons = strpos($IPv6, '::'); - - if (count(preg_grep('/^[0-9A-Fa-f]{0,4}$/', $matchesIP, PREG_GREP_INVERT)) !== 0) { - $this->warnings[IPV6BadChar::CODE] = new IPV6BadChar(); - } - - if ($colons === false) { - // We need exactly the right number of groups - if ($groupCount !== $maxGroups) { - $this->warnings[IPV6GroupCount::CODE] = new IPV6GroupCount(); - } - return; - } - - if ($colons !== strrpos($IPv6, '::')) { - $this->warnings[IPV6DoubleColon::CODE] = new IPV6DoubleColon(); - return; - } - - if ($colons === 0 || $colons === (strlen($IPv6) - 2)) { - // RFC 4291 allows :: at the start or end of an address - //with 7 other groups in addition - ++$maxGroups; - } - - if ($groupCount > $maxGroups) { - $this->warnings[IPV6MaxGroups::CODE] = new IPV6MaxGroups(); - } elseif ($groupCount === $maxGroups) { - $this->warnings[IPV6Deprecated::CODE] = new IPV6Deprecated(); - } - } - - protected function doParseDomainPart() - { - $domain = ''; - $openedParenthesis = 0; - do { - $prev = $this->lexer->getPrevious(); - - $this->checkNotAllowedChars($this->lexer->token); - - if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { - $this->parseComments(); - $openedParenthesis += $this->getOpenedParenthesis(); - $this->lexer->moveNext(); - $tmpPrev = $this->lexer->getPrevious(); - if ($tmpPrev['type'] === EmailLexer::S_CLOSEPARENTHESIS) { - $openedParenthesis--; - } - } - if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { - if ($openedParenthesis === 0) { - throw new UnopenedComment(); - } else { - $openedParenthesis--; - } - } - - $this->checkConsecutiveDots(); - $this->checkDomainPartExceptions($prev); - - if ($this->hasBrackets()) { - $this->parseDomainLiteral(); - } - - $this->checkLabelLength($prev); - - if ($this->isFWS()) { - $this->parseFWS(); - } - - $domain .= $this->lexer->token['value']; - $this->lexer->moveNext(); - } while ($this->lexer->token); - - return $domain; - } - - private function checkNotAllowedChars($token) - { - $notAllowed = [EmailLexer::S_BACKSLASH => true, EmailLexer::S_SLASH=> true]; - if (isset($notAllowed[$token['type']])) { - throw new CharNotAllowed(); - } - } - - protected function parseDomainLiteral() - { - if ($this->lexer->isNextToken(EmailLexer::S_COLON)) { - $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart(); - } - if ($this->lexer->isNextToken(EmailLexer::S_IPV6TAG)) { - $lexer = clone $this->lexer; - $lexer->moveNext(); - if ($lexer->isNextToken(EmailLexer::S_DOUBLECOLON)) { - $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart(); - } - } - - return $this->doParseDomainLiteral(); - } - - protected function doParseDomainLiteral() - { - $IPv6TAG = false; - $addressLiteral = ''; - do { - if ($this->lexer->token['type'] === EmailLexer::C_NUL) { - throw new ExpectingDTEXT(); - } - - if ($this->lexer->token['type'] === EmailLexer::INVALID || - $this->lexer->token['type'] === EmailLexer::C_DEL || - $this->lexer->token['type'] === EmailLexer::S_LF - ) { - $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT(); - } - - if ($this->lexer->isNextTokenAny(array(EmailLexer::S_OPENQBRACKET, EmailLexer::S_OPENBRACKET))) { - throw new ExpectingDTEXT(); - } - - if ($this->lexer->isNextTokenAny( - array(EmailLexer::S_HTAB, EmailLexer::S_SP, $this->lexer->token['type'] === EmailLexer::CRLF) - )) { - $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); - $this->parseFWS(); - } - - if ($this->lexer->isNextToken(EmailLexer::S_CR)) { - throw new CRNoLF(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH) { - $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT(); - $addressLiteral .= $this->lexer->token['value']; - $this->lexer->moveNext(); - $this->validateQuotedPair(); - } - if ($this->lexer->token['type'] === EmailLexer::S_IPV6TAG) { - $IPv6TAG = true; - } - if ($this->lexer->token['type'] === EmailLexer::S_CLOSEQBRACKET) { - break; - } - - $addressLiteral .= $this->lexer->token['value']; - - } while ($this->lexer->moveNext()); - - $addressLiteral = str_replace('[', '', $addressLiteral); - $addressLiteral = $this->checkIPV4Tag($addressLiteral); - - if (false === $addressLiteral) { - return $addressLiteral; - } - - if (!$IPv6TAG) { - $this->warnings[DomainLiteral::CODE] = new DomainLiteral(); - return $addressLiteral; - } - - $this->warnings[AddressLiteral::CODE] = new AddressLiteral(); - - $this->checkIPV6Tag($addressLiteral); - - return $addressLiteral; - } - - protected function checkIPV4Tag($addressLiteral) - { - $matchesIP = array(); - - // Extract IPv4 part from the end of the address-literal (if there is one) - if (preg_match( - '/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/', - $addressLiteral, - $matchesIP - ) > 0 - ) { - $index = strrpos($addressLiteral, $matchesIP[0]); - if ($index === 0) { - $this->warnings[AddressLiteral::CODE] = new AddressLiteral(); - return false; - } - // Convert IPv4 part to IPv6 format for further testing - $addressLiteral = substr($addressLiteral, 0, $index) . '0:0'; - } - - return $addressLiteral; - } - - protected function checkDomainPartExceptions($prev) - { - $invalidDomainTokens = array( - EmailLexer::S_DQUOTE => true, - EmailLexer::S_SEMICOLON => true, - EmailLexer::S_GREATERTHAN => true, - EmailLexer::S_LOWERTHAN => true, - ); - - if (isset($invalidDomainTokens[$this->lexer->token['type']])) { - throw new ExpectingATEXT(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_COMMA) { - throw new CommaInDomain(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_AT) { - throw new ConsecutiveAt(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_OPENQBRACKET && $prev['type'] !== EmailLexer::S_AT) { - throw new ExpectingATEXT(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) { - throw new DomainHyphened(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH - && $this->lexer->isNextToken(EmailLexer::GENERIC)) { - throw new ExpectingATEXT(); - } - } - - protected function hasBrackets() - { - if ($this->lexer->token['type'] !== EmailLexer::S_OPENBRACKET) { - return false; - } - - try { - $this->lexer->find(EmailLexer::S_CLOSEBRACKET); - } catch (\RuntimeException $e) { - throw new ExpectingDomainLiteralClose(); - } - - return true; - } - - protected function checkLabelLength($prev) - { - if ($this->lexer->token['type'] === EmailLexer::S_DOT && - $prev['type'] === EmailLexer::GENERIC && - strlen($prev['value']) > 63 - ) { - $this->warnings[LabelTooLong::CODE] = new LabelTooLong(); - } - } - - protected function parseDomainComments() - { - $this->isUnclosedComment(); - while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) { - $this->warnEscaping(); - $this->lexer->moveNext(); - } - - $this->lexer->moveNext(); - if ($this->lexer->isNextToken(EmailLexer::S_DOT)) { - throw new ExpectingATEXT(); - } - } - - protected function addTLDWarnings() - { - if ($this->warnings[DomainLiteral::CODE]) { - $this->warnings[TLD::CODE] = new TLD(); - } - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php b/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php deleted file mode 100644 index 8ab16ab4..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php +++ /dev/null @@ -1,138 +0,0 @@ -lexer->token['type'] !== EmailLexer::S_AT && $this->lexer->token) { - if ($this->lexer->token['type'] === EmailLexer::S_DOT && !$this->lexer->getPrevious()) { - throw new DotAtStart(); - } - - $closingQuote = $this->checkDQUOTE($closingQuote); - if ($closingQuote && $parseDQuote) { - $parseDQuote = $this->parseDoubleQuote(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { - $this->parseComments(); - $openedParenthesis += $this->getOpenedParenthesis(); - } - if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { - if ($openedParenthesis === 0) { - throw new UnopenedComment(); - } else { - $openedParenthesis--; - } - } - - $this->checkConsecutiveDots(); - - if ($this->lexer->token['type'] === EmailLexer::S_DOT && - $this->lexer->isNextToken(EmailLexer::S_AT) - ) { - throw new DotAtEnd(); - } - - $this->warnEscaping(); - $this->isInvalidToken($this->lexer->token, $closingQuote); - - if ($this->isFWS()) { - $this->parseFWS(); - } - - $this->lexer->moveNext(); - } - - $prev = $this->lexer->getPrevious(); - if (strlen($prev['value']) > LocalTooLong::LOCAL_PART_LENGTH) { - $this->warnings[LocalTooLong::CODE] = new LocalTooLong(); - } - } - - protected function parseDoubleQuote() - { - $parseAgain = true; - $special = array( - EmailLexer::S_CR => true, - EmailLexer::S_HTAB => true, - EmailLexer::S_LF => true - ); - - $invalid = array( - EmailLexer::C_NUL => true, - EmailLexer::S_HTAB => true, - EmailLexer::S_CR => true, - EmailLexer::S_LF => true - ); - $setSpecialsWarning = true; - - $this->lexer->moveNext(); - - while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && $this->lexer->token) { - $parseAgain = false; - if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) { - $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); - $setSpecialsWarning = false; - } - if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH && $this->lexer->isNextToken(EmailLexer::S_DQUOTE)) { - $this->lexer->moveNext(); - } - - $this->lexer->moveNext(); - - if (!$this->escaped() && isset($invalid[$this->lexer->token['type']])) { - throw new ExpectingATEXT(); - } - } - - $prev = $this->lexer->getPrevious(); - - if ($prev['type'] === EmailLexer::S_BACKSLASH) { - if (!$this->checkDQUOTE(false)) { - throw new UnclosedQuotedString(); - } - } - - if (!$this->lexer->isNextToken(EmailLexer::S_AT) && $prev['type'] !== EmailLexer::S_BACKSLASH) { - throw new ExpectingAT(); - } - - return $parseAgain; - } - - protected function isInvalidToken($token, $closingQuote) - { - $forbidden = array( - EmailLexer::S_COMMA, - EmailLexer::S_CLOSEBRACKET, - EmailLexer::S_OPENBRACKET, - EmailLexer::S_GREATERTHAN, - EmailLexer::S_LOWERTHAN, - EmailLexer::S_COLON, - EmailLexer::S_SEMICOLON, - EmailLexer::INVALID - ); - - if (in_array($token['type'], $forbidden) && !$closingQuote) { - throw new ExpectingATEXT(); - } - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php b/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php deleted file mode 100644 index e5042e1a..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php +++ /dev/null @@ -1,215 +0,0 @@ -lexer = $lexer; - } - - public function getWarnings() - { - return $this->warnings; - } - - abstract public function parse($str); - - /** @return int */ - public function getOpenedParenthesis() - { - return $this->openedParenthesis; - } - - /** - * validateQuotedPair - */ - protected function validateQuotedPair() - { - if (!($this->lexer->token['type'] === EmailLexer::INVALID - || $this->lexer->token['type'] === EmailLexer::C_DEL)) { - throw new ExpectedQPair(); - } - - $this->warnings[QuotedPart::CODE] = - new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']); - } - - protected function parseComments() - { - $this->openedParenthesis = 1; - $this->isUnclosedComment(); - $this->warnings[Comment::CODE] = new Comment(); - while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) { - if ($this->lexer->isNextToken(EmailLexer::S_OPENPARENTHESIS)) { - $this->openedParenthesis++; - } - $this->warnEscaping(); - $this->lexer->moveNext(); - } - - $this->lexer->moveNext(); - if ($this->lexer->isNextTokenAny(array(EmailLexer::GENERIC, EmailLexer::S_EMPTY))) { - throw new ExpectingATEXT(); - } - - if ($this->lexer->isNextToken(EmailLexer::S_AT)) { - $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); - } - } - - protected function isUnclosedComment() - { - try { - $this->lexer->find(EmailLexer::S_CLOSEPARENTHESIS); - return true; - } catch (\RuntimeException $e) { - throw new UnclosedComment(); - } - } - - protected function parseFWS() - { - $previous = $this->lexer->getPrevious(); - - $this->checkCRLFInFWS(); - - if ($this->lexer->token['type'] === EmailLexer::S_CR) { - throw new CRNoLF(); - } - - if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] !== EmailLexer::S_AT) { - throw new AtextAfterCFWS(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::C_NUL) { - throw new ExpectingCTEXT(); - } - - if ($this->lexer->isNextToken(EmailLexer::S_AT) || $previous['type'] === EmailLexer::S_AT) { - $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); - } else { - $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); - } - } - - protected function checkConsecutiveDots() - { - if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) { - throw new ConsecutiveDot(); - } - } - - protected function isFWS() - { - if ($this->escaped()) { - return false; - } - - if ($this->lexer->token['type'] === EmailLexer::S_SP || - $this->lexer->token['type'] === EmailLexer::S_HTAB || - $this->lexer->token['type'] === EmailLexer::S_CR || - $this->lexer->token['type'] === EmailLexer::S_LF || - $this->lexer->token['type'] === EmailLexer::CRLF - ) { - return true; - } - - return false; - } - - protected function escaped() - { - $previous = $this->lexer->getPrevious(); - - if ($previous['type'] === EmailLexer::S_BACKSLASH - && - $this->lexer->token['type'] !== EmailLexer::GENERIC - ) { - return true; - } - - return false; - } - - protected function warnEscaping() - { - if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) { - return false; - } - - if ($this->lexer->isNextToken(EmailLexer::GENERIC)) { - throw new ExpectingATEXT(); - } - - if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB, EmailLexer::C_DEL))) { - return false; - } - - $this->warnings[QuotedPart::CODE] = - new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']); - return true; - - } - - protected function checkDQUOTE($hasClosingQuote) - { - if ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE) { - return $hasClosingQuote; - } - if ($hasClosingQuote) { - return $hasClosingQuote; - } - $previous = $this->lexer->getPrevious(); - if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] === EmailLexer::GENERIC) { - throw new ExpectingATEXT(); - } - - try { - $this->lexer->find(EmailLexer::S_DQUOTE); - $hasClosingQuote = true; - } catch (\Exception $e) { - throw new UnclosedQuotedString(); - } - $this->warnings[QuotedString::CODE] = new QuotedString($previous['value'], $this->lexer->token['value']); - - return $hasClosingQuote; - } - - protected function checkCRLFInFWS() - { - if ($this->lexer->token['type'] !== EmailLexer::CRLF) { - return; - } - - if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) { - throw new CRLFX2(); - } - - if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) { - throw new CRLFAtTheEnd(); - } - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php deleted file mode 100644 index ecca1dd9..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php +++ /dev/null @@ -1,61 +0,0 @@ -checkDNS($host); - } - - public function getError() - { - return $this->error; - } - - public function getWarnings() - { - return $this->warnings; - } - - protected function checkDNS($host) - { - $host = rtrim($host, '.') . '.'; - - $Aresult = true; - $MXresult = checkdnsrr($host, 'MX'); - - if (!$MXresult) { - $this->warnings[NoDNSMXRecord::CODE] = new NoDNSMXRecord(); - $Aresult = checkdnsrr($host, 'A') || checkdnsrr($host, 'AAAA'); - if (!$Aresult) { - $this->error = new NoDNSRecord(); - } - } - return $MXresult || $Aresult; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php deleted file mode 100644 index d5a015be..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php +++ /dev/null @@ -1,34 +0,0 @@ -errors = $errors; - parent::__construct(); - } - - public function getErrors() - { - return $this->errors; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php b/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php deleted file mode 100644 index 43fa42a6..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php +++ /dev/null @@ -1,110 +0,0 @@ -validations = $validations; - $this->mode = $mode; - } - - /** - * {@inheritdoc} - */ - public function isValid($email, EmailLexer $emailLexer) - { - $result = true; - $errors = []; - foreach ($this->validations as $validation) { - $emailLexer->reset(); - $result = $result && $validation->isValid($email, $emailLexer); - $this->warnings = array_merge($this->warnings, $validation->getWarnings()); - $errors = $this->addNewError($validation->getError(), $errors); - - if ($this->shouldStop($result)) { - break; - } - } - - if (!empty($errors)) { - $this->error = new MultipleErrors($errors); - } - - return $result; - } - - private function addNewError($possibleError, array $errors) - { - if (null !== $possibleError) { - $errors[] = $possibleError; - } - - return $errors; - } - - private function shouldStop($result) - { - return !$result && $this->mode === self::STOP_ON_ERROR; - } - - /** - * {@inheritdoc} - */ - public function getError() - { - return $this->error; - } - - /** - * {@inheritdoc} - */ - public function getWarnings() - { - return $this->warnings; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php deleted file mode 100644 index e4bf0cc4..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php +++ /dev/null @@ -1,41 +0,0 @@ -getWarnings())) { - return true; - } - - $this->error = new RFCWarnings(); - - return false; - } - - /** - * {@inheritdoc} - */ - public function getError() - { - return $this->error ?: parent::getError(); - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php deleted file mode 100644 index c4ffe350..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php +++ /dev/null @@ -1,49 +0,0 @@ -parser = new EmailParser($emailLexer); - try { - $this->parser->parse((string)$email); - } catch (InvalidEmail $invalid) { - $this->error = $invalid; - return false; - } - - $this->warnings = $this->parser->getWarnings(); - return true; - } - - public function getError() - { - return $this->error; - } - - public function getWarnings() - { - return $this->warnings; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php deleted file mode 100644 index dd270556..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php +++ /dev/null @@ -1,45 +0,0 @@ -setChecks(Spoofchecker::SINGLE_SCRIPT); - - if ($checker->isSuspicious($email)) { - $this->error = new SpoofEmail(); - } - - return $this->error === null; - } - - public function getError() - { - return $this->error; - } - - public function getWarnings() - { - return []; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php b/vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php deleted file mode 100644 index 77e70f7f..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Address literal in domain part'; - $this->rfcNumber = 5321; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php b/vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php deleted file mode 100644 index be43bbe6..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "Deprecated folding white space near @"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php b/vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php deleted file mode 100644 index dea3450e..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php +++ /dev/null @@ -1,13 +0,0 @@ -message = 'Folding whites space followed by folding white space'; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/Comment.php b/vendor/egulias/email-validator/EmailValidator/Warning/Comment.php deleted file mode 100644 index 704c2908..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/Comment.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "Comments found in this email"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php b/vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php deleted file mode 100644 index ad43bd7c..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php +++ /dev/null @@ -1,13 +0,0 @@ -message = 'Deprecated comments'; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php b/vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php deleted file mode 100644 index 6f36b5e2..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Domain Literal'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php b/vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php deleted file mode 100644 index 61ff17a7..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Domain is too long, exceeds 255 chars'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php b/vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php deleted file mode 100644 index 497309db..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php +++ /dev/null @@ -1,15 +0,0 @@ -message = 'Email is too long, exceeds ' . EmailParser::EMAIL_MAX_LENGTH; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php deleted file mode 100644 index ba2fcc01..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Bad char in IPV6 domain literal'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php deleted file mode 100644 index 41afa78c..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php +++ /dev/null @@ -1,14 +0,0 @@ -message = ':: found at the end of the domain literal'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php deleted file mode 100644 index 1bf754e3..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php +++ /dev/null @@ -1,14 +0,0 @@ -message = ':: found at the start of the domain literal'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php deleted file mode 100644 index d752caaa..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Deprecated form of IPV6'; - $this->rfcNumber = 5321; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php deleted file mode 100644 index 4f823949..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Double colon found after IPV6 tag'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php deleted file mode 100644 index a59d317f..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Group count is not IPV6 valid'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php deleted file mode 100644 index 936274c1..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Reached the maximum number of IPV6 groups allowed'; - $this->rfcNumber = 5321; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php b/vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php deleted file mode 100644 index daf07f40..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Label too long'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php b/vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php deleted file mode 100644 index 0d08d8b3..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php +++ /dev/null @@ -1,15 +0,0 @@ -message = 'Local part is too long, exceeds 64 chars (octets)'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php b/vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php deleted file mode 100644 index b3c21a1f..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'No MX DSN record was found for this email'; - $this->rfcNumber = 5321; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php b/vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php deleted file mode 100644 index 10f19e33..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php +++ /dev/null @@ -1,14 +0,0 @@ -rfcNumber = 5322; - $this->message = 'Obsolete DTEXT in domain literal'; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php b/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php deleted file mode 100644 index 7be9e6a3..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "Deprecated Quoted String found between $prevToken and $postToken"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php b/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php deleted file mode 100644 index e9d56e1e..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "Quoted String found between $prevToken and $postToken"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/TLD.php b/vendor/egulias/email-validator/EmailValidator/Warning/TLD.php deleted file mode 100644 index 2338b9f4..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/TLD.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "RFC5321, TLD"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php b/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php deleted file mode 100644 index ec6a365f..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php +++ /dev/null @@ -1,30 +0,0 @@ -message; - } - - public function code() - { - return self::CODE; - } - - public function RFCNumber() - { - return $this->rfcNumber; - } - - public function __toString() - { - return $this->message() . " rfc: " . $this->rfcNumber . "interal code: " . static::CODE; - } -} diff --git a/vendor/egulias/email-validator/LICENSE b/vendor/egulias/email-validator/LICENSE deleted file mode 100644 index c34d2c19..00000000 --- a/vendor/egulias/email-validator/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013-2016 Eduardo Gulias Davis - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/egulias/email-validator/README.md b/vendor/egulias/email-validator/README.md deleted file mode 100644 index fc7c89ea..00000000 --- a/vendor/egulias/email-validator/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# EmailValidator -[![Build Status](https://travis-ci.org/egulias/EmailValidator.png?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.png?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6) -============================= -With the help of [PHPStorm](https://www.jetbrains.com/phpstorm/) - -## Requirements ## - - * [Composer](https://getcomposer.org) is required for installation - * [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) validation requires that your PHP system have the [PHP Internationalization Libraries](http://php.net/manual/en/book.intl.php) (also known as PHP Intl) - -## Installation ## - -Run the command below to install via Composer - -```shell -composer require egulias/email-validator "~2.1" -``` - -## Getting Started ## -`EmailValidator`requires you to decide which (or combination of them) validation/s strategy/ies you'd like to follow for each [validation](#available-validations). - -A basic example with the RFC validation -```php -isValid("example@example.com", new RFCValidation()); //true -``` - - -### Available validations ### - -1. [RFCValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/RFCValidation.php) -2. [NoRFCWarningsValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/NoRFCWarningsValidation.php) -3. [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) -4. [SpoofCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) -5. [MultipleValidationWithAnd](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/MultipleValidationWithAnd.php) -6. [Your own validation](#how-to-extend) - -`MultipleValidationWithAnd` - -It is a validation that operates over other validations performing a logical and (&&) over the result of each validation. - -```php -isValid("example@example.com", $multipleValidations); //true -``` - -### How to extend ### - -It's easy! You just need to extend [EmailValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/EmailValidation.php) and you can use your own validation. - - -## Other Contributors ## -(You can find current contributors [here](https://github.com/egulias/EmailValidator/graphs/contributors)) - -As this is a port from another library and work, here are other people related to the previous one: - -* Ricard Clau [@ricardclau](http://github.com/ricardclau): Performance against PHP built-in filter_var -* Josepf Bielawski [@stloyd](http://github.com/stloyd): For its first re-work of Dominic's lib -* Dominic Sayers [@dominicsayers](http://github.com/dominicsayers): The original isemail function - -## License ## -Released under the MIT License attached with this code. - diff --git a/vendor/egulias/email-validator/composer.json b/vendor/egulias/email-validator/composer.json deleted file mode 100644 index d09d785d..00000000 --- a/vendor/egulias/email-validator/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "egulias/email-validator", - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "type": "Library", - "keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"], - "license": "MIT", - "authors": [ - {"name": "Eduardo Gulias Davis"} - ], - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "repositories": [ - { - "type": "git", - "url": "https://github.com/dominicsayers/isemail" - } - ], - "require": { - "php": ">= 5.5", - "doctrine/lexer": "^1.0.1" - }, - "require-dev" : { - "satooshi/php-coveralls": "^1.0.1", - "phpunit/phpunit": "^4.8.35", - "dominicsayers/isemail": "dev-master" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "EmailValidator" - } - } -} diff --git a/vendor/egulias/email-validator/composer.lock b/vendor/egulias/email-validator/composer.lock deleted file mode 100644 index 93f5f69b..00000000 --- a/vendor/egulias/email-validator/composer.lock +++ /dev/null @@ -1,1813 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "content-hash": "d260b2d1d79771429aea640320702483", - "packages": [ - { - "name": "doctrine/lexer", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "lexer", - "parser" - ], - "time": "2014-09-09T13:34:57+00:00" - } - ], - "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", - "shasum": "" - }, - "require": { - "php": ">=5.3,<8.0-DEV" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2015-06-14T21:17:01+00:00" - }, - { - "name": "dominicsayers/isemail", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/dominicsayers/isemail", - "reference": "64286085b40c39e6f39b1d23276d90635e5b3099" - }, - "type": "library", - "autoload": { - "files": [ - "is_email.php" - ] - }, - "license": [ - "BSD" - ], - "authors": [ - { - "name": "Dominic Sayers", - "email": "dominic@sayers.cc" - } - ], - "description": "Checks an email address against the following RFCs: 3696, 1123, 4291, 5321, 5322", - "homepage": "http://isemail.info", - "keywords": [ - "email", - "validation" - ], - "support": { - "source": "https://github.com/dominicsayers/isemail", - "issues": "https://github.com/dominicsayers/isemail/issues" - }, - "time": "2014-11-26T12:46:56+00:00" - }, - { - "name": "guzzle/guzzle", - "version": "v3.9.3", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle3.git", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", - "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" - }, - "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." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.9-dev" - } - }, - "autoload": { - "psr-0": { - "Guzzle": "src/", - "Guzzle\\Tests": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Guzzle Community", - "homepage": "https://github.com/guzzle/guzzle/contributors" - } - ], - "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "abandoned": "guzzlehttp/guzzle", - "time": "2015-03-18T18:23:50+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "6.2.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "d094e337976dff9d8e2424e8485872194e768662" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662", - "reference": "d094e337976dff9d8e2424e8485872194e768662", - "shasum": "" - }, - "require": { - "guzzlehttp/promises": "~1.0", - "guzzlehttp/psr7": "~1.1", - "php": ">=5.5.0" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "~4.0", - "psr/log": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "time": "2016-03-21T20:02:09+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "bb9024c526b22f3fe6ae55a561fd70653d470aa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bb9024c526b22f3fe6ae55a561fd70653d470aa8", - "reference": "bb9024c526b22f3fe6ae55a561fd70653d470aa8", - "shasum": "" - }, - "require": { - "php": ">=5.5.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "time": "2016-03-08T01:15:46+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "31382fef2889136415751badebbd1cb022a4ed72" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/31382fef2889136415751badebbd1cb022a4ed72", - "reference": "31382fef2889136415751badebbd1cb022a4ed72", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "PSR-7 message implementation", - "keywords": [ - "http", - "message", - "stream", - "uri" - ], - "time": "2016-04-13T19:56:01+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8", - "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "dflydev/markdown": "~1.0", - "erusev/parsedown": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "time": "2015-02-03T12:10:50+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.6.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3c91bdf81797d725b14cb62906f9a4ce44235972", - "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "~2.0", - "sebastian/comparator": "~1.1", - "sebastian/recursion-context": "~1.0" - }, - "require-dev": { - "phpspec/phpspec": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5.x-dev" - } - }, - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2016-02-15T07:46:21+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "2.2.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "~1.3", - "sebastian/environment": "^1.3.2", - "sebastian/version": "~1.0" - }, - "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "~4" - }, - "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.2.1", - "ext-xmlwriter": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2015-10-06T15:47:00+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2015-06-21T13:08:43+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4|~5" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2016-05-12T18:03:57+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "1.4.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2015-09-15T10:49:45+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "4.8.36", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", - "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.3.3", - "phpspec/prophecy": "^1.3.1", - "phpunit/php-code-coverage": "~2.1", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.2.2", - "sebastian/diff": "~1.2", - "sebastian/environment": "~1.3", - "sebastian/exporter": "~1.2", - "sebastian/global-state": "~1.0", - "sebastian/version": "~1.0", - "symfony/yaml": "~2.1|~3.0" - }, - "suggest": { - "phpunit/php-invoker": "~1.1" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.8.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2017-06-21T08:07:12+00:00" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "2.3.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2", - "sebastian/exporter": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "time": "2015-10-02T06:51:40+00:00" - }, - { - "name": "psr/http-message", - "version": "1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2015-05-04T20:22:00+00:00" - }, - { - "name": "psr/log", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", - "shasum": "" - }, - "type": "library", - "autoload": { - "psr-0": { - "Psr\\Log\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2012-12-21T11:40:51+00:00" - }, - { - "name": "satooshi/php-coveralls", - "version": "v1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-coveralls/php-coveralls.git", - "reference": "9c07b63acbc9709344948b6fd4f63a32b2ef4127" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/9c07b63acbc9709344948b6fd4f63a32b2ef4127", - "reference": "9c07b63acbc9709344948b6fd4f63a32b2ef4127", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-simplexml": "*", - "guzzle/guzzle": "^2.8 || ^3.0", - "php": "^5.3.3 || ^7.0", - "psr/log": "^1.0", - "symfony/config": "^2.1 || ^3.0 || ^4.0", - "symfony/console": "^2.1 || ^3.0 || ^4.0", - "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", - "symfony/yaml": "^2.0 || ^3.0 || ^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" - }, - "suggest": { - "symfony/http-kernel": "Allows Symfony integration" - }, - "bin": [ - "bin/coveralls" - ], - "type": "library", - "autoload": { - "psr-4": { - "Satooshi\\": "src/Satooshi/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kitamura Satoshi", - "email": "with.no.parachute@gmail.com", - "homepage": "https://www.facebook.com/satooshi.jp" - } - ], - "description": "PHP client library for Coveralls API", - "homepage": "https://github.com/php-coveralls/php-coveralls", - "keywords": [ - "ci", - "coverage", - "github", - "test" - ], - "time": "2017-10-14T23:15:34+00:00" - }, - { - "name": "sebastian/comparator", - "version": "1.2.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2017-01-29T09:50:25+00:00" - }, - { - "name": "sebastian/diff", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2015-12-08T07:14:41+00:00" - }, - { - "name": "sebastian/environment", - "version": "1.3.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "2292b116f43c272ff4328083096114f84ea46a56" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/2292b116f43c272ff4328083096114f84ea46a56", - "reference": "2292b116f43c272ff4328083096114f84ea46a56", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2016-05-04T07:59:13+00:00" - }, - { - "name": "sebastian/exporter", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2015-06-21T07:55:53+00:00" - }, - { - "name": "sebastian/global-state", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2015-10-12T03:26:01+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "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-11T19:50:13+00:00" - }, - { - "name": "sebastian/version", - "version": "1.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "shasum": "" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-06-21T13:59:46+00:00" - }, - { - "name": "symfony/config", - "version": "v3.0.6", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "24f155da1ff180df8e15e34a8f6e2f8a0eadefa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/24f155da1ff180df8e15e34a8f6e2f8a0eadefa8", - "reference": "24f155da1ff180df8e15e34a8f6e2f8a0eadefa8", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/filesystem": "~2.8|~3.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2016-04-20T18:53:54+00:00" - }, - { - "name": "symfony/console", - "version": "v3.0.6", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "34a214710e0714b6efcf40ba3cd1e31373a97820" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/34a214710e0714b6efcf40ba3cd1e31373a97820", - "reference": "34a214710e0714b6efcf40ba3cd1e31373a97820", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2016-04-28T09:48:42+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v2.8.30", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b59aacf238fadda50d612c9de73b74751872a903" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b59aacf238fadda50d612c9de73b74751872a903", - "reference": "b59aacf238fadda50d612c9de73b74751872a903", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.6|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2017-11-05T15:25:56+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v3.0.6", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "74fec3511b62cb934b64bce1d96f06fffa4beafd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/74fec3511b62cb934b64bce1d96f06fffa4beafd", - "reference": "74fec3511b62cb934b64bce1d96f06fffa4beafd", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2016-04-12T18:09:53+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "1289d16209491b584839022f29257ad859b8532d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d", - "reference": "1289d16209491b584839022f29257ad859b8532d", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2016-01-20T09:13:37+00:00" - }, - { - "name": "symfony/stopwatch", - "version": "v3.0.6", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "6015187088421e9499d8f8316bdb396f8b806c06" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6015187088421e9499d8f8316bdb396f8b806c06", - "reference": "6015187088421e9499d8f8316bdb396f8b806c06", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Stopwatch Component", - "homepage": "https://symfony.com", - "time": "2016-03-04T07:55:57+00:00" - }, - { - "name": "symfony/yaml", - "version": "v3.0.6", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "0047c8366744a16de7516622c5b7355336afae96" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/0047c8366744a16de7516622c5b7355336afae96", - "reference": "0047c8366744a16de7516622c5b7355336afae96", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2016-03-04T07:55:57+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "dominicsayers/isemail": 20 - }, - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">= 5.5" - }, - "platform-dev": [] -} diff --git a/vendor/egulias/email-validator/phpunit.xml.dist b/vendor/egulias/email-validator/phpunit.xml.dist deleted file mode 100644 index b0812f97..00000000 --- a/vendor/egulias/email-validator/phpunit.xml.dist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - ./Tests/EmailValidator - ./vendor/ - - - - - - ./vendor - - - diff --git a/vendor/erusev/parsedown/LICENSE.txt b/vendor/erusev/parsedown/LICENSE.txt deleted file mode 100644 index baca86f5..00000000 --- a/vendor/erusev/parsedown/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Emanuil Rusev, erusev.com - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/vendor/erusev/parsedown/Parsedown.php b/vendor/erusev/parsedown/Parsedown.php deleted file mode 100644 index f5dd0fa1..00000000 --- a/vendor/erusev/parsedown/Parsedown.php +++ /dev/null @@ -1,1548 +0,0 @@ -DefinitionData = array(); - - # standardize line breaks - $text = str_replace(array("\r\n", "\r"), "\n", $text); - - # remove surrounding line breaks - $text = trim($text, "\n"); - - # split text into lines - $lines = explode("\n", $text); - - # iterate through lines to identify blocks - $markup = $this->lines($lines); - - # trim line breaks - $markup = trim($markup, "\n"); - - return $markup; - } - - # - # Setters - # - - function setBreaksEnabled($breaksEnabled) - { - $this->breaksEnabled = $breaksEnabled; - - return $this; - } - - protected $breaksEnabled; - - function setMarkupEscaped($markupEscaped) - { - $this->markupEscaped = $markupEscaped; - - return $this; - } - - protected $markupEscaped; - - function setUrlsLinked($urlsLinked) - { - $this->urlsLinked = $urlsLinked; - - return $this; - } - - protected $urlsLinked = true; - - # - # Lines - # - - protected $BlockTypes = array( - '#' => array('Header'), - '*' => array('Rule', 'List'), - '+' => array('List'), - '-' => array('SetextHeader', 'Table', 'Rule', 'List'), - '0' => array('List'), - '1' => array('List'), - '2' => array('List'), - '3' => array('List'), - '4' => array('List'), - '5' => array('List'), - '6' => array('List'), - '7' => array('List'), - '8' => array('List'), - '9' => array('List'), - ':' => array('Table'), - '<' => array('Comment', 'Markup'), - '=' => array('SetextHeader'), - '>' => array('Quote'), - '[' => array('Reference'), - '_' => array('Rule'), - '`' => array('FencedCode'), - '|' => array('Table'), - '~' => array('FencedCode'), - ); - - # ~ - - protected $unmarkedBlockTypes = array( - 'Code', - ); - - # - # Blocks - # - - protected function lines(array $lines) - { - $CurrentBlock = null; - - foreach ($lines as $line) - { - if (chop($line) === '') - { - if (isset($CurrentBlock)) - { - $CurrentBlock['interrupted'] = true; - } - - continue; - } - - if (strpos($line, "\t") !== false) - { - $parts = explode("\t", $line); - - $line = $parts[0]; - - unset($parts[0]); - - foreach ($parts as $part) - { - $shortage = 4 - mb_strlen($line, 'utf-8') % 4; - - $line .= str_repeat(' ', $shortage); - $line .= $part; - } - } - - $indent = 0; - - while (isset($line[$indent]) and $line[$indent] === ' ') - { - $indent ++; - } - - $text = $indent > 0 ? substr($line, $indent) : $line; - - # ~ - - $Line = array('body' => $line, 'indent' => $indent, 'text' => $text); - - # ~ - - if (isset($CurrentBlock['continuable'])) - { - $Block = $this->{'block'.$CurrentBlock['type'].'Continue'}($Line, $CurrentBlock); - - if (isset($Block)) - { - $CurrentBlock = $Block; - - continue; - } - else - { - if ($this->isBlockCompletable($CurrentBlock['type'])) - { - $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); - } - } - } - - # ~ - - $marker = $text[0]; - - # ~ - - $blockTypes = $this->unmarkedBlockTypes; - - if (isset($this->BlockTypes[$marker])) - { - foreach ($this->BlockTypes[$marker] as $blockType) - { - $blockTypes []= $blockType; - } - } - - # - # ~ - - foreach ($blockTypes as $blockType) - { - $Block = $this->{'block'.$blockType}($Line, $CurrentBlock); - - if (isset($Block)) - { - $Block['type'] = $blockType; - - if ( ! isset($Block['identified'])) - { - $Blocks []= $CurrentBlock; - - $Block['identified'] = true; - } - - if ($this->isBlockContinuable($blockType)) - { - $Block['continuable'] = true; - } - - $CurrentBlock = $Block; - - continue 2; - } - } - - # ~ - - if (isset($CurrentBlock) and ! isset($CurrentBlock['type']) and ! isset($CurrentBlock['interrupted'])) - { - $CurrentBlock['element']['text'] .= "\n".$text; - } - else - { - $Blocks []= $CurrentBlock; - - $CurrentBlock = $this->paragraph($Line); - - $CurrentBlock['identified'] = true; - } - } - - # ~ - - if (isset($CurrentBlock['continuable']) and $this->isBlockCompletable($CurrentBlock['type'])) - { - $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); - } - - # ~ - - $Blocks []= $CurrentBlock; - - unset($Blocks[0]); - - # ~ - - $markup = ''; - - foreach ($Blocks as $Block) - { - if (isset($Block['hidden'])) - { - continue; - } - - $markup .= "\n"; - $markup .= isset($Block['markup']) ? $Block['markup'] : $this->element($Block['element']); - } - - $markup .= "\n"; - - # ~ - - return $markup; - } - - protected function isBlockContinuable($Type) - { - return method_exists($this, 'block'.$Type.'Continue'); - } - - protected function isBlockCompletable($Type) - { - return method_exists($this, 'block'.$Type.'Complete'); - } - - # - # Code - - protected function blockCode($Line, $Block = null) - { - if (isset($Block) and ! isset($Block['type']) and ! isset($Block['interrupted'])) - { - return; - } - - if ($Line['indent'] >= 4) - { - $text = substr($Line['body'], 4); - - $Block = array( - 'element' => array( - 'name' => 'pre', - 'handler' => 'element', - 'text' => array( - 'name' => 'code', - 'text' => $text, - ), - ), - ); - - return $Block; - } - } - - protected function blockCodeContinue($Line, $Block) - { - if ($Line['indent'] >= 4) - { - if (isset($Block['interrupted'])) - { - $Block['element']['text']['text'] .= "\n"; - - unset($Block['interrupted']); - } - - $Block['element']['text']['text'] .= "\n"; - - $text = substr($Line['body'], 4); - - $Block['element']['text']['text'] .= $text; - - return $Block; - } - } - - protected function blockCodeComplete($Block) - { - $text = $Block['element']['text']['text']; - - $text = htmlspecialchars($text, ENT_NOQUOTES, 'UTF-8'); - - $Block['element']['text']['text'] = $text; - - return $Block; - } - - # - # Comment - - protected function blockComment($Line) - { - if ($this->markupEscaped) - { - return; - } - - if (isset($Line['text'][3]) and $Line['text'][3] === '-' and $Line['text'][2] === '-' and $Line['text'][1] === '!') - { - $Block = array( - 'markup' => $Line['body'], - ); - - if (preg_match('/-->$/', $Line['text'])) - { - $Block['closed'] = true; - } - - return $Block; - } - } - - protected function blockCommentContinue($Line, array $Block) - { - if (isset($Block['closed'])) - { - return; - } - - $Block['markup'] .= "\n" . $Line['body']; - - if (preg_match('/-->$/', $Line['text'])) - { - $Block['closed'] = true; - } - - return $Block; - } - - # - # Fenced Code - - protected function blockFencedCode($Line) - { - if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([\w-]+)?[ ]*$/', $Line['text'], $matches)) - { - $Element = array( - 'name' => 'code', - 'text' => '', - ); - - if (isset($matches[1])) - { - $class = 'language-'.$matches[1]; - - $Element['attributes'] = array( - 'class' => $class, - ); - } - - $Block = array( - 'char' => $Line['text'][0], - 'element' => array( - 'name' => 'pre', - 'handler' => 'element', - 'text' => $Element, - ), - ); - - return $Block; - } - } - - protected function blockFencedCodeContinue($Line, $Block) - { - if (isset($Block['complete'])) - { - return; - } - - if (isset($Block['interrupted'])) - { - $Block['element']['text']['text'] .= "\n"; - - unset($Block['interrupted']); - } - - if (preg_match('/^'.$Block['char'].'{3,}[ ]*$/', $Line['text'])) - { - $Block['element']['text']['text'] = substr($Block['element']['text']['text'], 1); - - $Block['complete'] = true; - - return $Block; - } - - $Block['element']['text']['text'] .= "\n".$Line['body']; - - return $Block; - } - - protected function blockFencedCodeComplete($Block) - { - $text = $Block['element']['text']['text']; - - $text = htmlspecialchars($text, ENT_NOQUOTES, 'UTF-8'); - - $Block['element']['text']['text'] = $text; - - return $Block; - } - - # - # Header - - protected function blockHeader($Line) - { - if (isset($Line['text'][1])) - { - $level = 1; - - while (isset($Line['text'][$level]) and $Line['text'][$level] === '#') - { - $level ++; - } - - if ($level > 6) - { - return; - } - - $text = trim($Line['text'], '# '); - - $Block = array( - 'element' => array( - 'name' => 'h' . min(6, $level), - 'text' => $text, - 'handler' => 'line', - ), - ); - - return $Block; - } - } - - # - # List - - protected function blockList($Line) - { - list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]+[.]'); - - if (preg_match('/^('.$pattern.'[ ]+)(.*)/', $Line['text'], $matches)) - { - $Block = array( - 'indent' => $Line['indent'], - 'pattern' => $pattern, - 'element' => array( - 'name' => $name, - 'handler' => 'elements', - ), - ); - - if($name === 'ol') - { - $listStart = stristr($matches[0], '.', true); - - if($listStart !== '1') - { - $Block['element']['attributes'] = array('start' => $listStart); - } - } - - $Block['li'] = array( - 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $matches[2], - ), - ); - - $Block['element']['text'] []= & $Block['li']; - - return $Block; - } - } - - protected function blockListContinue($Line, array $Block) - { - if ($Block['indent'] === $Line['indent'] and preg_match('/^'.$Block['pattern'].'(?:[ ]+(.*)|$)/', $Line['text'], $matches)) - { - if (isset($Block['interrupted'])) - { - $Block['li']['text'] []= ''; - - unset($Block['interrupted']); - } - - unset($Block['li']); - - $text = isset($matches[1]) ? $matches[1] : ''; - - $Block['li'] = array( - 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $text, - ), - ); - - $Block['element']['text'] []= & $Block['li']; - - return $Block; - } - - if ($Line['text'][0] === '[' and $this->blockReference($Line)) - { - return $Block; - } - - if ( ! isset($Block['interrupted'])) - { - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - return $Block; - } - - if ($Line['indent'] > 0) - { - $Block['li']['text'] []= ''; - - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - unset($Block['interrupted']); - - return $Block; - } - } - - # - # Quote - - protected function blockQuote($Line) - { - if (preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) - { - $Block = array( - 'element' => array( - 'name' => 'blockquote', - 'handler' => 'lines', - 'text' => (array) $matches[1], - ), - ); - - return $Block; - } - } - - protected function blockQuoteContinue($Line, array $Block) - { - if ($Line['text'][0] === '>' and preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) - { - if (isset($Block['interrupted'])) - { - $Block['element']['text'] []= ''; - - unset($Block['interrupted']); - } - - $Block['element']['text'] []= $matches[1]; - - return $Block; - } - - if ( ! isset($Block['interrupted'])) - { - $Block['element']['text'] []= $Line['text']; - - return $Block; - } - } - - # - # Rule - - protected function blockRule($Line) - { - if (preg_match('/^(['.$Line['text'][0].'])([ ]*\1){2,}[ ]*$/', $Line['text'])) - { - $Block = array( - 'element' => array( - 'name' => 'hr' - ), - ); - - return $Block; - } - } - - # - # Setext - - protected function blockSetextHeader($Line, array $Block = null) - { - if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) - { - return; - } - - if (chop($Line['text'], $Line['text'][0]) === '') - { - $Block['element']['name'] = $Line['text'][0] === '=' ? 'h1' : 'h2'; - - return $Block; - } - } - - # - # Markup - - protected function blockMarkup($Line) - { - if ($this->markupEscaped) - { - return; - } - - if (preg_match('/^<(\w*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\/)?>/', $Line['text'], $matches)) - { - $element = strtolower($matches[1]); - - if (in_array($element, $this->textLevelElements)) - { - return; - } - - $Block = array( - 'name' => $matches[1], - 'depth' => 0, - 'markup' => $Line['text'], - ); - - $length = strlen($matches[0]); - - $remainder = substr($Line['text'], $length); - - if (trim($remainder) === '') - { - if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) - { - $Block['closed'] = true; - - $Block['void'] = true; - } - } - else - { - if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) - { - return; - } - - if (preg_match('/<\/'.$matches[1].'>[ ]*$/i', $remainder)) - { - $Block['closed'] = true; - } - } - - return $Block; - } - } - - protected function blockMarkupContinue($Line, array $Block) - { - if (isset($Block['closed'])) - { - return; - } - - if (preg_match('/^<'.$Block['name'].'(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*>/i', $Line['text'])) # open - { - $Block['depth'] ++; - } - - if (preg_match('/(.*?)<\/'.$Block['name'].'>[ ]*$/i', $Line['text'], $matches)) # close - { - if ($Block['depth'] > 0) - { - $Block['depth'] --; - } - else - { - $Block['closed'] = true; - } - } - - if (isset($Block['interrupted'])) - { - $Block['markup'] .= "\n"; - - unset($Block['interrupted']); - } - - $Block['markup'] .= "\n".$Line['body']; - - return $Block; - } - - # - # Reference - - protected function blockReference($Line) - { - if (preg_match('/^\[(.+?)\]:[ ]*?(?:[ ]+["\'(](.+)["\')])?[ ]*$/', $Line['text'], $matches)) - { - $id = strtolower($matches[1]); - - $Data = array( - 'url' => $matches[2], - 'title' => null, - ); - - if (isset($matches[3])) - { - $Data['title'] = $matches[3]; - } - - $this->DefinitionData['Reference'][$id] = $Data; - - $Block = array( - 'hidden' => true, - ); - - return $Block; - } - } - - # - # Table - - protected function blockTable($Line, array $Block = null) - { - if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) - { - return; - } - - if (strpos($Block['element']['text'], '|') !== false and chop($Line['text'], ' -:|') === '') - { - $alignments = array(); - - $divider = $Line['text']; - - $divider = trim($divider); - $divider = trim($divider, '|'); - - $dividerCells = explode('|', $divider); - - foreach ($dividerCells as $dividerCell) - { - $dividerCell = trim($dividerCell); - - if ($dividerCell === '') - { - continue; - } - - $alignment = null; - - if ($dividerCell[0] === ':') - { - $alignment = 'left'; - } - - if (substr($dividerCell, - 1) === ':') - { - $alignment = $alignment === 'left' ? 'center' : 'right'; - } - - $alignments []= $alignment; - } - - # ~ - - $HeaderElements = array(); - - $header = $Block['element']['text']; - - $header = trim($header); - $header = trim($header, '|'); - - $headerCells = explode('|', $header); - - foreach ($headerCells as $index => $headerCell) - { - $headerCell = trim($headerCell); - - $HeaderElement = array( - 'name' => 'th', - 'text' => $headerCell, - 'handler' => 'line', - ); - - if (isset($alignments[$index])) - { - $alignment = $alignments[$index]; - - $HeaderElement['attributes'] = array( - 'style' => 'text-align: '.$alignment.';', - ); - } - - $HeaderElements []= $HeaderElement; - } - - # ~ - - $Block = array( - 'alignments' => $alignments, - 'identified' => true, - 'element' => array( - 'name' => 'table', - 'handler' => 'elements', - ), - ); - - $Block['element']['text'] []= array( - 'name' => 'thead', - 'handler' => 'elements', - ); - - $Block['element']['text'] []= array( - 'name' => 'tbody', - 'handler' => 'elements', - 'text' => array(), - ); - - $Block['element']['text'][0]['text'] []= array( - 'name' => 'tr', - 'handler' => 'elements', - 'text' => $HeaderElements, - ); - - return $Block; - } - } - - protected function blockTableContinue($Line, array $Block) - { - if (isset($Block['interrupted'])) - { - return; - } - - if ($Line['text'][0] === '|' or strpos($Line['text'], '|')) - { - $Elements = array(); - - $row = $Line['text']; - - $row = trim($row); - $row = trim($row, '|'); - - preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]+`|`)+/', $row, $matches); - - foreach ($matches[0] as $index => $cell) - { - $cell = trim($cell); - - $Element = array( - 'name' => 'td', - 'handler' => 'line', - 'text' => $cell, - ); - - if (isset($Block['alignments'][$index])) - { - $Element['attributes'] = array( - 'style' => 'text-align: '.$Block['alignments'][$index].';', - ); - } - - $Elements []= $Element; - } - - $Element = array( - 'name' => 'tr', - 'handler' => 'elements', - 'text' => $Elements, - ); - - $Block['element']['text'][1]['text'] []= $Element; - - return $Block; - } - } - - # - # ~ - # - - protected function paragraph($Line) - { - $Block = array( - 'element' => array( - 'name' => 'p', - 'text' => $Line['text'], - 'handler' => 'line', - ), - ); - - return $Block; - } - - # - # Inline Elements - # - - protected $InlineTypes = array( - '"' => array('SpecialCharacter'), - '!' => array('Image'), - '&' => array('SpecialCharacter'), - '*' => array('Emphasis'), - ':' => array('Url'), - '<' => array('UrlTag', 'EmailTag', 'Markup', 'SpecialCharacter'), - '>' => array('SpecialCharacter'), - '[' => array('Link'), - '_' => array('Emphasis'), - '`' => array('Code'), - '~' => array('Strikethrough'), - '\\' => array('EscapeSequence'), - ); - - # ~ - - protected $inlineMarkerList = '!"*_&[:<>`~\\'; - - # - # ~ - # - - public function line($text) - { - $markup = ''; - - # $excerpt is based on the first occurrence of a marker - - while ($excerpt = strpbrk($text, $this->inlineMarkerList)) - { - $marker = $excerpt[0]; - - $markerPosition = strpos($text, $marker); - - $Excerpt = array('text' => $excerpt, 'context' => $text); - - foreach ($this->InlineTypes[$marker] as $inlineType) - { - $Inline = $this->{'inline'.$inlineType}($Excerpt); - - if ( ! isset($Inline)) - { - continue; - } - - # makes sure that the inline belongs to "our" marker - - if (isset($Inline['position']) and $Inline['position'] > $markerPosition) - { - continue; - } - - # sets a default inline position - - if ( ! isset($Inline['position'])) - { - $Inline['position'] = $markerPosition; - } - - # the text that comes before the inline - $unmarkedText = substr($text, 0, $Inline['position']); - - # compile the unmarked text - $markup .= $this->unmarkedText($unmarkedText); - - # compile the inline - $markup .= isset($Inline['markup']) ? $Inline['markup'] : $this->element($Inline['element']); - - # remove the examined text - $text = substr($text, $Inline['position'] + $Inline['extent']); - - continue 2; - } - - # the marker does not belong to an inline - - $unmarkedText = substr($text, 0, $markerPosition + 1); - - $markup .= $this->unmarkedText($unmarkedText); - - $text = substr($text, $markerPosition + 1); - } - - $markup .= $this->unmarkedText($text); - - return $markup; - } - - # - # ~ - # - - protected function inlineCode($Excerpt) - { - $marker = $Excerpt['text'][0]; - - if (preg_match('/^('.$marker.'+)[ ]*(.+?)[ ]*(? strlen($matches[0]), - 'element' => array( - 'name' => 'code', - 'text' => $text, - ), - ); - } - } - - protected function inlineEmailTag($Excerpt) - { - if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<((mailto:)?\S+?@\S+?)>/i', $Excerpt['text'], $matches)) - { - $url = $matches[1]; - - if ( ! isset($matches[2])) - { - $url = 'mailto:' . $url; - } - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'a', - 'text' => $matches[1], - 'attributes' => array( - 'href' => $url, - ), - ), - ); - } - } - - protected function inlineEmphasis($Excerpt) - { - if ( ! isset($Excerpt['text'][1])) - { - return; - } - - $marker = $Excerpt['text'][0]; - - if ($Excerpt['text'][1] === $marker and preg_match($this->StrongRegex[$marker], $Excerpt['text'], $matches)) - { - $emphasis = 'strong'; - } - elseif (preg_match($this->EmRegex[$marker], $Excerpt['text'], $matches)) - { - $emphasis = 'em'; - } - else - { - return; - } - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => $emphasis, - 'handler' => 'line', - 'text' => $matches[1], - ), - ); - } - - protected function inlineEscapeSequence($Excerpt) - { - if (isset($Excerpt['text'][1]) and in_array($Excerpt['text'][1], $this->specialCharacters)) - { - return array( - 'markup' => $Excerpt['text'][1], - 'extent' => 2, - ); - } - } - - protected function inlineImage($Excerpt) - { - if ( ! isset($Excerpt['text'][1]) or $Excerpt['text'][1] !== '[') - { - return; - } - - $Excerpt['text']= substr($Excerpt['text'], 1); - - $Link = $this->inlineLink($Excerpt); - - if ($Link === null) - { - return; - } - - $Inline = array( - 'extent' => $Link['extent'] + 1, - 'element' => array( - 'name' => 'img', - 'attributes' => array( - 'src' => $Link['element']['attributes']['href'], - 'alt' => $Link['element']['text'], - ), - ), - ); - - $Inline['element']['attributes'] += $Link['element']['attributes']; - - unset($Inline['element']['attributes']['href']); - - return $Inline; - } - - protected function inlineLink($Excerpt) - { - $Element = array( - 'name' => 'a', - 'handler' => 'line', - 'text' => null, - 'attributes' => array( - 'href' => null, - 'title' => null, - ), - ); - - $extent = 0; - - $remainder = $Excerpt['text']; - - if (preg_match('/\[((?:[^][]++|(?R))*+)\]/', $remainder, $matches)) - { - $Element['text'] = $matches[1]; - - $extent += strlen($matches[0]); - - $remainder = substr($remainder, $extent); - } - else - { - return; - } - - if (preg_match('/^[(]\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+("[^"]*"|\'[^\']*\'))?\s*[)]/', $remainder, $matches)) - { - $Element['attributes']['href'] = $matches[1]; - - if (isset($matches[2])) - { - $Element['attributes']['title'] = substr($matches[2], 1, - 1); - } - - $extent += strlen($matches[0]); - } - else - { - if (preg_match('/^\s*\[(.*?)\]/', $remainder, $matches)) - { - $definition = strlen($matches[1]) ? $matches[1] : $Element['text']; - $definition = strtolower($definition); - - $extent += strlen($matches[0]); - } - else - { - $definition = strtolower($Element['text']); - } - - if ( ! isset($this->DefinitionData['Reference'][$definition])) - { - return; - } - - $Definition = $this->DefinitionData['Reference'][$definition]; - - $Element['attributes']['href'] = $Definition['url']; - $Element['attributes']['title'] = $Definition['title']; - } - - $Element['attributes']['href'] = str_replace(array('&', '<'), array('&', '<'), $Element['attributes']['href']); - - return array( - 'extent' => $extent, - 'element' => $Element, - ); - } - - protected function inlineMarkup($Excerpt) - { - if ($this->markupEscaped or strpos($Excerpt['text'], '>') === false) - { - return; - } - - if ($Excerpt['text'][1] === '/' and preg_match('/^<\/\w*[ ]*>/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - - if ($Excerpt['text'][1] === '!' and preg_match('/^/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - - if ($Excerpt['text'][1] !== ' ' and preg_match('/^<\w*(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*\/?>/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - } - - protected function inlineSpecialCharacter($Excerpt) - { - if ($Excerpt['text'][0] === '&' and ! preg_match('/^&#?\w+;/', $Excerpt['text'])) - { - return array( - 'markup' => '&', - 'extent' => 1, - ); - } - - $SpecialCharacter = array('>' => 'gt', '<' => 'lt', '"' => 'quot'); - - if (isset($SpecialCharacter[$Excerpt['text'][0]])) - { - return array( - 'markup' => '&'.$SpecialCharacter[$Excerpt['text'][0]].';', - 'extent' => 1, - ); - } - } - - protected function inlineStrikethrough($Excerpt) - { - if ( ! isset($Excerpt['text'][1])) - { - return; - } - - if ($Excerpt['text'][1] === '~' and preg_match('/^~~(?=\S)(.+?)(?<=\S)~~/', $Excerpt['text'], $matches)) - { - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'del', - 'text' => $matches[1], - 'handler' => 'line', - ), - ); - } - } - - protected function inlineUrl($Excerpt) - { - if ($this->urlsLinked !== true or ! isset($Excerpt['text'][2]) or $Excerpt['text'][2] !== '/') - { - return; - } - - if (preg_match('/\bhttps?:[\/]{2}[^\s<]+\b\/*/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE)) - { - $Inline = array( - 'extent' => strlen($matches[0][0]), - 'position' => $matches[0][1], - 'element' => array( - 'name' => 'a', - 'text' => $matches[0][0], - 'attributes' => array( - 'href' => $matches[0][0], - ), - ), - ); - - return $Inline; - } - } - - protected function inlineUrlTag($Excerpt) - { - if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<(\w+:\/{2}[^ >]+)>/i', $Excerpt['text'], $matches)) - { - $url = str_replace(array('&', '<'), array('&', '<'), $matches[1]); - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'a', - 'text' => $url, - 'attributes' => array( - 'href' => $url, - ), - ), - ); - } - } - - # ~ - - protected function unmarkedText($text) - { - if ($this->breaksEnabled) - { - $text = preg_replace('/[ ]*\n/', "
\n", $text); - } - else - { - $text = preg_replace('/(?:[ ][ ]+|[ ]*\\\\)\n/', "
\n", $text); - $text = str_replace(" \n", "\n", $text); - } - - return $text; - } - - # - # Handlers - # - - protected function element(array $Element) - { - $markup = '<'.$Element['name']; - - if (isset($Element['attributes'])) - { - foreach ($Element['attributes'] as $name => $value) - { - if ($value === null) - { - continue; - } - - $markup .= ' '.$name.'="'.$value.'"'; - } - } - - if (isset($Element['text'])) - { - $markup .= '>'; - - if (isset($Element['handler'])) - { - $markup .= $this->{$Element['handler']}($Element['text']); - } - else - { - $markup .= $Element['text']; - } - - $markup .= ''; - } - else - { - $markup .= ' />'; - } - - return $markup; - } - - protected function elements(array $Elements) - { - $markup = ''; - - foreach ($Elements as $Element) - { - $markup .= "\n" . $this->element($Element); - } - - $markup .= "\n"; - - return $markup; - } - - # ~ - - protected function li($lines) - { - $markup = $this->lines($lines); - - $trimmedMarkup = trim($markup); - - if ( ! in_array('', $lines) and substr($trimmedMarkup, 0, 3) === '

') - { - $markup = $trimmedMarkup; - $markup = substr($markup, 3); - - $position = strpos($markup, "

"); - - $markup = substr_replace($markup, '', $position, 4); - } - - return $markup; - } - - # - # Deprecated Methods - # - - function parse($text) - { - $markup = $this->text($text); - - return $markup; - } - - # - # Static Methods - # - - static function instance($name = 'default') - { - if (isset(self::$instances[$name])) - { - return self::$instances[$name]; - } - - $instance = new static(); - - self::$instances[$name] = $instance; - - return $instance; - } - - private static $instances = array(); - - # - # Fields - # - - protected $DefinitionData; - - # - # Read-Only - - protected $specialCharacters = array( - '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', - ); - - protected $StrongRegex = array( - '*' => '/^[*]{2}((?:\\\\\*|[^*]|[*][^*]*[*])+?)[*]{2}(?![*])/s', - '_' => '/^__((?:\\\\_|[^_]|_[^_]*_)+?)__(?!_)/us', - ); - - protected $EmRegex = array( - '*' => '/^[*]((?:\\\\\*|[^*]|[*][*][^*]+?[*][*])+?)[*](?![*])/s', - '_' => '/^_((?:\\\\_|[^_]|__[^_]*__)+?)_(?!_)\b/us', - ); - - protected $regexHtmlAttribute = '[a-zA-Z_:][\w:.-]*(?:\s*=\s*(?:[^"\'=<>`\s]+|"[^"]*"|\'[^\']*\'))?'; - - protected $voidElements = array( - 'area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', - ); - - protected $textLevelElements = array( - 'a', 'br', 'bdo', 'abbr', 'blink', 'nextid', 'acronym', 'basefont', - 'b', 'em', 'big', 'cite', 'small', 'spacer', 'listing', - 'i', 'rp', 'del', 'code', 'strike', 'marquee', - 'q', 'rt', 'ins', 'font', 'strong', - 's', 'tt', 'kbd', 'mark', - 'u', 'xm', 'sub', 'nobr', - 'sup', 'ruby', - 'var', 'span', - 'wbr', 'time', - ); -} diff --git a/vendor/erusev/parsedown/README.md b/vendor/erusev/parsedown/README.md deleted file mode 100644 index 5f5c38e3..00000000 --- a/vendor/erusev/parsedown/README.md +++ /dev/null @@ -1,61 +0,0 @@ -> You might also like [Caret](https://caret.io?ref=parsedown) - our Markdown editor for Mac / Windows / Linux. - -## Parsedown - -[![Build Status](https://img.shields.io/travis/erusev/parsedown/master.svg?style=flat-square)](https://travis-ci.org/erusev/parsedown) - - -Better Markdown Parser in PHP - -[Demo](http://parsedown.org/demo) | -[Benchmarks](http://parsedown.org/speed) | -[Tests](http://parsedown.org/tests/) | -[Documentation](https://github.com/erusev/parsedown/wiki/) - -### Features - -* One File -* No Dependencies -* Super Fast -* Extensible -* [GitHub flavored](https://help.github.com/articles/github-flavored-markdown) -* Tested in 5.3 to 7.1 and in HHVM -* [Markdown Extra extension](https://github.com/erusev/parsedown-extra) - -### Installation - -Include `Parsedown.php` or install [the composer package](https://packagist.org/packages/erusev/parsedown). - -### Example - -``` php -$Parsedown = new Parsedown(); - -echo $Parsedown->text('Hello _Parsedown_!'); # prints:

Hello Parsedown!

-``` - -More examples in [the wiki](https://github.com/erusev/parsedown/wiki/) and in [this video tutorial](http://youtu.be/wYZBY8DEikI). - -### Security - -Parsedown does not sanitize the HTML that it generates. When you deal with untrusted content (ex: user commnets) you should also use a HTML sanitizer like [HTML Purifier](http://htmlpurifier.org/). - -### Questions - -**How does Parsedown work?** - -It tries to read Markdown like a human. First, it looks at the lines. It’s interested in how the lines start. This helps it recognise blocks. It knows, for example, that if a line starts with a `-` then perhaps it belongs to a list. Once it recognises the blocks, it continues to the content. As it reads, it watches out for special characters. This helps it recognise inline elements (or inlines). - -We call this approach "line based". We believe that Parsedown is the first Markdown parser to use it. Since the release of Parsedown, other developers have used the same approach to develop other Markdown parsers in PHP and in other languages. - -**Is it compliant with CommonMark?** - -It passes most of the CommonMark tests. Most of the tests that don't pass deal with cases that are quite uncommon. Still, as CommonMark matures, compliance should improve. - -**Who uses it?** - -[phpDocumentor](http://www.phpdoc.org/), [October CMS](http://octobercms.com/), [Bolt CMS](http://bolt.cm/), [Kirby CMS](http://getkirby.com/), [Grav CMS](http://getgrav.org/), [Statamic CMS](http://www.statamic.com/), [Herbie CMS](http://www.getherbie.org/), [RaspberryPi.org](http://www.raspberrypi.org/), [Symfony demo](https://github.com/symfony/symfony-demo) and [more](https://packagist.org/packages/erusev/parsedown/dependents). - -**How can I help?** - -Use it, star it, share it and if you feel generous, [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2). diff --git a/vendor/erusev/parsedown/composer.json b/vendor/erusev/parsedown/composer.json deleted file mode 100644 index b7f8aea3..00000000 --- a/vendor/erusev/parsedown/composer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "erusev/parsedown", - "description": "Parser for Markdown.", - "keywords": ["markdown", "parser"], - "homepage": "http://parsedown.org", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "autoload": { - "psr-0": {"Parsedown": ""} - } -} diff --git a/vendor/fideloper/proxy/LICENSE.md b/vendor/fideloper/proxy/LICENSE.md deleted file mode 100644 index 6d77e4fc..00000000 --- a/vendor/fideloper/proxy/LICENSE.md +++ /dev/null @@ -1,13 +0,0 @@ -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/fideloper/proxy/composer.json b/vendor/fideloper/proxy/composer.json deleted file mode 100755 index 8594e3fc..00000000 --- a/vendor/fideloper/proxy/composer.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "fideloper/proxy", - "description": "Set trusted proxies for Laravel", - "keywords": ["proxy", "trusted proxy", "load balancing"], - "license": "MIT", - "authors": [ - { - "name": "Chris Fidao", - "email": "fideloper@gmail.com" - } - ], - "require": { - "php": ">=5.4.0", - "illuminate/contracts": "~5.0" - }, - "require-dev": { - "illuminate/http": "~5.0", - "mockery/mockery": "~0.9.3", - "phpunit/phpunit": "^5.7" - }, - "autoload": { - "psr-4": { - "Fideloper\\Proxy\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "3.3-dev" - }, - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] - } - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/vendor/fideloper/proxy/config/trustedproxy.php b/vendor/fideloper/proxy/config/trustedproxy.php deleted file mode 100644 index fab11a0e..00000000 --- a/vendor/fideloper/proxy/config/trustedproxy.php +++ /dev/null @@ -1,71 +0,0 @@ -getClientIp() - * always gets the originating client IP, no matter - * how many proxies that client's request has - * subsequently passed through. - */ - 'proxies' => [ - '192.168.1.10', - ], - - /* - * Or, to trust all proxies that connect - * directly to your server, uncomment this: - */ - # 'proxies' => '*', - - /* - * Or, to trust ALL proxies, including those that - * are in a chain of forwarding, uncomment this: - */ - # 'proxies' => '**', - - /* - * Default Header Names - * - * Change these if the proxy does - * not send the default header names. - * - * Note that headers such as X-Forwarded-For - * are transformed to HTTP_X_FORWARDED_FOR format. - * - * The following are Symfony defaults, found in - * \Symfony\Component\HttpFoundation\Request::$trustedHeaders - * - * You may optionally set headers to 'null' here if you'd like - * for them to be considered untrusted instead. Ex: - * - * Illuminate\Http\Request::HEADER_CLIENT_HOST => null, - * - * WARNING: If you're using AWS Elastic Load Balancing or Heroku, - * the FORWARDED and X_FORWARDED_HOST headers should be set to null - * as they are currently unsupported there. - */ - 'headers' => [ - (defined('Illuminate\Http\Request::HEADER_FORWARDED') ? Illuminate\Http\Request::HEADER_FORWARDED : 'forwarded') => 'FORWARDED', - Illuminate\Http\Request::HEADER_CLIENT_IP => 'X_FORWARDED_FOR', - Illuminate\Http\Request::HEADER_CLIENT_HOST => 'X_FORWARDED_HOST', - Illuminate\Http\Request::HEADER_CLIENT_PROTO => 'X_FORWARDED_PROTO', - Illuminate\Http\Request::HEADER_CLIENT_PORT => 'X_FORWARDED_PORT', - ] -]; diff --git a/vendor/fideloper/proxy/src/TrustProxies.php b/vendor/fideloper/proxy/src/TrustProxies.php deleted file mode 100644 index edd7d7c1..00000000 --- a/vendor/fideloper/proxy/src/TrustProxies.php +++ /dev/null @@ -1,181 +0,0 @@ -config = $config; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - * - * @return mixed - */ - public function handle($request, Closure $next) - { - $this->setTrustedProxyHeaderNames($request); - $this->setTrustedProxyIpAddresses($request); - - return $next($request); - } - - /** - * Sets the trusted proxies on the request to the value of trustedproxy.proxies - * - * @param \Illuminate\Http\Request $request - */ - protected function setTrustedProxyIpAddresses($request) - { - $trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies'); - - // We only trust specific IP addresses - if (is_array($trustedIps)) { - return $this->setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps); - } - - // We trust any IP address that calls us, but not proxies further - // up the forwarding chain. - // TODO: Determine if this should only trust the first IP address - // Currently it trusts the entire chain (array of IPs), - // potentially making the "**" convention redundant. - if ($trustedIps === '*') { - return $this->setTrustedProxyIpAddressesToTheCallingIp($request); - } - - // We trust all proxies. Those that call us, and those that are - // further up the calling chain (e.g., where the X-FORWARDED-FOR - // header has multiple IP addresses listed); - if ($trustedIps === '**') { - return $this->setTrustedProxyIpAddressesToAllIps($request); - } - } - - /** - * We specify the IP addresses to trust explicitly. - * - * @param \Illuminate\Http\Request $request - * @param array $trustedIps - */ - private function setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps) - { - $request->setTrustedProxies((array) $trustedIps, $this->getTrustedHeaderSet()); - } - - /** - * We set the trusted proxy to be the first IP addresses received. - * - * @param \Illuminate\Http\Request $request - */ - private function setTrustedProxyIpAddressesToTheCallingIp($request) - { - $request->setTrustedProxies($request->getClientIps(), $this->getTrustedHeaderSet()); - } - - /** - * Trust all IP Addresses. - * - * @param \Illuminate\Http\Request $request - */ - private function setTrustedProxyIpAddressesToAllIps($request) - { - // 0.0.0.0/0 is the CIDR for all ipv4 addresses - // 2000:0:0:0:0:0:0:0/3 is the CIDR for all ipv6 addresses currently - // allocated http://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml - $request->setTrustedProxies(['0.0.0.0/0', '2000:0:0:0:0:0:0:0/3'], $this->getTrustedHeaderSet()); - } - - /** - * Set the trusted header names based on the content of trustedproxy.headers. - * - * Note: Depreciated in Symfony 3.3+, but available for backwards compatibility. - * - * @depreciated - * - * @param \Illuminate\Http\Request $request - */ - protected function setTrustedProxyHeaderNames($request) - { - $trustedHeaderNames = $this->getTrustedHeaderNames(); - - if(!is_array($trustedHeaderNames)) { return; } // Leave the defaults - - foreach ($trustedHeaderNames as $headerKey => $headerName) { - $request->setTrustedHeaderName($headerKey, $headerName); - } - } - - /** - * Retrieve trusted header names, falling back to defaults if config not set. - * - * @return array - */ - protected function getTrustedHeaderNames() - { - return $this->headers ?: $this->config->get('trustedproxy.headers'); - } - - /** - * Construct bit field integer of the header set that setTrustedProxies() expects. - * - * @return int - */ - protected function getTrustedHeaderSet() - { - $trustedHeaderNames = $this->getTrustedHeaderNames(); - $headerKeys = array_keys($this->getTrustedHeaderNames()); - - return array_reduce($headerKeys, function ($set, $key) use ($trustedHeaderNames) { - // PHP 7+ gives a warning if non-numeric value is used - // resulting in a thrown ErrorException within Laravel - // This error occurs with Symfony < 3.3, PHP7+ - if(! is_numeric($key)) { - return $set; - } - - // If the header value is null, it is a distrusted header, - // so we will ignore it and move on. - if (is_null($trustedHeaderNames[$key])) { - return $set; - } - - return $set | $key; - }, 0); - } -} diff --git a/vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php b/vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php deleted file mode 100644 index dc299e32..00000000 --- a/vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php +++ /dev/null @@ -1,38 +0,0 @@ -app instanceof LaravelApplication && $this->app->runningInConsole()) { - $this->publishes([$source => config_path('trustedproxy.php')]); - } elseif ($this->app instanceof LumenApplication) { - $this->app->configure('trustedproxy'); - } - - $this->mergeConfigFrom($source, 'trustedproxy'); - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - // - } -} diff --git a/vendor/filp/whoops/CHANGELOG.md b/vendor/filp/whoops/CHANGELOG.md deleted file mode 100644 index 4bbd620b..00000000 --- a/vendor/filp/whoops/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -# 2.1.0 - -* Add a `SystemFacade` to allow clients to override Whoops behavior. -* Show frame arguments in `PrettyPageHandler`. -* Highlight the line with the error. -* Add icons to search on Google and Stack Overflow. - -# 2.0.0 - -Backwards compatibility breaking changes: - -* `Run` class is now `final`. If you inherited from `Run`, please now instead use a custom `SystemFacade` injected into the `Run` constructor, or contribute your changes to our core. -* PHP < 5.5 support dropped. diff --git a/vendor/filp/whoops/LICENSE.md b/vendor/filp/whoops/LICENSE.md deleted file mode 100644 index 17707b30..00000000 --- a/vendor/filp/whoops/LICENSE.md +++ /dev/null @@ -1,19 +0,0 @@ -#The MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/filp/whoops/composer.json b/vendor/filp/whoops/composer.json deleted file mode 100644 index 0a4dca4b..00000000 --- a/vendor/filp/whoops/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "filp/whoops", - "license": "MIT", - "description": "php error handling for cool kids", - "keywords": ["library", "error", "handling", "exception", "whoops", "throwable"], - "homepage": "https://filp.github.io/whoops/", - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "require": { - "php": "^5.5.9 || ^7.0", - "psr/log": "^1.0.1" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7", - "mockery/mockery": "0.9.*", - "symfony/var-dumper": "^2.6 || ^3.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" - }, - "autoload": { - "psr-4": { - "Whoops\\": "src/Whoops/" - } - }, - "autoload-dev": { - "psr-4": { - "Whoops\\": "tests/Whoops/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - } -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php b/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php deleted file mode 100644 index d74e8231..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php +++ /dev/null @@ -1,17 +0,0 @@ - - */ - -namespace Whoops\Exception; - -use ErrorException as BaseErrorException; - -/** - * Wraps ErrorException; mostly used for typing (at least now) - * to easily cleanup the stack trace of redundant info. - */ -class ErrorException extends BaseErrorException -{ -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/Formatter.php b/vendor/filp/whoops/src/Whoops/Exception/Formatter.php deleted file mode 100644 index e467559a..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/Formatter.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ - -namespace Whoops\Exception; - -class Formatter -{ - /** - * Returns all basic information about the exception in a simple array - * for further convertion to other languages - * @param Inspector $inspector - * @param bool $shouldAddTrace - * @return array - */ - public static function formatExceptionAsDataArray(Inspector $inspector, $shouldAddTrace) - { - $exception = $inspector->getException(); - $response = [ - 'type' => get_class($exception), - 'message' => $exception->getMessage(), - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - ]; - - if ($shouldAddTrace) { - $frames = $inspector->getFrames(); - $frameData = []; - - foreach ($frames as $frame) { - /** @var Frame $frame */ - $frameData[] = [ - 'file' => $frame->getFile(), - 'line' => $frame->getLine(), - 'function' => $frame->getFunction(), - 'class' => $frame->getClass(), - 'args' => $frame->getArgs(), - ]; - } - - $response['trace'] = $frameData; - } - - return $response; - } - - public static function formatExceptionPlain(Inspector $inspector) - { - $message = $inspector->getException()->getMessage(); - $frames = $inspector->getFrames(); - - $plain = $inspector->getExceptionName(); - $plain .= ' thrown with message "'; - $plain .= $message; - $plain .= '"'."\n\n"; - - $plain .= "Stacktrace:\n"; - foreach ($frames as $i => $frame) { - $plain .= "#". (count($frames) - $i - 1). " "; - $plain .= $frame->getClass() ?: ''; - $plain .= $frame->getClass() && $frame->getFunction() ? ":" : ""; - $plain .= $frame->getFunction() ?: ''; - $plain .= ' in '; - $plain .= ($frame->getFile() ?: '<#unknown>'); - $plain .= ':'; - $plain .= (int) $frame->getLine(). "\n"; - } - - return $plain; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/Frame.php b/vendor/filp/whoops/src/Whoops/Exception/Frame.php deleted file mode 100644 index 4383583c..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/Frame.php +++ /dev/null @@ -1,296 +0,0 @@ - - */ - -namespace Whoops\Exception; - -use InvalidArgumentException; -use Serializable; - -class Frame implements Serializable -{ - /** - * @var array - */ - protected $frame; - - /** - * @var string - */ - protected $fileContentsCache; - - /** - * @var array[] - */ - protected $comments = []; - - /** - * @var bool - */ - protected $application; - - /** - * @param array[] - */ - public function __construct(array $frame) - { - $this->frame = $frame; - } - - /** - * @param bool $shortened - * @return string|null - */ - public function getFile($shortened = false) - { - if (empty($this->frame['file'])) { - return null; - } - - $file = $this->frame['file']; - - // Check if this frame occurred within an eval(). - // @todo: This can be made more reliable by checking if we've entered - // eval() in a previous trace, but will need some more work on the upper - // trace collector(s). - if (preg_match('/^(.*)\((\d+)\) : (?:eval\(\)\'d|assert) code$/', $file, $matches)) { - $file = $this->frame['file'] = $matches[1]; - $this->frame['line'] = (int) $matches[2]; - } - - if ($shortened && is_string($file)) { - // Replace the part of the path that all frames have in common, and add 'soft hyphens' for smoother line-breaks. - $dirname = dirname(dirname(dirname(dirname(dirname(dirname(__DIR__)))))); - if ($dirname !== '/') { - $file = str_replace($dirname, "…", $file); - } - $file = str_replace("/", "/­", $file); - } - - return $file; - } - - /** - * @return int|null - */ - public function getLine() - { - return isset($this->frame['line']) ? $this->frame['line'] : null; - } - - /** - * @return string|null - */ - public function getClass() - { - return isset($this->frame['class']) ? $this->frame['class'] : null; - } - - /** - * @return string|null - */ - public function getFunction() - { - return isset($this->frame['function']) ? $this->frame['function'] : null; - } - - /** - * @return array - */ - public function getArgs() - { - return isset($this->frame['args']) ? (array) $this->frame['args'] : []; - } - - /** - * Returns the full contents of the file for this frame, - * if it's known. - * @return string|null - */ - public function getFileContents() - { - if ($this->fileContentsCache === null && $filePath = $this->getFile()) { - // Leave the stage early when 'Unknown' is passed - // this would otherwise raise an exception when - // open_basedir is enabled. - if ($filePath === "Unknown") { - return null; - } - - // Return null if the file doesn't actually exist. - if (!is_file($filePath)) { - return null; - } - - $this->fileContentsCache = file_get_contents($filePath); - } - - return $this->fileContentsCache; - } - - /** - * Adds a comment to this frame, that can be received and - * used by other handlers. For example, the PrettyPage handler - * can attach these comments under the code for each frame. - * - * An interesting use for this would be, for example, code analysis - * & annotations. - * - * @param string $comment - * @param string $context Optional string identifying the origin of the comment - */ - public function addComment($comment, $context = 'global') - { - $this->comments[] = [ - 'comment' => $comment, - 'context' => $context, - ]; - } - - /** - * Returns all comments for this frame. Optionally allows - * a filter to only retrieve comments from a specific - * context. - * - * @param string $filter - * @return array[] - */ - public function getComments($filter = null) - { - $comments = $this->comments; - - if ($filter !== null) { - $comments = array_filter($comments, function ($c) use ($filter) { - return $c['context'] == $filter; - }); - } - - return $comments; - } - - /** - * Returns the array containing the raw frame data from which - * this Frame object was built - * - * @return array - */ - public function getRawFrame() - { - return $this->frame; - } - - /** - * Returns the contents of the file for this frame as an - * array of lines, and optionally as a clamped range of lines. - * - * NOTE: lines are 0-indexed - * - * @example - * Get all lines for this file - * $frame->getFileLines(); // => array( 0 => ' '...', ...) - * @example - * Get one line for this file, starting at line 10 (zero-indexed, remember!) - * $frame->getFileLines(9, 1); // array( 10 => '...', 11 => '...') - * - * @throws InvalidArgumentException if $length is less than or equal to 0 - * @param int $start - * @param int $length - * @return string[]|null - */ - public function getFileLines($start = 0, $length = null) - { - if (null !== ($contents = $this->getFileContents())) { - $lines = explode("\n", $contents); - - // Get a subset of lines from $start to $end - if ($length !== null) { - $start = (int) $start; - $length = (int) $length; - if ($start < 0) { - $start = 0; - } - - if ($length <= 0) { - throw new InvalidArgumentException( - "\$length($length) cannot be lower or equal to 0" - ); - } - - $lines = array_slice($lines, $start, $length, true); - } - - return $lines; - } - } - - /** - * Implements the Serializable interface, with special - * steps to also save the existing comments. - * - * @see Serializable::serialize - * @return string - */ - public function serialize() - { - $frame = $this->frame; - if (!empty($this->comments)) { - $frame['_comments'] = $this->comments; - } - - return serialize($frame); - } - - /** - * Unserializes the frame data, while also preserving - * any existing comment data. - * - * @see Serializable::unserialize - * @param string $serializedFrame - */ - public function unserialize($serializedFrame) - { - $frame = unserialize($serializedFrame); - - if (!empty($frame['_comments'])) { - $this->comments = $frame['_comments']; - unset($frame['_comments']); - } - - $this->frame = $frame; - } - - /** - * Compares Frame against one another - * @param Frame $frame - * @return bool - */ - public function equals(Frame $frame) - { - if (!$this->getFile() || $this->getFile() === 'Unknown' || !$this->getLine()) { - return false; - } - return $frame->getFile() === $this->getFile() && $frame->getLine() === $this->getLine(); - } - - /** - * Returns whether this frame belongs to the application or not. - * - * @return boolean - */ - public function isApplication() - { - return $this->application; - } - - /** - * Mark as an frame belonging to the application. - * - * @param boolean $application - */ - public function setApplication($application) - { - $this->application = $application; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php b/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php deleted file mode 100644 index b043a1ce..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php +++ /dev/null @@ -1,203 +0,0 @@ - - */ - -namespace Whoops\Exception; - -use ArrayAccess; -use ArrayIterator; -use Countable; -use IteratorAggregate; -use Serializable; -use UnexpectedValueException; - -/** - * Exposes a fluent interface for dealing with an ordered list - * of stack-trace frames. - */ -class FrameCollection implements ArrayAccess, IteratorAggregate, Serializable, Countable -{ - /** - * @var array[] - */ - private $frames; - - /** - * @param array $frames - */ - public function __construct(array $frames) - { - $this->frames = array_map(function ($frame) { - return new Frame($frame); - }, $frames); - } - - /** - * Filters frames using a callable, returns the same FrameCollection - * - * @param callable $callable - * @return FrameCollection - */ - public function filter($callable) - { - $this->frames = array_values(array_filter($this->frames, $callable)); - return $this; - } - - /** - * Map the collection of frames - * - * @param callable $callable - * @return FrameCollection - */ - public function map($callable) - { - // Contain the map within a higher-order callable - // that enforces type-correctness for the $callable - $this->frames = array_map(function ($frame) use ($callable) { - $frame = call_user_func($callable, $frame); - - if (!$frame instanceof Frame) { - throw new UnexpectedValueException( - "Callable to " . __METHOD__ . " must return a Frame object" - ); - } - - return $frame; - }, $this->frames); - - return $this; - } - - /** - * Returns an array with all frames, does not affect - * the internal array. - * - * @todo If this gets any more complex than this, - * have getIterator use this method. - * @see FrameCollection::getIterator - * @return array - */ - public function getArray() - { - return $this->frames; - } - - /** - * @see IteratorAggregate::getIterator - * @return ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->frames); - } - - /** - * @see ArrayAccess::offsetExists - * @param int $offset - */ - public function offsetExists($offset) - { - return isset($this->frames[$offset]); - } - - /** - * @see ArrayAccess::offsetGet - * @param int $offset - */ - public function offsetGet($offset) - { - return $this->frames[$offset]; - } - - /** - * @see ArrayAccess::offsetSet - * @param int $offset - */ - public function offsetSet($offset, $value) - { - throw new \Exception(__CLASS__ . ' is read only'); - } - - /** - * @see ArrayAccess::offsetUnset - * @param int $offset - */ - public function offsetUnset($offset) - { - throw new \Exception(__CLASS__ . ' is read only'); - } - - /** - * @see Countable::count - * @return int - */ - public function count() - { - return count($this->frames); - } - - /** - * Count the frames that belongs to the application. - * - * @return int - */ - public function countIsApplication() - { - return count(array_filter($this->frames, function (Frame $f) { - return $f->isApplication(); - })); - } - - /** - * @see Serializable::serialize - * @return string - */ - public function serialize() - { - return serialize($this->frames); - } - - /** - * @see Serializable::unserialize - * @param string $serializedFrames - */ - public function unserialize($serializedFrames) - { - $this->frames = unserialize($serializedFrames); - } - - /** - * @param Frame[] $frames Array of Frame instances, usually from $e->getPrevious() - */ - public function prependFrames(array $frames) - { - $this->frames = array_merge($frames, $this->frames); - } - - /** - * Gets the innermost part of stack trace that is not the same as that of outer exception - * - * @param FrameCollection $parentFrames Outer exception frames to compare tail against - * @return Frame[] - */ - public function topDiff(FrameCollection $parentFrames) - { - $diff = $this->frames; - - $parentFrames = $parentFrames->getArray(); - $p = count($parentFrames)-1; - - for ($i = count($diff)-1; $i >= 0 && $p >= 0; $i--) { - /** @var Frame $tailFrame */ - $tailFrame = $diff[$i]; - if ($tailFrame->equals($parentFrames[$p])) { - unset($diff[$i]); - } - $p--; - } - return $diff; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/Inspector.php b/vendor/filp/whoops/src/Whoops/Exception/Inspector.php deleted file mode 100644 index c88323be..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/Inspector.php +++ /dev/null @@ -1,276 +0,0 @@ - - */ - -namespace Whoops\Exception; - -use Whoops\Util\Misc; - -class Inspector -{ - /** - * @var \Throwable - */ - private $exception; - - /** - * @var \Whoops\Exception\FrameCollection - */ - private $frames; - - /** - * @var \Whoops\Exception\Inspector - */ - private $previousExceptionInspector; - - /** - * @param \Throwable $exception The exception to inspect - */ - public function __construct($exception) - { - $this->exception = $exception; - } - - /** - * @return \Throwable - */ - public function getException() - { - return $this->exception; - } - - /** - * @return string - */ - public function getExceptionName() - { - return get_class($this->exception); - } - - /** - * @return string - */ - public function getExceptionMessage() - { - return $this->extractDocrefUrl($this->exception->getMessage())['message']; - } - - /** - * Returns a url to the php-manual related to the underlying error - when available. - * - * @return string|null - */ - public function getExceptionDocrefUrl() - { - return $this->extractDocrefUrl($this->exception->getMessage())['url']; - } - - private function extractDocrefUrl($message) - { - $docref = [ - 'message' => $message, - 'url' => null, - ]; - - // php embbeds urls to the manual into the Exception message with the following ini-settings defined - // http://php.net/manual/en/errorfunc.configuration.php#ini.docref-root - if (!ini_get('html_errors') || !ini_get('docref_root')) { - return $docref; - } - - $pattern = "/\[(?:[^<]+)<\/a>\]/"; - if (preg_match($pattern, $message, $matches)) { - // -> strip those automatically generated links from the exception message - $docref['message'] = preg_replace($pattern, '', $message, 1); - $docref['url'] = $matches[1]; - } - - return $docref; - } - - /** - * Does the wrapped Exception has a previous Exception? - * @return bool - */ - public function hasPreviousException() - { - return $this->previousExceptionInspector || $this->exception->getPrevious(); - } - - /** - * Returns an Inspector for a previous Exception, if any. - * @todo Clean this up a bit, cache stuff a bit better. - * @return Inspector - */ - public function getPreviousExceptionInspector() - { - if ($this->previousExceptionInspector === null) { - $previousException = $this->exception->getPrevious(); - - if ($previousException) { - $this->previousExceptionInspector = new Inspector($previousException); - } - } - - return $this->previousExceptionInspector; - } - - /** - * Returns an iterator for the inspected exception's - * frames. - * @return \Whoops\Exception\FrameCollection - */ - public function getFrames() - { - if ($this->frames === null) { - $frames = $this->getTrace($this->exception); - - // Fill empty line/file info for call_user_func_array usages (PHP Bug #44428) - foreach ($frames as $k => $frame) { - if (empty($frame['file'])) { - // Default values when file and line are missing - $file = '[internal]'; - $line = 0; - - $next_frame = !empty($frames[$k + 1]) ? $frames[$k + 1] : []; - - if ($this->isValidNextFrame($next_frame)) { - $file = $next_frame['file']; - $line = $next_frame['line']; - } - - $frames[$k]['file'] = $file; - $frames[$k]['line'] = $line; - } - } - - // Find latest non-error handling frame index ($i) used to remove error handling frames - $i = 0; - foreach ($frames as $k => $frame) { - if ($frame['file'] == $this->exception->getFile() && $frame['line'] == $this->exception->getLine()) { - $i = $k; - } - } - - // Remove error handling frames - if ($i > 0) { - array_splice($frames, 0, $i); - } - - $firstFrame = $this->getFrameFromException($this->exception); - array_unshift($frames, $firstFrame); - - $this->frames = new FrameCollection($frames); - - if ($previousInspector = $this->getPreviousExceptionInspector()) { - // Keep outer frame on top of the inner one - $outerFrames = $this->frames; - $newFrames = clone $previousInspector->getFrames(); - // I assume it will always be set, but let's be safe - if (isset($newFrames[0])) { - $newFrames[0]->addComment( - $previousInspector->getExceptionMessage(), - 'Exception message:' - ); - } - $newFrames->prependFrames($outerFrames->topDiff($newFrames)); - $this->frames = $newFrames; - } - } - - return $this->frames; - } - - /** - * Gets the backtrace from an exception. - * - * If xdebug is installed - * - * @param \Throwable $exception - * @return array - */ - protected function getTrace($e) - { - $traces = $e->getTrace(); - - // Get trace from xdebug if enabled, failure exceptions only trace to the shutdown handler by default - if (!$e instanceof \ErrorException) { - return $traces; - } - - if (!Misc::isLevelFatal($e->getSeverity())) { - return $traces; - } - - if (!extension_loaded('xdebug') || !xdebug_is_enabled()) { - return []; - } - - // Use xdebug to get the full stack trace and remove the shutdown handler stack trace - $stack = array_reverse(xdebug_get_function_stack()); - $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - $traces = array_diff_key($stack, $trace); - - return $traces; - } - - /** - * Given an exception, generates an array in the format - * generated by Exception::getTrace() - * @param \Throwable $exception - * @return array - */ - protected function getFrameFromException($exception) - { - return [ - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - 'class' => get_class($exception), - 'args' => [ - $exception->getMessage(), - ], - ]; - } - - /** - * Given an error, generates an array in the format - * generated by ErrorException - * @param ErrorException $exception - * @return array - */ - protected function getFrameFromError(ErrorException $exception) - { - return [ - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - 'class' => null, - 'args' => [], - ]; - } - - /** - * Determine if the frame can be used to fill in previous frame's missing info - * happens for call_user_func and call_user_func_array usages (PHP Bug #44428) - * - * @param array $frame - * @return bool - */ - protected function isValidNextFrame(array $frame) - { - if (empty($frame['file'])) { - return false; - } - - if (empty($frame['line'])) { - return false; - } - - if (empty($frame['function']) || !stristr($frame['function'], 'call_user_func')) { - return false; - } - - return true; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php b/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php deleted file mode 100644 index cc46e700..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php +++ /dev/null @@ -1,52 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use InvalidArgumentException; - -/** - * Wrapper for Closures passed as handlers. Can be used - * directly, or will be instantiated automagically by Whoops\Run - * if passed to Run::pushHandler - */ -class CallbackHandler extends Handler -{ - /** - * @var callable - */ - protected $callable; - - /** - * @throws InvalidArgumentException If argument is not callable - * @param callable $callable - */ - public function __construct($callable) - { - if (!is_callable($callable)) { - throw new InvalidArgumentException( - 'Argument to ' . __METHOD__ . ' must be valid callable' - ); - } - - $this->callable = $callable; - } - - /** - * @return int|null - */ - public function handle() - { - $exception = $this->getException(); - $inspector = $this->getInspector(); - $run = $this->getRun(); - $callable = $this->callable; - - // invoke the callable directly, to get simpler stacktraces (in comparison to call_user_func). - // this assumes that $callable is a properly typed php-callable, which we check in __construct(). - return $callable($exception, $inspector, $run); - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/Handler.php b/vendor/filp/whoops/src/Whoops/Handler/Handler.php deleted file mode 100644 index cf1f7087..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/Handler.php +++ /dev/null @@ -1,95 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use Whoops\Exception\Inspector; -use Whoops\RunInterface; - -/** - * Abstract implementation of a Handler. - */ -abstract class Handler implements HandlerInterface -{ - /* - Return constants that can be returned from Handler::handle - to message the handler walker. - */ - const DONE = 0x10; // returning this is optional, only exists for - // semantic purposes - /** - * The Handler has handled the Throwable in some way, and wishes to skip any other Handler. - * Execution will continue. - */ - const LAST_HANDLER = 0x20; - /** - * The Handler has handled the Throwable in some way, and wishes to quit/stop execution - */ - const QUIT = 0x30; - - /** - * @var RunInterface - */ - private $run; - - /** - * @var Inspector $inspector - */ - private $inspector; - - /** - * @var \Throwable $exception - */ - private $exception; - - /** - * @param RunInterface $run - */ - public function setRun(RunInterface $run) - { - $this->run = $run; - } - - /** - * @return RunInterface - */ - protected function getRun() - { - return $this->run; - } - - /** - * @param Inspector $inspector - */ - public function setInspector(Inspector $inspector) - { - $this->inspector = $inspector; - } - - /** - * @return Inspector - */ - protected function getInspector() - { - return $this->inspector; - } - - /** - * @param \Throwable $exception - */ - public function setException($exception) - { - $this->exception = $exception; - } - - /** - * @return \Throwable - */ - protected function getException() - { - return $this->exception; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php b/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php deleted file mode 100644 index 0265a85b..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use Whoops\Exception\Inspector; -use Whoops\RunInterface; - -interface HandlerInterface -{ - /** - * @return int|null A handler may return nothing, or a Handler::HANDLE_* constant - */ - public function handle(); - - /** - * @param RunInterface $run - * @return void - */ - public function setRun(RunInterface $run); - - /** - * @param \Throwable $exception - * @return void - */ - public function setException($exception); - - /** - * @param Inspector $inspector - * @return void - */ - public function setInspector(Inspector $inspector); -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php b/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php deleted file mode 100644 index fdd7ead3..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php +++ /dev/null @@ -1,88 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use Whoops\Exception\Formatter; - -/** - * Catches an exception and converts it to a JSON - * response. Additionally can also return exception - * frames for consumption by an API. - */ -class JsonResponseHandler extends Handler -{ - /** - * @var bool - */ - private $returnFrames = false; - - /** - * @var bool - */ - private $jsonApi = false; - - /** - * Returns errors[[]] instead of error[] to be in compliance with the json:api spec - * @param bool $jsonApi Default is false - * @return $this - */ - public function setJsonApi($jsonApi = false) - { - $this->jsonApi = (bool) $jsonApi; - return $this; - } - - /** - * @param bool|null $returnFrames - * @return bool|$this - */ - public function addTraceToOutput($returnFrames = null) - { - if (func_num_args() == 0) { - return $this->returnFrames; - } - - $this->returnFrames = (bool) $returnFrames; - return $this; - } - - /** - * @return int - */ - public function handle() - { - if ($this->jsonApi === true) { - $response = [ - 'errors' => [ - Formatter::formatExceptionAsDataArray( - $this->getInspector(), - $this->addTraceToOutput() - ), - ] - ]; - } else { - $response = [ - 'error' => Formatter::formatExceptionAsDataArray( - $this->getInspector(), - $this->addTraceToOutput() - ), - ]; - } - - echo json_encode($response, defined('JSON_PARTIAL_OUTPUT_ON_ERROR') ? JSON_PARTIAL_OUTPUT_ON_ERROR : 0); - - return Handler::QUIT; - } - - /** - * @return string - */ - public function contentType() - { - return 'application/json'; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php b/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php deleted file mode 100644 index 2f5be906..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php +++ /dev/null @@ -1,314 +0,0 @@ - -* Plaintext handler for command line and logs. -* @author Pierre-Yves Landuré -*/ - -namespace Whoops\Handler; - -use InvalidArgumentException; -use Psr\Log\LoggerInterface; -use Whoops\Exception\Frame; - -/** -* Handler outputing plaintext error messages. Can be used -* directly, or will be instantiated automagically by Whoops\Run -* if passed to Run::pushHandler -*/ -class PlainTextHandler extends Handler -{ - const VAR_DUMP_PREFIX = ' | '; - - /** - * @var \Psr\Log\LoggerInterface - */ - protected $logger; - - /** - * @var callable - */ - protected $dumper; - - /** - * @var bool - */ - private $addTraceToOutput = true; - - /** - * @var bool|integer - */ - private $addTraceFunctionArgsToOutput = false; - - /** - * @var integer - */ - private $traceFunctionArgsOutputLimit = 1024; - - /** - * @var bool - */ - private $loggerOnly = false; - - /** - * Constructor. - * @throws InvalidArgumentException If argument is not null or a LoggerInterface - * @param \Psr\Log\LoggerInterface|null $logger - */ - public function __construct($logger = null) - { - $this->setLogger($logger); - } - - /** - * Set the output logger interface. - * @throws InvalidArgumentException If argument is not null or a LoggerInterface - * @param \Psr\Log\LoggerInterface|null $logger - */ - public function setLogger($logger = null) - { - if (! (is_null($logger) - || $logger instanceof LoggerInterface)) { - throw new InvalidArgumentException( - 'Argument to ' . __METHOD__ . - " must be a valid Logger Interface (aka. Monolog), " . - get_class($logger) . ' given.' - ); - } - - $this->logger = $logger; - } - - /** - * @return \Psr\Log\LoggerInterface|null - */ - public function getLogger() - { - return $this->logger; - } - - /** - * Set var dumper callback function. - * - * @param callable $dumper - * @return void - */ - public function setDumper(callable $dumper) - { - $this->dumper = $dumper; - } - - /** - * Add error trace to output. - * @param bool|null $addTraceToOutput - * @return bool|$this - */ - public function addTraceToOutput($addTraceToOutput = null) - { - if (func_num_args() == 0) { - return $this->addTraceToOutput; - } - - $this->addTraceToOutput = (bool) $addTraceToOutput; - return $this; - } - - /** - * Add error trace function arguments to output. - * Set to True for all frame args, or integer for the n first frame args. - * @param bool|integer|null $addTraceFunctionArgsToOutput - * @return null|bool|integer - */ - public function addTraceFunctionArgsToOutput($addTraceFunctionArgsToOutput = null) - { - if (func_num_args() == 0) { - return $this->addTraceFunctionArgsToOutput; - } - - if (! is_integer($addTraceFunctionArgsToOutput)) { - $this->addTraceFunctionArgsToOutput = (bool) $addTraceFunctionArgsToOutput; - } else { - $this->addTraceFunctionArgsToOutput = $addTraceFunctionArgsToOutput; - } - } - - /** - * Set the size limit in bytes of frame arguments var_dump output. - * If the limit is reached, the var_dump output is discarded. - * Prevent memory limit errors. - * @var integer - */ - public function setTraceFunctionArgsOutputLimit($traceFunctionArgsOutputLimit) - { - $this->traceFunctionArgsOutputLimit = (integer) $traceFunctionArgsOutputLimit; - } - - /** - * Create plain text response and return it as a string - * @return string - */ - public function generateResponse() - { - $exception = $this->getException(); - return sprintf( - "%s: %s in file %s on line %d%s\n", - get_class($exception), - $exception->getMessage(), - $exception->getFile(), - $exception->getLine(), - $this->getTraceOutput() - ); - } - - /** - * Get the size limit in bytes of frame arguments var_dump output. - * If the limit is reached, the var_dump output is discarded. - * Prevent memory limit errors. - * @return integer - */ - public function getTraceFunctionArgsOutputLimit() - { - return $this->traceFunctionArgsOutputLimit; - } - - /** - * Only output to logger. - * @param bool|null $loggerOnly - * @return null|bool - */ - public function loggerOnly($loggerOnly = null) - { - if (func_num_args() == 0) { - return $this->loggerOnly; - } - - $this->loggerOnly = (bool) $loggerOnly; - } - - /** - * Test if handler can output to stdout. - * @return bool - */ - private function canOutput() - { - return !$this->loggerOnly(); - } - - /** - * Get the frame args var_dump. - * @param \Whoops\Exception\Frame $frame [description] - * @param integer $line [description] - * @return string - */ - private function getFrameArgsOutput(Frame $frame, $line) - { - if ($this->addTraceFunctionArgsToOutput() === false - || $this->addTraceFunctionArgsToOutput() < $line) { - return ''; - } - - // Dump the arguments: - ob_start(); - $this->dump($frame->getArgs()); - if (ob_get_length() > $this->getTraceFunctionArgsOutputLimit()) { - // The argument var_dump is to big. - // Discarded to limit memory usage. - ob_clean(); - return sprintf( - "\n%sArguments dump length greater than %d Bytes. Discarded.", - self::VAR_DUMP_PREFIX, - $this->getTraceFunctionArgsOutputLimit() - ); - } - - return sprintf( - "\n%s", - preg_replace('/^/m', self::VAR_DUMP_PREFIX, ob_get_clean()) - ); - } - - /** - * Dump variable. - * - * @param mixed $var - * @return void - */ - protected function dump($var) - { - if ($this->dumper) { - call_user_func($this->dumper, $var); - } else { - var_dump($var); - } - } - - /** - * Get the exception trace as plain text. - * @return string - */ - private function getTraceOutput() - { - if (! $this->addTraceToOutput()) { - return ''; - } - $inspector = $this->getInspector(); - $frames = $inspector->getFrames(); - - $response = "\nStack trace:"; - - $line = 1; - foreach ($frames as $frame) { - /** @var Frame $frame */ - $class = $frame->getClass(); - - $template = "\n%3d. %s->%s() %s:%d%s"; - if (! $class) { - // Remove method arrow (->) from output. - $template = "\n%3d. %s%s() %s:%d%s"; - } - - $response .= sprintf( - $template, - $line, - $class, - $frame->getFunction(), - $frame->getFile(), - $frame->getLine(), - $this->getFrameArgsOutput($frame, $line) - ); - - $line++; - } - - return $response; - } - - /** - * @return int - */ - public function handle() - { - $response = $this->generateResponse(); - - if ($this->getLogger()) { - $this->getLogger()->error($response); - } - - if (! $this->canOutput()) { - return Handler::DONE; - } - - echo $response; - - return Handler::QUIT; - } - - /** - * @return string - */ - public function contentType() - { - return 'text/plain'; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php b/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php deleted file mode 100644 index 1a0fcc83..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php +++ /dev/null @@ -1,706 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use InvalidArgumentException; -use RuntimeException; -use Symfony\Component\VarDumper\Cloner\AbstractCloner; -use Symfony\Component\VarDumper\Cloner\VarCloner; -use UnexpectedValueException; -use Whoops\Exception\Formatter; -use Whoops\Util\Misc; -use Whoops\Util\TemplateHelper; - -class PrettyPageHandler extends Handler -{ - /** - * Search paths to be scanned for resources, in the reverse - * order they're declared. - * - * @var array - */ - private $searchPaths = []; - - /** - * Fast lookup cache for known resource locations. - * - * @var array - */ - private $resourceCache = []; - - /** - * The name of the custom css file. - * - * @var string - */ - private $customCss = null; - - /** - * @var array[] - */ - private $extraTables = []; - - /** - * @var bool - */ - private $handleUnconditionally = false; - - /** - * @var string - */ - private $pageTitle = "Whoops! There was an error."; - - /** - * @var array[] - */ - private $applicationPaths; - - /** - * @var array[] - */ - private $blacklist = [ - '_GET' => [], - '_POST' => [], - '_FILES' => [], - '_COOKIE' => [], - '_SESSION' => [], - '_SERVER' => [], - '_ENV' => [], - ]; - - /** - * A string identifier for a known IDE/text editor, or a closure - * that resolves a string that can be used to open a given file - * in an editor. If the string contains the special substrings - * %file or %line, they will be replaced with the correct data. - * - * @example - * "txmt://open?url=%file&line=%line" - * @var mixed $editor - */ - protected $editor; - - /** - * A list of known editor strings - * @var array - */ - protected $editors = [ - "sublime" => "subl://open?url=file://%file&line=%line", - "textmate" => "txmt://open?url=file://%file&line=%line", - "emacs" => "emacs://open?url=file://%file&line=%line", - "macvim" => "mvim://open/?url=file://%file&line=%line", - "phpstorm" => "phpstorm://open?file=%file&line=%line", - "idea" => "idea://open?file=%file&line=%line", - "vscode" => "vscode://file/%file:%line", - ]; - - /** - * @var TemplateHelper - */ - private $templateHelper; - - /** - * Constructor. - */ - public function __construct() - { - if (ini_get('xdebug.file_link_format') || extension_loaded('xdebug')) { - // Register editor using xdebug's file_link_format option. - $this->editors['xdebug'] = function ($file, $line) { - return str_replace(['%f', '%l'], [$file, $line], ini_get('xdebug.file_link_format')); - }; - } - - // Add the default, local resource search path: - $this->searchPaths[] = __DIR__ . "/../Resources"; - - // blacklist php provided auth based values - $this->blacklist('_SERVER', 'PHP_AUTH_PW'); - - $this->templateHelper = new TemplateHelper(); - - if (class_exists('Symfony\Component\VarDumper\Cloner\VarCloner')) { - $cloner = new VarCloner(); - // Only dump object internals if a custom caster exists. - $cloner->addCasters(['*' => function ($obj, $a, $stub, $isNested, $filter = 0) { - $class = $stub->class; - $classes = [$class => $class] + class_parents($class) + class_implements($class); - - foreach ($classes as $class) { - if (isset(AbstractCloner::$defaultCasters[$class])) { - return $a; - } - } - - // Remove all internals - return []; - }]); - $this->templateHelper->setCloner($cloner); - } - } - - /** - * @return int|null - */ - public function handle() - { - if (!$this->handleUnconditionally()) { - // Check conditions for outputting HTML: - // @todo: Make this more robust - if (PHP_SAPI === 'cli') { - // Help users who have been relying on an internal test value - // fix their code to the proper method - if (isset($_ENV['whoops-test'])) { - throw new \Exception( - 'Use handleUnconditionally instead of whoops-test' - .' environment variable' - ); - } - - return Handler::DONE; - } - } - - $templateFile = $this->getResource("views/layout.html.php"); - $cssFile = $this->getResource("css/whoops.base.css"); - $zeptoFile = $this->getResource("js/zepto.min.js"); - $prettifyFile = $this->getResource("js/prettify.min.js"); - $clipboard = $this->getResource("js/clipboard.min.js"); - $jsFile = $this->getResource("js/whoops.base.js"); - - if ($this->customCss) { - $customCssFile = $this->getResource($this->customCss); - } - - $inspector = $this->getInspector(); - $frames = $this->getExceptionFrames(); - $code = $this->getExceptionCode(); - - // List of variables that will be passed to the layout template. - $vars = [ - "page_title" => $this->getPageTitle(), - - // @todo: Asset compiler - "stylesheet" => file_get_contents($cssFile), - "zepto" => file_get_contents($zeptoFile), - "prettify" => file_get_contents($prettifyFile), - "clipboard" => file_get_contents($clipboard), - "javascript" => file_get_contents($jsFile), - - // Template paths: - "header" => $this->getResource("views/header.html.php"), - "header_outer" => $this->getResource("views/header_outer.html.php"), - "frame_list" => $this->getResource("views/frame_list.html.php"), - "frames_description" => $this->getResource("views/frames_description.html.php"), - "frames_container" => $this->getResource("views/frames_container.html.php"), - "panel_details" => $this->getResource("views/panel_details.html.php"), - "panel_details_outer" => $this->getResource("views/panel_details_outer.html.php"), - "panel_left" => $this->getResource("views/panel_left.html.php"), - "panel_left_outer" => $this->getResource("views/panel_left_outer.html.php"), - "frame_code" => $this->getResource("views/frame_code.html.php"), - "env_details" => $this->getResource("views/env_details.html.php"), - - "title" => $this->getPageTitle(), - "name" => explode("\\", $inspector->getExceptionName()), - "message" => $inspector->getExceptionMessage(), - "docref_url" => $inspector->getExceptionDocrefUrl(), - "code" => $code, - "plain_exception" => Formatter::formatExceptionPlain($inspector), - "frames" => $frames, - "has_frames" => !!count($frames), - "handler" => $this, - "handlers" => $this->getRun()->getHandlers(), - - "active_frames_tab" => count($frames) && $frames->offsetGet(0)->isApplication() ? 'application' : 'all', - "has_frames_tabs" => $this->getApplicationPaths(), - - "tables" => [ - "GET Data" => $this->masked($_GET, '_GET'), - "POST Data" => $this->masked($_POST, '_POST'), - "Files" => isset($_FILES) ? $this->masked($_FILES, '_FILES') : [], - "Cookies" => $this->masked($_COOKIE, '_COOKIE'), - "Session" => isset($_SESSION) ? $this->masked($_SESSION, '_SESSION') : [], - "Server/Request Data" => $this->masked($_SERVER, '_SERVER'), - "Environment Variables" => $this->masked($_ENV, '_ENV'), - ], - ]; - - if (isset($customCssFile)) { - $vars["stylesheet"] .= file_get_contents($customCssFile); - } - - // Add extra entries list of data tables: - // @todo: Consolidate addDataTable and addDataTableCallback - $extraTables = array_map(function ($table) use ($inspector) { - return $table instanceof \Closure ? $table($inspector) : $table; - }, $this->getDataTables()); - $vars["tables"] = array_merge($extraTables, $vars["tables"]); - - $plainTextHandler = new PlainTextHandler(); - $plainTextHandler->setException($this->getException()); - $plainTextHandler->setInspector($this->getInspector()); - $vars["preface"] = ""; - - $this->templateHelper->setVariables($vars); - $this->templateHelper->render($templateFile); - - return Handler::QUIT; - } - - /** - * Get the stack trace frames of the exception that is currently being handled. - * - * @return \Whoops\Exception\FrameCollection; - */ - protected function getExceptionFrames() - { - $frames = $this->getInspector()->getFrames(); - - if ($this->getApplicationPaths()) { - foreach ($frames as $frame) { - foreach ($this->getApplicationPaths() as $path) { - if (strpos($frame->getFile(), $path) === 0) { - $frame->setApplication(true); - break; - } - } - } - } - - return $frames; - } - - /** - * Get the code of the exception that is currently being handled. - * - * @return string - */ - protected function getExceptionCode() - { - $exception = $this->getException(); - - $code = $exception->getCode(); - if ($exception instanceof \ErrorException) { - // ErrorExceptions wrap the php-error types within the 'severity' property - $code = Misc::translateErrorCode($exception->getSeverity()); - } - - return (string) $code; - } - - /** - * @return string - */ - public function contentType() - { - return 'text/html'; - } - - /** - * Adds an entry to the list of tables displayed in the template. - * The expected data is a simple associative array. Any nested arrays - * will be flattened with print_r - * @param string $label - * @param array $data - */ - public function addDataTable($label, array $data) - { - $this->extraTables[$label] = $data; - } - - /** - * Lazily adds an entry to the list of tables displayed in the table. - * The supplied callback argument will be called when the error is rendered, - * it should produce a simple associative array. Any nested arrays will - * be flattened with print_r. - * - * @throws InvalidArgumentException If $callback is not callable - * @param string $label - * @param callable $callback Callable returning an associative array - */ - public function addDataTableCallback($label, /* callable */ $callback) - { - if (!is_callable($callback)) { - throw new InvalidArgumentException('Expecting callback argument to be callable'); - } - - $this->extraTables[$label] = function (\Whoops\Exception\Inspector $inspector = null) use ($callback) { - try { - $result = call_user_func($callback, $inspector); - - // Only return the result if it can be iterated over by foreach(). - return is_array($result) || $result instanceof \Traversable ? $result : []; - } catch (\Exception $e) { - // Don't allow failure to break the rendering of the original exception. - return []; - } - }; - } - - /** - * Returns all the extra data tables registered with this handler. - * Optionally accepts a 'label' parameter, to only return the data - * table under that label. - * @param string|null $label - * @return array[]|callable - */ - public function getDataTables($label = null) - { - if ($label !== null) { - return isset($this->extraTables[$label]) ? - $this->extraTables[$label] : []; - } - - return $this->extraTables; - } - - /** - * Allows to disable all attempts to dynamically decide whether to - * handle or return prematurely. - * Set this to ensure that the handler will perform no matter what. - * @param bool|null $value - * @return bool|null - */ - public function handleUnconditionally($value = null) - { - if (func_num_args() == 0) { - return $this->handleUnconditionally; - } - - $this->handleUnconditionally = (bool) $value; - } - - /** - * Adds an editor resolver, identified by a string - * name, and that may be a string path, or a callable - * resolver. If the callable returns a string, it will - * be set as the file reference's href attribute. - * - * @example - * $run->addEditor('macvim', "mvim://open?url=file://%file&line=%line") - * @example - * $run->addEditor('remove-it', function($file, $line) { - * unlink($file); - * return "http://stackoverflow.com"; - * }); - * @param string $identifier - * @param string $resolver - */ - public function addEditor($identifier, $resolver) - { - $this->editors[$identifier] = $resolver; - } - - /** - * Set the editor to use to open referenced files, by a string - * identifier, or a callable that will be executed for every - * file reference, with a $file and $line argument, and should - * return a string. - * - * @example - * $run->setEditor(function($file, $line) { return "file:///{$file}"; }); - * @example - * $run->setEditor('sublime'); - * - * @throws InvalidArgumentException If invalid argument identifier provided - * @param string|callable $editor - */ - public function setEditor($editor) - { - if (!is_callable($editor) && !isset($this->editors[$editor])) { - throw new InvalidArgumentException( - "Unknown editor identifier: $editor. Known editors:" . - implode(",", array_keys($this->editors)) - ); - } - - $this->editor = $editor; - } - - /** - * Given a string file path, and an integer file line, - * executes the editor resolver and returns, if available, - * a string that may be used as the href property for that - * file reference. - * - * @throws InvalidArgumentException If editor resolver does not return a string - * @param string $filePath - * @param int $line - * @return string|bool - */ - public function getEditorHref($filePath, $line) - { - $editor = $this->getEditor($filePath, $line); - - if (empty($editor)) { - return false; - } - - // Check that the editor is a string, and replace the - // %line and %file placeholders: - if (!isset($editor['url']) || !is_string($editor['url'])) { - throw new UnexpectedValueException( - __METHOD__ . " should always resolve to a string or a valid editor array; got something else instead." - ); - } - - $editor['url'] = str_replace("%line", rawurlencode($line), $editor['url']); - $editor['url'] = str_replace("%file", rawurlencode($filePath), $editor['url']); - - return $editor['url']; - } - - /** - * Given a boolean if the editor link should - * act as an Ajax request. The editor must be a - * valid callable function/closure - * - * @throws UnexpectedValueException If editor resolver does not return a boolean - * @param string $filePath - * @param int $line - * @return bool - */ - public function getEditorAjax($filePath, $line) - { - $editor = $this->getEditor($filePath, $line); - - // Check that the ajax is a bool - if (!isset($editor['ajax']) || !is_bool($editor['ajax'])) { - throw new UnexpectedValueException( - __METHOD__ . " should always resolve to a bool; got something else instead." - ); - } - return $editor['ajax']; - } - - /** - * Given a boolean if the editor link should - * act as an Ajax request. The editor must be a - * valid callable function/closure - * - * @param string $filePath - * @param int $line - * @return array - */ - protected function getEditor($filePath, $line) - { - if (!$this->editor || (!is_string($this->editor) && !is_callable($this->editor))) { - return []; - } - - if (is_string($this->editor) && isset($this->editors[$this->editor]) && !is_callable($this->editors[$this->editor])) { - return [ - 'ajax' => false, - 'url' => $this->editors[$this->editor], - ]; - } - - if (is_callable($this->editor) || (isset($this->editors[$this->editor]) && is_callable($this->editors[$this->editor]))) { - if (is_callable($this->editor)) { - $callback = call_user_func($this->editor, $filePath, $line); - } else { - $callback = call_user_func($this->editors[$this->editor], $filePath, $line); - } - - if (is_string($callback)) { - return [ - 'ajax' => false, - 'url' => $callback, - ]; - } - - return [ - 'ajax' => isset($callback['ajax']) ? $callback['ajax'] : false, - 'url' => isset($callback['url']) ? $callback['url'] : $callback, - ]; - } - - return []; - } - - /** - * @param string $title - * @return void - */ - public function setPageTitle($title) - { - $this->pageTitle = (string) $title; - } - - /** - * @return string - */ - public function getPageTitle() - { - return $this->pageTitle; - } - - /** - * Adds a path to the list of paths to be searched for - * resources. - * - * @throws InvalidArgumentException If $path is not a valid directory - * - * @param string $path - * @return void - */ - public function addResourcePath($path) - { - if (!is_dir($path)) { - throw new InvalidArgumentException( - "'$path' is not a valid directory" - ); - } - - array_unshift($this->searchPaths, $path); - } - - /** - * Adds a custom css file to be loaded. - * - * @param string $name - * @return void - */ - public function addCustomCss($name) - { - $this->customCss = $name; - } - - /** - * @return array - */ - public function getResourcePaths() - { - return $this->searchPaths; - } - - /** - * Finds a resource, by its relative path, in all available search paths. - * The search is performed starting at the last search path, and all the - * way back to the first, enabling a cascading-type system of overrides - * for all resources. - * - * @throws RuntimeException If resource cannot be found in any of the available paths - * - * @param string $resource - * @return string - */ - protected function getResource($resource) - { - // If the resource was found before, we can speed things up - // by caching its absolute, resolved path: - if (isset($this->resourceCache[$resource])) { - return $this->resourceCache[$resource]; - } - - // Search through available search paths, until we find the - // resource we're after: - foreach ($this->searchPaths as $path) { - $fullPath = $path . "/$resource"; - - if (is_file($fullPath)) { - // Cache the result: - $this->resourceCache[$resource] = $fullPath; - return $fullPath; - } - } - - // If we got this far, nothing was found. - throw new RuntimeException( - "Could not find resource '$resource' in any resource paths." - . "(searched: " . join(", ", $this->searchPaths). ")" - ); - } - - /** - * @deprecated - * - * @return string - */ - public function getResourcesPath() - { - $allPaths = $this->getResourcePaths(); - - // Compat: return only the first path added - return end($allPaths) ?: null; - } - - /** - * @deprecated - * - * @param string $resourcesPath - * @return void - */ - public function setResourcesPath($resourcesPath) - { - $this->addResourcePath($resourcesPath); - } - - /** - * Return the application paths. - * - * @return array - */ - public function getApplicationPaths() - { - return $this->applicationPaths; - } - - /** - * Set the application paths. - * - * @param array $applicationPaths - */ - public function setApplicationPaths($applicationPaths) - { - $this->applicationPaths = $applicationPaths; - } - - /** - * Set the application root path. - * - * @param string $applicationRootPath - */ - public function setApplicationRootPath($applicationRootPath) - { - $this->templateHelper->setApplicationRootPath($applicationRootPath); - } - - /** - * blacklist a sensitive value within one of the superglobal arrays. - * - * @param $superGlobalName string the name of the superglobal array, e.g. '_GET' - * @param $key string the key within the superglobal - */ - public function blacklist($superGlobalName, $key) - { - $this->blacklist[$superGlobalName][] = $key; - } - - /** - * Checks all values within the given superGlobal array. - * Blacklisted values will be replaced by a equal length string cointaining only '*' characters. - * - * We intentionally dont rely on $GLOBALS as it depends on 'auto_globals_jit' php.ini setting. - * - * @param $superGlobal array One of the superglobal arrays - * @param $superGlobalName string the name of the superglobal array, e.g. '_GET' - * @return array $values without sensitive data - */ - private function masked(array $superGlobal, $superGlobalName) - { - $blacklisted = $this->blacklist[$superGlobalName]; - - $values = $superGlobal; - foreach ($blacklisted as $key) { - if (isset($superGlobal[$key])) { - $values[$key] = str_repeat('*', strlen($superGlobal[$key])); - } - } - return $values; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php b/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php deleted file mode 100644 index b6f93c57..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php +++ /dev/null @@ -1,107 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use SimpleXMLElement; -use Whoops\Exception\Formatter; - -/** - * Catches an exception and converts it to an XML - * response. Additionally can also return exception - * frames for consumption by an API. - */ -class XmlResponseHandler extends Handler -{ - /** - * @var bool - */ - private $returnFrames = false; - - /** - * @param bool|null $returnFrames - * @return bool|$this - */ - public function addTraceToOutput($returnFrames = null) - { - if (func_num_args() == 0) { - return $this->returnFrames; - } - - $this->returnFrames = (bool) $returnFrames; - return $this; - } - - /** - * @return int - */ - public function handle() - { - $response = [ - 'error' => Formatter::formatExceptionAsDataArray( - $this->getInspector(), - $this->addTraceToOutput() - ), - ]; - - echo $this->toXml($response); - - return Handler::QUIT; - } - - /** - * @return string - */ - public function contentType() - { - return 'application/xml'; - } - - /** - * @param SimpleXMLElement $node Node to append data to, will be modified in place - * @param array|\Traversable $data - * @return SimpleXMLElement The modified node, for chaining - */ - private static function addDataToNode(\SimpleXMLElement $node, $data) - { - assert('is_array($data) || $node instanceof Traversable'); - - foreach ($data as $key => $value) { - if (is_numeric($key)) { - // Convert the key to a valid string - $key = "unknownNode_". (string) $key; - } - - // Delete any char not allowed in XML element names - $key = preg_replace('/[^a-z0-9\-\_\.\:]/i', '', $key); - - if (is_array($value)) { - $child = $node->addChild($key); - self::addDataToNode($child, $value); - } else { - $value = str_replace('&', '&', print_r($value, true)); - $node->addChild($key, $value); - } - } - - return $node; - } - - /** - * The main function for converting to an XML document. - * - * @param array|\Traversable $data - * @return string XML - */ - private static function toXml($data) - { - assert('is_array($data) || $node instanceof Traversable'); - - $node = simplexml_load_string(""); - - return self::addDataToNode($node, $data)->asXML(); - } -} diff --git a/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css b/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css deleted file mode 100644 index 0289f122..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css +++ /dev/null @@ -1,550 +0,0 @@ -body { - font: 12px "Helvetica Neue", helvetica, arial, sans-serif; - color: #131313; - background: #eeeeee; - padding:0; - margin: 0; - max-height: 100%; - - text-rendering: optimizeLegibility; -} - a { - text-decoration: none; - } - -.panel { - overflow-y: scroll; - height: 100%; - position: fixed; - margin: 0; - left: 0; - top: 0; -} - -.branding { - position: absolute; - top: 10px; - right: 20px; - color: #777777; - font-size: 10px; - z-index: 100; -} - .branding a { - color: #e95353; - } - -header { - color: white; - box-sizing: border-box; - background-color: #2a2a2a; - padding: 35px 40px; - max-height: 180px; - overflow: hidden; - transition: 0.5s; -} - - header.header-expand { - max-height: 1000px; - } - - .exc-title { - margin: 0; - color: #bebebe; - font-size: 14px; - } - .exc-title-primary { - color: #e95353; - } - - .exc-message { - font-size: 20px; - word-wrap: break-word; - margin: 4px 0 0 0; - color: white; - } - .exc-message span { - display: block; - } - .exc-message-empty-notice { - color: #a29d9d; - font-weight: 300; - } - -.details-container { - left: 30%; - width: 70%; - background: #fafafa; -} - .details { - padding: 5px; - } - - .details-heading { - color: #4288CE; - font-weight: 300; - padding-bottom: 10px; - margin-bottom: 10px; - border-bottom: 1px solid rgba(0, 0, 0, .1); - } - - .details pre.sf-dump { - white-space: pre; - word-wrap: inherit; - } - - .details pre.sf-dump, - .details pre.sf-dump .sf-dump-num, - .details pre.sf-dump .sf-dump-const, - .details pre.sf-dump .sf-dump-str, - .details pre.sf-dump .sf-dump-note, - .details pre.sf-dump .sf-dump-ref, - .details pre.sf-dump .sf-dump-public, - .details pre.sf-dump .sf-dump-protected, - .details pre.sf-dump .sf-dump-private, - .details pre.sf-dump .sf-dump-meta, - .details pre.sf-dump .sf-dump-key, - .details pre.sf-dump .sf-dump-index { - color: #463C54; - } - -.left-panel { - width: 30%; - background: #ded8d8; -} - - .frames-description { - background: rgba(0, 0, 0, .05); - padding: 8px 15px; - color: #a29d9d; - font-size: 11px; - } - - .frames-description.frames-description-application { - text-align: center; - font-size: 12px; - } - .frames-container.frames-container-application .frame:not(.frame-application) { - display: none; - } - - .frames-tab { - color: #a29d9d; - display: inline-block; - padding: 4px 8px; - margin: 0 2px; - border-radius: 3px; - } - - .frames-tab.frames-tab-active { - background-color: #2a2a2a; - color: #bebebe; - } - - .frame { - padding: 14px; - cursor: pointer; - transition: all 0.1s ease; - background: #eeeeee; - } - .frame:not(:last-child) { - border-bottom: 1px solid rgba(0, 0, 0, .05); - } - - .frame.active { - box-shadow: inset -5px 0 0 0 #4288CE; - color: #4288CE; - } - - .frame:not(.active):hover { - background: #BEE9EA; - } - - .frame-method-info { - margin-bottom: 10px; - } - - .frame-class, .frame-function, .frame-index { - font-size: 14px; - } - - .frame-index { - float: left; - } - - .frame-method-info { - margin-left: 24px; - } - - .frame-index { - font-size: 11px; - color: #a29d9d; - background-color: rgba(0, 0, 0, .05); - height: 18px; - width: 18px; - line-height: 18px; - border-radius: 5px; - padding: 0 1px 0 1px; - text-align: center; - display: inline-block; - } - - .frame-application .frame-index { - background-color: #2a2a2a; - color: #bebebe; - } - - .frame-file { - font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace; - color: #a29d9d; - } - - .frame-file .editor-link { - color: #a29d9d; - } - - .frame-line { - font-weight: bold; - } - - .frame-line:before { - content: ":"; - } - - .frame-code { - padding: 5px; - background: #303030; - display: none; - } - - .frame-code.active { - display: block; - } - - .frame-code .frame-file { - color: #a29d9d; - padding: 12px 6px; - - border-bottom: none; - } - - .code-block { - padding: 10px; - margin: 0; - border-radius: 6px; - box-shadow: 0 3px 0 rgba(0, 0, 0, .05), - 0 10px 30px rgba(0, 0, 0, .05), - inset 0 0 1px 0 rgba(255, 255, 255, .07); - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - } - - .linenums { - margin: 0; - margin-left: 10px; - } - - .frame-comments { - border-top: none; - margin-top: 15px; - - font-size: 12px; - } - - .frame-comments.empty { - } - - .frame-comments.empty:before { - content: "No comments for this stack frame."; - font-weight: 300; - color: #a29d9d; - } - - .frame-comment { - padding: 10px; - color: #e3e3e3; - border-radius: 6px; - background-color: rgba(255, 255, 255, .05); - } - .frame-comment a { - font-weight: bold; - text-decoration: none; - } - .frame-comment a:hover { - color: #4bb1b1; - } - - .frame-comment:not(:last-child) { - border-bottom: 1px dotted rgba(0, 0, 0, .3); - } - - .frame-comment-context { - font-size: 10px; - color: white; - } - -.delimiter { - display: inline-block; -} - -.data-table-container label { - font-size: 16px; - color: #303030; - font-weight: bold; - margin: 10px 0; - - display: block; - - margin-bottom: 5px; - padding-bottom: 5px; -} - .data-table { - width: 100%; - margin-bottom: 10px; - } - - .data-table tbody { - font: 13px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace; - } - - .data-table thead { - display: none; - } - - .data-table tr { - padding: 5px 0; - } - - .data-table td:first-child { - width: 20%; - min-width: 130px; - overflow: hidden; - font-weight: bold; - color: #463C54; - padding-right: 5px; - - } - - .data-table td:last-child { - width: 80%; - -ms-word-break: break-all; - word-break: break-all; - word-break: break-word; - -webkit-hyphens: auto; - -moz-hyphens: auto; - hyphens: auto; - } - - .data-table span.empty { - color: rgba(0, 0, 0, .3); - font-weight: 300; - } - .data-table label.empty { - display: inline; - } - -.handler { - padding: 4px 0; - font: 14px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace; -} - -/* prettify code style -Uses the Doxy theme as a base */ -pre .str, code .str { color: #BCD42A; } /* string */ -pre .kwd, code .kwd { color: #4bb1b1; font-weight: bold; } /* keyword*/ -pre .com, code .com { color: #888; font-weight: bold; } /* comment */ -pre .typ, code .typ { color: #ef7c61; } /* type */ -pre .lit, code .lit { color: #BCD42A; } /* literal */ -pre .pun, code .pun { color: #fff; font-weight: bold; } /* punctuation */ -pre .pln, code .pln { color: #e9e4e5; } /* plaintext */ -pre .tag, code .tag { color: #4bb1b1; } /* html/xml tag */ -pre .htm, code .htm { color: #dda0dd; } /* html tag */ -pre .xsl, code .xsl { color: #d0a0d0; } /* xslt tag */ -pre .atn, code .atn { color: #ef7c61; font-weight: normal;} /* html/xml attribute name */ -pre .atv, code .atv { color: #bcd42a; } /* html/xml attribute value */ -pre .dec, code .dec { color: #606; } /* decimal */ -pre.code-block, code.code-block, .frame-args.code-block, .frame-args.code-block samp { - font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace; - background: #333; - color: #e9e4e5; -} - pre.code-block { - white-space: pre-wrap; - } - - pre.code-block a, code.code-block a { - text-decoration:none; - } - - .linenums li { - color: #A5A5A5; - } - - .linenums li.current{ - background: rgba(255, 100, 100, .07); - } - .linenums li.current.active { - background: rgba(255, 100, 100, .17); - } - -pre:not(.prettyprinted) { - padding-left: 60px; -} - -#plain-exception { - display: none; -} - -#copy-button { - cursor: pointer; - border: 0; -} - -.clipboard { - opacity: .8; - background: none; - - color: rgba(255, 255, 255, 0.1); - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1); - - border-radius: 3px; - - outline: none !important; -} - - .clipboard:hover { - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3); - color: rgba(255, 255, 255, 0.3); - } - -/* inspired by githubs kbd styles */ -kbd { - -moz-border-bottom-colors: none; - -moz-border-left-colors: none; - -moz-border-right-colors: none; - -moz-border-top-colors: none; - background-color: #fcfcfc; - border-color: #ccc #ccc #bbb; - border-image: none; - border-style: solid; - border-width: 1px; - color: #555; - display: inline-block; - font-size: 11px; - line-height: 10px; - padding: 3px 5px; - vertical-align: middle; -} - - -/* == Media queries */ - -/* Expand the spacing in the details section */ -@media (min-width: 1000px) { - .details, .frame-code { - padding: 20px 40px; - } - - .details-container { - left: 32%; - width: 68%; - } - - .frames-container { - margin: 5px; - } - - .left-panel { - width: 32%; - } -} - -.tooltipped { - position: relative -} -.tooltipped:after { - position: absolute; - z-index: 1000000; - display: none; - padding: 5px 8px; - color: #fff; - text-align: center; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-wrap: break-word; - white-space: pre; - pointer-events: none; - content: attr(aria-label); - background: rgba(0, 0, 0, 0.8); - border-radius: 3px; - -webkit-font-smoothing: subpixel-antialiased -} -.tooltipped:before { - position: absolute; - z-index: 1000001; - display: none; - width: 0; - height: 0; - color: rgba(0, 0, 0, 0.8); - pointer-events: none; - content: ""; - border: 5px solid transparent -} -.tooltipped:hover:before, -.tooltipped:hover:after, -.tooltipped:active:before, -.tooltipped:active:after, -.tooltipped:focus:before, -.tooltipped:focus:after { - display: inline-block; - text-decoration: none -} -.tooltipped-s:after { - top: 100%; - right: 50%; - margin-top: 5px -} -.tooltipped-s:before { - top: auto; - right: 50%; - bottom: -5px; - margin-right: -5px; - border-bottom-color: rgba(0, 0, 0, 0.8) -} - -pre.sf-dump { - padding: 0px !important; - margin: 0px !important; -} - -.search-for-help { - width: 85%; - padding: 0; - margin: 10px 0; - list-style-type: none; - display: inline-block; -} - .search-for-help li { - display: inline-block; - margin-right: 5px; - } - .search-for-help li:last-child { - margin-right: 0; - } - .search-for-help li a { - - } - .search-for-help li a i { - width: 16px; - height: 16px; - overflow: hidden; - display: block; - } - .search-for-help li a svg { - fill: #fff; - } - .search-for-help li a svg path { - background-size: contain; - } diff --git a/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js b/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js deleted file mode 100644 index 36a75a46..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v1.5.3 - * https://zenorocha.github.io/clipboard.js - * - * Licensed MIT © Zeno Rocha - */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,r){function o(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};e[a][0].call(l.exports,function(t){var n=e[a][1][t];return o(n?n:t)},l,l.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;ar;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],o=[];if(r&&e)for(var i=0,a=r.length;a>i;i++)r[i].fn!==e&&r[i].fn._!==e&&o.push(r[i]);return o.length?n[t]=o:delete n[t],this}},e.exports=r},{}],8:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var i=function(){function t(t,e){for(var n=0;n122||(e<65||h>90||d.push([Math.max(65,h)|32,Math.min(e,90)|32]),e<97||h>122||d.push([Math.max(97,h)&-33,Math.min(e,122)&-33]))}}d.sort(function(d,a){return d[0]-a[0]||a[1]-d[1]});a=[];c=[];for(f=0;fh[0]&&(h[1]+1>h[0]&&b.push("-"),b.push(g(h[1])));b.push("]");return b.join("")}function t(d){for(var a=d.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=a.length,i=[],c=0,h=0;c=2&&d==="["?a[c]=j(e):d!=="\\"&&(a[c]=e.replace(/[A-Za-z]/g,function(d){d=d.charCodeAt(0);return"["+String.fromCharCode(d&-33,d|32)+"]"}));return a.join("")}for(var z=0,w=!1,k=!1,m=0,b=a.length;m=5&&"lang-"===f.substring(0, -5))&&!(u&&typeof u[1]==="string"))c=!1,f="src";c||(s[v]=f)}h=b;b+=v.length;if(c){c=u[1];var e=v.indexOf(c),p=e+c.length;u[2]&&(p=v.length-u[2].length,e=p-c.length);f=f.substring(5);E(k+h,v.substring(0,e),g,m);E(k+h+e,c,F(f,c),m);E(k+h+p,v.substring(p),g,m)}else m.push(k+h,f)}a.g=m}var j={},t;(function(){for(var g=a.concat(i),k=[],m={},b=0,o=g.length;b=0;)j[q.charAt(d)]=s;s=s[1];q=""+s;m.hasOwnProperty(q)||(k.push(s),m[q]=r)}k.push(/[\S\s]/);t= -O(k)})();var z=i.length;return g}function l(a){var i=[],g=[];a.tripleQuotedStrings?i.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,r,"'\""]):a.multiLineStrings?i.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,r,"'\"`"]):i.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,r,"\"'"]);a.verbatimStrings&& -g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,r]);var j=a.hashComments;j&&(a.cStyleComments?(j>1?i.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,r,"#"]):i.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,r,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,r])):i.push(["com",/^#[^\n\r]*/,r,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,r]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/, -r]));a.regexLiterals&&g.push(["lang-regex",/^(?:^^\.?|[+-]|[!=]={0,2}|#|%=?|&&?=?|\(|\*=?|[+-]=|->|\/=?|::?|<{1,3}=?|[,;?@[{~]|\^\^?=?|\|\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(j=a.types)&&g.push(["typ",j]);a=(""+a.keywords).replace(/^ | $/g,"");a.length&&g.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),r]);i.push(["pln",/^\s+/,r," \r\n\t\u00a0"]);g.push(["lit", -/^@[$_a-z][\w$@]*/i,r],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,r],["pln",/^[$_a-z][\w$@]*/i,r],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,r,"0123456789"],["pln",/^\\[\S\s]?/,r],["pun",/^.[^\s\w"$'./@\\`]*/,r]);return x(i,g)}function G(a,i,g){function j(a){switch(a.nodeType){case 1:if(z.test(a.className))break;if("br"===a.nodeName)t(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)j(a);break;case 3:case 4:if(g){var b= -a.nodeValue,f=b.match(n);if(f){var i=b.substring(0,f.index);a.nodeValue=i;(b=b.substring(f.index+f[0].length))&&a.parentNode.insertBefore(k.createTextNode(b),a.nextSibling);t(a);i||a.parentNode.removeChild(a)}}}}function t(a){function i(a,b){var d=b?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=i(e,1),f=a.nextSibling;e.appendChild(d);for(var g=f;g;g=f)f=g.nextSibling,e.appendChild(g)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=i(a.nextSibling,0),f;(f=a.parentNode)&&f.nodeType=== -1;)a=f;b.push(a)}for(var z=/(?:^|\s)nocode(?:\s|$)/,n=/\r\n?|\n/,k=a.ownerDocument,m=k.createElement("li");a.firstChild;)m.appendChild(a.firstChild);for(var b=[m],o=0;o=0;){var j= -i[g];A.hasOwnProperty(j)?C.console&&console.warn("cannot override language handler %s",j):A[j]=a}}function F(a,i){if(!a||!A.hasOwnProperty(a))a=/^\s*=e&&(j+=2);g>=p&&(s+=2)}}finally{if(c)c.style.display=h}}catch(A){C.console&&console.log(A&&A.stack?A.stack:A)}}var C=window,y=["break,continue,do,else,for,if,return,while"],B=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],I=[B,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"], -J=[B,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],K=[J,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],B=[B,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"], -L=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],M=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, -Q=/\S/,R=l({keywords:[I,K,B,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+L,M,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};n(R,["default-code"]);n(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-", -/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);n(x([["pln",/^\s+/,r," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,r,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/], -["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);n(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);n(l({keywords:I,hashComments:!0,cStyleComments:!0,types:N}),["c","cc","cpp","cxx","cyc","m"]);n(l({keywords:"null,true,false"}),["json"]);n(l({keywords:K,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}), -["cs"]);n(l({keywords:J,cStyleComments:!0}),["java"]);n(l({keywords:y,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);n(l({keywords:L,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);n(l({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);n(l({keywords:M,hashComments:!0, -multiLineStrings:!0,regexLiterals:!0}),["rb"]);n(l({keywords:B,cStyleComments:!0,regexLiterals:!0}),["js"]);n(l({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);n(x([],[["str",/^[\S\s]+/]]),["regex"]);var S=C.PR={createSimpleLexer:x,registerLangHandler:n,sourceDecorator:l, -PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:C.prettyPrintOne=function(a,i,g){var j=document.createElement("pre");j.innerHTML=a;g&&G(j,g,!0);H({h:i,j:g,c:j,i:1});return j.innerHTML},prettyPrint:C.prettyPrint=function(a){function i(){var u;for(var g=C.PR_SHOULD_USE_CONTINUATION?k.now()+250:Infinity;m= 145) { - $header.addClass('header-expand'); - } - }); - $header.on('mouseleave', function () { - $header.removeClass('header-expand'); - }); - - /* - * add prettyprint classes to our current active codeblock - * run prettyPrint() to highlight the active code - * scroll to the line when prettyprint is done - * highlight the current line - */ - var renderCurrentCodeblock = function(id) { - - // remove previous codeblocks so we only render the active one - $('.code-block').removeClass('prettyprint'); - - // pass the id in when we can for speed - if (typeof(id) === 'undefined' || typeof(id) === 'object') { - var id = /frame\-line\-([\d]*)/.exec($activeLine.attr('id'))[1]; - } - - $('#frame-code-linenums-' + id).addClass('prettyprint'); - $('#frame-code-args-' + id).addClass('prettyprint'); - - prettyPrint(highlightCurrentLine); - - } - - /* - * Highlight the active and neighboring lines for the current frame - * Adjust the offset to make sure that line is veritcally centered - */ - - var highlightCurrentLine = function() { - var activeLineNumber = +($activeLine.find('.frame-line').text()); - var $lines = $activeFrame.find('.linenums li'); - var firstLine = +($lines.first().val()); - - // We show more code than needed, purely for proper syntax highlighting - // Let’s hide a big chunk of that code and then scroll the remaining block - $activeFrame.find('.code-block').first().css({ - maxHeight: 345, - overflow: 'hidden', - }); - - var $offset = $($lines[activeLineNumber - firstLine - 10]); - if ($offset.length > 0) { - $offset[0].scrollIntoView(); - } - - $($lines[activeLineNumber - firstLine - 1]).addClass('current'); - $($lines[activeLineNumber - firstLine]).addClass('current active'); - $($lines[activeLineNumber - firstLine + 1]).addClass('current'); - - $container.scrollTop(0); - - } - - /* - * click handler for loading codeblocks - */ - - $frameContainer.on('click', '.frame', function() { - - var $this = $(this); - var id = /frame\-line\-([\d]*)/.exec($this.attr('id'))[1]; - var $codeFrame = $('#frame-code-' + id); - - if ($codeFrame) { - - $activeLine.removeClass('active'); - $activeFrame.removeClass('active'); - - $this.addClass('active'); - $codeFrame.addClass('active'); - - $activeLine = $this; - $activeFrame = $codeFrame; - - renderCurrentCodeblock(id); - - } - - }); - - var clipboard = new Clipboard('.clipboard'); - var showTooltip = function(elem, msg) { - elem.setAttribute('class', 'clipboard tooltipped tooltipped-s'); - elem.setAttribute('aria-label', msg); - }; - - clipboard.on('success', function(e) { - e.clearSelection(); - - showTooltip(e.trigger, 'Copied!'); - }); - - clipboard.on('error', function(e) { - showTooltip(e.trigger, fallbackMessage(e.action)); - }); - - var btn = document.querySelector('.clipboard'); - - btn.addEventListener('mouseleave', function(e) { - e.currentTarget.setAttribute('class', 'clipboard'); - e.currentTarget.removeAttribute('aria-label'); - }); - - function fallbackMessage(action) { - var actionMsg = ''; - var actionKey = (action === 'cut' ? 'X' : 'C'); - - if (/Mac/i.test(navigator.userAgent)) { - actionMsg = 'Press ⌘-' + actionKey + ' to ' + action; - } else { - actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action; - } - - return actionMsg; - } - - function scrollIntoView($node, $parent) { - var nodeOffset = $node.offset(); - var nodeTop = nodeOffset.top; - var nodeBottom = nodeTop + nodeOffset.height; - var parentScrollTop = $parent.scrollTop(); - var parentHeight = $parent.height(); - - if (nodeTop < 0) { - $parent.scrollTop(parentScrollTop + nodeTop); - } else if (nodeBottom > parentHeight) { - $parent.scrollTop(parentScrollTop + nodeBottom - parentHeight); - } - } - - $(document).on('keydown', function(e) { - var applicationFrames = $frameContainer.hasClass('frames-container-application'), - frameClass = applicationFrames ? '.frame.frame-application' : '.frame'; - - if(e.ctrlKey || e.which === 74 || e.which === 75) { - // CTRL+Arrow-UP/k and Arrow-Down/j support: - // 1) select the next/prev element - // 2) make sure the newly selected element is within the view-scope - // 3) focus the (right) container, so arrow-up/down (without ctrl) scroll the details - if (e.which === 38 /* arrow up */ || e.which === 75 /* k */) { - $activeLine.prev(frameClass).click(); - scrollIntoView($activeLine, $leftPanel); - $container.focus(); - e.preventDefault(); - } else if (e.which === 40 /* arrow down */ || e.which === 74 /* j */) { - $activeLine.next(frameClass).click(); - scrollIntoView($activeLine, $leftPanel); - $container.focus(); - e.preventDefault(); - } - } else if (e.which == 78 /* n */) { - if ($appFramesTab.length) { - setActiveFramesTab($('.frames-tab:not(.frames-tab-active)')); - } - } - }); - - // Render late enough for highlightCurrentLine to be ready - renderCurrentCodeblock(); - - // Avoid to quit the page with some protocol (e.g. IntelliJ Platform REST API) - $ajaxEditors.on('click', function(e){ - e.preventDefault(); - $.get(this.href); - }); - - // Symfony VarDumper: Close the by default expanded objects - $('.sf-dump-expanded') - .removeClass('sf-dump-expanded') - .addClass('sf-dump-compact'); - $('.sf-dump-toggle span').html('▶'); - - // Make the given frames-tab active - function setActiveFramesTab($tab) { - $tab.addClass('frames-tab-active'); - - if ($tab.attr('id') == 'application-frames-tab') { - $frameContainer.addClass('frames-container-application'); - $allFramesTab.removeClass('frames-tab-active'); - } else { - $frameContainer.removeClass('frames-container-application'); - $appFramesTab.removeClass('frames-tab-active'); - } - } - - $('a.frames-tab').on('click', function(e) { - e.preventDefault(); - setActiveFramesTab($(this)); - }); -}); diff --git a/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js b/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js deleted file mode 100644 index 0b2f97ad..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/* Zepto v1.1.3 - zepto event ajax form ie - zeptojs.com/license */ -var Zepto=function(){function L(t){return null==t?String(t):j[T.call(t)]||"object"}function Z(t){return"function"==L(t)}function $(t){return null!=t&&t==t.window}function _(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function D(t){return"object"==L(t)}function R(t){return D(t)&&!$(t)&&Object.getPrototypeOf(t)==Object.prototype}function M(t){return"number"==typeof t.length}function k(t){return s.call(t,function(t){return null!=t})}function z(t){return t.length>0?n.fn.concat.apply([],t):t}function F(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function H(t,e){return"number"!=typeof e||c[F(t)]?e:e+"px"}function I(t){var e,n;return u[t]||(e=a.createElement(t),a.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),u[t]=n),u[t]}function V(t){return"children"in t?o.call(t.children):n.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function U(n,i,r){for(e in i)r&&(R(i[e])||A(i[e]))?(R(i[e])&&!R(n[e])&&(n[e]={}),A(i[e])&&!A(n[e])&&(n[e]=[]),U(n[e],i[e],r)):i[e]!==t&&(n[e]=i[e])}function B(t,e){return null==e?n(t):n(t).filter(e)}function J(t,e,n,i){return Z(e)?e.call(t,n,i):e}function X(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function W(e,n){var i=e.className,r=i&&i.baseVal!==t;return n===t?r?i.baseVal:i:void(r?i.baseVal=n:e.className=n)}function Y(t){var e;try{return t?"true"==t||("false"==t?!1:"null"==t?null:/^0/.test(t)||isNaN(e=Number(t))?/^[\[\{]/.test(t)?n.parseJSON(t):t:e):t}catch(i){return t}}function G(t,e){e(t);for(var n in t.childNodes)G(t.childNodes[n],e)}var t,e,n,i,C,N,r=[],o=r.slice,s=r.filter,a=window.document,u={},f={},c={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,h=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,p=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,d=/^(?:body|html)$/i,m=/([A-Z])/g,g=["val","css","html","text","data","width","height","offset"],v=["after","prepend","before","append"],y=a.createElement("table"),x=a.createElement("tr"),b={tr:a.createElement("tbody"),tbody:y,thead:y,tfoot:y,td:x,th:x,"*":a.createElement("div")},w=/complete|loaded|interactive/,E=/^[\w-]*$/,j={},T=j.toString,S={},O=a.createElement("div"),P={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},A=Array.isArray||function(t){return t instanceof Array};return S.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,r=t.parentNode,o=!r;return o&&(r=O).appendChild(t),i=~S.qsa(r,e).indexOf(t),o&&O.removeChild(t),i},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return s.call(t,function(e,n){return t.indexOf(e)==n})},S.fragment=function(e,i,r){var s,u,f;return h.test(e)&&(s=n(a.createElement(RegExp.$1))),s||(e.replace&&(e=e.replace(p,"<$1>")),i===t&&(i=l.test(e)&&RegExp.$1),i in b||(i="*"),f=b[i],f.innerHTML=""+e,s=n.each(o.call(f.childNodes),function(){f.removeChild(this)})),R(r)&&(u=n(s),n.each(r,function(t,e){g.indexOf(t)>-1?u[t](e):u.attr(t,e)})),s},S.Z=function(t,e){return t=t||[],t.__proto__=n.fn,t.selector=e||"",t},S.isZ=function(t){return t instanceof S.Z},S.init=function(e,i){var r;if(!e)return S.Z();if("string"==typeof e)if(e=e.trim(),"<"==e[0]&&l.test(e))r=S.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}else{if(Z(e))return n(a).ready(e);if(S.isZ(e))return e;if(A(e))r=k(e);else if(D(e))r=[e],e=null;else if(l.test(e))r=S.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}}return S.Z(r,e)},n=function(t,e){return S.init(t,e)},n.extend=function(t){var e,n=o.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){U(t,n,e)}),t},S.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],s=i||r?e.slice(1):e,a=E.test(s);return _(t)&&a&&i?(n=t.getElementById(s))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:o.call(a&&!i?r?t.getElementsByClassName(s):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=function(t,e){return t!==e&&t.contains(e)},n.type=L,n.isFunction=Z,n.isWindow=$,n.isArray=A,n.isPlainObject=R,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return r.indexOf.call(e,t,n)},n.camelCase=C,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.map=function(t,e){var n,r,o,i=[];if(M(t))for(r=0;r=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return r.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return Z(t)?this.not(this.not(t)):n(s.call(this,function(e){return S.matches(e,t)}))},add:function(t,e){return n(N(this.concat(n(t,e))))},is:function(t){return this.length>0&&S.matches(this[0],t)},not:function(e){var i=[];if(Z(e)&&e.call!==t)this.each(function(t){e.call(this,t)||i.push(this)});else{var r="string"==typeof e?this.filter(e):M(e)&&Z(e.item)?o.call(e):n(e);this.forEach(function(t){r.indexOf(t)<0&&i.push(t)})}return n(i)},has:function(t){return this.filter(function(){return D(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!D(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!D(t)?t:n(t)},find:function(t){var e,i=this;return e="object"==typeof t?n(t).filter(function(){var t=this;return r.some.call(i,function(e){return n.contains(e,t)})}):1==this.length?n(S.qsa(this[0],t)):this.map(function(){return S.qsa(this,t)})},closest:function(t,e){var i=this[0],r=!1;for("object"==typeof t&&(r=n(t));i&&!(r?r.indexOf(i)>=0:S.matches(i,t));)i=i!==e&&!_(i)&&i.parentNode;return n(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=n.map(i,function(t){return(t=t.parentNode)&&!_(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return B(e,t)},parent:function(t){return B(N(this.pluck("parentNode")),t)},children:function(t){return B(this.map(function(){return V(this)}),t)},contents:function(){return this.map(function(){return o.call(this.childNodes)})},siblings:function(t){return B(this.map(function(t,e){return s.call(V(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=I(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=Z(t);if(this[0]&&!e)var i=n(t).get(0),r=i.parentNode||this.length>1;return this.each(function(o){n(this).wrapAll(e?t.call(this,o):r?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){n(this[0]).before(t=n(t));for(var e;(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=Z(t);return this.each(function(i){var r=n(this),o=r.contents(),s=e?t.call(this,i):t;o.length?o.wrapAll(s):r.append(s)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var i=n(this);(e===t?"none"==i.css("display"):e)?i.show():i.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0===arguments.length?this.length>0?this[0].innerHTML:null:this.each(function(e){var i=this.innerHTML;n(this).empty().append(J(this,t,e,i))})},text:function(e){return 0===arguments.length?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=e===t?"":""+e})},attr:function(n,i){var r;return"string"==typeof n&&i===t?0==this.length||1!==this[0].nodeType?t:"value"==n&&"INPUT"==this[0].nodeName?this.val():!(r=this[0].getAttribute(n))&&n in this[0]?this[0][n]:r:this.each(function(t){if(1===this.nodeType)if(D(n))for(e in n)X(this,e,n[e]);else X(this,n,J(this,i,t,this.getAttribute(n)))})},removeAttr:function(t){return this.each(function(){1===this.nodeType&&X(this,t)})},prop:function(e,n){return e=P[e]||e,n===t?this[0]&&this[0][e]:this.each(function(t){this[e]=J(this,n,t,this[e])})},data:function(e,n){var i=this.attr("data-"+e.replace(m,"-$1").toLowerCase(),n);return null!==i?Y(i):t},val:function(t){return 0===arguments.length?this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(e){this.value=J(this,t,e,this.value)})},offset:function(t){if(t)return this.each(function(e){var i=n(this),r=J(this,t,e,i.offset()),o=i.offsetParent().offset(),s={top:r.top-o.top,left:r.left-o.left};"static"==i.css("position")&&(s.position="relative"),i.css(s)});if(0==this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,i){if(arguments.length<2){var r=this[0],o=getComputedStyle(r,"");if(!r)return;if("string"==typeof t)return r.style[C(t)]||o.getPropertyValue(t);if(A(t)){var s={};return n.each(A(t)?t:[t],function(t,e){s[e]=r.style[C(e)]||o.getPropertyValue(e)}),s}}var a="";if("string"==L(t))i||0===i?a=F(t)+":"+H(t,i):this.each(function(){this.style.removeProperty(F(t))});else for(e in t)t[e]||0===t[e]?a+=F(e)+":"+H(e,t[e])+";":this.each(function(){this.style.removeProperty(F(e))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?r.some.call(this,function(t){return this.test(W(t))},q(t)):!1},addClass:function(t){return t?this.each(function(e){i=[];var r=W(this),o=J(this,t,e,r);o.split(/\s+/g).forEach(function(t){n(this).hasClass(t)||i.push(t)},this),i.length&&W(this,r+(r?" ":"")+i.join(" "))}):this},removeClass:function(e){return this.each(function(n){return e===t?W(this,""):(i=W(this),J(this,e,n,i).split(/\s+/g).forEach(function(t){i=i.replace(q(t)," ")}),void W(this,i.trim()))})},toggleClass:function(e,i){return e?this.each(function(r){var o=n(this),s=J(this,e,r,W(this));s.split(/\s+/g).forEach(function(e){(i===t?!o.hasClass(e):i)?o.addClass(e):o.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),r=d.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(n(t).css("margin-top"))||0,i.left-=parseFloat(n(t).css("margin-left"))||0,r.top+=parseFloat(n(e[0]).css("border-top-width"))||0,r.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||a.body;t&&!d.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var i=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(r){var o,s=this[0];return r===t?$(s)?s["inner"+i]:_(s)?s.documentElement["scroll"+i]:(o=this.offset())&&o[e]:this.each(function(t){s=n(this),s.css(e,J(this,r,t,s[e]()))})}}),v.forEach(function(t,e){var i=e%2;n.fn[t]=function(){var t,o,r=n.map(arguments,function(e){return t=L(e),"object"==t||"array"==t||null==e?e:S.fragment(e)}),s=this.length>1;return r.length<1?this:this.each(function(t,a){o=i?a:a.parentNode,a=0==e?a.nextSibling:1==e?a.firstChild:2==e?a:null,r.forEach(function(t){if(s)t=t.cloneNode(!0);else if(!o)return n(t).remove();G(o.insertBefore(t,a),function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},n.fn[i?t+"To":"insert"+(e?"Before":"After")]=function(e){return n(e)[t](this),this}}),S.Z.prototype=n.fn,S.uniq=N,S.deserializeValue=Y,n.zepto=S,n}();window.Zepto=Zepto,void 0===window.$&&(window.$=Zepto),function(t){function l(t){return t._zid||(t._zid=e++)}function h(t,e,n,i){if(e=p(e),e.ns)var r=d(e.ns);return(s[l(t)]||[]).filter(function(t){return!(!t||e.e&&t.e!=e.e||e.ns&&!r.test(t.ns)||n&&l(t.fn)!==l(n)||i&&t.sel!=i)})}function p(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function d(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!u&&t.e in f||!!e}function g(t){return c[t]||u&&f[t]||t}function v(e,i,r,o,a,u,f){var h=l(e),d=s[h]||(s[h]=[]);i.split(/\s/).forEach(function(i){if("ready"==i)return t(document).ready(r);var s=p(i);s.fn=r,s.sel=a,s.e in c&&(r=function(e){var n=e.relatedTarget;return!n||n!==this&&!t.contains(this,n)?s.fn.apply(this,arguments):void 0}),s.del=u;var l=u||r;s.proxy=function(t){if(t=j(t),!t.isImmediatePropagationStopped()){t.data=o;var i=l.apply(e,t._args==n?[t]:[t].concat(t._args));return i===!1&&(t.preventDefault(),t.stopPropagation()),i}},s.i=d.length,d.push(s),"addEventListener"in e&&e.addEventListener(g(s.e),s.proxy,m(s,f))})}function y(t,e,n,i,r){var o=l(t);(e||"").split(/\s/).forEach(function(e){h(t,e,n,i).forEach(function(e){delete s[o][e.i],"removeEventListener"in t&&t.removeEventListener(g(e.e),e.proxy,m(e,r))})})}function j(e,i){return(i||!e.isDefaultPrevented)&&(i||(i=e),t.each(E,function(t,n){var r=i[t];e[t]=function(){return this[n]=x,r&&r.apply(i,arguments)},e[n]=b}),(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?i.returnValue===!1:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=x)),e}function T(t){var e,i={originalEvent:t};for(e in t)w.test(e)||t[e]===n||(i[e]=t[e]);return j(i,t)}var n,e=1,i=Array.prototype.slice,r=t.isFunction,o=function(t){return"string"==typeof t},s={},a={},u="onfocusin"in window,f={focus:"focusin",blur:"focusout"},c={mouseenter:"mouseover",mouseleave:"mouseout"};a.click=a.mousedown=a.mouseup=a.mousemove="MouseEvents",t.event={add:v,remove:y},t.proxy=function(e,n){if(r(e)){var i=function(){return e.apply(n,arguments)};return i._zid=l(e),i}if(o(n))return t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var x=function(){return!0},b=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$)/,E={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,s,a,u,f){var c,l,h=this;return e&&!o(e)?(t.each(e,function(t,e){h.on(t,s,a,e,f)}),h):(o(s)||r(u)||u===!1||(u=a,a=s,s=n),(r(a)||a===!1)&&(u=a,a=n),u===!1&&(u=b),h.each(function(n,r){f&&(c=function(t){return y(r,t.type,u),u.apply(this,arguments)}),s&&(l=function(e){var n,o=t(e.target).closest(s,r).get(0);return o&&o!==r?(n=t.extend(T(e),{currentTarget:o,liveFired:r}),(c||u).apply(o,[n].concat(i.call(arguments,1)))):void 0}),v(r,e,u,a,s,l||c)}))},t.fn.off=function(e,i,s){var a=this;return e&&!o(e)?(t.each(e,function(t,e){a.off(t,i,e)}),a):(o(i)||r(s)||s===!1||(s=i,i=n),s===!1&&(s=b),a.each(function(){y(this,e,s,i)}))},t.fn.trigger=function(e,n){return e=o(e)||t.isPlainObject(e)?t.Event(e):j(e),e._args=n,this.each(function(){"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,n){var i,r;return this.each(function(s,a){i=T(o(e)?t.Event(e):e),i._args=n,i.target=a,t.each(h(a,e.type||e),function(t,e){return r=e.proxy(i),i.isImmediatePropagationStopped()?!1:void 0})}),r},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.trigger(e)}}),["focus","blur"].forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.each(function(){try{this[e]()}catch(t){}}),this}}),t.Event=function(t,e){o(t)||(e=t,t=e.type);var n=document.createEvent(a[t]||"Events"),i=!0;if(e)for(var r in e)"bubbles"==r?i=!!e[r]:n[r]=e[r];return n.initEvent(t,i,!0),j(n)}}(Zepto),function(t){function l(e,n,i){var r=t.Event(n);return t(e).trigger(r,i),!r.isDefaultPrevented()}function h(t,e,i,r){return t.global?l(e||n,i,r):void 0}function p(e){e.global&&0===t.active++&&h(e,null,"ajaxStart")}function d(e){e.global&&!--t.active&&h(e,null,"ajaxStop")}function m(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||h(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void h(e,n,"ajaxSend",[t,e])}function g(t,e,n,i){var r=n.context,o="success";n.success.call(r,t,o,e),i&&i.resolveWith(r,[t,o,e]),h(n,r,"ajaxSuccess",[e,n,t]),y(o,e,n)}function v(t,e,n,i,r){var o=i.context;i.error.call(o,n,e,t),r&&r.rejectWith(o,[n,e,t]),h(i,o,"ajaxError",[n,i,t||e]),y(e,n,i)}function y(t,e,n){var i=n.context;n.complete.call(i,e,t),h(n,i,"ajaxComplete",[e,n]),d(n)}function x(){}function b(t){return t&&(t=t.split(";",2)[0]),t&&(t==f?"html":t==u?"json":s.test(t)?"script":a.test(t)&&"xml")||"text"}function w(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function E(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=w(e.url,e.data),e.data=void 0)}function j(e,n,i,r){return t.isFunction(n)&&(r=i,i=n,n=void 0),t.isFunction(i)||(r=i,i=void 0),{url:e,data:n,success:i,dataType:r}}function S(e,n,i,r){var o,s=t.isArray(n),a=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),r&&(n=i?r:r+"["+(a||"object"==o||"array"==o?n:"")+"]"),!r&&s?e.add(u.name,u.value):"array"==o||!i&&"object"==o?S(e,u,i,n):e.add(n,u)})}var i,r,e=0,n=window.document,o=/)<[^<]*)*<\/script>/gi,s=/^(?:text|application)\/javascript/i,a=/^(?:text|application)\/xml/i,u="application/json",f="text/html",c=/^\s*$/;t.active=0,t.ajaxJSONP=function(i,r){if(!("type"in i))return t.ajax(i);var f,h,o=i.jsonpCallback,s=(t.isFunction(o)?o():o)||"jsonp"+ ++e,a=n.createElement("script"),u=window[s],c=function(e){t(a).triggerHandler("error",e||"abort")},l={abort:c};return r&&r.promise(l),t(a).on("load error",function(e,n){clearTimeout(h),t(a).off().remove(),"error"!=e.type&&f?g(f[0],l,i,r):v(null,n||"error",l,i,r),window[s]=u,f&&t.isFunction(u)&&u(f[0]),u=f=void 0}),m(l,i)===!1?(c("abort"),l):(window[s]=function(){f=arguments},a.src=i.url.replace(/\?(.+)=\?/,"?$1="+s),n.head.appendChild(a),i.timeout>0&&(h=setTimeout(function(){c("timeout")},i.timeout)),l)},t.ajaxSettings={type:"GET",beforeSend:x,success:x,error:x,complete:x,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:u,xml:"application/xml, text/xml",html:f,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){var n=t.extend({},e||{}),o=t.Deferred&&t.Deferred();for(i in t.ajaxSettings)void 0===n[i]&&(n[i]=t.ajaxSettings[i]);p(n),n.crossDomain||(n.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(n.url)&&RegExp.$2!=window.location.host),n.url||(n.url=window.location.toString()),E(n),n.cache===!1&&(n.url=w(n.url,"_="+Date.now()));var s=n.dataType,a=/\?.+=\?/.test(n.url);if("jsonp"==s||a)return a||(n.url=w(n.url,n.jsonp?n.jsonp+"=?":n.jsonp===!1?"":"callback=?")),t.ajaxJSONP(n,o);var j,u=n.accepts[s],f={},l=function(t,e){f[t.toLowerCase()]=[t,e]},h=/^([\w-]+:)\/\//.test(n.url)?RegExp.$1:window.location.protocol,d=n.xhr(),y=d.setRequestHeader;if(o&&o.promise(d),n.crossDomain||l("X-Requested-With","XMLHttpRequest"),l("Accept",u||"*/*"),(u=n.mimeType||u)&&(u.indexOf(",")>-1&&(u=u.split(",",2)[0]),d.overrideMimeType&&d.overrideMimeType(u)),(n.contentType||n.contentType!==!1&&n.data&&"GET"!=n.type.toUpperCase())&&l("Content-Type",n.contentType||"application/x-www-form-urlencoded"),n.headers)for(r in n.headers)l(r,n.headers[r]);if(d.setRequestHeader=l,d.onreadystatechange=function(){if(4==d.readyState){d.onreadystatechange=x,clearTimeout(j);var e,i=!1;if(d.status>=200&&d.status<300||304==d.status||0==d.status&&"file:"==h){s=s||b(n.mimeType||d.getResponseHeader("content-type")),e=d.responseText;try{"script"==s?(1,eval)(e):"xml"==s?e=d.responseXML:"json"==s&&(e=c.test(e)?null:t.parseJSON(e))}catch(r){i=r}i?v(i,"parsererror",d,n,o):g(e,d,n,o)}else v(d.statusText||null,d.status?"error":"abort",d,n,o)}},m(d,n)===!1)return d.abort(),v(null,"abort",d,n,o),d;if(n.xhrFields)for(r in n.xhrFields)d[r]=n.xhrFields[r];var T="async"in n?n.async:!0;d.open(n.type,n.url,T,n.username,n.password);for(r in f)y.apply(d,f[r]);return n.timeout>0&&(j=setTimeout(function(){d.onreadystatechange=x,d.abort(),v(null,"timeout",d,n,o)},n.timeout)),d.send(n.data?n.data:null),d},t.get=function(){return t.ajax(j.apply(null,arguments))},t.post=function(){var e=j.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=j.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var a,r=this,s=e.split(/\s/),u=j(e,n,i),f=u.success;return s.length>1&&(u.url=s[0],a=s[1]),u.success=function(e){r.html(a?t("
").html(e.replace(o,"")).find(a):e),f&&f.apply(r,arguments)},t.ajax(u),this};var T=encodeURIComponent;t.param=function(t,e){var n=[];return n.add=function(t,e){this.push(T(t)+"="+T(e))},S(n,t,e),n.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var n,e=[];return t([].slice.call(this.get(0).elements)).each(function(){n=t(this);var i=n.attr("type");"fieldset"!=this.nodeName.toLowerCase()&&!this.disabled&&"submit"!=i&&"reset"!=i&&"button"!=i&&("radio"!=i&&"checkbox"!=i||this.checked)&&e.push({name:n.attr("name"),value:n.val()})}),e},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(e)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(t){"__proto__"in{}||t.extend(t.zepto,{Z:function(e,n){return e=e||[],t.extend(e,t.fn),e.selector=n||"",e.__Z=!0,e},isZ:function(e){return"array"===t.type(e)&&"__Z"in e}});try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;window.getComputedStyle=function(t){try{return n(t)}catch(e){return null}}}}(Zepto); diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php deleted file mode 100644 index 8db1493c..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php +++ /dev/null @@ -1,42 +0,0 @@ - -
-

Environment & details:

- -
- $data): ?> -
- - - - - - - - - - $value): ?> - - - - - -
KeyValue
escape($k) ?>dump($value) ?>
- - - empty - -
- -
- - -
- - $handler): ?> -
- . escape(get_class($handler)) ?> -
- -
- -
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php deleted file mode 100644 index 534f7c34..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php +++ /dev/null @@ -1,63 +0,0 @@ - -
- $frame): ?> - getLine(); ?> -
- - getFileLines($line - 20, 40); - - // getFileLines can return null if there is no source code - if ($range): - $range = array_map(function ($line) { return empty($line) ? ' ' : $line;}, $range); - $start = key($range) + 1; - $code = join("\n", $range); - ?> -
escape($code) ?>
- - - - - dumpArgs($frame); ?> - -
- Arguments -
-
- -
- - - getComments(); - ?> -
- $comment): ?> - -
- escape($context) ?> - escapeButPreserveUris($comment) ?> -
- -
- -
- -
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php deleted file mode 100644 index 7e8fa3d4..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php +++ /dev/null @@ -1,17 +0,0 @@ - - $frame): ?> -
- -
- breakOnDelimiter('\\', $tpl->escape($frame->getClass() ?: '')) ?> - breakOnDelimiter('\\', $tpl->escape($frame->getFunction() ?: '')) ?> -
- -
- getFile() ? $tpl->breakOnDelimiter('/', $tpl->shorten($tpl->escape($frame->getFile()))) : '<#unknown>' ?>getLine() ?> -
-
- diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php deleted file mode 100644 index 47175df2..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php +++ /dev/null @@ -1,3 +0,0 @@ -
- render($frame_list) ?> -
\ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php deleted file mode 100644 index e32cf889..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php +++ /dev/null @@ -1,20 +0,0 @@ -
- - - - Application frames (countIsApplication() ?>) - - - - Application frames (countIsApplication() ?>) - - - - All frames () - - - - Stack frames () - - -
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php deleted file mode 100644 index 11e1c1db..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php +++ /dev/null @@ -1,74 +0,0 @@ -
-
- $nameSection): ?> - - escape($nameSection) ?> - - escape($nameSection) . ' \\' ?> - - - - (escape($code) ?>) - -
- -
- - escape($message) ?> - - No message - - - - - escape($plain_exception) ?> - -
-
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php deleted file mode 100644 index f682cbba..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php +++ /dev/null @@ -1,3 +0,0 @@ -
- render($header) ?> -
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php deleted file mode 100644 index 76911d0d..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - <?php echo $tpl->escape($page_title) ?> - - - - - -
-
- - render($panel_left_outer) ?> - - render($panel_details_outer) ?> - -
-
- - - - - - - diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php deleted file mode 100644 index a85e4511..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php +++ /dev/null @@ -1,2 +0,0 @@ -render($frame_code) ?> -render($env_details) ?> \ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php deleted file mode 100644 index 8162d8c5..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php +++ /dev/null @@ -1,3 +0,0 @@ -
- render($panel_details) ?> -
\ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php deleted file mode 100644 index 3d96546a..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php +++ /dev/null @@ -1,3 +0,0 @@ -render($header_outer) ?> -render($frames_description) ?> -render($frames_container) ?> \ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php deleted file mode 100644 index 77b575c1..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php +++ /dev/null @@ -1,3 +0,0 @@ -
- render($panel_left) ?> -
\ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Run.php b/vendor/filp/whoops/src/Whoops/Run.php deleted file mode 100644 index 1d51f1cf..00000000 --- a/vendor/filp/whoops/src/Whoops/Run.php +++ /dev/null @@ -1,410 +0,0 @@ - - */ - -namespace Whoops; - -use InvalidArgumentException; -use Whoops\Exception\ErrorException; -use Whoops\Exception\Inspector; -use Whoops\Handler\CallbackHandler; -use Whoops\Handler\Handler; -use Whoops\Handler\HandlerInterface; -use Whoops\Util\Misc; -use Whoops\Util\SystemFacade; - -final class Run implements RunInterface -{ - private $isRegistered; - private $allowQuit = true; - private $sendOutput = true; - - /** - * @var integer|false - */ - private $sendHttpCode = 500; - - /** - * @var HandlerInterface[] - */ - private $handlerStack = []; - - private $silencedPatterns = []; - - private $system; - - public function __construct(SystemFacade $system = null) - { - $this->system = $system ?: new SystemFacade; - } - - /** - * Pushes a handler to the end of the stack - * - * @throws InvalidArgumentException If argument is not callable or instance of HandlerInterface - * @param Callable|HandlerInterface $handler - * @return Run - */ - public function pushHandler($handler) - { - if (is_callable($handler)) { - $handler = new CallbackHandler($handler); - } - - if (!$handler instanceof HandlerInterface) { - throw new InvalidArgumentException( - "Argument to " . __METHOD__ . " must be a callable, or instance of " - . "Whoops\\Handler\\HandlerInterface" - ); - } - - $this->handlerStack[] = $handler; - return $this; - } - - /** - * Removes the last handler in the stack and returns it. - * Returns null if there"s nothing else to pop. - * @return null|HandlerInterface - */ - public function popHandler() - { - return array_pop($this->handlerStack); - } - - /** - * Returns an array with all handlers, in the - * order they were added to the stack. - * @return array - */ - public function getHandlers() - { - return $this->handlerStack; - } - - /** - * Clears all handlers in the handlerStack, including - * the default PrettyPage handler. - * @return Run - */ - public function clearHandlers() - { - $this->handlerStack = []; - return $this; - } - - /** - * @param \Throwable $exception - * @return Inspector - */ - private function getInspector($exception) - { - return new Inspector($exception); - } - - /** - * Registers this instance as an error handler. - * @return Run - */ - public function register() - { - if (!$this->isRegistered) { - // Workaround PHP bug 42098 - // https://bugs.php.net/bug.php?id=42098 - class_exists("\\Whoops\\Exception\\ErrorException"); - class_exists("\\Whoops\\Exception\\FrameCollection"); - class_exists("\\Whoops\\Exception\\Frame"); - class_exists("\\Whoops\\Exception\\Inspector"); - - $this->system->setErrorHandler([$this, self::ERROR_HANDLER]); - $this->system->setExceptionHandler([$this, self::EXCEPTION_HANDLER]); - $this->system->registerShutdownFunction([$this, self::SHUTDOWN_HANDLER]); - - $this->isRegistered = true; - } - - return $this; - } - - /** - * Unregisters all handlers registered by this Whoops\Run instance - * @return Run - */ - public function unregister() - { - if ($this->isRegistered) { - $this->system->restoreExceptionHandler(); - $this->system->restoreErrorHandler(); - - $this->isRegistered = false; - } - - return $this; - } - - /** - * Should Whoops allow Handlers to force the script to quit? - * @param bool|int $exit - * @return bool - */ - public function allowQuit($exit = null) - { - if (func_num_args() == 0) { - return $this->allowQuit; - } - - return $this->allowQuit = (bool) $exit; - } - - /** - * Silence particular errors in particular files - * @param array|string $patterns List or a single regex pattern to match - * @param int $levels Defaults to E_STRICT | E_DEPRECATED - * @return \Whoops\Run - */ - public function silenceErrorsInPaths($patterns, $levels = 10240) - { - $this->silencedPatterns = array_merge( - $this->silencedPatterns, - array_map( - function ($pattern) use ($levels) { - return [ - "pattern" => $pattern, - "levels" => $levels, - ]; - }, - (array) $patterns - ) - ); - return $this; - } - - - /** - * Returns an array with silent errors in path configuration - * - * @return array - */ - public function getSilenceErrorsInPaths() - { - return $this->silencedPatterns; - } - - /* - * Should Whoops send HTTP error code to the browser if possible? - * Whoops will by default send HTTP code 500, but you may wish to - * use 502, 503, or another 5xx family code. - * - * @param bool|int $code - * @return int|false - */ - public function sendHttpCode($code = null) - { - if (func_num_args() == 0) { - return $this->sendHttpCode; - } - - if (!$code) { - return $this->sendHttpCode = false; - } - - if ($code === true) { - $code = 500; - } - - if ($code < 400 || 600 <= $code) { - throw new InvalidArgumentException( - "Invalid status code '$code', must be 4xx or 5xx" - ); - } - - return $this->sendHttpCode = $code; - } - - /** - * Should Whoops push output directly to the client? - * If this is false, output will be returned by handleException - * @param bool|int $send - * @return bool - */ - public function writeToOutput($send = null) - { - if (func_num_args() == 0) { - return $this->sendOutput; - } - - return $this->sendOutput = (bool) $send; - } - - /** - * Handles an exception, ultimately generating a Whoops error - * page. - * - * @param \Throwable $exception - * @return string Output generated by handlers - */ - public function handleException($exception) - { - // Walk the registered handlers in the reverse order - // they were registered, and pass off the exception - $inspector = $this->getInspector($exception); - - // Capture output produced while handling the exception, - // we might want to send it straight away to the client, - // or return it silently. - $this->system->startOutputBuffering(); - - // Just in case there are no handlers: - $handlerResponse = null; - $handlerContentType = null; - - foreach (array_reverse($this->handlerStack) as $handler) { - $handler->setRun($this); - $handler->setInspector($inspector); - $handler->setException($exception); - - // The HandlerInterface does not require an Exception passed to handle() - // and neither of our bundled handlers use it. - // However, 3rd party handlers may have already relied on this parameter, - // and removing it would be possibly breaking for users. - $handlerResponse = $handler->handle($exception); - - // Collect the content type for possible sending in the headers. - $handlerContentType = method_exists($handler, 'contentType') ? $handler->contentType() : null; - - if (in_array($handlerResponse, [Handler::LAST_HANDLER, Handler::QUIT])) { - // The Handler has handled the exception in some way, and - // wishes to quit execution (Handler::QUIT), or skip any - // other handlers (Handler::LAST_HANDLER). If $this->allowQuit - // is false, Handler::QUIT behaves like Handler::LAST_HANDLER - break; - } - } - - $willQuit = $handlerResponse == Handler::QUIT && $this->allowQuit(); - - $output = $this->system->cleanOutputBuffer(); - - // If we're allowed to, send output generated by handlers directly - // to the output, otherwise, and if the script doesn't quit, return - // it so that it may be used by the caller - if ($this->writeToOutput()) { - // @todo Might be able to clean this up a bit better - if ($willQuit) { - // Cleanup all other output buffers before sending our output: - while ($this->system->getOutputBufferLevel() > 0) { - $this->system->endOutputBuffering(); - } - - // Send any headers if needed: - if (Misc::canSendHeaders() && $handlerContentType) { - header("Content-Type: {$handlerContentType}"); - } - } - - $this->writeToOutputNow($output); - } - - if ($willQuit) { - // HHVM fix for https://github.com/facebook/hhvm/issues/4055 - $this->system->flushOutputBuffer(); - - $this->system->stopExecution(1); - } - - return $output; - } - - /** - * Converts generic PHP errors to \ErrorException - * instances, before passing them off to be handled. - * - * This method MUST be compatible with set_error_handler. - * - * @param int $level - * @param string $message - * @param string $file - * @param int $line - * - * @return bool - * @throws ErrorException - */ - public function handleError($level, $message, $file = null, $line = null) - { - if ($level & $this->system->getErrorReportingLevel()) { - foreach ($this->silencedPatterns as $entry) { - $pathMatches = (bool) preg_match($entry["pattern"], $file); - $levelMatches = $level & $entry["levels"]; - if ($pathMatches && $levelMatches) { - // Ignore the error, abort handling - // See https://github.com/filp/whoops/issues/418 - return true; - } - } - - // XXX we pass $level for the "code" param only for BC reasons. - // see https://github.com/filp/whoops/issues/267 - $exception = new ErrorException($message, /*code*/ $level, /*severity*/ $level, $file, $line); - if ($this->canThrowExceptions) { - throw $exception; - } else { - $this->handleException($exception); - } - // Do not propagate errors which were already handled by Whoops. - return true; - } - - // Propagate error to the next handler, allows error_get_last() to - // work on silenced errors. - return false; - } - - /** - * Special case to deal with Fatal errors and the like. - */ - public function handleShutdown() - { - // If we reached this step, we are in shutdown handler. - // An exception thrown in a shutdown handler will not be propagated - // to the exception handler. Pass that information along. - $this->canThrowExceptions = false; - - $error = $this->system->getLastError(); - if ($error && Misc::isLevelFatal($error['type'])) { - // If there was a fatal error, - // it was not handled in handleError yet. - $this->handleError( - $error['type'], - $error['message'], - $error['file'], - $error['line'] - ); - } - } - - /** - * In certain scenarios, like in shutdown handler, we can not throw exceptions - * @var bool - */ - private $canThrowExceptions = true; - - /** - * Echo something to the browser - * @param string $output - * @return $this - */ - private function writeToOutputNow($output) - { - if ($this->sendHttpCode() && \Whoops\Util\Misc::canSendHeaders()) { - $this->system->setHttpResponseCode( - $this->sendHttpCode() - ); - } - - echo $output; - - return $this; - } -} diff --git a/vendor/filp/whoops/src/Whoops/RunInterface.php b/vendor/filp/whoops/src/Whoops/RunInterface.php deleted file mode 100644 index 67ba90d7..00000000 --- a/vendor/filp/whoops/src/Whoops/RunInterface.php +++ /dev/null @@ -1,131 +0,0 @@ - - */ - -namespace Whoops; - -use InvalidArgumentException; -use Whoops\Exception\ErrorException; -use Whoops\Handler\HandlerInterface; - -interface RunInterface -{ - const EXCEPTION_HANDLER = "handleException"; - const ERROR_HANDLER = "handleError"; - const SHUTDOWN_HANDLER = "handleShutdown"; - - /** - * Pushes a handler to the end of the stack - * - * @throws InvalidArgumentException If argument is not callable or instance of HandlerInterface - * @param Callable|HandlerInterface $handler - * @return Run - */ - public function pushHandler($handler); - - /** - * Removes the last handler in the stack and returns it. - * Returns null if there"s nothing else to pop. - * - * @return null|HandlerInterface - */ - public function popHandler(); - - /** - * Returns an array with all handlers, in the - * order they were added to the stack. - * - * @return array - */ - public function getHandlers(); - - /** - * Clears all handlers in the handlerStack, including - * the default PrettyPage handler. - * - * @return Run - */ - public function clearHandlers(); - - /** - * Registers this instance as an error handler. - * - * @return Run - */ - public function register(); - - /** - * Unregisters all handlers registered by this Whoops\Run instance - * - * @return Run - */ - public function unregister(); - - /** - * Should Whoops allow Handlers to force the script to quit? - * - * @param bool|int $exit - * @return bool - */ - public function allowQuit($exit = null); - - /** - * Silence particular errors in particular files - * - * @param array|string $patterns List or a single regex pattern to match - * @param int $levels Defaults to E_STRICT | E_DEPRECATED - * @return \Whoops\Run - */ - public function silenceErrorsInPaths($patterns, $levels = 10240); - - /** - * Should Whoops send HTTP error code to the browser if possible? - * Whoops will by default send HTTP code 500, but you may wish to - * use 502, 503, or another 5xx family code. - * - * @param bool|int $code - * @return int|false - */ - public function sendHttpCode($code = null); - - /** - * Should Whoops push output directly to the client? - * If this is false, output will be returned by handleException - * - * @param bool|int $send - * @return bool - */ - public function writeToOutput($send = null); - - /** - * Handles an exception, ultimately generating a Whoops error - * page. - * - * @param \Throwable $exception - * @return string Output generated by handlers - */ - public function handleException($exception); - - /** - * Converts generic PHP errors to \ErrorException - * instances, before passing them off to be handled. - * - * This method MUST be compatible with set_error_handler. - * - * @param int $level - * @param string $message - * @param string $file - * @param int $line - * - * @return bool - * @throws ErrorException - */ - public function handleError($level, $message, $file = null, $line = null); - - /** - * Special case to deal with Fatal errors and the like. - */ - public function handleShutdown(); -} diff --git a/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php b/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php deleted file mode 100644 index 8c828fd9..00000000 --- a/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php +++ /dev/null @@ -1,36 +0,0 @@ - - */ - -namespace Whoops\Util; - -/** - * Used as output callable for Symfony\Component\VarDumper\Dumper\HtmlDumper::dump() - * - * @see TemplateHelper::dump() - */ -class HtmlDumperOutput -{ - private $output; - - public function __invoke($line, $depth) - { - // A negative depth means "end of dump" - if ($depth >= 0) { - // Adds a two spaces indentation to the line - $this->output .= str_repeat(' ', $depth) . $line . "\n"; - } - } - - public function getOutput() - { - return $this->output; - } - - public function clear() - { - $this->output = null; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Util/Misc.php b/vendor/filp/whoops/src/Whoops/Util/Misc.php deleted file mode 100644 index 001a6879..00000000 --- a/vendor/filp/whoops/src/Whoops/Util/Misc.php +++ /dev/null @@ -1,77 +0,0 @@ - - */ - -namespace Whoops\Util; - -class Misc -{ - /** - * Can we at this point in time send HTTP headers? - * - * Currently this checks if we are even serving an HTTP request, - * as opposed to running from a command line. - * - * If we are serving an HTTP request, we check if it's not too late. - * - * @return bool - */ - public static function canSendHeaders() - { - return isset($_SERVER["REQUEST_URI"]) && !headers_sent(); - } - - public static function isAjaxRequest() - { - return ( - !empty($_SERVER['HTTP_X_REQUESTED_WITH']) - && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); - } - - /** - * Check, if possible, that this execution was triggered by a command line. - * @return bool - */ - public static function isCommandLine() - { - return PHP_SAPI == 'cli'; - } - - /** - * Translate ErrorException code into the represented constant. - * - * @param int $error_code - * @return string - */ - public static function translateErrorCode($error_code) - { - $constants = get_defined_constants(true); - if (array_key_exists('Core', $constants)) { - foreach ($constants['Core'] as $constant => $value) { - if (substr($constant, 0, 2) == 'E_' && $value == $error_code) { - return $constant; - } - } - } - return "E_UNKNOWN"; - } - - /** - * Determine if an error level is fatal (halts execution) - * - * @param int $level - * @return bool - */ - public static function isLevelFatal($level) - { - $errors = E_ERROR; - $errors |= E_PARSE; - $errors |= E_CORE_ERROR; - $errors |= E_CORE_WARNING; - $errors |= E_COMPILE_ERROR; - $errors |= E_COMPILE_WARNING; - return ($level & $errors) > 0; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php b/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php deleted file mode 100644 index cc82e7ff..00000000 --- a/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php +++ /dev/null @@ -1,137 +0,0 @@ - - */ - -namespace Whoops\Util; - -class SystemFacade -{ - /** - * Turns on output buffering. - * - * @return bool - */ - public function startOutputBuffering() - { - return ob_start(); - } - - /** - * @param callable $handler - * @param int $types - * - * @return callable|null - */ - public function setErrorHandler(callable $handler, $types = 'use-php-defaults') - { - // Workaround for PHP 5.5 - if ($types === 'use-php-defaults') { - $types = E_ALL | E_STRICT; - } - return set_error_handler($handler, $types); - } - - /** - * @param callable $handler - * - * @return callable|null - */ - public function setExceptionHandler(callable $handler) - { - return set_exception_handler($handler); - } - - /** - * @return void - */ - public function restoreExceptionHandler() - { - restore_exception_handler(); - } - - /** - * @return void - */ - public function restoreErrorHandler() - { - restore_error_handler(); - } - - /** - * @param callable $function - * - * @return void - */ - public function registerShutdownFunction(callable $function) - { - register_shutdown_function($function); - } - - /** - * @return string|false - */ - public function cleanOutputBuffer() - { - return ob_get_clean(); - } - - /** - * @return int - */ - public function getOutputBufferLevel() - { - return ob_get_level(); - } - - /** - * @return bool - */ - public function endOutputBuffering() - { - return ob_end_clean(); - } - - /** - * @return void - */ - public function flushOutputBuffer() - { - flush(); - } - - /** - * @return int - */ - public function getErrorReportingLevel() - { - return error_reporting(); - } - - /** - * @return array|null - */ - public function getLastError() - { - return error_get_last(); - } - - /** - * @param int $httpCode - * - * @return int - */ - public function setHttpResponseCode($httpCode) - { - return http_response_code($httpCode); - } - - /** - * @param int $exitStatus - */ - public function stopExecution($exitStatus) - { - exit($exitStatus); - } -} diff --git a/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php b/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php deleted file mode 100644 index 00f6ae49..00000000 --- a/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php +++ /dev/null @@ -1,352 +0,0 @@ - - */ - -namespace Whoops\Util; - -use Symfony\Component\VarDumper\Caster\Caster; -use Symfony\Component\VarDumper\Cloner\AbstractCloner; -use Symfony\Component\VarDumper\Cloner\VarCloner; -use Symfony\Component\VarDumper\Dumper\HtmlDumper; -use Whoops\Exception\Frame; - -/** - * Exposes useful tools for working with/in templates - */ -class TemplateHelper -{ - /** - * An array of variables to be passed to all templates - * @var array - */ - private $variables = []; - - /** - * @var HtmlDumper - */ - private $htmlDumper; - - /** - * @var HtmlDumperOutput - */ - private $htmlDumperOutput; - - /** - * @var AbstractCloner - */ - private $cloner; - - /** - * @var string - */ - private $applicationRootPath; - - public function __construct() - { - // root path for ordinary composer projects - $this->applicationRootPath = dirname(dirname(dirname(dirname(dirname(dirname(__DIR__)))))); - } - - /** - * Escapes a string for output in an HTML document - * - * @param string $raw - * @return string - */ - public function escape($raw) - { - $flags = ENT_QUOTES; - - // HHVM has all constants defined, but only ENT_IGNORE - // works at the moment - if (defined("ENT_SUBSTITUTE") && !defined("HHVM_VERSION")) { - $flags |= ENT_SUBSTITUTE; - } else { - // This is for 5.3. - // The documentation warns of a potential security issue, - // but it seems it does not apply in our case, because - // we do not blacklist anything anywhere. - $flags |= ENT_IGNORE; - } - - $raw = str_replace(chr(9), ' ', $raw); - - return htmlspecialchars($raw, $flags, "UTF-8"); - } - - /** - * Escapes a string for output in an HTML document, but preserves - * URIs within it, and converts them to clickable anchor elements. - * - * @param string $raw - * @return string - */ - public function escapeButPreserveUris($raw) - { - $escaped = $this->escape($raw); - return preg_replace( - "@([A-z]+?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@", - "$1", - $escaped - ); - } - - /** - * Makes sure that the given string breaks on the delimiter. - * - * @param string $delimiter - * @param string $s - * @return string - */ - public function breakOnDelimiter($delimiter, $s) - { - $parts = explode($delimiter, $s); - foreach ($parts as &$part) { - $part = '
' . $part . '
'; - } - - return implode($delimiter, $parts); - } - - /** - * Replace the part of the path that all files have in common. - * - * @param string $path - * @return string - */ - public function shorten($path) - { - if ($this->applicationRootPath != "/") { - $path = str_replace($this->applicationRootPath, '…', $path); - } - - return $path; - } - - private function getDumper() - { - if (!$this->htmlDumper && class_exists('Symfony\Component\VarDumper\Cloner\VarCloner')) { - $this->htmlDumperOutput = new HtmlDumperOutput(); - // re-use the same var-dumper instance, so it won't re-render the global styles/scripts on each dump. - $this->htmlDumper = new HtmlDumper($this->htmlDumperOutput); - - $styles = [ - 'default' => 'color:#FFFFFF; line-height:normal; font:12px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace !important; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: normal', - 'num' => 'color:#BCD42A', - 'const' => 'color: #4bb1b1;', - 'str' => 'color:#BCD42A', - 'note' => 'color:#ef7c61', - 'ref' => 'color:#A0A0A0', - 'public' => 'color:#FFFFFF', - 'protected' => 'color:#FFFFFF', - 'private' => 'color:#FFFFFF', - 'meta' => 'color:#FFFFFF', - 'key' => 'color:#BCD42A', - 'index' => 'color:#ef7c61', - ]; - $this->htmlDumper->setStyles($styles); - } - - return $this->htmlDumper; - } - - /** - * Format the given value into a human readable string. - * - * @param mixed $value - * @return string - */ - public function dump($value) - { - $dumper = $this->getDumper(); - - if ($dumper) { - // re-use the same DumpOutput instance, so it won't re-render the global styles/scripts on each dump. - // exclude verbose information (e.g. exception stack traces) - if (class_exists('Symfony\Component\VarDumper\Caster\Caster')) { - $cloneVar = $this->getCloner()->cloneVar($value, Caster::EXCLUDE_VERBOSE); - // Symfony VarDumper 2.6 Caster class dont exist. - } else { - $cloneVar = $this->getCloner()->cloneVar($value); - } - - $dumper->dump( - $cloneVar, - $this->htmlDumperOutput - ); - - $output = $this->htmlDumperOutput->getOutput(); - $this->htmlDumperOutput->clear(); - - return $output; - } - - return htmlspecialchars(print_r($value, true)); - } - - /** - * Format the args of the given Frame as a human readable html string - * - * @param Frame $frame - * @return string the rendered html - */ - public function dumpArgs(Frame $frame) - { - // we support frame args only when the optional dumper is available - if (!$this->getDumper()) { - return ''; - } - - $html = ''; - $numFrames = count($frame->getArgs()); - - if ($numFrames > 0) { - $html = '
    '; - foreach ($frame->getArgs() as $j => $frameArg) { - $html .= '
  1. '. $this->dump($frameArg) .'
  2. '; - } - $html .= '
'; - } - - return $html; - } - - /** - * Convert a string to a slug version of itself - * - * @param string $original - * @return string - */ - public function slug($original) - { - $slug = str_replace(" ", "-", $original); - $slug = preg_replace('/[^\w\d\-\_]/i', '', $slug); - return strtolower($slug); - } - - /** - * Given a template path, render it within its own scope. This - * method also accepts an array of additional variables to be - * passed to the template. - * - * @param string $template - * @param array $additionalVariables - */ - public function render($template, array $additionalVariables = null) - { - $variables = $this->getVariables(); - - // Pass the helper to the template: - $variables["tpl"] = $this; - - if ($additionalVariables !== null) { - $variables = array_replace($variables, $additionalVariables); - } - - call_user_func(function () { - extract(func_get_arg(1)); - require func_get_arg(0); - }, $template, $variables); - } - - /** - * Sets the variables to be passed to all templates rendered - * by this template helper. - * - * @param array $variables - */ - public function setVariables(array $variables) - { - $this->variables = $variables; - } - - /** - * Sets a single template variable, by its name: - * - * @param string $variableName - * @param mixed $variableValue - */ - public function setVariable($variableName, $variableValue) - { - $this->variables[$variableName] = $variableValue; - } - - /** - * Gets a single template variable, by its name, or - * $defaultValue if the variable does not exist - * - * @param string $variableName - * @param mixed $defaultValue - * @return mixed - */ - public function getVariable($variableName, $defaultValue = null) - { - return isset($this->variables[$variableName]) ? - $this->variables[$variableName] : $defaultValue; - } - - /** - * Unsets a single template variable, by its name - * - * @param string $variableName - */ - public function delVariable($variableName) - { - unset($this->variables[$variableName]); - } - - /** - * Returns all variables for this helper - * - * @return array - */ - public function getVariables() - { - return $this->variables; - } - - /** - * Set the cloner used for dumping variables. - * - * @param AbstractCloner $cloner - */ - public function setCloner($cloner) - { - $this->cloner = $cloner; - } - - /** - * Get the cloner used for dumping variables. - * - * @return AbstractCloner - */ - public function getCloner() - { - if (!$this->cloner) { - $this->cloner = new VarCloner(); - } - return $this->cloner; - } - - /** - * Set the application root path. - * - * @param string $applicationRootPath - */ - public function setApplicationRootPath($applicationRootPath) - { - $this->applicationRootPath = $applicationRootPath; - } - - /** - * Return the application root path. - * - * @return string - */ - public function getApplicationRootPath() - { - return $this->applicationRootPath; - } -} diff --git a/vendor/fzaninotto/faker/.gitignore b/vendor/fzaninotto/faker/.gitignore deleted file mode 100644 index 7579f743..00000000 --- a/vendor/fzaninotto/faker/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -vendor -composer.lock diff --git a/vendor/fzaninotto/faker/.travis.yml b/vendor/fzaninotto/faker/.travis.yml deleted file mode 100644 index 7d19fa75..00000000 --- a/vendor/fzaninotto/faker/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -language: php - -dist: precise - -php: - - 5.3 - - 5.4 - - 5.5 - - 5.6 - - 7.0 - - 7.1 - - nightly - -sudo: false - -cache: - directories: - - $HOME/.composer/cache - -before_script: - - travis_retry composer self-update - - travis_retry composer install --no-interaction --prefer-dist - -script: make sniff test diff --git a/vendor/fzaninotto/faker/CHANGELOG.md b/vendor/fzaninotto/faker/CHANGELOG.md deleted file mode 100644 index 611470f3..00000000 --- a/vendor/fzaninotto/faker/CHANGELOG.md +++ /dev/null @@ -1,561 +0,0 @@ -CHANGELOG -========= - -2017-08-15, v1.7.0 ------------------- - -- Added more Ukrainian banks [\#1271](https://github.com/fzaninotto/Faker/pull/1271) ([iamraccoon](https://github.com/iamraccoon)) -- Hotfix/failing unit tests [\#1269](https://github.com/fzaninotto/Faker/pull/1269) ([zachflower](https://github.com/zachflower)) -- Lock Travis-CI environment to Ubuntu Precise [\#1268](https://github.com/fzaninotto/Faker/pull/1268) ([zachflower](https://github.com/zachflower)) -- Added Ukrainian job title [\#1267](https://github.com/fzaninotto/Faker/pull/1267) ([iamraccoon](https://github.com/iamraccoon)) -- Add compliant en\_US SSN generator [\#1266](https://github.com/fzaninotto/Faker/pull/1266) ([zachflower](https://github.com/zachflower)) -- Added more Ukrainian streets and removed irrelevant names. Added more Ukrainian mobile formats [\#1265](https://github.com/fzaninotto/Faker/pull/1265) ([iamraccoon](https://github.com/iamraccoon)) -- Add Internet Format for ja\_JP. [\#1260](https://github.com/fzaninotto/Faker/pull/1260) ([itigoppo](https://github.com/itigoppo)) -- rectify ISO 4217 codes [\#1258](https://github.com/fzaninotto/Faker/pull/1258) ([eidng8](https://github.com/eidng8)) -- Corrected of grammar of Ukrainian middlenames and test added [\#1257](https://github.com/fzaninotto/Faker/pull/1257) ([vladbuk](https://github.com/vladbuk)) -- Update ISO 4217 active codes [\#1251](https://github.com/fzaninotto/Faker/pull/1251) ([eidng8](https://github.com/eidng8)) -- Update Composer File [\#1248](https://github.com/fzaninotto/Faker/pull/1248) ([vinkla](https://github.com/vinkla)) -- Set capitals to false [\#1243](https://github.com/fzaninotto/Faker/pull/1243) ([Stichoza](https://github.com/Stichoza)) -- Use static instead of self [\#1242](https://github.com/fzaninotto/Faker/pull/1242) ([Stichoza](https://github.com/Stichoza)) -- Add VAT french format [\#1241](https://github.com/fzaninotto/Faker/pull/1241) ([baptistedonaux](https://github.com/baptistedonaux)) -- Add swedish job titles [\#1234](https://github.com/fzaninotto/Faker/pull/1234) ([vinkla](https://github.com/vinkla)) -- Name Simo shouldn't have comma in it [\#1230](https://github.com/fzaninotto/Faker/pull/1230) ([simoheinonen](https://github.com/simoheinonen)) -- Fix: Add method annotation for ValidGenerator [\#1223](https://github.com/fzaninotto/Faker/pull/1223) ([localheinz](https://github.com/localheinz)) -- Add real text for es\_ES [\#1220](https://github.com/fzaninotto/Faker/pull/1220) ([driade](https://github.com/driade)) -- Fix spelling errors [\#1218](https://github.com/fzaninotto/Faker/pull/1218) ([driade](https://github.com/driade)) -- Fix spelling errors [\#1217](https://github.com/fzaninotto/Faker/pull/1217) ([driade](https://github.com/driade)) -- Fixes typo [\#1212](https://github.com/fzaninotto/Faker/pull/1212) ([skullboner](https://github.com/skullboner)) -- Add Person::middleName for ru\_RU provider [\#1209](https://github.com/fzaninotto/Faker/pull/1209) ([JustBlackBird](https://github.com/JustBlackBird)) -- Fix creditCardDetails type hint [\#1208](https://github.com/fzaninotto/Faker/pull/1208) ([jejung](https://github.com/jejung)) -- Expand dictionaries for ru\_RU locale [\#1206](https://github.com/fzaninotto/Faker/pull/1206) ([pwsdotru](https://github.com/pwsdotru)) -- Fix ng\_NG to en\_NG [\#1205](https://github.com/fzaninotto/Faker/pull/1205) ([raphaeldealmeida](https://github.com/raphaeldealmeida)) -- Add INN and KPP support for ru\_RU locale [\#1204](https://github.com/fzaninotto/Faker/pull/1204) ([pwsdotru](https://github.com/pwsdotru)) -- Remove break line on pt\_PT Address format [\#1203](https://github.com/fzaninotto/Faker/pull/1203) ([raphaeldealmeida](https://github.com/raphaeldealmeida)) -- Fix syntax of phpdoc boolean property [\#1198](https://github.com/fzaninotto/Faker/pull/1198) ([pavelkovar](https://github.com/pavelkovar)) -- add en\_HK provider [\#1196](https://github.com/fzaninotto/Faker/pull/1196) ([miklcct](https://github.com/miklcct)) -- use secure https [\#1186](https://github.com/fzaninotto/Faker/pull/1186) ([jpuck](https://github.com/jpuck)) -- Add PhoneNumberFormat for ja\_JP. [\#1185](https://github.com/fzaninotto/Faker/pull/1185) ([itigoppo](https://github.com/itigoppo)) -- Fix: Add class-level method annotations for DateTime provider [\#1183](https://github.com/fzaninotto/Faker/pull/1183) ([localheinz](https://github.com/localheinz)) -- Add ar\_SA Color Provider [\#1182](https://github.com/fzaninotto/Faker/pull/1182) ([alhoqbani](https://github.com/alhoqbani)) -- Added uk\_UA Payment provider with bank name generator [\#1181](https://github.com/fzaninotto/Faker/pull/1181) ([spaghettimaster](https://github.com/spaghettimaster)) -- Typos [\#1177](https://github.com/fzaninotto/Faker/pull/1177) ([ankitpokhrel](https://github.com/ankitpokhrel)) -- Fix XML document example [\#1176](https://github.com/fzaninotto/Faker/pull/1176) ([ankitpokhrel](https://github.com/ankitpokhrel)) -- Added Emoji to Miscellaneous [\#1175](https://github.com/fzaninotto/Faker/pull/1175) ([thomasfdm](https://github.com/thomasfdm)) -- Typos and doc block fixes [\#1170](https://github.com/fzaninotto/Faker/pull/1170) ([ankitpokhrel](https://github.com/ankitpokhrel)) -- Rewrote deprecated `each\(\)` usage [\#1168](https://github.com/fzaninotto/Faker/pull/1168) ([hboomsma](https://github.com/hboomsma)) -- Refactor text method to remove duplication [\#1163](https://github.com/fzaninotto/Faker/pull/1163) ([ankitpokhrel](https://github.com/ankitpokhrel)) -- Generate valid individual identification numbers kk\_KZ [\#1161](https://github.com/fzaninotto/Faker/pull/1161) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev)) -- Added Address and Company \[fa\_IR\] [\#1160](https://github.com/fzaninotto/Faker/pull/1160) ([thisissorna](https://github.com/thisissorna)) -- Add Peruvian DNI generator [\#1158](https://github.com/fzaninotto/Faker/pull/1158) ([jgwong](https://github.com/jgwong)) -- Removed double semicolon [\#1154](https://github.com/fzaninotto/Faker/pull/1154) ([pjona](https://github.com/pjona)) -- Add prefixes for nl\_NL [\#1151](https://github.com/fzaninotto/Faker/pull/1151) ([hyperized](https://github.com/hyperized)) -- Separated male and female names for sr\_RS locale. [\#1144](https://github.com/fzaninotto/Faker/pull/1144) ([bogdanpet](https://github.com/bogdanpet)) -- Add personal ID, VAT for zh\_TW [\#1135](https://github.com/fzaninotto/Faker/pull/1135) ([Dagolin](https://github.com/Dagolin)) -- Updating ninth digit on whole country [\#1132](https://github.com/fzaninotto/Faker/pull/1132) ([gpressutto5](https://github.com/gpressutto5)) -- Indian states added to en\_IN locale [\#1131](https://github.com/fzaninotto/Faker/pull/1131) ([jiveshsg](https://github.com/jiveshsg)) -- Add Text provider for ro\_MD [\#1129](https://github.com/fzaninotto/Faker/pull/1129) ([wecerny](https://github.com/wecerny)) -- Add strict to randomNumber example [\#1124](https://github.com/fzaninotto/Faker/pull/1124) ([leepownall](https://github.com/leepownall)) -- Say Eloquent is supported [\#1123](https://github.com/fzaninotto/Faker/pull/1123) ([guidocella](https://github.com/guidocella)) -- Link Eloquent Populator [\#1120](https://github.com/fzaninotto/Faker/pull/1120) ([guidocella](https://github.com/guidocella)) -- Removed dead code from Luhn.php [\#1118](https://github.com/fzaninotto/Faker/pull/1118) ([Newman101](https://github.com/Newman101)) -- Improve Internet::transliterate performance [\#1112](https://github.com/fzaninotto/Faker/pull/1112) ([dunglas](https://github.com/dunglas)) -- fix typo [\#1109](https://github.com/fzaninotto/Faker/pull/1109) ([johannesnagl](https://github.com/johannesnagl)) -- \[cs\_CZ\] Fixed Czech phone numbers [\#1108](https://github.com/fzaninotto/Faker/pull/1108) ([tomasbedrich](https://github.com/tomasbedrich)) -- Update MasterCard BIN Range [\#1103](https://github.com/fzaninotto/Faker/pull/1103) ([andysnell](https://github.com/andysnell)) -- Add biggest german cities [\#1102](https://github.com/fzaninotto/Faker/pull/1102) ([Konafets](https://github.com/Konafets)) -- Change postal code format for ko\_KR [\#1094](https://github.com/fzaninotto/Faker/pull/1094) ([coozplz](https://github.com/coozplz)) -- Introduced the ability to specify the timezone for dateTimeThis\*\(\) methods [\#1090](https://github.com/fzaninotto/Faker/pull/1090) ([telkins](https://github.com/telkins)) -- Fixed Issue \#1086 [\#1088](https://github.com/fzaninotto/Faker/pull/1088) ([Newman101](https://github.com/Newman101)) -- \[ja\_JP\]kana of Japanese name by gender. [\#1087](https://github.com/fzaninotto/Faker/pull/1087) ([itigoppo](https://github.com/itigoppo)) -- Fix unused code [\#1083](https://github.com/fzaninotto/Faker/pull/1083) ([borgogelli](https://github.com/borgogelli)) -- Amended permissions for en\_GB AddressTest.php [\#1071](https://github.com/fzaninotto/Faker/pull/1071) ([Newman101](https://github.com/Newman101)) -- Ensure unique IDs in randomHtml [\#1068](https://github.com/fzaninotto/Faker/pull/1068) ([vlakoff](https://github.com/vlakoff)) -- Updated \[de\_DE\] city names [\#1067](https://github.com/fzaninotto/Faker/pull/1067) ([plxx](https://github.com/plxx)) -- Update method signature in Generator phpdoc [\#1066](https://github.com/fzaninotto/Faker/pull/1066) ([vlakoff](https://github.com/vlakoff)) -- Add Thai providers [\#1065](https://github.com/fzaninotto/Faker/pull/1065) ([tuwannu](https://github.com/tuwannu)) -- \(Minor\) Fixed the default locale stated in the readme [\#1064](https://github.com/fzaninotto/Faker/pull/1064) ([taylankasap](https://github.com/taylankasap)) -- \[nl\_NL\] Make person provider behave more realistically [\#1061](https://github.com/fzaninotto/Faker/pull/1061) ([curry684](https://github.com/curry684)) -- Add allowDuplicates option to randomElements\(\) [\#1060](https://github.com/fzaninotto/Faker/pull/1060) ([vlakoff](https://github.com/vlakoff)) -- Docblocks: Add some missing @method tags [\#1059](https://github.com/fzaninotto/Faker/pull/1059) ([Kurre](https://github.com/Kurre)) -- \[fi\_FI\] Improve phone number generator [\#1054](https://github.com/fzaninotto/Faker/pull/1054) ([Kurre](https://github.com/Kurre)) -- Add personalIdentityNumber\(\) to fi\_FI/Person.php [\#1053](https://github.com/fzaninotto/Faker/pull/1053) ([oittaa](https://github.com/oittaa)) -- Issue \#1041 [\#1052](https://github.com/fzaninotto/Faker/pull/1052) ([daleattree](https://github.com/daleattree)) -- Update Text.php [\#1051](https://github.com/fzaninotto/Faker/pull/1051) ([gulaandrij](https://github.com/gulaandrij)) -- Fix French phone numbers with 07 prefix [\#1046](https://github.com/fzaninotto/Faker/pull/1046) ([fzaninotto](https://github.com/fzaninotto)) -- \[Generator.php\] mt\_rand\(\) changed in PHP 7.1 [\#1045](https://github.com/fzaninotto/Faker/pull/1045) ([oittaa](https://github.com/oittaa)) -- Add 'FI' to Payment Provider [\#1044](https://github.com/fzaninotto/Faker/pull/1044) ([oittaa](https://github.com/oittaa)) -- Added id number generator to Person Provider for the en\_ZA locale [\#1039](https://github.com/fzaninotto/Faker/pull/1039) ([smithandre](https://github.com/smithandre)) -- \[Feature\] Add nigerian provider [\#1030](https://github.com/fzaninotto/Faker/pull/1030) ([elchroy](https://github.com/elchroy)) -- \[pl\_PL\] Handle state. [\#1029](https://github.com/fzaninotto/Faker/pull/1029) ([piotrooo](https://github.com/piotrooo)) -- Fixed polish text - change '--' into '-'. [\#1027](https://github.com/fzaninotto/Faker/pull/1027) ([piotrooo](https://github.com/piotrooo)) -- Update Text.php [\#1025](https://github.com/fzaninotto/Faker/pull/1025) ([gulaandrij](https://github.com/gulaandrij)) -- Adding Nationalized Citizens to DNI in Person.php [\#1021](https://github.com/fzaninotto/Faker/pull/1021) ([celisflen-bers](https://github.com/celisflen-bers)) -- Add nik to indonesia [\#1019](https://github.com/fzaninotto/Faker/pull/1019) ([Nuffic](https://github.com/Nuffic)) -- fix mb\_substr missing parameter error when generating japanese string with realText method [\#1018](https://github.com/fzaninotto/Faker/pull/1018) ([horan-geeker](https://github.com/horan-geeker)) -- IBAN Formatters for New Locales [\#1015](https://github.com/fzaninotto/Faker/pull/1015) ([okj579](https://github.com/okj579)) -- German Bank Names [\#1014](https://github.com/fzaninotto/Faker/pull/1014) ([okj579](https://github.com/okj579)) -- Adding countries for pl\_PL provider [\#1009](https://github.com/fzaninotto/Faker/pull/1009) ([mertcanesen](https://github.com/mertcanesen)) -- Adding Pattern Lab plugin to list of 3rd party libraries [\#1008](https://github.com/fzaninotto/Faker/pull/1008) ([EvanLovely](https://github.com/EvanLovely)) -- Korea top 100 lastName [\#1006](https://github.com/fzaninotto/Faker/pull/1006) ([tael](https://github.com/tael)) -- Use real Belgian postcodes instead of random number [\#1004](https://github.com/fzaninotto/Faker/pull/1004) ([toonevdb](https://github.com/toonevdb)) -- Add bankAccountNumber implementations [\#1000](https://github.com/fzaninotto/Faker/pull/1000) ([akramfares](https://github.com/akramfares)) -- Generates a random NIR number \(fr\_FR\) [\#997](https://github.com/fzaninotto/Faker/pull/997) ([Ultim4T0m](https://github.com/Ultim4T0m)) -- \#989 Fix country typo [\#996](https://github.com/fzaninotto/Faker/pull/996) ([adriantombu](https://github.com/adriantombu)) -- adding back CNP [\#988](https://github.com/fzaninotto/Faker/pull/988) ([the-noob](https://github.com/the-noob)) -- Fix phpunit tests fail on 64-bit systems \#982 [\#983](https://github.com/fzaninotto/Faker/pull/983) ([Powerhead13](https://github.com/Powerhead13)) -- Remove trailing dot in username if any [\#975](https://github.com/fzaninotto/Faker/pull/975) ([vlakoff](https://github.com/vlakoff)) -- HTML Lorem [\#971](https://github.com/fzaninotto/Faker/pull/971) ([rudkjobing](https://github.com/rudkjobing)) -- Fix a mixup between male and female last names in Icelandic. [\#970](https://github.com/fzaninotto/Faker/pull/970) ([arthur-olafsson](https://github.com/arthur-olafsson)) -- Remove duplicate [\#969](https://github.com/fzaninotto/Faker/pull/969) ([mijgame](https://github.com/mijgame)) -- fix \[zh\_CN\]PhoneNumber illegal operator prefix [\#966](https://github.com/fzaninotto/Faker/pull/966) ([zhwei](https://github.com/zhwei)) -- es\_ES: Generate VAT Number [\#964](https://github.com/fzaninotto/Faker/pull/964) ([miguelgf](https://github.com/miguelgf)) -- Update Image.php [\#963](https://github.com/fzaninotto/Faker/pull/963) ([gulaandrij](https://github.com/gulaandrij)) -- Remove cnp formatter from RO\_ro locale \(fails tests\) [\#962](https://github.com/fzaninotto/Faker/pull/962) ([fzaninotto](https://github.com/fzaninotto)) -- Adding valid en\_GB postcodes [\#961](https://github.com/fzaninotto/Faker/pull/961) ([the-noob](https://github.com/the-noob)) -- Adding Text for ro\_RO [\#959](https://github.com/fzaninotto/Faker/pull/959) ([the-noob](https://github.com/the-noob)) -- Minor: Fixed trailing space in DateTime provider [\#956](https://github.com/fzaninotto/Faker/pull/956) ([tifabien](https://github.com/tifabien)) -- Remove 'Stripper' from en\_US job titles [\#954](https://github.com/fzaninotto/Faker/pull/954) ([amcsi](https://github.com/amcsi)) -- fix 32bits issue [\#953](https://github.com/fzaninotto/Faker/pull/953) ([remicollet](https://github.com/remicollet)) -- Fix EAN8 checkSum generator [\#951](https://github.com/fzaninotto/Faker/pull/951) ([MatthieuMota](https://github.com/MatthieuMota)) -- Fixed description and the use of early undocumented parameters. [\#949](https://github.com/fzaninotto/Faker/pull/949) ([andrey-helldar](https://github.com/andrey-helldar)) -- Pushing new mobile prefixes in philippines [\#944](https://github.com/fzaninotto/Faker/pull/944) ([napoleon101392](https://github.com/napoleon101392)) -- Update Company.php [\#943](https://github.com/fzaninotto/Faker/pull/943) ([thiagotalma](https://github.com/thiagotalma)) -- Fix to Issue \#935 - German Locale [\#936](https://github.com/fzaninotto/Faker/pull/936) ([Newman101](https://github.com/Newman101)) -- el\_CY Locale [\#930](https://github.com/fzaninotto/Faker/pull/930) ([softius](https://github.com/softius)) -- Add phpdoc method dateTimeInInterval in Generator.php [\#926](https://github.com/fzaninotto/Faker/pull/926) ([KeithYeh](https://github.com/KeithYeh)) -- Harmonize fr\_\*\Company [\#918](https://github.com/fzaninotto/Faker/pull/918) ([Max13](https://github.com/Max13)) -- Fix: fix invalid parameter of mb\_substr\(\) [\#917](https://github.com/fzaninotto/Faker/pull/917) ([tkawaji](https://github.com/tkawaji)) -- kk\_KZ Company/person identification numbers unit tests [\#916](https://github.com/fzaninotto/Faker/pull/916) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev)) -- ka\_GE: overall improvements to ka\_GE locale [\#913](https://github.com/fzaninotto/Faker/pull/913) ([hertzg](https://github.com/hertzg)) -- Fix: Do not pick a random float less than minimum [\#909](https://github.com/fzaninotto/Faker/pull/909) ([localheinz](https://github.com/localheinz)) -- Fix: Prefer dependencies installed from dist [\#908](https://github.com/fzaninotto/Faker/pull/908) ([localheinz](https://github.com/localheinz)) -- Add a building number with letter to German speaking locales. [\#903](https://github.com/fzaninotto/Faker/pull/903) ([markuspoerschke](https://github.com/markuspoerschke)) -- \[RFR\] Remove parts of the hu\_HU address formatters [\#902](https://github.com/fzaninotto/Faker/pull/902) ([fzaninotto](https://github.com/fzaninotto)) -- use Luhn to calculate ar\_SA id numbers. [\#875](https://github.com/fzaninotto/Faker/pull/875) ([FooBarQuaxx](https://github.com/FooBarQuaxx)) -- Fix Doctrine ODM Support [\#489](https://github.com/fzaninotto/Faker/pull/489) ([cbourgois](https://github.com/cbourgois)) - - -2016-04-29, v1.6.0 ------------------- - -- Remove parts of the Hungarian (hu\_HU) address formatters [\#902](https://github.com/fzaninotto/Faker/pull/902) ([fzaninotto](https://github.com/fzaninotto)) -- Renamed norwegian (nb\_NO) locale [\#901](https://github.com/fzaninotto/Faker/pull/901) ([fzaninotto](https://github.com/fzaninotto)) -- Improveed German (de\_DE) titles [\#897](https://github.com/fzaninotto/Faker/pull/897) ([christianbartels](https://github.com/christianbartels)) -- Added VAT formatter to nl\_BE and fr\_BE providers [\#896](https://github.com/fzaninotto/Faker/pull/896) ([anvanza](https://github.com/anvanza)) -- Fixed provider namespace for Lithuanian (lt\_LT) [\#894](https://github.com/fzaninotto/Faker/pull/894) ([sanis](https://github.com/sanis)) -- Removed unnecessary (and incompatible) license from Russian and Ukrainian (uk\_UA & ru\_RU) Text providers [\#892](https://github.com/fzaninotto/Faker/pull/892) ([Newman101](https://github.com/Newman101)) -- Improved `languageCode` formatted to include all ISO-639-1 standard codes [\#889](https://github.com/fzaninotto/Faker/pull/889) ([andrewnicols](https://github.com/andrewnicols)) -- Improved Hungarian provider [\#883](https://github.com/fzaninotto/Faker/pull/883) ([balping](https://github.com/balping)) -- Fixed typo in Austrian Person provider [\#880](https://github.com/fzaninotto/Faker/pull/880) ([xelan](https://github.com/xelan)) -- Added Chines (zh\_CN) `catchPhrase` formatter [\#878](https://github.com/fzaninotto/Faker/pull/878) ([z-song](https://github.com/z-song)) -- Added mention of Brazilian (pt\_BR) providers in readme [\#877](https://github.com/fzaninotto/Faker/pull/877) ([iget-master](https://github.com/iget-master)) -- Updated composer `require` section to allow PHP 7 in safer way [\#874](https://github.com/fzaninotto/Faker/pull/874) ([TomasVotruba](https://github.com/TomasVotruba)) -- Added Greek (el\_GR) `mobilePhoneNumber` and `tollFreeNumber` formatters [\#869](https://github.com/fzaninotto/Faker/pull/869) ([sebdesign](https://github.com/sebdesign)) -- Added Lorempixel check for `ImageTest.php` to avoid test fails when the service is offline [\#866](https://github.com/fzaninotto/Faker/pull/866) ([Newman101](https://github.com/Newman101)) -- Added Chinese (zh\_CN) Providers [\#864](https://github.com/fzaninotto/Faker/pull/864) ([z-song](https://github.com/z-song)) -- Added unit tests for Canadian (en\_CA) provider [\#862](https://github.com/fzaninotto/Faker/pull/862) ([Newman101](https://github.com/Newman101)) -- Added Dutch BTW \(vat\) Number [\#861](https://github.com/fzaninotto/Faker/pull/861) ([LauLaman](https://github.com/LauLaman)) -- Improved Australian (en\_AU) provider [\#858](https://github.com/fzaninotto/Faker/pull/858) ([Newman101](https://github.com/Newman101)) -- Added Propel2 ORM support [\#852](https://github.com/fzaninotto/Faker/pull/852) ([iTechDhaval](https://github.com/iTechDhaval)) -- Added en\_IN unit test for `Address.php` [\#849](https://github.com/fzaninotto/Faker/pull/849) ([Newman101](https://github.com/Newman101)) -- Updated docs to clarify that `randomElements` does not repeat input elements [\#848](https://github.com/fzaninotto/Faker/pull/848) ([sustmi](https://github.com/sustmi)) -- Optimized Taiwanese (zh\_TW) `realText` provider [\#844](https://github.com/fzaninotto/Faker/pull/844) ([Newman101](https://github.com/Newman101)) -- Added more Iranian (fa\_IR) TLDs [\#843](https://github.com/fzaninotto/Faker/pull/843) ([VagrantStory](https://github.com/VagrantStory)) -- Added Hebrew (he\_IL) `country` formatter [\#841](https://github.com/fzaninotto/Faker/pull/841) ([yonirom](https://github.com/yonirom)) -- Documented `boolean` formatter [\#840](https://github.com/fzaninotto/Faker/pull/840) ([danieliancu](https://github.com/danieliancu)) -- Fixed modifiers anchor readme [\#838](https://github.com/fzaninotto/Faker/pull/838) ([danieliancu](https://github.com/danieliancu)) -- Added Dutch (nl\_NL) real text provider [\#837](https://github.com/fzaninotto/Faker/pull/837) ([endroid](https://github.com/endroid)) -- Added `valid` modifier [\#836](https://github.com/fzaninotto/Faker/pull/836) ([fzaninotto](https://github.com/fzaninotto)) -- Added Iranian (fa\_IR) `PhoneNumber` provider [\#833](https://github.com/fzaninotto/Faker/pull/833) ([ghost](https://github.com/ghost)) -- Add Brazilian (pt\_BR) `region` and `regionAbbr` formatters [\#828](https://github.com/fzaninotto/Faker/pull/828) ([francinaldo](https://github.com/francinaldo)) -- Improved Austrian (de\_AT) names, states, and realtext [\#826](https://github.com/fzaninotto/Faker/pull/826) ([Findus23](https://github.com/Findus23)) -- Improved German (de\_DE) names [\#825](https://github.com/fzaninotto/Faker/pull/825) ([Findus23](https://github.com/Findus23)) -- Improved Latvian (lv\_LV) first names [\#823](https://github.com/fzaninotto/Faker/pull/823) ([veisis](https://github.com/veisis)) -- Improved Latvian (lv\_LV) `phoneNumber` formatter [\#822](https://github.com/fzaninotto/Faker/pull/822) ([veisis](https://github.com/veisis)) -- Updated phpDoc link to IBAN format reference in `Payment` provider [\#821](https://github.com/fzaninotto/Faker/pull/821) ([god107](https://github.com/god107)) -- Updated Sport ORM populator to populate values for numeric fields [\#820](https://github.com/fzaninotto/Faker/pull/820) ([urisavka](https://github.com/urisavka)) -- Updated Chinese (zh\_CN) operators' phone number prefix. [\#819](https://github.com/fzaninotto/Faker/pull/819) ([vistart](https://github.com/vistart)) -- Optimized Spot ORM `EntityPopulator` [\#817](https://github.com/fzaninotto/Faker/pull/817) ([Newman101](https://github.com/Newman101)) -- Added Korean (ko\_KR) `realText` formatter [\#815](https://github.com/fzaninotto/Faker/pull/815) ([jdssem](https://github.com/jdssem)) -- Updated `imageUrl` formatter phpDoc [\#814](https://github.com/fzaninotto/Faker/pull/814) ([jonwurtzler](https://github.com/jonwurtzler)) -- Optimized Taiwanese (zh\_TW) text provider [\#809](https://github.com/fzaninotto/Faker/pull/809) ([BePsvPT](https://github.com/BePsvPT)) -- Added strict comparison to Czech (cs\_CS) `birthNumber` formatter [\#807](https://github.com/fzaninotto/Faker/pull/807) ([Newman101](https://github.com/Newman101)) -- Added Greek (el\_GR) `realText` formatter [\#805](https://github.com/fzaninotto/Faker/pull/805) ([hootlex](https://github.com/hootlex)) -- Added Simplified Chinese \(zh\_CN\) `state` and `stateAbbr` formatters [\#804](https://github.com/fzaninotto/Faker/pull/804) ([zhanghuanchong](https://github.com/zhanghuanchong)) -- Update `Image` provider to allow generation of grayscale images [\#801](https://github.com/fzaninotto/Faker/pull/801) ([neutralrockets](https://github.com/neutralrockets)) -- Fixed Taiwanese (zh_TW) incorrect `mb_substr()` arguments [\#799](https://github.com/fzaninotto/Faker/pull/799) ([BePsvPT](https://github.com/BePsvPT)) -- Added Spot ORM populator [\#796](https://github.com/fzaninotto/Faker/pull/796) ([urisavka](https://github.com/urisavka)) -- Added Italian (it\_IT) `vatId` and `taxId` formatters [\#790](https://github.com/fzaninotto/Faker/pull/790) ([brainrepo](https://github.com/brainrepo)) -- Added some fixes to Armenian (hy\_AM) locale [\#788](https://github.com/fzaninotto/Faker/pull/788) ([mhamlet](https://github.com/mhamlet)) -- Removed duplicate entries in `toAscii()` transliteration table, used in `Internet` provider [\#787](https://github.com/fzaninotto/Faker/pull/787) ([vlakoff](https://github.com/vlakoff)) -- Added Indian (en\_IN) providers [\#785](https://github.com/fzaninotto/Faker/pull/785) ([kartiksomani](https://github.com/kartiksomani)) -- Removed duplicate country names in various locales, removed non-random country arrays [\#784](https://github.com/fzaninotto/Faker/pull/784) ([fzaninotto](https://github.com/fzaninotto)) -- Improved Swiss (de\_CH) phone numbers [\#782](https://github.com/fzaninotto/Faker/pull/782) ([z38](https://github.com/z38)) -- Added Swiss (de\_CH) names [\#781](https://github.com/fzaninotto/Faker/pull/781) ([z38](https://github.com/z38)) -- Make capitalization of first word optional in Text Provider [\#778](https://github.com/fzaninotto/Faker/pull/778) ([LagunaJavier](https://github.com/LagunaJavier)) -- Added Georgian (ka\_GE) providers [\#777](https://github.com/fzaninotto/Faker/pull/777) ([akalongman](https://github.com/akalongman)) -- Fix CakePHP populator [\#776](https://github.com/fzaninotto/Faker/pull/776) ([daniel-mueller](https://github.com/daniel-mueller)) -- Added unit tests for `Address` provider in many locales [\#775](https://github.com/fzaninotto/Faker/pull/775) [\#773](https://github.com/fzaninotto/Faker/pull/773) [\#772](https://github.com/fzaninotto/Faker/pull/772) [\#767](https://github.com/fzaninotto/Faker/pull/767) [\#765](https://github.com/fzaninotto/Faker/pull/765) [\#764](https://github.com/fzaninotto/Faker/pull/764) [\#758](https://github.com/fzaninotto/Faker/pull/758) [\#756](https://github.com/fzaninotto/Faker/pull/756) [\#747](https://github.com/fzaninotto/Faker/pull/747) [\#741](https://github.com/fzaninotto/Faker/pull/741) ([Newman101](https://github.com/Newman101)) -- Added `dbi` formatter to Spanish (es\_ES) Person provider [\#763](https://github.com/fzaninotto/Faker/pull/763) ([mikk150](https://github.com/mikk150)) -- Added South Africa (en\_ZA) locale [\#761](https://github.com/fzaninotto/Faker/pull/761) ([smithandre](https://github.com/smithandre)) [\#760](https://github.com/fzaninotto/Faker/pull/760) ([smithandre](https://github.com/smithandre)) [\#759](https://github.com/fzaninotto/Faker/pull/759) ([smithandre](https://github.com/smithandre)) -- Added E.164 phone number generator [\#753](https://github.com/fzaninotto/Faker/pull/753) ([daleattree](https://github.com/daleattree)) -- Fixed serialization issue in `unique` modifier [\#749](https://github.com/fzaninotto/Faker/pull/749) ([EmanueleMinotto](https://github.com/EmanueleMinotto)) -- Added Switzerland (de\_CH, fr\_CH, it\_CH) providers [\#739](https://github.com/fzaninotto/Faker/pull/739) ([r3h6](https://github.com/r3h6)) -- Added PHPDocs, removed unused variable [\#738](https://github.com/fzaninotto/Faker/pull/738) ([daniel-mueller](https://github.com/daniel-mueller)) -- Fixed building numbers to have non-zero first bumber [\#737](https://github.com/fzaninotto/Faker/pull/737) ([jmauerhan](https://github.com/jmauerhan)) -- Updated ninth digit for Brazilian cell phone numbers [\#734](https://github.com/fzaninotto/Faker/pull/734) ([igorsantos07](https://github.com/igorsantos07)) -- Simplified Factory code [\#732](https://github.com/fzaninotto/Faker/pull/732) ([vlakoff](https://github.com/vlakoff)) -- Added mention of [images-generator](https://github.com/bruceheller/images-generator) in readme [\#731](https://github.com/fzaninotto/Faker/pull/731) ([bruceheller](https://github.com/bruceheller)) -- Optimize Internet::toAscii\(\) by using a static cache and translitteration [\#730](https://github.com/fzaninotto/Faker/pull/730) [\#729](https://github.com/fzaninotto/Faker/pull/729) -[\#725](https://github.com/fzaninotto/Faker/pull/725) [\#724](https://github.com/fzaninotto/Faker/pull/724) ([vlakoff](https://github.com/vlakoff)) -- Added more English (en\_GB) Phone Number formats [\#721](https://github.com/fzaninotto/Faker/pull/721) ([nickwebcouk](https://github.com/nickwebcouk)) -- Cleaned up `use` statements across the code [\#719](https://github.com/fzaninotto/Faker/pull/719) ([pomaxa](https://github.com/pomaxa)) -- Fixed CackePHP populator [\#718](https://github.com/fzaninotto/Faker/pull/718) ([sdustinh](https://github.com/sdustinh)) -- Cleaned up various phpmd notices [\#715](https://github.com/fzaninotto/Faker/pull/715) ([pomaxa](https://github.com/pomaxa)) -- Added `Color` provider to Latvian (lv_LV) locale [\#714](https://github.com/fzaninotto/Faker/pull/714) ([pomaxa](https://github.com/pomaxa)) -- Fixed bad randomization in Doctrine populator [\#713](https://github.com/fzaninotto/Faker/pull/713) ([pomaxa](https://github.com/pomaxa)) -- Added Mongolian (mn\_MN) providers [\#709](https://github.com/fzaninotto/Faker/pull/709) ([selmonal](https://github.com/selmonal)) -- Improved Australian (en\_AU) `postcode` formatter [\#703](https://github.com/fzaninotto/Faker/pull/703) ([xfxf](https://github.com/xfxf)) -- Added support for asterisks in `bothify` and `optimize` [\#701](https://github.com/fzaninotto/Faker/pull/701) ([nineinchnick](https://github.com/nineinchnick)) -- Fixed important distinction between ORM and database framework in README’s reference to an external Faker provider for POMM that I have never even tested. Anyway, POMM is highly recommended if you are a Postgres fan, or if you want to please Grégoire and help him finish his lifelong project of listening to music on a hi-fi audio equipment he built from his own hands [\#696](https://github.com/fzaninotto/Faker/pull/696) ([chanmix51](https://github.com/chanmix51)) -- Fixed example `text()` output in README [\#694](https://github.com/fzaninotto/Faker/pull/694) ([vlakoff](https://github.com/vlakoff)) -- Added mention of CakePHP 2.x Seeder Plugin to readme [\#691](https://github.com/fzaninotto/Faker/pull/691) ([ravage84](https://github.com/ravage84)) -- Fixed invalid email bug for Korean (ko\_KR) [\#690](https://github.com/fzaninotto/Faker/pull/690) ([pearlc](https://github.com/pearlc)) -- Removed an invalid Dutch (nl\_NL) lastname that breaks email generator [\#689](https://github.com/fzaninotto/Faker/pull/689) ([SpaceK33z](https://github.com/SpaceK33z)) -- Updated `numberBetween()` to be order agnostic [\#683](https://github.com/fzaninotto/Faker/pull/683) ([xfxf](https://github.com/xfxf)) -- Added several English (en\_US) bank-related formatters [\#682](https://github.com/fzaninotto/Faker/pull/682) ([okj579](https://github.com/okj579)) -- Fixed `ipv4` formatter to avoid generating special purpose addresses [\#681](https://github.com/fzaninotto/Faker/pull/681) ([ravage84](https://github.com/ravage84)) -- Moved `intl` extension to `require-dev` in `composer.json` file [\#680](https://github.com/fzaninotto/Faker/pull/680) ([jaschweder](https://github.com/jaschweder)) -- Added more Turkish (tr\_TR) phones number formats [\#678](https://github.com/fzaninotto/Faker/pull/678) ([Quanthir](https://github.com/Quanthir)) -- Fixed primary Key warning in CakePHP ORM populator [\#677](https://github.com/fzaninotto/Faker/pull/677) ([davidyell](https://github.com/davidyell)) -- Added time zone support for provider methods returning DateTime instance [\#675](https://github.com/fzaninotto/Faker/pull/675) ([bishopb](https://github.com/bishopb)) -- Removed trailing spaces from some Argentinian (es\_AR) female first names [\#674](https://github.com/fzaninotto/Faker/pull/674) ([ivanmirson](https://github.com/ivanmirson)) -- Added Lithuanian (lt\_LT) locale [\#673](https://github.com/fzaninotto/Faker/pull/673) ([ekateiva](https://github.com/ekateiva)) -- Added mention of Alice to readme [\#665](https://github.com/fzaninotto/Faker/pull/665) ([Seldaek](https://github.com/Seldaek)) -- Fixed namespace in tests [\#663](https://github.com/fzaninotto/Faker/pull/663) ([localheinz](https://github.com/localheinz)) -- Fixed trailing spaces in `Color` provider [\#662](https://github.com/fzaninotto/Faker/pull/662) ([apsylone](https://github.com/apsylone)) -- Removed duplicate country names in Russian (ru\_RU) `Address` provider [\#659](https://github.com/fzaninotto/Faker/pull/659) ([nurolopher](https://github.com/nurolopher)) -- Added `rgba` formatter to `Color` provider [\#653](https://github.com/fzaninotto/Faker/pull/653) ([apsylone](https://github.com/apsylone)) -- Fixed bad randomization in CakePHP populator [\#648](https://github.com/fzaninotto/Faker/pull/648) ([jadb](https://github.com/jadb)) -- Updated phpunit configuration to better use colors [\#643](https://github.com/fzaninotto/Faker/pull/643) ([localheinz](https://github.com/localheinz)) -- Updated `makefile` to install dev dependencies by default [\#642](https://github.com/fzaninotto/Faker/pull/642) ([localheinz](https://github.com/localheinz)) -- Updated Travis configuration to cache dependencies between builds [\#641](https://github.com/fzaninotto/Faker/pull/641) ([localheinz](https://github.com/localheinz)) -- Added SVG badge to readme for displaying Travis build status [\#640](https://github.com/fzaninotto/Faker/pull/640) ([localheinz](https://github.com/localheinz)) -- Added Croatian (hr\_HR) locale [\#638](https://github.com/fzaninotto/Faker/pull/638) ([toniperic](https://github.com/toniperic)) -- Updated `dateTimeBetween` PHPDoc [\#635](https://github.com/fzaninotto/Faker/pull/635) ([theofidry](https://github.com/theofidry)) -- Add mention of Symfony2 bundles in readme [\#634](https://github.com/fzaninotto/Faker/pull/634) ([theofidry](https://github.com/theofidry)) -- Added Hebrew (he\_IL) locale [\#633](https://github.com/fzaninotto/Faker/pull/633) ([yonirom](https://github.com/yonirom)) -- Updated `seed` to accept non-integer seeds [\#632](https://github.com/fzaninotto/Faker/pull/632) ([theofidry](https://github.com/theofidry)) -- Added DocBlock to `Factory::create()` [\#631](https://github.com/fzaninotto/Faker/pull/631) ([tonynelson19](https://github.com/tonynelson19)) -- Added `jobTitle` generator [\#630](https://github.com/fzaninotto/Faker/pull/630) ([gregoryduckworth](https://github.com/gregoryduckworth)) -- Updated Chinese (zh\_CN) `Person` provider to generate more correct names [\#628](https://github.com/fzaninotto/Faker/pull/628) ([phoenixgao](https://github.com/phoenixgao)) -- Updated Brazilian (pt\_BR) `cellphone` formatter to make it more flexible [\#623](https://github.com/fzaninotto/Faker/pull/623) ([igorsantos07](https://github.com/igorsantos07)) -- Add Arabic for Saudi Arabia (ar\_SA) locale [\#618](https://github.com/fzaninotto/Faker/pull/618) ([ibrasho](https://github.com/ibrasho)) -- Updated en\_US phone numbers [\#615](https://github.com/fzaninotto/Faker/pull/615) ([okj579](https://github.com/okj579)) -- Fixed typos in variable names and exceptions [\#614](https://github.com/fzaninotto/Faker/pull/614) ([pborreli](https://github.com/pborreli)) -- Added a table of contents to the readme file. [\#613](https://github.com/fzaninotto/Faker/pull/613) ([camilopayan](https://github.com/camilopayan)) -- Added Brazilian (es_BR) credit card formatters [\#608](https://github.com/fzaninotto/Faker/pull/608) ([igorsantos07](https://github.com/igorsantos07)) -- Updated `iban` formatter to be cross-locale [\#607](https://github.com/fzaninotto/Faker/pull/607) ([okj579](https://github.com/okj579)) -- Improved ORM name guesser logic [\#606](https://github.com/fzaninotto/Faker/pull/606) ([watermanio](https://github.com/watermanio)) -- Fixed doc typo [\#605](https://github.com/fzaninotto/Faker/pull/605) ([igorsantos07](https://github.com/igorsantos07)) -- Removed executable bits [\#593](https://github.com/fzaninotto/Faker/pull/593) ([siwinski](https://github.com/siwinski)) -- Fixed `iban` generator [\#590](https://github.com/fzaninotto/Faker/pull/590) ([okj579](https://github.com/okj579)) -- Added Philippines (en\_PH) `mobileNumber` formatter [\#589](https://github.com/fzaninotto/Faker/pull/589) ([lozadaOmr](https://github.com/lozadaOmr)) -- Added support for min / max params in `latitude` and `longitude` formatters [\#570](https://github.com/fzaninotto/Faker/pull/570) ([actuallymab](https://github.com/actuallymab)) -- Added Czech (cs_CZ) `birthNumber` formatter [\#535](https://github.com/fzaninotto/Faker/pull/535) ([tomasbedrich](https://github.com/tomasbedrich)) -- Added `dateTimeInInterval` formatter [\#526](https://github.com/fzaninotto/Faker/pull/526) ([nicodmf](https://github.com/nicodmf)) -- Updated `optional` and `boolean` apis to be more consistent [\#513](https://github.com/fzaninotto/Faker/pull/513) ([EmanueleMinotto](https://github.com/EmanueleMinotto)) -- Added Greek (el\_GR) `Address` provider [\#504](https://github.com/fzaninotto/Faker/pull/504) ([drakakisgeo](https://github.com/drakakisgeo)) - -2015-05-29, v1.5.0 ------------------- - -* Added ability to print custom text on the images fetched by the Image provider [\#583](https://github.com/fzaninotto/Faker/pull/583) ([fzaninotto](https://github.com/fzaninotto)) -* Fixed typos in Peruvian (es\_PE) Person provider [\#581](https://github.com/fzaninotto/Faker/pull/581) [\#580](https://github.com/fzaninotto/Faker/pull/580) ([ysramirez](https://github.com/ysramirez)) -* Added instructions for installing with composer to readme.md [\#572](https://github.com/fzaninotto/Faker/pull/572) ([totophe](https://github.com/totophe)) -* Added Kazakh (kk\_KZ) locale [\#569](https://github.com/fzaninotto/Faker/pull/569) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev)) -* Added Korean (ko\_KR) locale [\#566](https://github.com/fzaninotto/Faker/pull/566) ([pearlc](https://github.com/pearlc)) -* Fixed file provider to ignore unreadable and special files [\#565](https://github.com/fzaninotto/Faker/pull/565) ([svrnm](https://github.com/svrnm)) -* Fixed Dutch (nl\_NL) Address and Person providers [\#560](https://github.com/fzaninotto/Faker/pull/560) ([killerog](https://github.com/killerog)) -* Fixed Dutch (nl\_NL) Person provider [\#559](https://github.com/fzaninotto/Faker/pull/559) ([pauledenburg](https://github.com/pauledenburg)) -* Added Russian (ru\_RU) Bank names provider [\#553](https://github.com/fzaninotto/Faker/pull/553) ([wizardjedi](https://github.com/wizardjedi)) -* Added mobile phone function in French (fr\_FR) provider [\#552](https://github.com/fzaninotto/Faker/pull/552) ([kletellier](https://github.com/kletellier)) -* Added phpdoc for new magic methods in Generator to help IntelliSense completion [\#550](https://github.com/fzaninotto/Faker/pull/550) ([stof](https://github.com/stof)) -* Fixed File provider bug 'The first argument to copy() function cannot be a directory' [\#547](https://github.com/fzaninotto/Faker/pull/547) ([svrnm](https://github.com/svrnm)) -* Added new Brazilian (pt\_BR) Providers [\#545](https://github.com/fzaninotto/Faker/pull/545) ([igorsantos07](https://github.com/igorsantos07)) -* Fixed ability to seed the generator [\#543](https://github.com/fzaninotto/Faker/pull/543) ([schmengler](https://github.com/schmengler)) -* Added streetAddress formatter to Russian (ru\_RU) provider [\#542](https://github.com/fzaninotto/Faker/pull/542) ([ZAYEC77](https://github.com/ZAYEC77)) -* Fixed Internet provider warning "Could not create transliterator"* [\#541](https://github.com/fzaninotto/Faker/pull/541) ([fonsecas72](https://github.com/fonsecas72)) -* Fixed Spanish for Argentina (es\_AR) Address provider [\#540](https://github.com/fzaninotto/Faker/pull/540) ([ivanmirson](https://github.com/ivanmirson)) -* Fixed region names in French for Belgium (fr\_BE) address provider [\#536](https://github.com/fzaninotto/Faker/pull/536) ([miclf](https://github.com/miclf)) -* Fixed broken Doctrine2 link in README [\#534](https://github.com/fzaninotto/Faker/pull/534) ([JonathanKryza](https://github.com/JonathanKryza)) -* Added link to faker-context Behat extension in readme [\#532](https://github.com/fzaninotto/Faker/pull/532) ([denheck](https://github.com/denheck)) -* Added PHP 7.0 nightly to Travis build targets [\#525](https://github.com/fzaninotto/Faker/pull/525) ([TomasVotruba](https://github.com/TomasVotruba)) -* Added Dutch (nl\_NL) color names [\#523](https://github.com/fzaninotto/Faker/pull/523) ([belendel](https://github.com/belendel)) -* Fixed Chinese (zh\_CN) Address provider (remove Taipei) [\#522](https://github.com/fzaninotto/Faker/pull/522) ([asika32764](https://github.com/asika32764)) -* Fixed phonenumber formats in Dutch (nl\_NL) PhoneNumber provider [\#521](https://github.com/fzaninotto/Faker/pull/521) ([SpaceK33z](https://github.com/SpaceK33z)) -* Fixed Russian (ru\_RU) Address provider [\#518](https://github.com/fzaninotto/Faker/pull/518) ([glagola](https://github.com/glagola)) -* Added Italian (it\_IT) Text provider [\#517](https://github.com/fzaninotto/Faker/pull/517) ([endelwar](https://github.com/endelwar)) -* Added Norwegian (no\_NO) locale [\#515](https://github.com/fzaninotto/Faker/pull/515) ([phaza](https://github.com/phaza)) -* Added VAT number to Bulgarian (bg\_BG) Payment provider [\#512](https://github.com/fzaninotto/Faker/pull/512) ([ronanguilloux](https://github.com/ronanguilloux)) -* Fixed UserAgent provider outdated user agents [\#511](https://github.com/fzaninotto/Faker/pull/511) ([ajbdev](https://github.com/ajbdev)) -* Fixed `image()` formatter to make it work with temp dir of any (decent) OS [\#507](https://github.com/fzaninotto/Faker/pull/507) ([ronanguilloux](https://github.com/ronanguilloux)) -* Added Persian (fa\_IR) locale [\#500](https://github.com/fzaninotto/Faker/pull/500) ([zoli](https://github.com/zoli)) -* Added Currency Code formatter [\#497](https://github.com/fzaninotto/Faker/pull/497) ([stelgenhof](https://github.com/stelgenhof)) -* Added VAT number to Belgium (be_BE) Payment provider [\#495](https://github.com/fzaninotto/Faker/pull/495) ([ronanguilloux](https://github.com/ronanguilloux)) -* Fixed `imageUrl` formatter bug where it would always return the same image [\#494](https://github.com/fzaninotto/Faker/pull/494) ([fzaninotto](https://github.com/fzaninotto)) -* Added more Indonesian (id\_ID) providers [\#493](https://github.com/fzaninotto/Faker/pull/493) ([deerawan](https://github.com/deerawan)) -* Added Indonesian (id\_ID) locale [\#492](https://github.com/fzaninotto/Faker/pull/492) ([stoutZero](https://github.com/stoutZero)) -* Fixed unique generator performance [\#491](https://github.com/fzaninotto/Faker/pull/491) ([ikwattro](https://github.com/ikwattro)) -* Added transliterator to `email` and `username` [\#490](https://github.com/fzaninotto/Faker/pull/490) ([fzaninotto](https://github.com/fzaninotto)) -* Added Hungarian (hu\_HU) Text provider [\#486](https://github.com/fzaninotto/Faker/pull/486) ([lintaba](https://github.com/lintaba)) -* Fixed CakePHP Entity Popolator (some cases where no entities prev. inserted) [\#483](https://github.com/fzaninotto/Faker/pull/483) ([jadb](https://github.com/jadb)) -* Added Color and DateTime Turkish (tr\_TR) Providers [\#481](https://github.com/fzaninotto/Faker/pull/481) ([behramcelen](https://github.com/behramcelen)) -* Added Latvian (lv\_LV) `personalIdentityNumber` formatter [\#472](https://github.com/fzaninotto/Faker/pull/472) ([MatissJanis](https://github.com/MatissJanis)) -* Added VAT number to Austrian (at_AT) Payment provider [\#470](https://github.com/fzaninotto/Faker/pull/470) ([ronanguilloux](https://github.com/ronanguilloux)) -* Fixed missing @return phpDoc in Payment provider [\#469](https://github.com/fzaninotto/Faker/pull/469) ([ronanguilloux](https://github.com/ronanguilloux)) -* Added SWIFT/BIC payment type formatter to the Payment provider [\#465](https://github.com/fzaninotto/Faker/pull/465) ([ronanguilloux](https://github.com/ronanguilloux)) -* Fixed small typo in Base provider exception [\#460](https://github.com/fzaninotto/Faker/pull/460) ([miclf](https://github.com/miclf)) -* Added Georgian (ka\_Ge) locale [\#457](https://github.com/fzaninotto/Faker/pull/457) ([lperto](https://github.com/lperto)) -* Added PSR-4 Autoloading [\#455](https://github.com/fzaninotto/Faker/pull/455) ([GrahamCampbell](https://github.com/GrahamCampbell)) -* Added Uganda (en_UG) locale [\#454](https://github.com/fzaninotto/Faker/pull/454) ([tharoldD](https://github.com/tharoldD)) -* Added `regexify` formatter, generating a random string based on a regular expression [\#453](https://github.com/fzaninotto/Faker/pull/453) ([fzaninotto](https://github.com/fzaninotto)) -* Added shuffle formatter, to shuffle an array or a string [\#452](https://github.com/fzaninotto/Faker/pull/452) ([fzaninotto](https://github.com/fzaninotto)) -* Added ISBN-10 & ISBN-13 codes formatters to Barcode provider [\#451](https://github.com/fzaninotto/Faker/pull/451) ([gietos](https://github.com/gietos)) -* Fixed Russian (ru\_RU) middle names (different for different genders) [\#450](https://github.com/fzaninotto/Faker/pull/450) ([gietos](https://github.com/gietos)) -* Fixed Ukranian (uk\_UA) Person provider [\#448](https://github.com/fzaninotto/Faker/pull/448) ([aivus](https://github.com/aivus)) -* Added Vietnamese (vi\_VN) locale [\#447](https://github.com/fzaninotto/Faker/pull/447) ([huy95](https://github.com/huy95)) -* Added type hint to the Documentor constructor [\#446](https://github.com/fzaninotto/Faker/pull/446) ([JeroenDeDauw](https://github.com/JeroenDeDauw)) -* Fixed Russian (ru\_RU) Person provider (joined names) [\#445](https://github.com/fzaninotto/Faker/pull/445) ([aivus](https://github.com/aivus)) -* Added English (en\_GB) `mobileNumber` methods [\#438](https://github.com/fzaninotto/Faker/pull/438) ([daveblake](https://github.com/daveblake)) -* Added Traditional Chinese (zh\_TW) Realtext provider [\#434](https://github.com/fzaninotto/Faker/pull/434) ([tzhuan](https://github.com/tzhuan)) -* Fixed first name in Spanish for Argentina (es\_AR) Person provider [\#433](https://github.com/fzaninotto/Faker/pull/433) ([fzaninotto](https://github.com/fzaninotto)) -* Fixed Canadian (en_CA) state abbreviation for Nunavut [\#430](https://github.com/fzaninotto/Faker/pull/430) ([julien-c](https://github.com/julien-c)) -* Added CakePHP ORM entity populator [\#428](https://github.com/fzaninotto/Faker/pull/428) ([jadb](https://github.com/jadb)) -* Added Traditional Chinese (zh\_TW) locale [\#427](https://github.com/fzaninotto/Faker/pull/427) ([tzhuan](https://github.com/tzhuan)) -* Fixed typo in Doctrine Populator phpDoc [\#425](https://github.com/fzaninotto/Faker/pull/425) ([ihsanudin](https://github.com/ihsanudin)) -* Added Chinese (zh_CN) Internet provider [\#424](https://github.com/fzaninotto/Faker/pull/424) ([Lisso-Me](https://github.com/Lisso-Me)) -* Added Country ISO 3166-1 alpha-3 code to the Miscellaneous provider[\#422](https://github.com/fzaninotto/Faker/pull/422) ([gido](https://github.com/gido)) -* Added English (en\_GB) Person provider [\#421](https://github.com/fzaninotto/Faker/pull/421) ([AlexCutts](https://github.com/AlexCutts)) -* Added missing tests for the Color Provider [\#420](https://github.com/fzaninotto/Faker/pull/420) ([bessl](https://github.com/bessl)) -* Added Nepali (ne\_NP) locale [\#419](https://github.com/fzaninotto/Faker/pull/419) ([ankitpokhrel](https://github.com/ankitpokhrel)) -* Fixed latitude and longitude formatters bug (numeric value out of range for 32bits) [\#416](https://github.com/fzaninotto/Faker/pull/416) ([fzaninotto](https://github.com/fzaninotto)) -* Added a dedicated calculator Luhn calculator service [\#414](https://github.com/fzaninotto/Faker/pull/414) ([fzaninotto](https://github.com/fzaninotto)) -* Fixed Russian (ru_RU) Person provider (removed lowercase duplications) [\#413](https://github.com/fzaninotto/Faker/pull/413) ([Ragazzo](https://github.com/Ragazzo)) -* Fixed barcode formatter (improved speed, added tests) [\#412](https://github.com/fzaninotto/Faker/pull/412) ([fzaninotto](https://github.com/fzaninotto)) -* Added ipv4 and barcode formatters tests [\#410](https://github.com/fzaninotto/Faker/pull/410) ([bessl](https://github.com/bessl)) -* Fixed typos in various comments blocks [\#409](https://github.com/fzaninotto/Faker/pull/409) ([bessl](https://github.com/bessl)) -* Fixed InternetTest (replaced regex with PHP filter) [\#406](https://github.com/fzaninotto/Faker/pull/406) ([bessl](https://github.com/bessl)) -* Added password formatter to the Internet provider[\#402](https://github.com/fzaninotto/Faker/pull/402) ([fzaninotto](https://github.com/fzaninotto)) -* Added Company and Internet Austrian (de\_AT) Providers [\#400](https://github.com/fzaninotto/Faker/pull/400) ([bessl](https://github.com/bessl)) -* Added third-party libraries section in README [\#399](https://github.com/fzaninotto/Faker/pull/399) ([fzaninotto](https://github.com/fzaninotto)) -* Added Spanish for Venezuela (es\_VE) locale [\#398](https://github.com/fzaninotto/Faker/pull/398) ([DIOHz0r](https://github.com/DIOHz0r)) -* Added PhoneNumber Autrian (de\_AT) Provider, and missing test for the 'locale' method. [\#395](https://github.com/fzaninotto/Faker/pull/395) ([bessl](https://github.com/bessl)) -* Removed wrongly localized Lorem provider [\#394](https://github.com/fzaninotto/Faker/pull/394) ([fzaninotto](https://github.com/fzaninotto)) -* Fixed Miscellaneous provider (made the `locale` formatter static) [\#390](https://github.com/fzaninotto/Faker/pull/390) ([bessl](https://github.com/bessl)) -* Added a unit test file for the Miscellaneous Provider [\#389](https://github.com/fzaninotto/Faker/pull/389) ([bessl](https://github.com/bessl)) -* Added warning in README about using `rand()`` and the seed functions [\#386](https://github.com/fzaninotto/Faker/pull/386) ([paulvalla](https://github.com/paulvalla)) -* Fixed French (fr\_FR) Person provider (Uppercased a first name) [\#385](https://github.com/fzaninotto/Faker/pull/385) ([netcarver](https://github.com/netcarver)) -* Added Russian (ru\_RU) and Ukrainian (uk\_UA) Text providers [\#383](https://github.com/fzaninotto/Faker/pull/383) ([terion-name](https://github.com/terion-name)) -* Added more street prefixes to French (fr\_FR) Address provider [\#381](https://github.com/fzaninotto/Faker/pull/381) ([ronanguilloux](https://github.com/ronanguilloux)) -* Added PHP 5.6 to CI targets [\#378](https://github.com/fzaninotto/Faker/pull/378) ([GrahamCampbell](https://github.com/GrahamCampbell)) -* Fixed spaces remaining at the end of liine in various files [\#377](https://github.com/fzaninotto/Faker/pull/377) ([GrahamCampbell](https://github.com/GrahamCampbell)) -* Fixed UserAgent provider (added space before processor on linux platform) [\#374](https://github.com/fzaninotto/Faker/pull/374) ([TomK](https://github.com/TomK)) -* Added Company generator for Russian (ru\_RU) locale [\#371](https://github.com/fzaninotto/Faker/pull/371) ([kix](https://github.com/kix)) -* Fixed Russian (ru\_RU) Color provider (uppercase letters) [\#370](https://github.com/fzaninotto/Faker/pull/370) ([semanser](https://github.com/semanser)) -* Added more Polish (pl\_PL) phone numbers [\#369](https://github.com/fzaninotto/Faker/pull/369) ([piotrantosik](https://github.com/piotrantosik)) -* Fixed Ruby Faker link in readme [\#368](https://github.com/fzaninotto/Faker/pull/368) ([philsturgeon](https://github.com/philsturgeon)) -* Added more Japanese (ja\_JP) names in Person provider [\#366](https://github.com/fzaninotto/Faker/pull/366) ([kumamidori](https://github.com/kumamidori)) -* Added Slovenian (sl\_SL) locale [\#363](https://github.com/fzaninotto/Faker/pull/363) ([alesf](https://github.com/alesf)) -* Fixed German (de\_DE) Person provider (first names) [\#362](https://github.com/fzaninotto/Faker/pull/362) ([mikehaertl](https://github.com/mikehaertl)) -* Fixed Ukrainian (uk\_UA) Person providr (there is no such letter "ы" in Ukrainian) [\#359](https://github.com/fzaninotto/Faker/pull/359) ([nazar-pc](https://github.com/nazar-pc)) -* Fixed Chinese (zh\_CN) PhoneNumber provider (the length of mobile phone number is 11) [\#358](https://github.com/fzaninotto/Faker/pull/358) ([byan](https://github.com/byan)) -* Added Arabic (ar_\JO) Locale [\#357](https://github.com/fzaninotto/Faker/pull/357) ([zrashwani](https://github.com/zrashwani)) -* Fixed Czech (cs\_CZ) Person provider (missing lowercase in last name) [\#355](https://github.com/fzaninotto/Faker/pull/355) ([halaxa](https://github.com/halaxa)) -* Fixed French for Belgium (fr\_BE) Address Provider (doubled city names) [\#354](https://github.com/fzaninotto/Faker/pull/354) ([miclf](https://github.com/miclf)) -* Added Biased Integer Provider [\#332](https://github.com/fzaninotto/Faker/pull/332) ([TimWolla](https://github.com/TimWolla)) -* Added Swedish (sv\_SE) locale [\#316](https://github.com/fzaninotto/Faker/pull/316) ([ulrikjohansson](https://github.com/ulrikjohansson)) -* Added English for New Zealand (en\_NZ) locale [\#283](https://github.com/fzaninotto/Faker/pull/283) ([JasonMortonNZ](https://github.com/JasonMortonNZ)) -* Added mention of external Provider for cron expressions to readme[\#498](https://github.com/fzaninotto/Faker/pull/498) ([swekaj](https://github.com/swekaj)) - -2014-06-04, v1.4.0 ------------------- - -* Fixed typo in Slovak person names (cinan) -* Added tests for uk_UA providers (serge-kuharev) -* Fixed numerify() performance by making it 30% faster (fzaninotto) -* Added strict option to randomNumber to force number of digits (fzaninotto) -* Fixed randomNumber usage duplicating numberBetween (fzaninotto) -* Fixed address provider for latvian language (MatissJA) -* Added Czech Republic (cs_CZ) address, company, datetime and text providers (Mikulas) -* Fixed da_DK Person provider data containing an 'unnamed' person (tolnem) -* Added slug provider (fzaninotto) -* Fixed IDE insights for new local IP and MAC address providers (hugofonseca) -* Added firstname gender method to all Person providers (csanquer) -* Fixed tr_TR email service, city name, person, and phone number formats (ogunkarakus) -* Fixed US_en state list (fzaninotto) -* Fixed en_US address provider so state abbr are ISO 3166 codes (Garbee) -* Added local IP and MAC address providers (kielabokkie) -* Fixed typo in century list affecting the century provider (fzaninotto) -* Added default value to optional modifier (joshuajabbour) -* Fixed Portuguese phonenumbers have 9 digits (hugofonseca) -* Added fileCopy to File provider to simulate file upload (stefanosala) -* Added pt_PT providers (hugofonseca) -* Fixed dead code in text provider (hugofonseca) -* Fixed IDE insights for magic properties (hugofonseca) -* Added tin (NIF) generator for pt_PT provider (hugofonseca) -* Fixed numberBetween max default value handling (fzaninotto) -* Added pt_PT phone number provider (hugofonseca) -* Fixed PSR-2 standards and add make task to force it on Travis (terite) -* Added new ro_RO Personal Numerical Code (CNP) and phone number providers (avataru) -* Fixed Internet provider for sk_SK locale (cinan) -* Fixed typo in en_ZA Internet provider (bjorntheart) -* Fixed phpdoc for DateTime magic methods (stof) -* Added doc about seeding with maximum timestamp using dateTime formatters (fzaninotto) -* Added Maximum Timestamp option to get always same unix timestamp when using a fixed seed (csanquer) -* Added Montenegrian (me_ME) providers (ognjenm) -* Added ean barcode provider (nineinchnick) -* Added fullPath parameter to Image provider (stefanosala) -* Added more Polish company formats (nineinchnick) -* Added Polish realText provider (nineinchnick) -* Fixed remaining non-seedable random generators (terite) -* Added randomElements provider (terite) -* Added French realText provider (fzaninotto) -* Fixed realText provider bootstrap slowness (fzaninotto) -* Added realText provider for English and German, based on Markov Chains Generator (TimWolla) -* Fixed address format in nl_NL provider (doenietzomoeilijk) -* Fixed potentially offensive word from last name list (joshuajabbour) -* Fixed reamde documentation about the optional modifier (cryode) -* Fixed Image provider and documentor routine (fzaninotto) -* Fixed IDE insights for methods (PedroTroller) -* Fixed missing data in en_US Address provider (Garbee) -* Added Bengali (bn_BD) providers (masnun) -* Fixed warning on test file when short tags are on (bateller) -* Fixed Doctrine populator undefined index warning (dbojdo) -* Added French Canadian (fr_CA) Address and Person providers (marcaube) -* Fixed typo in NullGenerator (mhanson01) -* Fixed Doctrine populator issue with one-to-one nullable relationship (jpetitcolas) -* Added Canadian English (en_CA) address and phone number providers (cviebrock) -* Fixed duplicated Payment example in readme (Garbee) -* Fixed Polish (pl_PL) Person provider data (czogori) -* Added Hungarian (hu_HU) providers (sagikazarmark) -* Added 'kana' (ja_JP) name formatters (kzykhys) -* Added allow_failure for hhvm to travis-ci and test against php 5.5 (toin0u) - -2013-12-16, v1.3.0 ------------------- - -* Fixed state generator in Australian (en_AU) provider (sebklaus) -* Fixed IDE insights for locale specific providers (ulrikjohansson) -* Added English (South Africa) (en_ZA) person, address, Internet and phone number providers (dmfaux) -* Fixed integer values overflowing on signed INTEGER columns on Doctrine populator (Thinkscape) -* Fixed spelling error in French (fr_FR) address provider (leihog) -* Added improvements based on SensioLabsInsights analysis -* Fixed Italian (it_IT) email provider (garak) -* Added Spanish (es_ES) Internet provider (eusonlito) -* Added English Philippines (en_PH) address provider (kamote) -* Added Brazilian (pt_BR) email provider data (KennedyTedesco) -* Fixed UK country code (pgscandeias) -* Added Peruvian (es_PE) person, address, phone number, and company providers (cslucano) -* Added Ukrainian (uk_UA) color provider (ruden) -* Fixed Ukrainian (uk_UA) namespace and email translitteration (ruden) -* Added Romanian (Moldova) (ro_MD) person, address, and phone number providers (AlexanderC) -* Added IBAN generator for every currently known locale that uses it (nineinchnick) -* Added Image generation powered by LoremPixel (weotch) -* Fixed missing timezone with dateTimeBetween (baldurrensch) -* Fixed call to undefined method cardType in Payment (WMeldon) -* Added Romanian (ro_RO) address and person providers (calina-c) -* Fixed Doctrine populator to use ObjectManager instead of EntityManagerInterface (mgiustiniani) -* Fixed docblock for Provider\Base::unique() (pschultz) -* Added Payment providers (creditCardType, creditCardNumber, creditCardExpirationDate, creditCardExpirationDateString) (pomaxa) -* Added unique() modifier -* Added IDE insights to allow better intellisense/phpStorm autocompletion (thallisphp) -* Added Polish (pl_PL) address provider, personal identity number and pesel number generator (nineinchnick) -* Added Turkish (tr_TR) address provider, and improved internet provider (hasandz) -* Fixed Propel column number guesser to use signed range of values (gunnarlium) -* Added Greek (el_GR) person, address, and phone number providers (georgeharito) -* Added Austrian (en_AU) address, Internet, and phone number providers (rcuddy) -* Fixed phpDoc in Doctrine Entity populator (rogamoore) -* Added French (fr_FR) phone number formats (vchabot) -* Added optional() modifier (weotch) -* Fixed typo in the Person provider documentation (jtreminio) -* Fixed Russian (ru_RU) person format (alexshadow007) -* Added Japanese (ja_JP) person, address, Internet, phone number, and company providers (kumamidori) -* Added color providers, driver license and passport number formats for the ru_RU locale (pomaxa) -* Added Latvian (lv_LV) person, address, Internet, and phone number providers (pomaxa) -* Added Brazilian (pt_BR) Internet provider (vjnrv) -* Added more Czech (cs_CZ) lastnames (petrkle) -* Added Chinese Simplified (zh_CN) person, address, Internet, and phone number providers (tlikai) -* Fixed Typos (pborelli) -* Added Color provider with hexColor, rgbColor, rgbColorAsArray, rgbCssColor, safeColorName, and colorName formatters (lsv) -* Added support for associative arrays in `randomElement` (aRn0D) - - -2013-06-09, v1.2.0 ------------------- - -* Added new provider for fr_BE locale (jflefebvre) -* Updated locale provider to use a static locale list (spawn-guy) -* Fixed invalid UTF-8 sequence in domain provider with the Bulgarian provider (Dynom) -* Fixed the nl_NL Person provider (Dynom) -* Removed all requires and added the autoload definition to composer (Dynom) -* Fixed encoding problems in nl_NL Address provider (Dynom) -* Added icelandic provider (is_IS) (birkir) -* Added en_CA address and phone numbers (cviebrock) -* Updated safeEmail provider to be really safe (TimWolla) -* Documented alternative randomNumber usage (Seldaek) -* Added basic file provider (anroots) -* Fixed use of fourth argument on Doctrine addEntity (ecentinela) -* Added nl_BE provider (wimvds) -* Added Random Float provider (csanquer) -* Fixed bug in Faker\ORM\Doctrine\Populator (mmf-amarcos) -* Updated ru_RU provider (rmrevin) -* Added safe email domain provider (csanquer) -* Fixed latitude provider (rumpl) -* Fixed unpredictability of fake data generated by Faker\Provider\Base::numberBetween() (goatherd) -* Added uuid provider (goatherd) -* Added possibility to call methods on Doctrine entities, possibility to generate unique id (nenadalm) -* Fixed prefixes typos in 'pl_PL' Person provider (krymen) -* Added more fake data to the Ukraininan providers (lysenkobv) -* Added more fake data to the Italian providers (EmanueleMinotto) -* Fixed spaces appearing in generated emails (alchy58) -* Added Armenian (hy_AM) provider (artash) -* Added Generation of valid SIREN & SIRET codes to French providers (alexsegura) -* Added Dutch (nl_NL) provider (WouterJ) -* Fixed missing typehint in Base::__construct() (benja-M-1) -* Fixed typo in README (benja-M-1) -* Added Ukrainian (ua_UA) provider (rsvasilyev) -* Added Turkish (tr_TR) Provider (faridmovsumov) -* Fixed executable bit in some PHP files (siwinski) -* Added Brazilian Portuguese (pt_BR) provider (oliveiraev) -* Added Spanish (es_ES) provider (ivannis) -* Fixed Doctrine populator to allow for the population of entity data that has associations to other entities (afishnamedsquish) -* Added Danish (da_DK) providers (toin0u) -* Cleaned up whitespaces (toin0u) -* Fixed utf-8 bug with lowercase generators (toin0u) -* Fixed composer.json (Seldaek) -* Fixed bug in Doctrine EntityPopulator (beberlei) -* Added Finnish (fi_FI) provider (drodil) - -2012-10-29, v1.1.0 ------------------- - -* Updated text provider to return paragraphs as a string instead of array. Great for populating markdown textarea fields (Seldaek) -* Updated dateTimeBetween to accept DateTime instances (Seldaek) -* Added random number generator between a and b, simply like rand() (Seldaek) -* Fixed spaces in generated emails (blaugueux) -* Fixed Person provider in Russian locale (Isamashii) -* Added new UserAgent provider (blaugueux) -* Added locale generator to Miscellaneous provider (blaugueux) -* Added timezone generator to DateTime provider (blaugueux) -* Added new generators to French Address providers (departments, regions) (geoffrey-brier) -* Added new generators to French Company provider (catch phrase, SIREN, and SIRET numbers) (geoffrey-brier) -* Added state generator to German Address provider (Powerhamster) -* Added Slovak provider (bazo) -* Added latitude and longitude formatters to Address provider (fixe) -* Added Serbian provider (umpirsky) - -2012-07-10, v1.0.0 ------------------ - -* Initial Version diff --git a/vendor/fzaninotto/faker/CONTRIBUTING.md b/vendor/fzaninotto/faker/CONTRIBUTING.md deleted file mode 100644 index 804bf79c..00000000 --- a/vendor/fzaninotto/faker/CONTRIBUTING.md +++ /dev/null @@ -1,22 +0,0 @@ -Contributing -============ - -If you've written a new formatter, adapted Faker to a new locale, or fixed a bug, your contribution is welcome! - -Before proposing a pull request, check the following: - -* Your code should follow the [PSR-2 coding standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md). Run `make sniff` to check that the coding standards are followed, and use [php-cs-fixer](https://github.com/fabpot/PHP-CS-Fixer) to fix inconsistencies. -* Unit tests should still pass after your patch. Run the tests on your dev server (with `make test`) or check the continuous integration status for your pull request. -* As much as possible, add unit tests for your code -* Never use `rand()` in your providers. Faker uses the Mersenne Twister Randomizer, so use `mt_rand()` or any of the base generators (`randomNumber`, `randomElement`, etc.) instead. -* If you add new providers (or new locales) and that they embed a lot of data for random generation (e.g. first names in a new language), please add a `@link` to the reference you used for this list (example [in the ru_RU locale](https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/ru_RU/Person.php#L13)). This will ease future updates of the list and debates about the most relevant data for this provider. -* If you add long list of random data, please split the list into several lines. This makes diffs easier to read, and facilitates core review. -* If you add new formatters, please include documentation for it in the README. Don't forget to add a line about new formatters in the `@property` or `@method` phpDoc entries in [Generator.php](https://github.com/fzaninotto/Faker/blob/master/src/Faker/Generator.php#L6-L118) to help IDEs auto-complete your formatters. -* If your new formatters are specific to a certain locale, document them in the [Language-specific formatters](https://github.com/fzaninotto/Faker#language-specific-formatters) list instead. -* Avoid changing existing sets of data. Some developers use Faker with seeding for unit tests ; changing the data makes their tests fail. -* Speed is important in all Faker usages. Make sure your code is optimized to generate thousands of fake items in no time, without consuming too much memory or CPU. -* If you commit a new feature, be prepared to help maintaining it. Watch the project on GitHub, and please comment on issues or PRs regarding the feature you contributed. - -Once your code is merged, it is available for free to everybody under the MIT License. Publishing your Pull Request on the Faker GitHub repository means that you agree with this license for your contribution. - -Thank you for your contribution! Faker wouldn't be so great without you. diff --git a/vendor/fzaninotto/faker/LICENSE b/vendor/fzaninotto/faker/LICENSE deleted file mode 100644 index 99ed0075..00000000 --- a/vendor/fzaninotto/faker/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2011 François Zaninotto -Portions Copyright (c) 2008 Caius Durling -Portions Copyright (c) 2008 Adam Royle -Portions Copyright (c) 2008 Fiona Burrows - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/fzaninotto/faker/Makefile b/vendor/fzaninotto/faker/Makefile deleted file mode 100644 index ccfde5cd..00000000 --- a/vendor/fzaninotto/faker/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -vendor/autoload.php: - composer install --no-interaction --prefer-dist - -.PHONY: sniff -sniff: vendor/autoload.php - vendor/bin/phpcs --standard=PSR2 src -n - -.PHONY: test -test: vendor/autoload.php - vendor/bin/phpunit --verbose diff --git a/vendor/fzaninotto/faker/composer.json b/vendor/fzaninotto/faker/composer.json deleted file mode 100644 index d3bfd6c6..00000000 --- a/vendor/fzaninotto/faker/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "fzaninotto/faker", - "type": "library", - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": ["faker", "fixtures", "data"], - "license": "MIT", - "authors": [ - { - "name": "François Zaninotto" - } - ], - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0", - "squizlabs/php_codesniffer": "^1.5", - "ext-intl": "*" - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "autoload-dev": { - "psr-4": { - "Faker\\Test\\": "test/Faker/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - } -} diff --git a/vendor/fzaninotto/faker/phpunit.xml.dist b/vendor/fzaninotto/faker/phpunit.xml.dist deleted file mode 100644 index 4ffa17f3..00000000 --- a/vendor/fzaninotto/faker/phpunit.xml.dist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - ./test/Faker/ - - - diff --git a/vendor/fzaninotto/faker/readme.md b/vendor/fzaninotto/faker/readme.md deleted file mode 100644 index 6e75ce77..00000000 --- a/vendor/fzaninotto/faker/readme.md +++ /dev/null @@ -1,1546 +0,0 @@ -# Faker - -Faker is a PHP library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you. - -Faker is heavily inspired by Perl's [Data::Faker](http://search.cpan.org/~jasonk/Data-Faker-0.07/), and by ruby's [Faker](https://rubygems.org/gems/faker). - -Faker requires PHP >= 5.3.3. - -[![Monthly Downloads](https://poser.pugx.org/fzaninotto/faker/d/monthly.png)](https://packagist.org/packages/fzaninotto/faker) [![Build Status](https://travis-ci.org/fzaninotto/Faker.svg?branch=master)](https://travis-ci.org/fzaninotto/Faker) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/eceb78a9-38d4-4ad5-8b6b-b52f323e3549/mini.png)](https://insight.sensiolabs.com/projects/eceb78a9-38d4-4ad5-8b6b-b52f323e3549) - -# Table of Contents - -- [Installation](#installation) -- [Basic Usage](#basic-usage) -- [Formatters](#formatters) - - [Base](#fakerproviderbase) - - [Lorem Ipsum Text](#fakerproviderlorem) - - [Person](#fakerprovideren_usperson) - - [Address](#fakerprovideren_usaddress) - - [Phone Number](#fakerprovideren_usphonenumber) - - [Company](#fakerprovideren_uscompany) - - [Real Text](#fakerprovideren_ustext) - - [Date and Time](#fakerproviderdatetime) - - [Internet](#fakerproviderinternet) - - [User Agent](#fakerprovideruseragent) - - [Payment](#fakerproviderpayment) - - [Color](#fakerprovidercolor) - - [File](#fakerproviderfile) - - [Image](#fakerproviderimage) - - [Uuid](#fakerprovideruuid) - - [Barcode](#fakerproviderbarcode) - - [Miscellaneous](#fakerprovidermiscellaneous) - - [Biased](#fakerproviderbiased) - - [Html Lorem](#fakerproviderhtmllorem) -- [Modifiers](#modifiers) -- [Localization](#localization) -- [Populating Entities Using an ORM or an ODM](#populating-entities-using-an-orm-or-an-odm) -- [Seeding the Generator](#seeding-the-generator) -- [Faker Internals: Understanding Providers](#faker-internals-understanding-providers) -- [Real Life Usage](#real-life-usage) -- [Language specific formatters](#language-specific-formatters) -- [Third-Party Libraries Extending/Based On Faker](#third-party-libraries-extendingbased-on-faker) -- [License](#license) - - -## Installation - -```sh -composer require fzaninotto/faker -``` - -## Basic Usage - -Use `Faker\Factory::create()` to create and initialize a faker generator, which can generate data by accessing properties named after the type of data you want. - -```php -name; - // 'Lucy Cechtelar'; -echo $faker->address; - // "426 Jordy Lodge - // Cartwrightshire, SC 88120-6700" -echo $faker->text; - // Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit - // et sit et mollitia sed. - // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium - // sit minima sint. -``` - -Even if this example shows a property access, each call to `$faker->name` yields a different (random) result. This is because Faker uses `__get()` magic, and forwards `Faker\Generator->$property` calls to `Faker\Generator->format($property)`. - -```php -name, "\n"; -} - // Adaline Reichel - // Dr. Santa Prosacco DVM - // Noemy Vandervort V - // Lexi O'Conner - // Gracie Weber - // Roscoe Johns - // Emmett Lebsack - // Keegan Thiel - // Wellington Koelpin II - // Ms. Karley Kiehn V -``` - -**Tip**: For a quick generation of fake data, you can also use Faker as a command line tool thanks to [faker-cli](https://github.com/bit3/faker-cli). - -## Formatters - -Each of the generator properties (like `name`, `address`, and `lorem`) are called "formatters". A faker generator has many of them, packaged in "providers". Here is a list of the bundled formatters in the default locale. - -### `Faker\Provider\Base` - - randomDigit // 7 - randomDigitNotNull // 5 - randomNumber($nbDigits = NULL, $strict = false) // 79907610 - randomFloat($nbMaxDecimals = NULL, $min = 0, $max = NULL) // 48.8932 - numberBetween($min = 1000, $max = 9000) // 8567 - randomLetter // 'b' - // returns randomly ordered subsequence of a provided array - randomElements($array = array ('a','b','c'), $count = 1) // array('c') - randomElement($array = array ('a','b','c')) // 'b' - shuffle('hello, world') // 'rlo,h eoldlw' - shuffle(array(1, 2, 3)) // array(2, 1, 3) - numerify('Hello ###') // 'Hello 609' - lexify('Hello ???') // 'Hello wgt' - bothify('Hello ##??') // 'Hello 42jz' - asciify('Hello ***') // 'Hello R6+' - regexify('[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}'); // sm0@y8k96a.ej - -### `Faker\Provider\Lorem` - - word // 'aut' - words($nb = 3, $asText = false) // array('porro', 'sed', 'magni') - sentence($nbWords = 6, $variableNbWords = true) // 'Sit vitae voluptas sint non voluptates.' - sentences($nb = 3, $asText = false) // array('Optio quos qui illo error.', 'Laborum vero a officia id corporis.', 'Saepe provident esse hic eligendi.') - paragraph($nbSentences = 3, $variableNbSentences = true) // 'Ut ab voluptas sed a nam. Sint autem inventore aut officia aut aut blanditiis. Ducimus eos odit amet et est ut eum.' - paragraphs($nb = 3, $asText = false) // array('Quidem ut sunt et quidem est accusamus aut. Fuga est placeat rerum ut. Enim ex eveniet facere sunt.', 'Aut nam et eum architecto fugit repellendus illo. Qui ex esse veritatis.', 'Possimus omnis aut incidunt sunt. Asperiores incidunt iure sequi cum culpa rem. Rerum exercitationem est rem.') - text($maxNbChars = 200) // 'Fuga totam reiciendis qui architecto fugiat nemo. Consequatur recusandae qui cupiditate eos quod.' - -### `Faker\Provider\en_US\Person` - - title($gender = null|'male'|'female') // 'Ms.' - titleMale // 'Mr.' - titleFemale // 'Ms.' - suffix // 'Jr.' - name($gender = null|'male'|'female') // 'Dr. Zane Stroman' - firstName($gender = null|'male'|'female') // 'Maynard' - firstNameMale // 'Maynard' - firstNameFemale // 'Rachel' - lastName // 'Zulauf' - -### `Faker\Provider\en_US\Address` - - cityPrefix // 'Lake' - secondaryAddress // 'Suite 961' - state // 'NewMexico' - stateAbbr // 'OH' - citySuffix // 'borough' - streetSuffix // 'Keys' - buildingNumber // '484' - city // 'West Judge' - streetName // 'Keegan Trail' - streetAddress // '439 Karley Loaf Suite 897' - postcode // '17916' - address // '8888 Cummings Vista Apt. 101, Susanbury, NY 95473' - country // 'Falkland Islands (Malvinas)' - latitude($min = -90, $max = 90) // 77.147489 - longitude($min = -180, $max = 180) // 86.211205 - -### `Faker\Provider\en_US\PhoneNumber` - - phoneNumber // '201-886-0269 x3767' - tollFreePhoneNumber // '(888) 937-7238' - e164PhoneNumber // '+27113456789' - -### `Faker\Provider\en_US\Company` - - catchPhrase // 'Monitored regional contingency' - bs // 'e-enable robust architectures' - company // 'Bogan-Treutel' - companySuffix // 'and Sons' - jobTitle // 'Cashier' - -### `Faker\Provider\en_US\Text` - - realText($maxNbChars = 200, $indexSize = 2) // "And yet I wish you could manage it?) 'And what are they made of?' Alice asked in a shrill, passionate voice. 'Would YOU like cats if you were never even spoke to Time!' 'Perhaps not,' Alice replied." - -### `Faker\Provider\DateTime` - - unixTime($max = 'now') // 58781813 - dateTime($max = 'now', $timezone = date_default_timezone_get()) // DateTime('2008-04-25 08:37:17', 'UTC') - dateTimeAD($max = 'now', $timezone = date_default_timezone_get()) // DateTime('1800-04-29 20:38:49', 'Europe/Paris') - iso8601($max = 'now') // '1978-12-09T10:10:29+0000' - date($format = 'Y-m-d', $max = 'now') // '1979-06-09' - time($format = 'H:i:s', $max = 'now') // '20:49:42' - dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = date_default_timezone_get()) // DateTime('2003-03-15 02:00:49', 'Africa/Lagos') - dateTimeInInterval($startDate = '-30 years', $interval = '+ 5 days', $timezone = date_default_timezone_get()) // DateTime('2003-03-15 02:00:49', 'Antartica/Vostok') - dateTimeThisCentury($max = 'now', $timezone = date_default_timezone_get()) // DateTime('1915-05-30 19:28:21', 'UTC') - dateTimeThisDecade($max = 'now', $timezone = date_default_timezone_get()) // DateTime('2007-05-29 22:30:48', 'Europe/Paris') - dateTimeThisYear($max = 'now', $timezone = date_default_timezone_get()) // DateTime('2011-02-27 20:52:14', 'Africa/Lagos') - dateTimeThisMonth($max = 'now', $timezone = date_default_timezone_get()) // DateTime('2011-10-23 13:46:23', 'Antarctica/Vostok') - amPm($max = 'now') // 'pm' - dayOfMonth($max = 'now') // '04' - dayOfWeek($max = 'now') // 'Friday' - month($max = 'now') // '06' - monthName($max = 'now') // 'January' - year($max = 'now') // '1993' - century // 'VI' - timezone // 'Europe/Paris' - -### `Faker\Provider\Internet` - - email // 'tkshlerin@collins.com' - safeEmail // 'king.alford@example.org' - freeEmail // 'bradley72@gmail.com' - companyEmail // 'russel.durward@mcdermott.org' - freeEmailDomain // 'yahoo.com' - safeEmailDomain // 'example.org' - userName // 'wade55' - password // 'k&|X+a45*2[' - domainName // 'wolffdeckow.net' - domainWord // 'feeney' - tld // 'biz' - url // 'http://www.skilesdonnelly.biz/aut-accusantium-ut-architecto-sit-et.html' - slug // 'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum' - ipv4 // '109.133.32.252' - localIpv4 // '10.242.58.8' - ipv6 // '8e65:933d:22ee:a232:f1c1:2741:1f10:117c' - macAddress // '43:85:B7:08:10:CA' - -### `Faker\Provider\UserAgent` - - userAgent // 'Mozilla/5.0 (Windows CE) AppleWebKit/5350 (KHTML, like Gecko) Chrome/13.0.888.0 Safari/5350' - chrome // 'Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_5) AppleWebKit/5312 (KHTML, like Gecko) Chrome/14.0.894.0 Safari/5312' - firefox // 'Mozilla/5.0 (X11; Linuxi686; rv:7.0) Gecko/20101231 Firefox/3.6' - safari // 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_7_1 rv:3.0; en-US) AppleWebKit/534.11.3 (KHTML, like Gecko) Version/4.0 Safari/534.11.3' - opera // 'Opera/8.25 (Windows NT 5.1; en-US) Presto/2.9.188 Version/10.00' - internetExplorer // 'Mozilla/5.0 (compatible; MSIE 7.0; Windows 98; Win 9x 4.90; Trident/3.0)' - -### `Faker\Provider\Payment` - - creditCardType // 'MasterCard' - creditCardNumber // '4485480221084675' - creditCardExpirationDate // 04/13 - creditCardExpirationDateString // '04/13' - creditCardDetails // array('MasterCard', '4485480221084675', 'Aleksander Nowak', '04/13') - // Generates a random IBAN. Set $countryCode to null for a random country - iban($countryCode) // 'IT31A8497112740YZ575DJ28BP4' - swiftBicNumber // 'RZTIAT22263' - -### `Faker\Provider\Color` - - hexcolor // '#fa3cc2' - rgbcolor // '0,255,122' - rgbColorAsArray // array(0,255,122) - rgbCssColor // 'rgb(0,255,122)' - safeColorName // 'fuchsia' - colorName // 'Gainsbor' - -### `Faker\Provider\File` - - fileExtension // 'avi' - mimeType // 'video/x-msvideo' - // Copy a random file from the source to the target directory and returns the fullpath or filename - file($sourceDir = '/tmp', $targetDir = '/tmp') // '/path/to/targetDir/13b73edae8443990be1aa8f1a483bc27.jpg' - file($sourceDir, $targetDir, false) // '13b73edae8443990be1aa8f1a483bc27.jpg' - -### `Faker\Provider\Image` - - // Image generation provided by LoremPixel (http://lorempixel.com/) - imageUrl($width = 640, $height = 480) // 'http://lorempixel.com/640/480/' - imageUrl($width, $height, 'cats') // 'http://lorempixel.com/800/600/cats/' - imageUrl($width, $height, 'cats', true, 'Faker') // 'http://lorempixel.com/800/400/cats/Faker' - imageUrl($width, $height, 'cats', true, 'Faker', true) // 'http://lorempixel.com/grey/800/400/cats/Faker/' Monochrome image - image($dir = '/tmp', $width = 640, $height = 480) // '/tmp/13b73edae8443990be1aa8f1a483bc27.jpg' - image($dir, $width, $height, 'cats') // 'tmp/13b73edae8443990be1aa8f1a483bc27.jpg' it's a cat! - image($dir, $width, $height, 'cats', false) // '13b73edae8443990be1aa8f1a483bc27.jpg' it's a filename without path - image($dir, $width, $height, 'cats', true, false) // it's a no randomize images (default: `true`) - image($dir, $width, $height, 'cats', true, true, 'Faker') // 'tmp/13b73edae8443990be1aa8f1a483bc27.jpg' it's a cat with 'Faker' text. Default, `null`. - -### `Faker\Provider\Uuid` - - uuid // '7e57d004-2b97-0e7a-b45f-5387367791cd' - -### `Faker\Provider\Barcode` - - ean13 // '4006381333931' - ean8 // '73513537' - isbn13 // '9790404436093' - isbn10 // '4881416324' - -### `Faker\Provider\Miscellaneous` - - boolean // false - boolean($chanceOfGettingTrue = 50) // true - md5 // 'de99a620c50f2990e87144735cd357e7' - sha1 // 'f08e7f04ca1a413807ebc47551a40a20a0b4de5c' - sha256 // '0061e4c60dac5c1d82db0135a42e00c89ae3a333e7c26485321f24348c7e98a5' - locale // en_UK - countryCode // UK - languageCode // en - currencyCode // EUR - emoji // 😠- -### `Faker\Provider\Biased` - - // get a random number between 10 and 20, - // with more chances to be close to 20 - biasedNumberBetween($min = 10, $max = 20, $function = 'sqrt') - -### `Faker\Provider\HtmlLorem` - - //Generate HTML document which is no more than 2 levels deep, and no more than 3 elements wide at any level. - randomHtml(2,3) // Aut illo dolorem et accusantium eum.
Id aut saepe non mollitia voluptas voluptas.Non consequatur.Incidunt est.Aut voluptatem.Officia voluptas rerum quo.Asperiores similique.
Sapiente dolorum dolorem sint laboriosam commodi qui.Commodi nihil nesciunt eveniet quo repudiandae.Voluptates explicabo numquam distinctio necessitatibus repellat.Provident ut doloremque nam eum modi aspernatur.Iusto inventore.
Animi nihil ratione id mollitia libero ipsa quia tempore.Velit est officia et aut tenetur dolorem sed mollitia expedita.Modi modi repudiandae pariatur voluptas rerum ea incidunt non molestiae eligendi eos deleniti.Exercitationem voluptatibus dolor est iste quod molestiae.Quia reiciendis.
Inventore impedit exercitationem voluptatibus rerum cupiditate.Qui.Aliquam.Autem nihil aut et.Dolor ut quia error.
Enim facilis iusto earum et minus rerum assumenda quis quia.Reprehenderit ut sapiente occaecati voluptatum dolor voluptatem vitae qui velit.Quod fugiat non.Sunt nobis totam mollitia sed nesciunt est deleniti cumque.Repudiandae quo.
Modi dicta libero quisquam doloremque qui autem.Voluptatem aliquid saepe laudantium facere eos sunt dolor.Est eos quis laboriosam officia expedita repellendus quia natus.Et neque delectus quod fugit enim repudiandae qui.Fugit soluta sit facilis facere repellat culpa magni voluptatem maiores tempora.
Enim dolores doloremque.Assumenda voluptatem eum perferendis exercitationem.Quasi in fugit deserunt ea perferendis sunt nemo consequatur dolorum soluta.Maxime repellat qui numquam voluptatem est modi.Alias rerum rerum hic hic eveniet.
Tempore voluptatem.Eaque.Et sit quas fugit iusto.Nemo nihil rerum dignissimos et esse.Repudiandae ipsum numquam.
Nemo sunt quia.Sint tempore est neque ducimus harum sed.Dicta placeat atque libero nihil.Et qui aperiam temporibus facilis eum.Ut dolores qui enim et maiores nesciunt.
Dolorum totam sint debitis saepe laborum.Quidem corrupti ea.Cum voluptas quod.Possimus consequatur quasi dolorem ut et.Et velit non hic labore repudiandae quis.
- -## Modifiers - -Faker provides three special providers, `unique()`, `optional()`, and `valid()`, to be called before any provider. - -```php -// unique() forces providers to return unique values -$values = array(); -for ($i=0; $i < 10; $i++) { - // get a random digit, but always a new one, to avoid duplicates - $values []= $faker->unique()->randomDigit; -} -print_r($values); // [4, 1, 8, 5, 0, 2, 6, 9, 7, 3] - -// providers with a limited range will throw an exception when no new unique value can be generated -$values = array(); -try { - for ($i=0; $i < 10; $i++) { - $values []= $faker->unique()->randomDigitNotNull; - } -} catch (\OverflowException $e) { - echo "There are only 9 unique digits not null, Faker can't generate 10 of them!"; -} - -// you can reset the unique modifier for all providers by passing true as first argument -$faker->unique($reset = true)->randomDigitNotNull; // will not throw OverflowException since unique() was reset -// tip: unique() keeps one array of values per provider - -// optional() sometimes bypasses the provider to return a default value instead (which defaults to NULL) -$values = array(); -for ($i=0; $i < 10; $i++) { - // get a random digit, but also null sometimes - $values []= $faker->optional()->randomDigit; -} -print_r($values); // [1, 4, null, 9, 5, null, null, 4, 6, null] - -// optional() accepts a weight argument to specify the probability of receiving the default value. -// 0 will always return the default value; 1 will always return the provider. Default weight is 0.5 (50% chance). -$faker->optional($weight = 0.1)->randomDigit; // 90% chance of NULL -$faker->optional($weight = 0.9)->randomDigit; // 10% chance of NULL - -// optional() accepts a default argument to specify the default value to return. -// Defaults to NULL. -$faker->optional($weight = 0.5, $default = false)->randomDigit; // 50% chance of FALSE -$faker->optional($weight = 0.9, $default = 'abc')->word; // 10% chance of 'abc' - -// valid() only accepts valid values according to the passed validator functions -$values = array(); -$evenValidator = function($digit) { - return $digit % 2 === 0; -}; -for ($i=0; $i < 10; $i++) { - $values []= $faker->valid($evenValidator)->randomDigit; -} -print_r($values); // [0, 4, 8, 4, 2, 6, 0, 8, 8, 6] - -// just like unique(), valid() throws an overflow exception when it can't generate a valid value -$values = array(); -try { - $faker->valid($evenValidator)->randomElement(1, 3, 5, 7, 9); -} catch (\OverflowException $e) { - echo "Can't pick an even number in that set!"; -} -``` - -## Localization - -`Faker\Factory` can take a locale as an argument, to return localized data. If no localized provider is found, the factory fallbacks to the default locale (en_US). - -```php -name, "\n"; -} - // Luce du Coulon - // Auguste Dupont - // Roger Le Voisin - // Alexandre Lacroix - // Jacques Humbert-Roy - // Thérèse Guillet-Andre - // Gilles Gros-Bodin - // Amélie Pires - // Marcel Laporte - // Geneviève Marchal -``` - -You can check available Faker locales in the source code, [under the `Provider` directory](https://github.com/fzaninotto/Faker/tree/master/src/Faker/Provider). The localization of Faker is an ongoing process, for which we need your help. Don't hesitate to create localized providers to your own locale and submit a PR! - -## Populating Entities Using an ORM or an ODM - -Faker provides adapters for Object-Relational and Object-Document Mappers (currently, [Propel](http://www.propelorm.org), [Doctrine2](http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/), [CakePHP](http://cakephp.org), [Spot2](https://github.com/vlucas/spot2), [Mandango](https://github.com/mandango/mandango) and [Eloquent](https://laravel.com/docs/master/eloquent) are supported). These adapters ease the population of databases through the Entity classes provided by an ORM library (or the population of document stores using Document classes provided by an ODM library). - -To populate entities, create a new populator class (using a generator instance as parameter), then list the class and number of all the entities that must be generated. To launch the actual data population, call the `execute()` method. - -Here is an example showing how to populate 5 `Author` and 10 `Book` objects: - -```php -addEntity('Author', 5); -$populator->addEntity('Book', 10); -$insertedPKs = $populator->execute(); -``` - -The populator uses name and column type guessers to populate each column with relevant data. For instance, Faker populates a column named `first_name` using the `firstName` formatter, and a column with a `TIMESTAMP` type using the `dateTime` formatter. The resulting entities are therefore coherent. If Faker misinterprets a column name, you can still specify a custom closure to be used for populating a particular column, using the third argument to `addEntity()`: - -```php -addEntity('Book', 5, array( - 'ISBN' => function() use ($generator) { return $generator->ean13(); } -)); -``` - -In this example, Faker will guess a formatter for all columns except `ISBN`, for which the given anonymous function will be used. - -**Tip**: To ignore some columns, specify `null` for the column names in the third argument of `addEntity()`. This is usually necessary for columns added by a behavior: - -```php -addEntity('Book', 5, array( - 'CreatedAt' => null, - 'UpdatedAt' => null, -)); -``` - -Of course, Faker does not populate autoincremented primary keys. In addition, `Faker\ORM\Propel\Populator::execute()` returns the list of inserted PKs, indexed by class: - -```php - (34, 35, 36, 37, 38), -// 'Book' => (456, 457, 458, 459, 470, 471, 472, 473, 474, 475) -// ) -``` - -In the previous example, the `Book` and `Author` models share a relationship. Since `Author` entities are populated first, Faker is smart enough to relate the populated `Book` entities to one of the populated `Author` entities. - -Lastly, if you want to execute an arbitrary function on an entity before insertion, use the fourth argument of the `addEntity()` method: - -```php -addEntity('Book', 5, array(), array( - function($book) { $book->publish(); }, -)); -``` - -## Seeding the Generator - -You may want to get always the same generated data - for instance when using Faker for unit testing purposes. The generator offers a `seed()` method, which seeds the random number generator. Calling the same script twice with the same seed produces the same results. - -```php -seed(1234); - -echo $faker->name; // 'Jess Mraz I'; -``` - -> **Tip**: DateTime formatters won't reproduce the same fake data if you don't fix the `$max` value: -> -> ```php -> // even when seeded, this line will return different results because $max varies -> $faker->dateTime(); // equivalent to $faker->dateTime($max = 'now') -> // make sure you fix the $max parameter -> $faker->dateTime('2014-02-25 08:37:17'); // will return always the same date when seeded -> ``` -> -> **Tip**: Formatters won't reproduce the same fake data if you use the `rand()` php function. Use `$faker` or `mt_rand()` instead: -> -> ```php -> // bad -> $faker->realText(rand(10,20)); -> // good -> $faker->realText($faker->numberBetween(10,20)); -> ``` - - - -## Faker Internals: Understanding Providers - -A `Faker\Generator` alone can't do much generation. It needs `Faker\Provider` objects to delegate the data generation to them. `Faker\Factory::create()` actually creates a `Faker\Generator` bundled with the default providers. Here is what happens under the hood: - -```php -addProvider(new Faker\Provider\en_US\Person($faker)); -$faker->addProvider(new Faker\Provider\en_US\Address($faker)); -$faker->addProvider(new Faker\Provider\en_US\PhoneNumber($faker)); -$faker->addProvider(new Faker\Provider\en_US\Company($faker)); -$faker->addProvider(new Faker\Provider\Lorem($faker)); -$faker->addProvider(new Faker\Provider\Internet($faker)); -```` - -Whenever you try to access a property on the `$faker` object, the generator looks for a method with the same name in all the providers attached to it. For instance, calling `$faker->name` triggers a call to `Faker\Provider\Person::name()`. And since Faker starts with the last provider, you can easily override existing formatters: just add a provider containing methods named after the formatters you want to override. - -That means that you can easily add your own providers to a `Faker\Generator` instance. A provider is usually a class extending `\Faker\Provider\Base`. This parent class allows you to use methods like `lexify()` or `randomNumber()`; it also gives you access to formatters of other providers, through the protected `$generator` property. The new formatters are the public methods of the provider class. - -Here is an example provider for populating Book data: - -```php -generator->sentence($nbWords); - return substr($sentence, 0, strlen($sentence) - 1); - } - - public function ISBN() - { - return $this->generator->ean13(); - } -} -``` - -To register this provider, just add a new instance of `\Faker\Provider\Book` to an existing generator: - -```php -addProvider(new \Faker\Provider\Book($faker)); -``` - -Now you can use the two new formatters like any other Faker formatter: - -```php -setTitle($faker->title); -$book->setISBN($faker->ISBN); -$book->setSummary($faker->text); -$book->setPrice($faker->randomNumber(2)); -``` - -**Tip**: A provider can also be a Plain Old PHP Object. In that case, all the public methods of the provider become available to the generator. - -## Real Life Usage - -The following script generates a valid XML document: - -```php - - - - - - -boolean(25)): ?> - - -
- streetAddress ?> - city ?> - postcode ?> - state ?> -
- -boolean(33)): ?> - bs ?> - -boolean(33)): ?> - - - -boolean(15)): ?> -
-text(400) ?> -]]> -
- -
- -
-``` - -Running this script produces a document looking like: - -```xml - - - - -
- 182 Harrison Cove - North Lloyd - 45577 - Alabama -
- - orchestrate compelling web-readiness - -
- -
-
- - -
- 90111 Hegmann Inlet - South Geovanymouth - 69961-9311 - Colorado -
- - -
- - -
- 9791 Nona Corner - Harberhaven - 74062-8191 - RhodeIsland -
- - -
- - -
- 11161 Schultz Via - Feilstad - 98019 - NewJersey -
- - - -
- -
-
- - -
- 6106 Nader Village Suite 753 - McLaughlinstad - 43189-8621 - Missouri -
- - expedite viral synergies - - -
- - -
- 7546 Kuvalis Plaza - South Wilfrid - 77069 - Georgia -
- - -
- - - -
- 478 Daisha Landing Apt. 510 - West Lizethhaven - 30566-5362 - WestVirginia -
- - orchestrate dynamic networks - - -
- -
-
- - -
- 1251 Koelpin Mission - North Revastad - 81620 - Maryland -
- - -
- - -
- 6396 Langworth Hills Apt. 446 - New Carlos - 89399-0268 - Wyoming -
- - - -
- - - -
- 2246 Kreiger Station Apt. 291 - Kaydenmouth - 11397-1072 - Wyoming -
- - grow sticky portals - -
- -
-
-
-``` - -## Language specific formatters - -### `Faker\Provider\ar_SA\Person` - -```php -idNumber; // ID number -echo $faker->nationalIdNumber // Citizen ID number -echo $faker->foreignerIdNumber // Foreigner ID number -echo $faker->companyIdNumber // Company ID number -``` - -### `Faker\Provider\ar_SA\Payment` - -```php -bankAccountNumber // "SA0218IBYZVZJSEC8536V4XC" -``` - -### `Faker\Provider\at_AT\Payment` - -```php -vat; // "AT U12345678" - Austrian Value Added Tax number -echo $faker->vat(false); // "ATU12345678" - unspaced Austrian Value Added Tax number -``` - -### `Faker\Provider\bg_BG\Payment` - -```php -vat; // "BG 0123456789" - Bulgarian Value Added Tax number -echo $faker->vat(false); // "BG0123456789" - unspaced Bulgarian Value Added Tax number -``` - -### `Faker\Provider\cs_CZ\Address` - -```php -region; // "Liberecký kraj" -``` - -### `Faker\Provider\cs_CZ\Company` - -```php -ico; // "69663963" -``` - -### `Faker\Provider\cs_CZ\DateTime` - -```php -monthNameGenitive; // "prosince" -echo $faker->formattedDate; // "12. listopadu 2015" -``` - -### `Faker\Provider\cs_CZ\Person` - -```php -birthNumber; // "7304243452" -``` - -### `Faker\Provider\da_DK\Person` - -```php -cpr; // "051280-2387" -``` - -### `Faker\Provider\da_DK\Address` - -```php -kommune; // "Frederiksberg" - -// Generates a random region name -echo $faker->region; // "Region Sjælland" -``` - -### `Faker\Provider\da_DK\Company` - -```php -cvr; // "32458723" - -// Generates a random P number -echo $faker->p; // "5398237590" -``` - -### `Faker\Provider\de_DE\Payment` - -```php -bankAccountNumber; // "DE41849025553661169313" -echo $faker->bank; // "Volksbank Stuttgart" - -``` - -### `Faker\Provider\en_HK\Address` - -```php -town; // "Yuen Long" - -// Generates a fake village name based on the words commonly found in Hong Kong -echo $faker->village; // "O Tau" - -// Generates a fake estate name based on the words commonly found in Hong Kong -echo $faker->estate; // "Ching Lai Court" - -``` - -### `Faker\Provider\en_HK\Phone` - -```php -mobileNumber; // "92150087" - -// Generates a Hong Kong landline number (starting with 2 or 3) -echo $faker->landlineNumber; // "32750132" - -// Generates a Hong Kong fax number (starting with 7) -echo $faker->faxNumber; // "71937729" - -``` - -### `Faker\Provider\en_NG\Address` - -```php -region; // 'Katsina' -``` - -### `Faker\Provider\en_NG\Person` - -```php -name; // 'Oluwunmi Mayowa' -``` - -### `Faker\Provider\en_NZ\Phone` - -```php -cellNumber; // "021 123 4567" - -// Generates a toll free number -echo $faker->tollFreeNumber; // "0800 123 456" - -// Area Code -echo $faker->areaCode; // "03" -``` - -### `Faker\Provider\en_US\Payment` - -```php -bankAccountNumber; // '51915734310' -echo $faker->bankRoutingNumber; // '212240302' -``` - -### `Faker\Provider\en_US\Person` - -```php -ssn; // '123-45-6789' -``` - -### `Faker\Provider\en_ZA\Company` - -```php -companyNumber; // 1999/789634/01 -``` - -### `Faker\Provider\en_ZA\Person` - -```php -idNumber; // 6606192211041 -``` - -### `Faker\Provider\en_ZA\PhoneNumber` - -```php -tollFreeNumber; // 0800 555 5555 - -// Generates a mobile phone number -echo $faker->mobileNumber; // 082 123 5555 -``` - -### `Faker\Provider\es_ES\Person` - -```php -dni; // '77446565E' -``` - -### `Faker\Provider\es_ES\Payment` - -```php -vat; // "A35864370" -``` - -### `Faker\Provider\es_PE\Person` - -```php -dni; // '83367512' -``` - -### `Faker\Provider\fa_IR\Address` - -```php -building; // "ساختمان Ø¢Ùتاب" - -// Returns a random city name -echo $faker->city // "استان زنجان" -``` - -### `Faker\Provider\fa_IR\Company` - -```php -contract; // "رسمی" -``` - -### `Faker\Provider\fi_FI\Payment` - -```php -bankAccountNumber; // "FI8350799879879616" -``` - -### `Faker\Provider\fi_FI\Person` - -```php -personalIdentityNumber() // '170974-007J' - -//Since the numbers are different for male and female persons, optionally you can specify gender. -echo $faker->personalIdentityNumber(\DateTime::createFromFormat('Y-m-d', '2015-12-14'), 'female') // '141215A520B' -``` - -### `Faker\Provider\fr_BE\Payment` - -```php -vat; // "BE 0123456789" - Belgian Value Added Tax number -echo $faker->vat(false); // "BE0123456789" - unspaced Belgian Value Added Tax number -``` - -### `Faker\Provider\fr_FR\Address` - -```php -departmentName; // "Haut-Rhin" - -// Generates a random department number -echo $faker->departmentNumber; // "2B" - -// Generates a random department info (department number => department name) -$faker->department; // array('18' => 'Cher'); - -// Generates a random region -echo $faker->region; // "Saint-Pierre-et-Miquelon" -``` - -### `Faker\Provider\fr_FR\Company` - -```php -siren; // 082 250 104 - -// Generates a random SIRET number -echo $faker->siret; // 347 355 708 00224 -``` - -### `Faker\Provider\fr_FR\Payment` - -```php -vat; // FR 12 123 456 789 -``` - -### `Faker\Provider\fr_FR\Person` - -```php -nir; // 1 88 07 35 127 571 - 19 -``` - -### `Faker\Provider\he_IL\Payment` - -```php -bankAccountNumber // "IL392237392219429527697" -``` - -### `Faker\Provider\hr_HR\Payment` - -```php -bankAccountNumber // "HR3789114847226078672" -``` - -### `Faker\Provider\hu_HU\Payment` - -```php -bankAccountNumber; // "HU09904437680048220079300783" -``` - -### `Faker\Provider\id_ID\Person` - -```php -nik(); // "8522246001570940" -``` - -### `Faker\Provider\it_IT\Company` - -```php -vatId(); // "IT98746784967" -``` - -### `Faker\Provider\it_IT\Person` - -```php -taxId(); // "DIXDPZ44E08F367A" -``` - -### `Faker\Provider\ja_JP\Person` - -```php -kanaName($gender = null|'male'|'female') // "アオタ ミノル" - -// Generates a 'kana' first name -echo $faker->firstKanaName($gender = null|'male'|'female') // "ヒデキ" - -// Generates a 'kana' first name on the male -echo $faker->firstKanaNameMale // "ヒデキ" - -// Generates a 'kana' first name on the female -echo $faker->firstKanaNameFemale // "マアヤ" - -// Generates a 'kana' last name -echo $faker->lastKanaName; // "ナカジマ" -``` - -### `Faker\Provider\ka_GE\Payment` - -```php -bankAccountNumber; // "GE33ZV9773853617253389" -``` - -### `Faker\Provider\kk_KZ\Company` - -```php -businessIdentificationNumber; // "150140000019" -``` - -### `Faker\Provider\kk_KZ\Payment` - -```php -bank; // "Қазкоммерцбанк" - -// Generates a random bank account number -echo $faker->bankAccountNumber; // "KZ1076321LO4H6X41I37" -``` - -### `Faker\Provider\kk_KZ\Person` - -```php -individualIdentificationNumber; // "780322300455" - -// Generates an individual identification number based on his/her birth date -echo $faker->individualIdentificationNumber(new \DateTime('1999-03-01')); // "990301300455" -``` - -### `Faker\Provider\ko_KR\Address` - -```php -metropolitanCity; // "서울특별시" - -// Generates a borough -echo $faker->borough; // "강남구" -``` - -### `Faker\Provider\lt_LT\Payment` - -```php -bankAccountNumber // "LT300848876740317118" -``` - -### `Faker\Provider\lv_LV\Person` - -```php -personalIdentityNumber; // "140190-12301" -``` - -### `Faker\Provider\ne_NP\Address` - -```php -district; - -//Generates a Nepali city name -echo $faker->cityName; -``` - -### `Faker\Provider\nl_BE\Payment` - -```php -vat; // "BE 0123456789" - Belgian Value Added Tax number -echo $faker->vat(false); // "BE0123456789" - unspaced Belgian Value Added Tax number -``` - -### `Faker\Provider\nl_NL\Company` - -```php -vat; // "NL123456789B01" - Dutch Value Added Tax number -echo $faker->btw; // "NL123456789B01" - Dutch Value Added Tax number (alias) -``` - -### `Faker\Provider\no_NO\Payment` - -```php -bankAccountNumber; // "NO3246764709816" -``` - -### `Faker\Provider\pl_PL\Person` - -```php -pesel; // "40061451555" -// Generates a random personal identity card number -echo $faker->personalIdentityNumber; // "AKX383360" -// Generates a random taxpayer identification number (NIP) -echo $faker->taxpayerIdentificationNumber; // '8211575109' -``` - -### `Faker\Provider\pl_PL\Company` - -```php -regon; // "714676680" -// Generates a random local REGON number -echo $faker->regonLocal; // "15346111382836" -``` - -### `Faker\Provider\pl_PL\Payment` - -```php -bank; // "Narodowy Bank Polski" -// Generates a random bank account number -echo $faker->bankAccountNumber; // "PL14968907563953822118075816" -``` - -### `Faker\Provider\pt_PT\Person` - -```php -taxpayerIdentificationNumber; // '165249277' -``` - -### `Faker\Provider\pt_BR\Address` - -```php -region; // 'Nordeste' - -// Generates a random region abbreviation -echo $faker->regionAbbr; // 'NE' -``` - -### `Faker\Provider\pt_BR\PhoneNumber` - -```php -areaCode; // 21 -echo $faker->cellphone; // 9432-5656 -echo $faker->landline; // 2654-3445 -echo $faker->phone; // random landline, 8-digit or 9-digit cellphone number - -// Using the phone functions with a false argument returns unformatted numbers -echo $faker->cellphone(false); // 74336667 - -// cellphone() has a special second argument to add the 9th digit. Ignored if generated a Radio number -echo $faker->cellphone(true, true); // 98983-3945 or 7343-1290 - -// Using the "Number" suffix adds area code to the phone -echo $faker->cellphoneNumber; // (11) 98309-2935 -echo $faker->landlineNumber(false); // 3522835934 -echo $faker->phoneNumber; // formatted, random landline or cellphone (obeying the 9th digit rule) -echo $faker->phoneNumberCleared; // not formatted, random landline or cellphone (obeying the 9th digit rule) -``` - -### `Faker\Provider\pt_BR\Person` - -```php -name; // 'Sr. Luis Adriano Sepúlveda Filho' - -// Valid document generators have a boolean argument to remove formatting -echo $faker->cpf; // '145.343.345-76' -echo $faker->cpf(false); // '45623467866' -echo $faker->rg; // '84.405.736-3' -``` - -### `Faker\Provider\pt_BR\Company` - -```php -cnpj; // '23.663.478/0001-24' -echo $faker->cnpj(false); // '23663478000124' -``` - -### `Faker\Provider\ro_MD\Payment` - -```php -bankAccountNumber; // "MD83BQW1CKMUW34HBESDP3A8" -``` - -### `Faker\Provider\ro_RO\Payment` - -```php -bankAccountNumber; // "RO55WRJE3OE8X3YQI7J26U1E" -``` - -### `Faker\Provider\ro_RO\Person` - -```php -prefixMale; // "ing." -// Generates a random female name prefix/title -echo $faker->prefixFemale; // "d-na." -// Generates a random male first name -echo $faker->firstNameMale; // "Adrian" -// Generates a random female first name -echo $faker->firstNameFemale; // "Miruna" - - -// Generates a random Personal Numerical Code (CNP) -echo $faker->cnp; // "2800523081231" -// Valid option values: -// $gender: null (random), male, female -// $dateOfBirth (1800+): null (random), Y-m-d, Y-m (random day), Y (random month and day) -// i.e. '1981-06-16', '2015-03', '1900' -// $county: 2 letter ISO 3166-2:RO county codes and B1, B2, B3, B4, B5, B6 for Bucharest's 6 sectors -// $isResident true/false flag if the person resides in Romania -echo $faker->cnp($gender = null, $dateOfBirth = null, $county = null, $isResident = true); - -``` - -### `Faker\Provider\ro_RO\PhoneNumber` - -```php -tollFreePhoneNumber; // "0800123456" -// Generates a random premium-rate phone number -echo $faker->premiumRatePhoneNumber; // "0900123456" -``` - -### `Faker\Provider\ru_RU\Payment` - -```php -bank; // "ОТП Банк" - -//Generate a Russian Tax Payment Number for Company -echo $faker->inn; // 7813540735 - -//Generate a Russian Tax Code for Company -echo $faker->kpp; // 781301001 -``` - -### `Faker\Provider\sv_SE\Payment` - -```php -bankAccountNumber; // "SE5018548608468284909192" -``` - -### `Faker\Provider\sv_SE\Person` - -```php -personalIdentityNumber() // '950910-0799' - -//Since the numbers are different for male and female persons, optionally you can specify gender. -echo $faker->personalIdentityNumber('female') // '950910-0781' -``` - - -### `Faker\Provider\zh_CN\Payment` - -```php -bank; // '中国建设银行' -``` - -### `Faker\Provider\uk_UA\Payment` - -```php -bank; // "Ощадбанк" -``` - -### `Faker\Provider\zh_TW\Person` - -```php -personalIdentityNumber; // A223456789 -``` - -### `Faker\Provider\zh_TW\Company` - -```php -VAT; //23456789 -``` - - -## Third-Party Libraries Extending/Based On Faker - -* Symfony2 bundles: - * [BazingaFakerBundle](https://github.com/willdurand/BazingaFakerBundle): Put the awesome Faker library into the Symfony2 DIC and populate your database with fake data. - * [AliceBundle](https://github.com/hautelook/AliceBundle), [AliceFixturesBundle](https://github.com/h4cc/AliceFixturesBundle): Bundles for using [Alice](https://packagist.org/packages/nelmio/alice) and Faker with data fixtures. Able to use Doctrine ORM as well as Doctrine MongoDB ODM. -* [FakerServiceProvider](https://github.com/EmanueleMinotto/FakerServiceProvider): Faker Service Provider for Silex -* [faker-cli](https://github.com/bit3/faker-cli): Command Line Tool for the Faker PHP library -* [Factory Muffin](https://github.com/thephpleague/factory-muffin): enable the rapid creation of objects (PHP port of factory-girl) -* [CompanyNameGenerator](https://github.com/fzaninotto/CompanyNameGenerator): Generate names for English tech companies with class -* [PlaceholdItProvider](https://github.com/EmanueleMinotto/PlaceholdItProvider): Generate images using placehold.it -* [datalea](https://github.com/spyrit/datalea) A highly customizable random test data generator web app -* [newage-ipsum](https://github.com/frequenc1/newage-ipsum): A new aged ipsum provider for the faker library inspired by http://sebpearce.com/bullshit/ -* [xml-faker](https://github.com/prewk/xml-faker): Create fake XML with Faker -* [faker-context](https://github.com/denheck/faker-context): Behat context using Faker to generate testdata -* [CronExpressionGenerator](https://github.com/swekaj/CronExpressionGenerator): Faker provider for generating random, valid cron expressions. -* [pragmafabrik/Pomm2Faker](https://github.com/pragmafabrik/Pomm2Faker): Faker client for Pomm database framework (PostgreSQL) -* [nelmio/alice](https://packagist.org/packages/nelmio/alice): Fixtures/object generator with a yaml DSL that can use Faker as data generator. -* [CakePHP 2.x Fake Seeder Plugin](https://github.com/ravage84/cakephp-fake-seeder) A CakePHP 2.x shell to seed your database with fake and/or fixed data. -* [images-generator](https://github.com/bruceheller/images-generator): An image generator provider using GD for placeholder type pictures -* [pattern-lab/plugin-php-faker](https://github.com/pattern-lab/plugin-php-faker): Pattern Lab is a Styleguide, Component Library, and Prototyping tool. This creates unique content each time Pattern Lab is generated. -* [guidocella/eloquent-populator](https://github.com/guidocella/eloquent-populator): Adapter for Laravel's Eloquent ORM. -* [tamperdata/exiges](https://github.com/tamperdata/exiges): Faker provider for generating random temperatures - -## License - -Faker is released under the MIT Licence. See the bundled LICENSE file for details. diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php b/vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php deleted file mode 100644 index 8a582312..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php +++ /dev/null @@ -1,73 +0,0 @@ - 2, 2 => 4, 3 => 10, 4 => 3, 5 => 5, 6 => 9, 7 => 4, 8 => 6, 9 => 8); - $sum = 0; - for ($i = 1; $i <= 9; $i++) { - $sum += intval(substr($inn, $i-1, 1)) * $multipliers[$i]; - } - return strval(($sum % 11) % 10); - } - - /** - * Checks whether an INN has a valid checksum - * - * @param string $inn - * @return boolean - */ - public static function isValid($inn) - { - return self::checksum(substr($inn, 0, -1)) === substr($inn, -1, 1); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php b/vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php deleted file mode 100644 index c37c6c19..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php +++ /dev/null @@ -1,75 +0,0 @@ -= 0; $i -= 2) { - $sum += $number{$i}; - } - for ($i = $length - 2; $i >= 0; $i -= 2) { - $sum += array_sum(str_split($number{$i} * 2)); - } - - return $sum % 10; - } - - /** - * @param $partialNumber - * @return string - */ - public static function computeCheckDigit($partialNumber) - { - $checkDigit = self::checksum($partialNumber . '0'); - if ($checkDigit === 0) { - return 0; - } - - return (string) (10 - $checkDigit); - } - - /** - * Checks whether a number (partial number + check digit) is Luhn compliant - * - * @param string $number - * @return bool - */ - public static function isValid($number) - { - return self::checksum($number) === 0; - } - - /** - * Generate a Luhn compliant number. - * - * @param string $partialValue - * - * @return string - */ - public static function generateLuhnNumber($partialValue) - { - if (!preg_match('/^\d+$/', $partialValue)) { - throw new InvalidArgumentException('Argument should be an integer.'); - } - return $partialValue . Luhn::computeCheckDigit($partialValue); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php b/vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php deleted file mode 100644 index eafd2eca..00000000 --- a/vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php +++ /dev/null @@ -1,38 +0,0 @@ -optional(). - */ -class DefaultGenerator -{ - protected $default; - - public function __construct($default = null) - { - $this->default = $default; - } - - /** - * @param string $attribute - * - * @return mixed - */ - public function __get($attribute) - { - return $this->default; - } - - /** - * @param string $method - * @param array $attributes - * - * @return mixed - */ - public function __call($method, $attributes) - { - return $this->default; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Documentor.php b/vendor/fzaninotto/faker/src/Faker/Documentor.php deleted file mode 100644 index e42bdf40..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Documentor.php +++ /dev/null @@ -1,66 +0,0 @@ -generator = $generator; - } - - /** - * @return array - */ - public function getFormatters() - { - $formatters = array(); - $providers = array_reverse($this->generator->getProviders()); - $providers[]= new Provider\Base($this->generator); - foreach ($providers as $provider) { - $providerClass = get_class($provider); - $formatters[$providerClass] = array(); - $refl = new \ReflectionObject($provider); - foreach ($refl->getMethods(\ReflectionMethod::IS_PUBLIC) as $reflmethod) { - if ($reflmethod->getDeclaringClass()->getName() == 'Faker\Provider\Base' && $providerClass != 'Faker\Provider\Base') { - continue; - } - $methodName = $reflmethod->name; - if ($reflmethod->isConstructor()) { - continue; - } - $parameters = array(); - foreach ($reflmethod->getParameters() as $reflparameter) { - $parameter = '$'. $reflparameter->getName(); - if ($reflparameter->isDefaultValueAvailable()) { - $parameter .= ' = ' . var_export($reflparameter->getDefaultValue(), true); - } - $parameters []= $parameter; - } - $parameters = $parameters ? '('. join(', ', $parameters) . ')' : ''; - try { - $example = $this->generator->format($methodName); - } catch (\InvalidArgumentException $e) { - $example = ''; - } - if (is_array($example)) { - $example = "array('". join("', '", $example) . "')"; - } elseif ($example instanceof \DateTime) { - $example = "DateTime('" . $example->format('Y-m-d H:i:s') . "')"; - } elseif ($example instanceof Generator || $example instanceof UniqueGenerator) { // modifier - $example = ''; - } else { - $example = var_export($example, true); - } - $formatters[$providerClass][$methodName . $parameters] = $example; - } - } - - return $formatters; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Factory.php b/vendor/fzaninotto/faker/src/Faker/Factory.php deleted file mode 100644 index 1d687817..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Factory.php +++ /dev/null @@ -1,61 +0,0 @@ -addProvider(new $providerClassName($generator)); - } - - return $generator; - } - - /** - * @param string $provider - * @param string $locale - * @return string - */ - protected static function getProviderClassname($provider, $locale = '') - { - if ($providerClass = self::findProviderClassname($provider, $locale)) { - return $providerClass; - } - // fallback to default locale - if ($providerClass = self::findProviderClassname($provider, static::DEFAULT_LOCALE)) { - return $providerClass; - } - // fallback to no locale - if ($providerClass = self::findProviderClassname($provider)) { - return $providerClass; - } - throw new \InvalidArgumentException(sprintf('Unable to find provider "%s" with locale "%s"', $provider, $locale)); - } - - /** - * @param string $provider - * @param string $locale - * @return string - */ - protected static function findProviderClassname($provider, $locale = '') - { - $providerClass = 'Faker\\' . ($locale ? sprintf('Provider\%s\%s', $locale, $provider) : sprintf('Provider\%s', $provider)); - if (class_exists($providerClass, true)) { - return $providerClass; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Generator.php b/vendor/fzaninotto/faker/src/Faker/Generator.php deleted file mode 100644 index 01158704..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Generator.php +++ /dev/null @@ -1,281 +0,0 @@ -providers, $provider); - } - - public function getProviders() - { - return $this->providers; - } - - public function seed($seed = null) - { - if ($seed === null) { - mt_srand(); - } else { - if (PHP_VERSION_ID < 70100) { - mt_srand((int) $seed); - } else { - mt_srand((int) $seed, MT_RAND_PHP); - } - } - } - - public function format($formatter, $arguments = array()) - { - return call_user_func_array($this->getFormatter($formatter), $arguments); - } - - /** - * @param string $formatter - * - * @return Callable - */ - public function getFormatter($formatter) - { - if (isset($this->formatters[$formatter])) { - return $this->formatters[$formatter]; - } - foreach ($this->providers as $provider) { - if (method_exists($provider, $formatter)) { - $this->formatters[$formatter] = array($provider, $formatter); - - return $this->formatters[$formatter]; - } - } - throw new \InvalidArgumentException(sprintf('Unknown formatter "%s"', $formatter)); - } - - /** - * Replaces tokens ('{{ tokenName }}') with the result from the token method call - * - * @param string $string String that needs to bet parsed - * @return string - */ - public function parse($string) - { - return preg_replace_callback('/\{\{\s?(\w+)\s?\}\}/u', array($this, 'callFormatWithMatches'), $string); - } - - protected function callFormatWithMatches($matches) - { - return $this->format($matches[1]); - } - - /** - * @param string $attribute - * - * @return mixed - */ - public function __get($attribute) - { - return $this->format($attribute); - } - - /** - * @param string $method - * @param array $attributes - * - * @return mixed - */ - public function __call($method, $attributes) - { - return $this->format($method, $attributes); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php b/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php deleted file mode 100644 index 0b303db1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php +++ /dev/null @@ -1,156 +0,0 @@ -generator = $generator; - } - - /** - * @param string $name - * @param int|null $size Length of field, if known - * @return callable - */ - public function guessFormat($name, $size = null) - { - $name = Base::toLower($name); - $generator = $this->generator; - if (preg_match('/^is[_A-Z]/', $name)) { - return function () use ($generator) { - return $generator->boolean; - }; - } - if (preg_match('/(_a|A)t$/', $name)) { - return function () use ($generator) { - return $generator->dateTime; - }; - } - switch (str_replace('_', '', $name)) { - case 'firstname': - return function () use ($generator) { - return $generator->firstName; - }; - case 'lastname': - return function () use ($generator) { - return $generator->lastName; - }; - case 'username': - case 'login': - return function () use ($generator) { - return $generator->userName; - }; - case 'email': - case 'emailaddress': - return function () use ($generator) { - return $generator->email; - }; - case 'phonenumber': - case 'phone': - case 'telephone': - case 'telnumber': - return function () use ($generator) { - return $generator->phoneNumber; - }; - case 'address': - return function () use ($generator) { - return $generator->address; - }; - case 'city': - case 'town': - return function () use ($generator) { - return $generator->city; - }; - case 'streetaddress': - return function () use ($generator) { - return $generator->streetAddress; - }; - case 'postcode': - case 'zipcode': - return function () use ($generator) { - return $generator->postcode; - }; - case 'state': - return function () use ($generator) { - return $generator->state; - }; - case 'county': - if ($this->generator->locale == 'en_US') { - return function () use ($generator) { - return sprintf('%s County', $generator->city); - }; - } - - return function () use ($generator) { - return $generator->state; - }; - case 'country': - switch ($size) { - case 2: - return function () use ($generator) { - return $generator->countryCode; - }; - case 3: - return function () use ($generator) { - return $generator->countryISOAlpha3; - }; - case 5: - case 6: - return function () use ($generator) { - return $generator->locale; - }; - default: - return function () use ($generator) { - return $generator->country; - }; - } - break; - case 'locale': - return function () use ($generator) { - return $generator->locale; - }; - case 'currency': - case 'currencycode': - return function () use ($generator) { - return $generator->currencyCode; - }; - case 'url': - case 'website': - return function () use ($generator) { - return $generator->url; - }; - case 'company': - case 'companyname': - case 'employer': - return function () use ($generator) { - return $generator->company; - }; - case 'title': - if ($size !== null && $size <= 10) { - return function () use ($generator) { - return $generator->title; - }; - } - - return function () use ($generator) { - return $generator->sentence; - }; - case 'body': - case 'summary': - case 'article': - case 'description': - return function () use ($generator) { - return $generator->text; - }; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php deleted file mode 100644 index 0b871ed7..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php +++ /dev/null @@ -1,67 +0,0 @@ -generator = $generator; - } - - /** - * @return \Closure|null - */ - public function guessFormat($column, $table) - { - $generator = $this->generator; - $schema = $table->schema(); - - switch ($schema->columnType($column)) { - case 'boolean': - return function () use ($generator) { - return $generator->boolean; - }; - case 'integer': - return function () { - return mt_rand(0, intval('2147483647')); - }; - case 'biginteger': - return function () { - return mt_rand(0, intval('9223372036854775807')); - }; - case 'decimal': - case 'float': - return function () use ($generator) { - return $generator->randomFloat(); - }; - case 'uuid': - return function () use ($generator) { - return $generator->uuid(); - }; - case 'string': - $columnData = $schema->column($column); - $length = $columnData['length']; - return function () use ($generator, $length) { - return $generator->text($length); - }; - case 'text': - return function () use ($generator) { - return $generator->text(); - }; - case 'date': - case 'datetime': - case 'timestamp': - case 'time': - return function () use ($generator) { - return $generator->datetime(); - }; - - case 'binary': - default: - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php deleted file mode 100644 index 2ec312aa..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php +++ /dev/null @@ -1,166 +0,0 @@ -class = $class; - } - - /** - * @param string $name - */ - public function __get($name) - { - return $this->{$name}; - } - - /** - * @param string $name - */ - public function __set($name, $value) - { - $this->{$name} = $value; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - public function mergeModifiersWith($modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @return array - */ - public function guessColumnFormatters($populator) - { - $formatters = []; - $class = $this->class; - $table = $this->getTable($class); - $schema = $table->schema(); - $pk = $schema->primaryKey(); - $guessers = $populator->getGuessers() + ['ColumnTypeGuesser' => new ColumnTypeGuesser($populator->getGenerator())]; - $isForeignKey = function ($column) use ($table) { - foreach ($table->associations()->type('BelongsTo') as $assoc) { - if ($column == $assoc->foreignKey()) { - return true; - } - } - return false; - }; - - - foreach ($schema->columns() as $column) { - if ($column == $pk[0] || $isForeignKey($column)) { - continue; - } - - foreach ($guessers as $guesser) { - if ($formatter = $guesser->guessFormat($column, $table)) { - $formatters[$column] = $formatter; - break; - } - } - } - - return $formatters; - } - - /** - * @return array - */ - public function guessModifiers() - { - $modifiers = []; - $table = $this->getTable($this->class); - - $belongsTo = $table->associations()->type('BelongsTo'); - foreach ($belongsTo as $assoc) { - $modifiers['belongsTo' . $assoc->name()] = function ($data, $insertedEntities) use ($assoc) { - $table = $assoc->target(); - $foreignModel = $table->alias(); - - $foreignKeys = []; - if (!empty($insertedEntities[$foreignModel])) { - $foreignKeys = $insertedEntities[$foreignModel]; - } else { - $foreignKeys = $table->find('all') - ->select(['id']) - ->map(function ($row) { - return $row->id; - }) - ->toArray(); - } - - if (empty($foreignKeys)) { - throw new \Exception(sprintf('%s belongsTo %s, which seems empty at this point.', $this->getTable($this->class)->table(), $assoc->table())); - } - - $foreignKey = $foreignKeys[array_rand($foreignKeys)]; - $data[$assoc->foreignKey()] = $foreignKey; - return $data; - }; - } - - // TODO check if TreeBehavior attached to modify lft/rgt cols - - return $modifiers; - } - - /** - * @param array $options - */ - public function execute($class, $insertedEntities, $options = []) - { - $table = $this->getTable($class); - $entity = $table->newEntity(); - - foreach ($this->columnFormatters as $column => $format) { - if (!is_null($format)) { - $entity->{$column} = is_callable($format) ? $format($insertedEntities, $table) : $format; - } - } - - foreach ($this->modifiers as $modifier) { - $entity = $modifier($entity, $insertedEntities); - } - - if (!$entity = $table->save($entity, $options)) { - throw new \RuntimeException("Failed saving $class record"); - } - - $pk = $table->primaryKey(); - if (is_string($pk)) { - return $entity->{$pk}; - } - - return $entity->{$pk[0]}; - } - - public function setConnection($name) - { - $this->connectionName = $name; - } - - protected function getTable($class) - { - $options = []; - if (!empty($this->connectionName)) { - $options['connection'] = $this->connectionName; - } - return TableRegistry::get($class, $options); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php deleted file mode 100644 index eda30a8e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php +++ /dev/null @@ -1,109 +0,0 @@ -generator = $generator; - } - - /** - * @return \Faker\Generator - */ - public function getGenerator() - { - return $this->generator; - } - - /** - * @return array - */ - public function getGuessers() - { - return $this->guessers; - } - - /** - * @return $this - */ - public function removeGuesser($name) - { - if ($this->guessers[$name]) { - unset($this->guessers[$name]); - } - return $this; - } - - /** - * @return $this - * @throws \Exception - */ - public function addGuesser($class) - { - if (!is_object($class)) { - $class = new $class($this->generator); - } - - if (!method_exists($class, 'guessFormat')) { - throw new \Exception('Missing required custom guesser method: ' . get_class($class) . '::guessFormat()'); - } - - $this->guessers[get_class($class)] = $class; - return $this; - } - - /** - * @param array $customColumnFormatters - * @param array $customModifiers - * @return $this - */ - public function addEntity($entity, $number, $customColumnFormatters = [], $customModifiers = []) - { - if (!$entity instanceof EntityPopulator) { - $entity = new EntityPopulator($entity); - } - - $entity->columnFormatters = $entity->guessColumnFormatters($this); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - - $entity->modifiers = $entity->guessModifiers($this); - if ($customModifiers) { - $entity->mergeModifiersWith($customModifiers); - } - - $class = $entity->class; - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - return $this; - } - - /** - * @param array $options - * @return array - */ - public function execute($options = []) - { - $insertedEntities = []; - - foreach ($this->quantities as $class => $number) { - for ($i = 0; $i < $number; $i++) { - $insertedEntities[$class][] = $this->entities[$class]->execute($class, $insertedEntities, $options); - } - } - - return $insertedEntities; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php deleted file mode 100644 index 824f8c03..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php +++ /dev/null @@ -1,75 +0,0 @@ -generator = $generator; - } - - /** - * @param ClassMetadata $class - * @return \Closure|null - */ - public function guessFormat($fieldName, ClassMetadata $class) - { - $generator = $this->generator; - $type = $class->getTypeOfField($fieldName); - switch ($type) { - case 'boolean': - return function () use ($generator) { - return $generator->boolean; - }; - case 'decimal': - $size = isset($class->fieldMappings[$fieldName]['precision']) ? $class->fieldMappings[$fieldName]['precision'] : 2; - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case 'smallint': - return function () { - return mt_rand(0, 65535); - }; - case 'integer': - return function () { - return mt_rand(0, intval('2147483647')); - }; - case 'bigint': - return function () { - return mt_rand(0, intval('18446744073709551615')); - }; - case 'float': - return function () { - return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295')); - }; - case 'string': - $size = isset($class->fieldMappings[$fieldName]['length']) ? $class->fieldMappings[$fieldName]['length'] : 255; - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case 'text': - return function () use ($generator) { - return $generator->text; - }; - case 'datetime': - case 'date': - case 'time': - return function () use ($generator) { - return $generator->datetime; - }; - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php deleted file mode 100644 index 31c8125b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php +++ /dev/null @@ -1,251 +0,0 @@ -class = $class; - } - - /** - * @return string - */ - public function getClass() - { - return $this->class->getName(); - } - - /** - * @param $columnFormatters - */ - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param array $modifiers - */ - public function setModifiers(array $modifiers) - { - $this->modifiers = $modifiers; - } - - /** - * @return array - */ - public function getModifiers() - { - return $this->modifiers; - } - - /** - * @param array $modifiers - */ - public function mergeModifiersWith(array $modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessColumnFormatters(\Faker\Generator $generator) - { - $formatters = array(); - $nameGuesser = new \Faker\Guesser\Name($generator); - $columnTypeGuesser = new ColumnTypeGuesser($generator); - foreach ($this->class->getFieldNames() as $fieldName) { - if ($this->class->isIdentifier($fieldName) || !$this->class->hasField($fieldName)) { - continue; - } - - $size = isset($this->class->fieldMappings[$fieldName]['length']) ? $this->class->fieldMappings[$fieldName]['length'] : null; - if ($formatter = $nameGuesser->guessFormat($fieldName, $size)) { - $formatters[$fieldName] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) { - $formatters[$fieldName] = $formatter; - continue; - } - } - - foreach ($this->class->getAssociationNames() as $assocName) { - if ($this->class->isCollectionValuedAssociation($assocName)) { - continue; - } - - $relatedClass = $this->class->getAssociationTargetClass($assocName); - - $unique = $optional = false; - if ($this->class instanceof \Doctrine\ORM\Mapping\ClassMetadata) { - $mappings = $this->class->getAssociationMappings(); - foreach ($mappings as $mapping) { - if ($mapping['targetEntity'] == $relatedClass) { - if ($mapping['type'] == \Doctrine\ORM\Mapping\ClassMetadata::ONE_TO_ONE) { - $unique = true; - $optional = isset($mapping['joinColumns'][0]['nullable']) ? $mapping['joinColumns'][0]['nullable'] : false; - break; - } - } - } - } elseif ($this->class instanceof \Doctrine\ODM\MongoDB\Mapping\ClassMetadata) { - $mappings = $this->class->associationMappings; - foreach ($mappings as $mapping) { - if ($mapping['targetDocument'] == $relatedClass) { - if ($mapping['type'] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::ONE && $mapping['association'] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::REFERENCE_ONE) { - $unique = true; - $optional = isset($mapping['nullable']) ? $mapping['nullable'] : false; - break; - } - } - } - } - - $index = 0; - $formatters[$assocName] = function ($inserted) use ($relatedClass, &$index, $unique, $optional) { - - if (isset($inserted[$relatedClass])) { - if ($unique) { - $related = null; - if (isset($inserted[$relatedClass][$index]) || !$optional) { - $related = $inserted[$relatedClass][$index]; - } - - $index++; - - return $related; - } - - return $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)]; - } - - return null; - }; - } - - return $formatters; - } - - /** - * Insert one new record using the Entity class. - * @param ObjectManager $manager - * @param bool $generateId - * @return EntityPopulator - */ - public function execute(ObjectManager $manager, $insertedEntities, $generateId = false) - { - $obj = $this->class->newInstance(); - - $this->fillColumns($obj, $insertedEntities); - $this->callMethods($obj, $insertedEntities); - - if ($generateId) { - $idsName = $this->class->getIdentifier(); - foreach ($idsName as $idName) { - $id = $this->generateId($obj, $idName, $manager); - $this->class->reflFields[$idName]->setValue($obj, $id); - } - } - - $manager->persist($obj); - - return $obj; - } - - private function fillColumns($obj, $insertedEntities) - { - foreach ($this->columnFormatters as $field => $format) { - if (null !== $format) { - // Add some extended debugging information to any errors thrown by the formatter - try { - $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; - } catch (\InvalidArgumentException $ex) { - throw new \InvalidArgumentException(sprintf( - "Failed to generate a value for %s::%s: %s", - get_class($obj), - $field, - $ex->getMessage() - )); - } - // Try a standard setter if it's available, otherwise fall back on reflection - $setter = sprintf("set%s", ucfirst($field)); - if (method_exists($obj, $setter)) { - $obj->$setter($value); - } else { - $this->class->reflFields[$field]->setValue($obj, $value); - } - } - } - } - - private function callMethods($obj, $insertedEntities) - { - foreach ($this->getModifiers() as $modifier) { - $modifier($obj, $insertedEntities); - } - } - - /** - * @param ObjectManager $manager - * @return int|null - */ - private function generateId($obj, $column, ObjectManager $manager) - { - /* @var $repository \Doctrine\Common\Persistence\ObjectRepository */ - $repository = $manager->getRepository(get_class($obj)); - $result = $repository->createQueryBuilder('e') - ->select(sprintf('e.%s', $column)) - ->getQuery() - ->execute(); - $ids = array_map('current', $result->toArray()); - - $id = null; - do { - $id = mt_rand(); - } while (in_array($id, $ids)); - - return $id; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php deleted file mode 100644 index d4fe897c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php +++ /dev/null @@ -1,82 +0,0 @@ -generator = $generator; - $this->manager = $manager; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param mixed $entity A Doctrine classname, or a \Faker\ORM\Doctrine\EntityPopulator instance - * @param int $number The number of entities to populate - */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array(), $generateId = false) - { - if (!$entity instanceof \Faker\ORM\Doctrine\EntityPopulator) { - if (null === $this->manager) { - throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator."); - } - $entity = new \Faker\ORM\Doctrine\EntityPopulator($this->manager->getClassMetadata($entity)); - } - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $entity->mergeModifiersWith($customModifiers); - $this->generateId[$entity->getClass()] = $generateId; - - $class = $entity->getClass(); - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @param null|EntityManager $entityManager A Doctrine connection object - * - * @return array A list of the inserted PKs - */ - public function execute($entityManager = null) - { - if (null === $entityManager) { - $entityManager = $this->manager; - } - if (null === $entityManager) { - throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator."); - } - - $insertedEntities = array(); - foreach ($this->quantities as $class => $number) { - $generateId = $this->generateId[$class]; - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($entityManager, $insertedEntities, $generateId); - } - $entityManager->flush(); - } - - return $insertedEntities; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php deleted file mode 100644 index d318b0aa..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php +++ /dev/null @@ -1,49 +0,0 @@ -generator = $generator; - } - - /** - * @return \Closure|null - */ - public function guessFormat($field) - { - $generator = $this->generator; - switch ($field['type']) { - case 'boolean': - return function () use ($generator) { - return $generator->boolean; - }; - case 'integer': - return function () { - return mt_rand(0, intval('4294967295')); - }; - case 'float': - return function () { - return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295')); - }; - case 'string': - return function () use ($generator) { - return $generator->text(255); - }; - case 'date': - return function () use ($generator) { - return $generator->datetime; - }; - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php deleted file mode 100644 index 667f5bec..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php +++ /dev/null @@ -1,122 +0,0 @@ -class = $class; - } - - /** - * @return string - */ - public function getClass() - { - return $this->class; - } - - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param \Faker\Generator $generator - * @param Mandango $mandango - * @return array - */ - public function guessColumnFormatters(\Faker\Generator $generator, Mandango $mandango) - { - $formatters = array(); - $nameGuesser = new \Faker\Guesser\Name($generator); - $columnTypeGuesser = new \Faker\ORM\Mandango\ColumnTypeGuesser($generator); - - $metadata = $mandango->getMetadata($this->class); - - // fields - foreach ($metadata['fields'] as $fieldName => $field) { - if ($formatter = $nameGuesser->guessFormat($fieldName)) { - $formatters[$fieldName] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($field)) { - $formatters[$fieldName] = $formatter; - continue; - } - } - - // references - foreach (array_merge($metadata['referencesOne'], $metadata['referencesMany']) as $referenceName => $reference) { - if (!isset($reference['class'])) { - continue; - } - $referenceClass = $reference['class']; - - $formatters[$referenceName] = function ($insertedEntities) use ($referenceClass) { - if (isset($insertedEntities[$referenceClass])) { - return Base::randomElement($insertedEntities[$referenceClass]); - } - }; - } - - return $formatters; - } - - /** - * Insert one new record using the Entity class. - * @param Mandango $mandango - */ - public function execute(Mandango $mandango, $insertedEntities) - { - $metadata = $mandango->getMetadata($this->class); - - $obj = $mandango->create($this->class); - foreach ($this->columnFormatters as $column => $format) { - if (null !== $format) { - $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; - - if (isset($metadata['fields'][$column]) || - isset($metadata['referencesOne'][$column])) { - $obj->set($column, $value); - } - - if (isset($metadata['referencesMany'][$column])) { - $adder = 'add'.ucfirst($column); - $obj->$adder($value); - } - } - } - $mandango->persist($obj); - - return $obj; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php deleted file mode 100644 index 26736dc4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php +++ /dev/null @@ -1,65 +0,0 @@ -generator = $generator; - $this->mandango = $mandango; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance - * @param int $number The number of entities to populate - */ - public function addEntity($entity, $number, $customColumnFormatters = array()) - { - if (!$entity instanceof \Faker\ORM\Mandango\EntityPopulator) { - $entity = new \Faker\ORM\Mandango\EntityPopulator($entity); - } - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator, $this->mandango)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $class = $entity->getClass(); - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @return array A list of the inserted entities. - */ - public function execute() - { - $insertedEntities = array(); - foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($this->mandango, $insertedEntities); - } - } - $this->mandango->flush(); - - return $insertedEntities; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php deleted file mode 100644 index ac9cdb42..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php +++ /dev/null @@ -1,107 +0,0 @@ -generator = $generator; - } - - /** - * @param ColumnMap $column - * @return \Closure|null - */ - public function guessFormat(ColumnMap $column) - { - $generator = $this->generator; - if ($column->isTemporal()) { - if ($column->isEpochTemporal()) { - return function () use ($generator) { - return $generator->dateTime; - }; - } else { - return function () use ($generator) { - return $generator->dateTimeAD; - }; - } - } - $type = $column->getType(); - switch ($type) { - case PropelColumnTypes::BOOLEAN: - case PropelColumnTypes::BOOLEAN_EMU: - return function () use ($generator) { - return $generator->boolean; - }; - case PropelColumnTypes::NUMERIC: - case PropelColumnTypes::DECIMAL: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case PropelColumnTypes::TINYINT: - return function () { - return mt_rand(0, 127); - }; - case PropelColumnTypes::SMALLINT: - return function () { - return mt_rand(0, 32767); - }; - case PropelColumnTypes::INTEGER: - return function () { - return mt_rand(0, intval('2147483647')); - }; - case PropelColumnTypes::BIGINT: - return function () { - return mt_rand(0, intval('9223372036854775807')); - }; - case PropelColumnTypes::FLOAT: - return function () { - return mt_rand(0, intval('2147483647'))/mt_rand(1, intval('2147483647')); - }; - case PropelColumnTypes::DOUBLE: - case PropelColumnTypes::REAL: - return function () { - return mt_rand(0, intval('9223372036854775807'))/mt_rand(1, intval('9223372036854775807')); - }; - case PropelColumnTypes::CHAR: - case PropelColumnTypes::VARCHAR: - case PropelColumnTypes::BINARY: - case PropelColumnTypes::VARBINARY: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case PropelColumnTypes::LONGVARCHAR: - case PropelColumnTypes::LONGVARBINARY: - case PropelColumnTypes::CLOB: - case PropelColumnTypes::CLOB_EMU: - case PropelColumnTypes::BLOB: - return function () use ($generator) { - return $generator->text; - }; - case PropelColumnTypes::ENUM: - $valueSet = $column->getValueSet(); - - return function () use ($generator, $valueSet) { - return $generator->randomElement($valueSet); - }; - case PropelColumnTypes::OBJECT: - case PropelColumnTypes::PHP_ARRAY: - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php deleted file mode 100644 index 1976a403..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php +++ /dev/null @@ -1,191 +0,0 @@ -class = $class; - } - - /** - * @return string - */ - public function getClass() - { - return $this->class; - } - - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessColumnFormatters(\Faker\Generator $generator) - { - $formatters = array(); - $class = $this->class; - $peerClass = $class::PEER; - $tableMap = $peerClass::getTableMap(); - $nameGuesser = new \Faker\Guesser\Name($generator); - $columnTypeGuesser = new \Faker\ORM\Propel\ColumnTypeGuesser($generator); - foreach ($tableMap->getColumns() as $columnMap) { - // skip behavior columns, handled by modifiers - if ($this->isColumnBehavior($columnMap)) { - continue; - } - if ($columnMap->isForeignKey()) { - $relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname(); - $formatters[$columnMap->getPhpName()] = function ($inserted) use ($relatedClass) { - return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; - }; - continue; - } - if ($columnMap->isPrimaryKey()) { - continue; - } - if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName(), $columnMap->getSize())) { - $formatters[$columnMap->getPhpName()] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) { - $formatters[$columnMap->getPhpName()] = $formatter; - continue; - } - } - - return $formatters; - } - - /** - * @param ColumnMap $columnMap - * @return bool - */ - protected function isColumnBehavior(ColumnMap $columnMap) - { - foreach ($columnMap->getTable()->getBehaviors() as $name => $params) { - $columnName = Base::toLower($columnMap->getName()); - switch ($name) { - case 'nested_set': - $columnNames = array($params['left_column'], $params['right_column'], $params['level_column']); - if (in_array($columnName, $columnNames)) { - return true; - } - break; - case 'timestampable': - $columnNames = array($params['create_column'], $params['update_column']); - if (in_array($columnName, $columnNames)) { - return true; - } - break; - } - } - - return false; - } - - public function setModifiers($modifiers) - { - $this->modifiers = $modifiers; - } - - /** - * @return array - */ - public function getModifiers() - { - return $this->modifiers; - } - - public function mergeModifiersWith($modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessModifiers(\Faker\Generator $generator) - { - $modifiers = array(); - $class = $this->class; - $peerClass = $class::PEER; - $tableMap = $peerClass::getTableMap(); - foreach ($tableMap->getBehaviors() as $name => $params) { - switch ($name) { - case 'nested_set': - $modifiers['nested_set'] = function ($obj, $inserted) use ($class, $generator) { - if (isset($inserted[$class])) { - $queryClass = $class . 'Query'; - $parent = $queryClass::create()->findPk($generator->randomElement($inserted[$class])); - $obj->insertAsLastChildOf($parent); - } else { - $obj->makeRoot(); - } - }; - break; - case 'sortable': - $modifiers['sortable'] = function ($obj, $inserted) use ($class) { - $maxRank = isset($inserted[$class]) ? count($inserted[$class]) : 0; - $obj->insertAtRank(mt_rand(1, $maxRank + 1)); - }; - break; - } - } - - return $modifiers; - } - - /** - * Insert one new record using the Entity class. - */ - public function execute($con, $insertedEntities) - { - $obj = new $this->class(); - foreach ($this->getColumnFormatters() as $column => $format) { - if (null !== $format) { - $obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format); - } - } - foreach ($this->getModifiers() as $modifier) { - $modifier($obj, $insertedEntities); - } - $obj->save($con); - - return $obj->getPrimaryKey(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php deleted file mode 100644 index 42857278..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php +++ /dev/null @@ -1,89 +0,0 @@ -generator = $generator; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance - * @param int $number The number of entities to populate - */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array()) - { - if (!$entity instanceof \Faker\ORM\Propel\EntityPopulator) { - $entity = new \Faker\ORM\Propel\EntityPopulator($entity); - } - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $entity->setModifiers($entity->guessModifiers($this->generator)); - if ($customModifiers) { - $entity->mergeModifiersWith($customModifiers); - } - $class = $entity->getClass(); - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @param PropelPDO $con A Propel connection object - * - * @return array A list of the inserted PKs - */ - public function execute($con = null) - { - if (null === $con) { - $con = $this->getConnection(); - } - $isInstancePoolingEnabled = \Propel::isInstancePoolingEnabled(); - \Propel::disableInstancePooling(); - $insertedEntities = array(); - $con->beginTransaction(); - foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities); - } - } - $con->commit(); - if ($isInstancePoolingEnabled) { - \Propel::enableInstancePooling(); - } - - return $insertedEntities; - } - - protected function getConnection() - { - // use the first connection available - $class = key($this->entities); - - if (!$class) { - throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?'); - } - - $peer = $class::PEER; - - return \Propel::getConnection($peer::DATABASE_NAME, \Propel::CONNECTION_WRITE); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php deleted file mode 100644 index 13e4ee40..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php +++ /dev/null @@ -1,107 +0,0 @@ -generator = $generator; - } - - /** - * @param ColumnMap $column - * @return \Closure|null - */ - public function guessFormat(ColumnMap $column) - { - $generator = $this->generator; - if ($column->isTemporal()) { - if ($column->getType() == PropelTypes::BU_DATE || $column->getType() == PropelTypes::BU_TIMESTAMP) { - return function () use ($generator) { - return $generator->dateTime; - }; - } else { - return function () use ($generator) { - return $generator->dateTimeAD; - }; - } - } - $type = $column->getType(); - switch ($type) { - case PropelTypes::BOOLEAN: - case PropelTypes::BOOLEAN_EMU: - return function () use ($generator) { - return $generator->boolean; - }; - case PropelTypes::NUMERIC: - case PropelTypes::DECIMAL: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case PropelTypes::TINYINT: - return function () { - return mt_rand(0, 127); - }; - case PropelTypes::SMALLINT: - return function () { - return mt_rand(0, 32767); - }; - case PropelTypes::INTEGER: - return function () { - return mt_rand(0, intval('2147483647')); - }; - case PropelTypes::BIGINT: - return function () { - return mt_rand(0, intval('9223372036854775807')); - }; - case PropelTypes::FLOAT: - return function () { - return mt_rand(0, intval('2147483647'))/mt_rand(1, intval('2147483647')); - }; - case PropelTypes::DOUBLE: - case PropelTypes::REAL: - return function () { - return mt_rand(0, intval('9223372036854775807'))/mt_rand(1, intval('9223372036854775807')); - }; - case PropelTypes::CHAR: - case PropelTypes::VARCHAR: - case PropelTypes::BINARY: - case PropelTypes::VARBINARY: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case PropelTypes::LONGVARCHAR: - case PropelTypes::LONGVARBINARY: - case PropelTypes::CLOB: - case PropelTypes::CLOB_EMU: - case PropelTypes::BLOB: - return function () use ($generator) { - return $generator->text; - }; - case PropelTypes::ENUM: - $valueSet = $column->getValueSet(); - - return function () use ($generator, $valueSet) { - return $generator->randomElement($valueSet); - }; - case PropelTypes::OBJECT: - case PropelTypes::PHP_ARRAY: - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php deleted file mode 100644 index df5b6710..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php +++ /dev/null @@ -1,192 +0,0 @@ -class = $class; - } - - /** - * @return string - */ - public function getClass() - { - return $this->class; - } - - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessColumnFormatters(\Faker\Generator $generator) - { - $formatters = array(); - $class = $this->class; - $peerClass = $class::TABLE_MAP; - $tableMap = $peerClass::getTableMap(); - $nameGuesser = new \Faker\Guesser\Name($generator); - $columnTypeGuesser = new \Faker\ORM\Propel2\ColumnTypeGuesser($generator); - foreach ($tableMap->getColumns() as $columnMap) { - // skip behavior columns, handled by modifiers - if ($this->isColumnBehavior($columnMap)) { - continue; - } - if ($columnMap->isForeignKey()) { - $relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname(); - $formatters[$columnMap->getPhpName()] = function ($inserted) use ($relatedClass) { - $relatedClass = trim($relatedClass, "\\"); - return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; - }; - continue; - } - if ($columnMap->isPrimaryKey()) { - continue; - } - if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName(), $columnMap->getSize())) { - $formatters[$columnMap->getPhpName()] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) { - $formatters[$columnMap->getPhpName()] = $formatter; - continue; - } - } - - return $formatters; - } - - /** - * @param ColumnMap $columnMap - * @return bool - */ - protected function isColumnBehavior(ColumnMap $columnMap) - { - foreach ($columnMap->getTable()->getBehaviors() as $name => $params) { - $columnName = Base::toLower($columnMap->getName()); - switch ($name) { - case 'nested_set': - $columnNames = array($params['left_column'], $params['right_column'], $params['level_column']); - if (in_array($columnName, $columnNames)) { - return true; - } - break; - case 'timestampable': - $columnNames = array($params['create_column'], $params['update_column']); - if (in_array($columnName, $columnNames)) { - return true; - } - break; - } - } - - return false; - } - - public function setModifiers($modifiers) - { - $this->modifiers = $modifiers; - } - - /** - * @return array - */ - public function getModifiers() - { - return $this->modifiers; - } - - public function mergeModifiersWith($modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessModifiers(\Faker\Generator $generator) - { - $modifiers = array(); - $class = $this->class; - $peerClass = $class::TABLE_MAP; - $tableMap = $peerClass::getTableMap(); - foreach ($tableMap->getBehaviors() as $name => $params) { - switch ($name) { - case 'nested_set': - $modifiers['nested_set'] = function ($obj, $inserted) use ($class, $generator) { - if (isset($inserted[$class])) { - $queryClass = $class . 'Query'; - $parent = $queryClass::create()->findPk($generator->randomElement($inserted[$class])); - $obj->insertAsLastChildOf($parent); - } else { - $obj->makeRoot(); - } - }; - break; - case 'sortable': - $modifiers['sortable'] = function ($obj, $inserted) use ($class) { - $maxRank = isset($inserted[$class]) ? count($inserted[$class]) : 0; - $obj->insertAtRank(mt_rand(1, $maxRank + 1)); - }; - break; - } - } - - return $modifiers; - } - - /** - * Insert one new record using the Entity class. - */ - public function execute($con, $insertedEntities) - { - $obj = new $this->class(); - foreach ($this->getColumnFormatters() as $column => $format) { - if (null !== $format) { - $obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format); - } - } - foreach ($this->getModifiers() as $modifier) { - $modifier($obj, $insertedEntities); - } - $obj->save($con); - - return $obj->getPrimaryKey(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php deleted file mode 100644 index c0efe3b8..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php +++ /dev/null @@ -1,92 +0,0 @@ -generator = $generator; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel2\EntityPopulator instance - * @param int $number The number of entities to populate - */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array()) - { - if (!$entity instanceof \Faker\ORM\Propel2\EntityPopulator) { - $entity = new \Faker\ORM\Propel2\EntityPopulator($entity); - } - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $entity->setModifiers($entity->guessModifiers($this->generator)); - if ($customModifiers) { - $entity->mergeModifiersWith($customModifiers); - } - $class = $entity->getClass(); - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @param PropelPDO $con A Propel connection object - * - * @return array A list of the inserted PKs - */ - public function execute($con = null) - { - if (null === $con) { - $con = $this->getConnection(); - } - $isInstancePoolingEnabled = Propel::isInstancePoolingEnabled(); - Propel::disableInstancePooling(); - $insertedEntities = array(); - $con->beginTransaction(); - foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities); - } - } - $con->commit(); - if ($isInstancePoolingEnabled) { - Propel::enableInstancePooling(); - } - - return $insertedEntities; - } - - protected function getConnection() - { - // use the first connection available - $class = key($this->entities); - - if (!$class) { - throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?'); - } - - $peer = $class::TABLE_MAP; - - return Propel::getConnection($peer::DATABASE_NAME, ServiceContainerInterface::CONNECTION_WRITE); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php deleted file mode 100644 index 716a9f28..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php +++ /dev/null @@ -1,77 +0,0 @@ -generator = $generator; - } - - /** - * @param array $field - * @return \Closure|null - */ - public function guessFormat(array $field) - { - $generator = $this->generator; - $type = $field['type']; - switch ($type) { - case 'boolean': - return function () use ($generator) { - return $generator->boolean; - }; - case 'decimal': - $size = isset($field['precision']) ? $field['precision'] : 2; - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case 'smallint': - return function () use ($generator) { - return $generator->numberBetween(0, 65535); - }; - case 'integer': - return function () use ($generator) { - return $generator->numberBetween(0, intval('2147483647')); - }; - case 'bigint': - return function () use ($generator) { - return $generator->numberBetween(0, intval('18446744073709551615')); - }; - case 'float': - return function () use ($generator) { - return $generator->randomFloat(null, 0, intval('4294967295')); - }; - case 'string': - $size = isset($field['length']) ? $field['length'] : 255; - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case 'text': - return function () use ($generator) { - return $generator->text; - }; - case 'datetime': - case 'date': - case 'time': - return function () use ($generator) { - return $generator->datetime; - }; - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php deleted file mode 100644 index d59cf56f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php +++ /dev/null @@ -1,222 +0,0 @@ -mapper = $mapper; - $this->locator = $locator; - $this->useExistingData = $useExistingData; - } - - /** - * @return string - */ - public function getMapper() - { - return $this->mapper; - } - - /** - * @param $columnFormatters - */ - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - /** - * @param $columnFormatters - */ - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param array $modifiers - */ - public function setModifiers(array $modifiers) - { - $this->modifiers = $modifiers; - } - - /** - * @return array - */ - public function getModifiers() - { - return $this->modifiers; - } - - /** - * @param array $modifiers - */ - public function mergeModifiersWith(array $modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @param Generator $generator - * @return array - */ - public function guessColumnFormatters(Generator $generator) - { - $formatters = array(); - $nameGuesser = new Name($generator); - $columnTypeGuesser = new ColumnTypeGuesser($generator); - $fields = $this->mapper->fields(); - foreach ($fields as $fieldName => $field) { - if ($field['primary'] === true) { - continue; - } - if ($formatter = $nameGuesser->guessFormat($fieldName)) { - $formatters[$fieldName] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($field)) { - $formatters[$fieldName] = $formatter; - continue; - } - } - $entityName = $this->mapper->entity(); - $entity = $this->mapper->build([]); - $relations = $entityName::relations($this->mapper, $entity); - foreach ($relations as $relation) { - // We don't need any other relation here. - if ($relation instanceof BelongsTo) { - - $fieldName = $relation->localKey(); - $entityName = $relation->entityName(); - $field = $fields[$fieldName]; - $required = $field['required']; - - $locator = $this->locator; - - $formatters[$fieldName] = function ($inserted) use ($required, $entityName, $locator) { - if (!empty($inserted[$entityName])) { - return $inserted[$entityName][mt_rand(0, count($inserted[$entityName]) - 1)]->getId(); - } else { - if ($required && $this->useExistingData) { - // We did not add anything like this, but it's required, - // So let's find something existing in DB. - $mapper = $this->locator->mapper($entityName); - $records = $mapper->all()->limit(self::RELATED_FETCH_COUNT)->toArray(); - if (empty($records)) { - return null; - } - $id = $records[mt_rand(0, count($records) - 1)]['id']; - - return $id; - } else { - return null; - } - } - }; - - } - } - - return $formatters; - } - - /** - * Insert one new record using the Entity class. - * - * @param $insertedEntities - * @return string - */ - public function execute($insertedEntities) - { - $obj = $this->mapper->build([]); - - $this->fillColumns($obj, $insertedEntities); - $this->callMethods($obj, $insertedEntities); - - $this->mapper->insert($obj); - - - return $obj; - } - - /** - * @param $obj - * @param $insertedEntities - */ - private function fillColumns($obj, $insertedEntities) - { - foreach ($this->columnFormatters as $field => $format) { - if (null !== $format) { - $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; - $obj->set($field, $value); - } - } - } - - /** - * @param $obj - * @param $insertedEntities - */ - private function callMethods($obj, $insertedEntities) - { - foreach ($this->getModifiers() as $modifier) { - $modifier($obj, $insertedEntities); - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php deleted file mode 100644 index c834b04c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php +++ /dev/null @@ -1,88 +0,0 @@ -generator = $generator; - $this->locator = $locator; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param $entityName string Name of Entity object to generate - * @param $number int The number of entities to populate - * @param $customColumnFormatters array - * @param $customModifiers array - * @param $useExistingData bool Should we use existing rows (e.g. roles) to populate relations? - */ - public function addEntity( - $entityName, - $number, - $customColumnFormatters = array(), - $customModifiers = array(), - $useExistingData = false - ) { - $mapper = $this->locator->mapper($entityName); - if (null === $mapper) { - throw new \InvalidArgumentException("No mapper can be found for entity " . $entityName); - } - $entity = new EntityPopulator($mapper, $this->locator, $useExistingData); - - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $entity->mergeModifiersWith($customModifiers); - - $this->entities[$entityName] = $entity; - $this->quantities[$entityName] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @param Locator $locator A Spot locator - * - * @return array A list of the inserted PKs - */ - public function execute($locator = null) - { - if (null === $locator) { - $locator = $this->locator; - } - if (null === $locator) { - throw new \InvalidArgumentException("No entity manager passed to Spot Populator."); - } - - $insertedEntities = array(); - foreach ($this->quantities as $entityName => $number) { - for ($i = 0; $i < $number; $i++) { - $insertedEntities[$entityName][] = $this->entities[$entityName]->execute( - $insertedEntities - ); - } - } - - return $insertedEntities; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/Address.php deleted file mode 100644 index 24f538af..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Address.php +++ /dev/null @@ -1,139 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'Crist Parks' - */ - public function streetName() - { - $format = static::randomElement(static::$streetNameFormats); - - return $this->generator->parse($format); - } - - /** - * @example '791 Crist Parks' - */ - public function streetAddress() - { - $format = static::randomElement(static::$streetAddressFormats); - - return $this->generator->parse($format); - } - - /** - * @example 86039-9874 - */ - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - /** - * @example '791 Crist Parks, Sashabury, IL 86039-9874' - */ - public function address() - { - $format = static::randomElement(static::$addressFormats); - - return $this->generator->parse($format); - } - - /** - * @example 'Japan' - */ - public static function country() - { - return static::randomElement(static::$country); - } - - /** - * @example '77.147489' - * @param float|int $min - * @param float|int $max - * @return float Uses signed degrees format (returns a float number between -90 and 90) - */ - public static function latitude($min = -90, $max = 90) - { - return static::randomFloat(6, $min, $max); - } - - /** - * @example '86.211205' - * @param float|int $min - * @param float|int $max - * @return float Uses signed degrees format (returns a float number between -180 and 180) - */ - public static function longitude($min = -180, $max = 180) - { - return static::randomFloat(6, $min, $max); - } - - /** - * @example array('77.147489', '86.211205') - * @return array | latitude, longitude - */ - public static function localCoordinates() - { - return array( - 'latitude' => static::latitude(), - 'longitude' => static::longitude() - ); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php b/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php deleted file mode 100644 index 05759a34..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php +++ /dev/null @@ -1,114 +0,0 @@ - $digit) { - $sums += $digit * $sequence[$n % 2]; - } - return (10 - $sums % 10) % 10; - } - - /** - * ISBN-10 check digit - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digits - * - * @param string $input ISBN without check-digit - * @throws \LengthException When wrong input length passed - * - * @return integer Check digit - */ - protected static function isbnChecksum($input) - { - // We're calculating check digit for ISBN-10 - // so, the length of the input should be 9 - $length = 9; - - if (strlen($input) !== $length) { - throw new \LengthException(sprintf('Input length should be equal to %d', $length)); - } - - $digits = str_split($input); - array_walk( - $digits, - function (&$digit, $position) { - $digit = (10 - $position) * $digit; - } - ); - $result = (11 - array_sum($digits) % 11) % 11; - - // 10 is replaced by X - return ($result < 10)?$result:'X'; - } - - /** - * Get a random EAN13 barcode. - * @return string - * @example '4006381333931' - */ - public function ean13() - { - return $this->ean(13); - } - - /** - * Get a random EAN8 barcode. - * @return string - * @example '73513537' - */ - public function ean8() - { - return $this->ean(8); - } - - /** - * Get a random ISBN-10 code - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number - * - * @return string - * @example '4881416324' - */ - public function isbn10() - { - $code = static::numerify(str_repeat('#', 9)); - - return $code . static::isbnChecksum($code); - } - - /** - * Get a random ISBN-13 code - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number - * - * @return string - * @example '9790404436093' - */ - public function isbn13() - { - $code = '97' . static::numberBetween(8, 9) . static::numerify(str_repeat('#', 9)); - - return $code . static::eanChecksum($code); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Base.php b/vendor/fzaninotto/faker/src/Faker/Provider/Base.php deleted file mode 100644 index d314be71..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Base.php +++ /dev/null @@ -1,590 +0,0 @@ -generator = $generator; - } - - /** - * Returns a random number between 0 and 9 - * - * @return integer - */ - public static function randomDigit() - { - return mt_rand(0, 9); - } - - /** - * Returns a random number between 1 and 9 - * - * @return integer - */ - public static function randomDigitNotNull() - { - return mt_rand(1, 9); - } - - /** - * Generates a random digit, which cannot be $except - * - * @param int $except - * @return int - */ - public static function randomDigitNot($except) - { - $result = self::numberBetween(0, 8); - if ($result >= $except) { - $result++; - } - return $result; - } - - /** - * Returns a random integer with 0 to $nbDigits digits. - * - * The maximum value returned is mt_getrandmax() - * - * @param integer $nbDigits Defaults to a random number between 1 and 9 - * @param boolean $strict Whether the returned number should have exactly $nbDigits - * @example 79907610 - * - * @return integer - */ - public static function randomNumber($nbDigits = null, $strict = false) - { - if (!is_bool($strict)) { - throw new \InvalidArgumentException('randomNumber() generates numbers of fixed width. To generate numbers between two boundaries, use numberBetween() instead.'); - } - if (null === $nbDigits) { - $nbDigits = static::randomDigitNotNull(); - } - $max = pow(10, $nbDigits) - 1; - if ($max > mt_getrandmax()) { - throw new \InvalidArgumentException('randomNumber() can only generate numbers up to mt_getrandmax()'); - } - if ($strict) { - return mt_rand(pow(10, $nbDigits - 1), $max); - } - - return mt_rand(0, $max); - } - - /** - * Return a random float number - * - * @param int $nbMaxDecimals - * @param int|float $min - * @param int|float $max - * @example 48.8932 - * - * @return float - */ - public static function randomFloat($nbMaxDecimals = null, $min = 0, $max = null) - { - if (null === $nbMaxDecimals) { - $nbMaxDecimals = static::randomDigit(); - } - - if (null === $max) { - $max = static::randomNumber(); - if ($min > $max) { - $max = $min; - } - } - - if ($min > $max) { - $tmp = $min; - $min = $max; - $max = $tmp; - } - - return round($min + mt_rand() / mt_getrandmax() * ($max - $min), $nbMaxDecimals); - } - - /** - * Returns a random number between $int1 and $int2 (any order) - * - * @param integer $int1 default to 0 - * @param integer $int2 defaults to 32 bit max integer, ie 2147483647 - * @example 79907610 - * - * @return integer - */ - public static function numberBetween($int1 = 0, $int2 = 2147483647) - { - $min = $int1 < $int2 ? $int1 : $int2; - $max = $int1 < $int2 ? $int2 : $int1; - return mt_rand($min, $max); - } - - /** - * Returns a random letter from a to z - * - * @return string - */ - public static function randomLetter() - { - return chr(mt_rand(97, 122)); - } - - /** - * Returns a random ASCII character (excluding accents and special chars) - */ - public static function randomAscii() - { - return chr(mt_rand(33, 126)); - } - - /** - * Returns randomly ordered subsequence of $count elements from a provided array - * - * @param array $array Array to take elements from. Defaults to a-f - * @param integer $count Number of elements to take. - * @param boolean $allowDuplicates Allow elements to be picked several times. Defaults to false - * @throws \LengthException When requesting more elements than provided - * - * @return array New array with $count elements from $array - */ - public static function randomElements(array $array = array('a', 'b', 'c'), $count = 1, $allowDuplicates = false) - { - $allKeys = array_keys($array); - $numKeys = count($allKeys); - - if (!$allowDuplicates && $numKeys < $count) { - throw new \LengthException(sprintf('Cannot get %d elements, only %d in array', $count, $numKeys)); - } - - $highKey = $numKeys - 1; - $keys = $elements = array(); - $numElements = 0; - - while ($numElements < $count) { - $num = mt_rand(0, $highKey); - - if (!$allowDuplicates) { - if (isset($keys[$num])) { - continue; - } - $keys[$num] = true; - } - - $elements[] = $array[$allKeys[$num]]; - $numElements++; - } - - return $elements; - } - - /** - * Returns a random element from a passed array - * - * @param array $array - * @return mixed - */ - public static function randomElement($array = array('a', 'b', 'c')) - { - if (!$array) { - return null; - } - $elements = static::randomElements($array, 1); - - return $elements[0]; - } - - /** - * Returns a random key from a passed associative array - * - * @param array $array - * @return int|string|null - */ - public static function randomKey($array = array()) - { - if (!$array) { - return null; - } - $keys = array_keys($array); - $key = $keys[mt_rand(0, count($keys) - 1)]; - - return $key; - } - - /** - * Returns a shuffled version of the argument. - * - * This function accepts either an array, or a string. - * - * @example $faker->shuffle([1, 2, 3]); // [2, 1, 3] - * @example $faker->shuffle('hello, world'); // 'rlo,h eold!lw' - * - * @see shuffleArray() - * @see shuffleString() - * - * @param array|string $arg The set to shuffle - * @return array|string The shuffled set - */ - public static function shuffle($arg = '') - { - if (is_array($arg)) { - return static::shuffleArray($arg); - } - if (is_string($arg)) { - return static::shuffleString($arg); - } - throw new \InvalidArgumentException('shuffle() only supports strings or arrays'); - } - - /** - * Returns a shuffled version of the array. - * - * This function does not mutate the original array. It uses the - * Fisher–Yates algorithm, which is unbiased, together with a Mersenne - * twister random generator. This function is therefore more random than - * PHP's shuffle() function, and it is seedable. - * - * @link http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle - * - * @example $faker->shuffleArray([1, 2, 3]); // [2, 1, 3] - * - * @param array $array The set to shuffle - * @return array The shuffled set - */ - public static function shuffleArray($array = array()) - { - $shuffledArray = array(); - $i = 0; - reset($array); - foreach ($array as $key => $value) { - if ($i == 0) { - $j = 0; - } else { - $j = mt_rand(0, $i); - } - if ($j == $i) { - $shuffledArray[]= $value; - } else { - $shuffledArray[]= $shuffledArray[$j]; - $shuffledArray[$j] = $value; - } - $i++; - } - return $shuffledArray; - } - - /** - * Returns a shuffled version of the string. - * - * This function does not mutate the original string. It uses the - * Fisher–Yates algorithm, which is unbiased, together with a Mersenne - * twister random generator. This function is therefore more random than - * PHP's shuffle() function, and it is seedable. Additionally, it is - * UTF8 safe if the mb extension is available. - * - * @link http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle - * - * @example $faker->shuffleString('hello, world'); // 'rlo,h eold!lw' - * - * @param string $string The set to shuffle - * @param string $encoding The string encoding (defaults to UTF-8) - * @return string The shuffled set - */ - public static function shuffleString($string = '', $encoding = 'UTF-8') - { - if (function_exists('mb_strlen')) { - // UTF8-safe str_split() - $array = array(); - $strlen = mb_strlen($string, $encoding); - for ($i = 0; $i < $strlen; $i++) { - $array []= mb_substr($string, $i, 1, $encoding); - } - } else { - $array = str_split($string, 1); - } - return implode('', static::shuffleArray($array)); - } - - private static function replaceWildcard($string, $wildcard = '#', $callback = 'static::randomDigit') - { - if (($pos = strpos($string, $wildcard)) === false) { - return $string; - } - for ($i = $pos, $last = strrpos($string, $wildcard, $pos) + 1; $i < $last; $i++) { - if ($string[$i] === $wildcard) { - $string[$i] = call_user_func($callback); - } - } - return $string; - } - - /** - * Replaces all hash sign ('#') occurrences with a random number - * Replaces all percentage sign ('%') occurrences with a not null number - * - * @param string $string String that needs to bet parsed - * @return string - */ - public static function numerify($string = '###') - { - // instead of using randomDigit() several times, which is slow, - // count the number of hashes and generate once a large number - $toReplace = array(); - if (($pos = strpos($string, '#')) !== false) { - for ($i = $pos, $last = strrpos($string, '#', $pos) + 1; $i < $last; $i++) { - if ($string[$i] === '#') { - $toReplace[] = $i; - } - } - } - if ($nbReplacements = count($toReplace)) { - $maxAtOnce = strlen((string) mt_getrandmax()) - 1; - $numbers = ''; - $i = 0; - while ($i < $nbReplacements) { - $size = min($nbReplacements - $i, $maxAtOnce); - $numbers .= str_pad(static::randomNumber($size), $size, '0', STR_PAD_LEFT); - $i += $size; - } - for ($i = 0; $i < $nbReplacements; $i++) { - $string[$toReplace[$i]] = $numbers[$i]; - } - } - $string = self::replaceWildcard($string, '%', 'static::randomDigitNotNull'); - - return $string; - } - - /** - * Replaces all question mark ('?') occurrences with a random letter - * - * @param string $string String that needs to bet parsed - * @return string - */ - public static function lexify($string = '????') - { - return self::replaceWildcard($string, '?', 'static::randomLetter'); - } - - /** - * Replaces hash signs ('#') and question marks ('?') with random numbers and letters - * An asterisk ('*') is replaced with either a random number or a random letter - * - * @param string $string String that needs to bet parsed - * @return string - */ - public static function bothify($string = '## ??') - { - $string = self::replaceWildcard($string, '*', function () { - return mt_rand(0, 1) ? '#' : '?'; - }); - return static::lexify(static::numerify($string)); - } - - /** - * Replaces * signs with random numbers and letters and special characters - * - * @example $faker->asciify(''********'); // "s5'G!uC3" - * - * @param string $string String that needs to bet parsed - * @return string - */ - public static function asciify($string = '****') - { - return preg_replace_callback('/\*/u', 'static::randomAscii', $string); - } - - /** - * Transforms a basic regular expression into a random string satisfying the expression. - * - * @example $faker->regexify('[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}'); // sm0@y8k96a.ej - * - * Regex delimiters '/.../' and begin/end markers '^...$' are ignored. - * - * Only supports a small subset of the regex syntax. For instance, - * unicode, negated classes, unbounded ranges, subpatterns, back references, - * assertions, recursive patterns, and comments are not supported. Escaping - * support is extremely fragile. - * - * This method is also VERY slow. Use it only when no other formatter - * can generate the fake data you want. For instance, prefer calling - * `$faker->email` rather than `regexify` with the previous regular - * expression. - * - * Also note than `bothify` can probably do most of what this method does, - * but much faster. For instance, for a dummy email generation, try - * `$faker->bothify('?????????@???.???')`. - * - * @see https://github.com/icomefromthenet/ReverseRegex for a more robust implementation - * - * @param string $regex A regular expression (delimiters are optional) - * @return string - */ - public static function regexify($regex = '') - { - // ditch the anchors - $regex = preg_replace('/^\/?\^?/', '', $regex); - $regex = preg_replace('/\$?\/?$/', '', $regex); - // All {2} become {2,2} - $regex = preg_replace('/\{(\d+)\}/', '{\1,\1}', $regex); - // Single-letter quantifiers (?, *, +) become bracket quantifiers ({0,1}, {0,rand}, {1, rand}) - $regex = preg_replace('/(? 0 && $weight < 1 && mt_rand() / mt_getrandmax() <= $weight) { - return $this->generator; - } - - // new system with percentage - if (is_int($weight) && mt_rand(1, 100) <= $weight) { - return $this->generator; - } - - return new DefaultGenerator($default); - } - - /** - * Chainable method for making any formatter unique. - * - * - * // will never return twice the same value - * $faker->unique()->randomElement(array(1, 2, 3)); - * - * - * @param boolean $reset If set to true, resets the list of existing values - * @param integer $maxRetries Maximum number of retries to find a unique value, - * After which an OverflowException is thrown. - * @throws \OverflowException When no unique value can be found by iterating $maxRetries times - * - * @return UniqueGenerator A proxy class returning only non-existing values - */ - public function unique($reset = false, $maxRetries = 10000) - { - if ($reset || !$this->unique) { - $this->unique = new UniqueGenerator($this->generator, $maxRetries); - } - - return $this->unique; - } - - /** - * Chainable method for forcing any formatter to return only valid values. - * - * The value validity is determined by a function passed as first argument. - * - * - * $values = array(); - * $evenValidator = function ($digit) { - * return $digit % 2 === 0; - * }; - * for ($i=0; $i < 10; $i++) { - * $values []= $faker->valid($evenValidator)->randomDigit; - * } - * print_r($values); // [0, 4, 8, 4, 2, 6, 0, 8, 8, 6] - * - * - * @param Closure $validator A function returning true for valid values - * @param integer $maxRetries Maximum number of retries to find a unique value, - * After which an OverflowException is thrown. - * @throws \OverflowException When no valid value can be found by iterating $maxRetries times - * - * @return ValidGenerator A proxy class returning only valid values - */ - public function valid($validator = null, $maxRetries = 10000) - { - return new ValidGenerator($this->generator, $validator, $maxRetries); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php b/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php deleted file mode 100644 index b9e3f082..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php +++ /dev/null @@ -1,64 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'Ltd' - */ - public static function companySuffix() - { - return static::randomElement(static::$companySuffix); - } - - /** - * @example 'Job' - */ - public function jobTitle() - { - $format = static::randomElement(static::$jobTitleFormat); - - return $this->generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php deleted file mode 100644 index 3bbdd1cc..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php +++ /dev/null @@ -1,303 +0,0 @@ -getTimestamp(); - } - - return strtotime(empty($max) ? 'now' : $max); - } - - /** - * Get a timestamp between January 1, 1970 and now - * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return int - * - * @example 1061306726 - */ - public static function unixTime($max = 'now') - { - return mt_rand(0, static::getMaxTimestamp($max)); - } - - /** - * Get a datetime object for a date between January 1, 1970 and now - * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get` - * @example DateTime('2005-08-16 20:39:21') - * @return \DateTime - * @see http://php.net/manual/en/timezones.php - * @see http://php.net/manual/en/function.date-default-timezone-get.php - */ - public static function dateTime($max = 'now', $timezone = null) - { - return static::setTimezone( - new \DateTime('@' . static::unixTime($max)), - (null === $timezone ? date_default_timezone_get() : $timezone) - ); - } - - /** - * Get a datetime object for a date between January 1, 001 and now - * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get` - * @example DateTime('1265-03-22 21:15:52') - * @return \DateTime - * @see http://php.net/manual/en/timezones.php - * @see http://php.net/manual/en/function.date-default-timezone-get.php - */ - public static function dateTimeAD($max = 'now', $timezone = null) - { - $min = (PHP_INT_SIZE>4 ? -62135597361 : -PHP_INT_MAX); - return static::setTimezone( - new \DateTime('@' . mt_rand($min, static::getMaxTimestamp($max))), - (null === $timezone ? date_default_timezone_get() : $timezone) - ); - } - - /** - * get a date string formatted with ISO8601 - * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '2003-10-21T16:05:52+0000' - */ - public static function iso8601($max = 'now') - { - return static::date(\DateTime::ISO8601, $max); - } - - /** - * Get a date string between January 1, 1970 and now - * - * @param string $format - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '2008-11-27' - */ - public static function date($format = 'Y-m-d', $max = 'now') - { - return static::dateTime($max)->format($format); - } - - /** - * Get a time string (24h format by default) - * - * @param string $format - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '15:02:34' - */ - public static function time($format = 'H:i:s', $max = 'now') - { - return static::dateTime($max)->format($format); - } - - /** - * Get a DateTime object based on a random date between two given dates. - * Accepts date strings that can be recognized by strtotime(). - * - * @param \DateTime|string $startDate Defaults to 30 years ago - * @param \DateTime|string $endDate Defaults to "now" - * @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get` - * @example DateTime('1999-02-02 11:42:52') - * @return \DateTime - * @see http://php.net/manual/en/timezones.php - * @see http://php.net/manual/en/function.date-default-timezone-get.php - */ - public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null) - { - $startTimestamp = $startDate instanceof \DateTime ? $startDate->getTimestamp() : strtotime($startDate); - $endTimestamp = static::getMaxTimestamp($endDate); - - if ($startTimestamp > $endTimestamp) { - throw new \InvalidArgumentException('Start date must be anterior to end date.'); - } - - $timestamp = mt_rand($startTimestamp, $endTimestamp); - - return static::setTimezone( - new \DateTime('@' . $timestamp), - (null === $timezone ? date_default_timezone_get() : $timezone) - ); - } - - /** - * Get a DateTime object based on a random date between one given date and - * an interval - * Accepts date string that can be recognized by strtotime(). - * - * @param string $date Defaults to 30 years ago - * @param string $interval Defaults to 5 days after - * @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get` - * @example dateTimeInInterval('1999-02-02 11:42:52', '+ 5 days') - * @return \DateTime - * @see http://php.net/manual/en/timezones.php - * @see http://php.net/manual/en/function.date-default-timezone-get.php - */ - public static function dateTimeInInterval($date = '-30 years', $interval = '+5 days', $timezone = null) - { - $intervalObject = \DateInterval::createFromDateString($interval); - $datetime = $date instanceof \DateTime ? $date : new \DateTime($date); - $otherDatetime = clone $datetime; - $otherDatetime->add($intervalObject); - - $begin = $datetime > $otherDatetime ? $otherDatetime : $datetime; - $end = $datetime===$begin ? $otherDatetime : $datetime; - - return static::dateTimeBetween( - $begin, - $end, - (null === $timezone ? date_default_timezone_get() : $timezone) - ); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get` - * @example DateTime('1964-04-04 11:02:02') - * @return \DateTime - */ - public static function dateTimeThisCentury($max = 'now', $timezone = null) - { - return static::dateTimeBetween('-100 year', $max, $timezone); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get` - * @example DateTime('2010-03-10 05:18:58') - * @return \DateTime - */ - public static function dateTimeThisDecade($max = 'now', $timezone = null) - { - return static::dateTimeBetween('-10 year', $max, $timezone); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get` - * @example DateTime('2011-09-19 09:24:37') - * @return \DateTime - */ - public static function dateTimeThisYear($max = 'now', $timezone = null) - { - return static::dateTimeBetween('-1 year', $max, $timezone); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get` - * @example DateTime('2011-10-05 12:51:46') - * @return \DateTime - */ - public static function dateTimeThisMonth($max = 'now', $timezone = null) - { - return static::dateTimeBetween('-1 month', $max, $timezone); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example 'am' - */ - public static function amPm($max = 'now') - { - return static::dateTime($max)->format('a'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '22' - */ - public static function dayOfMonth($max = 'now') - { - return static::dateTime($max)->format('d'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example 'Tuesday' - */ - public static function dayOfWeek($max = 'now') - { - return static::dateTime($max)->format('l'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '7' - */ - public static function month($max = 'now') - { - return static::dateTime($max)->format('m'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example 'September' - */ - public static function monthName($max = 'now') - { - return static::dateTime($max)->format('F'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return int - * @example 1673 - */ - public static function year($max = 'now') - { - return static::dateTime($max)->format('Y'); - } - - /** - * @return string - * @example 'XVII' - */ - public static function century() - { - return static::randomElement(static::$century); - } - - /** - * @return string - * @example 'Europe/Paris' - */ - public static function timezone() - { - return static::randomElement(\DateTimeZone::listIdentifiers()); - } - - /** - * Internal method to set the time zone on a DateTime. - * - * @param \DateTime $dt - * @param string $timezone - * - * @return $this - */ - private static function setTimezone(\DateTime $dt, $timezone) - { - return $dt->setTimezone(new \DateTimeZone($timezone)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/File.php b/vendor/fzaninotto/faker/src/Faker/Provider/File.php deleted file mode 100644 index ba015946..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/File.php +++ /dev/null @@ -1,606 +0,0 @@ - file extension(s) - * @link http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types - */ - protected static $mimeTypes = array( - 'application/atom+xml' => 'atom', - 'application/ecmascript' => 'ecma', - 'application/emma+xml' => 'emma', - 'application/epub+zip' => 'epub', - 'application/java-archive' => 'jar', - 'application/java-vm' => 'class', - 'application/javascript' => 'js', - 'application/json' => 'json', - 'application/jsonml+json' => 'jsonml', - 'application/lost+xml' => 'lostxml', - 'application/mathml+xml' => 'mathml', - 'application/mets+xml' => 'mets', - 'application/mods+xml' => 'mods', - 'application/mp4' => 'mp4s', - 'application/msword' => array('doc', 'dot'), - 'application/octet-stream' => array( - 'bin', - 'dms', - 'lrf', - 'mar', - 'so', - 'dist', - 'distz', - 'pkg', - 'bpk', - 'dump', - 'elc', - 'deploy' - ), - 'application/ogg' => 'ogx', - 'application/omdoc+xml' => 'omdoc', - 'application/pdf' => 'pdf', - 'application/pgp-encrypted' => 'pgp', - 'application/pgp-signature' => array('asc', 'sig'), - 'application/pkix-pkipath' => 'pkipath', - 'application/pkixcmp' => 'pki', - 'application/pls+xml' => 'pls', - 'application/postscript' => array('ai', 'eps', 'ps'), - 'application/pskc+xml' => 'pskcxml', - 'application/rdf+xml' => 'rdf', - 'application/reginfo+xml' => 'rif', - 'application/rss+xml' => 'rss', - 'application/rtf' => 'rtf', - 'application/sbml+xml' => 'sbml', - 'application/vnd.adobe.air-application-installer-package+zip' => 'air', - 'application/vnd.adobe.xdp+xml' => 'xdp', - 'application/vnd.adobe.xfdf' => 'xfdf', - 'application/vnd.ahead.space' => 'ahead', - 'application/vnd.dart' => 'dart', - 'application/vnd.data-vision.rdz' => 'rdz', - 'application/vnd.dece.data' => array('uvf', 'uvvf', 'uvd', 'uvvd'), - 'application/vnd.dece.ttml+xml' => array('uvt', 'uvvt'), - 'application/vnd.dece.unspecified' => array('uvx', 'uvvx'), - 'application/vnd.dece.zip' => array('uvz', 'uvvz'), - 'application/vnd.denovo.fcselayout-link' => 'fe_launch', - 'application/vnd.dna' => 'dna', - 'application/vnd.dolby.mlp' => 'mlp', - 'application/vnd.dpgraph' => 'dpg', - 'application/vnd.dreamfactory' => 'dfac', - 'application/vnd.ds-keypoint' => 'kpxx', - 'application/vnd.dvb.ait' => 'ait', - 'application/vnd.dvb.service' => 'svc', - 'application/vnd.dynageo' => 'geo', - 'application/vnd.ecowin.chart' => 'mag', - 'application/vnd.enliven' => 'nml', - 'application/vnd.epson.esf' => 'esf', - 'application/vnd.epson.msf' => 'msf', - 'application/vnd.epson.quickanime' => 'qam', - 'application/vnd.epson.salt' => 'slt', - 'application/vnd.epson.ssf' => 'ssf', - 'application/vnd.ezpix-album' => 'ez2', - 'application/vnd.ezpix-package' => 'ez3', - 'application/vnd.fdf' => 'fdf', - 'application/vnd.fdsn.mseed' => 'mseed', - 'application/vnd.fdsn.seed' => array('seed', 'dataless'), - 'application/vnd.flographit' => 'gph', - 'application/vnd.fluxtime.clip' => 'ftc', - 'application/vnd.hal+xml' => 'hal', - 'application/vnd.hydrostatix.sof-data' => 'sfd-hdstx', - 'application/vnd.ibm.minipay' => 'mpy', - 'application/vnd.ibm.secure-container' => 'sc', - 'application/vnd.iccprofile' => array('icc', 'icm'), - 'application/vnd.igloader' => 'igl', - 'application/vnd.immervision-ivp' => 'ivp', - 'application/vnd.kde.karbon' => 'karbon', - 'application/vnd.kde.kchart' => 'chrt', - 'application/vnd.kde.kformula' => 'kfo', - 'application/vnd.kde.kivio' => 'flw', - 'application/vnd.kde.kontour' => 'kon', - 'application/vnd.kde.kpresenter' => array('kpr', 'kpt'), - 'application/vnd.kde.kspread' => 'ksp', - 'application/vnd.kde.kword' => array('kwd', 'kwt'), - 'application/vnd.kenameaapp' => 'htke', - 'application/vnd.kidspiration' => 'kia', - 'application/vnd.kinar' => array('kne', 'knp'), - 'application/vnd.koan' => array('skp', 'skd', 'skt', 'skm'), - 'application/vnd.kodak-descriptor' => 'sse', - 'application/vnd.las.las+xml' => 'lasxml', - 'application/vnd.llamagraphics.life-balance.desktop' => 'lbd', - 'application/vnd.llamagraphics.life-balance.exchange+xml' => 'lbe', - 'application/vnd.lotus-1-2-3' => '123', - 'application/vnd.lotus-approach' => 'apr', - 'application/vnd.lotus-freelance' => 'pre', - 'application/vnd.lotus-notes' => 'nsf', - 'application/vnd.lotus-organizer' => 'org', - 'application/vnd.lotus-screencam' => 'scm', - 'application/vnd.mozilla.xul+xml' => 'xul', - 'application/vnd.ms-artgalry' => 'cil', - 'application/vnd.ms-cab-compressed' => 'cab', - 'application/vnd.ms-excel' => array( - 'xls', - 'xlm', - 'xla', - 'xlc', - 'xlt', - 'xlw' - ), - 'application/vnd.ms-excel.addin.macroenabled.12' => 'xlam', - 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => 'xlsb', - 'application/vnd.ms-excel.sheet.macroenabled.12' => 'xlsm', - 'application/vnd.ms-excel.template.macroenabled.12' => 'xltm', - 'application/vnd.ms-fontobject' => 'eot', - 'application/vnd.ms-htmlhelp' => 'chm', - 'application/vnd.ms-ims' => 'ims', - 'application/vnd.ms-lrm' => 'lrm', - 'application/vnd.ms-officetheme' => 'thmx', - 'application/vnd.ms-pki.seccat' => 'cat', - 'application/vnd.ms-pki.stl' => 'stl', - 'application/vnd.ms-powerpoint' => array('ppt', 'pps', 'pot'), - 'application/vnd.ms-powerpoint.addin.macroenabled.12' => 'ppam', - 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => 'pptm', - 'application/vnd.ms-powerpoint.slide.macroenabled.12' => 'sldm', - 'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => 'ppsm', - 'application/vnd.ms-powerpoint.template.macroenabled.12' => 'potm', - 'application/vnd.ms-project' => array('mpp', 'mpt'), - 'application/vnd.ms-word.document.macroenabled.12' => 'docm', - 'application/vnd.ms-word.template.macroenabled.12' => 'dotm', - 'application/vnd.ms-works' => array('wps', 'wks', 'wcm', 'wdb'), - 'application/vnd.ms-wpl' => 'wpl', - 'application/vnd.ms-xpsdocument' => 'xps', - 'application/vnd.mseq' => 'mseq', - 'application/vnd.musician' => 'mus', - 'application/vnd.oasis.opendocument.chart' => 'odc', - 'application/vnd.oasis.opendocument.chart-template' => 'otc', - 'application/vnd.oasis.opendocument.database' => 'odb', - 'application/vnd.oasis.opendocument.formula' => 'odf', - 'application/vnd.oasis.opendocument.formula-template' => 'odft', - 'application/vnd.oasis.opendocument.graphics' => 'odg', - 'application/vnd.oasis.opendocument.graphics-template' => 'otg', - 'application/vnd.oasis.opendocument.image' => 'odi', - 'application/vnd.oasis.opendocument.image-template' => 'oti', - 'application/vnd.oasis.opendocument.presentation' => 'odp', - 'application/vnd.oasis.opendocument.presentation-template' => 'otp', - 'application/vnd.oasis.opendocument.spreadsheet' => 'ods', - 'application/vnd.oasis.opendocument.spreadsheet-template' => 'ots', - 'application/vnd.oasis.opendocument.text' => 'odt', - 'application/vnd.oasis.opendocument.text-master' => 'odm', - 'application/vnd.oasis.opendocument.text-template' => 'ott', - 'application/vnd.oasis.opendocument.text-web' => 'oth', - 'application/vnd.olpc-sugar' => 'xo', - 'application/vnd.oma.dd2+xml' => 'dd2', - 'application/vnd.openofficeorg.extension' => 'oxt', - 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx', - 'application/vnd.openxmlformats-officedocument.presentationml.slide' => 'sldx', - 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx', - 'application/vnd.openxmlformats-officedocument.presentationml.template' => 'potx', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'xltx', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'dotx', - 'application/vnd.pvi.ptid1' => 'ptid', - 'application/vnd.quark.quarkxpress' => array( - 'qxd', - 'qxt', - 'qwd', - 'qwt', - 'qxl', - 'qxb' - ), - 'application/vnd.realvnc.bed' => 'bed', - 'application/vnd.recordare.musicxml' => 'mxl', - 'application/vnd.recordare.musicxml+xml' => 'musicxml', - 'application/vnd.rig.cryptonote' => 'cryptonote', - 'application/vnd.rim.cod' => 'cod', - 'application/vnd.rn-realmedia' => 'rm', - 'application/vnd.rn-realmedia-vbr' => 'rmvb', - 'application/vnd.route66.link66+xml' => 'link66', - 'application/vnd.sailingtracker.track' => 'st', - 'application/vnd.seemail' => 'see', - 'application/vnd.sema' => 'sema', - 'application/vnd.semd' => 'semd', - 'application/vnd.semf' => 'semf', - 'application/vnd.shana.informed.formdata' => 'ifm', - 'application/vnd.shana.informed.formtemplate' => 'itp', - 'application/vnd.shana.informed.interchange' => 'iif', - 'application/vnd.shana.informed.package' => 'ipk', - 'application/vnd.simtech-mindmapper' => array('twd', 'twds'), - 'application/vnd.smaf' => 'mmf', - 'application/vnd.stepmania.stepchart' => 'sm', - 'application/vnd.sun.xml.calc' => 'sxc', - 'application/vnd.sun.xml.calc.template' => 'stc', - 'application/vnd.sun.xml.draw' => 'sxd', - 'application/vnd.sun.xml.draw.template' => 'std', - 'application/vnd.sun.xml.impress' => 'sxi', - 'application/vnd.sun.xml.impress.template' => 'sti', - 'application/vnd.sun.xml.math' => 'sxm', - 'application/vnd.sun.xml.writer' => 'sxw', - 'application/vnd.sun.xml.writer.global' => 'sxg', - 'application/vnd.sun.xml.writer.template' => 'stw', - 'application/vnd.sus-calendar' => array('sus', 'susp'), - 'application/vnd.svd' => 'svd', - 'application/vnd.symbian.install' => array('sis', 'sisx'), - 'application/vnd.syncml+xml' => 'xsm', - 'application/vnd.syncml.dm+wbxml' => 'bdm', - 'application/vnd.syncml.dm+xml' => 'xdm', - 'application/vnd.tao.intent-module-archive' => 'tao', - 'application/vnd.tcpdump.pcap' => array('pcap', 'cap', 'dmp'), - 'application/vnd.tmobile-livetv' => 'tmo', - 'application/vnd.trid.tpt' => 'tpt', - 'application/vnd.triscape.mxs' => 'mxs', - 'application/vnd.trueapp' => 'tra', - 'application/vnd.ufdl' => array('ufd', 'ufdl'), - 'application/vnd.uiq.theme' => 'utz', - 'application/vnd.umajin' => 'umj', - 'application/vnd.unity' => 'unityweb', - 'application/vnd.uoml+xml' => 'uoml', - 'application/vnd.vcx' => 'vcx', - 'application/vnd.visio' => array('vsd', 'vst', 'vss', 'vsw'), - 'application/vnd.visionary' => 'vis', - 'application/vnd.vsf' => 'vsf', - 'application/vnd.wap.wbxml' => 'wbxml', - 'application/vnd.wap.wmlc' => 'wmlc', - 'application/vnd.wap.wmlscriptc' => 'wmlsc', - 'application/vnd.webturbo' => 'wtb', - 'application/vnd.wolfram.player' => 'nbp', - 'application/vnd.wordperfect' => 'wpd', - 'application/vnd.wqd' => 'wqd', - 'application/vnd.wt.stf' => 'stf', - 'application/vnd.xara' => 'xar', - 'application/vnd.xfdl' => 'xfdl', - 'application/voicexml+xml' => 'vxml', - 'application/widget' => 'wgt', - 'application/winhlp' => 'hlp', - 'application/wsdl+xml' => 'wsdl', - 'application/wspolicy+xml' => 'wspolicy', - 'application/x-7z-compressed' => '7z', - 'application/x-bittorrent' => 'torrent', - 'application/x-blorb' => array('blb', 'blorb'), - 'application/x-bzip' => 'bz', - 'application/x-cdlink' => 'vcd', - 'application/x-cfs-compressed' => 'cfs', - 'application/x-chat' => 'chat', - 'application/x-chess-pgn' => 'pgn', - 'application/x-conference' => 'nsc', - 'application/x-cpio' => 'cpio', - 'application/x-csh' => 'csh', - 'application/x-debian-package' => array('deb', 'udeb'), - 'application/x-dgc-compressed' => 'dgc', - 'application/x-director' => array( - 'dir', - 'dcr', - 'dxr', - 'cst', - 'cct', - 'cxt', - 'w3d', - 'fgd', - 'swa' - ), - 'application/x-font-ttf' => array('ttf', 'ttc'), - 'application/x-font-type1' => array('pfa', 'pfb', 'pfm', 'afm'), - 'application/x-font-woff' => 'woff', - 'application/x-freearc' => 'arc', - 'application/x-futuresplash' => 'spl', - 'application/x-gca-compressed' => 'gca', - 'application/x-glulx' => 'ulx', - 'application/x-gnumeric' => 'gnumeric', - 'application/x-gramps-xml' => 'gramps', - 'application/x-gtar' => 'gtar', - 'application/x-hdf' => 'hdf', - 'application/x-install-instructions' => 'install', - 'application/x-iso9660-image' => 'iso', - 'application/x-java-jnlp-file' => 'jnlp', - 'application/x-latex' => 'latex', - 'application/x-lzh-compressed' => array('lzh', 'lha'), - 'application/x-mie' => 'mie', - 'application/x-mobipocket-ebook' => array('prc', 'mobi'), - 'application/x-ms-application' => 'application', - 'application/x-ms-shortcut' => 'lnk', - 'application/x-ms-wmd' => 'wmd', - 'application/x-ms-wmz' => 'wmz', - 'application/x-ms-xbap' => 'xbap', - 'application/x-msaccess' => 'mdb', - 'application/x-msbinder' => 'obd', - 'application/x-mscardfile' => 'crd', - 'application/x-msclip' => 'clp', - 'application/x-msdownload' => array('exe', 'dll', 'com', 'bat', 'msi'), - 'application/x-msmediaview' => array( - 'mvb', - 'm13', - 'm14' - ), - 'application/x-msmetafile' => array('wmf', 'wmz', 'emf', 'emz'), - 'application/x-rar-compressed' => 'rar', - 'application/x-research-info-systems' => 'ris', - 'application/x-sh' => 'sh', - 'application/x-shar' => 'shar', - 'application/x-shockwave-flash' => 'swf', - 'application/x-silverlight-app' => 'xap', - 'application/x-sql' => 'sql', - 'application/x-stuffit' => 'sit', - 'application/x-stuffitx' => 'sitx', - 'application/x-subrip' => 'srt', - 'application/x-sv4cpio' => 'sv4cpio', - 'application/x-sv4crc' => 'sv4crc', - 'application/x-t3vm-image' => 't3', - 'application/x-tads' => 'gam', - 'application/x-tar' => 'tar', - 'application/x-tcl' => 'tcl', - 'application/x-tex' => 'tex', - 'application/x-tex-tfm' => 'tfm', - 'application/x-texinfo' => array('texinfo', 'texi'), - 'application/x-tgif' => 'obj', - 'application/x-ustar' => 'ustar', - 'application/x-wais-source' => 'src', - 'application/x-x509-ca-cert' => array('der', 'crt'), - 'application/x-xfig' => 'fig', - 'application/x-xliff+xml' => 'xlf', - 'application/x-xpinstall' => 'xpi', - 'application/x-xz' => 'xz', - 'application/x-zmachine' => 'z1', - 'application/xaml+xml' => 'xaml', - 'application/xcap-diff+xml' => 'xdf', - 'application/xenc+xml' => 'xenc', - 'application/xhtml+xml' => array('xhtml', 'xht'), - 'application/xml' => array('xml', 'xsl'), - 'application/xml-dtd' => 'dtd', - 'application/xop+xml' => 'xop', - 'application/xproc+xml' => 'xpl', - 'application/xslt+xml' => 'xslt', - 'application/xspf+xml' => 'xspf', - 'application/xv+xml' => array('mxml', 'xhvml', 'xvml', 'xvm'), - 'application/yang' => 'yang', - 'application/yin+xml' => 'yin', - 'application/zip' => 'zip', - 'audio/adpcm' => 'adp', - 'audio/basic' => array('au', 'snd'), - 'audio/midi' => array('mid', 'midi', 'kar', 'rmi'), - 'audio/mp4' => 'mp4a', - 'audio/mpeg' => array( - 'mpga', - 'mp2', - 'mp2a', - 'mp3', - 'm2a', - 'm3a' - ), - 'audio/ogg' => array('oga', 'ogg', 'spx'), - 'audio/vnd.dece.audio' => array('uva', 'uvva'), - 'audio/vnd.rip' => 'rip', - 'audio/webm' => 'weba', - 'audio/x-aac' => 'aac', - 'audio/x-aiff' => array('aif', 'aiff', 'aifc'), - 'audio/x-caf' => 'caf', - 'audio/x-flac' => 'flac', - 'audio/x-matroska' => 'mka', - 'audio/x-mpegurl' => 'm3u', - 'audio/x-ms-wax' => 'wax', - 'audio/x-ms-wma' => 'wma', - 'audio/x-pn-realaudio' => array('ram', 'ra'), - 'audio/x-pn-realaudio-plugin' => 'rmp', - 'audio/x-wav' => 'wav', - 'audio/xm' => 'xm', - 'image/bmp' => 'bmp', - 'image/cgm' => 'cgm', - 'image/g3fax' => 'g3', - 'image/gif' => 'gif', - 'image/ief' => 'ief', - 'image/jpeg' => array('jpeg', 'jpg', 'jpe'), - 'image/ktx' => 'ktx', - 'image/png' => 'png', - 'image/prs.btif' => 'btif', - 'image/sgi' => 'sgi', - 'image/svg+xml' => array('svg', 'svgz'), - 'image/tiff' => array('tiff', 'tif'), - 'image/vnd.adobe.photoshop' => 'psd', - 'image/vnd.dece.graphic' => array('uvi', 'uvvi', 'uvg', 'uvvg'), - 'image/vnd.dvb.subtitle' => 'sub', - 'image/vnd.djvu' => array('djvu', 'djv'), - 'image/vnd.dwg' => 'dwg', - 'image/vnd.dxf' => 'dxf', - 'image/vnd.fastbidsheet' => 'fbs', - 'image/vnd.fpx' => 'fpx', - 'image/vnd.fst' => 'fst', - 'image/vnd.fujixerox.edmics-mmr' => 'mmr', - 'image/vnd.fujixerox.edmics-rlc' => 'rlc', - 'image/vnd.ms-modi' => 'mdi', - 'image/vnd.ms-photo' => 'wdp', - 'image/vnd.net-fpx' => 'npx', - 'image/vnd.wap.wbmp' => 'wbmp', - 'image/vnd.xiff' => 'xif', - 'image/webp' => 'webp', - 'image/x-3ds' => '3ds', - 'image/x-cmu-raster' => 'ras', - 'image/x-cmx' => 'cmx', - 'image/x-freehand' => array('fh', 'fhc', 'fh4', 'fh5', 'fh7'), - 'image/x-icon' => 'ico', - 'image/x-mrsid-image' => 'sid', - 'image/x-pcx' => 'pcx', - 'image/x-pict' => array('pic', 'pct'), - 'image/x-portable-anymap' => 'pnm', - 'image/x-portable-bitmap' => 'pbm', - 'image/x-portable-graymap' => 'pgm', - 'image/x-portable-pixmap' => 'ppm', - 'image/x-rgb' => 'rgb', - 'image/x-tga' => 'tga', - 'image/x-xbitmap' => 'xbm', - 'image/x-xpixmap' => 'xpm', - 'image/x-xwindowdump' => 'xwd', - 'message/rfc822' => array('eml', 'mime'), - 'model/iges' => array('igs', 'iges'), - 'model/mesh' => array('msh', 'mesh', 'silo'), - 'model/vnd.collada+xml' => 'dae', - 'model/vnd.dwf' => 'dwf', - 'model/vnd.gdl' => 'gdl', - 'model/vnd.gtw' => 'gtw', - 'model/vnd.mts' => 'mts', - 'model/vnd.vtu' => 'vtu', - 'model/vrml' => array('wrl', 'vrml'), - 'model/x3d+binary' => 'x3db', - 'model/x3d+vrml' => 'x3dv', - 'model/x3d+xml' => 'x3d', - 'text/cache-manifest' => 'appcache', - 'text/calendar' => array('ics', 'ifb'), - 'text/css' => 'css', - 'text/csv' => 'csv', - 'text/html' => array('html', 'htm'), - 'text/n3' => 'n3', - 'text/plain' => array( - 'txt', - 'text', - 'conf', - 'def', - 'list', - 'log', - 'in' - ), - 'text/prs.lines.tag' => 'dsc', - 'text/richtext' => 'rtx', - 'text/sgml' => array('sgml', 'sgm'), - 'text/tab-separated-values' => 'tsv', - 'text/troff' => array( - 't', - 'tr', - 'roff', - 'man', - 'me', - 'ms' - ), - 'text/turtle' => 'ttl', - 'text/uri-list' => array('uri', 'uris', 'urls'), - 'text/vcard' => 'vcard', - 'text/vnd.curl' => 'curl', - 'text/vnd.curl.dcurl' => 'dcurl', - 'text/vnd.curl.scurl' => 'scurl', - 'text/vnd.curl.mcurl' => 'mcurl', - 'text/vnd.dvb.subtitle' => 'sub', - 'text/vnd.fly' => 'fly', - 'text/vnd.fmi.flexstor' => 'flx', - 'text/vnd.graphviz' => 'gv', - 'text/vnd.in3d.3dml' => '3dml', - 'text/vnd.in3d.spot' => 'spot', - 'text/vnd.sun.j2me.app-descriptor' => 'jad', - 'text/vnd.wap.wml' => 'wml', - 'text/vnd.wap.wmlscript' => 'wmls', - 'text/x-asm' => array('s', 'asm'), - 'text/x-fortran' => array('f', 'for', 'f77', 'f90'), - 'text/x-java-source' => 'java', - 'text/x-opml' => 'opml', - 'text/x-pascal' => array('p', 'pas'), - 'text/x-nfo' => 'nfo', - 'text/x-setext' => 'etx', - 'text/x-sfv' => 'sfv', - 'text/x-uuencode' => 'uu', - 'text/x-vcalendar' => 'vcs', - 'text/x-vcard' => 'vcf', - 'video/3gpp' => '3gp', - 'video/3gpp2' => '3g2', - 'video/h261' => 'h261', - 'video/h263' => 'h263', - 'video/h264' => 'h264', - 'video/jpeg' => 'jpgv', - 'video/jpm' => array('jpm', 'jpgm'), - 'video/mj2' => 'mj2', - 'video/mp4' => 'mp4', - 'video/mpeg' => array('mpeg', 'mpg', 'mpe', 'm1v', 'm2v'), - 'video/ogg' => 'ogv', - 'video/quicktime' => array('qt', 'mov'), - 'video/vnd.dece.hd' => array('uvh', 'uvvh'), - 'video/vnd.dece.mobile' => array('uvm', 'uvvm'), - 'video/vnd.dece.pd' => array('uvp', 'uvvp'), - 'video/vnd.dece.sd' => array('uvs', 'uvvs'), - 'video/vnd.dece.video' => array('uvv', 'uvvv'), - 'video/vnd.dvb.file' => 'dvb', - 'video/vnd.fvt' => 'fvt', - 'video/vnd.mpegurl' => array('mxu', 'm4u'), - 'video/vnd.ms-playready.media.pyv' => 'pyv', - 'video/vnd.uvvu.mp4' => array('uvu', 'uvvu'), - 'video/vnd.vivo' => 'viv', - 'video/webm' => 'webm', - 'video/x-f4v' => 'f4v', - 'video/x-fli' => 'fli', - 'video/x-flv' => 'flv', - 'video/x-m4v' => 'm4v', - 'video/x-matroska' => array('mkv', 'mk3d', 'mks'), - 'video/x-mng' => 'mng', - 'video/x-ms-asf' => array('asf', 'asx'), - 'video/x-ms-vob' => 'vob', - 'video/x-ms-wm' => 'wm', - 'video/x-ms-wmv' => 'wmv', - 'video/x-ms-wmx' => 'wmx', - 'video/x-ms-wvx' => 'wvx', - 'video/x-msvideo' => 'avi', - 'video/x-sgi-movie' => 'movie', - ); - - /** - * Get a random MIME type - * - * @return string - * @example 'video/avi' - */ - public static function mimeType() - { - return static::randomElement(array_keys(static::$mimeTypes)); - } - - /** - * Get a random file extension (without a dot) - * - * @example avi - * @return string - */ - public static function fileExtension() - { - $random_extension = static::randomElement(array_values(static::$mimeTypes)); - - return is_array($random_extension) ? static::randomElement($random_extension) : $random_extension; - } - - /** - * Copy a random file from the source directory to the target directory and returns the filename/fullpath - * - * @param string $sourceDirectory The directory to look for random file taking - * @param string $targetDirectory - * @param boolean $fullPath Whether to have the full path or just the filename - * @return string - */ - public static function file($sourceDirectory = '/tmp', $targetDirectory = '/tmp', $fullPath = true) - { - if (!is_dir($sourceDirectory)) { - throw new \InvalidArgumentException(sprintf('Source directory %s does not exist or is not a directory.', $sourceDirectory)); - } - - if (!is_dir($targetDirectory)) { - throw new \InvalidArgumentException(sprintf('Target directory %s does not exist or is not a directory.', $targetDirectory)); - } - - if ($sourceDirectory == $targetDirectory) { - throw new \InvalidArgumentException('Source and target directories must differ.'); - } - - // Drop . and .. and reset array keys - $files = array_filter(array_values(array_diff(scandir($sourceDirectory), array('.', '..'))), function ($file) use ($sourceDirectory) { - return is_file($sourceDirectory . DIRECTORY_SEPARATOR . $file) && is_readable($sourceDirectory . DIRECTORY_SEPARATOR . $file); - }); - - if (empty($files)) { - throw new \InvalidArgumentException(sprintf('Source directory %s is empty.', $sourceDirectory)); - } - - $sourceFullPath = $sourceDirectory . DIRECTORY_SEPARATOR . static::randomElement($files); - - $destinationFile = Uuid::uuid() . '.' . pathinfo($sourceFullPath, PATHINFO_EXTENSION); - $destinationFullPath = $targetDirectory . DIRECTORY_SEPARATOR . $destinationFile; - - if (false === copy($sourceFullPath, $destinationFullPath)) { - return false; - } - - return $fullPath ? $destinationFullPath : $destinationFile; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php b/vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php deleted file mode 100644 index b4b2ec16..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php +++ /dev/null @@ -1,277 +0,0 @@ -addProvider(new Lorem($generator)); - $generator->addProvider(new Internet($generator)); - } - - /** - * @param integer $maxDepth - * @param integer $maxWidth - * - * @return string - */ - public function randomHtml($maxDepth = 4, $maxWidth = 4) - { - $document = new \DOMDocument(); - $this->idGenerator = new UniqueGenerator($this->generator); - - $head = $document->createElement("head"); - $this->addRandomTitle($head); - - $body = $document->createElement("body"); - $this->addLoginForm($body); - $this->addRandomSubTree($body, $maxDepth, $maxWidth); - - $html = $document->createElement("html"); - $html->appendChild($head); - $html->appendChild($body); - - $document->appendChild($html); - return $document->saveHTML(); - } - - private function addRandomSubTree(\DOMElement $root, $maxDepth, $maxWidth) - { - $maxDepth--; - if ($maxDepth <= 0) { - return $root; - } - - $siblings = mt_rand(1, $maxWidth); - for ($i = 0; $i < $siblings; $i++) { - if ($maxDepth == 1) { - $this->addRandomLeaf($root); - } else { - $sibling = $root->ownerDocument->createElement("div"); - $root->appendChild($sibling); - $this->addRandomAttribute($sibling); - $this->addRandomSubTree($sibling, mt_rand(0, $maxDepth), $maxWidth); - } - }; - return $root; - } - - private function addRandomLeaf(\DOMElement $node) - { - $rand = mt_rand(1, 10); - switch($rand){ - case 1: - $this->addRandomP($node); - break; - case 2: - $this->addRandomA($node); - break; - case 3: - $this->addRandomSpan($node); - break; - case 4: - $this->addRandomUL($node); - break; - case 5: - $this->addRandomH($node); - break; - case 6: - $this->addRandomB($node); - break; - case 7: - $this->addRandomI($node); - break; - case 8: - $this->addRandomTable($node); - break; - default: - $this->addRandomText($node); - break; - } - } - - private function addRandomAttribute(\DOMElement $node) - { - $rand = mt_rand(1, 2); - switch ($rand) { - case 1: - $node->setAttribute("class", $this->generator->word); - break; - case 2: - $node->setAttribute("id", (string)$this->idGenerator->randomNumber(5)); - break; - } - } - - private function addRandomP(\DOMElement $element, $maxLength = 10) - { - - $node = $element->ownerDocument->createElement(static::P_TAG); - $node->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); - $element->appendChild($node); - } - - private function addRandomText(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $element->appendChild($text); - } - - private function addRandomA(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::A_TAG); - $node->setAttribute("href", $this->generator->safeEmailDomain); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addRandomTitle(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::TITLE_TAG); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addRandomH(\DOMElement $element, $maxLength = 10) - { - $h = static::H_TAG . (string)mt_rand(1, 3); - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement($h); - $node->appendChild($text); - $element->appendChild($node); - - } - - private function addRandomB(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::B_TAG); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addRandomI(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::I_TAG); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addRandomSpan(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::SPAN_TAG); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addLoginForm(\DOMElement $element) - { - - $textInput = $element->ownerDocument->createElement(static::INPUT_TAG); - $textInput->setAttribute("type", "text"); - $textInput->setAttribute("id", "username"); - - $textLabel = $element->ownerDocument->createElement(static::LABEL_TAG); - $textLabel->setAttribute("for", "username"); - $textLabel->textContent = $this->generator->word; - - $passwordInput = $element->ownerDocument->createElement(static::INPUT_TAG); - $passwordInput->setAttribute("type", "password"); - $passwordInput->setAttribute("id", "password"); - - $passwordLabel = $element->ownerDocument->createElement(static::LABEL_TAG); - $passwordLabel->setAttribute("for", "password"); - $passwordLabel->textContent = $this->generator->word; - - $submit = $element->ownerDocument->createElement(static::INPUT_TAG); - $submit->setAttribute("type", "submit"); - $submit->setAttribute("value", $this->generator->word); - - $submit = $element->ownerDocument->createElement(static::FORM_TAG); - $submit->setAttribute("action", $this->generator->safeEmailDomain); - $submit->setAttribute("method", "POST"); - $submit->appendChild($textLabel); - $submit->appendChild($textInput); - $submit->appendChild($passwordLabel); - $submit->appendChild($passwordInput); - $element->appendChild($submit); - } - - private function addRandomTable(\DOMElement $element, $maxRows = 10, $maxCols = 6, $maxTitle = 4, $maxLength = 10) - { - $rows = mt_rand(1, $maxRows); - $cols = mt_rand(1, $maxCols); - - $table = $element->ownerDocument->createElement(static::TABLE_TAG); - $thead = $element->ownerDocument->createElement(static::THEAD_TAG); - $tbody = $element->ownerDocument->createElement(static::TBODY_TAG); - - $table->appendChild($thead); - $table->appendChild($tbody); - - $tr = $element->ownerDocument->createElement(static::TR_TAG); - $thead->appendChild($tr); - for ($i = 0; $i < $cols; $i++) { - $th = $element->ownerDocument->createElement(static::TH_TAG); - $th->textContent = $this->generator->sentence(mt_rand(1, $maxTitle)); - $tr->appendChild($th); - } - for ($i = 0; $i < $rows; $i++) { - $tr = $element->ownerDocument->createElement(static::TR_TAG); - $tbody->appendChild($tr); - for ($j = 0; $j < $cols; $j++) { - $th = $element->ownerDocument->createElement(static::TD_TAG); - $th->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); - $tr->appendChild($th); - } - } - $element->appendChild($table); - } - - private function addRandomUL(\DOMElement $element, $maxItems = 11, $maxLength = 4) - { - $num = mt_rand(1, $maxItems); - $ul = $element->ownerDocument->createElement(static::UL_TAG); - for ($i = 0; $i < $num; $i++) { - $li = $element->ownerDocument->createElement(static::LI_TAG); - $li->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); - $ul->appendChild($li); - } - $element->appendChild($ul); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Image.php b/vendor/fzaninotto/faker/src/Faker/Provider/Image.php deleted file mode 100644 index 404a45a0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Image.php +++ /dev/null @@ -1,109 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'jdoe@example.com' - */ - final public function safeEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . static::safeEmailDomain()); - } - - /** - * @example 'jdoe@gmail.com' - */ - public function freeEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . static::freeEmailDomain()); - } - - /** - * @example 'jdoe@dawson.com' - */ - public function companyEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . $this->domainName()); - } - - /** - * @example 'gmail.com' - */ - public static function freeEmailDomain() - { - return static::randomElement(static::$freeEmailDomain); - } - - /** - * @example 'example.org' - */ - final public static function safeEmailDomain() - { - $domains = array( - 'example.com', - 'example.org', - 'example.net' - ); - - return static::randomElement($domains); - } - /** - * @example 'jdoe' - */ - public function userName() - { - $format = static::randomElement(static::$userNameFormats); - $username = static::bothify($this->generator->parse($format)); - - $username = strtolower(static::transliterate($username)); - - // check if transliterate() didn't support the language and removed all letters - if (trim($username, '._') === '') { - throw new \Exception('userName failed with the selected locale. Try a different locale or activate the "intl" PHP extension.'); - } - - // clean possible trailing dots from first/last names - $username = str_replace('..', '.', $username); - $username = rtrim($username, '.'); - - return $username; - } - /** - * @example 'fY4èHdZv68' - */ - public function password($minLength = 6, $maxLength = 20) - { - $pattern = str_repeat('*', $this->numberBetween($minLength, $maxLength)); - - return $this->asciify($pattern); - } - - /** - * @example 'tiramisu.com' - */ - public function domainName() - { - return $this->domainWord() . '.' . $this->tld(); - } - - /** - * @example 'faber' - */ - public function domainWord() - { - $lastName = $this->generator->format('lastName'); - - $lastName = strtolower(static::transliterate($lastName)); - - // check if transliterate() didn't support the language and removed all letters - if (trim($lastName, '._') === '') { - throw new \Exception('domainWord failed with the selected locale. Try a different locale or activate the "intl" PHP extension.'); - } - - // clean possible trailing dot from last name - $lastName = rtrim($lastName, '.'); - - return $lastName; - } - - /** - * @example 'com' - */ - public function tld() - { - return static::randomElement(static::$tld); - } - - /** - * @example 'http://www.runolfsdottir.com/' - */ - public function url() - { - $format = static::randomElement(static::$urlFormats); - - return $this->generator->parse($format); - } - - /** - * @example 'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum' - */ - public function slug($nbWords = 6, $variableNbWords = true) - { - if ($nbWords <= 0) { - return ''; - } - if ($variableNbWords) { - $nbWords = (int) ($nbWords * mt_rand(60, 140) / 100) + 1; - } - $words = $this->generator->words($nbWords); - - return join($words, '-'); - } - - /** - * @example '237.149.115.38' - */ - public function ipv4() - { - return long2ip(mt_rand(0, 1) == 0 ? mt_rand(-2147483648, -2) : mt_rand(16777216, 2147483647)); - } - - /** - * @example '35cd:186d:3e23:2986:ef9f:5b41:42a4:e6f1' - */ - public function ipv6() - { - $res = array(); - for ($i=0; $i < 8; $i++) { - $res []= dechex(mt_rand(0, "65535")); - } - - return join(':', $res); - } - - /** - * @example '10.1.1.17' - */ - public static function localIpv4() - { - if (static::numberBetween(0, 1) === 0) { - // 10.x.x.x range - return long2ip(static::numberBetween(ip2long("10.0.0.0"), ip2long("10.255.255.255"))); - } - - // 192.168.x.x range - return long2ip(static::numberBetween(ip2long("192.168.0.0"), ip2long("192.168.255.255"))); - } - - /** - * @example '32:F1:39:2F:D6:18' - */ - public static function macAddress() - { - for ($i=0; $i<6; $i++) { - $mac[] = sprintf('%02X', static::numberBetween(0, 0xff)); - } - $mac = implode(':', $mac); - - return $mac; - } - - protected static function transliterate($string) - { - if (0 === preg_match('/[^A-Za-z0-9_.]/', $string)) { - return $string; - } - - $transId = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;'; - if (class_exists('Transliterator') && $transliterator = \Transliterator::create($transId)) { - $transString = $transliterator->transliterate($string); - } else { - $transString = static::toAscii($string); - } - - return preg_replace('/[^A-Za-z0-9_.]/u', '', $transString); - } - - protected static function toAscii($string) - { - static $arrayFrom, $arrayTo; - - if (empty($arrayFrom)) { - $transliterationTable = array( - 'IJ'=>'I', 'Ö'=>'O', 'Å’'=>'O', 'Ãœ'=>'U', 'ä'=>'a', 'æ'=>'a', - 'ij'=>'i', 'ö'=>'o', 'Å“'=>'o', 'ü'=>'u', 'ß'=>'s', 'Å¿'=>'s', - 'À'=>'A', 'Ã'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Ã…'=>'A', - 'Æ'=>'A', 'Ä€'=>'A', 'Ä„'=>'A', 'Ä‚'=>'A', 'Ç'=>'C', 'Ć'=>'C', - 'ÄŒ'=>'C', 'Ĉ'=>'C', 'ÄŠ'=>'C', 'ÄŽ'=>'D', 'Ä'=>'D', 'È'=>'E', - 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ä’'=>'E', 'Ę'=>'E', 'Äš'=>'E', - 'Ä”'=>'E', 'Ä–'=>'E', 'Äœ'=>'G', 'Äž'=>'G', 'Ä '=>'G', 'Ä¢'=>'G', - 'Ĥ'=>'H', 'Ħ'=>'H', 'ÃŒ'=>'I', 'Ã'=>'I', 'ÃŽ'=>'I', 'Ã'=>'I', - 'Ī'=>'I', 'Ĩ'=>'I', 'Ĭ'=>'I', 'Ä®'=>'I', 'Ä°'=>'I', 'Ä´'=>'J', - 'Ķ'=>'K', 'Ľ'=>'K', 'Ĺ'=>'K', 'Ä»'=>'K', 'Ä¿'=>'K', 'Å'=>'L', - 'Ñ'=>'N', 'Ń'=>'N', 'Ň'=>'N', 'Å…'=>'N', 'ÅŠ'=>'N', 'Ã’'=>'O', - 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ø'=>'O', 'ÅŒ'=>'O', 'Å'=>'O', - 'ÅŽ'=>'O', 'Å”'=>'R', 'Ř'=>'R', 'Å–'=>'R', 'Åš'=>'S', 'Åž'=>'S', - 'Åœ'=>'S', 'Ș'=>'S', 'Å '=>'S', 'Ť'=>'T', 'Å¢'=>'T', 'Ŧ'=>'T', - 'Èš'=>'T', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ū'=>'U', 'Å®'=>'U', - 'Å°'=>'U', 'Ŭ'=>'U', 'Ũ'=>'U', 'Ų'=>'U', 'Å´'=>'W', 'Ŷ'=>'Y', - 'Ÿ'=>'Y', 'Ã'=>'Y', 'Ź'=>'Z', 'Å»'=>'Z', 'Ž'=>'Z', 'à'=>'a', - 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'Ä'=>'a', 'Ä…'=>'a', 'ă'=>'a', - 'Ã¥'=>'a', 'ç'=>'c', 'ć'=>'c', 'Ä'=>'c', 'ĉ'=>'c', 'Ä‹'=>'c', - 'Ä'=>'d', 'Ä‘'=>'d', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', - 'Ä“'=>'e', 'Ä™'=>'e', 'Ä›'=>'e', 'Ä•'=>'e', 'Ä—'=>'e', 'Æ’'=>'f', - 'Ä'=>'g', 'ÄŸ'=>'g', 'Ä¡'=>'g', 'Ä£'=>'g', 'Ä¥'=>'h', 'ħ'=>'h', - 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'Ä«'=>'i', 'Ä©'=>'i', - 'Ä­'=>'i', 'į'=>'i', 'ı'=>'i', 'ĵ'=>'j', 'Ä·'=>'k', 'ĸ'=>'k', - 'Å‚'=>'l', 'ľ'=>'l', 'ĺ'=>'l', 'ļ'=>'l', 'Å€'=>'l', 'ñ'=>'n', - 'Å„'=>'n', 'ň'=>'n', 'ņ'=>'n', 'ʼn'=>'n', 'Å‹'=>'n', 'ò'=>'o', - 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ø'=>'o', 'Å'=>'o', 'Å‘'=>'o', - 'Å'=>'o', 'Å•'=>'r', 'Å™'=>'r', 'Å—'=>'r', 'Å›'=>'s', 'Å¡'=>'s', - 'Å¥'=>'t', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'Å«'=>'u', 'ů'=>'u', - 'ű'=>'u', 'Å­'=>'u', 'Å©'=>'u', 'ų'=>'u', 'ŵ'=>'w', 'ÿ'=>'y', - 'ý'=>'y', 'Å·'=>'y', 'ż'=>'z', 'ź'=>'z', 'ž'=>'z', 'Α'=>'A', - 'Ά'=>'A', 'Ἀ'=>'A', 'Ἁ'=>'A', 'Ἂ'=>'A', 'Ἃ'=>'A', 'Ἄ'=>'A', - 'á¼'=>'A', 'Ἆ'=>'A', 'á¼'=>'A', 'ᾈ'=>'A', 'ᾉ'=>'A', 'ᾊ'=>'A', - 'ᾋ'=>'A', 'ᾌ'=>'A', 'á¾'=>'A', 'ᾎ'=>'A', 'á¾'=>'A', 'Ᾰ'=>'A', - 'á¾¹'=>'A', 'Ὰ'=>'A', 'á¾¼'=>'A', 'Î’'=>'B', 'Γ'=>'G', 'Δ'=>'D', - 'Ε'=>'E', 'Έ'=>'E', 'Ἐ'=>'E', 'á¼™'=>'E', 'Ἒ'=>'E', 'á¼›'=>'E', - 'Ἔ'=>'E', 'á¼'=>'E', 'Ὲ'=>'E', 'Ζ'=>'Z', 'Η'=>'I', 'Ή'=>'I', - 'Ἠ'=>'I', 'Ἡ'=>'I', 'Ἢ'=>'I', 'Ἣ'=>'I', 'Ἤ'=>'I', 'á¼­'=>'I', - 'á¼®'=>'I', 'Ἧ'=>'I', 'ᾘ'=>'I', 'á¾™'=>'I', 'ᾚ'=>'I', 'á¾›'=>'I', - 'ᾜ'=>'I', 'á¾'=>'I', 'ᾞ'=>'I', 'ᾟ'=>'I', 'á¿Š'=>'I', 'á¿Œ'=>'I', - 'Θ'=>'T', 'Ι'=>'I', 'Ί'=>'I', 'Ϊ'=>'I', 'Ἰ'=>'I', 'á¼¹'=>'I', - 'Ἲ'=>'I', 'á¼»'=>'I', 'á¼¼'=>'I', 'á¼½'=>'I', 'á¼¾'=>'I', 'Ἷ'=>'I', - 'Ῐ'=>'I', 'á¿™'=>'I', 'á¿š'=>'I', 'Κ'=>'K', 'Λ'=>'L', 'Îœ'=>'M', - 'Î'=>'N', 'Ξ'=>'K', 'Ο'=>'O', 'ÎŒ'=>'O', 'Ὀ'=>'O', 'Ὁ'=>'O', - 'Ὂ'=>'O', 'Ὃ'=>'O', 'Ὄ'=>'O', 'á½'=>'O', 'Ὸ'=>'O', 'Π'=>'P', - 'Ρ'=>'R', 'Ῥ'=>'R', 'Σ'=>'S', 'Τ'=>'T', 'Î¥'=>'Y', 'ÎŽ'=>'Y', - 'Ϋ'=>'Y', 'á½™'=>'Y', 'á½›'=>'Y', 'á½'=>'Y', 'Ὗ'=>'Y', 'Ῠ'=>'Y', - 'á¿©'=>'Y', 'Ὺ'=>'Y', 'Φ'=>'F', 'Χ'=>'X', 'Ψ'=>'P', 'Ω'=>'O', - 'Î'=>'O', 'Ὠ'=>'O', 'Ὡ'=>'O', 'Ὢ'=>'O', 'Ὣ'=>'O', 'Ὤ'=>'O', - 'á½­'=>'O', 'á½®'=>'O', 'Ὧ'=>'O', 'ᾨ'=>'O', 'ᾩ'=>'O', 'ᾪ'=>'O', - 'ᾫ'=>'O', 'ᾬ'=>'O', 'á¾­'=>'O', 'á¾®'=>'O', 'ᾯ'=>'O', 'Ὼ'=>'O', - 'ῼ'=>'O', 'α'=>'a', 'ά'=>'a', 'á¼€'=>'a', 'á¼'=>'a', 'ἂ'=>'a', - 'ἃ'=>'a', 'ἄ'=>'a', 'á¼…'=>'a', 'ἆ'=>'a', 'ἇ'=>'a', 'á¾€'=>'a', - 'á¾'=>'a', 'ᾂ'=>'a', 'ᾃ'=>'a', 'ᾄ'=>'a', 'á¾…'=>'a', 'ᾆ'=>'a', - 'ᾇ'=>'a', 'á½°'=>'a', 'á¾°'=>'a', 'á¾±'=>'a', 'á¾²'=>'a', 'á¾³'=>'a', - 'á¾´'=>'a', 'ᾶ'=>'a', 'á¾·'=>'a', 'β'=>'b', 'γ'=>'g', 'δ'=>'d', - 'ε'=>'e', 'έ'=>'e', 'á¼'=>'e', 'ἑ'=>'e', 'á¼’'=>'e', 'ἓ'=>'e', - 'á¼”'=>'e', 'ἕ'=>'e', 'á½²'=>'e', 'ζ'=>'z', 'η'=>'i', 'ή'=>'i', - 'á¼ '=>'i', 'ἡ'=>'i', 'á¼¢'=>'i', 'á¼£'=>'i', 'ἤ'=>'i', 'á¼¥'=>'i', - 'ἦ'=>'i', 'ἧ'=>'i', 'á¾'=>'i', 'ᾑ'=>'i', 'á¾’'=>'i', 'ᾓ'=>'i', - 'á¾”'=>'i', 'ᾕ'=>'i', 'á¾–'=>'i', 'á¾—'=>'i', 'á½´'=>'i', 'á¿‚'=>'i', - 'ῃ'=>'i', 'á¿„'=>'i', 'ῆ'=>'i', 'ῇ'=>'i', 'θ'=>'t', 'ι'=>'i', - 'ί'=>'i', 'ÏŠ'=>'i', 'Î'=>'i', 'á¼°'=>'i', 'á¼±'=>'i', 'á¼²'=>'i', - 'á¼³'=>'i', 'á¼´'=>'i', 'á¼µ'=>'i', 'ἶ'=>'i', 'á¼·'=>'i', 'ὶ'=>'i', - 'á¿'=>'i', 'á¿‘'=>'i', 'á¿’'=>'i', 'á¿–'=>'i', 'á¿—'=>'i', 'κ'=>'k', - 'λ'=>'l', 'μ'=>'m', 'ν'=>'n', 'ξ'=>'k', 'ο'=>'o', 'ÏŒ'=>'o', - 'á½€'=>'o', 'á½'=>'o', 'ὂ'=>'o', 'ὃ'=>'o', 'ὄ'=>'o', 'á½…'=>'o', - 'ὸ'=>'o', 'Ï€'=>'p', 'Ï'=>'r', 'ῤ'=>'r', 'á¿¥'=>'r', 'σ'=>'s', - 'Ï‚'=>'s', 'Ï„'=>'t', 'Ï…'=>'y', 'Ï'=>'y', 'Ï‹'=>'y', 'ΰ'=>'y', - 'á½'=>'y', 'ὑ'=>'y', 'á½’'=>'y', 'ὓ'=>'y', 'á½”'=>'y', 'ὕ'=>'y', - 'á½–'=>'y', 'á½—'=>'y', 'ὺ'=>'y', 'á¿ '=>'y', 'á¿¡'=>'y', 'á¿¢'=>'y', - 'ῦ'=>'y', 'ῧ'=>'y', 'φ'=>'f', 'χ'=>'x', 'ψ'=>'p', 'ω'=>'o', - 'ÏŽ'=>'o', 'á½ '=>'o', 'ὡ'=>'o', 'á½¢'=>'o', 'á½£'=>'o', 'ὤ'=>'o', - 'á½¥'=>'o', 'ὦ'=>'o', 'ὧ'=>'o', 'á¾ '=>'o', 'ᾡ'=>'o', 'á¾¢'=>'o', - 'á¾£'=>'o', 'ᾤ'=>'o', 'á¾¥'=>'o', 'ᾦ'=>'o', 'ᾧ'=>'o', 'á½¼'=>'o', - 'ῲ'=>'o', 'ῳ'=>'o', 'á¿´'=>'o', 'ῶ'=>'o', 'á¿·'=>'o', 'Ð'=>'A', - 'Б'=>'B', 'Ð’'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ð'=>'E', - 'Ж'=>'Z', 'З'=>'Z', 'И'=>'I', 'Й'=>'I', 'К'=>'K', 'Л'=>'L', - 'Ðœ'=>'M', 'Ð'=>'N', 'О'=>'O', 'П'=>'P', 'Р'=>'R', 'С'=>'S', - 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Ð¥'=>'K', 'Ц'=>'T', 'Ч'=>'C', - 'Ш'=>'S', 'Щ'=>'S', 'Ы'=>'Y', 'Э'=>'E', 'Ю'=>'Y', 'Я'=>'Y', - 'а'=>'A', 'б'=>'B', 'в'=>'V', 'г'=>'G', 'д'=>'D', 'е'=>'E', - 'Ñ‘'=>'E', 'ж'=>'Z', 'з'=>'Z', 'и'=>'I', 'й'=>'I', 'к'=>'K', - 'л'=>'L', 'м'=>'M', 'н'=>'N', 'о'=>'O', 'п'=>'P', 'Ñ€'=>'R', - 'Ñ'=>'S', 'Ñ‚'=>'T', 'у'=>'U', 'Ñ„'=>'F', 'Ñ…'=>'K', 'ц'=>'T', - 'ч'=>'C', 'ш'=>'S', 'щ'=>'S', 'Ñ‹'=>'Y', 'Ñ'=>'E', 'ÑŽ'=>'Y', - 'Ñ'=>'Y', 'ð'=>'d', 'Ã'=>'D', 'þ'=>'t', 'Þ'=>'T', 'áƒ'=>'a', - 'ბ'=>'b', 'გ'=>'g', 'დ'=>'d', 'ე'=>'e', 'ვ'=>'v', 'ზ'=>'z', - 'თ'=>'t', 'ი'=>'i', 'კ'=>'k', 'ლ'=>'l', 'მ'=>'m', 'ნ'=>'n', - 'áƒ'=>'o', 'პ'=>'p', 'ჟ'=>'z', 'რ'=>'r', 'ს'=>'s', 'ტ'=>'t', - 'უ'=>'u', 'ფ'=>'p', 'ქ'=>'k', 'ღ'=>'g', 'ყ'=>'q', 'შ'=>'s', - 'ჩ'=>'c', 'ც'=>'t', 'ძ'=>'d', 'წ'=>'t', 'ჭ'=>'c', 'ხ'=>'k', - 'ჯ'=>'j', 'ჰ'=>'h', 'Å£'=>'t', 'ʼ'=>"'", '̧'=>'', 'ḩ'=>'h', - '‘'=>"'", '’'=>"'", 'ừ'=>'u', '/'=>'', 'ế'=>'e', 'ả'=>'a', - 'ị'=>'i', 'ậ'=>'a', 'ệ'=>'e', 'ỉ'=>'i', 'ồ'=>'o', 'á»'=>'e', - 'Æ¡'=>'o', 'ạ'=>'a', 'ẵ'=>'a', 'Æ°'=>'u', 'ằ'=>'a', 'ầ'=>'a', - 'ḑ'=>'d', 'Ḩ'=>'H', 'á¸'=>'D', 'È™'=>'s', 'È›'=>'t', 'á»™'=>'o', - 'ắ'=>'a', 'ÅŸ'=>'s', "'"=>'', 'Õ¸Ö‚'=>'u', 'Õ¡'=>'a', 'Õ¢'=>'b', - 'Õ£'=>'g', 'Õ¤'=>'d', 'Õ¥'=>'e', 'Õ¦'=>'z', 'Õ§'=>'e', 'Õ¨'=>'y', - 'Õ©'=>'t', 'Õª'=>'zh', 'Õ«'=>'i', 'Õ¬'=>'l', 'Õ­'=>'kh', 'Õ®'=>'ts', - 'Õ¯'=>'k', 'Õ°'=>'h', 'Õ±'=>'dz', 'Õ²'=>'gh', 'Õ³'=>'ch', 'Õ´'=>'m', - 'Õµ'=>'y', 'Õ¶'=>'n', 'Õ·'=>'sh', 'Õ¸'=>'o', 'Õ¹'=>'ch', 'Õº'=>'p', - 'Õ»'=>'j', 'Õ¼'=>'r', 'Õ½'=>'s', 'Õ¾'=>'v', 'Õ¿'=>'t', 'Ö€'=>'r', - 'Ö'=>'ts', 'Öƒ'=>'p', 'Ö„'=>'q', 'Ö‡'=>'ev', 'Ö…'=>'o', 'Ö†'=>'f', - ); - $arrayFrom = array_keys($transliterationTable); - $arrayTo = array_values($transliterationTable); - } - - return str_replace($arrayFrom, $arrayTo, $string); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php b/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php deleted file mode 100644 index 6356ebfc..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php +++ /dev/null @@ -1,203 +0,0 @@ - array( - "4539########", - "4539###########", - "4556########", - "4556###########", - "4916########", - "4916###########", - "4532########", - "4532###########", - "4929########", - "4929###########", - "40240071####", - "40240071#######", - "4485########", - "4485###########", - "4716########", - "4716###########", - "4###########", - "4##############" - ), - 'MasterCard' => array( - "2221###########", - "23#############", - "24#############", - "25#############", - "26#############", - "2720###########", - "51#############", - "52#############", - "53#############", - "54#############", - "55#############" - ), - 'American Express' => array( - "34############", - "37############" - ), - 'Discover Card' => array( - "6011###########" - ), - ); - - /** - * @var array list of IBAN formats, source: @link https://www.swift.com/standards/data-standards/iban - */ - protected static $ibanFormats = array( - 'AD' => array(array('n', 4), array('n', 4), array('c', 12)), - 'AE' => array(array('n', 3), array('n', 16)), - 'AL' => array(array('n', 8), array('c', 16)), - 'AT' => array(array('n', 5), array('n', 11)), - 'AZ' => array(array('a', 4), array('c', 20)), - 'BA' => array(array('n', 3), array('n', 3), array('n', 8), array('n', 2)), - 'BE' => array(array('n', 3), array('n', 7), array('n', 2)), - 'BG' => array(array('a', 4), array('n', 4), array('n', 2), array('c', 8)), - 'BH' => array(array('a', 4), array('c', 14)), - 'BR' => array(array('n', 8), array('n', 5), array('n', 10), array('a', 1), array('c', 1)), - 'CH' => array(array('n', 5), array('c', 12)), - 'CR' => array(array('n', 3), array('n', 14)), - 'CY' => array(array('n', 3), array('n', 5), array('c', 16)), - 'CZ' => array(array('n', 4), array('n', 6), array('n', 10)), - 'DE' => array(array('n', 8), array('n', 10)), - 'DK' => array(array('n', 4), array('n', 9), array('n', 1)), - 'DO' => array(array('c', 4), array('n', 20)), - 'EE' => array(array('n', 2), array('n', 2), array('n', 11), array('n', 1)), - 'ES' => array(array('n', 4), array('n', 4), array('n', 1), array('n', 1), array('n', 10)), - 'FI' => array(array('n', 6), array('n', 7), array('n', 1)), - 'FR' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), - 'GB' => array(array('a', 4), array('n', 6), array('n', 8)), - 'GE' => array(array('a', 2), array('n', 16)), - 'GI' => array(array('a', 4), array('c', 15)), - 'GR' => array(array('n', 3), array('n', 4), array('c', 16)), - 'GT' => array(array('c', 4), array('c', 20)), - 'HR' => array(array('n', 7), array('n', 10)), - 'HU' => array(array('n', 3), array('n', 4), array('n', 1), array('n', 15), array('n', 1)), - 'IE' => array(array('a', 4), array('n', 6), array('n', 8)), - 'IL' => array(array('n', 3), array('n', 3), array('n', 13)), - 'IS' => array(array('n', 4), array('n', 2), array('n', 6), array('n', 10)), - 'IT' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), - 'KW' => array(array('a', 4), array('n', 22)), - 'KZ' => array(array('n', 3), array('c', 13)), - 'LB' => array(array('n', 4), array('c', 20)), - 'LI' => array(array('n', 5), array('c', 12)), - 'LT' => array(array('n', 5), array('n', 11)), - 'LU' => array(array('n', 3), array('c', 13)), - 'LV' => array(array('a', 4), array('c', 13)), - 'MC' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), - 'MD' => array(array('c', 2), array('c', 18)), - 'ME' => array(array('n', 3), array('n', 13), array('n', 2)), - 'MK' => array(array('n', 3), array('c', 10), array('n', 2)), - 'MR' => array(array('n', 5), array('n', 5), array('n', 11), array('n', 2)), - 'MT' => array(array('a', 4), array('n', 5), array('c', 18)), - 'MU' => array(array('a', 4), array('n', 2), array('n', 2), array('n', 12), array('n', 3), array('a', 3)), - 'NL' => array(array('a', 4), array('n', 10)), - 'NO' => array(array('n', 4), array('n', 6), array('n', 1)), - 'PK' => array(array('a', 4), array('c', 16)), - 'PL' => array(array('n', 8), array('n', 16)), - 'PS' => array(array('a', 4), array('c', 21)), - 'PT' => array(array('n', 4), array('n', 4), array('n', 11), array('n', 2)), - 'RO' => array(array('a', 4), array('c', 16)), - 'RS' => array(array('n', 3), array('n', 13), array('n', 2)), - 'SA' => array(array('n', 2), array('c', 18)), - 'SE' => array(array('n', 3), array('n', 16), array('n', 1)), - 'SI' => array(array('n', 5), array('n', 8), array('n', 2)), - 'SK' => array(array('n', 4), array('n', 6), array('n', 10)), - 'SM' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), - 'TN' => array(array('n', 2), array('n', 3), array('n', 13), array('n', 2)), - 'TR' => array(array('n', 5), array('n', 1), array('c', 16)), - 'VG' => array(array('a', 4), array('n', 16)), - ); - - /** - * @return string Returns a credit card vendor name - * - * @example 'MasterCard' - */ - public static function creditCardType() - { - return static::randomElement(static::$cardVendors); - } - - /** - * Returns the String of a credit card number. - * - * @param string $type Supporting any of 'Visa', 'MasterCard', 'American Express', and 'Discover' - * @param boolean $formatted Set to true if the output string should contain one separator every 4 digits - * @param string $separator Separator string for formatting card number. Defaults to dash (-). - * @return string - * - * @example '4485480221084675' - */ - public static function creditCardNumber($type = null, $formatted = false, $separator = '-') - { - if (is_null($type)) { - $type = static::creditCardType(); - } - $mask = static::randomElement(static::$cardParams[$type]); - - $number = static::numerify($mask); - $number .= Luhn::computeCheckDigit($number); - - if ($formatted) { - $p1 = substr($number, 0, 4); - $p2 = substr($number, 4, 4); - $p3 = substr($number, 8, 4); - $p4 = substr($number, 12); - $number = $p1 . $separator . $p2 . $separator . $p3 . $separator . $p4; - } - - return $number; - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @return \DateTime - * @example 04/13 - */ - public function creditCardExpirationDate($valid = true) - { - if ($valid) { - return $this->generator->dateTimeBetween('now', '36 months'); - } - - return $this->generator->dateTimeBetween('-36 months', '36 months'); - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @param string $expirationDateFormat - * @return string - * @example '04/13' - */ - public function creditCardExpirationDateString($valid = true, $expirationDateFormat = null) - { - return $this->creditCardExpirationDate($valid)->format(is_null($expirationDateFormat) ? static::$expirationDateFormat : $expirationDateFormat); - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @return array - */ - public function creditCardDetails($valid = true) - { - $type = static::creditCardType(); - - return array( - 'type' => $type, - 'number' => static::creditCardNumber($type), - 'name' => $this->generator->name(), - 'expirationDate' => $this->creditCardExpirationDateString($valid) - ); - } - - /** - * International Bank Account Number (IBAN) - * - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param string $prefix for generating bank account number of a specific bank - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function iban($countryCode, $prefix = '', $length = null) - { - $countryCode = is_null($countryCode) ? self::randomKey(self::$ibanFormats) : strtoupper($countryCode); - - $format = !isset(static::$ibanFormats[$countryCode]) ? null : static::$ibanFormats[$countryCode]; - if ($length === null) { - if ($format === null) { - $length = 24; - } else { - $length = 0; - foreach ($format as $part) { - list($class, $groupCount) = $part; - $length += $groupCount; - } - } - } - if ($format === null) { - $format = array(array('n', $length)); - } - - $expandedFormat = ''; - foreach ($format as $item) { - list($class, $length) = $item; - $expandedFormat .= str_repeat($class, $length); - } - - $result = $prefix; - $expandedFormat = substr($expandedFormat, strlen($result)); - foreach (str_split($expandedFormat) as $class) { - switch ($class) { - default: - case 'c': - $result .= mt_rand(0, 100) <= 50 ? static::randomDigit() : strtoupper(static::randomLetter()); - break; - case 'a': - $result .= strtoupper(static::randomLetter()); - break; - case 'n': - $result .= static::randomDigit(); - break; - } - } - - $checksum = Iban::checksum($countryCode . '00' . $result); - - return $countryCode . $checksum . $result; - } - - /** - * Return the String of a SWIFT/BIC number - * - * @example 'RZTIAT22263' - * @link http://en.wikipedia.org/wiki/ISO_9362 - * @return string Swift/Bic number - */ - public static function swiftBicNumber() - { - return self::regexify("^([A-Z]){4}([A-Z]){2}([0-9A-Z]){2}([0-9A-Z]{3})?$"); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/Person.php deleted file mode 100644 index 9d875b66..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Person.php +++ /dev/null @@ -1,126 +0,0 @@ -generator->parse($format); - } - - /** - * @param string|null $gender 'male', 'female' or null for any - * @return string - * @example 'John' - */ - public function firstName($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::firstNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::firstNameFemale(); - } - - return $this->generator->parse(static::randomElement(static::$firstNameFormat)); - } - - public static function firstNameMale() - { - return static::randomElement(static::$firstNameMale); - } - - public static function firstNameFemale() - { - return static::randomElement(static::$firstNameFemale); - } - - /** - * @example 'Doe' - * @return string - */ - public function lastName() - { - return static::randomElement(static::$lastName); - } - - /** - * @example 'Mrs.' - * @param string|null $gender 'male', 'female' or null for any - * @return string - */ - public function title($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::titleMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::titleFemale(); - } - - return $this->generator->parse(static::randomElement(static::$titleFormat)); - } - - /** - * @example 'Mr.' - */ - public static function titleMale() - { - return static::randomElement(static::$titleMale); - } - - /** - * @example 'Mrs.' - */ - public static function titleFemale() - { - return static::randomElement(static::$titleFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php deleted file mode 100644 index d9d1f6bb..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php +++ /dev/null @@ -1,43 +0,0 @@ -generator->parse(static::randomElement(static::$formats))); - } - - /** - * @example +27113456789 - * @return string - */ - public function e164PhoneNumber() - { - $formats = array('+%############'); - return static::numerify($this->generator->parse(static::randomElement($formats))); - } - - /** - * International Mobile Equipment Identity (IMEI) - * - * @link http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity - * @link http://imei-number.com/imei-validation-check/ - * @example '720084494799532' - * @return int $imei - */ - public function imei() - { - $imei = (string) static::numerify('##############'); - $imei .= Luhn::computeCheckDigit($imei); - return $imei; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/Text.php deleted file mode 100644 index 36fafe35..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Text.php +++ /dev/null @@ -1,141 +0,0 @@ - 5) { - throw new \InvalidArgumentException('indexSize must be at most 5'); - } - - $words = $this->getConsecutiveWords($indexSize); - $result = array(); - $resultLength = 0; - // take a random starting point - $next = static::randomKey($words); - while ($resultLength < $maxNbChars && isset($words[$next])) { - // fetch a random word to append - $word = static::randomElement($words[$next]); - - // calculate next index - $currentWords = static::explode($next); - $currentWords[] = $word; - array_shift($currentWords); - $next = static::implode($currentWords); - - // ensure text starts with an uppercase letter - if ($resultLength == 0 && !static::validStart($word)) { - continue; - } - - // append the element - $result[] = $word; - $resultLength += static::strlen($word) + static::$separatorLen; - } - - // remove the element that caused the text to overflow - array_pop($result); - - // build result - $result = static::implode($result); - - return static::appendEnd($result); - } - - protected function getConsecutiveWords($indexSize) - { - if (!isset($this->consecutiveWords[$indexSize])) { - $parts = $this->getExplodedText(); - $words = array(); - $index = array(); - for ($i = 0; $i < $indexSize; $i++) { - $index[] = array_shift($parts); - } - - for ($i = 0, $count = count($parts); $i < $count; $i++) { - $stringIndex = static::implode($index); - if (!isset($words[$stringIndex])) { - $words[$stringIndex] = array(); - } - $word = $parts[$i]; - $words[$stringIndex][] = $word; - array_shift($index); - $index[] = $word; - } - // cache look up words for performance - $this->consecutiveWords[$indexSize] = $words; - } - - return $this->consecutiveWords[$indexSize]; - } - - protected function getExplodedText() - { - if ($this->explodedText === null) { - $this->explodedText = static::explode(preg_replace('/\s+/u', ' ', static::$baseText)); - } - - return $this->explodedText; - } - - protected static function explode($text) - { - return explode(static::$separator, $text); - } - - protected static function implode($words) - { - return implode(static::$separator, $words); - } - - protected static function strlen($text) - { - return function_exists('mb_strlen') ? mb_strlen($text, 'UTF-8') : strlen($text); - } - - protected static function validStart($word) - { - $isValid = true; - if (static::$textStartsWithUppercase) { - $isValid = preg_match('/^\p{Lu}/u', $word); - } - return $isValid; - } - - protected static function appendEnd($text) - { - return rtrim($text, ',— ').'.'; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php b/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php deleted file mode 100644 index d659f4bb..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php +++ /dev/null @@ -1,165 +0,0 @@ -> 8) | (($tLo & 0xff000000) >> 24); - $tMi = (($tMi & 0x00ff) << 8) | (($tMi & 0xff00) >> 8); - $tHi = (($tHi & 0x00ff) << 8) | (($tHi & 0xff00) >> 8); - } - - // apply version number - $tHi &= 0x0fff; - $tHi |= (3 << 12); - - // cast to string - $uuid = sprintf( - '%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x', - $tLo, - $tMi, - $tHi, - $csHi, - $csLo, - $byte[10], - $byte[11], - $byte[12], - $byte[13], - $byte[14], - $byte[15] - ); - - return $uuid; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php deleted file mode 100644 index 6f4f258d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php +++ /dev/null @@ -1,152 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'wewebit.jo' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php deleted file mode 100644 index 7fcadb3a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php +++ /dev/null @@ -1,108 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'wewebit.jo' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php deleted file mode 100644 index d69b5d62..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php deleted file mode 100644 index e5ec0422..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php +++ /dev/null @@ -1,20 +0,0 @@ -generator->parse($format)); - } - - /** - * Generates valid czech IÄŒO - * - * @see http://phpfashion.com/jak-overit-platne-ic-a-rodne-cislo - * @return string - */ - public function ico() - { - $ico = static::numerify('#######'); - $split = str_split($ico); - $prod = 0; - foreach (array(8, 7, 6, 5, 4, 3, 2) as $i => $p) { - $prod += $p * $split[$i]; - } - $mod = $prod % 11; - if ($mod === 0 || $mod === 10) { - return "{$ico}1"; - } elseif ($mod === 1) { - return "{$ico}0"; - } - - return $ico . (11 - $mod); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php deleted file mode 100644 index 4bd15088..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php +++ /dev/null @@ -1,61 +0,0 @@ -format('w')]; - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '2' - */ - public static function dayOfMonth($max = 'now') - { - return static::dateTime($max)->format('j'); - } - - /** - * Full date with inflected month - * @return string - * @example '16. listopadu 2003' - */ - public function formattedDate() - { - $format = static::randomElement(static::$formattedDateFormat); - - return $this->generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php deleted file mode 100644 index d0d993d4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->boolean() ? static::GENDER_MALE : static::GENDER_FEMALE; - } - - $startTimestamp = strtotime("-${maxAge} year"); - $endTimestamp = strtotime("-${minAge} year"); - $randTimestamp = static::numberBetween($startTimestamp, $endTimestamp); - - $year = intval(date('Y', $randTimestamp)); - $month = intval(date('n', $randTimestamp)); - $day = intval(date('j', $randTimestamp)); - $suffix = static::numberBetween(0, 999); - - // women has +50 to month - if ($gender == static::GENDER_FEMALE) { - $month += 50; - } - // from year 2004 everyone has +20 to month when birth numbers in one day are exhausted - if ($year >= 2004 && $this->generator->boolean(10)) { - $month += 20; - } - - $birthNumber = sprintf('%02d%02d%02d%03d', $year % 100, $month, $day, $suffix); - - // from year 1954 birth number includes CRC - if ($year >= 1954) { - $crc = intval($birthNumber, 10) % 11; - if ($crc == 10) { - $crc = 0; - } - $birthNumber .= sprintf('%d', $crc); - } - - // add slash - if ($this->generator->boolean($slashProbability)) { - $birthNumber = substr($birthNumber, 0, 6) . '/' . substr($birthNumber, 6); - } - - return $birthNumber; - } - - public static function birthNumberMale() - { - return static::birthNumber(static::GENDER_MALE); - } - - public static function birthNumberFemale() - { - return static::birthNumber(static::GENDER_FEMALE); - } - - public function title($gender = null) - { - return static::titleMale(); - } - - /** - * replaced by specific unisex Czech title - */ - public static function titleMale() - { - return static::randomElement(static::$title); - } - - /** - * replaced by specific unisex Czech title - */ - public static function titleFemale() - { - return static::titleMale(); - } - - /** - * @param string|null $gender 'male', 'female' or null for any - * @example 'Albrecht' - */ - public function lastName($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::lastNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::lastNameFemale(); - } - - return $this->generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php deleted file mode 100644 index 49ab429e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php +++ /dev/null @@ -1,14 +0,0 @@ - - */ -class Address extends \Faker\Provider\Address -{ - /** - * @var array Danish city suffixes. - */ - protected static $citySuffix = array( - 'sted', 'bjerg', 'borg', 'rød', 'lund', 'by', - ); - - /** - * @var array Danish street suffixes. - */ - protected static $streetSuffix = array( - 'vej', 'gade', 'skov', 'shaven', - ); - - /** - * @var array Danish street word suffixes. - */ - protected static $streetSuffixWord = array( - 'Vej', 'Gade', 'Allé', 'Boulevard', 'Plads', 'Have', - ); - - /** - * @var array Danish building numbers. - */ - protected static $buildingNumber = array( - '%##', '%#', '%#', '%', '%', '%', '%?', '% ?', - ); - - /** - * @var array Danish building level. - */ - protected static $buildingLevel = array( - 'st.', '%.', '%. sal.', - ); - - /** - * @var array Danish building sides. - */ - protected static $buildingSide = array( - 'tv.', 'th.', - ); - - /** - * @var array Danish zip code. - */ - protected static $postcode = array( - '%###' - ); - - /** - * @var array Danish cities. - */ - protected static $cityNames = array( - 'Aabenraa', 'Aabybro', 'Aakirkeby', 'Aalborg', 'Aalestrup', 'Aars', 'Aarup', 'Agedrup', 'Agerbæk', 'Agerskov', - 'Albertslund', 'Allerød', 'Allinge', 'AllingÃ¥bro', 'Almind', 'Anholt', 'Ansager', 'Arden', 'Asaa', 'Askeby', - 'Asnæs', 'Asperup', 'Assens', 'Augustenborg', 'Aulum', 'Auning', 'Bagenkop', 'Bagsværd', 'Balle', 'Ballerup', - 'Bandholm', 'Barrit', 'Beder', 'Bedsted', 'Bevtoft', 'Billum', 'Billund', 'Bindslev', 'Birkerød', 'Bjerringbro', - 'Bjert', 'Bjæverskov', 'Blokhus', 'Blommenslyst', 'BlÃ¥vand', 'Boeslunde', 'Bogense', 'Bogø', 'Bolderslev', 'Bording', - 'Borre', 'Borup', 'Brøndby', 'Brabrand', 'Bramming', 'Brande', 'Branderup', 'Bredebro', 'Bredsten', 'Brenderup', - 'Broager', 'Broby', 'Brovst', 'Bryrup', 'Brædstrup', 'Strand', 'Brønderslev', 'Brønshøj', 'Brørup', 'Bække', - 'Bækmarksbro', 'Bælum', 'Børkop', 'Bøvlingbjerg', 'Charlottenlund', 'Christiansfeld', 'Dalby', 'Dalmose', - 'Dannemare', 'DaugÃ¥rd', 'Dianalund', 'Dragør', 'Dronninglund', 'Dronningmølle', 'Dybvad', 'DyssegÃ¥rd', 'Ebberup', - 'Ebeltoft', 'Egernsund', 'Egtved', 'EgÃ¥', 'Ejby', 'Ejstrupholm', 'Engesvang', 'Errindlev', 'Erslev', 'Esbjerg', - 'Eskebjerg', 'Eskilstrup', 'Espergærde', 'Faaborg', 'Fanø', 'Farsø', 'Farum', 'Faxe', 'Ladeplads', 'Fejø', - 'Ferritslev', 'Fjenneslev', 'Fjerritslev', 'Flemming', 'Fredensborg', 'Fredericia', 'Frederiksberg', - 'Frederikshavn', 'Frederikssund', 'Frederiksværk', 'Frørup', 'Frøstrup', 'Fuglebjerg', 'Føllenslev', 'Føvling', - 'FÃ¥revejle', 'FÃ¥rup', 'FÃ¥rvang', 'Gadbjerg', 'Gadstrup', 'Galten', 'Gandrup', 'Gedser', 'Gedsted', 'Gedved', 'Gelsted', - 'Gentofte', 'Gesten', 'Gilleleje', 'Gislev', 'Gislinge', 'Gistrup', 'Give', 'Gjerlev', 'Gjern', 'Glamsbjerg', - 'Glejbjerg', 'Glesborg', 'Glostrup', 'Glumsø', 'Gram', 'Gredstedbro', 'Grenaa', 'Greve', 'Grevinge', 'Grindsted', - 'Græsted', 'GrÃ¥sten', 'Gudbjerg', 'Sydfyn', 'Gudhjem', 'Gudme', 'Guldborg', 'Gørding', 'Gørlev', 'Gørløse', - 'Haderslev', 'Haderup', 'Hadsten', 'Hadsund', 'Hals', 'Hammel', 'Hampen', 'Hanstholm', 'Harboøre', 'Harlev', 'Harndrup', - 'Harpelunde', 'Hasle', 'Haslev', 'Hasselager', 'Havdrup', 'Havndal', 'Hedehusene', 'Hedensted', 'Hejls', 'Hejnsvig', - 'Hellebæk', 'Hellerup', 'Helsinge', 'Helsingør', 'Hemmet', 'Henne', 'Herfølge', 'Herlev', 'Herlufmagle', 'Herning', - 'Hesselager', 'Hillerød', 'Hinnerup', 'Hirtshals', 'Hjallerup', 'Hjerm', 'Hjortshøj', 'Hjørring', 'Hobro', 'Holbæk', - 'Holeby', 'Holmegaard', 'Holstebro', 'Holsted', 'Holte', 'Horbelev', 'Hornbæk', 'Hornslet', 'Hornsyld', 'Horsens', - 'Horslunde', 'Hovborg', 'HovedgÃ¥rd', 'Humble', 'Humlebæk', 'Hundested', 'Hundslund', 'Hurup', 'Hvalsø', 'Hvide', - 'Sande', 'Hvidovre', 'Højbjerg', 'Højby', 'Højer', 'Højslev', 'Høng', 'Hørning', 'Hørsholm', 'Hørve', 'HÃ¥rlev', - 'Idestrup', 'Ikast', 'Ishøj', 'Janderup', 'Vestj', 'Jelling', 'Jerslev', 'Sjælland', 'Jerup', 'Jordrup', 'Juelsminde', - 'Jyderup', 'Jyllinge', 'Jystrup', 'Midtsj', 'Jægerspris', 'Kalundborg', 'Kalvehave', 'Karby', 'Karise', 'Karlslunde', - 'Karrebæksminde', 'Karup', 'Kastrup', 'Kerteminde', 'Kettinge', 'Kibæk', 'Kirke', 'Hyllinge', 'SÃ¥by', 'Kjellerup', - 'Klampenborg', 'Klarup', 'Klemensker', 'Klippinge', 'Klovborg', 'Knebel', 'Kokkedal', 'Kolding', 'Kolind', 'Kongens', - 'Lyngby', 'Kongerslev', 'Korsør', 'KrusÃ¥', 'KvistgÃ¥rd', 'Kværndrup', 'København', 'Køge', 'Langebæk', 'Langeskov', - 'LangÃ¥', 'Lejre', 'Lemming', 'Lemvig', 'Lille', 'Skensved', 'Lintrup', 'Liseleje', 'Lundby', 'Lunderskov', 'Lynge', - 'Lystrup', 'Læsø', 'Løgstrup', 'Løgstør', 'Løgumkloster', 'Løkken', 'Løsning', 'LÃ¥sby', 'Malling', 'Mariager', - 'Maribo', 'Marslev', 'Marstal', 'Martofte', 'Melby', 'Mern', 'Mesinge', 'Middelfart', 'Millinge', 'Morud', 'Munke', - 'Bjergby', 'Munkebo', 'Møldrup', 'Mørke', 'Mørkøv', 'MÃ¥løv', 'MÃ¥rslet', 'Nakskov', 'Nexø', 'Nibe', 'Nimtofte', - 'Nordborg', 'Nyborg', 'Nykøbing', 'Nyrup', 'Nysted', 'Nærum', 'Næstved', 'Nørager', 'Nørre', 'Aaby', 'Alslev', - 'Asmindrup', 'Nebel', 'Snede', 'Nørreballe', 'Nørresundby', 'Odder', 'Odense', 'Oksbøl', 'Otterup', 'Oure', 'Outrup', - 'Padborg', 'Pandrup', 'Præstø', 'Randbøl', 'Randers', 'Ranum', 'Rask', 'Mølle', 'Redsted', 'Regstrup', 'Ribe', 'Ringe', - 'Ringkøbing', 'Ringsted', 'Risskov', 'Roskilde', 'Roslev', 'Rude', 'Rudkøbing', 'Ruds', 'Vedby', 'Rungsted', 'Kyst', - 'Rynkeby', 'RyomgÃ¥rd', 'Ryslinge', 'Rødby', 'Rødding', 'Rødekro', 'Rødkærsbro', 'Rødovre', 'Rødvig', 'Stevns', - 'Rønde', 'Rønne', 'Rønnede', 'Rørvig', 'Sabro', 'Sakskøbing', 'Saltum', 'Samsø', 'Sandved', 'Sejerø', 'Silkeborg', - 'Sindal', 'Sjællands', 'Odde', 'Sjølund', 'Skagen', 'Skals', 'Skamby', 'Skanderborg', 'Skibby', 'Skive', 'Skjern', - 'Skodsborg', 'Skovlunde', 'Skælskør', 'Skærbæk', 'Skævinge', 'Skødstrup', 'Skørping', 'SkÃ¥rup', 'Slagelse', - 'Slangerup', 'Smørum', 'Snedsted', 'Snekkersten', 'Snertinge', 'Solbjerg', 'Solrød', 'Sommersted', 'Sorring', 'Sorø', - 'Spentrup', 'Spjald', 'Sporup', 'Spøttrup', 'Stakroge', 'Stege', 'Stenderup', 'Stenlille', 'Stenløse', 'Stenstrup', - 'Stensved', 'Stoholm', 'Jyll', 'Stokkemarke', 'Store', 'Fuglede', 'Heddinge', 'Merløse', 'Storvorde', 'Stouby', - 'Strandby', 'Struer', 'Strøby', 'Stubbekøbing', 'Støvring', 'Suldrup', 'Sulsted', 'Sunds', 'Svaneke', 'Svebølle', - 'Svendborg', 'Svenstrup', 'Svinninge', 'Sydals', 'Sæby', 'Søborg', 'Søby', 'Ærø', 'Søllested', 'Sønder', 'Felding', - 'Sønderborg', 'Søndersø', 'Sørvad', 'Taastrup', 'Tappernøje', 'Tarm', 'Terndrup', 'Them', 'Thisted', 'Thorsø', - 'Thyborøn', 'Thyholm', 'Tikøb', 'Tilst', 'Tinglev', 'Tistrup', 'Tisvildeleje', 'Tjele', 'Tjæreborg', 'Toftlund', - 'Tommerup', 'Toreby', 'Torrig', 'Tranbjerg', 'Tranekær', 'Trige', 'Trustrup', 'Tune', 'Tureby', 'Tylstrup', 'Tølløse', - 'Tønder', 'Tørring', 'TÃ¥rs', 'Ugerløse', 'Uldum', 'Ulfborg', 'Ullerslev', 'Ulstrup', 'Vadum', 'Valby', 'Vallensbæk', - 'Vamdrup', 'Vandel', 'Vanløse', 'Varde', 'Vedbæk', 'Veflinge', 'Vejby', 'Vejen', 'Vejers', 'Vejle', 'Vejstrup', - 'Veksø', 'Vemb', 'Vemmelev', 'Vesløs', 'Vestbjerg', 'Vester', 'Skerninge', 'Vesterborg', 'Vestervig', 'Viborg', 'Viby', - 'Videbæk', 'Vildbjerg', 'Vils', 'Vinderup', 'Vipperød', 'Virum', 'Vissenbjerg', 'Viuf', 'Vodskov', 'Vojens', 'Vonge', - 'Vorbasse', 'Vordingborg', 'Væggerløse', 'Værløse', 'Ærøskøbing', 'Ølgod', 'Ølsted', 'Ølstykke', 'Ørbæk', - 'Ørnhøj', 'Ørsted', 'Djurs', 'Østbirk', 'Øster', 'Assels', 'Ulslev', 'Østermarie', 'ØstervrÃ¥', 'Ã…byhøj', - 'Ã…lbæk', 'Ã…lsgÃ¥rde', 'Ã…rhus', 'Ã…rre', 'Ã…rslev', 'Haarby', 'NivÃ¥', 'Rømø', 'Omme', 'VrÃ¥', 'Ørum', - ); - - /** - * @var array Danish municipalities, called 'kommuner' in danish. - */ - protected static $kommuneNames = array( - 'København', 'Frederiksberg', 'Ballerup', 'Brøndby', 'Dragør', 'Gentofte', 'Gladsaxe', 'Glostrup', 'Herlev', - 'Albertslund', 'Hvidovre', 'Høje Taastrup', 'Lyngby-Taarbæk', 'Rødovre', 'Ishøj', 'TÃ¥rnby', 'Vallensbæk', - 'Allerød', 'Fredensborg', 'Helsingør', 'Hillerød', 'Hørsholm', 'Rudersdal', 'Egedal', 'Frederikssund', 'Greve', - 'Halsnæs', 'Roskilde', 'Solrød', 'Gribskov', 'Odsherred', 'Holbæk', 'Faxe', 'Kalundborg', 'Ringsted', 'Slagelse', - 'Stevns', 'Sorø', 'Lejre', 'Lolland', 'Næstved', 'Guldborgsund', 'Vordingborg', 'Bornholm', 'Middelfart', - 'Christiansø', 'Assens', 'Faaborg-Midtfyn', 'Kerteminde', 'Nyborg', 'Odense', 'Svendborg', 'Nordfyns', 'Langeland', - 'Ærø', 'Haderslev', 'Billund', 'Sønderborg', 'Tønder', 'Esbjerg', 'Fanø', 'Varde', 'Vejen', 'Aabenraa', - 'Fredericia', 'Horsens', 'Kolding', 'Vejle', 'Herning', 'Holstebro', 'Lemvig', 'Struer', 'Syddjurs', 'Furesø', - 'Norddjurs', 'Favrskov', 'Odder', 'Randers', 'Silkeborg', 'Samsø', 'Skanderborg', 'Aarhus', 'Ikast-Brande', - 'Ringkøbing-Skjern', 'Hedensted', 'Morsø', 'Skive', 'Thisted', 'Viborg', 'Brønderslev', 'Frederikshavn', - 'Vesthimmerlands', 'Læsø', 'Rebild', 'Mariagerfjord', 'Jammerbugt', 'Aalborg', 'Hjørring', 'Køge', - ); - - /** - * @var array Danish regions. - */ - protected static $regionNames = array( - 'Region Nordjylland', 'Region Midtjylland', 'Region Syddanmark', 'Region Hovedstaden', 'Region Sjælland', - ); - - /** - * @link https://github.com/umpirsky/country-list/blob/master/country/cldr/da_DK/country.php - * - * @var array Some countries in danish. - */ - protected static $country = array( - 'Andorra', 'Forenede Arabiske Emirater', 'Afghanistan', 'Antigua og Barbuda', 'Anguilla', 'Albanien', 'Armenien', - 'Hollandske Antiller', 'Angola', 'Antarktis', 'Argentina', 'Amerikansk Samoa', 'Østrig', 'Australien', 'Aruba', - 'Ã…land', 'Aserbajdsjan', 'Bosnien-Hercegovina', 'Barbados', 'Bangladesh', 'Belgien', 'Burkina Faso', 'Bulgarien', - 'Bahrain', 'Burundi', 'Benin', 'Saint Barthélemy', 'Bermuda', 'Brunei Darussalam', 'Bolivia', 'Brasilien', 'Bahamas', - 'Bhutan', 'Bouvetø', 'Botswana', 'Hviderusland', 'Belize', 'Canada', 'Cocosøerne', 'Congo-Kinshasa', - 'Centralafrikanske Republik', 'Congo', 'Schweiz', 'Elfenbenskysten', 'Cook-øerne', 'Chile', 'Cameroun', 'Kina', - 'Colombia', 'Costa Rica', 'Serbien og Montenegro', 'Cuba', 'Kap Verde', 'Juleøen', 'Cypern', 'Tjekkiet', 'Tyskland', - 'Djibouti', 'Danmark', 'Dominica', 'Den Dominikanske Republik', 'Algeriet', 'Ecuador', 'Estland', 'Egypten', - 'Vestsahara', 'Eritrea', 'Spanien', 'Etiopien', 'Finland', 'Fiji-øerne', 'Falklandsøerne', - 'Mikronesiens Forenede Stater', 'Færøerne', 'Frankrig', 'Gabon', 'Storbritannien', 'Grenada', 'Georgien', - 'Fransk Guyana', 'Guernsey', 'Ghana', 'Gibraltar', 'Grønland', 'Gambia', 'Guinea', 'Guadeloupe', 'Ækvatorialguinea', - 'Grækenland', 'South Georgia og De Sydlige Sandwichøer', 'Guatemala', 'Guam', 'Guinea-Bissau', 'Guyana', - 'SAR Hongkong', 'Heard- og McDonald-øerne', 'Honduras', 'Kroatien', 'Haiti', 'Ungarn', 'Indonesien', 'Irland', - 'Israel', 'Isle of Man', 'Indien', 'Det Britiske Territorium i Det Indiske Ocean', 'Irak', 'Iran', 'Island', - 'Italien', 'Jersey', 'Jamaica', 'Jordan', 'Japan', 'Kenya', 'Kirgisistan', 'Cambodja', 'Kiribati', 'Comorerne', - 'Saint Kitts og Nevis', 'Nordkorea', 'Sydkorea', 'Kuwait', 'Caymanøerne', 'Kasakhstan', 'Laos', 'Libanon', - 'Saint Lucia', 'Liechtenstein', 'Sri Lanka', 'Liberia', 'Lesotho', 'Litauen', 'Luxembourg', 'Letland', 'Libyen', - 'Marokko', 'Monaco', 'Republikken Moldova', 'Montenegro', 'Saint Martin', 'Madagaskar', 'Marshalløerne', - 'Republikken Makedonien', 'Mali', 'Myanmar', 'Mongoliet', 'SAR Macao', 'Nordmarianerne', 'Martinique', - 'Mauretanien', 'Montserrat', 'Malta', 'Mauritius', 'Maldiverne', 'Malawi', 'Mexico', 'Malaysia', 'Mozambique', - 'Namibia', 'Ny Caledonien', 'Niger', 'Norfolk Island', 'Nigeria', 'Nicaragua', 'Holland', 'Norge', 'Nepal', 'Nauru', - 'Niue', 'New Zealand', 'Oman', 'Panama', 'Peru', 'Fransk Polynesien', 'Papua Ny Guinea', 'Filippinerne', 'Pakistan', - 'Polen', 'Saint Pierre og Miquelon', 'Pitcairn', 'Puerto Rico', 'De palæstinensiske omrÃ¥der', 'Portugal', 'Palau', - 'Paraguay', 'Qatar', 'Reunion', 'Rumænien', 'Serbien', 'Rusland', 'Rwanda', 'Saudi-Arabien', 'Salomonøerne', - 'Seychellerne', 'Sudan', 'Sverige', 'Singapore', 'St. Helena', 'Slovenien', 'Svalbard og Jan Mayen', 'Slovakiet', - 'Sierra Leone', 'San Marino', 'Senegal', 'Somalia', 'Surinam', 'Sao Tome og Principe', 'El Salvador', 'Syrien', - 'Swaziland', 'Turks- og Caicosøerne', 'Tchad', 'Franske Besiddelser i Det Sydlige Indiske Ocean', 'Togo', - 'Thailand', 'Tadsjikistan', 'Tokelau', 'Timor-Leste', 'Turkmenistan', 'Tunesien', 'Tonga', 'Tyrkiet', - 'Trinidad og Tobago', 'Tuvalu', 'Taiwan', 'Tanzania', 'Ukraine', 'Uganda', 'De Mindre Amerikanske Oversøiske Øer', - 'USA', 'Uruguay', 'Usbekistan', 'Vatikanstaten', 'St. Vincent og Grenadinerne', 'Venezuela', - 'De britiske jomfruøer', 'De amerikanske jomfruøer', 'Vietnam', 'Vanuatu', 'Wallis og Futunaøerne', 'Samoa', - 'Yemen', 'Mayotte', 'Sydafrika', 'Zambia', 'Zimbabwe', - ); - - /** - * @var array Danish city format. - */ - protected static $cityFormats = array( - '{{cityName}}', - ); - - /** - * @var array Danish street's name formats. - */ - protected static $streetNameFormats = array( - '{{lastName}}{{streetSuffix}}', - '{{middleName}}{{streetSuffix}}', - '{{lastName}} {{streetSuffixWord}}', - '{{middleName}} {{streetSuffixWord}}', - ); - - /** - * @var array Danish street's address formats. - */ - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}', - '{{streetName}} {{buildingNumber}}, {{buildingLevel}}', - '{{streetName}} {{buildingNumber}}, {{buildingLevel}} {{buildingSide}}', - ); - - /** - * @var array Danish address format. - */ - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Randomly return a real city name. - * - * @return string - */ - public static function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Randomly return a suffix word. - * - * @return string - */ - public static function streetSuffixWord() - { - return static::randomElement(static::$streetSuffixWord); - } - - /** - * Randomly return a building number. - * - * @return string - */ - public static function buildingNumber() - { - return static::toUpper(static::bothify(static::randomElement(static::$buildingNumber))); - } - - /** - * Randomly return a building level. - * - * @return string - */ - public static function buildingLevel() - { - return static::numerify(static::randomElement(static::$buildingLevel)); - } - - /** - * Randomly return a side of the building. - * - * @return string - */ - public static function buildingSide() - { - return static::randomElement(static::$buildingSide); - } - - /** - * Randomly return a real municipality name, called 'kommune' in danish. - * - * @return string - */ - public static function kommune() - { - return static::randomElement(static::$kommuneNames); - } - - /** - * Randomly return a real region name. - * - * @return string - */ - public static function region() - { - return static::randomElement(static::$regionNames); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php deleted file mode 100644 index b9f289cc..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php +++ /dev/null @@ -1,70 +0,0 @@ - - */ -class Company extends \Faker\Provider\Company -{ - /** - * @var array Danish company name formats. - */ - protected static $formats = array( - '{{lastName}} {{companySuffix}}', - '{{lastName}} {{companySuffix}}', - '{{lastName}} {{companySuffix}}', - '{{firstname}} {{lastName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{firstname}} {{middleName}} {{companySuffix}}', - '{{lastName}} & {{lastName}} {{companySuffix}}', - '{{lastName}} og {{lastName}} {{companySuffix}}', - '{{lastName}} & {{lastName}} {{companySuffix}}', - '{{lastName}} og {{lastName}} {{companySuffix}}', - '{{middleName}} & {{middleName}} {{companySuffix}}', - '{{middleName}} og {{middleName}} {{companySuffix}}', - '{{middleName}} & {{lastName}}', - '{{middleName}} og {{lastName}}', - ); - - /** - * @var array Company suffixes. - */ - protected static $companySuffix = array('ApS', 'A/S', 'I/S', 'K/S'); - - /** - * @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60 - * - * @var string CVR number format. - */ - protected static $cvrFormat = '%#######'; - - /** - * @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60 - * - * @var string P number (production number) format. - */ - protected static $pFormat = '%#########'; - - /** - * Generates a CVR number (8 digits). - * - * @return string - */ - public static function cvr() - { - return static::numerify(static::$cvrFormat); - } - - /** - * Generates a P entity number (10 digits). - * - * @return string - */ - public static function p() - { - return static::numerify(static::$pFormat); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php deleted file mode 100644 index 1f778def..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php +++ /dev/null @@ -1,30 +0,0 @@ - - */ -class Internet extends \Faker\Provider\Internet -{ - /** - * @var array Some safe email TLD. - */ - protected static $safeEmailTld = array( - 'org', 'com', 'net', 'dk', 'dk', 'dk', - ); - - /** - * @var array Some email domains in Denmark. - */ - protected static $freeEmailDomain = array( - 'gmail.com', 'yahoo.com', 'yahoo.dk', 'hotmail.com', 'hotmail.dk', 'mail.dk', 'live.dk' - ); - - /** - * @var array Some TLD. - */ - protected static $tld = array( - 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'dk', 'dk', 'dk', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php deleted file mode 100644 index 6a5b6a84..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -class Person extends \Faker\Provider\Person -{ - /** - * @var array Danish person name formats. - */ - protected static $maleNameFormats = array( - '{{firstNameMale}} {{lastName}}', - '{{firstNameMale}} {{lastName}}', - '{{firstNameMale}} {{lastName}}', - '{{firstNameMale}} {{middleName}} {{lastName}}', - '{{firstNameMale}} {{middleName}} {{lastName}}', - '{{firstNameMale}} {{middleName}}-{{middleName}} {{lastName}}', - '{{firstNameMale}} {{middleName}} {{middleName}}-{{lastName}}', - ); - - protected static $femaleNameFormats = array( - '{{firstNameFemale}} {{lastName}}', - '{{firstNameFemale}} {{lastName}}', - '{{firstNameFemale}} {{lastName}}', - '{{firstNameFemale}} {{middleName}} {{lastName}}', - '{{firstNameFemale}} {{middleName}} {{lastName}}', - '{{firstNameFemale}} {{middleName}}-{{middleName}} {{lastName}}', - '{{firstNameFemale}} {{middleName}} {{middleName}}-{{lastName}}', - ); - - /** - * @var array Danish first names. - */ - protected static $firstNameMale = array( - 'Aage', 'Adam', 'Adolf', 'Ahmad', 'Ahmed', 'Aksel', 'Albert', 'Alex', 'Alexander', 'Alf', 'Alfred', 'Ali', 'Allan', - 'Anders', 'Andreas', 'Anker', 'Anton', 'Arne', 'Arnold', 'Arthur', 'Asbjørn', 'Asger', 'August', 'Axel', 'Benjamin', - 'Benny', 'Bent', 'Bernhard', 'Birger', 'Bjarne', 'Bjørn', 'Bo', 'Brian', 'Bruno', 'Børge', 'Carl', 'Carlo', - 'Carsten', 'Casper', 'Charles', 'Chris', 'Christian', 'Christoffer', 'Christopher', 'Claus', 'Dan', 'Daniel', 'David', 'Dennis', - 'Ebbe', 'Edmund', 'Edvard', 'Egon', 'Einar', 'Ejvind', 'Elias', 'Emanuel', 'Emil', 'Erik', 'Erland', 'Erling', - 'Ernst', 'Esben', 'Ferdinand', 'Finn', 'Flemming', 'Frank', 'Freddy', 'Frederik', 'Frits', 'Fritz', 'Frode', 'Georg', - 'Gerhard', 'Gert', 'Gunnar', 'Gustav', 'Hans', 'Harald', 'Harry', 'Hassan', 'Heine', 'Heinrich', 'Helge', 'Helmer', - 'Helmuth', 'Henning', 'Henrik', 'Henry', 'Herman', 'Hermann', 'Holger', 'Hugo', 'Ib', 'Ibrahim', 'Ivan', 'Jack', - 'Jacob', 'Jakob', 'Jan', 'Janne', 'Jens', 'Jeppe', 'Jesper', 'Jimmi', 'Jimmy', 'Joachim', 'Johan', 'Johannes', - 'John', 'Johnny', 'Jon', 'Jonas', 'Jonathan', 'Josef', 'Jul', 'Julius', 'Jørgen', 'Jørn', 'Kai', 'Kaj', - 'Karl', 'Karlo', 'Karsten', 'Kasper', 'Kenneth', 'Kent', 'Kevin', 'Kjeld', 'Klaus', 'Knud', 'Kristian', 'Kristoffer', - 'Kurt', 'Lars', 'Lasse', 'Leif', 'Lennart', 'Leo', 'Leon', 'Louis', 'Lucas', 'Lukas', 'Mads', 'Magnus', - 'Malthe', 'Marc', 'Marcus', 'Marinus', 'Marius', 'Mark', 'Markus', 'Martin', 'Martinus', 'Mathias', 'Max', 'Michael', - 'Mikael', 'Mike', 'Mikkel', 'Mogens', 'Mohamad', 'Mohamed', 'Mohammad', 'Morten', 'Nick', 'Nicklas', 'Nicolai', 'Nicolaj', - 'Niels', 'Niklas', 'Nikolaj', 'Nils', 'Olaf', 'Olav', 'Ole', 'Oliver', 'Oscar', 'Oskar', 'Otto', 'Ove', - 'Palle', 'Patrick', 'Paul', 'Peder', 'Per', 'Peter', 'Philip', 'Poul', 'Preben', 'Rasmus', 'Rene', 'René', - 'Richard', 'Robert', 'Rolf', 'Rudolf', 'Rune', 'Sebastian', 'Sigurd', 'Simon', 'Simone', 'Steen', 'Stefan', 'Steffen', - 'Sten', 'Stig', 'Sune', 'Sven', 'Svend', 'Søren', 'Tage', 'Theodor', 'Thomas', 'Thor', 'Thorvald', 'Tim', - 'Tobias', 'Tom', 'Tommy', 'Tonny', 'Torben', 'Troels', 'Uffe', 'Ulrik', 'Vagn', 'Vagner', 'Valdemar', 'Vang', - 'Verner', 'Victor', 'Viktor', 'Villy', 'Walther', 'Werner', 'Wilhelm', 'William', 'Willy', 'Ã…ge', 'Bendt', 'Bjarke', - 'Chr', 'Eigil', 'Ejgil', 'Ejler', 'Ejnar', 'Ejner', 'Evald', 'Folmer', 'Gunner', 'Gurli', 'Hartvig', 'Herluf', 'Hjalmar', - 'Ingemann', 'Ingolf', 'Ingvard', 'Keld', 'Kresten', 'Laurids', 'Laurits', 'Lauritz', 'Ludvig', 'Lynge', 'Oluf', 'Osvald', - 'Povl', 'Richardt', 'Sigfred', 'Sofus', 'Thorkild', 'Viggo', 'Vilhelm', 'Villiam', - ); - - protected static $firstNameFemale = array( - 'Aase', 'Agathe', 'Agnes', 'Alberte', 'Alexandra', 'Alice', 'Alma', 'Amalie', 'Amanda', 'Andrea', 'Ane', 'Anette', 'Anita', - 'Anja', 'Ann', 'Anna', 'Annalise', 'Anne', 'Anne-Lise', 'Anne-Marie', 'Anne-Mette', 'Annelise', 'Annette', 'Anni', 'Annie', - 'Annika', 'Anny', 'Asta', 'Astrid', 'Augusta', 'Benedikte', 'Bente', 'Berit', 'Bertha', 'Betina', 'Bettina', 'Betty', - 'Birgit', 'Birgitte', 'Birte', 'Birthe', 'Bitten', 'Bodil', 'Britt', 'Britta', 'Camilla', 'Carina', 'Carla', 'Caroline', - 'Cathrine', 'Cecilie', 'Charlotte', 'Christa', 'Christen', 'Christiane', 'Christina', 'Christine', 'Clara', 'Conni', 'Connie', 'Conny', - 'Dagmar', 'Dagny', 'Diana', 'Ditte', 'Dora', 'Doris', 'Dorte', 'Dorthe', 'Ebba', 'Edel', 'Edith', 'Eleonora', - 'Eli', 'Elin', 'Eline', 'Elinor', 'Elisa', 'Elisabeth', 'Elise', 'Ella', 'Ellen', 'Ellinor', 'Elly', 'Elna', - 'Elsa', 'Else', 'Elsebeth', 'Elvira', 'Emilie', 'Emma', 'Emmy', 'Erna', 'Ester', 'Esther', 'Eva', 'Evelyn', - 'Frede', 'Frederikke', 'Freja', 'Frida', 'Gerda', 'Gertrud', 'Gitte', 'Grete', 'Grethe', 'Gudrun', 'Hanna', 'Hanne', - 'Hardy', 'Harriet', 'Hedvig', 'Heidi', 'Helen', 'Helena', 'Helene', 'Helga', 'Helle', 'Henny', 'Henriette', 'Herdis', - 'Hilda', 'Iben', 'Ida', 'Ilse', 'Ina', 'Inga', 'Inge', 'Ingeborg', 'Ingelise', 'Inger', 'Ingrid', 'Irene', - 'Iris', 'Irma', 'Isabella', 'Jane', 'Janni', 'Jannie', 'Jeanette', 'Jeanne', 'Jenny', 'Jes', 'Jette', 'Joan', - 'Johanna', 'Johanne', 'Jonna', 'Josefine', 'Josephine', 'Juliane', 'Julie', 'Jytte', 'Kaja', 'Kamilla', 'Karen', 'Karin', - 'Karina', 'Karla', 'Karoline', 'Kate', 'Kathrine', 'Katja', 'Katrine', 'Ketty', 'Kim', 'Kirsten', 'Kirstine', 'Klara', - 'Krista', 'Kristen', 'Kristina', 'Kristine', 'Laila', 'Laura', 'Laurine', 'Lea', 'Lena', 'Lene', 'Lilian', 'Lilli', - 'Lillian', 'Lilly', 'Linda', 'Line', 'Lis', 'Lisa', 'Lisbet', 'Lisbeth', 'Lise', 'Liselotte', 'Lissi', 'Lissy', - 'Liv', 'Lizzie', 'Lone', 'Lotte', 'Louise', 'Lydia', 'Lykke', 'Lærke', 'Magda', 'Magdalene', 'Mai', 'Maiken', - 'Maj', 'Maja', 'Majbritt', 'Malene', 'Maren', 'Margit', 'Margrethe', 'Maria', 'Mariane', 'Marianne', 'Marie', 'Marlene', - 'Martha', 'Martine', 'Mary', 'Mathilde', 'Matilde', 'Merete', 'Merethe', 'Meta', 'Mette', 'Mia', 'Michelle', 'Mie', - 'Mille', 'Minna', 'Mona', 'Monica', 'Nadia', 'Nancy', 'Nanna', 'Nicoline', 'Nikoline', 'Nina', 'Ninna', 'Oda', - 'Olga', 'Olivia', 'Orla', 'Paula', 'Pauline', 'Pernille', 'Petra', 'Pia', 'Poula', 'Ragnhild', 'Randi', 'Rasmine', - 'Rebecca', 'Rebekka', 'Rigmor', 'Rikke', 'Rita', 'Rosa', 'Rose', 'Ruth', 'Sabrina', 'Sandra', 'Sanne', 'Sara', - 'Sarah', 'Selma', 'Severin', 'Sidsel', 'Signe', 'Sigrid', 'Sine', 'Sofia', 'Sofie', 'Solveig', 'Solvejg', 'Sonja', - 'Sophie', 'Stephanie', 'Stine', 'Susan', 'Susanne', 'Tanja', 'Thea', 'Theodora', 'Therese', 'Thi', 'Thyra', 'Tina', - 'Tine', 'Tove', 'Trine', 'Ulla', 'Vera', 'Vibeke', 'Victoria', 'Viktoria', 'Viola', 'Vita', 'Vivi', 'Vivian', - 'Winnie', 'Yrsa', 'Yvonne', 'Agnete', 'Agnethe', 'Alfrida', 'Alvilda', 'Anine', 'Bolette', 'Dorthea', 'Gunhild', - 'Hansine', 'Inge-Lise', 'Jensine', 'Juel', 'Jørgine', 'Kamma', 'Kristiane', 'Maj-Britt', 'Margrete', 'Metha', 'Nielsine', - 'Oline', 'Petrea', 'Petrine', 'Pouline', 'Ragna', 'Sørine', 'Thora', 'Valborg', 'Vilhelmine', - ); - - /** - * @var array Danish middle names. - */ - protected static $middleName = array( - 'Møller', 'Lund', 'Holm', 'Jensen', 'Juul', 'Nielsen', 'Kjær', 'Hansen', 'Skov', 'Østergaard', 'Vestergaard', - 'Nørgaard', 'Dahl', 'Bach', 'Friis', 'Søndergaard', 'Andersen', 'Bech', 'Pedersen', 'Bruun', 'Nygaard', 'Winther', - 'Bang', 'Krogh', 'Schmidt', 'Christensen', 'Hedegaard', 'Toft', 'Damgaard', 'Holst', 'Sørensen', 'Juhl', 'Munk', - 'Skovgaard', 'Søgaard', 'Aagaard', 'Berg', 'Dam', 'Petersen', 'Lind', 'Overgaard', 'Brandt', 'Larsen', 'Bak', 'Schou', - 'Vinther', 'Bjerregaard', 'Riis', 'Bundgaard', 'Kruse', 'Mølgaard', 'Hjorth', 'Ravn', 'Madsen', 'Rasmussen', - 'Jørgensen', 'Kristensen', 'Bonde', 'Bay', 'Hougaard', 'Dalsgaard', 'Kjærgaard', 'Haugaard', 'Munch', 'Bjerre', 'Due', - 'Sloth', 'Leth', 'Kofoed', 'Thomsen', 'Kragh', 'Højgaard', 'Dalgaard', 'Hjort', 'Kirkegaard', 'Bøgh', 'Beck', 'Nissen', - 'Rask', 'Høj', 'Brix', 'Storm', 'Buch', 'Bisgaard', 'Birch', 'Gade', 'Kjærsgaard', 'Hald', 'Lindberg', 'Høgh', 'Falk', - 'Koch', 'Thorup', 'Borup', 'Knudsen', 'Vedel', 'Poulsen', 'Bøgelund', 'Juel', 'Frost', 'Hvid', 'Bjerg', 'Bæk', 'Elkjær', - 'Hartmann', 'Kirk', 'Sand', 'Sommer', 'Skou', 'Nedergaard', 'Meldgaard', 'Brink', 'Lindegaard', 'Fischer', 'Rye', - 'Hoffmann', 'Daugaard', 'Gram', 'Johansen', 'Meyer', 'Schultz', 'Fogh', 'Bloch', 'Lundgaard', 'Brøndum', 'Jessen', - 'Busk', 'Holmgaard', 'Lindholm', 'Krog', 'Egelund', 'Engelbrecht', 'Buus', 'Korsgaard', 'Ellegaard', 'Tang', 'Steen', - 'Kvist', 'Olsen', 'Nørregaard', 'Fuglsang', 'Wulff', 'Damsgaard', 'Hauge', 'Sonne', 'Skytte', 'Brun', 'Kronborg', - 'Abildgaard', 'Fabricius', 'Bille', 'Skaarup', 'Rahbek', 'Borg', 'Torp', 'Klitgaard', 'Nørskov', 'Greve', 'Hviid', - 'Mørch', 'Buhl', 'Rohde', 'Mørk', 'Vendelbo', 'Bjørn', 'Laursen', 'Egede', 'Rytter', 'Lehmann', 'Guldberg', 'Rosendahl', - 'Krarup', 'Krogsgaard', 'Westergaard', 'Rosendal', 'Fisker', 'Højer', 'Rosenberg', 'Svane', 'Storgaard', 'Pihl', - 'Mohamed', 'Bülow', 'Birk', 'Hammer', 'Bro', 'Kaas', 'Clausen', 'Nymann', 'Egholm', 'Ingemann', 'Haahr', 'Olesen', - 'Nøhr', 'Brinch', 'Bjerring', 'Christiansen', 'Schrøder', 'Guldager', 'Skjødt', 'Højlund', 'Ørum', 'Weber', - 'Bødker', 'Bruhn', 'Stampe', 'Astrup', 'Schack', 'Mikkelsen', 'Høyer', 'Husted', 'Skriver', 'Lindgaard', 'Yde', - 'Sylvest', 'Lykkegaard', 'Ploug', 'Gammelgaard', 'Pilgaard', 'Brogaard', 'Degn', 'Kaae', 'Kofod', 'Grønbæk', - 'Lundsgaard', 'Bagge', 'Lyng', 'Rømer', 'Kjeldgaard', 'Hovgaard', 'Groth', 'Hyldgaard', 'Ladefoged', 'Jacobsen', - 'Linde', 'Lange', 'Stokholm', 'Bredahl', 'Hein', 'Mose', 'Bækgaard', 'Sandberg', 'Klarskov', 'Kamp', 'Green', - 'Iversen', 'Riber', 'Smedegaard', 'Nyholm', 'Vad', 'Balle', 'Kjeldsen', 'Strøm', 'Borch', 'Lerche', 'Grønlund', - 'VestergÃ¥rd', 'ØstergÃ¥rd', 'Nyborg', 'Qvist', 'Damkjær', 'Kold', 'Sønderskov', 'Bank', - ); - - /** - * @var array Danish last names. - */ - protected static $lastName = array( - 'Jensen', 'Nielsen', 'Hansen', 'Pedersen', 'Andersen', 'Christensen', 'Larsen', 'Sørensen', 'Rasmussen', 'Petersen', - 'Jørgensen', 'Madsen', 'Kristensen', 'Olsen', 'Christiansen', 'Thomsen', 'Poulsen', 'Johansen', 'Knudsen', 'Mortensen', - 'Møller', 'Jacobsen', 'Jakobsen', 'Olesen', 'Frederiksen', 'Mikkelsen', 'Henriksen', 'Laursen', 'Lund', 'Schmidt', - 'Eriksen', 'Holm', 'Kristiansen', 'Clausen', 'Simonsen', 'Svendsen', 'Andreasen', 'Iversen', 'Jeppesen', 'Mogensen', - 'Jespersen', 'Nissen', 'Lauridsen', 'Frandsen', 'Østergaard', 'Jepsen', 'Kjær', 'Carlsen', 'Vestergaard', 'Jessen', - 'Nørgaard', 'Dahl', 'Christoffersen', 'Skov', 'Søndergaard', 'Bertelsen', 'Bruun', 'Lassen', 'Bach', 'Gregersen', - 'Friis', 'Johnsen', 'Steffensen', 'Kjeldsen', 'Bech', 'Krogh', 'Lauritsen', 'Danielsen', 'Mathiesen', 'Andresen', - 'Brandt', 'Winther', 'Toft', 'Ravn', 'Mathiasen', 'Dam', 'Holst', 'Nilsson', 'Lind', 'Berg', 'Schou', 'Overgaard', - 'Kristoffersen', 'Schultz', 'Klausen', 'Karlsen', 'Paulsen', 'Hermansen', 'Thorsen', 'Koch', 'Thygesen', 'Bak', 'Kruse', - 'Bang', 'Juhl', 'Davidsen', 'Berthelsen', 'Nygaard', 'Lorentzen', 'Villadsen', 'Lorenzen', 'Damgaard', 'Bjerregaard', - 'Lange', 'Hedegaard', 'Bendtsen', 'Lauritzen', 'Svensson', 'Justesen', 'Juul', 'Hald', 'Beck', 'Kofoed', 'Søgaard', - 'Meyer', 'Kjærgaard', 'Riis', 'Johannsen', 'Carstensen', 'Bonde', 'Ibsen', 'Fischer', 'Andersson', 'Bundgaard', - 'Johannesen', 'Eskildsen', 'Hemmingsen', 'Andreassen', 'Thomassen', 'Schrøder', 'Persson', 'Hjorth', 'Enevoldsen', - 'Nguyen', 'Henningsen', 'Jønsson', 'Olsson', 'Asmussen', 'Michelsen', 'Vinther', 'Markussen', 'Kragh', 'Thøgersen', - 'Johansson', 'Dalsgaard', 'Gade', 'Bjerre', 'Ali', 'Laustsen', 'Buch', 'Ludvigsen', 'Hougaard', 'Kirkegaard', 'Marcussen', - 'Mølgaard', 'Ipsen', 'Sommer', 'Ottosen', 'Müller', 'Krog', 'Hoffmann', 'Clemmensen', 'Nikolajsen', 'Brodersen', - 'Therkildsen', 'Leth', 'Michaelsen', 'Graversen', 'Frost', 'Dalgaard', 'Albertsen', 'Laugesen', 'Due', 'Ebbesen', - 'Munch', 'Svenningsen', 'Ottesen', 'Fisker', 'Albrechtsen', 'Axelsen', 'Erichsen', 'Sloth', 'Bentsen', 'Westergaard', - 'Bisgaard', 'Nicolaisen', 'Magnussen', 'Thuesen', 'Povlsen', 'Thorup', 'Høj', 'Bentzen', 'Johannessen', 'Vilhelmsen', - 'Isaksen', 'Bendixen', 'Ovesen', 'Villumsen', 'Lindberg', 'Thomasen', 'Kjærsgaard', 'Buhl', 'Kofod', 'Ahmed', 'Smith', - 'Storm', 'Christophersen', 'Bruhn', 'Matthiesen', 'Wagner', 'Bjerg', 'Gram', 'Nedergaard', 'Dinesen', 'Mouritsen', - 'Boesen', 'Borup', 'Abrahamsen', 'Wulff', 'Gravesen', 'Rask', 'Pallesen', 'Greve', 'Korsgaard', 'Haugaard', 'Josefsen', - 'Bæk', 'Espersen', 'Thrane', 'Mørch', 'Frank', 'Lynge', 'Rohde', 'Larsson', 'Hammer', 'Torp', 'Sonne', 'Boysen', 'Bay', - 'Pihl', 'Fabricius', 'Høyer', 'Birch', 'Skou', 'Kirk', 'Antonsen', 'Høgh', 'Damsgaard', 'Dall', 'Truelsen', 'Daugaard', - 'Fuglsang', 'Martinsen', 'Therkelsen', 'Jansen', 'Karlsson', 'Caspersen', 'Steen', 'Callesen', 'Balle', 'Bloch', 'Smidt', - 'Rahbek', 'Hjort', 'Bjørn', 'Skaarup', 'Sand', 'Storgaard', 'Willumsen', 'Busk', 'Hartmann', 'Ladefoged', 'Skovgaard', - 'Philipsen', 'Damm', 'Haagensen', 'Hviid', 'Duus', 'Kvist', 'Adamsen', 'Mathiassen', 'Degn', 'Borg', 'Brix', 'Troelsen', - 'Ditlevsen', 'Brøndum', 'Svane', 'Mohamed', 'Birk', 'Brink', 'Hassan', 'Vester', 'Elkjær', 'Lykke', 'Nørregaard', - 'Meldgaard', 'Mørk', 'Hvid', 'Abildgaard', 'Nicolajsen', 'Bengtsson', 'Stokholm', 'Ahmad', 'Wind', 'Rømer', 'Gundersen', - 'Carlsson', 'Grøn', 'Khan', 'Skytte', 'Bagger', 'Hendriksen', 'Rosenberg', 'Jonassen', 'Severinsen', 'Jürgensen', - 'Boisen', 'Groth', 'Bager', 'Fogh', 'Hussain', 'Samuelsen', 'Pilgaard', 'Bødker', 'Dideriksen', 'Brogaard', 'Lundberg', - 'Hansson', 'Schwartz', 'Tran', 'Skriver', 'Klitgaard', 'Hauge', 'Højgaard', 'Qvist', 'Voss', 'Strøm', 'Wolff', 'Krarup', - 'Green', 'Odgaard', 'Tønnesen', 'Blom', 'Gammelgaard', 'Jæger', 'Kramer', 'Astrup', 'Würtz', 'Lehmann', 'Koefoed', - 'Skøtt', 'Lundsgaard', 'Bøgh', 'Vang', 'Martinussen', 'Sandberg', 'Weber', 'Holmgaard', 'Bidstrup', 'Meier', 'Drejer', - 'Schneider', 'Joensen', 'Dupont', 'Lorentsen', 'Bro', 'Bagge', 'Terkelsen', 'Kaspersen', 'Keller', 'Eliasen', 'Lyberth', - 'Husted', 'Mouritzen', 'Krag', 'Kragelund', 'Nørskov', 'Vad', 'Jochumsen', 'Hein', 'Krogsgaard', 'Kaas', 'Tolstrup', - 'Ernst', 'Hermann', 'Børgesen', 'Skjødt', 'Holt', 'Buus', 'Gotfredsen', 'Kjeldgaard', 'Broberg', 'Roed', 'Sivertsen', - 'Bergmann', 'Bjerrum', 'Petersson', 'Smed', 'Jeremiassen', 'Nyborg', 'Borch', 'Foged', 'Terp', 'Mark', 'Busch', - 'Lundgaard', 'Boye', 'Yde', 'Hinrichsen', 'Matzen', 'Esbensen', 'Hertz', 'Westh', 'Holmberg', 'Geertsen', 'Raun', - 'Aagaard', 'Kock', 'Falk', 'Munk', - ); - - /** - * Randomly return a danish name. - * - * @return string - */ - public static function middleName() - { - return static::randomElement(static::$middleName); - } - - /** - * Randomly return a danish CPR number (Personnal identification number) format. - * - * @link http://cpr.dk/cpr/site.aspx?p=16 - * @link http://en.wikipedia.org/wiki/Personal_identification_number_%28Denmark%29 - * - * @return string - */ - public static function cpr() - { - $birthdate = new \DateTime('@' . mt_rand(0, time())); - - return sprintf('%s-%s', $birthdate->format('dmy'), static::numerify('%###')); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php deleted file mode 100644 index af96d3f4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php +++ /dev/null @@ -1,21 +0,0 @@ - - */ -class PhoneNumber extends \Faker\Provider\PhoneNumber -{ - /** - * @var array Danish phonenumber formats. - */ - protected static $formats = array( - '+45 ## ## ## ##', - '+45 #### ####', - '+45########', - '## ## ## ##', - '#### ####', - '########', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php deleted file mode 100644 index 861f6fcd..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php +++ /dev/null @@ -1,116 +0,0 @@ - 'Aargau'), - array('AI' => 'Appenzell Innerrhoden'), - array('AR' => 'Appenzell Ausserrhoden'), - array('BE' => 'Bern'), - array('BL' => 'Basel-Landschaft'), - array('BS' => 'Basel-Stadt'), - array('FR' => 'Freiburg'), - array('GE' => 'Genf'), - array('GL' => 'Glarus'), - array('GR' => 'Graubünden'), - array('JU' => 'Jura',), - array('LU' => 'Luzern'), - array('NE' => 'Neuenburg'), - array('NW' => 'Nidwalden'), - array('OW' => 'Obwalden'), - array('SG' => 'St. Gallen'), - array('SH' => 'Schaffhausen'), - array('SO' => 'Solothurn'), - array('SZ' => 'Schwyz'), - array('TG' => 'Thurgau'), - array('TI' => 'Tessin'), - array('UR' => 'Uri'), - array('VD' => 'Waadt'), - array('VS' => 'Wallis'), - array('ZG' => 'Zug'), - array('ZH' => 'Zürich') - ); - - protected static $country = array( - 'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äusseres Ozeanien', - 'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi', - 'Chile', 'China', 'Cookinseln', 'Costa Rica', 'Côte d’Ivoire', - 'Demokratische Republik Kongo', 'Demokratische Volksrepublik Korea', 'Deutschland', 'Dominica', 'Dominikanische Republik', 'Dschibuti', 'Dänemark', - 'Ecuador', 'El Salvador', 'Eritrea', 'Estland', 'Europäische Union', - 'Falklandinseln', 'Fidschi', 'Finnland', 'Frankreich', 'Französisch-Guayana', 'Französisch-Polynesien', 'Französische Süd- und Antarktisgebiete', 'Färöer', - 'Gabun', 'Gambia', 'Georgien', 'Ghana', 'Gibraltar', 'Grenada', 'Griechenland', 'Grönland', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana', - 'Haiti', 'Heard- und McDonald-Inseln', 'Honduras', - 'Indien', 'Indonesien', 'Irak', 'Iran', 'Irland', 'Island', 'Isle of Man', 'Israel', 'Italien', - 'Jamaika', 'Japan', 'Jemen', 'Jersey', 'Jordanien', - 'Kaimaninseln', 'Kambodscha', 'Kamerun', 'Kanada', 'Kap Verde', 'Kasachstan', 'Katar', 'Kenia', 'Kirgisistan', 'Kiribati', 'Kokosinseln', 'Kolumbien', 'Komoren', 'Kongo', 'Kroatien', 'Kuba', 'Kuwait', - 'Laos', 'Lesotho', 'Lettland', 'Libanon', 'Liberia', 'Libyen', 'Liechtenstein', 'Litauen', 'Luxemburg', - 'Madagaskar', 'Malawi', 'Malaysia', 'Malediven', 'Mali', 'Malta', 'Marokko', 'Marshallinseln', 'Martinique', 'Mauretanien', 'Mauritius', 'Mayotte', 'Mazedonien', 'Mexiko', 'Mikronesien', 'Monaco', 'Mongolei', 'Montenegro', 'Montserrat', 'Mosambik', 'Myanmar', - 'Namibia', 'Nauru', 'Nepal', 'Neukaledonien', 'Neuseeland', 'Nicaragua', 'Niederlande', 'Niederländische Antillen', 'Niger', 'Nigeria', 'Niue', 'Norfolkinsel', 'Norwegen', 'Nördliche Marianen', - 'Oman', 'Osttimor', 'Österreich', - 'Pakistan', 'Palau', 'Palästinensische Gebiete', 'Panama', 'Papua-Neuguinea', 'Paraguay', 'Peru', 'Philippinen', 'Pitcairn', 'Polen', 'Portugal', 'Puerto Rico', - 'Republik Korea', 'Republik Moldau', 'Ruanda', 'Rumänien', 'Russische Föderation', 'Réunion', - 'Salomonen', 'Sambia', 'Samoa', 'San Marino', 'Saudi-Arabien', 'Schweden', 'Schweiz', 'Senegal', 'Serbien', 'Serbien und Montenegro', 'Seychellen', 'Sierra Leone', 'Simbabwe', 'Singapur', 'Slowakei', 'Slowenien', 'Somalia', 'Sonderverwaltungszone Hongkong', 'Sonderverwaltungszone Macao', 'Spanien', 'Sri Lanka', 'St. Barthélemy', 'St. Helena', 'St. Kitts und Nevis', 'St. Lucia', 'St. Martin', 'St. Pierre und Miquelon', 'St. Vincent und die Grenadinen', 'Sudan', 'Suriname', 'Svalbard und Jan Mayen', 'Swasiland', 'Syrien', 'São Tomé und Príncipe', 'Südafrika', 'Südgeorgien und die Südlichen Sandwichinseln', - 'Tadschikistan', 'Taiwan', 'Tansania', 'Thailand', 'Togo', 'Tokelau', 'Tonga', 'Trinidad und Tobago', 'Tschad', 'Tschechische Republik', 'Tunesien', 'Turkmenistan', 'Turks- und Caicosinseln', 'Tuvalu', 'Türkei', - 'Uganda', 'Ukraine', 'Unbekannte oder ungültige Region', 'Ungarn', 'Uruguay', 'Usbekistan', - 'Vanuatu', 'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate', 'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam', - 'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara', - 'Zentralafrikanische Republik', 'Zypern', - ); - - protected static $cityFormats = array( - '{{cityName}}', - ); - - protected static $streetNameFormats = array( - '{{lastName}}{{streetSuffixShort}}', - '{{cityName}}{{streetSuffixShort}}', - '{{firstName}}-{{lastName}}-{{streetSuffixLong}}' - ); - - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Returns a random city name. - * @example Luzern - * @return string - */ - public function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Returns a random street suffix. - * @example str. - * @return string - */ - public function streetSuffixShort() - { - return static::randomElement(static::$streetSuffixShort); - } - - /** - * Returns a random street suffix. - * @example Strasse - * @return string - */ - public function streetSuffixLong() - { - return static::randomElement(static::$streetSuffixLong); - } - - /** - * Returns a canton - * @example array('BE' => 'Bern') - * @return array - */ - public static function canton() - { - return static::randomElement(static::$canton); - } - - /** - * Returns the abbreviation of a canton. - * @return string - */ - public static function cantonShort() - { - $canton = static::canton(); - return key($canton); - } - - /** - * Returns the name of canton. - * @return string - */ - public static function cantonName() - { - $canton = static::canton(); - return current($canton); - } - - public static function buildingNumber() - { - return static::regexify(self::numerify(static::randomElement(static::$buildingNumber))); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php deleted file mode 100644 index 604ec5ae..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php +++ /dev/null @@ -1,15 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - /** - * @example 'ΘεωδωÏόπουλος' - */ - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - /** - * @example 'Κοκκίνου' - */ - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php deleted file mode 100644 index f8cf8b38..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php +++ /dev/null @@ -1,85 +0,0 @@ -generator->parse(static::randomElement(static::$towns)); - } - - public function syllable() - { - return static::randomElement(static::$syllables); - } - - public function direction() - { - return static::randomElement(static::$directions); - } - - public function englishStreetName() - { - return static::randomElement(static::$englishStreetNames); - } - - public function villageSuffix() - { - return static::randomElement(static::$villageSuffixes); - } - - public function estateSuffix() - { - return static::randomElement(static::$estateSuffixes); - } - - public function village() - { - return $this->generator->parse(static::randomElement(static::$villageNameFormats)); - } - - public function estate() - { - return $this->generator->parse(static::randomElement(static::$estateNameFormats)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php deleted file mode 100644 index 4d82d93a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php +++ /dev/null @@ -1,14 +0,0 @@ -generator->parse(static::randomElement(static::$societyNameFormat)); - } - /** - * @example Mumbai - */ - public function city() - { - return static::randomElement(static::$city); - } - /** - * @example Vaishali Nagar - */ - public function locality() - { - return $this->generator->parse(static::randomElement(static::$localityFormats)); - } - /* - * @example Kharadi - */ - public function localityName() - { - return $this->generator->parse(static::randomElement(static::$localityName)); - } - /** - * @example Nagar - */ - public function areaSuffix() - { - return static::randomElement(static::$areaSuffix); - } - - /** - * @example 'Delhi' - */ - public static function state() - { - return static::randomElement(static::$state); - } - - /** - * @example 'DL' - */ - public static function stateAbbr() - { - return static::randomElement(static::$stateAbbr); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php deleted file mode 100644 index 6ec16710..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->parse($format)); - } - - public function fixedLineNumber() - { - $format = static::randomElement(static::$fixedLineNumberFormats); - - return static::numerify($this->generator->parse($format)); - } - - public function voipNumber() - { - $format = static::randomElement(static::$voipNumber); - - return $this->generator->parse($format); - } - - public function internationalCodePrefix() - { - $format = static::randomElement(static::$internationalCodePrefix); - - return $this->generator->parse($format); - } - - public function zeroToEight() - { - return static::randomElement(static::$zeroToEight); - } - - public function oneToNine() - { - return static::randomElement(static::$oneToNine); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php deleted file mode 100644 index eb817e3a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php +++ /dev/null @@ -1,101 +0,0 @@ -generator->parse($format)); - } - - /** - * NPA-format area code - * - * @see https://en.wikipedia.org/wiki/North_American_Numbering_Plan#Numbering_system - * - * @return string - */ - public static function areaCode() - { - $digits[] = self::numberBetween(2, 9); - $digits[] = self::randomDigit(); - $digits[] = self::randomDigitNot($digits[1]); - - return join('', $digits); - } - - /** - * NXX-format central office exchange code - * - * @see https://en.wikipedia.org/wiki/North_American_Numbering_Plan#Numbering_system - * - * @return string - */ - public static function exchangeCode() - { - $digits[] = self::numberBetween(2, 9); - $digits[] = self::randomDigit(); - - if ($digits[1] === 1) { - $digits[] = self::randomDigitNot(1); - } else { - $digits[] = self::randomDigit(); - } - - return join('', $digits); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php deleted file mode 100644 index b3c52582..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php +++ /dev/null @@ -1,3720 +0,0 @@ -format('Y'), - static::randomNumber(6, true), - static::randomElement(static::$legalEntities) - ); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php deleted file mode 100644 index 0c5c5f40..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php +++ /dev/null @@ -1,18 +0,0 @@ -generator->dateTimeThisCentury(); - } - $birthDateString = $birthdate->format('ymd'); - switch (strtolower($gender)) { - case static::GENDER_FEMALE: - $genderDigit = self::numberBetween(0, 4); - break; - case static::GENDER_MALE: - $genderDigit = self::numberBetween(5, 9); - break; - default: - $genderDigit = self::numberBetween(0, 9); - } - $sequenceDigits = str_pad(self::randomNumber(3), 3, 0, STR_PAD_BOTH); - $citizenDigit = ($citizen === true) ? '0' : '1'; - $raceDigit = self::randomNumber(1); - - $partialIdNumber = $birthDateString . $genderDigit . $sequenceDigits . $citizenDigit . $raceDigit; - - return $partialIdNumber . Luhn::computeCheckDigit($partialIdNumber); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php deleted file mode 100644 index 02a364d1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php +++ /dev/null @@ -1,100 +0,0 @@ -generator->parse($format)); - } - - public function tollFreeNumber() - { - $format = static::randomElement(static::$specialFormats); - - return self::numerify($this->generator->parse($format)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php deleted file mode 100644 index 70f503f0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php +++ /dev/null @@ -1,68 +0,0 @@ -numberBetween(10000, 100000000); - } else { - return $id.$this->numberBetween(80000000, 100000000); - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php deleted file mode 100644 index 74caecce..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php +++ /dev/null @@ -1,29 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'کد پستی' - */ - public static function postcodePrefix() - { - return static::randomElement(static::$postcodePrefix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php deleted file mode 100644 index 0de47b35..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php +++ /dev/null @@ -1,57 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'ahmad.ir' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php deleted file mode 100644 index 055b863e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php +++ /dev/null @@ -1,137 +0,0 @@ - 5) { - throw new \InvalidArgumentException('indexSize must be at most 5'); - } - - $words = $this->getConsecutiveWords($indexSize); - $result = array(); - $resultLength = 0; - // take a random starting point - $next = static::randomKey($words); - while ($resultLength < $maxNbChars && isset($words[$next])) { - // fetch a random word to append - $word = static::randomElement($words[$next]); - - // calculate next index - $currentWords = explode(' ', $next); - - $currentWords[] = $word; - array_shift($currentWords); - $next = implode(' ', $currentWords); - - if ($resultLength == 0 && !preg_match('/^[\x{0600}-\x{06FF}]/u', $word)) { - continue; - } - // append the element - $result[] = $word; - $resultLength += strlen($word) + 1; - } - - // remove the element that caused the text to overflow - array_pop($result); - - // build result - $result = implode(' ', $result); - - return $result.'.'; - } - - /** - * License: Creative Commons Attribution-ShareAlike License - * - * Title: مدیر مدرسه - * Author: جلال آل‌احمد - * Language: Persian - * - * @see http://fa.wikisource.org/wiki/%D9%85%D8%AF%DB%8C%D8%B1_%D9%85%D8%AF%D8%B1%D8%B3%D9%87 - * @var string - */ - protected static $baseText = <<<'EOT' -از در Ú©Ù‡ وارد شدم سیگارم دستم بود. زورم آمد سلام کنم. همین طوری دنگم گرÙته بود قد باشم. رئیس Ùرهنگ Ú©Ù‡ اجازه‌ی نشستن داد، نگاهش لحظه‌ای روی دستم Ù…Ú©Ø« کرد Ùˆ بعد چیزی را Ú©Ù‡ می‌نوشت، تمام کرد Ùˆ می‌خواست متوجه من بشود Ú©Ù‡ رونویس Ø­Ú©Ù… را روی میزش گذاشته بودم. حرÙÛŒ نزدیم. رونویس را با کاغذهای ضمیمه‌اش زیر Ùˆ رو کرد Ùˆ بعد غبغب انداخت Ùˆ آرام Ùˆ مثلاً خالی از عصبانیت Ú¯Ùت: - -- جا نداریم آقا. این Ú©Ù‡ نمی‌شه! هر روز یه Ø­Ú©Ù… می‌دند دست یکی می‌Ùرستنش سراغ من... دیروز به آقای مدیر Ú©Ù„... - -حوصله‌ی این اباطیل را نداشتم. حرÙØ´ را بریدم Ú©Ù‡: - -- ممکنه خواهش کنم زیر همین ورقه مرقوم بÙرمایید؟ - -Ùˆ سیگارم را توی زیرسیگاری براق روی میزش تکاندم. روی میز، پاک Ùˆ مرتب بود. درست مثل اتاق همان مهمان‌خانه‌ی تازه‌عروس‌ها. هر چیز به جای خود Ùˆ نه یک ذره گرد. Ùقط خاکستر سیگار من زیادی بود. مثل تÙÛŒ در صورت تازه تراشیده‌ای.... قلم را برداشت Ùˆ زیر Ø­Ú©Ù… چیزی نوشت Ùˆ امضا کرد Ùˆ من از در آمده بودم بیرون. خلاص. تحمل این یکی را نداشتم. با اداهایش. پیدا بود Ú©Ù‡ تازه رئیس شده. زورکی غبغب می‌انداخت Ùˆ حرÙØ´ را آهسته توی چشم آدم می‌زد. انگار برای شنیدنش گوش لازم نیست. صد Ùˆ پنجاه تومان در کارگزینی Ú©Ù„ مایه گذاشته بودم تا این Ø­Ú©Ù… را به امضا رسانده بودم. توصیه هم برده بودم Ùˆ تازه دو ماه هم دویده بودم. مو، لای درزش نمی‌رÙت. می‌دانستم Ú©Ù‡ Ú†Ù‡ او بپذیرد، Ú†Ù‡ نپذیرد، کار تمام است. خودش هم می‌دانست. حتماً هم دستگیرش شد Ú©Ù‡ با این Ù†Ú© Ùˆ نالی Ú©Ù‡ می‌کرد، خودش را کن٠کرده. ولی کاری بود Ùˆ شده بود. در کارگزینی Ú©Ù„ØŒ سÙارش کرده بودند Ú©Ù‡ برای خالی نبودن عریضه رونویس را به رؤیت رئیس Ùرهنگ هم برسانم تازه این طور شد. Ùˆ گر نه بالی Ø­Ú©Ù… کارگزینی Ú©Ù„ Ú†Ù‡ کسی می‌توانست حرÙÛŒ بزند؟ یک وزارت خانه بود Ùˆ یک کارگزینی! شوخی Ú©Ù‡ نبود. ته دلم قرص‌تر از این‌ها بود Ú©Ù‡ محتاج به این استدلال‌ها باشم. اما به نظرم همه‌ی این تقصیرها از این سیگار لعنتی بود Ú©Ù‡ به خیال خودم خواسته بودم خرجش را از محل اضاÙÙ‡ حقوق شغل جدیدم در بیاورم. البته از معلمی، هم اÙقم نشسته بود. ده سال «الÙ.ب.» درس دادن Ùˆ قیاÙه‌های بهت‌زده‌ی بچه‌های مردم برای مزخرÙ‌ترین چرندی Ú©Ù‡ می‌گویی... Ùˆ استغناء با غین Ùˆ استقراء با قا٠و خراسانی Ùˆ هندی Ùˆ قدیمی‌ترین شعر دری Ùˆ صنعت ارسال مثل Ùˆ ردالعجز... Ùˆ از این مزخرÙات! دیدم دارم خر می‌شوم. Ú¯Ùتم مدیر بشوم. مدیر دبستان! دیگر نه درس خواهم داد Ùˆ نه مجبور خواهم بود برای Ùرار از اتلا٠وقت، در امتحان تجدیدی به هر احمق بی‌شعوری Ù‡Ùت بدهم تا ایام آخر تابستانم را Ú©Ù‡ لذیذترین تکه‌ی تعطیلات است، نجات داده باشم. این بود Ú©Ù‡ راه اÙتادم. رÙتم Ùˆ از اهلش پرسیدم. از یک کار چاق Ú©Ù†. دستم را توی دست کارگزینی گذاشت Ùˆ قول Ùˆ قرار Ùˆ طرÙین خوش Ùˆ خرم Ùˆ یک روز هم نشانی مدرسه را دستم دادند Ú©Ù‡ بروم وارسی، Ú©Ù‡ باب میلم هست یا نه. - -Ùˆ رÙتم. مدرسه دو طبقه بود Ùˆ نوساز بود Ùˆ در دامنه‌ی کوه تنها اÙتاده بود Ùˆ Ø¢Ùتاب‌رو بود. یک Ùرهنگ‌دوست خرپول، عمارتش را وسط زمین خودش ساخته بود Ùˆ بیست Ùˆ پنج سال هم در اختیار Ùرهنگ گذاشته بود Ú©Ù‡ مدرسه‌اش کنند Ùˆ رÙت Ùˆ آمد بشود Ùˆ جاده‌ها کوبیده بشود Ùˆ این قدر ازین بشودها بشود، تا دل ننه باباها بسوزد Ùˆ برای این‌که راه بچه‌هاشان را کوتاه بکنند، بیایند همان اطرا٠مدرسه را بخرند Ùˆ خانه بسازند Ùˆ زمین یارو از متری یک عباسی بشود صد تومان. یارو اسمش را هم روی دیوار مدرسه کاشی‌کاری کرده بود. هنوز در Ùˆ همسایه پیدا نکرده بودند Ú©Ù‡ حرÙ‌شان بشود Ùˆ لنگ Ùˆ پاچه‌ی سعدی Ùˆ باباطاهر را بکشند میان Ùˆ یک ورق دیگر از تاریخ‌الشعرا را بکوبند روی نبش دیوار کوچه‌شان. تابلوی مدرسه هم حسابی Ùˆ بزرگ Ùˆ خوانا. از صد متری داد می‌زد Ú©Ù‡ توانا بود هر.... هر Ú†Ù‡ دلتان بخواهد! با شیر Ùˆ خورشیدش Ú©Ù‡ آن بالا سر، سه پا ایستاده بود Ùˆ زورکی تعادل خودش را Ø­Ùظ می‌کرد Ùˆ خورشید خانم روی کولش با ابروهای پیوسته Ùˆ قمچیلی Ú©Ù‡ به دست داشت Ùˆ تا سه تیر پرتاب، اطرا٠مدرسه بیابان بود. درندشت Ùˆ بی آب Ùˆ آبادانی Ùˆ آن ته رو به شمال، ردی٠کاج‌های درهم Ùرو رÙته‌ای Ú©Ù‡ از سر دیوار Ú¯Ù„ÛŒ یک باغ پیدا بود روی آسمان لکه‌ی دراز Ùˆ تیره‌ای زده بود. حتماً تا بیست Ùˆ پنج سال دیگر همه‌ی این اطرا٠پر می‌شد Ùˆ بوق ماشین Ùˆ ونگ ونگ بچه‌ها Ùˆ Ùریاد لبویی Ùˆ زنگ روزنامه‌Ùروشی Ùˆ عربده‌ی Ú¯Ù„ به سر دارم خیار! نان یارو توی روغن بود. - -- راستی شاید متری ده دوازده شاهی بیشتر نخریده باشد؟ شاید هم زمین‌ها را همین جوری به ثبت داده باشد؟ هان؟ - -- احمق به توچه؟!... - -بله این Ùکرها را همان روزی کردم Ú©Ù‡ ناشناس به مدرسه سر زدم Ùˆ آخر سر هم به این نتیجه رسیدم Ú©Ù‡ مردم حق دارند جایی بخوابند Ú©Ù‡ آب زیرشان نرود. - -- تو اگر مردی، عرضه داشته باش مدیر همین مدرسه هم بشو. - -Ùˆ رÙته بودم Ùˆ دنبال کار را گرÙته بودم تا رسیده بودم به این‌جا. همان روز وارسی Ùهمیده بودم Ú©Ù‡ مدیر قبلی مدرسه زندانی است. لابد کله‌اش بوی قرمه‌سبزی می‌داده Ùˆ باز لابد حالا دارد Ú©Ùاره‌ی گناهانی را می‌دهد Ú©Ù‡ یا خودش نکرده یا آهنگری در بلخ کرده. جزو پر قیچی‌های رئیس Ùرهنگ هم کسی نبود Ú©Ù‡ با مدیرشان، اضاÙÙ‡ حقوقی نصیبش بشود Ùˆ ناچار سر Ùˆ دستی برای این کار بشکند. خارج از مرکز هم نداشت. این معلومات را توی کارگزینی به دست آورده بودم. هنوز «گه خوردم نامه‌نویسی» هم مد نشده بود Ú©Ù‡ بگویم یارو به این زودی‌ها از سولدونی در خواهد آمد. Ùکر نمی‌کردم Ú©Ù‡ دیگری هم برای این وسط بیابان دلش Ù„Ú© زده باشد با زمستان سختش Ùˆ با رÙت Ùˆ آمد دشوارش. - -این بود Ú©Ù‡ خیالم راحت بود. از همه‌ی این‌ها گذشته کارگزینی Ú©Ù„ مواÙقت کرده بود! دست است Ú©Ù‡ پیش از بلند شدن بوی اسکناس، آن جا هم دو سه تا عیب شرعی Ùˆ عرÙÛŒ گرÙته بودند Ùˆ مثلاً Ú¯Ùته بودن لابد کاسه‌ای زیر نیم کاسه است Ú©Ù‡ Ùلانی یعنی من، با ده سال سابقه‌ی تدریس، می‌خواهد مدیر دبستان بشود! غرض‌شان این بود Ú©Ù‡ لابد خل شدم Ú©Ù‡ از شغل مهم Ùˆ محترم دبیری دست می‌شویم. ماهی صد Ùˆ پنجاه تومان حق مقام در آن روزها پولی نبود Ú©Ù‡ بتوانم نادیده بگیرم. Ùˆ تازه اگر ندیده می‌گرÙتم چه؟ باز باید بر می‌گشتم به این کلاس‌ها Ùˆ این جور حماقت‌ها. این بود Ú©Ù‡ پیش رئیس Ùرهنگ، صا٠برگشتم به کارگزینی Ú©Ù„ØŒ سراغ آن Ú©Ù‡ بÙهمی Ù†Ùهمی، دلال کارم بود. Ùˆ رونویس Ø­Ú©Ù… را گذاشتم Ùˆ Ú¯Ùتم Ú©Ù‡ Ú†Ù‡ طور شد Ùˆ آمدم بیرون. - -دو روز بعد رÙتم سراغش. معلوم شد Ú©Ù‡ حدسم درست بوده است Ùˆ رئیس Ùرهنگ Ú¯Ùته بوده: «من از این لیسانسه‌های پر اÙاده نمی‌خواهم Ú©Ù‡ سیگار به دست توی هر اتاقی سر می‌کنند.» - -Ùˆ یارو برایش Ú¯Ùته بود Ú©Ù‡ اصلاً وابدا..! Ùلانی همچین Ùˆ همچون است Ùˆ مثقالی Ù‡Ùت صنار با دیگران Ùرق دارد Ùˆ این هندوانه‌ها Ùˆ خیال من راحت باشد Ùˆ پنج‌شنبه یک Ù‡Ùته‌ی دیگر خودم بروم پهلوی او... Ùˆ این کار را کردم. این بار رئیس Ùرهنگ جلوی پایم بلند شد Ú©Ù‡: «ای آقا... چرا اول Ù†Ùرمودید؟!...» Ùˆ از کارمندهایش گله کرد Ùˆ به قول خودش، مرا «در جریان موقعیت محل» گذاشت Ùˆ بعد با ماشین خودش مرا به مدرسه رساند Ùˆ Ú¯Ùت زنگ را زودتر از موعد زدند Ùˆ در حضور معلم‌ها Ùˆ ناظم، نطق غرایی در خصائل مدیر جدید – Ú©Ù‡ من باشم – کرد Ùˆ بعد هم مرا گذاشت Ùˆ رÙت با یک مدرسه‌ی شش کلاسه‌ی «نوبنیاد» Ùˆ یک ناظم Ùˆ Ù‡Ùت تا معلم Ùˆ دویست Ùˆ سی Ùˆ پنج تا شاگرد. دیگر حسابی مدیر مدرسه شده بودم! - -ناظم، جوان رشیدی بود Ú©Ù‡ بلند حر٠می‌زد Ùˆ به راحتی امر Ùˆ نهی می‌کرد Ùˆ بیا Ùˆ برویی داشت Ùˆ با شاگردهای درشت، روی هم ریخته بود Ú©Ù‡ خودشان ترتیب کارها را می‌دادند Ùˆ پیدا بود Ú©Ù‡ به سر خر احتیاجی ندارد Ùˆ بی‌مدیر هم می‌تواند گلیم مدرسه را از آب بکشد. معلم کلاس چهار خیلی گنده بود. دو تای یک آدم حسابی. توی دÙتر، اولین چیزی Ú©Ù‡ به چشم می‌آمد. از آن‌هایی Ú©Ù‡ اگر توی Ú©ÙˆÚ†Ù‡ ببینی، خیال می‌کنی مدیر Ú©Ù„ است. Ù„Ùظ قلم حر٠می‌زد Ùˆ شاید به همین دلیل بود Ú©Ù‡ وقتی رئیس Ùرهنگ رÙت Ùˆ تشریÙات را با خودش برد، از طر٠همکارانش تبریک ورود Ú¯Ùت Ùˆ اشاره کرد به اینکه «ان‌شاءالله زیر سایه‌ی سرکار، سال دیگر کلاس‌های دبیرستان را هم خواهیم داشت.» پیدا بود Ú©Ù‡ این هیکل کم‌کم دارد از سر دبستان زیادی می‌کند! وقتی حر٠می‌زد همه‌اش درین Ùکر بودم Ú©Ù‡ با نان آقا معلمی Ú†Ù‡ طور می‌شد چنین هیکلی به هم زد Ùˆ چنین سر Ùˆ تیپی داشت؟ Ùˆ راستش تصمیم گرÙتم Ú©Ù‡ از Ùردا صبح به صبح ریشم را بتراشم Ùˆ یخه‌ام تمیز باشد Ùˆ اتوی شلوارم تیز. - -معلم کلاس اول باریکه‌ای بود، سیاه سوخته. با ته ریشی Ùˆ سر ماشین کرده‌ای Ùˆ یخه‌ی بسته. بی‌کراوات. شبیه میرزابنویس‌های دم پست‌خانه. حتی نوکر باب می‌نمود. Ùˆ من آن روز نتوانستم بÙهمم وقتی حر٠می‌زند کجا را نگاه می‌کند. با هر جیغ کوتاهی Ú©Ù‡ می‌زد هرهر می‌خندید. با این قضیه نمی‌شد کاری کرد. معلم کلاس سه، یک جوان ترکه‌ای بود؛ بلند Ùˆ با صورت استخوانی Ùˆ ریش از ته تراشیده Ùˆ یخه‌ی بلند آهاردار. مثل ÙرÙره می‌جنبید. چشم‌هایش برق عجیبی می‌زد Ú©Ù‡ Ùقط از هوش نبود، چیزی از ناسلامتی در برق چشم‌هایش بود Ú©Ù‡ مرا واداشت از ناظم بپرسم مبادا مسلول باشد. البته مسلول نبود، تنها بود Ùˆ در دانشگاه درس می‌خواند. کلاس‌های پنجم Ùˆ ششم را دو Ù†Ùر با هم اداره می‌کردند. یکی Ùارسی Ùˆ شرعیات Ùˆ تاریخ، جغراÙÛŒ Ùˆ کاردستی Ùˆ این جور سرگرمی‌ها را می‌گÙت، Ú©Ù‡ جوانکی بود بریانتین زده، با شلوار پاچه تنگ Ùˆ پوشت Ùˆ کراوات زرد Ùˆ پهنی Ú©Ù‡ نعش یک لنگر بزرگ آن را روی سینه‌اش Ù†Ú¯Ù‡ داشته بود Ùˆ دائماً دستش حمایل موهای سرش بود Ùˆ دم به دم توی شیشه‌ها نگاه می‌کرد. Ùˆ آن دیگری Ú©Ù‡ حساب Ùˆ مرابحه Ùˆ چیزهای دیگر می‌گÙت، جوانی بود موقر Ùˆ سنگین مازندرانی به نظر می‌آمد Ùˆ به خودش اطمینان داشت. غیر از این‌ها، یک معلم ورزش هم داشتیم Ú©Ù‡ دو Ù‡Ùته بعد دیدمش Ùˆ اصÙهانی بود Ùˆ از آن قاچاق‌ها. - -رئیس Ùرهنگ Ú©Ù‡ رÙت، گرم Ùˆ نرم از همه‌شان حال Ùˆ احوال پرسیدم. بعد به همه سیگار تعار٠کردم. سراپا همکاری Ùˆ همدردی بود. از کار Ùˆ بار هر کدامشان پرسیدم. Ùقط همان معلم کلاس سه، دانشگاه می‌رÙت. آن Ú©Ù‡ لنگر به سینه انداخته بود، شب‌ها انگلیسی می‌خواند Ú©Ù‡ برود آمریکا. چای Ùˆ بساطی در کار نبود Ùˆ ربع ساعت‌های تÙریح، Ùقط توی دÙتر جمع می‌شدند Ùˆ دوباره از نو. Ùˆ این نمی‌شد. باید همه‌ی سنن را رعایت کرد. دست کردم Ùˆ یک پنج تومانی روی میز گذاشتم Ùˆ قرار شد قبل Ùˆ منقلی تهیه کنند Ùˆ خودشان چای را راه بیندازند. - -بعد از زنگ قرار شد من سر ص٠نطقی بکنم. ناظم قضیه را در دو سه کلمه برای بچه‌ها Ú¯Ùت Ú©Ù‡ من رسیدم Ùˆ همه دست زدند. چیزی نداشتم برایشان بگویم. Ùقط یادم است اشاره‌ای به این کردم Ú©Ù‡ مدیر خیلی دلش می‌خواست یکی از شما را به جای Ùرزند داشته باشد Ùˆ حالا نمی‌داند با این همه Ùرزند Ú†Ù‡ بکند؟! Ú©Ù‡ بی‌صدا خندیدند Ùˆ در میان صÙ‌های عقب یکی Ù¾Ú©ÛŒ زد به خنده. واهمه برم داشت Ú©Ù‡ «نه بابا. کار ساده‌ای هم نیست!» قبلاً Ùکر کرده بودم Ú©Ù‡ می‌روم Ùˆ Ùارغ از دردسر اداره‌ی کلاس، در اتاق را روی خودم می‌بندم Ùˆ کار خودم را می‌کنم. اما حالا می‌دیدم به این سادگی‌ها هم نیست. اگر Ùردا یکی‌شان زد سر اون یکی را شکست، اگر یکی زیر ماشین رÙت؛ اگر یکی از ایوان اÙتاد؛ Ú†Ù‡ خاکی به سرم خواهم ریخت؟ - -حالا من مانده بودم Ùˆ ناظم Ú©Ù‡ چیزی از لای در آهسته خزید تو. کسی بود؛ Ùراش مدرسه با قیاÙه‌ای دهاتی Ùˆ ریش نتراشیده Ùˆ قدی کوتاه Ùˆ گشاد گشاد راه می‌رÙت Ùˆ دست‌هایش را دور از بدن Ù†Ú¯Ù‡ می‌داشت. آمد Ùˆ همان کنار در ایستاد. صا٠توی چشمم نگاه می‌کرد. حال او را هم پرسیدم. هر Ú†Ù‡ بود او هم می‌توانست یک گوشه‌ی این بار را بگیرد. در یک دقیقه همه‌ی درد دل‌هایش را کرد Ùˆ التماس دعاهایش Ú©Ù‡ تمام شد، Ùرستادمش برایم چای درست کند Ùˆ بیاورد. بعد از آن من به ناظم پرداختم. سال پیش، از دانشسرای مقدماتی در آمده بود. یک سال گرمسار Ùˆ کرج کار کرده بود Ùˆ امسال آمده بود این‌جا. پدرش دو تا زن داشته. از اولی دو تا پسر Ú©Ù‡ هر دو تا چاقوکش از آب در آمده‌اند Ùˆ از دومی Ùقط او مانده بود Ú©Ù‡ درس‌خوان شده Ùˆ سرشناس Ùˆ نان مادرش را می‌دهد Ú©Ù‡ مریض است Ùˆ از پدر سال‌هاست Ú©Ù‡ خبری نیست Ùˆ... یک اتاق گرÙته‌اند به پنجاه تومان Ùˆ صد Ùˆ پنجاه تومان حقوق به جایی نمی‌رسد Ùˆ تازه زور Ú©Ù‡ بزند سه سال دیگر می‌تواند از حق ÙÙ†ÛŒ نظامت مدرسه استÙاده کند - -... بعد بلند شدیم Ú©Ù‡ به کلاس‌ها سرکشی کنیم. بعد با ناظم به تک تک کلاس‌ها سر زدیم در این میان من به یاد دوران دبستان خودم اÙتادم. در کلاس ششم را باز کردیم «... ت بی پدرو مادر» جوانک بریانتین زده خورد توی صورت‌مان. یکی از بچه‌ها صورتش مثل چغندر قرمز بود. لابد بزک Ùحش هنوز باقی بود. قرائت Ùارسی داشتند. معلم دستهایش توی جیبش بود Ùˆ سینه‌اش را پیش داده بود Ùˆ زبان به شکایت باز کرد: - -- آقای مدیر! اصلاً دوستی سرشون نمی‌شه. تو سَری می‌خوان. ملاحظه کنید بنده با Ú†Ù‡ صمیمیتی... - -حرÙØ´ را در تشدید «ایت» بریدم Ú©Ù‡: - -- صحیح می‌Ùرمایید. این بار به من ببخشید. - -Ùˆ از در آمدیم بیرون. بعد از آن به اطاقی Ú©Ù‡ در آینده مال من بود سر زدیم. بهتر از این نمی‌شد. بی سر Ùˆ صدا، Ø¢Ùتاب‌رو، دور اÙتاده. - -وسط حیاط، یک حوض بزرگ بود Ùˆ کم‌عمق. تنها قسمت ساختمان بود Ú©Ù‡ رعایت حال بچه‌های قد Ùˆ نیم قد در آن شده بود. دور حیاط دیوار بلندی بود درست مثل دیوار چین. سد مرتÙعی در مقابل Ùرار احتمالی Ùرهنگ Ùˆ ته حیاط مستراح Ùˆ اتاق Ùراش بغلش Ùˆ انبار زغال Ùˆ بعد هم یک کلاس. به مستراح هم سر کشیدیم. همه بی در Ùˆ سق٠و تیغه‌ای میان آن‌ها. نگاهی به ناظم کردم Ú©Ù‡ پا به پایم می‌آمد. Ú¯Ùت: - -- دردسر عجیبی شده آقا. تا حالا صد تا کاغذ به ادارÙردا صبح رÙتم مدرسه. بچه‌ها با صÙ‌هاشان به طر٠کلاس‌ها می‌رÙتند Ùˆ ناظم چوب به دست توی ایوان ایستاده بود Ùˆ توی دÙتر دو تا از معلم‌ها بودند. معلوم شد کار هر روزه‌شان است. ناظم را هم Ùرستادم سر یک کلاس دیگر Ùˆ خودم آمدم دم در مدرسه به قدم زدن؛ Ùکر کردم از هر طر٠که بیایند مرا این ته، دم در مدرسه خواهند دید Ùˆ تمام طول راه در این خجالت خواهند ماند Ùˆ دیگر دیر نخواهند آمد. یک سیاهی از ته جاده‌ی جنوبی پیداشد. جوانک بریانتین زده بود. مسلماً او هم مرا می‌دید، ولی آهسته‌تر از آن می‌آمد Ú©Ù‡ یک معلم تأخیر کرده جلوی مدیرش می‌آمد. جلوتر Ú©Ù‡ آمد حتی شنیدم Ú©Ù‡ سوت می‌زد. اما بی‌انصا٠چنان سلانه سلانه می‌آمد Ú©Ù‡ دیدم هیچ جای گذشت نیست. اصلاً محل سگ به من نمی‌گذاشت. داشتم از کوره در می‌رÙتم Ú©Ù‡ یک مرتبه احساس کردم تغییری در رÙتار خود داد Ùˆ تند کرد. - -به خیر گذشت Ùˆ گرنه خدا عالم است Ú†Ù‡ اتÙاقی می‌اÙتاد. سلام Ú©Ù‡ کرد مثل این Ú©Ù‡ می‌خواست چیزی بگوید Ú©Ù‡ پیش دستی کردم: - -- بÙرمایید آقا. بÙرمایید، بچه‌ها منتظرند. - -واقعاً به خیر گذشت. شاید اتوبوسش دیر کرده. شاید راه‌بندان بوده؛ جاده قرق بوده Ùˆ باز یک گردن‌کلÙتی از اقصای عالم می‌آمده Ú©Ù‡ ازین سÙره‌ی مرتضی علی بی‌نصیب نماند. به هر صورت در دل بخشیدمش. Ú†Ù‡ خوب شد Ú©Ù‡ بد Ùˆ بی‌راهی Ù†Ú¯Ùتی! Ú©Ù‡ از دور علم اÙراشته‌ی هیکل معلم کلاس چهارم نمایان شد. از همان ته مرا دیده بود. تقریباً می‌دوید. تحمل این یکی را نداشتم. «بدکاری می‌کنی. اول بسم‌الله Ùˆ مته به خشخاش!» رÙتم Ùˆ توی دÙتر نشستم Ùˆ خودم را به کاری مشغول کردم Ú©Ù‡ هن هن کنان رسید. چنان عرق از پیشانی‌اش می‌ریخت Ú©Ù‡ راستی خجالت کشیدم. یک لیوان آب از کوه به دستش دادم Ùˆ مسخ‌شده‌ی خنده‌اش را با آب به خوردش دادم Ùˆ بلند Ú©Ù‡ شد برود، Ú¯Ùتم: - -- عوضش دو کیلو لاغر شدید. - -برگشت نگاهی کرد Ùˆ خنده‌ای Ùˆ رÙت. ناگهان ناظم از در وارد شد Ùˆ از را Ù‡ نرسیده Ú¯Ùت: - -- دیدید آقا! این جوری می‌آند مدرسه. اون قرتی Ú©Ù‡ عین خیالش هم نبود آقا! اما این یکی... - -از او پرسیدم: - -- انگار هنوز دو تا از کلاس‌ها ولند؟ - -- بله آقا. کلاس سه ورزش دارند. Ú¯Ùتم بنشینند دیکته بنویسند آقا. معلم حساب پنج Ùˆ شش هم Ú©Ù‡ نیومده آقا. - -در همین حین یکی از عکس‌های بزرگ دخمه‌های هخامنشی را Ú©Ù‡ به دیوار کوبیده بود پس زد Ùˆ: - -- نگاه کنید آقا... - -روی Ú¯Ú† دیوار با مداد قرمز Ùˆ نه چندان درشت، به عجله Ùˆ ناشیانه علامت داس کشیده بودند. همچنین دنبال کرد: - -- از آثار دوره‌ی اوناست آقا. کارشون همین چیزها بود. روزنومه بÙروشند. تبلیغات کنند Ùˆ داس Ú†Ú©Ø´ بکشند آقا. رئیس‌شون رو Ú©Ù‡ گرÙتند Ú†Ù‡ جونی کندم آقا تا حالی‌شون کنم Ú©Ù‡ دست ور دارند آقا. Ùˆ از روی میز پرید پایین. - -- Ú¯Ùتم Ù…Ú¯Ù‡ باز هم هستند؟ - -- آره آقا، پس Ú†ÛŒ! یکی همین آقازاده Ú©Ù‡ هنوز نیومده آقا. هر روز نیم ساعت تأخیر داره آقا. یکی هم مثل کلاس سه. - -- خوب چرا تا حالا پاکش نکردی؟ - -- به! آخه آدم درد دلشو واسه‌ی Ú©ÛŒ بگه؟ آخه آقا در میان تو روی آدم می‌گند جاسوس، مأمور! باهاش حرÙÙ… شده آقا. کتک Ùˆ کتک‌کاری! - -Ùˆ بعد یک سخنرانی Ú©Ù‡ Ú†Ù‡ طور مدرسه را خراب کرده‌اند Ùˆ اعتماد اهل محله را Ú†Ù‡ طور از بین برده‌اند Ú©Ù‡ نه انجمنی، نه Ú©Ù…Ú©ÛŒ به بی‌بضاعت‌ها؛ Ùˆ از این حر٠ها. - -بعد از سخنرانی آقای ناظم دستمالم را دادم Ú©Ù‡ آن عکس‌ها را پاک کند Ùˆ بعد هم راه اÙتادم Ú©Ù‡ بروم سراغ اتاق خودم. در اتاقم را Ú©Ù‡ باز کردم، داشتم دماغم با بوی خاک نم کشیده‌اش اخت می‌کرد Ú©Ù‡ آخرین معلم هم آمد. آمدم توی ایوان Ùˆ با صدای بلند، جوری Ú©Ù‡ در تمام مدرسه بشنوند، ناظم را صدا زدم Ùˆ Ú¯Ùتم با قلم قرمز برای آقا یک ساعت تأخیر بگذارند.ه‌ی ساختمان نوشتیم آقا. می‌گند نمی‌شه پول دولت رو تو ملک دیگرون خرج کرد. - -- Ú¯Ùتم راست می‌گند. - -دیگه کاÙÛŒ بود. آمدیم بیرون. همان توی حیاط تا Ù†Ùسی تازه کنیم وضع مالی Ùˆ بودجه Ùˆ ازین حرÙ‌های مدرسه را پرسیدم. هر اتاق ماهی پانزده ریال حق نظاÙت داشت. لوازم‌التحریر Ùˆ دÙترها را هم اداره‌ی Ùرهنگ می‌داد. ماهی بیست Ùˆ پنج تومان هم برای آب خوردن داشتند Ú©Ù‡ هنوز وصول نشده بود. برای نصب هر بخاری سالی سه تومان. ماهی سی تومان هم تنخواه‌گردان مدرسه بود Ú©Ù‡ مثل پول آب سوخت شده بود Ùˆ حالا هم ماه دوم سال بود. اواخر آبان. حالیش کردم Ú©Ù‡ حوصله‌ی این کارها را ندارم Ùˆ غرضم را از مدیر شدن برایش خلاصه کردم Ùˆ Ú¯Ùتم حاضرم همه‌ی اختیارات را به او بدهم. «اصلاً انگار Ú©Ù‡ هنوز مدیر نیامده.» مهر مدرسه هم پهلوی خودش باشد. البته او را هنوز نمی‌شناختم. شنیده بودم Ú©Ù‡ مدیرها قبلاً ناظم خودشان را انتخاب می‌کنند، اما من نه کسی را سراغ داشتم Ùˆ نه حوصله‌اش را. Ø­Ú©Ù… خودم را هم به زور گرÙته بودم. سنگ‌هامان را وا کندیم Ùˆ به دÙتر رÙتیم Ùˆ چایی را Ú©Ù‡ Ùراش از بساط خانه‌اش درست کرده بود، خوردیم تا زنگ را زدند Ùˆ باز هم زدند Ùˆ من نگاهی به پرونده‌های شاگردها کردم Ú©Ù‡ هر کدام عبارت بود از دو برگ کاغذ. از همین دو سه برگ کاغذ دانستم Ú©Ù‡ اولیای بچه‌ها اغلب زارع Ùˆ باغبان Ùˆ اویارند Ùˆ قبل از این‌که زنگ آخر را بزنند Ùˆ مدرسه تعطیل بشود بیرون آمدم. برای روز اول خیلی زیاد بود. - -Ùردا صبح رÙتم مدرسه. بچه‌ها با صÙ‌هاشان به طر٠کلاس‌ها می‌رÙتند Ùˆ ناظم چوب به دست توی ایوان ایستاده بود Ùˆ توی دÙتر دو تا از معلم‌ها بودند. معلوم شد کار هر روزه‌شان است. ناظم را هم Ùرستادم سر یک کلاس دیگر Ùˆ خودم آمدم دم در مدرسه به قدم زدن؛ Ùکر کردم از هر طر٠که بیایند مرا این ته، دم در مدرسه خواهند دید Ùˆ تمام طول راه در این خجالت خواهند ماند Ùˆ دیگر دیر نخواهند آمد. یک سیاهی از ته جاده‌ی جنوبی پیداشد. جوانک بریانتین زده بود. مسلماً او هم مرا می‌دید، ولی آهسته‌تر از آن می‌آمد Ú©Ù‡ یک معلم تأخیر کرده جلوی مدیرش می‌آمد. جلوتر Ú©Ù‡ آمد حتی شنیدم Ú©Ù‡ سوت می‌زد. اما بی‌انصا٠چنان سلانه سلانه می‌آمد Ú©Ù‡ دیدم هیچ جای گذشت نیست. اصلاً محل سگ به من نمی‌گذاشت. داشتم از کوره در می‌رÙتم Ú©Ù‡ یک مرتبه احساس کردم تغییری در رÙتار خود داد Ùˆ تند کرد. - -به خیر گذشت Ùˆ گرنه خدا عالم است Ú†Ù‡ اتÙاقی می‌اÙتاد. سلام Ú©Ù‡ کرد مثل این Ú©Ù‡ می‌خواست چیزی بگوید Ú©Ù‡ پیش دستی کردم: - -- بÙرمایید آقا. بÙرمایید، بچه‌ها منتظرند. - -واقعاً به خیر گذشت. شاید اتوبوسش دیر کرده. شاید راه‌بندان بوده؛ جاده قرق بوده Ùˆ باز یک گردن‌کلÙتی از اقصای عالم می‌آمده Ú©Ù‡ ازین سÙره‌ی مرتضی علی بی‌نصیب نماند. به هر صورت در دل بخشیدمش. Ú†Ù‡ خوب شد Ú©Ù‡ بد Ùˆ بی‌راهی Ù†Ú¯Ùتی! Ú©Ù‡ از دور علم اÙراشته‌ی هیکل معلم کلاس چهارم نمایان شد. از همان ته مرا دیده بود. تقریباً می‌دوید. تحمل این یکی را نداشتم. «بدکاری می‌کنی. اول بسم‌الله Ùˆ مته به خشخاش!» رÙتم Ùˆ توی دÙتر نشستم Ùˆ خودم را به کاری مشغول کردم Ú©Ù‡ هن هن کنان رسید. چنان عرق از پیشانی‌اش می‌ریخت Ú©Ù‡ راستی خجالت کشیدم. یک لیوان آب از کوه به دستش دادم Ùˆ مسخ‌شده‌ی خنده‌اش را با آب به خوردش دادم Ùˆ بلند Ú©Ù‡ شد برود، Ú¯Ùتم: - -- عوضش دو کیلو لاغر شدید. - -برگشت نگاهی کرد Ùˆ خنده‌ای Ùˆ رÙت. ناگهان ناظم از در وارد شد Ùˆ از را Ù‡ نرسیده Ú¯Ùت: - -- دیدید آقا! این جوری می‌آند مدرسه. اون قرتی Ú©Ù‡ عین خیالش هم نبود آقا! اما این یکی... - -از او پرسیدم: - -- انگار هنوز دو تا از کلاس‌ها ولند؟ - -- بله آقا. کلاس سه ورزش دارند. Ú¯Ùتم بنشینند دیکته بنویسند آقا. معلم حساب پنج Ùˆ شش هم Ú©Ù‡ نیومده آقا. - -در همین حین یکی از عکس‌های بزرگ دخمه‌های هخامنشی را Ú©Ù‡ به دیوار کوبیده بود پس زد Ùˆ: - -- نگاه کنید آقا... - -روی Ú¯Ú† دیوار با مداد قرمز Ùˆ نه چندان درشت، به عجله Ùˆ ناشیانه علامت داس کشیده بودند. همچنین دنبال کرد: - -- از آثار دوره‌ی اوناست آقا. کارشون همین چیزها بود. روزنومه بÙروشند. تبلیغات کنند Ùˆ داس Ú†Ú©Ø´ بکشند آقا. رئیس‌شون رو Ú©Ù‡ گرÙتند Ú†Ù‡ جونی کندم آقا تا حالی‌شون کنم Ú©Ù‡ دست ور دارند آقا. Ùˆ از روی میز پرید پایین. - -- Ú¯Ùتم Ù…Ú¯Ù‡ باز هم هستند؟ - -- آره آقا، پس Ú†ÛŒ! یکی همین آقازاده Ú©Ù‡ هنوز نیومده آقا. هر روز نیم ساعت تأخیر داره آقا. یکی هم مثل کلاس سه. - -- خوب چرا تا حالا پاکش نکردی؟ - -- به! آخه آدم درد دلشو واسه‌ی Ú©ÛŒ بگه؟ آخه آقا در میان تو روی آدم می‌گند جاسوس، مأمور! باهاش حرÙÙ… شده آقا. کتک Ùˆ کتک‌کاری! - -Ùˆ بعد یک سخنرانی Ú©Ù‡ Ú†Ù‡ طور مدرسه را خراب کرده‌اند Ùˆ اعتماد اهل محله را Ú†Ù‡ طور از بین برده‌اند Ú©Ù‡ نه انجمنی، نه Ú©Ù…Ú©ÛŒ به بی‌بضاعت‌ها؛ Ùˆ از این حر٠ها. - -بعد از سخنرانی آقای ناظم دستمالم را دادم Ú©Ù‡ آن عکس‌ها را پاک کند Ùˆ بعد هم راه اÙتادم Ú©Ù‡ بروم سراغ اتاق خودم. در اتاقم را Ú©Ù‡ باز کردم، داشتم دماغم با بوی خاک نم کشیده‌اش اخت می‌کرد Ú©Ù‡ آخرین معلم هم آمد. آمدم توی ایوان Ùˆ با صدای بلند، جوری Ú©Ù‡ در تمام مدرسه بشنوند، ناظم را صدا زدم Ùˆ Ú¯Ùتم با قلم قرمز برای آقا یک ساعت تأخیر بگذارند. - -روز سوم باز اول وقت مدرسه بودم. هنوز از پشت دیوار نپیچیده بودم Ú©Ù‡ صدای سوز Ùˆ بریز بچه‌ها به پیشبازم آمد. تند کردم. پنج تا از بچه‌ها توی ایوان به خودشان می‌پیچیدند Ùˆ ناظم ترکه‌ای به دست داشت Ùˆ به نوبت به ک٠دست‌شان می‌زد. بچه‌ها التماس می‌کردند؛ گریه می‌کردند؛ اما دستشان را هم دراز می‌کردند. نزدیک بود داد بزنم یا با لگد بزنم Ùˆ ناظم را پرت کنم آن طرÙ. پشتش به من بود Ùˆ من را نمی‌دید. ناگهان زمزمه‌ای توی صÙ‌ها اÙتاد Ú©Ù‡ یک مرتبه مرا به صراÙت انداخت Ú©Ù‡ در مقام مدیریت مدرسه، به سختی می‌شود ناظم را کتک زد. این بود Ú©Ù‡ خشمم را Ùرو خوردم Ùˆ آرام از پله‌ها رÙتم بالا. ناظم، تازه متوجه من شده بود در همین حین دخالتم را کردم Ùˆ خواهش کردم این بار همه‌شان را به من ببخشند. - -نمی‌دانم Ú†Ù‡ کار خطایی از آنها سر زده بود Ú©Ù‡ ناظم را تا این حد عصبانی کرده بود. بچه‌ها سکسکه‌کنان رÙتند توی صÙ‌ها Ùˆ بعد زنگ را زدند Ùˆ صÙ‌ها رÙتند به کلاس‌ها Ùˆ دنبالشان هم معلم‌ها Ú©Ù‡ همه سر وقت حاضر بودند. نگاهی به ناظم انداختم Ú©Ù‡ تازه حالش سر جا آمده بود Ùˆ Ú¯Ùتم در آن حالی Ú©Ù‡ داشت، ممکن بود گردن یک کدامشان را بشکند. Ú©Ù‡ مرتبه براق شد: - -- اگه یک روز جلوشونو نگیرید سوارتون می‌شند آقا. نمی‌دونید Ú†Ù‡ قاطرهای چموشی شده‌اند آقا. - -مثل بچه مدرسه‌ای‌ها آقا آقا می‌کرد. موضوع را برگرداندم Ùˆ احوال مادرش را پرسیدم. خنده، صورتش را از هم باز کرد Ùˆ صدا زد Ùراش برایش آب بیاورد. یادم هست آن روز نیم ساعتی برای آقای ناظم صحبت کردم. پیرانه. Ùˆ او جوان بود Ùˆ زود می‌شد رامش کرد. بعد ازش خواستم Ú©Ù‡ ترکه‌ها را بشکند Ùˆ آن وقت من رÙتم سراغ اتاق خودم. - -در همان Ù‡Ùته‌ی اول به کارها وارد شدم. Ùردای زمستان Ùˆ نه تا بخاری زغال سنگی Ùˆ روزی چهار بار آب آوردن Ùˆ آب Ùˆ جاروی اتاق‌ها با یک Ùراش جور در نمی‌آید. یک Ùراش دیگر از اداره ÛŒ Ùرهنگ خواستم Ú©Ù‡ هر روز منتظر ورودش بودیم. بعد از ظهرها را نمی‌رÙتم. روزهای اول با دست Ùˆ دل لرزان، ولی سه چهار روزه جرأت پیدا کردم. احساس می‌کردم Ú©Ù‡ مدرسه زیاد هم محض خاطر من نمی‌گردد. کلاس اول هم یکسره بود Ùˆ به خاطر بچه‌های جغله دلهره‌ای نداشتم. در بیابان‌های اطرا٠مدرسه هم ماشینی آمد Ùˆ رÙت نداشت Ùˆ گرچه پست Ùˆ بلند بود اما به هر صورت از حیاط مدرسه Ú©Ù‡ بزرگ‌تر بود. معلم ها هم، هر بعد از ظهری دو تاشان به نوبت می‌رÙتند یک جوری باهم کنار آمده بودند. Ùˆ ترسی هم از این نبود Ú©Ù‡ بچه‌ها از علم Ùˆ Ùرهنگ ثقل سرد بکنند. یک روز هم بازرس آمد Ùˆ نیم ساعتی پیزر لای پالان هم گذاشتیم Ùˆ چای Ùˆ احترامات متقابل! Ùˆ در دÙتر بازرسی تصدیق کرد Ú©Ù‡ مدرسه «با وجود عدم وسایل» بسیار خوب اداره می‌شود. - -بچه‌ها مدام در مدرسه زمین می‌خوردند، بازی می‌کردند، زمین می‌خوردند. مثل اینکه تاتوله خورده بودند. ساده‌ترین Ø´Ú©Ù„ بازی‌هایشان در ربع ساعت‌های تÙریح، دعوا بود. Ùکر می‌کردم علت این همه زمین خوردن شاید این باشد Ú©Ù‡ بیش‌ترشان Ú©ÙØ´ حسابی ندارند. آن‌ها هم Ú©Ù‡ داشتند، بچه‌ننه بودند Ùˆ بلد نبودند بدوند Ùˆ حتی راه بروند. این بود Ú©Ù‡ روزی دو سه بار، دست Ùˆ پایی خراش بر می‌داشت. پرونده‌ی برق Ùˆ تلÙÙ† مدرسه را از بایگانی بسیار محقر مدرسه بیرون کشیده بودم Ùˆ خوانده بودم. اگر یک خرده می‌دویدی تا دو سه سال دیگر هم برق مدرسه درست می‌شد Ùˆ هم تلÙنش. دوباره سری به اداره ساختمان زدم Ùˆ موضوع را تازه کردم Ùˆ به رÙقایی Ú©Ù‡ دورادور در اداره‌ی برق Ùˆ تلÙÙ† داشتم، یکی دو بار رو انداختم Ú©Ù‡ اول خیال می‌کردند کار خودم را می‌خواهم به اسم مدرسه راه بیندازم Ùˆ ناچار رها کردم. این قدر بود Ú©Ù‡ ادای وظیÙه‌ای می‌کرد. مدرسه آب نداشت. نه آب خوراکی Ùˆ نه آب جاری. با هرزاب بهاره، آب انبار زیر حوض را می‌انباشتند Ú©Ù‡ تلمبه‌ای سرش بود Ùˆ حوض را با همان پر می‌کردند Ùˆ خود بچه‌ها. اما برای آب خوردن دو تا منبع صد لیتری داشتیم از آهن سÙید Ú©Ù‡ مثل امامزاده‌ای یا سقاخانه‌ای دو قلو، روی چهار پایه کنار حیاط بود Ùˆ روزی دو بار پر Ùˆ خالی می‌شد. این آب را از همان باغی می‌آوردیم Ú©Ù‡ ردی٠کاج‌هایش روی آسمان، لکه‌ی دراز سیاه انداخته بود. البته Ùراش می‌آورد. با یک سطل بزرگ Ùˆ یک آب‌پاش Ú©Ù‡ سوراخ بود Ùˆ تا به مدرسه می‌رسید، نص٠شده بود. هر دو را از جیب خودم دادم تعمیر کردند. - -یک روز هم مالک مدرسه آمد. پیرمردی موقر Ùˆ سنگین Ú©Ù‡ خیال می‌کرد برای سرکشی به خانه‌ی مستأجرنشینش آمده. از در وارد نشده Ùریادش بلند شد Ùˆ Ùحش را کشید به Ùراش Ùˆ به Ùرهنگ Ú©Ù‡ چرا بچه‌ها دیوار مدرسه را با زغال سیاه کرده‌اند واز همین توپ Ùˆ تشرش شناختمش. Ú©Ù„ÛŒ با او صحبت کردیم البته او دو برابر سن من را داشت. برایش چای هم آوردیم Ùˆ با معلم‌ها آشنا شد Ùˆ قول‌ها داد Ùˆ رÙت. کنه‌ای بود. درست یک پیرمرد. یک ساعت Ùˆ نیم درست نشست. ماهی یک بار هم این برنامه را داشتند Ú©Ù‡ بایست پیه‌اش را به تن می‌مالیدم. - -اما معلم‌ها. هر کدام یک ابلاغ بیست Ùˆ چهار ساعته در دست داشتند، ولی در برنامه به هر کدام‌شان بیست ساعت درس بیشتر نرسیده بود. Ú©Ù… Ú©Ù… قرار شد Ú©Ù‡ یک معلم از Ùرهنگ بخواهیم Ùˆ به هر کدام‌شان هجده ساعت درس بدهیم، به شرط آن‌که هیچ بعد از ظهری مدرسه تعطیل نباشد. حتی آن Ú©Ù‡ دانشگاه می‌رÙت می‌توانست با Ù‡Ùته‌ای هجده ساعت درس بسازد. Ùˆ دشوارترین کار همین بود Ú©Ù‡ با کدخدامنشی حل شد Ùˆ من یک معلم دیگر از Ùرهنگ خواستم. - -اواخر Ù‡Ùته‌ی دوم، Ùراش جدید آمد. مرد پنجاه ساله‌ای باریک Ùˆ زبر Ùˆ زرنگ Ú©Ù‡ شب‌کلاه می‌گذاشت Ùˆ لباس آبی می‌پوشید Ùˆ تسبیح می‌گرداند Ùˆ از هر کاری سر رشته داشت. آب خوردن را نوبتی می‌آوردند. مدرسه تر Ùˆ تمیز شد Ùˆ رونقی گرÙت. Ùراش جدید سرش توی حساب بود. هر دو مستخدم با هم تمام بخاری‌ها را راه انداختند Ùˆ یک کارگر هم برای Ú©Ù…Ú© به آن‌ها آمد. Ùراش قدیمی را چهار روز پشت سر هم، سر ظهر می‌Ùرستادیم اداره‌ی Ùرهنگ Ùˆ هر آن منتظر زغال بودیم. هنوز یک Ù‡Ùته از آمدن Ùراش جدید نگذشته بود Ú©Ù‡ صدای همه‌ی معلم‌ها در آمده بود. نه به هیچ کدامشان سلام می‌کرد Ùˆ نه به دنبال خرده Ùرمایش‌هایشان می‌رÙت. درست است Ú©Ù‡ به من سلام می‌کرد، اما معلم‌ها هم، لابد هر کدام در حدود من صاحب Ùضایل Ùˆ عنوان Ùˆ معلومات بودند Ú©Ù‡ از یک Ùراش مدرسه توقع سلام داشته باشند. اما انگار نه انگار. - -بدتر از همه این Ú©Ù‡ سر خر معلم‌ها بود. من Ú©Ù‡ از همان اول، خرجم را سوا کرده بودم Ùˆ آن‌ها را آزاد گذاشته بودم Ú©Ù‡ در مواقع بیکاری در دÙتر را روی خودشان ببندند Ùˆ هر Ú†Ù‡ می‌خواهند بگویند Ùˆ هر کاری می‌خواهند بکنند. اما او در Ùاصله‌ی ساعات درس، همچه Ú©Ù‡ معلم‌ها می‌آمدند، می‌آمد توی دÙتر Ùˆ همین طوری گوشه‌ی اتاق می‌ایستاد Ùˆ معلم‌ها کلاÙÙ‡ می‌شدند. نه می‌توانستند شلکلک‌های معلمی‌شان را در حضور او کنار بگذارند Ùˆ نه جرأت می‌کردند به او چیزی بگویند. بدزبان بود Ùˆ از عهده‌ی همه‌شان بر می‌آمد. یکی دوبار دنبال نخود سیاه Ùرستاده بودندش. اما زرنگ بود Ùˆ Ùوری کار را انجام می‌داد Ùˆ بر می‌گشت. حسابی موی دماغ شده بود. ده سال تجربه این حداقل را به من آموخته بود Ú©Ù‡ اگر معلم‌ها در ربع ساعت‌های تÙریح نتوانند بخندند، سر کلاس، بچه‌های مردم را کتک خواهند زد. این بود Ú©Ù‡ دخالت کردم. یک روز Ùراش جدید را صدا زدم. اول حال Ùˆ احوالپرسی Ùˆ بعد چند سال سابقه دارد Ùˆ چند تا بچه Ùˆ Ú†Ù‡ قدر می‌گیرد... Ú©Ù‡ قضیه حل شد. سی صد Ùˆ خرده‌ای حقوق می‌گرÙت. با بیست Ùˆ پنج سال سابقه. کار از همین جا خراب بود. پیدا بود Ú©Ù‡ معلم‌ها حق دارند او را غریبه بدانند. نه دیپلمی، نه کاغذپاره‌ای، هر Ú†Ù‡ باشد یک Ùراش Ú©Ù‡ بیشتر نبود! Ùˆ تازه قلدر هم بود Ùˆ حق هم داشت. اول به اشاره Ùˆ کنایه Ùˆ بعد با صراحت بهش Ùهماندم Ú©Ù‡ گر Ú†Ù‡ معلم جماعت اجر دنیایی ندارد، اما از او Ú©Ù‡ آدم متدین Ùˆ Ùهمیده‌ای است بعید است Ùˆ از این حرÙ‌ها... Ú©Ù‡ یک مرتبه پرید توی حرÙÙ… Ú©Ù‡: - -- ای آقا! Ú†Ù‡ می‌Ùرمایید؟ شما نه خودتون این کاره‌اید Ùˆ نه اینارو می‌شناسید. امروز می‌خواند سیگار براشون بخرم، Ùردا می‌Ùرستنم سراغ عرق. من این‌ها رو می‌شناسم. - -راست می‌گÙت. زودتر از همه، او دندان‌های مرا شمرده بود. Ùهمیده بود Ú©Ù‡ در مدرسه هیچ‌کاره‌ام. می‌خواستم کوتاه بیایم، ولی مدیر مدرسه بودن Ùˆ در مقابل یک Ùراش پررو ساکت ماندن!... Ú©Ù‡ خر خر کامیون زغال به دادم رسید. ترمز Ú©Ù‡ کرد Ùˆ صدا خوابید Ú¯Ùتم: - -- این حرÙ‌ها قباحت داره. معلم جماعت کجا پولش به عرق می‌رسه؟ حالا بدو زغال آورده‌اند. - -Ùˆ همین طور Ú©Ù‡ داشت بیرون می‌رÙت، اÙزودم: - -- دو روز دیگه Ú©Ù‡ محتاجت شدند Ùˆ ازت قرض خواستند با هم رÙیق می‌شید. - -Ùˆ آمدم توی ایوان. در بزرگ آهنی مدرسه را باز کرده بودند Ùˆ کامیون آمده بود تو Ùˆ داشتند بارش را جلوی انبار ته حیاط خالی می‌کردند Ùˆ راننده، کاغذی به دست ناظم داد Ú©Ù‡ نگاهی به آن انداخت Ùˆ مرا نشان داد Ú©Ù‡ در ایوان بالا ایستاده بودم Ùˆ Ùرستادش بالا. کاغذش را با سلام به دستم داد. بیجک زغال بود. رسید رسمی اداره‌ی Ùرهنگ بود در سه نسخه Ùˆ روی آن ورقه‌ی ماشین شده‌ی «باسکول» Ú©Ù‡ می‌گÙت کامیون Ùˆ محتویاتش جمعاً دوازده خروار است. اما رسیدهای رسمی اداری Ùرهنگ ساکت بودند. جای مقدار زغالی Ú©Ù‡ تحویل مدرسه داده شده بود، در هر سه نسخه خالی بود. پیدا بود Ú©Ù‡ تحویل گیرنده باید پرشان کند. همین کار را کردم. اوراق را بردم توی اتاق Ùˆ با خودنویسم عدد را روی هر سه ورق نوشتم Ùˆ امضا کردم Ùˆ به دست راننده دادم Ú©Ù‡ راه اÙتاد Ùˆ از همان بالا به ناظم Ú¯Ùتم: - -- اگر مهر هم بایست زد، خودت بزن بابا. - -Ùˆ رÙتم سراغ کارم Ú©Ù‡ ناگهان در باز شد Ùˆ ناظم آمد تو؛ بیجک زغال دستش بود Ùˆ: - -- Ù…Ú¯Ù‡ Ù†Ùهمیدین آقا؟ مخصوصاً جاش رو خالی گذاشته بودند آقا... - -Ù†Ùهمیده بودم. اما اگر هم Ùهمیده بودم، Ùرقی نمی‌کرد Ùˆ به هر صورت از چنین کودنی نا به هنگام از جا در رÙتم Ùˆ به شدت Ú¯Ùتم: - -- خوب؟ - -- هیچ Ú†ÛŒ آقا.... رسم‌شون همینه آقا. اگه باهاشون کنار نیایید کارمونو لنگ می‌گذارند آقا... - -Ú©Ù‡ از جا در رÙتم. به چنین صراحتی مرا Ú©Ù‡ مدیر مدرسه بودم در معامله شرکت می‌داد. Ùˆ Ùریاد زدم: - -- عجب! حالا سرکار برای من تکلی٠هم معین می‌کنید؟... خاک بر سر این Ùرهنگ با مدیرش Ú©Ù‡ من باشم! برو ورقه رو بده دست‌شون، گورشون رو Ú¯Ù… کنند. پدر سوخته‌ها... - -چنان Ùریاد زده بودم Ú©Ù‡ هیچ کس در مدرسه انتظار نداشت. مدیر سر به زیر Ùˆ پا به راهی بودم Ú©Ù‡ از همه خواهش می‌کردم Ùˆ حالا ناظم مدرسه، داشت به من یاد می‌داد Ú©Ù‡ به جای نه خروار زغال مثلا هجده خروار تحویل بگیرم Ùˆ بعد با اداره‌ی Ùرهنگ کنار بیایم. Ù‡ÛŒ Ù‡ÛŒ!.... تا ظهر هیچ کاری نتوانستم بکنم، جز این‌که چند بار متن استعÙانامه‌ام را بنویسم Ùˆ پاره کنم... قدم اول را این جور جلوی پای آدم می‌گذارند. - -بارندگی Ú©Ù‡ شروع شد دستور دادم بخاری‌ها را از Ù‡Ùت صبح بسوزانند. بچه‌ها همیشه زود می‌آمدند. حتی روزهای بارانی. مثل این‌که اول Ø¢Ùتاب از خانه بیرون‌شان می‌کنند. یا ناهارنخورده. خیلی سعی کردم یک روز زودتر از بچه‌ها مدرسه باشم. اما عاقبت نشد Ú©Ù‡ مدرسه را خالی از Ù†Ùس٠به علم‌آلوده‌ی بچه‌ها استنشاق کنم. از راه Ú©Ù‡ می‌رسیدند دور بخاری جمع می‌شدند Ùˆ گیوه‌هاشان را خشک می‌کردند. Ùˆ خیلی زود Ùهمیدم Ú©Ù‡ ظهر در مدرسه ماندن هم مسأله Ú©ÙØ´ بود. هر Ú©Ù‡ داشت نمی‌ماند.این قاعده در مورد معلم‌ها هم صدق می‌کرد اقلاً یک پول واکس جلو بودند. وقتی Ú©Ù‡ باران می‌بارید تمام کوهپایه Ùˆ بدتر از آن تمام حیاط مدرسه Ú¯Ù„ می‌شد. بازی Ùˆ دویدن متوق٠شده بود. مدرسه سوت Ùˆ کور بود. این جا هم مسأله Ú©ÙØ´ بود. چشم اغلبشان هم قرمز بود. پیدا بود باز آن روز صبح یک Ùصل گریه کرده‌اند Ùˆ در خانه‌شان علم صراطی بوده است. - -مدرسه داشت تخته می‌شد. عده‌ی غایب‌های صبح ده برابر شده بود Ùˆ ساعت اول هیچ معلمی نمی‌توانست درس بدهد. دست‌های ورم‌کرده Ùˆ سرمازده کار نمی‌کرد. حتی معلم کلاس اولمان هم می‌دانست Ú©Ù‡ Ùرهنگ Ùˆ معلومات مدارس ما صرÙاً تابع تمرین است. مشق Ùˆ تمرین. ده بار بیست بار. دست یخ‌کرده بیل Ùˆ رنده را هم نمی‌تواند به کار بگیرد Ú©Ù‡ خیلی هم زمخت‌اند Ùˆ دست پر Ú©Ù†. این بود Ú©Ù‡ به Ùکر اÙتادیم. Ùراش جدید واردتر از همه‌ی ما بود. یک روز در اتاق دÙتر، شورامانندی داشتیم Ú©Ù‡ البته او هم بود. خودش را کم‌کم تحمیل کرده بود. Ú¯Ùت حاضر است یکی از دÙم‌کلÙت‌های همسایه‌ی مدرسه را وادارد Ú©Ù‡ شن برایمان بÙرستد به شرط آن Ú©Ù‡ ما هم برویم Ùˆ از انجمن محلی برای بچه‌ها Ú©ÙØ´ Ùˆ لباس بخواهیم. قرار شد خودش قضیه را دنبال کند Ú©Ù‡ Ù‡Ùته‌ی آینده جلسه‌شان کجاست Ùˆ حتی بخواهد Ú©Ù‡ دعوت‌مانندی از ما بکنند. دو روز بعد سه تا کامیون شن آمد. دوتایش را توی حیاط مدرسه، خالی کردیم Ùˆ سومی را دم در مدرسه، Ùˆ خود بچه‌ها نیم ساعته پهنش کردند. با پا Ùˆ بیل Ùˆ هر Ú†Ù‡ Ú©Ù‡ به دست می‌رسید. - -عصر همان روز ما را به انجمن دعوت کردند. خود من Ùˆ ناظم باید می‌رÙتیم. معلم کلاس چهارم را هم با خودمان بردیم. خانه‌ای Ú©Ù‡ محل جلسه‌ی آن شب انجمن بود، درست مثل مدرسه، دور اÙتاده Ùˆ تنها بود. قالی‌ها Ùˆ کناره‌ها را به Ùرهنگ می‌آلودیم Ùˆ می‌رÙتیم. مثل این‌که سه تا سه تا روی هم انداخته بودند. اولی Ú©Ù‡ کثی٠شد دومی. به بالا Ú©Ù‡ رسیدیم یک حاجی آقا در حال نماز خواندن بود. Ùˆ صاحب‌خانه با لهجه‌ی غلیظ یزدی به استقبال‌مان آمد. همراهانم را معرÙÛŒ کردم Ùˆ لابد خودش Ùهمید مدیر کیست. برای ما چای آوردند. سیگارم را چاق کردم Ùˆ با صاحب‌خانه از قالی‌هایش حر٠زدیم. ناظم به بچه‌هایی می‌ماند Ú©Ù‡ در مجلس بزرگترها خوابشان می‌گیرد Ùˆ دل‌شان هم نمی‌خواست دست به سر شوند. سر اعضای انجمن باز شده بود. حاجی آقا صندوقدار بود. من Ùˆ ناظم عین دو Ø·Ùلان مسلم بودیم Ùˆ معلم کلاس چهارم عین خولی وسطمان نشسته. اغلب اعضای انجمن به زبان محلی صحبت می‌کردند Ùˆ رÙتار ناشی داشتند. حتی یک کدامشان نمی‌دانستند Ú©Ù‡ دست Ùˆ پاهای خود را Ú†Ù‡ جور ضبط Ùˆ ربط کنند. بلند بلند حر٠می‌زدند. درست مثل این‌که وزارتخانه‌ی دواب سه تا حیوان تازه برای باغ وحش محله‌شان وارد کرده. جلسه Ú©Ù‡ رسمی شد، صاحبخانه معرÙی‌مان کرد Ùˆ شروع کردند. مدام از خودشان صحبت می‌کردند از این‌که دزد دیشب Ùلان جا را گرÙته Ùˆ باید درخواست پاسبان شبانه کنیم Ùˆ... - -همین طور یک ساعت حر٠زدند Ùˆ به مهام امور رسیدگی کردند Ùˆ من Ùˆ معلم کلاس چهارم سیگار کشیدیم. انگار نه انگار Ú©Ù‡ ما هم بودیم. نوکرشان Ú©Ù‡ آمد استکان‌ها را جمع کند، چیزی روی جلد اشنو نوشتم Ùˆ برای صاحبخانه Ùرستادم Ú©Ù‡ یک مرتبه به صراÙت ما اÙتاد Ùˆ اجازه خواست Ùˆ: - -- آقایان عرضی دارند. بهتر است کارهای خودمان را بگذاریم برای بعد. - -مثلاً می‌خواست بÙهماند Ú©Ù‡ نباید همه‌ی حرÙ‌ها را در حضور ما زده باشند. Ùˆ اجازه دادند معلم کلاس چهار شروع کرد به نطق Ùˆ او هم شروع کرد Ú©Ù‡ هر Ú†Ù‡ باشد ما زیر سایه‌ی آقایانیم Ùˆ خوش‌آیند نیست Ú©Ù‡ بچه‌هایی باشند Ú©Ù‡ نه لباس داشته باشند Ùˆ نه Ú©ÙØ´ درست Ùˆ حسابی Ùˆ از این حرÙ‌ها Ùˆ مدام حر٠می‌زد. ناظم هم از Ú†Ùرت در آمد چیزهایی را Ú©Ù‡ از Ø­Ùظ کرده بود Ú¯Ùت Ùˆ التماس دعا Ùˆ کار را خراب کرد.تشری به ناظم زدم Ú©Ù‡ گدابازی را بگذارد کنار Ùˆ حالی‌شان کردم Ú©Ù‡ صحبت از تقاضا نیست Ùˆ گدایی. بلکه مدرسه دور اÙتاده است Ùˆ مستراح بی در Ùˆ پیکر Ùˆ از این اباطیل... Ú†Ù‡ خوب شد Ú©Ù‡ عصبانی نشدم. Ùˆ قرار شد Ú©Ù‡ پنج Ù†Ùرشان Ùردا عصر بیایند Ú©Ù‡ مدرسه را وارسی کنند Ùˆ تشکر Ùˆ اظهار خوشحالی Ùˆ در آمدیم. - -در تاریکی بیابان Ù‡Ùت تا سواری پشت در خانه ردی٠بودند Ùˆ راننده‌ها توی یکی از آن‌ها جمع شده بودند Ùˆ اسرار ارباب‌هاشان را به هم می‌گÙتند. در این حین من مدام به خودم می‌گÙتم من چرا رÙتم؟ به من چه؟ مگر من در بی Ú©ÙØ´ Ùˆ کلاهی‌شان مقصر بودم؟ می‌بینی احمق؟ مدیر مدرسه هم Ú©Ù‡ باشی باید شخصیت Ùˆ غرورت را لای زرورق بپیچی Ùˆ طاق کلاهت بگذاری Ú©Ù‡ اقلاً نپوسد. حتی اگر بخواهی یک معلم Ú©ÙˆÙتی باشی، نه چرا دور می‌زنی؟ حتی اگر یک Ùراش ماهی نود تومانی باشی، باید تا خرخره توی لجن Ùرو بروی.در همین حین Ú©Ù‡ من در Ùکر بودم ناظم Ú¯Ùت: - -- دیدید آقا Ú†Ù‡ طور باهامون رÙتار کردند؟ با یکی از قالی‌هاشون آقا تمام مدرسه رو می‌خرید. - -Ú¯Ùتم: - -- تا سر Ùˆ کارت با الÙ.ب است به‌پا قیاس Ù†Ú©Ù†ÛŒ. خودخوری می‌آره. - -Ùˆ معلم کلاس چهار Ú¯Ùت: - -- اگه Ùحشمون هم می‌دادند من باز هم راضی بودم، باید واقع‌بین بود. خدا کنه پشیمون نشند. - -بعد هم مدتی درد دل کردیم Ùˆ تا اتوبوس برسد Ùˆ سوار بشیم، معلوم شد Ú©Ù‡ معلم کلاس چهار با زنش متارکه کرده Ùˆ مادر ناظم را سرطانی تشخیص دادند. Ùˆ بعد هم شب بخیر... - -دو روز تمام مدرسه نرÙتم. خجالت می‌کشیدم توی صورت یک کدام‌شان نگاه کنم. Ùˆ در همین دو روز حاجی آقا با دو Ù†Ùر آمده بودند، مدرسه را وارسی Ùˆ صورت‌برداری Ùˆ ناظم می‌گÙت Ú©Ù‡ حتی بچه‌هایی هم Ú©Ù‡ Ú©ÙØ´ Ùˆ کلاهی داشتند پاره Ùˆ پوره آمده بودند. Ùˆ برای بچه‌ها Ú©ÙØ´ Ùˆ لباس خریدند. روزهای بعد احساس کردم زن‌هایی Ú©Ù‡ سر راهم لب جوی آب ظر٠می‌شستند، سلام می‌کنند Ùˆ یک بار هم دعای خیر یکی‌شان را از عقب سر شنیدم.اما چنان از خودم بدم آمده بود Ú©Ù‡ رغبتم نمی‌شد به Ú©ÙØ´ Ùˆ لباس‌هاشان نگاه کنم. قربان همان گیوه‌های پاره! بله، نان گدایی Ùرهنگ را نو نوار کرده بود. - -تازه از دردسرهای اول کار مدرسه Ùارغ شده بودم Ú©Ù‡ شنیدم Ú©Ù‡ یک روز صبح، یکی از اولیای اطÙال آمد. بعد از سلام Ùˆ احوالپرسی دست کرد توی جیبش Ùˆ شش تا عکس در آورد، گذاشت روی میزم. شش تا عکس زن لخت. لخت لخت Ùˆ هر کدام به یک حالت. یعنی چه؟ نگاه تندی به او کردم. آدم مرتبی بود. اداری مانند. کسر شأن خودم می‌دانستم Ú©Ù‡ این گوشه‌ی از زندگی را طبق دستور عکاس‌باشی Ùلان جنده‌خانه‌ی بندری ببینم. اما حالا یک مرد اتو کشیده‌ی مرتب آمده بود Ùˆ شش تا از همین عکس‌ها را روی میزم پهن کرده بود Ùˆ به انتظار آن Ú©Ù‡ وقاحت عکس‌ها چشم‌هایم را پر کند داشت سیگار چاق می‌کرد. - -حسابی غاÙلگیر شده بودم... حتماً تا هر شش تای عکس‌ها را ببینم، بیش از یک دقیقه طول کشید. همه از یک Ù†Ùر بود. به این Ùکر گریختم Ú©Ù‡ الان هزار ها یا میلیون ها نسخه‌ی آن، توی جیب Ú†Ù‡ جور آدم‌هایی است Ùˆ در کجاها Ùˆ Ú†Ù‡ قدر خوب بود Ú©Ù‡ همه‌ی این آدم‌ها را می‌شناختم یا می‌دیدم. بیش ازین نمی‌شد گریخت. یارو به تمام وزنه وقاحتش، جلوی رویم نشسته بود. سیگاری آتش زدم Ùˆ چشم به او دوختم. کلاÙÙ‡ بود Ùˆ پیدا بود برای کتک‌کاری هم آماده باشد. سرخ شده بود Ùˆ داشت در دود سیگارش تکیه‌گاهی برای جسارتی Ú©Ù‡ می‌خواست به خرج بدهد می‌جست. عکس‌ها را با یک ورقه از اباطیلی Ú©Ù‡ همان روز سیاه کرده بودم، پوشاندم Ùˆ بعد با لحنی Ú©Ù‡ دعوا را با آن شروع می‌کنند؛ پرسیدم: - -- خوب، غرض؟ - -Ùˆ صدایم توی اتاق پیچید. حرکتی از روی بیچارگی به خودش داد Ùˆ همه‌ی جسارت‌ها را با دستش توی جیبش کرد Ùˆ آرام‌تر از آن چیزی Ú©Ù‡ با خودش تو آورده بود، Ú¯Ùت: - -- Ú†Ù‡ عرض کنم؟... از معلم کلاس پنج تون بپرسید. - -Ú©Ù‡ راحت شدم Ùˆ او شروع کرد به این Ú©Ù‡ «این Ú†Ù‡ Ùرهنگی است؟ خراب بشود. پس بچه‌های مردم با Ú†Ù‡ اطمینانی به مدرسه بیایند؟ - -Ùˆ از این حرÙ‌ها... - -خلاصه این آقا معلم کاردستی کلاس پنجم، این عکس‌ها را داده به پسر آقا تا آن‌ها را روی تخته سه لایی بچسباند Ùˆ دورش را سمباده بکشد Ùˆ بیاورد. به هر صورت معلم کلاس پنج بی‌گدار به آب زده. Ùˆ حالا من Ú†Ù‡ بکنم؟ به او Ú†Ù‡ جوابی بدهم؟ بگویم معلم را اخراج می‌کنم؟ Ú©Ù‡ نه می‌توانم Ùˆ نه لزومی دارد. او Ú†Ù‡ بکند؟ حتماً در این شهر کسی را ندارد Ú©Ù‡ به این عکس‌ها دلخوش کرده. ولی آخر چرا این جور؟ یعنی این قدر احمق است Ú©Ù‡ حتی شاگردهایش را نمی‌شناسد؟... پاشدم ناظم را صدا بزنم Ú©Ù‡ خودش آمده بود بالا، توی ایوان منتظر ایستاده بود. من آخرین کسی بودم Ú©Ù‡ از هر اتÙاقی در مدرسه خبردار می‌شدم. حضور این ولی Ø·ÙÙ„ گیجم کرده بود Ú©Ù‡ چنین عکس‌هایی را از توی جیب پسرش، Ùˆ لابد به همین وقاحتی Ú©Ù‡ آن‌ها را روی میز من ریخت، در آورده بوده. وقتی Ùهمید هر دو در مانده‌ایم سوار بر اسب شد Ú©Ù‡ اله می‌کنم Ùˆ بله می‌کنم، در مدرسه را می‌بندم، Ùˆ از این جÙنگیات.... - -حتماً نمی‌دانست Ú©Ù‡ اگر در هر مدرسه بسته بشود، در یک اداره بسته شده است. اما من تا او بود نمی‌توانستم Ùکرم را جمع کنم. می‌خواست پسرش را بخواهیم تا شهادت بدهد Ùˆ Ú†Ù‡ جانی کندیم تا حالیش کنیم Ú©Ù‡ پسرش هر Ú†Ù‡ Ø®Ùت کشیده، بس است Ùˆ وعده‌ها دادیم Ú©Ù‡ معلمش را دم خورشید کباب کنیم Ùˆ از نان خوردن بیندازیم. یعنی اول ناظم شروع کرد Ú©Ù‡ از دست او دل پری داشت Ùˆ من هم دنبالش را گرÙتم. برای دک کردن او چاره‌ای جز این نبود. Ùˆ بعد رÙت، ما دو Ù†Ùری ماندیم با شش تا عکس زن لخت. حواسم Ú©Ù‡ جمع شد به ناظم سپردم صدایش را در نیاورد Ùˆ یک Ù‡Ùته‌ی تمام مطلب را با عکس‌ها، توی کشوی میزم Ù‚ÙÙ„ کردم Ùˆ بعد پسرک را صدا زدم. نه عزیزدÙردانه می‌نمود Ùˆ نه هیچ جور دیگر. داد می‌زد Ú©Ù‡ از خانواده‌ی عیال‌واری است. کم‌خونی Ùˆ Ùقر. دیدم معلمش زیاد هم بد تشخیص نداده. یعنی زیاد بی‌گدار به آب نزده. Ú¯Ùتم: - -- خواهر برادر هم داری؟ - -- Ø¢... Ø¢...آقا داریم آقا. - -- چند تا؟ - -- Ø¢... آقا چهار تا آقا. - -- عکس‌ها رو خودت به بابات نشون دادی؟ - -- نه به خدا آقا... به خدا قسم... - -- پس Ú†Ù‡ طور شد؟ - -Ùˆ دیدم از ترس دارد قالب تهی می‌کند. گرچه چوب‌های ناظم شکسته بود، اما ترس او از من Ú©Ù‡ مدیر باشم Ùˆ از ناظم Ùˆ از مدرسه Ùˆ از تنبیه سالم مانده بود. - -- نترس بابا. کاریت نداریم. تقصیر آقا معلمه Ú©Ù‡ عکس‌ها رو داده... تو کار بدی نکردی بابا جان. Ùهمیدی؟ اما می‌خواهم ببینم Ú†Ù‡ طور شد Ú©Ù‡ عکس‌ها دست بابات اÙتاد. - -- Ø¢.. Ø¢... آخه آقا... آخه... - -می‌دانستم Ú©Ù‡ باید Ú©Ù…Ú©Ø´ کنم تا به حر٠بیاید. - -Ú¯Ùتم: - -- می‌دونی بابا؟ عکس‌هام چیز بدی نبود. تو خودت Ùهمیدی Ú†ÛŒ بود؟ - -- آخه آقا...نه آقا.... خواهرم آقا... خواهرم می‌گÙت... - -- خواهرت؟ از تو کوچک‌تره؟ - -- نه آقا. بزرگ‌تره. می‌گÙتش Ú©Ù‡ آقا... می‌گÙتش Ú©Ù‡ آقا... هیچ Ú†ÛŒ سر عکس‌ها دعوامون شد. - -دیگر تمام بود. عکس‌ها را به خواهرش نشان داده بود Ú©Ù‡ لای دÙترچه پر بوده از عکس آرتیست‌ها. به او پز داده بوده. اما حاضر نبوده، حتی یکی از آن‌ها را به خواهرش بدهد. آدم مورد اعتماد معلم باشد Ùˆ چنین خبطی بکند؟ Ùˆ تازه جواب معلم را Ú†Ù‡ بدهد؟ ناچار خواهر او را لو داده بوده. بعد از او معلم را احضار کردم. علت احضار را می‌دانست. Ùˆ داد می‌زد Ú©Ù‡ چیزی ندارد بگوید. پس از یک Ù‡Ùته مهلت، هنوز از وقاحتی Ú©Ù‡ من پیدا کرده بودم، تا از آدم خلع سلاح‌شده‌ای مثل او، دست بر ندارم، در تعجب بود. به او سیگار تعار٠کردم Ùˆ این قصه را برایش تعری٠کردم Ú©Ù‡ در اوایل تأسیس وزارت معارÙØŒ یک روز به وزیر خبر می‌دهند Ú©Ù‡ Ùلان معلم با Ùلان بچه روابطی دارد. وزیر Ùوراً او را می‌خواهد Ùˆ حال Ùˆ احوال او را می‌پرسد Ùˆ این‌که چرا تا به حال زن نگرÙته Ùˆ ناچار تقصیر گردن بی‌پولی می‌اÙتد Ùˆ دستور Ú©Ù‡ Ùلان قدر به او Ú©Ù…Ú© کنند تا عروسی راه بیندازد Ùˆ خود او هم دعوت بشود Ùˆ قضیه به همین سادگی تمام می‌شود. Ùˆ بعد Ú¯Ùتم Ú©Ù‡ خیلی جوان‌ها هستند Ú©Ù‡ نمی‌توانند زن بگیرند Ùˆ وزرای Ùرهنگ هم این روزها گرÙتار مصاحبه‌های روزنامه‌ای Ùˆ رادیویی هستند. اما در نجیب‌خانه‌ها Ú©Ù‡ باز است Ùˆ ازین مزخرÙات... Ùˆ هم‌دردی Ùˆ نگذاشتم یک کلمه حر٠بزند. بعد هم عکس را Ú©Ù‡ توی پاکت گذاشته بودم، به دستش دادم Ùˆ وقاحت را با این جمله به حد اعلا رساندم Ú©Ù‡: - -- اگر به تخته نچسبونید، ضررشون کم‌تره. - -تا حقوقم به لیست اداره‌ی Ùرهنگ برسه، سه ماه طول کشید. Ùرهنگی‌های گداگشنه Ùˆ خزانه‌ی خالی Ùˆ دست‌های از پا درازتر! اما خوبیش این بود Ú©Ù‡ در مدرسه‌ی ما Ùراش جدیدمان پولدار بود Ùˆ به همه‌شان قرض داد. Ú©Ù… Ú©Ù… بانک مدرسه شده بود. از سیصد Ùˆ خرده‌ای تومان Ú©Ù‡ می‌گرÙت، پنجاه تومان را هم خرج نمی‌کرد. نه سیگار می‌کشید Ùˆ نه اهل سینما بود Ùˆ نه برج دیگری داشت. از این گذشته، باغبان یکی از دم‌کلÙت‌های همان اطرا٠بود Ùˆ باغی Ùˆ دستگاهی Ùˆ سور Ùˆ ساتی Ùˆ لابد آشپزخانه‌ی مرتبی. خیلی زود معلم‌ها Ùهمیدند Ú©Ù‡ یک Ùراش پولدار خیلی بیش‌تر به درد می‌خورد تا یک مدیر بی‌بو Ùˆ خاصیت. - -این از معلم‌ها. حقوق مرا هم هنوز از مرکز می‌دادند. با حقوق ماه بعد هم اسم مرا هم به لیست اداره منتقل کردند. درین مدت خودم برای خودم ورقه انجام کار می‌نوشتم Ùˆ امضا می‌کردم Ùˆ می‌رÙتم از مدرسه‌ای Ú©Ù‡ قبلاً در آن درس می‌دادم، حقوقم را می‌گرÙتم. سر Ùˆ صدای حقوق Ú©Ù‡ بلند می‌شد معلم‌ها مرتب می‌شدند Ùˆ کلاس ماهی سه چهار روز کاملاً دایر بود. تا ورقه‌ی انجام کار به دستشان بدهم. غیر از همان یک بار - در اوایل کار- Ú©Ù‡ برای معلم حساب پنج Ùˆ شش قرمز توی دÙتر گذاشتیم، دیگر با مداد قرمز کاری نداشتیم Ùˆ خیال همه‌شان راحت بود. وقتی برای گرÙتن حقوقم به اداره رÙتم، چنان شلوغی بود Ú©Ù‡ به خودم Ú¯Ùتم کاش اصلاً حقوقم را منتقل نکرده بودم. نه می‌توانستم سر ص٠بایستم Ùˆ نه می‌توانستم از حقوقم بگذرم. تازه مگر مواجب‌بگیر دولت چیزی جز یک انبان گشاده‌ی پای صندوق است؟..... Ùˆ اگر هم می‌ماندی با آن شلوغی باید تا دو بعداز ظهر سر پا بایستی. همه‌ی جیره‌خوارهای اداره بو برده بودند Ú©Ù‡ مدیرم. Ùˆ لابد آن‌قدر ساده لوح بودند Ú©Ù‡ Ùکر کنند روزی گذارشان به مدرسه‌ی ما بیÙتد. دنبال سÙته‌ها می‌گشتند، به حسابدار قبلی Ùحش می‌دادند، التماس می‌کردند Ú©Ù‡ این ماه را ندیده بگیرید Ùˆ همه‌ی حق Ùˆ حساب‌دان شده بودند Ùˆ یکی Ú©Ù‡ زودتر از نوبت پولش را می‌گرÙت صدای همه در می‌آمد. در لیست مدرسه، بزرگ‌ترین رقم مال من بود. درست مثل بزرگ‌ترین گناه در نامه‌ی عمل. دو برابر Ùراش جدیدمان حقوق می‌گرÙتم. از دیدن رقم‌های مردنی حقوق دیگران چنان خجالت کشیدم Ú©Ù‡ انگار مال آن‌ها را دزدیده‌ام. Ùˆ تازه خلوت Ú©Ù‡ شد Ùˆ ده پانزده تا امضا Ú©Ù‡ کردم، صندوق‌دار چشمش به من اÙتاد Ùˆ با یک معذرت، شش صد تومان پول دزدی را گذاشت ک٠دستم... مرده شور! - -هنوز بر٠اول نباریده بود Ú©Ù‡ یک روز عصر، معلم کلاس چهار رÙت زیر ماشین. زیر یک سواری. مثل همه‌ی عصرها من مدرسه نبودم. دم غروب بود Ú©Ù‡ Ùراش قدیمی مدرسه دم در خونه‌مون، خبرش را آورد. Ú©Ù‡ دویدم به طر٠لباسم Ùˆ تا حاضر بشوم، می‌شنیدم Ú©Ù‡ دارد قضیه را برای زنم تعری٠می‌کند. ماشین برای یکی از آمریکایی‌ها بوده. باقیش را از خانه Ú©Ù‡ در آمدیم برایم تعری٠کرد. گویا یارو خودش پشت Ùرمون بوده Ùˆ بعد هم هول شده Ùˆ در رÙته. بچه‌ها خبر را به مدرسه برگردانده‌اند Ùˆ تا Ùراش Ùˆ زنش برسند، جمعیت Ùˆ پاسبان‌ها سوارش کرده بودند Ùˆ Ùرستاده بوده‌اند مریض‌خانه. به اتوبوس Ú©Ù‡ رسیدم، دیدم لاک پشت است. Ùراش را مرخص کردم Ùˆ پریدم توی تاکسی. اول رÙتم سراغ پاسگاه جدید کلانتری. تعاری٠تکه Ùˆ پاره‌ای از پرونده مطلع بود. اما پرونده تصریحی نداشت Ú©Ù‡ راننده Ú©Ù‡ بوده. اما هیچ کس نمی‌دانست عاقبت Ú†Ù‡ بلایی بر سر معلم کلاس چهار ما آمده است. کشیک پاسگاه همین قدر مطلع بود Ú©Ù‡ درین جور موارد «طبق جریان اداری» اول می‌روند سرکلانتری، بعد دایره‌ی تصادÙات Ùˆ بعد بیمارستان. اگر آشنا در نمی‌آمدیم، کشیک پاسگاه مسلماً نمی‌گذاشت به پرونده نگاه Ú†Ù¾ بکنم. احساس کردم میان اهل محل کم‌کم دارم سرشناس می‌شوم. Ùˆ از این احساس خنده‌ام گرÙت. - -ساعت Û¸ دم در بیمارستان بودم، اگر سالم هم بود حتماً یه چیزیش شده بود. همان طور Ú©Ù‡ من یه چیزیم می‌شد. روی در بیمارستان نوشته شده بود: «از ساعت Û· به بعد ورود ممنوع». در زدم. از پشت در کسی همین آیه را صادر کرد. دیدم Ùایده ندارد Ùˆ باید از یک چیزی Ú©Ù…Ú© بگیرم. از قدرتی، از مقامی، از هیکلی، از یک چیزی. صدایم را Ú©Ù„Ùت کردم Ùˆ Ú¯Ùتم:« من...» می‌خواستم بگویم من مدیر مدرسه‌ام. ولی Ùوراً پشیمان شدم. یارو لابد می‌گÙت مدیر مدرسه کدام سگی است؟ این بود با Ú©Ù…ÛŒ Ù…Ú©Ø« Ùˆ طمطراق Ùراوان جمله‌ام را این طور تمام کردم: - -- ...بازرس وزارت Ùرهنگم. - -Ú©Ù‡ کلون صدایی کرد Ùˆ لای در باز شد. یارو با چشم‌هایش سلام کرد. رÙتم تو Ùˆ با همان صدا پرسیدم: - -- این معلمه مدرسه Ú©Ù‡ تصاد٠کرده... - -تا آخرش را خواند. یکی را صدا زد Ùˆ دنبالم Ùرستاد Ú©Ù‡ طبقه‌ی Ùلان، اتاق Ùلان. از حیاط به راهرو Ùˆ باز به حیاط دیگر Ú©Ù‡ نصÙØ´ را بر٠پوشانده بود Ùˆ من چنان می‌دویدم Ú©Ù‡ یارو از عقب سرم هن هن می‌کرد. طبقه‌ی اول Ùˆ دوم Ùˆ چهارم. چهار تا پله یکی. راهرو تاریک بود Ùˆ پر از بوهای مخصوص بود. هن هن کنان دری را نشان داد Ú©Ù‡ هل دادم Ùˆ رÙتم تو. بو تندتر بود Ùˆ تاریکی بیشتر. تالاری بود پر از تخت Ùˆ جیرجیر Ú©ÙØ´ Ùˆ خرخر یک Ù†Ùر. دور یک تخت چهار Ù†Ùر ایستاده بودند. حتماً خودش بود. پای تخت Ú©Ù‡ رسیدم، احساس کردم همه‌ی آنچه از خشونت Ùˆ تظاهر Ùˆ ابهت به Ú©Ù…Ú© خواسته بودم آب شد Ùˆ بر سر Ùˆ صورتم راه اÙتاد. Ùˆ این معلم کلاس چهارم مدرسه‌ام بود. سنگین Ùˆ با Ø´Ú©Ù… بر آمده دراز کشیده بود. خیلی کوتاه‌تر از زمانی Ú©Ù‡ سر پا بود به نظرم آمد. صورت Ùˆ سینه‌اش از روپوش چرک‌مÙرد بیرون بود. صورتش را Ú©Ù‡ شسته بودند کبود کبود بود، درست به رنگ جای سیلی روی صورت بچه‌ها. مرا Ú©Ù‡ دید، لبخند Ùˆ Ú†Ù‡ لبخندی! شاید می‌خواست بگوید مدرسه‌ای Ú©Ù‡ مدیرش عصرها سر کار نباشد، باید همین جورها هم باشد. خنده توی صورت او همین طور لرزید Ùˆ لرزید تا یخ زد. - -«آخر چرا تصاد٠کردی؟...» - -مثل این Ú©Ù‡ سوال را ازو کردم. اما وقتی Ú©Ù‡ دیدم نمی‌تواند حر٠بزند Ùˆ به جای هر جوابی همان خنده‌ی یخ‌بسته را روی صورت دارد، خودم را به عنوان او دم Ú†Ú© گرÙتم. «آخه چرا؟ چرا این هیکل مدیر Ú©Ù„ÛŒ را با خودت این قد این ور Ùˆ آن ور می‌بری تا بزنندت؟ تا زیرت کنند؟ مگر نمی‌دانستی Ú©Ù‡ معلم حق ندارد این قدر خوش‌هیکل باشد؟ آخر چرا تصاد٠کردی؟» به چنان عتاب Ùˆ خطابی این‌ها را می‌گÙتم Ú©Ù‡ هیچ مطمئن نیستم بلند بلند به خودش Ù†Ú¯Ùته باشم. Ùˆ یک مرتبه به کله‌ام زد Ú©Ù‡ «مبادا خودت چشمش زده باشی؟» Ùˆ بعد: «احمق خاک بر سر! بعد از سی Ùˆ چند سال عمر، تازه خراÙاتی شدی!» Ùˆ چنان از خودم بیزاریم گرÙت Ú©Ù‡ می‌خواستم به یکی Ùحش بدهم، کسی را بزنم. Ú©Ù‡ چشمم به دکتر کشیک اÙتاد. - -- مرده شور این مملکتو ببره. ساعت چهار تا حالا از تن این مرد خون می‌ره. Ø­ÛŒÙتون نیومد؟... - -دستی روی شانه‌ام نشست Ùˆ Ùریادم را خواباند. برگشتم پدرش بود. او هم می‌خندید. دو Ù†Ùر دیگر هم با او بودند. همه دهاتی‌وار؛ همه خوش قد Ùˆ قواره. حظ کردم! آن دو تا پسرهایش بودند یا برادرزاده‌هایش یا کسان دیگرش. تازه داشت Ú¯Ù„ از گلم می‌شکÙت Ú©Ù‡ شنیدم: - -- آقا Ú©ÛŒ باشند؟ - -این راهم دکتر کشیک Ú¯Ùت Ú©Ù‡ من باز سوار شدم: - -- مرا می‌گید آقا؟ من هیشکی. یک آقا مدیر Ú©ÙˆÙتی. این هم معلمم. - -Ú©Ù‡ یک مرتبه عقل Ù‡ÛŒ زد Ùˆ «پسر Ø®ÙÙ‡ شو» Ùˆ Ø®ÙÙ‡ شدم. بغض توی گلویم بود. دلم می‌خواست یک کلمه دیگر بگوید. یک کنایه بزند... نسبت به مهارت هیچ دکتری تا کنون نتوانسته‌ام قسم بخورم. دستش را دراز کرد Ú©Ù‡ به اکراه Ùشار دادم Ùˆ بعد شیشه‌ی بزرگی را نشانم داد Ú©Ù‡ وارونه بالای تخت آویزان بود Ùˆ خرÙهمم کرد Ú©Ù‡ این جوری غذا به او می‌رسانند Ùˆ عکس هم گرÙته‌اند Ùˆ تا Ùردا صبح اگر زخم‌ها چرک نکند، جا خواهند انداخت Ùˆ Ú¯Ú† خواهند کرد. Ú©Ù‡ یکی دیگر از راه رسید. گوشی به دست Ùˆ سÙید پوش Ùˆ معطر. با حرکاتی مثل آرتیست سینما. سلامم کرد. صدایش در ته ذهنم چیزی را مختصر تکانی داد. اما احتیاجی به کنجکاوی نبود. یکی از شاگردهای نمی‌دانم چند سال پیشم بود. خودش خودش را معرÙÛŒ کرد. آقای دکتر...! عجب روزگاری! هر تکه از وجودت را با مزخرÙÛŒ از انبان مزخرÙاتت، مثل ذره‌ای روزی در خاکی ریخته‌ای Ú©Ù‡ حالا سبز کرده. چشم داری احمق. این تویی Ú©Ù‡ روی تخت دراز کشیده‌ای. ده سال آزگار از پلکان ساعات Ùˆ دقایق عمرت هر لحظه یکی بالا رÙته Ùˆ تو Ùقط خستگی این بار را هنوز در تن داری. این جوجه‌ÙÚ©Ù„ÛŒ Ùˆ جوجه‌های دیگر Ú©Ù‡ نمی‌شناسی‌شان، همه از تخمی سر در آورده‌اند Ú©Ù‡ روزی حصار جوانی تو بوده Ùˆ حالا شکسته Ùˆ خالی مانده. دستش را گرÙتم Ùˆ کشیدمش کناری Ùˆ در گوشش هر Ú†Ù‡ بد Ùˆ بی‌راه می‌دانستم، به او Ùˆ همکارش Ùˆ شغلش دادم. مثلاً می‌خواستم سÙارش معلم کلاس چهار مدرسه‌ام را کرده باشم. بعد هم سری برای پدر تکان دادم Ùˆ گریختم. از در Ú©Ù‡ بیرون آمدم، حیاط بود Ùˆ هوای بارانی. از در بزرگ Ú©Ù‡ بیرون آمدم به این Ùکر می‌کردم Ú©Ù‡ «اصلا به تو چه؟ اصلاً چرا آمدی؟ می‌خواستی کنجکاوی‌ات را سیرکنی؟» Ùˆ دست آخر به این نتیجه رسیدم Ú©Ù‡ «طعمه‌ای برای میزنشین‌های شهربانی Ùˆ دادگستری به دست آمده Ùˆ تو نه می‌توانی این طعمه را از دستشان بیرون بیاوری Ùˆ نه هیچ کار دیگری می‌توانی بکنی...» - -Ùˆ داشتم سوار تاکسی می‌شدم تا برگردم خانه Ú©Ù‡ یک دÙعه به صراÙت اÙتادم Ú©Ù‡ اقلاً چرا نپرسیدی Ú†Ù‡ بلایی به سرش آمده؟» خواستم عقب‌گرد کنم، اما هیکل کبود معلم کلاس چهارم روی تخت بود Ùˆ دیدم نمی‌توانم. خجالت می‌کشیدم Ùˆ یا می‌ترسیدم. آن شب تا ساعت دو بیدار بودم Ùˆ Ùردا یک گزارش Ù…Ùصل به امضای مدیر مدرسه Ùˆ شهادت همه‌ی معلم‌ها برای اداره‌ی Ùرهنگ Ùˆ کلانتری محل Ùˆ بعد هم دوندگی در اداره‌ی بیمه Ùˆ قرار بر این Ú©Ù‡ روزی نه تومان بودجه برای خرج بیمارستان او بدهند Ùˆ عصر پس از مدتی رÙتم مدرسه Ùˆ کلاس‌ها را تعطیل کردم Ùˆ معلم‌ها Ùˆ بچه‌های ششم را Ùرستادم عیادتش Ùˆ دسته Ú¯Ù„ Ùˆ ازین بازی‌ها... Ùˆ یک ساعتی در مدرسه تنها ماندم Ùˆ Ùارغ از همه چیز برای خودم خیال باÙتم.... Ùˆ Ùردا صبح پدرش آمد سلام Ùˆ احوالپرسی Ùˆ Ú¯Ùت یک دست Ùˆ یک پایش شکسته Ùˆ Ú©Ù…ÛŒ خونریزی داخل مغز Ùˆ از طر٠یارو آمریکاییه آمده‌اند عیادتش Ùˆ وعده Ùˆ وعید Ú©Ù‡ وقتی خوب شد، در اصل چهار استخدامش کنند Ùˆ با زبان بی‌زبانی حالیم کرد Ú©Ù‡ گزارش را بیخود داده‌ام Ùˆ حالا هم داده‌ام، دنبالش نکنم Ùˆ رضایت طرÙین Ùˆ کاسه‌ی از آش داغ‌تر Ùˆ از این حرÙ‌ها... خاک بر سر مملکت. - -اوایل امر توجهی به بچه‌ها نداشتم. خیال می‌کردم اختلا٠سÙÙ†ÛŒ میان‌مان آن قدر هست Ú©Ù‡ کاری به کار همدیگر نداشته باشیم. همیشه سرم به کار خودم بود. در دÙتر را می‌بستم Ùˆ در گرمای بخاری دولت قلم صد تا یک غاز می‌زدم. اما این کار مرتب سه چهار Ù‡Ùته بیش‌تر دوام نکرد. خسته شدم. ناچار به مدرسه بیشتر می‌رسیدم. یاد روزهای قدیمی با دوستان قدیمی به خیر Ú†Ù‡ آدم‌های پاک Ùˆ بی‌آلایشی بودند، Ú†Ù‡ شخصیت‌های بی‌نام Ùˆ نشانی Ùˆ هر کدام با Ú†Ù‡ زبانی Ùˆ با Ú†Ù‡ ادا Ùˆ اطوارهای مخصوص به خودشان Ùˆ این جوان‌های Ú†Ù„Ùته‌ای. Ú†Ù‡ مقلدهای بی‌دردسری برای Ùرهنگی‌مابی! نه خبری از دیروزشان داشتند Ùˆ نه از املاک تازه‌ای Ú©Ù‡ با Ù‡Ùتاد واسطه به دست‌شان داده بودند، چیزی سرشان می‌شد. بدتر از همه بی‌دست Ùˆ پایی‌شان بود. آرام Ùˆ مرتب درست مثل واگن شاه عبدالعظیم می‌آمدند Ùˆ می‌رÙتند. Ùقط بلد بودند روزی ده دقیقه دیرتر بیایند Ùˆ همین. Ùˆ از این هم بدتر تنگ‌نظری‌شان بود. - -سه بار شاهد دعواهایی بودم Ú©Ù‡ سر یک گلدان میخک یا شمعدانی بود. بچه‌باغبان‌ها زیاد بودند Ùˆ هر کدام‌شان حداقل ماهی یک گلدان میخک یا شمعدانی می‌آوردند Ú©Ù‡ در آن بر٠و سرما نعمتی بود. اول تصمیم گرÙتم، مدرسه را با آن‌ها زینت دهم. ولی Ú†Ù‡ Ùایده؟ نه کسی آب‌شان می‌داد Ùˆ نه مواظبتی. Ùˆ باز بدتر از همه‌ی این‌ها، بی‌شخصیتی معلم‌ها بود Ú©Ù‡ درمانده‌ام کرده بود. دو کلمه نمی‌توانستند حر٠بزنند. عجب هیچ‌کاره‌هایی بودند! احساس کردم Ú©Ù‡ روز به روز در کلاس‌ها معلم‌ها به جای دانش‌آموزان جااÙتاده‌تر می‌شوند. در نتیجه Ú¯Ùتم بیش‌تر متوجه بچه‌ها باشم. - -آن‌ها Ú©Ù‡ تنها با ناظم سر Ùˆ کار داشتند Ùˆ مثل این بود Ú©Ù‡ به من Ùقط یک سلام نیمه‌جویده بدهکارند. با این همه نومیدکننده نبودند. توی Ú©ÙˆÚ†Ù‡ مواظب‌شان بودم. می‌خواستم حر٠و سخن‌ها Ùˆ درد دل‌ها Ùˆ اÙکارشان را از یک Ùحش نیمه‌کاره یا از یک ادای نیمه‌تمام حدس بزنم، Ú©Ù‡ سلام‌نکرده در می‌رÙتند. خیلی Ú©Ù… تنها به مدرسه می‌آمدند. پیدا بود Ú©Ù‡ سر راه همدیگر می‌ایستند یا در خانه‌ی یکدیگر می‌روند. سه چهار Ù†Ùرشان هم با اسکورت می‌آمدند. از بیست سی Ù†Ùری Ú©Ù‡ ناهار می‌ماندند، Ùقط دو Ù†Ùرشان چلو خورش می‌آوردند؛ Ùراش اولی مدرسه برایم خبر می‌آورد. بقیه گوشت‌کوبیده، پنیر گردوئی، دم پختکی Ùˆ از این جور چیزها. دو Ù†Ùرشان هم بودند Ú©Ù‡ نان سنگک خالی می‌آوردند. برادر بودند. پنجم Ùˆ سوم. صبح Ú©Ù‡ می‌آمدند، جیب‌هاشان باد کرده بود. سنگک را نص٠می‌کردند Ùˆ توی جیب‌هاشان می‌تپاندند Ùˆ ظهر می‌شد، مثل آن‌هایی Ú©Ù‡ ناهارشان را در خانه می‌خورند، می‌رÙتند بیرون. من Ùقط بیرون رÙتن‌شان را می‌دیدم. اما حتی همین‌ها هر کدام روزی، یکی دو قران از Ùراش مدرسه خرت Ùˆ خورت می‌خریدند. از همان Ùراش قدیمی مدرسه Ú©Ù‡ ماهی پنج تومان سرایداریش را وصول کرده بودم. هر روز Ú©Ù‡ وارد اتاقم می‌شدم پشت سر من می‌آمد بارانی‌ام را بر می‌داشت Ùˆ شروع می‌کرد به گزارش دادن، Ú©Ù‡ دیروز باز دو Ù†Ùر از معلم‌ها سر یک گلدان دعوا کرده‌اند یا مأمور Ùرماندار نظامی آمده یا دÙتردار عوض شده Ùˆ از این اباطیل... پیدا بود Ú©Ù‡ Ùراش جدید هم در مطالبی Ú©Ù‡ او می‌گÙت، سهمی دارد. - -یک روز در حین گزارش دادن، اشاره‌ای کرد به این مطلب Ú©Ù‡ دیروز عصر یکی از بچه‌های کلاس چهار دو تا کله قند به او Ùروخته است. درست مثل اینکه سر کلا٠را به دستم داده باشد پرسیدم: - -- چند؟ - -- دو تومنش دادم آقا. - -- زحمت کشیدی. Ù†Ú¯Ùتی از کجا آورده؟ - -- من Ú©Ù‡ ضامن بهشت Ùˆ جهنمش نبودم آقا. - -بعد پرسیدم: - -- چرا به آقای ناظم خبر ندادی؟ - -می‌دانستم Ú©Ù‡ هم او Ùˆ هم Ùراش جدید، ناظم را هووی خودشان می‌دانند Ùˆ خیلی چیزهاشان از او مخÙÛŒ بود. این بود Ú©Ù‡ میان من Ùˆ ناظم خاصه‌خرجی می‌کردند. در جوابم همین طور مردد مانده بود Ú©Ù‡ در باز شد Ùˆ Ùراش جدید آمد تو. Ú©Ù‡: - -- اگه خبرش می‌کرد آقا بایست سهمش رو می‌داد... - -اخمم را درهم کشیدم Ùˆ Ú¯Ùتم: - -- تو باز رÙتی تو Ú©ÙˆÚ© مردم! اونم این جوری سر نزده Ú©Ù‡ نمی‌آیند تو اتاق کسی، پیرمرد! - -Ùˆ بعد اسم پسرک را ازشان پرسیدم Ùˆ حالی‌شان کردم Ú©Ù‡ چندان مهم نیست Ùˆ Ùرستادمشان برایم چای بیاورند. بعد کارم را زودتر تمام کردم Ùˆ رÙتم به اتاق دÙتر احوالی از مادر ناظم پرسیدم Ùˆ به هوای ورق زدن پرونده‌ها Ùهمیدم Ú©Ù‡ پسرک شاگرد دوساله است Ùˆ پدرش تاجر بازار. بعد برگشتم به اتاقم. یادداشتی برای پدر نوشتم Ú©Ù‡ پس Ùردا صبح، بیاید مدرسه Ùˆ دادم دست Ùراش جدید Ú©Ù‡ خودش برساند Ùˆ رسیدش را بیاورد. - -Ùˆ پس Ùردا صبح یارو آمد. باید مدیر مدرسه بود تا دانست Ú©Ù‡ اولیای اطÙال Ú†Ù‡ راحت تن به کوچک‌ترین خرده‌Ùرمایش‌های مدرسه می‌دهند. حتم دارم Ú©Ù‡ اگر از اجرای ثبت هم دنبال‌شان بÙرستی به این زودی‌ها Ø¢Ùتابی نشوند. چهل Ùˆ پنج ساله مردی بود با یخه‌ی بسته بی‌کراوات Ùˆ پالتویی Ú©Ù‡ بیش‌تر به قبا می‌ماند. Ùˆ خجالتی می‌نمود. هنوز ننشسته، پرسیدم: - -- شما دو تا زن دارید آقا؟ - -درباره‌ی پسرش برای خودم پیش‌گویی‌هایی کرده بودم Ùˆ Ú¯Ùتم این طوری به او رودست می‌زنم. پیدا بود Ú©Ù‡ از سؤالم زیاد یکه نخورده است. Ú¯Ùتم برایش چای آوردند Ùˆ سیگاری تعارÙØ´ کردم Ú©Ù‡ ناشیانه دود کرد از ترس این Ú©Ù‡ مبادا جلویم در بیاید Ú©Ù‡ - به شما Ú†Ù‡ مربوط است Ùˆ از این اعتراض‌ها - امانش ندادم Ùˆ سؤالم را این جور دنبال کردم: - -- البته می‌بخشید. چون لابد به همین علت بچه شما دو سال در یک کلاس مانده. - -شروع کرده بودم برایش یک میتینگ بدهم Ú©Ù‡ پرید وسط حرÙÙ…: - -- به سر شما قسم، روزی چهار زار پول تو جیبی داره آقا. پدرسوخته‌ی نمک به حروم...! - -حالیش کردم Ú©Ù‡ علت، پول تو جیبی نیست Ùˆ خواستم Ú©Ù‡ عصبانی نشود Ùˆ قول گرÙتم Ú©Ù‡ اصلاً به روی پسرش هم نیاورد Ùˆ آن وقت میتینگم را برایش دادم Ú©Ù‡ لابد پسر در خانه مهر Ùˆ محبتی نمی‌بیند Ùˆ غیب‌گویی‌های دیگر... تا عاقبت یارو خجالتش ریخت Ùˆ سر٠درد دلش باز شد Ú©Ù‡ عÙریته زن اولش همچه بوده Ùˆ همچون بوده Ùˆ پسرش هم به خودش برده Ùˆ Ú©ÛŒ طلاقش داده Ùˆ از زن دومش چند تا بچه دارد Ùˆ این نره‌خر حالا باید برای خودش نان‌آور شده باشد Ùˆ زنش حق دارد Ú©Ù‡ با دو تا بچه‌ی خرده‌پا به او نرسد... من هم Ú©Ù„ÛŒ برایش صحبت کردم. چایی دومش را هم سر کشید Ùˆ قول‌هایش را Ú©Ù‡ داد Ùˆ رÙت، من به این Ùکر اÙتادم Ú©Ù‡ «نکند علمای تعلیم Ùˆ تربیت هم، همین جورها تخم دوزرده می‌کنند!» - -یک روز صبح Ú©Ù‡ رسیدم، ناظم هنوز نیامده بود. از این اتÙاق‌ها Ú©Ù… می‌اÙتاد. ده دقیقه‌ای از زنگ می‌گذشت Ùˆ معلم‌ها در دÙتر سرگرم اختلاط بودند. خودم هم وقتی معلم بودم به این مرض دچار بودم. اما وقتی مدیر شدم تازه Ùهمیدم Ú©Ù‡ معلم‌ها Ú†Ù‡ لذتی می‌برند. حق هم داشتند. آدم وقتی مجبور باشد Ø´Ú©Ù„Ú©ÛŒ را به صورت بگذارد Ú©Ù‡ نه دیگران از آن می‌خندند Ùˆ نه خود آدم لذتی می‌برد، پیداست Ú©Ù‡ رÙع تکلی٠می‌کند. زنگ را Ú¯Ùتم زدند Ùˆ بچه‌ها سر کلاس رÙتند. دو تا از کلاس‌ها بی‌معلم بود. یکی از ششمی‌ها را Ùرستادم سر کلاس سوم Ú©Ù‡ برای‌شان دیکته بگوید Ùˆ خودم رÙتم سر کلاس چهار. مدیر هم Ú©Ù‡ باشی، باز باید تمرین Ú©Ù†ÛŒ Ú©Ù‡ مبادا Ùوت Ùˆ ÙÙ† معلمی از یادت برود. در حال صحبت با بچه‌ها بودم Ú©Ù‡ Ùراش خبر آورد Ú©Ù‡ خانمی توی دÙتر منتظرم است. خیال کردم لابد همان زنکه‌ی بیکاره‌ای است Ú©Ù‡ Ù‡Ùته‌ای یک بار به هوای سرکشی، به وضع درس Ùˆ مشق بچه‌اش سری می‌زند. زن سÙیدرویی بود با چشم‌های درشت محزون Ùˆ موی بور. بیست Ùˆ پنج ساله هم نمی‌نمود. اما بچه‌اش کلاس سوم بود. روز اول Ú©Ù‡ دیدمش لباس نارنجی به تن داشت Ùˆ تن بزک کرده بود. از زیارت من خیلی خوشحال شد Ùˆ از مراتب Ùضل Ùˆ ادبم خبر داشت. - -خیلی ساده آمده بود تا با دو تا مرد حرÙÛŒ زده باشد. آن طور Ú©Ù‡ ناظم خبر می‌داد، یک سالی طلاق گرÙته بود Ùˆ روی هم رÙته آمد Ùˆ رÙتنش به مدرسه باعث دردسر بود. وسط بیابان Ùˆ مدرسه‌ای پر از معلم‌های عزب Ùˆ بی‌دست Ùˆ پا Ùˆ یک زن زیبا... ناچار جور در نمی‌آمد. این بود Ú©Ù‡ دÙعات بعد دست به سرش می‌کردم، اما از رو نمی‌رÙت. سراغ ناظم Ùˆ اتاق دÙتر را می‌گرÙت Ùˆ صبر می‌کرد تا زنگ را بزنند Ùˆ معلم‌ها جمع بشوند Ùˆ لابد حر٠و سخنی Ùˆ خنده‌ای Ùˆ بعد از معلم کلاس سوم سراغ کار Ùˆ بار Ùˆ بچه‌اش را می‌گرÙت Ùˆ زنگ بعد را Ú©Ù‡ می‌زدند، خداحاÙظی می‌کرد Ùˆ می‌رÙت. آزاری نداشت. با چشم‌هایش Ù†Ùس معلم‌ها را می‌برید. Ùˆ حالا باز هم همان زن بود Ùˆ آمده بود Ùˆ من تا از پلکان پایین بروم در ذهنم جملات زننده‌ای ردی٠می‌کردم، تا پایش را از مدرسه ببرد Ú©Ù‡ در را باز کردم Ùˆ سلام... - -عجب! او نبود. دخترک یکی دو ساله‌ای بود با دهان گشاد Ùˆ موهای زبرش را به زحمت عقب سرش گلوله کرده بود Ùˆ بÙهمی Ù†Ùهمی دستی توی صورتش برده بود. روی هم رÙته زشت نبود. اما داد می‌زد Ú©Ù‡ معلم است. Ú¯Ùتم Ú©Ù‡ مدیر مدرسه‌ام Ùˆ حکمش را داد دستم Ú©Ù‡ دانشسرا دیده بود Ùˆ تازه استخدام شده بود. برایمان معلم Ùرستاده بودند. خواستم بگویم «مگر رئیس Ùرهنگ نمی‌داند Ú©Ù‡ این جا بیش از حد مرد است» ولی دیدم لزومی ندارد Ùˆ Ùکر کردم این هم خودش تنوعی است. - -به هر صورت زنی بود Ùˆ می‌توانست محیط خشن مدرسه را Ú©Ù‡ به طرز ناشیانه‌ای پسرانه بود، لطاÙتی بدهد Ùˆ خوش‌آمد Ú¯Ùتم Ùˆ چای آوردند Ú©Ù‡ نخورد Ùˆ بردمش کلاس‌های سوم Ùˆ چهارم را نشانش دادم Ú©Ù‡ هر کدام را مایل است، قبول کند Ùˆ صحبت از هجده ساعت درس Ú©Ù‡ در انتظار او بود Ùˆ برگشتیم به دÙتر .پرسید غیر از او هم، معلم زن داریم. Ú¯Ùتم: - -- متأسÙانه راه مدرسه‌ی ما را برای پاشنه‌ی Ú©ÙØ´ خانم‌ها نساخته‌اند. - -Ú©Ù‡ خندید Ùˆ احساس کردم زورکی می‌خندد. بعد Ú©Ù…ÛŒ این دست Ùˆ آن دست کرد Ùˆ عاقبت: - -- آخه من شنیده بودم شما با معلماتون خیلی خوب تا می‌کنید. - -صدای جذابی داشت. Ùکر کردم حی٠که این صدا را پای تخته سیاه خراب خواهد کرد. Ùˆ Ú¯Ùتم: - -- اما نه این قدر Ú©Ù‡ مدرسه تعطیل بشود خانم! Ùˆ لابد به عرض‌تون رسیده Ú©Ù‡ همکارهای شما، خودشون نشسته‌اند Ùˆ تصمیم گرÙته‌اند Ú©Ù‡ هجده ساعت درس بدهند. بنده هیچ‌کاره‌ام. - -- اختیار دارید. - -Ùˆ Ù†Ùهمیدم با این «اختیار دارید» Ú†Ù‡ می‌خواست بگوید. اما پیدا بود Ú©Ù‡ بحث سر ساعات درس نیست. آناً تصمیم گرÙتم، امتحانی بکنم: - -- این را هم اطلاع داشته باشید Ú©Ù‡ Ùقط دو تا از معلم‌های ما متأهل‌اند. - -Ú©Ù‡ قرمز شد Ùˆ برای این Ú©Ù‡ کار دیگری نکرده باشد، برخاست Ùˆ حکمش را از روی میز برداشت. پا به پا می‌شد Ú©Ù‡ دیدم باید به دادش برسم. ساعت را از او پرسیدم. وقت زنگ بود. Ùراش را صدا کردم Ú©Ù‡ زنگ را بزند Ùˆ بعد به او Ú¯Ùتم، بهتر است مشورت دیگری هم با رئیس Ùرهنگ بکند Ùˆ ما به هر صورت خوشحال خواهیم شد Ú©Ù‡ اÙتخار همکاری با خانمی مثل ایشان را داشته باشیم Ùˆ خداحاÙظ شما. از در دÙتر Ú©Ù‡ بیرون رÙت، صدای زنگ برخاست Ùˆ معلم‌ها انگار موشان را آتش زده‌اند، به عجله رسیدند Ùˆ هر کدام از پشت سر، آن قدر او را پاییدند تا از در بزرگ آهنی مدرسه بیرون رÙت. - -Ùردا صبح معلوم شد Ú©Ù‡ ناظم، دنبال کار مادرش بوده است Ú©Ù‡ قرار بود بستری شود، تا جای سرطان گرÙته را یک دوره برق بگذارند. Ú©Ù„ کار بیمارستان را من به Ú©Ù…Ú© دوستانم انجام دادم Ùˆ موقع آن رسیده بود Ú©Ù‡ مادرش برود بیمارستان اما وحشتش گرÙته بود Ùˆ حاضر نبود به بیمارستان برود. Ùˆ ناظم می‌خواست رسماً دخالت کنم Ùˆ با هم برویم خانه‌شان Ùˆ با زبان چرب Ùˆ نرمی Ú©Ù‡ به قول ناظم داشتم مادرش را راضی کنم. چاره‌ای نبود. مدرسه را به معلم‌ها سپردیم Ùˆ راه اÙتادیم. بالاخره به خانه‌ی آن‌ها رسیدیم. خانه‌ای بسیار Ú©ÙˆÚ†Ú© Ùˆ اجاره‌ای. مادر با چشم‌های گود نشسته Ùˆ انگار زغال به صورت مالیده! سیاه نبود اما رنگش چنان تیره بود Ú©Ù‡ وحشتم گرÙت. اصلاً صورت نبود. زخم سیاه شده‌ای بود Ú©Ù‡ انگار از جای چشم‌ها Ùˆ دهان سر باز کرده است. Ú©Ù„ÛŒ با مادرش صحبت کردم. از پسرش Ùˆ Ú©Ù„ÛŒ دروغ Ùˆ دونگ، Ùˆ چادرش را روی چارقدش انداختیم Ùˆ علی... Ùˆ خلاصه در بیمارستان بستری شدند. - -Ùردا Ú©Ù‡ به مدرسه آمدم، ناظم سرحال بود Ùˆ پیدا بود Ú©Ù‡ از شر چیزی خلاص شده است Ùˆ خبر داد Ú©Ù‡ معلم کلاس سه را گرÙته‌اند. یک ماه Ùˆ خرده‌ای می‌شد Ú©Ù‡ مخÙÛŒ بود Ùˆ ما ورقه‌ی انجام کارش را به جانشین غیر رسمی‌اش داده بودیم Ùˆ حقوقش لنگ نشده بود Ùˆ تا خبر رسمی بشنود Ùˆ در روزنامه‌ای بیابد Ùˆ قضیه به اداره‌ی Ùرهنگ Ùˆ لیست حقوق بکشد، باز هم می‌دادیم. اما خبر Ú©Ù‡ رسمی شد، جانشین واجد شرایط هم نمی‌توانست بÙرستد Ùˆ باید طبق مقررات رÙتار می‌کردیم Ùˆ بدیش همین بود. Ú©Ù… Ú©Ù… احساس کردم Ú©Ù‡ مدرسه خلوت شده است Ùˆ کلاس‌ها اغلب اوقات بی‌کارند. جانشین معلم کلاس چهار هنوز سر Ùˆ صورتی به کارش نداده بود Ùˆ حالا یک کلاس دیگر هم بی‌معلم شد. این بود Ú©Ù‡ باز هم به سراغ رئیس Ùرهنگ رÙتم. معلوم شد آن دخترک ترسیده Ùˆ «نرسیده متلک پیچش کرده‌اید» رئیس Ùرهنگ این طور می‌گÙت. Ùˆ ترجیح داده بود همان زیر نظر خودش دÙترداری کند. Ùˆ بعد قول Ùˆ قرار Ùˆ Ùردا Ùˆ پس Ùردا Ùˆ عاقبت چهار روز دوندگی تا دو تا معلم گرÙتم. یکی جوانکی رشتی Ú©Ù‡ گذاشتیمش کلاس چهار Ùˆ دیگری باز یکی ازین آقاپسرهای بریانتین‌زده Ú©Ù‡ هر روز کراوات عوض می‌کرد، با نقش‌ها Ùˆ طرح‌های عجیب. عجب Ùرهنگ را با قرتی‌ها در آمیخته بودند! باداباد. او را هم گذاشتیم سر کلاس سه. اواخر بهمن، یک روز ناظم آمد اتاقم Ú©Ù‡ بودجه‌ی مدرسه را زنده کرده است. Ú¯Ùتم: - -- مبارکه، Ú†Ù‡ قدر گرÙتی؟ - -- هنوز هیچ Ú†ÛŒ آقا. قراره Ùردا سر ظهر بیاند این جا آقا Ùˆ همین جا قالش رو بکنند. - -Ùˆ Ùردا اصلاً مدرسه نرÙتم. حتماً می‌خواست من هم باشم Ùˆ در بده بستان ماهی پانزده قران، حق نظاÙت هر اتاق نظارت کنم Ùˆ از مدیریتم مایه بگذارم تا تنخواه‌گردان مدرسه Ùˆ حق آب Ùˆ دیگر پول‌های عقب‌اÙتاده وصول بشود... Ùردا سه Ù†Ùری آمده بودند مدرسه. ناهار هم به خرج ناظم خورده بودند. Ùˆ قرار دیگری برای یک سور حسابی گذاشته بودند Ùˆ رÙته بودند Ùˆ ناظم با زبان بی‌زبانی حالیم کرد Ú©Ù‡ این بار حتماً باید باشم Ùˆ آن طور Ú©Ù‡ می‌گÙت، جای شکرش باقی بود Ú©Ù‡ مراعات کرده بودند Ùˆ حق بوقی نخواسته بودند. اولین باری بود Ú©Ù‡ چنین اهمیتی پیدا می‌کردم. این هم یک مزیت دیگر مدیری مدرسه بود! سی صد تومان از بودجه‌ی دولت بسته به این بود Ú©Ù‡ به Ùلان مجلس بروی یا نروی. تا سه روز دیگر موعد سور بود، اصلاً یادم نیست Ú†Ù‡ کردم. اما همه‌اش در این Ùکر بودم Ú©Ù‡ بروم یا نروم؟ یک بار دیگر استعÙانامه‌ام را توی جیبم گذاشتم Ùˆ بی این Ú©Ù‡ صدایش را در بیاورم، روز سور هم نرÙتم. - -بعد دیدم این طور Ú©Ù‡ نمی‌شود. Ú¯Ùتم بروم قضایا را برای رئیس Ùرهنگ بگویم. Ùˆ رÙتم. سلام Ùˆ احوالپرسی نشستم. اما Ú†Ù‡ بگویم؟ بگویم چون نمی‌خواستم در خوردن سور شرکت کنم، استعÙا می‌دهم؟... دیدم چیزی ندارم Ú©Ù‡ بگویم. Ùˆ از این گذشته Ø®Ùت‌آور نبود Ú©Ù‡ به خاطر سیصد تومان جا بزنم Ùˆ استعÙا بدهم؟ Ùˆ «خداحاÙظ؛ Ùقط آمده بودم سلام عرض کنم.» Ùˆ از این دروغ‌ها Ùˆ استعÙانامه‌ام را توی جوی آب انداختم. اما ناظم؛ یک Ù‡Ùته‌ای مثل سگ بود. عصبانی، پر سر Ùˆ صدا Ùˆ شارت Ùˆ شورت! حتی نرÙتم احوال مادرش را بپرسم. یک Ù‡Ùته‌ی تمام می‌رÙتم Ùˆ در اتاقم را می‌بستم Ùˆ سوراخ‌های گوشم را می‌گرÙتم Ùˆ تا اÙز Ùˆ Ú†Ùزّ بچه‌ها بخوابد، از این سر تا آن سر اتاق را می‌کوبیدم. ده روز تمام، قلب من Ùˆ بچه‌ها با هم Ùˆ به یک اندازه از ترس Ùˆ وحشت تپید. تا عاقبت پول‌ها وصول شد. منتها به جای سیصد Ùˆ خرده‌ای، Ùقط صد Ùˆ پنجاه تومان. علت هم این بود Ú©Ù‡ در تنظیم صورت حساب‌ها اشتباهاتی رخ داده بود Ú©Ù‡ ناچار اصلاحش کرده بودند! - -غیر از آن زنی Ú©Ù‡ Ù‡Ùته‌ای یک بار به مدرسه سری می‌زد، از اولیای اطÙال دو سه Ù†Ùر دیگر هم بودند Ú©Ù‡ مرتب بودند. یکی همان پاسبانی Ú©Ù‡ با کمربند، پاهای پسرش را بست Ùˆ ÙÙ„Ú© کرد. یکی هم کارمند پست Ùˆ تلگراÙÛŒ بود Ú©Ù‡ ده روزی یک بار می‌آمد Ùˆ پدر همان بچه‌ی شیطان. Ùˆ یک استاد نجار Ú©Ù‡ پسرش کلاس اول بود Ùˆ خودش سواد داشت Ùˆ به آن می‌بالید Ùˆ کارآمد می‌نمود. یک مقنی هم بود درشت استخوان Ùˆ بلندقد Ú©Ù‡ بچه‌اش کلاس سوم بود Ùˆ Ù‡Ùته‌ای یک بار می‌آمد Ùˆ همان توی حیاط، ده پانزده دقیقه‌ای با Ùراش‌ها اختلاط می‌کرد Ùˆ بی سر Ùˆ صدا می‌رÙت. نه کاری داشت، نه چیزی از آدم می‌خواست Ùˆ همان طور Ú©Ù‡ آمده بود چند دقیقه‌ای را با Ùراش صحبت می‌کرد Ùˆ بعد Ù…ÛŒ رÙت. Ùقط یک روز نمی‌دانم چرا رÙته بود بالای دیوار مدرسه. البته اول Ùکر کردم مأمور اداره برق است ولی بعد متوجه شدم Ú©Ù‡ همان مرد مقنی است. بچه‌ها جیغ Ùˆ Ùریاد می‌کردند Ùˆ من همه‌اش درین Ùکر بودم Ú©Ù‡ Ú†Ù‡ طور به سر دیوار رÙته است؟ ماحصل داد Ùˆ Ùریادش این بود Ú©Ù‡ چرا اسم پسر او را برای گرÙتن Ú©ÙØ´ Ùˆ لباس به انجمن ندادیم. وقتی به او رسیدم نگاهی به او انداختم Ùˆ بعد تشری به ناظم Ùˆ معلم ها زدم Ú©Ù‡ ولش کردند Ùˆ بچه‌ها رÙتند سر کلاس Ùˆ بعد بی این Ú©Ù‡ نگاهی به او بکنم، Ú¯Ùتم: - -- خسته نباشی اوستا. - -Ùˆ همان طور Ú©Ù‡ به طر٠دÙتر می‌رÙتم رو به ناظم Ùˆ معلم‌ها اÙزودم: - -- لابد جواب درست Ùˆ حسابی نشنیده Ú©Ù‡ رÙته سر دیوار. - -Ú©Ù‡ پشت سرم گرپ صدایی آمد Ùˆ از در دÙتر Ú©Ù‡ رÙتم تو، او Ùˆ ناظم با هم وارد شدند. Ú¯Ùتم نشست. Ùˆ به جای این‌که حرÙÛŒ بزند به گریه اÙتاد. هرگز گمان نمی‌کردم از چنان قد Ùˆ قامتی صدای گریه در بیاید. این بود Ú©Ù‡ از اتاق بیرون آمدم Ùˆ Ùراش را صدا زدم Ú©Ù‡ آب برایش بیاورد Ùˆ حالش Ú©Ù‡ جا آمد، بیاوردش پهلوی من. اما دیگر از او خبری نشد Ú©Ù‡ نشد. نه آن روز Ùˆ نه هیچ روز دیگر. آن روز چند دقیقه‌ای بعد از شیشه‌ی اتاق خودم دیدمش Ú©Ù‡ دمش را لای پایش گذاشته بود از در مدرسه بیرون می‌رÙت Ùˆ Ùراش جدید آمد Ú©Ù‡ بله می‌گÙتند از پسرش پنج تومان خواسته بودند تا اسمش را برای Ú©ÙØ´ Ùˆ لباس به انجمن بدهند. پیدا بود باز توی Ú©ÙˆÚ© ناظم رÙته است. مرخصش کردم Ùˆ ناظم را خواستم. معلوم شد می‌خواسته ناظم را بزند. همین جوری Ùˆ بی‌مقدمه. - -اواخر بهمن بود Ú©Ù‡ یکی از روزهای برÙÛŒ با یکی دیگر از اولیای اطÙال آشنا شدم. یارو مرد بسیار کوتاهی بود؛ Ùرنگ مآب Ùˆ بزک کرده Ùˆ اتو کشیده Ú©Ù‡ ننشسته از تحصیلاتش Ùˆ از سÙرهای Ùرنگش حر٠زد. می‌خواست پسرش را آن وقت سال از مدرسه‌ی دیگر به آن جا بیاورد. پسرش از آن بچه‌هایی بود Ú©Ù‡ شیر Ùˆ مربای صبحانه‌اش را با قربان صدقه توی حلقشان می‌تپانند. کلاس دوم بود Ùˆ ثلث اول دو تا تجدید آورده بود. می‌گÙت در باغ ییلاقی‌اش Ú©Ù‡ نزدیک مدرسه است، باغبانی دارند Ú©Ù‡ پسرش شاگرد ماست Ùˆ درس‌خوان است Ùˆ پیدا است Ú©Ù‡ بچه‌ها زیر سایه شما خوب پیشرÙت می‌کنند. Ùˆ از این پیزرها. Ùˆ حال به خاطر همین بچه، توی این بر٠و سرما، آمده‌اند ساکن باغ ییلاقی شده‌اند. بلند شدم ناظم را صدا کردم Ùˆ دست او Ùˆ بچه‌اش را توی دست ناظم گذاشتم Ùˆ خداحاÙظ شما... Ùˆ نیم ساعت بعد ناظم برگشت Ú©Ù‡ یارو خانه‌ی شهرش را به یک دبیرستان اجاره داده، به ماهی سه هزار Ùˆ دویست تومان، Ùˆ التماس دعا داشته، یعنی معلم سرخانه می‌خواسته Ùˆ حتی بدش نمی‌آمده است Ú©Ù‡ خود مدیر زحمت بکشند Ùˆ ازین گنده‌گوزی‌ها... احساس کردم Ú©Ù‡ ناظم دهانش آب اÙتاده است. Ùˆ من به ناظم حالی کردم خودش برود بهتر است Ùˆ Ùقط کاری بکند Ú©Ù‡ نه صدای معلم‌ها در بیاید Ùˆ نه آخر سال، برای یک معدل ده احتیاجی به من بمیرم Ùˆ تو بمیری پیدا کند. همان روز عصر ناظم رÙته بود Ùˆ قرار Ùˆ مدار برای هر روز عصر یک ساعت به ماهی صد Ùˆ پنجاه تومان. - -دیگر دنیا به کام ناظم بود. حال مادرش هم بهتر بود Ùˆ از بیمارستان مرخصش کرده بودند Ùˆ به Ùکر زن گرÙتن اÙتاده بود. Ùˆ هر روز هم برای یک Ù†Ùر نقشه می‌کشید حتی برای من هم. یک روز در آمد Ú©Ù‡ چرا ما خودمان «انجمن خانه Ùˆ مدرسه» نداشته باشیم؟ نشسته بود Ùˆ حسابش را کرده بود دیده بود Ú©Ù‡ پنجاه شصت Ù†Ùری از اولیای مدرسه دستشان به دهان‌شان می‌رسد Ùˆ از آن هم Ú©Ù‡ به پسرش درس خصوصی می‌داد قول مساعد گرÙته بود. حالیش کردم Ú©Ù‡ مواظب حر٠و سخن اداره‌ای باشد Ùˆ هر کار دلش می‌خواهد بکند. کاغذ دعوت را هم برایش نوشتم با آب Ùˆ تاب Ùˆ خودش برای اداره‌ی Ùرهنگ، داد ماشین کردند Ùˆ به وسیله‌ی خود بچه‌ها Ùرستاد. Ùˆ جلسه با حضور بیست Ùˆ چند Ù†Ùری از اولیای بچه‌ها رسمی شد. خوبیش این بود Ú©Ù‡ پاسبان کشیک پاسگاه هم آمده بود Ùˆ دم در برای همه، پاشنه‌هایش را به هم می‌کوبید Ùˆ معلم‌ها گوش تا گوش نشسته بودند Ùˆ مجلس ابهتی داشت Ùˆ ناظم، چای Ùˆ شیرینی تهیه کرده بود Ùˆ چراغ زنبوری کرایه کرده بود Ùˆ باران هم گذاشت پشتش Ùˆ سالون برای اولین بار در عمرش به نوایی رسید. - -یک سرهنگ بود Ú©Ù‡ رئیسش کردیم Ùˆ آن زن را Ú©Ù‡ Ù‡Ùته‌ای یک بار می‌آمد نایب رئیس. آن Ú©Ù‡ ناظم به پسرش درس خصوصی می‌داد نیامده بود. اما پاکت سربسته‌ای به اسم مدیر Ùرستاده بود Ú©Ù‡ Ùی‌المجلس بازش کردیم. عذرخواهی از این‌که نتوانسته بود بیاید Ùˆ وجه ناقابلی جو٠پاکت. صد Ùˆ پنجاه تومان. Ùˆ پول را روی میز صندوق‌دار گذاشتیم Ú©Ù‡ ضبط Ùˆ ربط کند. نائب رئیس بزک کرده Ùˆ معطر شیرینی تعار٠می‌کرد Ùˆ معلم‌ها با هر بار Ú©Ù‡ شیرینی بر می‌داشتند، یک بار تا بناگوش سرخ می‌شدند Ùˆ Ùراش‌ها دست به دست چای می‌آوردند. - -در Ùکر بودم Ú©Ù‡ یک مرتبه احساس کردم، سیصد چهارصد تومان پول نقد، روی میز است Ùˆ هشت صد تومان هم تعهد کرده بودند. پیرزن صندوقدار Ú©Ù‡ کی٠پولش را همراهش نیاورده بود ناچار حضار تصویب کردند Ú©Ù‡ پول‌ها Ùعلاً پیش ناظم باشد. Ùˆ صورت مجلس مرتب شد Ùˆ امضاها ردی٠پای آن Ùˆ Ùردا Ùهمیدم Ú©Ù‡ ناظم همان شب روی خشت نشسته بوده Ùˆ به معلم‌ها سور داده بوده است. اولین کاری Ú©Ù‡ کردم رونوشت مجلس آن شب را برای اداره‌ی Ùرهنگ Ùرستادم. Ùˆ بعد همان استاد نجار را صدا کردم Ùˆ دستور دادم برای مستراح‌ها دو روزه در بسازد Ú©Ù‡ ناظم خیلی به سختی پولش را داد. Ùˆ بعد در کوچه‌ی مدرسه درخت کاشتیم. تور والیبال را تعویض Ùˆ تعدادی توپ در اختیار بچه‌ها گذاشتیم برای تمرین در بعد از ظهرها Ùˆ آمادگی برای مسابقه با دیگر مدارس Ùˆ در همین حین سر Ùˆ کله‌ی بازرس تربیت بدنی هم پیدا شد Ùˆ هر روز سرکشی Ùˆ بیا Ùˆ برو. تا یک روز Ú©Ù‡ به مدرسه رسیدم شنیدم Ú©Ù‡ از سالون سر Ùˆ صدا می‌آید. صدای هالتر بود. ناظم سر خود رÙته بود Ùˆ سرخود دویست سیصد تومان داده بود Ùˆ هالتر خریده بود Ùˆ بچه‌های لاغر زیر بار آن گردن خود را خرد می‌کردند. من در این میان حرÙÛŒ نزدم. می‌توانستم حرÙÛŒ بزنم؟ من چیکاره بودم؟ اصلاً به من Ú†Ù‡ ربطی داشت؟ هر کار Ú©Ù‡ دلشان می‌خواهد بکنند. مهم این بود Ú©Ù‡ سالون مدرسه رونقی گرÙته بود. ناظم هم راضی بود Ùˆ معلم‌ها هم. چون نه خبر از حسادتی بود Ùˆ نه حر٠و سخنی پیش آمد. Ùقط می‌بایست به ناظم سÙارش Ù…ÛŒ کردم Ú©Ù‡ Ùکر Ùراش‌ها هم باشد. - -Ú©Ù… Ú©Ù… خودمان را برای امتحان‌های ثلث دوم آماده می‌کردیم. این بود Ú©Ù‡ اوایل اسÙند، یک روز معلم‌ها را صدا زدم Ùˆ در شورا مانندی Ú©Ù‡ کردیم بی‌مقدمه برایشان داستان یکی از همکاران سابقم را Ú¯Ùتم Ú©Ù‡ هر وقت بیست می‌داد تا دو روز تب داشت. البته معلم‌ها خندیدند. ناچار تشویق شدم Ùˆ داستان آخوندی را Ú¯Ùتم Ú©Ù‡ در بچگی معلم شرعیاتمان بود Ùˆ زیر عبایش نمره می‌داد Ùˆ دستش چنان می‌لرزید Ú©Ù‡ عبا تکان می‌خورد Ùˆ درست ده دقیقه طول می‌کشید. Ùˆ تازه چند؟ بهترین شاگردها دوازده. Ùˆ البته باز هم خندیدند. Ú©Ù‡ این بار کلاÙه‌ام کرد. Ùˆ بعد حالیشان کردم Ú©Ù‡ بد نیست در طرح سؤال‌ها مشورت کنیم Ùˆ از این حرÙ‌ها... - -Ùˆ از شنبه‌ی بعد، امتحانات شروع شد. درست از نیمه‌ی دوم اسÙند. سؤال‌ها را سه Ù†Ùری می‌دیدیم. خودم با معلم هر کلاس Ùˆ ناظم. در سالون میزها را چیده بودیم البته از وقتی هالتردار شده بود خیلی زیباتر شده بود. در سالون کاردستی‌های بچه‌ها در همه جا به چشم می‌خورد. هر کسی هر چیزی را به عنوان کاردستی درست کرده بودند Ùˆ آورده بودند. Ú©Ù‡ برای این کاردستی‌ها Ú†Ù‡ پول‌ها Ú©Ù‡ خرج نشده بود Ùˆ Ú†Ù‡ دست‌ها Ú©Ù‡ نبریده بود Ùˆ Ú†Ù‡ دعواها Ú©Ù‡ نشده بود Ùˆ Ú†Ù‡ عرق‌ها Ú©Ù‡ ریخته نشده بود. پیش از هر امتحان Ú©Ù‡ می‌شد، خودم یک میتینگ برای بچه‌ها می‌دادم Ú©Ù‡ ترس از معلم Ùˆ امتحان بی‌جا است Ùˆ باید اعتماد به Ù†Ùس داشت Ùˆ ازین مزخرÙات....ولی مگر حر٠به گوش کسی می‌رÙت؟ از در Ú©Ù‡ وارد می‌شدند، چنان هجومی می‌بردند Ú©Ù‡ Ù†Ú¯Ùˆ! به جاهای دور از نظر. یک بار چنان بود Ú©Ù‡ احساس کردم مثل این‌که از ترس، لذت می‌برند. اگر معلم نبودی یا مدیر، به راحتی می‌توانستی حدس بزنی Ú©Ù‡ کی‌ها با هم قرار Ùˆ مداری دارند Ùˆ کدام یک پهلو دست کدام یک خواهد نشست. یکی دو بار کوشیدم بالای دست یکی‌شان بایستم Ùˆ ببینم Ú†Ù‡ می‌نویسد. ولی چنان مضطرب می‌شدند Ùˆ دستشان به لرزه می‌اÙتاد Ú©Ù‡ از نوشتن باز می‌ماندند. می‌دیدم Ú©Ù‡ این مردان آینده، درین کلاس‌ها Ùˆ امتحان‌ها آن قدر خواهند ترسید Ú©Ù‡ وقتی دیپلمه بشوند یا لیسانسه، اصلاً آدم نوع جدیدی خواهند شد. آدمی انباشته از وحشت، انبانی از ترس Ùˆ دلهره. به این ترتیب یک روز بیشتر دوام نیاوردم. چون دیدم نمی‌توانم قلب بچگانه‌ای داشته باشم تا با آن ترس Ùˆ وحشت بچه‌ها را درک کنم Ùˆ هم‌دردی نشان بدهم.این جور بود Ú©Ù‡ می‌دیدم Ú©Ù‡ معلم مدرسه هم نمی‌توانم باشم. - -دو روز قبل از عید کارنامه‌ها آماده بود Ùˆ منتظر امضای مدیر. دویست Ùˆ سی Ùˆ شش تا امضا اقلاً تا ظهر طول می‌کشید. پیش از آن هم تا می‌توانستم از امضای دÙترهای حضور Ùˆ غیاب می‌گریختم. خیلی از جیره‌خورهای دولت در ادارات دیگر یا در میان همکارانم دیده بودم Ú©Ù‡ در مواقع بیکاری تمرین امضا می‌کنند. پیش از آن نمی‌توانستم بÙهمم Ú†Ù‡ طور از مدیری یک مدرسه یا کارمندی ساده یک اداره می‌شود به وزارت رسید. یا اصلاً آرزویش را داشت. نیم‌قراضه امضای آماده Ùˆ هر کدام معر٠یک شخصیت، بعد نیم‌ذرع زبان چرب Ùˆ نرم Ú©Ù‡ با آن، مار را از سوراخ بیرون بکشی، یا همه جا را بلیسی Ùˆ یک دست هم قیاÙÙ‡. نه یک جور. دوازده جور. - -در این Ùکرها بودم Ú©Ù‡ ناگهان در میان کارنامه‌ها چشمم به یک اسم آشنا اÙتاد. به اسم پسران جناب سرهنگ Ú©Ù‡ رئیس انجمن بود. رÙتم توی نخ نمراتش. همه متوسط بود Ùˆ جای ایرادی نبود. Ùˆ یک مرتبه به صراÙت اÙتادم Ú©Ù‡ از اول سال تا به حال بچه‌های مدرسه را Ùقط به اعتبار وضع مالی پدرشان قضاوت کرده‌ام. درست مثل این پسر سرهنگ Ú©Ù‡ به اعتبار کیابیای پدرش درس نمی‌خواند. دیدم هر کدام Ú©Ù‡ پدرشان Ùقیرتر است به نظر من باهوش‌تر می‌آمده‌اند. البته ناظم با این حرÙ‌ها کاری نداشت. مر قانونی را عمل می‌کرد. از یکی چشم می‌پوشید به دیگری سخت می‌گرÙت. - -اما من مثل این Ú©Ù‡ قضاوتم را درباره‌ی بچه‌ها از پیش کرده باشم Ùˆ Ú†Ù‡ خوب بود Ú©Ù‡ نمره‌ها در اختیار من نبود Ùˆ آن یکی هم «انظباط» مال آخر سال بود. مسخره‌ترین کارها آن است Ú©Ù‡ کسی به اصلاح وضعی دست بزند، اما در قلمروی Ú©Ù‡ تا سر دماغش بیشتر نیست. Ùˆ تازه مدرسه‌ی من، این قلمروی Ùعالیت من، تا سر دماغم هم نبود. به همان توی ذهنم ختم می‌شد. وضعی را Ú©Ù‡ دیگران ترتیب داده بودند. به این ترتیب بعد از پنج شش ماه، می‌Ùهمیدم Ú©Ù‡ حسابم یک حساب عقلایی نبوده است. احساساتی بوده است. ضعÙ‌های احساساتی مرا خشونت‌های عملی ناظم جبران می‌کرد Ùˆ این بود Ú©Ù‡ جمعاً نمی‌توانستم ازو بگذرم. مرد عمل بود. کار را می‌برید Ùˆ پیش می‌رÙت. در زندگی Ùˆ در هر کاری، هر قدمی بر می‌داشت، برایش هد٠بود. Ùˆ چشم از وجوه دیگر قضیه می‌پوشید. این بود Ú©Ù‡ برش داشت. Ùˆ من نمی‌توانستم. چرا Ú©Ù‡ اصلاً مدیر نبودم. خلاص... - -Ùˆ کارنامه‌ی پسر سرهنگ را Ú©Ù‡ زیر دستم عرق کرده بود، به دقت Ùˆ احتیاج خشک کردم Ùˆ امضایی زیر آن گذاشتم به قدری بد خط Ùˆ مسخره بود Ú©Ù‡ به یاد امضای Ùراش جدیدمان اÙتادم. حتماً جناب سرهنگ کلاÙÙ‡ می‌شد Ú©Ù‡ چرا چنین آدم بی‌سوادی را با این خط Ùˆ ربط امضا مدیر مدرسه کرده‌اند. آخر یک جناب سرهنگ هم می‌داند Ú©Ù‡ امضای آدم معر٠شخصیت آدم است. - -اواخر تعطیلات نوروز رÙتم به ملاقات معلم ترکه‌ای کلاس سوم. ناظم Ú©Ù‡ با او میانه‌ی خوشی نداشت. ناچار با معلم حساب کلاس پنج Ùˆ شش قرار Ùˆ مداری گذاشته بودم Ú©Ù‡ مختصری علاقه‌ای هم به آن حر٠و سخن‌ها داشت. هم به وسیله‌ی او بود Ú©Ù‡ می‌دانستم نشانی‌اش کجا است Ùˆ توی کدام زندان است. در راه قبل از هر چیز خبر داد Ú©Ù‡ رئیس Ùرهنگ عوض شده Ùˆ این طور Ú©Ù‡ شایع است یکی از هم دوره‌ای‌های من، جایش آمده. Ú¯Ùتم: - -- عجب! چرا؟ Ù…Ú¯Ù‡ رئیس قبلی چپش Ú©Ù… بود؟ - -- Ú†Ù‡ عرض کنم. می‌گند پا تو Ú©ÙØ´ یکی از نماینده‌ها کرده. شما خبر ندارید؟ - -- Ú†Ù‡ طور؟ از کجا خبر داشته باشم؟ - -- هیچ Ú†ÛŒ... Ù…ÛŒ گند دو تا از کارچاق‌کن‌های انتخاباتی یارو از صندوق Ùرهنگ حقوق می‌گرÙته‌اند؛ شب عیدی رئیس Ùرهنگ حقوق‌شون رو زده. - -- عجب! پس اونم می‌خواسته اصلاحات کنه! بیچاره. - -Ùˆ بعد از این حر٠زدیم Ú©Ù‡ الحمدالله مدرسه مرتب است Ùˆ آرام Ùˆ معلم‌ها همکاری می‌کنند Ùˆ ناظم بیش از اندازه همه‌کاره شده است. Ùˆ من Ùهمیدم Ú©Ù‡ باز لابد مشتری خصوصی تازه‌ای پیدا شده است Ú©Ù‡ سر Ùˆ صدای همه همکارها بلند شده. دم در زندان شلوغ بود. کلاه مخملی‌ها، عم‌قزی گل‌بته‌ها، خاله خانباجی‌ها Ùˆ... اسم نوشتیم Ùˆ نوبت گرÙتیم Ùˆ به جای پاها، دست‌هامان زیر بار Ú©ÙˆÚ†Ú©ÛŒ Ú©Ù‡ داشتیم، خسته شد Ùˆ خواب رÙت تا نوبتمان شد. از این اتاق به آن اتاق Ùˆ عاقبت نرده‌های آهنی Ùˆ پشت آن معلم کلاس سه Ùˆ... عجب چاق شده بود!درست مثل یک آدم حسابی شده بود. خوشحال شدیم Ùˆ احوالپرسی Ùˆ تشکر؛ Ùˆ دیگر Ú†Ù‡ بگویم؟ بگویم چرا خودت را به دردسر انداختی؟ پیدا بود از مدرسه Ùˆ کلاس به او خوش‌تر می‌گذرد. ایمانی بود Ùˆ او آن را داشت Ùˆ خوشبخت بود Ùˆ دردسری نمی‌دید Ùˆ زندان حداقل برایش کلاس درس بود. عاقبت پرسیدم: - -- پرونده‌ای هم برات درست کردند یا هنوز بلاتکلیÙی؟ - -- امتحانمو دادم آقا مدیر، بد از آب در نیومد. - -- یعنی چه؟ - -- یعنی بی‌تکلی٠نیستم. چون اسمم تو لیست جیره‌ی زندون رÙته. خیالم راحته. چون سختی‌هاش گذشته. - -دیگر Ú†Ù‡ بگویم. دیدم چیزی ندارم خداحاÙظی کردم Ùˆ او را با معلم حساب تنها گذاشتم Ùˆ آمدم بیرون Ùˆ تا مدت ملاقات تمام بشود، دم در زندان قدم زدم Ùˆ به زندانی Ùکر کردم Ú©Ù‡ برای خودم ساخته بودم. یعنی آن خرپول Ùرهنگ‌دوست ساخته بود. Ùˆ من به میل Ùˆ رغبت خودم را در آن زندانی کرده بودم. این یکی را به ضرب دگنک این جا آورده بودند. ناچار حق داشت Ú©Ù‡ خیالش راحت باشد. اما من به میل Ùˆ رغبت رÙته بودم Ùˆ Ú†Ù‡ بکنم؟ ناظم Ú†Ù‡ طور؟ راستی اگر رئیس Ùرهنگ از هم دوره‌ای‌های خودم باشد؛ Ú†Ù‡ طور است بروم Ùˆ ازو بخواهم Ú©Ù‡ ناظم را جای من بگذارد، یا همین معلم حساب را؟... Ú©Ù‡ معلم حساب در آمد Ùˆ راه اÙتادیم. با او هم دیگر حرÙÛŒ نداشتم. سر پیچ خداحاÙظ شما Ùˆ تاکسی گرÙتم Ùˆ یک سر به اداره‌ی Ùرهنگ زدم. گرچه دهم عید بود، اما هنوز رÙت Ùˆ آمد سال نو تمام نشده بود. برو Ùˆ بیا Ùˆ شیرینی Ùˆ چای دو جانبه. رÙتم تو. سلام Ùˆ تبریک Ùˆ همین تعارÙات را پراندم. - -بله خودش بود. یکی از پخمه‌های کلاس. Ú©Ù‡ آخر سال سوم کشتیارش شدم دو بیت شعر را Ø­Ùظ کند، نتوانست Ú©Ù‡ نتوانست. Ùˆ حالا او رئیس بود Ùˆ من آقا مدیر. راستی حی٠از من، Ú©Ù‡ حتی وزیر چنین رئیس Ùرهنگ‌هایی باشم! میز همان طور پاک بود Ùˆ رÙته. اما زیرسیگاری انباشته از خاکستر Ùˆ ته سیگار. بلند شد Ùˆ چلپ Ùˆ چولوپ روبوسی کردیم Ùˆ پهلوی خودش جا باز کرد Ùˆ گوش تا گوش جیره‌خورهای Ùرهنگ تبریکات صمیمانه Ùˆ بدگویی از ماسبق Ùˆ هندوانه Ùˆ پیزرها! Ùˆ دو Ù†Ùر Ú©Ù‡ قد Ùˆ قواره‌شان به درد گود زورخانه می‌خورد یا پای صندوق انتخابات شیرینی به مردم می‌دادند. نزدیک بود شیرینی را توی ظرÙØ´ بیندازم Ú©Ù‡ دیدم بسیار احمقانه است. سیگارم Ú©Ù‡ تمام شد قضیه‌ی رئیس Ùرهنگ قبلی Ùˆ آن دو Ù†Ùر را در گوشی ازش پرسیدم، حرÙÛŒ نزد. Ùقط نگاهی می‌کرد Ú©Ù‡ شبیه التماس بود Ùˆ من Ùرصت جستم تا وضع معلم کلاس سوم را برایش روشن کنم Ùˆ از او بخواهم تا آن جا Ú©Ù‡ می‌تواند جلوی حقوقش را نگیرد. Ùˆ از در Ú©Ù‡ آمدم بیرون، تازه یادم آمد Ú©Ù‡ برای کار دیگری پیش رئیس Ùرهنگ بودم. - -باز دیروز اÙتضاحی به پا شد. معقول یک ماهه‌ی Ùروردین راحت بودیم. اول اردیبهشت ماه جلالی Ùˆ کوس رسوایی سر دیوار مدرسه. نزدیک آخر وقت یک جÙت پدر Ùˆ مادر، بچه‌شان در میان، وارد اتاق شدند. یکی بر اÙروخته Ùˆ دیگری رنگ Ùˆ رو باخته Ùˆ بچه‌شان عیناً مثل این عروسک‌های Ú©ÙˆÚ©ÛŒ. سلام Ùˆ علیک Ùˆ نشستند. خدایا دیگر Ú†Ù‡ اتÙاقی اÙتاده است؟ - -- Ú†Ù‡ خبر شده Ú©Ù‡ با خانوم سراÙرازمون کردید؟ - -مرد اشاره‌ای به زنش کرد Ú©Ù‡ بلند شد Ùˆ دست بچه را گرÙت Ùˆ رÙت بیرون Ùˆ من ماندم Ùˆ پدر. اما حر٠نمی‌زد. به خودش Ùرصت می‌داد تا عصبانیتش بپزد. سیگارم را در آوردم Ùˆ تعارÙØ´ کردم. مثل این Ú©Ù‡ مگس مزاحمی را از روی دماغش بپراند، سیگار را رد کرد Ùˆ من Ú©Ù‡ سیگارم را آتش می‌زدم، Ùکر کردم لابد دردی دارد Ú©Ù‡ چنین دست Ùˆ پا بسته Ùˆ چنین متکی به خانواده به مدرسه آمده. باز پرسیدم: - -- خوب، حالا Ú†Ù‡ Ùرمایش داشتید؟ - -Ú©Ù‡ یک مرتبه ترکید: - -- اگه من مدیر مدرسه بودم Ùˆ هم‌چه اتÙاقی می‌اÙتاد، شیکم خودمو پاره می‌کردم. خجالت بکش مرد! برو استعÙا بده. تا اهل محل نریختن تیکه تیکه‌ات کنند، دو تا گوشتو وردار Ùˆ دررو. بچه‌های مردم می‌آن این جا درس بخونن Ùˆ حسن اخلاق. نمی‌آن Ú©Ù‡... - -- این مزخرÙات کدومه آقا! حر٠حساب سرکار چیه؟ - -Ùˆ حرکتی کردم Ú©Ù‡ او را از در بیندازم بیرون. اما آخر باید می‌Ùهمیدم Ú†Ù‡ مرگش است. «ولی آخر با من Ú†Ù‡ کار دارد؟» - -- آبروی من رÙته. آبروی صد ساله‌ی خونواده‌ام رÙته. اگه در مدرسه‌ی تو رو تخته نکنم، تخم بابام نیستم. آخه من دیگه با این بچه Ú†ÛŒ کار کنم؟ تو این مدرسه ناموس مردم در خطره. کلانتری Ùهمیده؛ پزشک قانونی Ùهمیده؛ یک پرونده درست شده پنجاه ورق؛ تازه می‌گی حر٠حسابم چیه؟ حر٠حسابم اینه Ú©Ù‡ صندلی Ùˆ این مقام از سر تو زیاده. حر٠حسابم اینه Ú©Ù‡ می‌دم محاکمه‌ات کنند Ùˆ از نون خوردن بندازنت... - -او می‌گÙت Ùˆ من گوش می‌کردم Ùˆ مثل دو تا سگ هار به جان هم اÙتاده بودیم Ú©Ù‡ در باز شد Ùˆ ناظم آمد تو. به دادم رسید. در همان حال Ú©Ù‡ من Ùˆ پدر بچه در حال دعوا بودیم زن Ùˆ بچه همان آقا رÙته بودند Ùˆ قضایا را برای ناظم تعری٠کرده بودند Ùˆ او Ùرستاده بوده Ùاعل را از کلاس کشیده بودند بیرون... Ùˆ Ú¯Ùت Ú†Ù‡ طور است زنگ بزنیم Ùˆ جلوی بچه‌ها ادبش کنیم Ùˆ کردیم. یعنی این بار خود من رÙتم میدان. پسرک نره‌خری بود از پنجمی‌ها با لباس مرتب Ùˆ صورت سرخ Ùˆ سÙید Ùˆ سالکی به گونه. جلوی روی بچه‌ها کشیدمش زیر مشت Ùˆ لگد Ùˆ بعد سه تا از ترکه‌ها را Ú©Ù‡ Ùراش جدید Ùوری از باغ همسایه آورده بود، به سر Ùˆ صورتش خرد کردم. چنان وحشی شده بودم Ú©Ù‡ اگر ترکه‌ها نمی‌رسید، پسرک را کشته بودم. این هم بود Ú©Ù‡ ناظم به دادش رسید Ùˆ وساطت کرد Ùˆ لاشه‌اش را توی دÙتر بردند Ùˆ بچه‌ها را مرخص کردند Ùˆ من به اتاقم برگشتم Ùˆ با حالی زار روی صندلی اÙتادم، نه از پدر خبری بود Ùˆ نه از مادر Ùˆ نه از عروسک‌های کوکی‌شان Ú©Ù‡ ناموسش دست کاری شده بود. Ùˆ تازه احساس کردم Ú©Ù‡ این کتک‌کاری را باید به او می‌زدم. خیس عرق بودم Ùˆ دهانم تلخ بود. تمام Ùحش‌هایی Ú©Ù‡ می‌بایست به آن مردکه‌ی دبنگ می‌دادم Ùˆ نداده بودم، در دهانم رسوب کرده بود Ùˆ مثل دم مار تلخ شده بود. اصلاً چرا زدمش؟ چرا نگذاشتم مثل همیشه ناظم میدان‌داری کند Ú©Ù‡ هم کارکشته‌تر بود Ùˆ هم خونسردتر. لابد پسرک با دخترعمه‌اش هم نمی‌تواند بازی کند. لابد توی خانواده‌شان، دخترها سر ده دوازده سالگی باید از پسرهای هم سن رو بگیرند. نکند عیبی کرده باشد؟ Ùˆ یک مرتبه به صراÙت اÙتادم Ú©Ù‡ بروم ببینم Ú†Ù‡ بلایی به سرش آورده‌ام. بلند شدم Ùˆ یکی از Ùراش‌ها را صدا کردم Ú©Ù‡ Ùهمیدم روانه‌اش کرده‌اند. آبی آورد Ú©Ù‡ روی دستم می‌ریخت Ùˆ صورتم را می‌شستم Ùˆ می‌کوشیدم Ú©Ù‡ لرزش دست‌هایم را نبیند. Ùˆ در گوشم آهسته Ú¯Ùت Ú©Ù‡ پسر مدیر شرکت اتوبوسرانی است Ùˆ بدجوری کتک خورده Ùˆ آن‌ها خیلی سعی کرده‌اند Ú©Ù‡ تر Ùˆ تمیزش کنند... - -احمق مثلا داشت توی دل مرا خالی می‌کرد. نمی‌دانست Ú©Ù‡ من اول تصمیم را گرÙتم، بعد مثل سگ هار شدم. Ùˆ تازه می‌Ùهمیدم کسی را زده‌ام Ú©Ù‡ لیاقتش را داشته. حتماً از این اتÙاق‌ها جای دیگر هم می‌اÙتد. آدم بردارد پایین تنه بچه‌ی خودش را، یا به قول خودش ناموسش را بگذارد سر گذر Ú©Ù‡ کلانتر محل Ùˆ پزشک معاینه کنند! تا پرونده درست کنند؟ با این پدرو مادرها بچه‌ها حق دارند Ú©Ù‡ قرتی Ùˆ دزد Ùˆ دروغگو از آب در بیایند. این مدرسه‌ها را اول برای پدر Ùˆ مادرها باز کنند... - -با این اÙکار به خانه رسیدم. زنم در را Ú©Ù‡ باز کرد؛ چشم‌هایش گرد شد. همیشه وقتی می‌ترسد این طور می‌شود. برای اینکه خیال نکند آدم کشته‌ام، زود قضایا را برایش Ú¯Ùتم. Ùˆ دیدم Ú©Ù‡ در ماند. یعنی ساکت ماند. آب سرد، عرق بیدمشک، سیگار پشت سیگار Ùایده نداشت، لقمه از گلویم پایین نمی‌رÙت Ùˆ دست‌ها هنوز می‌لرزید. هر کدام به اندازه‌ی یک ماه Ùعالیت کرده بودند. با سیگار چهارم شروع کردم: - -- می‌دانی زن؟ بابای یارو پول‌داره. مسلماً کار به دادگستری Ùˆ این جور خنس‌ها می‌کشه. مدیریت Ú©Ù‡ الÙاتحه. اما خیلی دلم می‌خواد قضیه به دادگاه برسه. یک سال آزگار رو دل کشیده‌ام Ùˆ دیگه خسته شده‌ام. دلم می‌خواد یکی بپرسه چرا بچه‌ی مردم رو این طوری زدی، چرا تنبیه بدنی کردی! آخه یک مدیر مدرسه هم حرÙ‌هایی داره Ú©Ù‡ باید یک جایی بزنه... - -Ú©Ù‡ بلند شد Ùˆ رÙت سراغ تلÙÙ†. دو سه تا از دوستانم را Ú©Ù‡ در دادگستری کاره‌ای بودند، گرÙت Ùˆ خودم قضیه را برایشان Ú¯Ùتم Ú©Ù‡ مواظب باشند. Ùردا پسرک Ùاعل به مدرسه نیامده بود. Ùˆ ناظم برایم Ú¯Ùت Ú©Ù‡ قضیه ازین قرار بوده است Ú©Ù‡ دوتایی به هوای دیدن مجموعه تمبرهای Ùاعل با هم به خانه‌ای می‌روند Ùˆ قضایا همان جا اتÙاق می‌اÙتد Ùˆ داد Ùˆ هوار Ùˆ دخالت پدر Ùˆ مادرهای طرÙین Ùˆ خط Ùˆ نشان Ùˆ شبانه کلانتری؛ Ùˆ تمام اهل محل خبر دارند. او هم نظرش این بود Ú©Ù‡ کار به دادگستری خواهد کشید. - -Ùˆ من یک Ù‡Ùته‌ی تمام به انتظار اخطاریه‌ی دادگستری صبح Ùˆ عصر به مدرسه رÙتم Ùˆ مثل بخت‌النصر پشت پنجره ایستادم. اما در تمام این مدت نه از Ùاعل خبری شد، نه از Ù…Ùعول Ùˆ نه از پدر Ùˆ مادر ناموس‌پرست Ùˆ نه از مدیر شرکت اتوبوسرانی. انگار نه انگار Ú©Ù‡ اتÙاقی اÙتاده. بچه‌ها می‌آمدند Ùˆ می‌رÙتند؛ برای آب خوردن عجله می‌کردند؛ به جای بازی کتک‌کاری می‌کردند Ùˆ همه چیز مثل قبل بود. Ùقط من ماندم Ùˆ یک دنیا حر٠و انتظار. تا عاقبت رسید.... احضاریه‌ای با تعیین وقت قبلی برای دو روز بعد، در Ùلان شعبه Ùˆ پیش Ùلان بازپرس دادگستری. آخر کسی پیدا شده بود Ú©Ù‡ به حرÙÙ… گوش کند. - -تا دو روز بعد Ú©Ù‡ موعد احضار بود، اصلاً از خانه در نیامدم. نشستم Ùˆ ماحصل حرÙ‌هایم را روی کاغذ آوردم. حرÙ‌هایی Ú©Ù‡ با همه‌ی چرندی هر وزیر Ùرهنگی می‌توانست با آن یک برنامه‌ی Ù‡Ùت ساله برای کارش بریزد. Ùˆ سر ساعت معین رÙتم دادگستری. اتاق معین Ùˆ بازپرس معین. در را باز کردم Ùˆ سلام، Ùˆ تا آمدم خودم را معرÙÛŒ کنم Ùˆ احضاریه را در بیاورم، یارو پیش‌دستی کرد Ùˆ صندلی آورد Ùˆ چای سÙارش داد Ùˆ «احتیاجی به این حرÙ‌ها نیست Ùˆ قضیه‌ی Ú©ÙˆÚ†Ú© بود Ùˆ حل شد Ùˆ راضی به زحمت شما نبودیم...» - -Ú©Ù‡ عرق سرد بر بدن من نشست. چایی‌ام را Ú©Ù‡ خوردم، روی همان کاغذ نشان‌دار دادگستری استعÙانامه‌ام را نوشتم Ùˆ به نام هم‌کلاسی پخمه‌ام Ú©Ù‡ تازه رئیس شده بود، دم در پست کردم. -EOT; -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php deleted file mode 100644 index 8e0829ea..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php +++ /dev/null @@ -1,85 +0,0 @@ -format('dmy'); - - switch ((int)($birthdate->format('Y')/100)) { - case 18: - $centurySign = '+'; - break; - case 19: - $centurySign = '-'; - break; - case 20: - $centurySign = 'A'; - break; - default: - throw new \InvalidArgumentException('Year must be between 1800 and 2099 inclusive.'); - } - - $randomDigits = self::numberBetween(0, 89); - if ($gender && $gender == static::GENDER_MALE) { - if ($randomDigits === 0) { - $randomDigits .= static::randomElement(array(3,5,7,9)); - } else { - $randomDigits .= static::randomElement(array(1,3,5,7,9)); - } - } elseif ($gender && $gender == static::GENDER_FEMALE) { - if ($randomDigits === 0) { - $randomDigits .= static::randomElement(array(2,4,6,8)); - } else { - $randomDigits .= static::randomElement(array(0,2,4,6,8)); - } - } else { - if ($randomDigits === 0) { - $randomDigits .= self::numberBetween(2, 9); - } else { - $randomDigits .= (string)static::numerify('#'); - } - } - $randomDigits = str_pad($randomDigits, 3, '0', STR_PAD_LEFT); - - $checksum = $checksumCharacters[(int)($datePart . $randomDigits) % strlen($checksumCharacters)]; - - return $datePart . $centurySign . $randomDigits . $checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php deleted file mode 100644 index a3230740..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php +++ /dev/null @@ -1,99 +0,0 @@ - 'Argovie'), - array('AI' => 'Appenzell Rhodes-Intérieures'), - array('AR' => 'Appenzell Rhodes-Extérieures'), - array('BE' => 'Berne'), - array('BL' => 'Bâle-Campagne'), - array('BS' => 'Bâle-Ville'), - array('FR' => 'Fribourg'), - array('GE' => 'Genève'), - array('GL' => 'Glaris'), - array('GR' => 'Grisons'), - array('JU' => 'Jura'), - array('LU' => 'Lucerne'), - array('NE' => 'Neuchâtel'), - array('NW' => 'Nidwald'), - array('OW' => 'Obwald'), - array('SG' => 'Saint-Gall'), - array('SH' => 'Schaffhouse'), - array('SO' => 'Soleure'), - array('SZ' => 'Schwytz'), - array('TG' => 'Thurgovie'), - array('TI' => 'Tessin'), - array('UR' => 'Uri'), - array('VD' => 'Vaud'), - array('VS' => 'Valais'), - array('ZG' => 'Zoug'), - array('ZH' => 'Zurich') - ); - - protected static $cityFormats = array( - '{{cityName}}', - ); - - protected static $streetNameFormats = array( - '{{streetPrefix}} {{lastName}}', - '{{streetPrefix}} de {{cityName}}', - '{{streetPrefix}} de {{lastName}}' - ); - - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Returns a random street prefix - * @example Rue - * @return string - */ - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - /** - * Returns a random city name. - * @example Luzern - * @return string - */ - public function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Returns a canton - * @example array('BE' => 'Bern') - * @return array - */ - public static function canton() - { - return static::randomElement(static::$canton); - } - - /** - * Returns the abbreviation of a canton. - * @return string - */ - public static function cantonShort() - { - $canton = static::canton(); - return key($canton); - } - - /** - * Returns the name of canton. - * @return string - */ - public static function cantonName() - { - $canton = static::canton(); - return current($canton); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php deleted file mode 100644 index e2b4d4e8..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php +++ /dev/null @@ -1,15 +0,0 @@ - 'Ain'), array('02' => 'Aisne'), array('03' => 'Allier'), array('04' => 'Alpes-de-Haute-Provence'), array('05' => 'Hautes-Alpes'), - array('06' => 'Alpes-Maritimes'), array('07' => 'Ardèche'), array('08' => 'Ardennes'), array('09' => 'Ariège'), array('10' => 'Aube'), - array('11' => 'Aude'), array('12' => 'Aveyron'), array('13' => 'Bouches-du-Rhône'), array('14' => 'Calvados'), array('15' => 'Cantal'), - array('16' => 'Charente'), array('17' => 'Charente-Maritime'), array('18' => 'Cher'), array('19' => 'Corrèze'), array('2A' => 'Corse-du-Sud'), - array('2B' => 'Haute-Corse'), array('21' => "Côte-d'Or"), array('22' => "Côtes-d'Armor"), array('23' => 'Creuse'), array('24' => 'Dordogne'), - array('25' => 'Doubs'), array('26' => 'Drôme'), array('27' => 'Eure'), array('28' => 'Eure-et-Loir'), array('29' => 'Finistère'), array('30' => 'Gard'), - array('31' => 'Haute-Garonne'), array('32' => 'Gers'), array('33' => 'Gironde'), array('34' => 'Hérault'), array('35' => 'Ille-et-Vilaine'), - array('36' => 'Indre'), array('37' => 'Indre-et-Loire'), array('38' => 'Isère'), array('39' => 'Jura'), array('40' => 'Landes'), array('41' => 'Loir-et-Cher'), - array('42' => 'Loire'), array('43' => 'Haute-Loire'), array('44' => 'Loire-Atlantique'), array('45' => 'Loiret'), array('46' => 'Lot'), - array('47' => 'Lot-et-Garonne'), array('48' => 'Lozère'), array('49' => 'Maine-et-Loire'), array('50' => 'Manche'), array('51' => 'Marne'), - array('52' => 'Haute-Marne'), array('53' => 'Mayenne'), array('54' => 'Meurthe-et-Moselle'), array('55' => 'Meuse'), array('56' => 'Morbihan'), - array('57' => 'Moselle'), array('58' => 'Nièvre'), array('59' => 'Nord'), array('60' => 'Oise'), array('61' => 'Orne'), array('62' => 'Pas-de-Calais'), - array('63' => 'Puy-de-Dôme'), array('64' => 'Pyrénées-Atlantiques'), array('65' => 'Hautes-Pyrénées'), array('66' => 'Pyrénées-Orientales'), - array('67' => 'Bas-Rhin'), array('68' => 'Haut-Rhin'), array('69' => 'Rhône'), array('70' => 'Haute-Saône'), array('71' => 'Saône-et-Loire'), - array('72' => 'Sarthe'), array('73' => 'Savoie'), array('74' => 'Haute-Savoie'), array('75' => 'Paris'), array('76' => 'Seine-Maritime'), - array('77' => 'Seine-et-Marne'), array('78' => 'Yvelines'), array('79' => 'Deux-Sèvres'), array('80' => 'Somme'), array('81' => 'Tarn'), - array('82' => 'Tarn-et-Garonne'), array('83' => 'Var'), array('84' => 'Vaucluse'), array('85' => 'Vendée'), array('86' => 'Vienne'), - array('87' => 'Haute-Vienne'), array('88' => 'Vosges'), array('89' => 'Yonne'), array('90' => 'Territoire de Belfort'), array('91' => 'Essonne'), - array('92' => 'Hauts-de-Seine'), array('93' => 'Seine-Saint-Denis'), array('94' => 'Val-de-Marne'), array('95' => "Val-d'Oise"), - array('971' => 'Guadeloupe'), array('972' => 'Martinique'), array('973' => 'Guyane'), array('974' => 'La Réunion'), array('976' => 'Mayotte') - ); - - /** - * @example 'rue' - */ - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - /** - * Randomly returns a french region. - * - * @example 'Guadeloupe' - * - * @return string - */ - public static function region() - { - return static::randomElement(static::$regions); - } - - /** - * Randomly returns a french department ('departmentNumber' => 'departmentName'). - * - * @example array('2B' => 'Haute-Corse') - * - * @return array - */ - public static function department() - { - return static::randomElement(static::$departments); - } - - /** - * Randomly returns a french department name. - * - * @example 'Ardèche' - * - * @return string - */ - public static function departmentName() - { - $randomDepartmentName = array_values(static::department()); - - return $randomDepartmentName[0]; - } - - /** - * Randomly returns a french department number. - * - * @example '59' - * - * @return string - */ - public static function departmentNumber() - { - $randomDepartmentNumber = array_keys(static::department()); - - return $randomDepartmentNumber[0]; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php deleted file mode 100644 index e1aca223..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php +++ /dev/null @@ -1,476 +0,0 @@ -generator->parse($format)); - - if ($this->isCatchPhraseValid($catchPhrase)) { - break; - } - } while (true); - - return $catchPhrase; - } - - /** - * Generates a siret number (14 digits) that passes the Luhn check. - * - * @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d'identification_du_r%C3%A9pertoire_des_%C3%A9tablissements - * @return string - */ - public function siret($formatted = true) - { - $siret = $this->siren(false); - $nicFormat = static::randomElement(static::$siretNicFormats); - $siret .= $this->numerify($nicFormat); - $siret .= Luhn::computeCheckDigit($siret); - if ($formatted) { - $siret = substr($siret, 0, 3) . ' ' . substr($siret, 3, 3) . ' ' . substr($siret, 6, 3) . ' ' . substr($siret, 9, 5); - } - - return $siret; - } - - /** - * Generates a siren number (9 digits) that passes the Luhn check. - * - * @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_entreprises - * @return string - */ - public function siren($formatted = true) - { - $siren = $this->numerify('%#######'); - $siren .= Luhn::computeCheckDigit($siren); - if ($formatted) { - $siren = substr($siren, 0, 3) . ' ' . substr($siren, 3, 3) . ' ' . substr($siren, 6, 3); - } - - return $siren; - } - - /** - * @var array An array containing string which should not appear twice in a catch phrase. - */ - protected static $wordsWhichShouldNotAppearTwice = array('sécurité', 'simpl'); - - /** - * Validates a french catch phrase. - * - * @param string $catchPhrase The catch phrase to validate. - * - * @return boolean (true if valid, false otherwise) - */ - protected static function isCatchPhraseValid($catchPhrase) - { - foreach (static::$wordsWhichShouldNotAppearTwice as $word) { - // Fastest way to check if a piece of word does not appear twice. - $beginPos = strpos($catchPhrase, $word); - $endPos = strrpos($catchPhrase, $word); - - if ($beginPos !== false && $beginPos != $endPos) { - return false; - } - } - - return true; - } - - /** - * @link http://www.pole-emploi.fr/candidat/le-code-rome-et-les-fiches-metiers-@/article.jspz?id=60702 - * @note Randomly took 300 from this list - */ - protected static $jobTitleFormat = array( - 'Agent d\'accueil', - 'Agent d\'enquêtes', - 'Agent d\'entreposage', - 'Agent de curage', - 'Agro-économiste', - 'Aide couvreur', - 'Aide à domicile', - 'Aide-déménageur', - 'Ambassadeur', - 'Analyste télématique', - 'Animateur d\'écomusée', - 'Animateur web', - 'Appareilleur-gazier', - 'Archéologue', - 'Armurier d\'art', - 'Armurier spectacle', - 'Artificier spectacle', - 'Artiste dramatique', - 'Aspigiculteur', - 'Assistant de justice', - 'Assistant des ventes', - 'Assistant logistique', - 'Assistant styliste', - 'Assurance', - 'Auteur-adaptateur', - 'Billettiste voyages', - 'Brigadier', - 'Bruiteur', - 'Bâtonnier d\'art', - 'Bûcheron', - 'Cameraman', - 'Capitaine de pêche', - 'Carrier', - 'Caviste', - 'Chansonnier', - 'Chanteur', - 'Chargé de recherche', - 'Chasseur-bagagiste', - 'Chef de fabrication', - 'Chef de scierie', - 'Chef des ventes', - 'Chef du personnel', - 'Chef géographe', - 'Chef monteur son', - 'Chef porion', - 'Chiropraticien', - 'Choréologue', - 'Chromiste', - 'Cintrier-machiniste', - 'Clerc hors rang', - 'Coach sportif', - 'Coffreur béton armé', - 'Coffreur-ferrailleur', - 'Commandant de police', - 'Commandant marine', - 'Commis de coupe', - 'Comptable unique', - 'Conception et études', - 'Conducteur de jumbo', - 'Conseiller culinaire', - 'Conseiller funéraire', - 'Conseiller relooking', - 'Consultant ergonome', - 'Contrebassiste', - 'Convoyeur garde', - 'Copiste offset', - 'Corniste', - 'Costumier-habilleur', - 'Coutelier d\'art', - 'Cueilleur de cerises', - 'Céramiste concepteur', - 'Danse', - 'Danseur', - 'Data manager', - 'Dee-jay', - 'Designer produit', - 'Diététicien conseil', - 'Diététique', - 'Doreur sur métaux', - 'Décorateur-costumier', - 'Défloqueur d\'amiante', - 'Dégustateur', - 'Délégué vétérinaire', - 'Délégué à la tutelle', - 'Désamianteur', - 'Détective', - 'Développeur web', - 'Ecotoxicologue', - 'Elagueur-botteur', - 'Elagueur-grimpeur', - 'Elastiqueur', - 'Eleveur d\'insectes', - 'Eleveur de chats', - 'Eleveur de volailles', - 'Embouteilleur', - 'Employé d\'accueil', - 'Employé d\'étage', - 'Employé de snack-bar', - 'Endivier', - 'Endocrinologue', - 'Epithésiste', - 'Essayeur-retoucheur', - 'Etainier', - 'Etancheur', - 'Etancheur-bardeur', - 'Etiqueteur', - 'Expert back-office', - 'Exploitant de tennis', - 'Extraction', - 'Facteur', - 'Facteur de clavecins', - 'Facteur de secteur', - 'Fantaisiste', - 'Façadier-bardeur', - 'Façadier-ravaleur', - 'Feutier', - 'Finance', - 'Flaconneur', - 'Foreur pétrole', - 'Formateur d\'italien', - 'Fossoyeur', - 'Fraiseur', - 'Fraiseur mouliste', - 'Frigoriste maritime', - 'Fromager', - 'Galeriste', - 'Gardien de résidence', - 'Garçon de chenil', - 'Garçon de hall', - 'Gendarme mobile', - 'Guitariste', - 'Gynécologue', - 'Géodésien', - 'Géologue prospecteur', - 'Géomètre', - 'Géomètre du cadastre', - 'Gérant d\'hôtel', - 'Gérant de tutelle', - 'Gériatre', - 'Hydrothérapie', - 'Hématologue', - 'Hôte de caisse', - 'Ingénieur bâtiment', - 'Ingénieur du son', - 'Ingénieur géologue', - 'Ingénieur géomètre', - 'Ingénieur halieute', - 'Ingénieur logistique', - 'Instituteur', - 'Jointeur de placage', - 'Juge des enfants', - 'Juriste financier', - 'Kiwiculteur', - 'Lexicographe', - 'Liftier', - 'Litigeur transport', - 'Logistique', - 'Logopède', - 'Magicien', - 'Manager d\'artiste', - 'Mannequin détail', - 'Maquilleur spectacle', - 'Marbrier-poseur', - 'Marin grande pêche', - 'Matelassier', - 'Maçon', - 'Maçon-fumiste', - 'Maçonnerie', - 'Maître de ballet', - 'Maïeuticien', - 'Menuisier', - 'Miroitier', - 'Modéliste industriel', - 'Moellonneur', - 'Moniteur de sport', - 'Monteur audiovisuel', - 'Monteur de fermettes', - 'Monteur de palettes', - 'Monteur en siège', - 'Monteur prototypiste', - 'Monteur-frigoriste', - 'Monteur-truquiste', - 'Mouleur sable', - 'Mouliste drapeur', - 'Mécanicien-armurier', - 'Médecin du sport', - 'Médecin scolaire', - 'Médiateur judiciaire', - 'Médiathécaire', - 'Net surfeur surfeuse', - 'Oenologue', - 'Opérateur de plateau', - 'Opérateur du son', - 'Opérateur géomètre', - 'Opérateur piquage', - 'Opérateur vidéo', - 'Ouvrier d\'abattoir', - 'Ouvrier serriste', - 'Ouvrier sidérurgiste', - 'Palefrenier', - 'Paléontologue', - 'Pareur en abattoir', - 'Parfumeur', - 'Parqueteur', - 'Percepteur', - 'Photographe d\'art', - 'Pilote automobile', - 'Pilote de soutireuse', - 'Pilote fluvial', - 'Piqueur en ganterie', - 'Pisteur secouriste', - 'Pizzaïolo', - 'Plaquiste enduiseur', - 'Plasticien', - 'Plisseur', - 'Poissonnier-traiteur', - 'Pontonnier', - 'Porion', - 'Porteur de hottes', - 'Porteur de journaux', - 'Portier', - 'Poseur de granit', - 'Posticheur spectacle', - 'Potier', - 'Praticien dentaire', - 'Praticiens médicaux', - 'Premier clerc', - 'Preneur de son', - 'Primeuriste', - 'Professeur d\'italien', - 'Projeteur béton armé', - 'Promotion des ventes', - 'Présentateur radio', - 'Pyrotechnicien', - 'Pédicure pour bovin', - 'Pédologue', - 'Pédopsychiatre', - 'Quincaillier', - 'Radio chargeur', - 'Ramasseur d\'asperges', - 'Ramasseur d\'endives', - 'Ravaleur-ragréeur', - 'Recherche', - 'Recuiseur', - 'Relieur-doreur', - 'Responsable de salle', - 'Responsable télécoms', - 'Revenue Manager', - 'Rippeur spectacle', - 'Rogneur', - 'Récupérateur', - 'Rédacteur des débats', - 'Régleur funéraire', - 'Régleur sur tour', - 'Sapeur-pompier', - 'Scannériste', - 'Scripte télévision', - 'Sculpteur sur verre', - 'Scénariste', - 'Second de cuisine', - 'Secrétaire juridique', - 'Semencier', - 'Sertisseur', - 'Services funéraires', - 'Solier-moquettiste', - 'Sommelier', - 'Sophrologue', - 'Staffeur', - 'Story boarder', - 'Stratifieur', - 'Stucateur', - 'Styliste graphiste', - 'Surjeteur-raseur', - 'Séismologue', - 'Technicien agricole', - 'Technicien bovin', - 'Technicien géomètre', - 'Technicien plateau', - 'Technicien énergie', - 'Terminologue', - 'Testeur informatique', - 'Toiliste', - 'Topographe', - 'Toréro', - 'Traducteur d\'édition', - 'Traffic manager', - 'Trieur de métaux', - 'Turbinier', - 'Téléconseiller', - 'Tôlier-traceur', - 'Vendeur carreau', - 'Vendeur en lingerie', - 'Vendeur en meubles', - 'Vendeur en épicerie', - 'Verrier d\'art', - 'Verrier à la calotte', - 'Verrier à la main', - 'Verrier à main levée', - 'Vidéo-jockey', - 'Vitrier', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php deleted file mode 100644 index 8e3024bf..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -siren($spacedNationalPrefix)); - } - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'FR', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php deleted file mode 100644 index 5778a7c0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php +++ /dev/null @@ -1,129 +0,0 @@ -numberBetween(1, 2); - } - - $nir .= - // Year of birth (aa) - $this->numerify('##') . - // Mont of birth (mm) - sprintf('%02d', $this->numberBetween(1, 12)); - - // Department - $department = key(Address::department()); - $nir .= $department; - - // Town number, depends on department length - if (strlen($department) === 2) { - $nir .= $this->numerify('###'); - } elseif (strlen($department) === 3) { - $nir .= $this->numerify('##'); - } - - // Born number (depending of town and month of birth) - $nir .= $this->numerify('###'); - - /** - * The key for a given NIR is `97 - 97 % NIR` - * NIR has to be an integer, so we have to do a little replacment - * for departments 2A and 2B - */ - if ($department === '2A') { - $nirInteger = str_replace('2A', '19', $nir); - } elseif ($department === '2B') { - $nirInteger = str_replace('2B', '18', $nir); - } else { - $nirInteger = $nir; - } - $nir .= sprintf('%02d', 97 - $nirInteger % 97); - - // Format is x xx xx xx xxx xxx xx - if ($formatted) { - $nir = substr($nir, 0, 1) . ' ' . substr($nir, 1, 2) . ' ' . substr($nir, 3, 2) . ' ' . substr($nir, 5, 2) . ' ' . substr($nir, 7, 3). ' ' . substr($nir, 10, 3). ' ' . substr($nir, 13, 2); - } - - return $nir; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php deleted file mode 100644 index 52736050..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php +++ /dev/null @@ -1,89 +0,0 @@ -phoneNumber07WithSeparator(); - $phoneNumber = str_replace(' ', '', $phoneNumber); - return $phoneNumber; - } - - /** - * Only 073 to 079 are acceptable prefixes with 07 - * - * @see http://www.arcep.fr/index.php?id=8146 - */ - public function phoneNumber07WithSeparator() - { - $phoneNumber = $this->generator->numberBetween(3, 9); - $phoneNumber .= $this->numerify('# ## ## ##'); - return $phoneNumber; - } - - /** - * @example '0601020304' - */ - public static function mobileNumber() - { - return static::numerify(static::randomElement(static::$mobileFormats)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php deleted file mode 100644 index 9403f168..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php +++ /dev/null @@ -1,15531 +0,0 @@ - static::latitude(46.262740, 47.564721), - 'longitude' => static::longitude(17.077949, 20.604560) - ); - } - - /* ----------- DATA -------------------- */ - - protected static $streetSuffix = array( - 'árok', 'átjáró', 'dűlÅ‘sor', 'dűlőút', 'erdÅ‘sor', 'fasor', 'forduló', 'gát', 'határsor', 'határút', 'híd', 'játszótér', 'kert', 'körönd', 'körtér', 'körút', 'köz', 'lakótelep', 'lejáró', 'lejtÅ‘', 'lépcsÅ‘', 'liget', 'mélyút', 'orom', 'országút', 'ösvény', 'park', 'part', 'pincesor', 'rakpart', 'sétány', 'sétaút', 'sor', 'sugárút', 'tér', 'tere', 'turistaút', 'udvar', 'út', 'útja', 'utca', 'üdülÅ‘part' - ); - protected static $postcode = array('####'); - protected static $state = array( - 'Budapest', 'Bács-Kiskun', 'Baranya', 'Békés', 'Borsod-Abaúj-Zemplén', 'Csongrád', 'Fejér', 'GyÅ‘r-Moson-Sopron', 'Hajdú-Bihar', 'Heves', 'Jász-Nagykun-Szolnok', 'Komárom-Esztergom', 'Nógrád', 'Pest', 'Somogy', 'Szabolcs-Szatmár-Bereg', 'Tolna', 'Vas', 'Veszprém', 'Zala' - ); - protected static $country = array( - 'Afganisztán', 'Albánia', 'Algéria', 'Amerikai Egyesült Ãllamok', 'Andorra', 'Angola', 'Antigua és Barbuda', 'Argentína', 'Ausztria', 'Ausztrália', 'Azerbajdzsán', - 'Bahama-szigetek', 'Bahrein', 'Banglades', 'Barbados', 'Belgium', 'Belize', 'Benin', 'Bhután', 'Bolívia', 'Bosznia-Hercegovina', 'Botswana', 'Brazília', 'Brunei', 'Bulgária', 'Burkina Faso', 'Burma', 'Burundi', - 'Chile', 'Ciprus', 'Costa Rica', 'Csehország', 'Csád', - 'Dominikai Köztársaság', 'Dominikai Közösség', 'Dzsibuti', 'Dánia', 'Dél-Afrika', 'Dél-Korea', 'Dél-Szudán', - 'Ecuador', 'EgyenlítÅ‘i-Guinea', 'Egyesült Arab Emírségek', 'Egyesült Királyság', 'Egyiptom', 'Elefántcsontpart', 'Eritrea', 'Etiópia', - 'Fehéroroszország', 'Fidzsi-szigetek', 'Finnország', 'Franciaország', 'Fülöp-szigetek', - 'Gabon', 'Gambia', 'Ghána', 'Grenada', 'Grúzia', 'Guatemala', 'Guinea', 'Guyana', 'Görögország', - 'Haiti', 'Hollandia', 'Horvátország', - 'India', 'Indonézia', 'Irak', 'Irán', 'Izland', 'Izrael', - 'Japán', 'Jemen', 'Jordánia', - 'Kambodzsa', 'Kamerun', 'Kanada', 'Katar', 'Kazahsztán', 'Kelet-Timor', 'Kenya', 'Kirgizisztán', 'Kiribati', 'Kolumbia', 'Kongói Demokratikus Köztársaság', 'Kongói Köztársaság', 'Kuba', 'Kuvait', 'Kína', 'Közép-Afrika', - 'Laosz', 'Lengyelország', 'Lesotho', 'Lettország', 'Libanon', 'Libéria', 'Liechtenstein', 'Litvánia', 'Luxemburg', 'Líbia', - 'Macedónia', 'Madagaszkár', 'Magyarország', 'Malawi', 'Maldív-szigetek', 'Mali', 'Malájzia', 'Marokkó', 'Marshall-szigetek', 'Mauritánia', 'Mexikó', 'Mikronézia', 'Moldova', 'Monaco', 'Mongólia', 'Montenegró', 'Mozambik', 'Málta', - 'Namíbia', 'Nauru', 'Nepál', 'Nicaragua', 'Niger', 'Nigéria', 'Norvégia', 'Németország', - 'Olaszország', 'Omán', 'Oroszország', - 'Pakisztán', 'Palau', 'Panama', 'Paraguay', 'Peru', 'Portugália', 'Pápua Új-Guinea', - 'Románia', 'Ruanda', - 'Saint Kitts és Nevis', 'Saint Vincent', 'Salamon-szigetek', 'Salvador', 'San Marino', 'Seychelle-szigetek', 'Spanyolország', 'Srí Lanka', 'Suriname', 'Svájc', 'Svédország', 'Szamoa', 'Szaúd-Arábia', 'Szenegál', 'Szerbia', 'Szingapúr', 'Szlovákia', 'Szlovénia', 'Szomália', 'Szudán', 'Szváziföld', 'Szíria', 'São Tomé és Príncipe', - 'Tadzsikisztán', 'Tanzánia', 'Thaiföld', 'Togo', 'Tonga', 'Trinidad és Tobago', 'Tunézia', 'Tuvalu', 'Törökország', 'Türkmenisztán', - 'Uganda', 'Ukrajna', 'Uruguay', - 'Vanuatu', 'Venezuela', 'Vietnám', - 'Zambia', 'Zimbabwe', 'Zöld-foki-szigetek', - 'Észak-Korea', 'Észtország', 'Ãrország', 'Örményország', 'Új-Zéland', 'Ãœzbegisztán' - ); - - /** - * Source: https://hu.wikipedia.org/wiki/Magyarorsz%C3%A1g_v%C3%A1rosainak_list%C3%A1ja - */ - protected static $capitals = array('Budapest'); - protected static $bigCities = array(' - Békéscsaba', 'Debrecen', 'Dunaújváros', 'Eger', 'Érd', 'GyÅ‘r', 'HódmezÅ‘vásárhely', 'Kaposvár', 'Kecskemét', 'Miskolc', 'Nagykanizsa', 'Nyíregyháza', 'Pécs', 'Salgótarján', 'Sopron', 'Szeged', 'Székesfehérvár', 'Szekszárd', 'Szolnok', 'Szombathely', 'Tatabánya', 'Veszprém', 'Zalaegerszeg' - ); - protected static $smallerCities = array( - 'Ajka', 'Aszód', 'Bácsalmás', - 'Baja', 'Baktalórántháza', 'Balassagyarmat', 'Balatonalmádi', 'Balatonfüred', 'Balmazújváros', 'Barcs', 'Bátonyterenye', 'Békés', 'Bélapátfalva', 'Berettyóújfalu', 'Bicske', 'Bóly', 'Bonyhád', 'Budakeszi', - 'Cegléd', 'Celldömölk', 'Cigánd', 'Csenger', 'Csongrád', 'Csorna', 'Csurgó', - 'Dabas', 'Derecske', 'Devecser', 'Dombóvár', 'Dunakeszi', - 'Edelény', 'Encs', 'Enying', 'Esztergom', - 'Fehérgyarmat', 'Fonyód', 'Füzesabony', - 'Gárdony', 'GödöllÅ‘', 'Gönc', 'Gyál', 'GyomaendrÅ‘d', 'Gyöngyös', 'Gyula', - 'Hajdúböszörmény', 'Hajdúhadház', 'Hajdúnánás', 'Hajdúszoboszló', 'Hatvan', 'Heves', - 'Ibrány', - 'Jánoshalma', 'Jászapáti', 'Jászberény', - 'Kalocsa', 'Kapuvár', 'Karcag', 'Kazincbarcika', 'Kemecse', 'Keszthely', 'Kisbér', 'KiskÅ‘rös', 'Kiskunfélegyháza', 'Kiskunhalas', 'Kiskunmajsa', 'Kistelek', 'Kisvárda', 'Komárom', 'Komló', 'Körmend', 'KÅ‘szeg', 'Kunhegyes', 'Kunszentmárton', 'Kunszentmiklós', - 'Lenti', 'Letenye', - 'Makó', 'Marcali', 'Martonvásár', 'Mátészalka', 'MezÅ‘csát', 'MezÅ‘kovácsháza', 'MezÅ‘kövesd', 'MezÅ‘túr', 'Mohács', 'Monor', 'Mór', 'Mórahalom', 'Mosonmagyaróvár', - 'Nagyatád', 'Nagykálló', 'Nagykáta', 'NagykÅ‘rös', 'Nyíradony', 'Nyírbátor', - 'Orosháza', 'Oroszlány', 'Ózd', - 'Paks', 'Pannonhalma', 'Pápa', 'Pásztó', 'Pécsvárad', 'Pétervására', 'Pilisvörösvár', 'Polgárdi', 'Püspökladány', 'Putnok', - 'Ráckeve', 'Rétság', - 'Sárbogárd', 'Sarkad', 'Sárospatak', 'Sárvár', 'Sásd', 'Sátoraljaújhely', 'Sellye', 'Siklós', 'Siófok', 'Sümeg', 'Szarvas', 'Szécsény', 'Szeghalom', 'Szentendre', 'Szentes', 'Szentgotthárd', 'SzentlÅ‘rinc', 'Szerencs', 'Szigetszentmiklós', 'Szigetvár', 'Szikszó', 'Szob', - 'Tab', 'Tamási', 'Tapolca', 'Tata', 'Tét', 'Tiszafüred', 'Tiszakécske', 'Tiszaújváros', 'Tiszavasvári', 'Tokaj', 'Tolna', 'Törökszentmiklós', - 'Vác', 'Várpalota', 'Vásárosnamény', 'Vasvár', 'Vecsés', - 'Záhony', 'Zalaszentgrót', 'Zirc' - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php deleted file mode 100644 index 71316542..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php +++ /dev/null @@ -1,13 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function cityPrefix() - { - return static::randomElement(static::$cityPrefix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php deleted file mode 100644 index 16b68d8b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php +++ /dev/null @@ -1,12 +0,0 @@ -generator->parse(static::randomElement(static::$formats))); - } - - public function code() - { - return static::randomElement(static::$codes); - } - - /** - * @return mixed - */ - public function numberFormat() - { - return static::randomElement(static::$numberFormats); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php deleted file mode 100644 index 49fd1a7a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php +++ /dev/null @@ -1,316 +0,0 @@ -generator->parse($format); - } - - public static function street() - { - return static::randomElement(static::$street); - } - - public static function buildingNumber() - { - return static::numberBetween(1, 999); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php deleted file mode 100644 index 7839f1e0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php +++ /dev/null @@ -1,43 +0,0 @@ -generator->parse($lastNameRandomElement); - } - - /** - * Return last name for male - * - * @access public - * @return string last name - */ - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - /** - * Return last name for female - * - * @access public - * @return string last name - */ - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } - - /** - * For academic title - * - * @access public - * @return string suffix - */ - public static function suffix() - { - return static::randomElement(static::$suffix); - } - - /** - * Generates Nomor Induk Kependudukan (NIK) - * - * @link https://en.wikipedia.org/wiki/National_identification_number#Indonesia - * - * @param null|string $gender - * @param null|\DateTime $birthDate - * @return string - */ - public function nik($gender = null, $birthDate = null) - { - # generate first numbers (region data) - $nik = $this->generator->numerify('######'); - - if (!$birthDate) { - $birthDate = $this->generator->dateTimeBetween(); - } - - if (!$gender) { - $gender = $this->generator->randomElement(array(self::GENDER_MALE, self::GENDER_FEMALE)); - } - - # if gender is female, add 40 to days - if ($gender == self::GENDER_FEMALE) { - $nik .= $birthDate->format('d') + 40; - } else { - $nik .= $birthDate->format('d'); - } - - $nik .= $birthDate->format('my'); - - # add last random digits - $nik.= $this->generator->numerify('####'); - - return $nik; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php deleted file mode 100644 index de5c9696..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ -class Address extends \Faker\Provider\Address -{ - /** - * @var array Countries in icelandic - */ - protected static $country = array( - 'Afganistan', 'Albanía', 'Alsír', 'Andorra', 'Angóla', 'Angvilla', 'Antígva og Barbúda', 'Argentína', - 'Armenía', 'Arúba', 'Aserbaídsjan', 'Austur-Kongó', 'Austurríki', 'Austur-Tímor', 'Ãlandseyjar', - 'Ãstralía', 'Bahamaeyjar', 'Bandaríkin', 'Bandaríska Samóa', 'Bangladess', 'Barbados', 'Barein', - 'Belgía', 'Belís', 'Benín', 'Bermúdaeyjar', 'Bosnía og Hersegóvína', 'Botsvana', 'Bouvet-eyja', 'Bólivía', - 'Brasilía', 'Bresku Indlandshafseyjar', 'Bretland', 'Brúnei', 'Búlgaría', 'Búrkína Fasó', 'Búrúndí', 'Bútan', - 'Cayman-eyjar', 'Chile', 'Cooks-eyjar', 'Danmörk', 'Djíbútí', 'Dóminíka', 'Dóminíska lýðveldið', 'Egyptaland', - 'Eistland', 'Ekvador', 'El Salvador', 'England', 'Erítrea', 'Eþíópía', 'Falklandseyjar', 'Filippseyjar', - 'Finnland', 'Fídjieyjar', 'Fílabeinsströndin', 'Frakkland', 'Franska Gvæjana', 'Franska Pólýnesía', - 'Frönsku suðlægu landsvæðin', 'Færeyjar', 'Gabon', 'Gambía', 'Gana', 'Georgía', 'Gíbraltar', 'Gínea', - 'Gínea-Bissá', 'Grenada', 'Grikkland', 'Grænhöfðaeyjar', 'Grænland', 'Gvadelúpeyjar', 'Gvam', 'Gvatemala', - 'Gvæjana', 'Haítí', 'Heard og McDonalds-eyjar', 'Holland', 'Hollensku Antillur', 'Hondúras', 'Hong Kong', - 'Hvíta-Rússland', 'Indland', 'Indónesía', 'Ãrak', 'Ãran', 'Ãrland', 'Ãsland', 'Ãsrael', 'Ãtalía', 'Jamaíka', - 'Japan', 'Jemen', 'Jólaey', 'Jómfrúaeyjar', 'Jórdanía', 'Kambódía', 'Kamerún', 'Kanada', 'Kasakstan', 'Katar', - 'Kenía', 'Kirgisistan', 'Kína', 'Kíribatí', 'Kongó', 'Austur-Kongó', 'Vestur-Kongó', 'Kostaríka', 'Kókoseyjar', - 'Kólumbía', 'Kómoreyjar', 'Kórea', 'Norður-Kórea;', 'Suður-Kórea', 'Króatía', 'Kúba', 'Kúveit', 'Kýpur', - 'Laos', 'Lesótó', 'Lettland', 'Liechtenstein', 'Litháen', 'Líbanon', 'Líbería', 'Líbía', 'Lúxemborg', - 'Madagaskar', 'Makaó', 'Makedónía', 'Malasía', 'Malaví', 'Maldíveyjar', 'Malí', 'Malta', 'Marokkó', - 'Marshall-eyjar', 'Martiník', 'Mayotte', 'Máritanía', 'Máritíus', 'Mexíkó', 'Mið-Afríkulýðveldið', - 'Miðbaugs-Gínea', 'Míkrónesía', 'Mjanmar', 'Moldóva', 'Mongólía', 'Montserrat', 'Mónakó', 'Mósambík', - 'Namibía', 'Nárú', 'Nepal', 'Niue', 'Níger', 'Nígería', 'Níkaragva', 'Norður-Ãrland', 'Norður-Kórea', - 'Norður-Maríanaeyjar', 'Noregur', 'Norfolkeyja', 'Nýja-Kaledónía', 'Nýja-Sjáland', 'Óman', 'Pakistan', - 'Palá', 'Palestína', 'Panama', 'Papúa Nýja-Gínea', 'Paragvæ', 'Páfagarður', 'Perú', 'Pitcairn', 'Portúgal', - 'Pólland', 'Púertó Ríkó', 'Réunion', 'Rúanda', 'Rúmenía', 'Rússland', 'Salómonseyjar', 'Sambía', - 'Sameinuðu arabísku furstadæmin', 'Samóa', 'San Marínó', 'Sankti Helena', 'Sankti Kristófer og Nevis', - 'Sankti Lúsía', 'Sankti Pierre og Miquelon', 'Sankti Vinsent og Grenadíneyjar', 'Saó Tóme og Prinsípe', - 'Sádi-Arabía', 'Senegal', 'Serbía', 'Seychelles-eyjar', 'Simbabve', 'Singapúr', 'Síerra Leóne', 'Skotland', - 'Slóvakía', 'Slóvenía', 'Smáeyjar Bandaríkjanna', 'Sómalía', 'Spánn', 'Srí Lanka', 'Suður-Afríka', - 'Suður-Georgía og Suður-Sandvíkureyjar', 'Suður-Kórea', 'Suðurskautslandið', 'Súdan', 'Súrínam', 'Jan Mayen', - 'Svartfjallaland', 'Svasíland', 'Sviss', 'Svíþjóð', 'Sýrland', 'Tadsjikistan', 'Taíland', 'Taívan', 'Tansanía', - 'Tékkland', 'Tonga', 'Tógó', 'Tókelá', 'Trínidad og Tóbagó', 'Tsjad', 'Tsjetsjenía', 'Turks- og Caicos-eyjar', - 'Túnis', 'Túrkmenistan', 'Túvalú', 'Tyrkland', 'Ungverjaland', 'Úganda', 'Úkraína', 'Úrúgvæ', 'Úsbekistan', - 'Vanúatú', 'Venesúela', 'Vestur-Kongó', 'Vestur-Sahara', 'Víetnam', 'Wales', 'Wallis- og Fútúnaeyjar', 'Þýskaland' - ); - - /** - * @var array Icelandic cities. - */ - protected static $cityNames = array( - 'Reykjavík', 'Seltjarnarnes', 'Vogar', 'Kópavogur', 'Garðabær', 'Hafnarfjörður', 'Reykjanesbær', 'Grindavík', - 'Sandgerði', 'Garður', 'Reykjanesbær', 'Mosfellsbær', 'Akranes', 'Borgarnes', 'Reykholt', 'Stykkishólmur', - 'Flatey', 'Grundarfjörður', 'Ólafsvík', 'Snæfellsbær', 'Hellissandur', 'Búðardalur', 'Reykhólahreppur', - 'Ãsafjörður', 'Hnífsdalur', 'Bolungarvík', 'Súðavík', 'Flateyri', 'Suðureyri', 'Patreksfjörður', - 'Tálknafjörður', 'Bíldudalur', 'Þingeyri', 'Staður', 'Hólmavík', 'Drangsnes', 'Ãrneshreppur', 'Hvammstangi', - 'Blönduós', 'Skagaströnd', 'Sauðárkrókur', 'Varmahlíð', 'Hofsós', 'Fljót', 'Siglufjörður', 'Akureyri', - 'Grenivík', 'Grímsey', 'Dalvík', 'Ólafsfjörður', 'Hrísey', 'Húsavík', 'Fosshóll', 'Laugar', 'Mývatn', - 'Kópasker', 'Raufarhöfn', 'Þórshöfn', 'Bakkafjörður', 'Vopnafjörður', 'Egilsstaðir', 'Seyðisfjörður', - 'Mjóifjörður', 'Borgarfjörður', 'Reyðarfjörður', 'Eskifjörður', 'Neskaupstaður', 'Fáskrúðsfjörður', - 'Stöðvarfjörður', 'Breiðdalsvík', 'Djúpivogur', 'Höfn', 'Selfoss', 'Hveragerði', 'Þorlákshöfn', 'Ölfus', - 'Eyrarbakki', 'Stokkseyri', 'Laugarvatn', 'Flúðir', 'Hella', 'Hvolsvöllur', 'Vík', 'Kirkjubæjarklaustur', - 'Vestmannaeyjar' - ); - - /** - * @var array Street name suffix. - */ - protected static $streetSuffix = array( - 'ás', 'bakki', 'braut', 'bær', 'brún', 'berg', 'fold', 'gata', 'gróf', - 'garðar', 'höfði', 'heimar', 'hamar', 'hólar', 'háls', 'kvísl', 'lækur', - 'leiti', 'land', 'múli', 'nes', 'rimi', 'stígur', 'stræti', 'stekkur', - 'slóð', 'skógar', 'sel', 'teigur', 'tún', 'vangur', 'vegur', 'vogur', - 'vað' - ); - - /** - * @var array Street name prefix. - */ - protected static $streetPrefix = array( - 'Aðal', 'Austur', 'Bakka', 'Braga', 'Báru', 'Brunn', 'Fiski', 'Leifs', - 'Týs', 'Birki', 'Suður', 'Norður', 'Vestur', 'Austur', 'Sanda', 'Skógar', - 'Stór', 'Sunnu', 'Tungu', 'Tangar', 'Úlfarfells', 'Vagn', 'Vind', 'Ysti', - 'Þing', 'Hamra', 'Hóla', 'Kríu', 'Iðu', 'Spóa', 'Starra', 'Uglu', 'Vals' - ); - - /** - * @var Icelandic zip code. - **/ - protected static $postcode = array( - '%##' - ); - - /** - * @var array Icelandic regions. - */ - protected static $regionNames = array( - 'Höfuðborgarsvæðið', 'Norðurland', 'Suðurland', 'Vesturland', 'Vestfirðir', 'Austurland', 'Suðurnes' - ); - - /** - * @var array Icelandic building numbers. - */ - protected static $buildingNumber = array( - '%##', '%#', '%#', '%', '%', '%', '%?', '% ?', - ); - - /** - * @var array Icelandic city format. - */ - protected static $cityFormats = array( - '{{cityName}}', - ); - - /** - * @var array Icelandic street's name formats. - */ - protected static $streetNameFormats = array( - '{{streetPrefix}}{{streetSuffix}}', - '{{streetPrefix}}{{streetSuffix}}', - '{{firstNameMale}}{{streetSuffix}}', - '{{firstNameFemale}}{{streetSuffix}}' - ); - - /** - * @var array Icelandic street's address formats. - */ - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}' - ); - - /** - * @var array Icelandic address format. - */ - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Randomly return a real city name. - * - * @return string - */ - public static function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Randomly return a street prefix. - * - * @return string - */ - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - /** - * Randomly return a building number. - * - * @return string - */ - public static function buildingNumber() - { - return static::toUpper(static::bothify(static::randomElement(static::$buildingNumber))); - } - - /** - * Randomly return a real region name. - * - * @return string - */ - public static function region() - { - return static::randomElement(static::$regionNames); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php deleted file mode 100644 index 6b934519..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ -class Company extends \Faker\Provider\Company -{ - /** - * @var array Danish company name formats. - */ - protected static $formats = array( - '{{lastName}} {{companySuffix}}', - '{{lastName}} {{companySuffix}}', - '{{lastName}} {{companySuffix}}', - '{{firstname}} {{lastName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{firstname}} {{middleName}} {{companySuffix}}', - '{{lastName}} & {{lastName}} {{companySuffix}}', - '{{lastName}} og {{lastName}} {{companySuffix}}', - '{{lastName}} & {{lastName}} {{companySuffix}}', - '{{lastName}} og {{lastName}} {{companySuffix}}', - '{{middleName}} & {{middleName}} {{companySuffix}}', - '{{middleName}} og {{middleName}} {{companySuffix}}', - '{{middleName}} & {{lastName}}', - '{{middleName}} og {{lastName}}', - ); - - /** - * @var array Company suffixes. - */ - protected static $companySuffix = array('ehf.', 'hf.', 'sf.'); - - /** - * @link http://www.rsk.is/atvinnurekstur/virdisaukaskattur/ - * - * @var string VSK number format. - */ - protected static $vskFormat = '%####'; - - /** - * Generates a VSK number (5 digits). - * - * @return string - */ - public static function vsk() - { - return static::numerify(static::$vskFormat); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php deleted file mode 100644 index a265da61..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -class Internet extends \Faker\Provider\Internet -{ - /** - * @var array Some email domains in Denmark. - */ - protected static $freeEmailDomain = array( - 'gmail.com', 'yahoo.com', 'hotmail.com', 'visir.is', 'simnet.is', 'internet.is' - ); - - /** - * @var array Some TLD. - */ - protected static $tld = array( - 'com', 'com', 'com', 'net', 'is', 'is', 'is', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php deleted file mode 100644 index c119c382..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -class Person extends \Faker\Provider\Person -{ - /** - * @var array Icelandic person name formats. - */ - protected static $maleNameFormats = array( - '{{firstNameMale}} {{lastNameMale}}', - '{{firstNameMale}} {{lastNameMale}}', - '{{firstNameMale}} {{middleName}} {{lastNameMale}}', - '{{firstNameMale}} {{middleName}} {{lastNameMale}}', - ); - - protected static $femaleNameFormats = array( - '{{firstNameFemale}} {{lastNameFemale}}', - '{{firstNameFemale}} {{lastNameFemale}}', - '{{firstNameFemale}} {{middleName}} {{lastNameFemale}}', - '{{firstNameFemale}} {{middleName}} {{lastNameFemale}}', - ); - - /** - * @var string Icelandic women names. - */ - protected static $firstNameFemale = array('Aagot', 'Abela', 'Abigael', 'Ada', 'Adda', 'Addý', 'Adela', 'Adelía', 'Adríana', 'Aðalbjörg', 'Aðalbjört', 'Aðalborg', 'Aðaldís', 'Aðalfríður', 'Aðalheiður', 'Aðalrós', 'Aðalsteina', 'Aðalsteinunn', 'Aðalveig', 'Agata', 'Agatha', 'Agða', 'Agla', 'Agnea', 'Agnes', 'Agneta', 'Alanta', 'Alba', 'Alberta', 'Albína', 'Alda', 'Aldís', 'Aldný', 'Aleta', 'Aletta', 'Alexa', 'Alexandra', 'Alexandría', 'Alexis', 'Alexía', 'Alfa', 'Alfífa', 'Alice', 'Alida', 'Alída', 'Alína', 'Alís', 'Alísa', 'Alla', 'Allý', 'Alma', 'Alrún', 'Alva', 'Alvilda', 'Amadea', 'Amal', 'Amalía', 'Amanda', 'Amelía', 'Amilía', 'Amíra', 'Amy', 'Amý', 'Analía', 'Anastasía', 'Andra', 'Andrá', 'Andrea', 'Anetta', 'Angela', 'Angelíka', 'Anika', 'Anita', 'Aníka', 'Anína', 'Aníta', 'Anja', 'Ann', 'Anna', 'Annabella', 'Annalísa', 'Anne', 'Annelí', 'Annetta', 'Anney', 'Annika', 'Annía', 'Anný', 'Antonía', 'Apríl', 'Ardís', 'Arey', 'Arinbjörg', 'Aris', 'Arisa', 'Aría', 'Aríanna', 'Aríella', 'Arín', 'Arína', 'Arís', 'Armenía', 'Arna', 'Arnbjörg', 'Arnborg', 'Arndís', 'Arney', 'Arnfinna', 'Arnfríður', 'Arngerður', 'Arngunnur', 'Arnheiður', 'Arnhildur', 'Arnika', 'Arnkatla', 'Arnlaug', 'Arnleif', 'Arnlín', 'Arnljót', 'Arnóra', 'Arnrós', 'Arnrún', 'Arnþóra', 'Arnþrúður', 'Asírí', 'Askja', 'Assa', 'Astrid', 'Atalía', 'Atena', 'Athena', 'Atla', 'Atlanta', 'Auðbjörg', 'Auðbjört', 'Auðdís', 'Auðlín', 'Auðna', 'Auðný', 'Auðrún', 'Auður', 'Aurora', 'Axelía', 'Axelma', 'Aþena', 'Ãgústa', 'Ãgústína', 'Ãlfdís', 'Ãlfey', 'Ãlfgerður', 'Ãlfheiður', 'Ãlfhildur', 'Ãlfrós', 'Ãlfrún', 'Ãlfsól', 'Ãrbjörg', 'Ãrbjört', 'Ãrdís', 'Ãrelía', 'Ãrlaug', 'Ãrmey', 'Ãrna', 'Ãrndís', 'Ãrney', 'Ãrnheiður', 'Ãrnína', 'Ãrný', 'Ãróra', 'Ãrsól', 'Ãrsæl', 'Ãrún', 'Ãrveig', 'Ãrvök', 'Ãrþóra', 'Ãsa', 'Ãsbjörg', 'Ãsborg', 'Ãsdís', 'Ãsfríður', 'Ãsgerður', 'Ãshildur', 'Ãskatla', 'Ãsla', 'Ãslaug', 'Ãsleif', 'Ãsný', 'Ãsrós', 'Ãsrún', 'Ãst', 'Ãsta', 'Ãstbjörg', 'Ãstbjört', 'Ãstdís', 'Ãstfríður', 'Ãstgerður', 'Ãstheiður', 'Ãsthildur', 'Ãstríður', 'Ãstrós', 'Ãstrún', 'Ãstveig', 'Ãstþóra', 'Ãstþrúður', 'Ãsvör', 'Baldey', 'Baldrún', 'Baldvina', 'Barbara', 'Barbára', 'Bassí', 'Bára', 'Bebba', 'Begga', 'Belinda', 'Bella', 'Benedikta', 'Bengta', 'Benidikta', 'Benía', 'Beníta', 'Benna', 'Benney', 'Benný', 'Benta', 'Bentey', 'Bentína', 'Bera', 'Bergdís', 'Bergey', 'Bergfríður', 'Bergheiður', 'Berghildur', 'Berglaug', 'Berglind', 'Berglín', 'Bergljót', 'Bergmannía', 'Bergný', 'Bergrán', 'Bergrín', 'Bergrós', 'Bergrún', 'Bergþóra', 'Berit', 'Bernódía', 'Berta', 'Bertha', 'Bessí', 'Bestla', 'Beta', 'Betanía', 'Betsý', 'Bettý', 'Bil', 'Birgit', 'Birgitta', 'Birna', 'Birta', 'Birtna', 'Bíbí', 'Bína', 'Bjargdís', 'Bjargey', 'Bjargheiður', 'Bjarghildur', 'Bjarglind', 'Bjarkey', 'Bjarklind', 'Bjarma', 'Bjarndís', 'Bjarney', 'Bjarnfríður', 'Bjarngerður', 'Bjarnheiður', 'Bjarnhildur', 'Bjarnlaug', 'Bjarnrún', 'Bjarnveig', 'Bjarný', 'Bjarnþóra', 'Bjarnþrúður', 'Bjartey', 'Bjartmey', 'Björg', 'Björgey', 'Björgheiður', 'Björghildur', 'Björk', 'Björney', 'Björnfríður', 'Björt', 'Bláey', 'Blíða', 'Blín', 'Blómey', 'Blædís', 'Blær', 'Bobba', 'Boga', 'Bogdís', 'Bogey', 'Bogga', 'Boghildur', 'Borg', 'Borgdís', 'Borghildur', 'Borgný', 'Borgrún', 'Borgþóra', 'Botnía', 'Bóel', 'Bót', 'Bóthildur', 'Braga', 'Braghildur', 'Branddís', 'Brá', 'Brák', 'Brigitta', 'Brimdís', 'Brimhildur', 'Brimrún', 'Brit', 'Britt', 'Britta', 'Bríana', 'Bríanna', 'Bríet', 'Bryndís', 'Brynfríður', 'Bryngerður', 'Brynheiður', 'Brynhildur', 'Brynja', 'Brynný', 'Burkney', 'Bylgja', 'Camilla', 'Carla', 'Carmen', 'Cecilia', 'Cecilía', 'Charlotta', 'Charlotte', 'Christina', 'Christine', 'Clara', 'Daðey', 'Daðína', 'Dagbjörg', 'Dagbjört', 'Dagfríður', 'Daggrós', 'Dagheiður', 'Dagmar', 'Dagmey', 'Dagný', 'Dagrún', 'Daldís', 'Daley', 'Dalía', 'Dalla', 'Dallilja', 'Dalrós', 'Dana', 'Daney', 'Danfríður', 'Danheiður', 'Danhildur', 'Danía', 'Daníela', 'Daníella', 'Dara', 'Debora', 'Debóra', 'Dendý', 'Didda', 'Dilja', 'Diljá', 'Dimmblá', 'Dimmey', 'Día', 'Díana', 'Díanna', 'Díma', 'Dís', 'Dísa', 'Dísella', 'Donna', 'Doris', 'Dorothea', 'Dóa', 'Dómhildur', 'Dóra', 'Dórey', 'Dóris', 'Dórothea', 'Dórótea', 'Dóróthea', 'Drauma', 'Draumey', 'Drífa', 'Droplaug', 'Drótt', 'Dröfn', 'Dúa', 'Dúfa', 'Dúna', 'Dýrborg', 'Dýrfinna', 'Dýrleif', 'Dýrley', 'Dýrunn', 'Dæja', 'Dögg', 'Dögun', 'Ebba', 'Ebonney', 'Edda', 'Edel', 'Edil', 'Edit', 'Edith', 'Eðna', 'Efemía', 'Egedía', 'Eggrún', 'Egla', 'Eiðný', 'Eiðunn', 'Eik', 'Einbjörg', 'Eindís', 'Einey', 'Einfríður', 'Einhildur', 'Einína', 'Einrún', 'Eir', 'Eirdís', 'Eirfinna', 'Eiríka', 'Eirný', 'Eirún', 'Elba', 'Eldbjörg', 'Eldey', 'Eldlilja', 'Eldrún', 'Eleina', 'Elektra', 'Elena', 'Elenborg', 'Elfa', 'Elfur', 'Elina', 'Elinborg', 'Elisabeth', 'Elía', 'Elíana', 'Elín', 'Elína', 'Elíná', 'Elínbet', 'Elínbjörg', 'Elínbjört', 'Elínborg', 'Elíndís', 'Elíngunnur', 'Elínheiður', 'Elínrós', 'Elírós', 'Elísa', 'Elísabet', 'Elísabeth', 'Elka', 'Ella', 'Ellen', 'Elley', 'Ellisif', 'Ellín', 'Elly', 'Ellý', 'Elma', 'Elna', 'Elsa', 'Elsabet', 'Elsie', 'Elsí', 'Elsý', 'Elva', 'Elvi', 'Elvíra', 'Elvý', 'Embla', 'Emelía', 'Emelíana', 'Emelína', 'Emeralda', 'Emilía', 'Emilíana', 'Emilíanna', 'Emilý', 'Emma', 'Emmý', 'Emý', 'Enea', 'Eneka', 'Engilbjört', 'Engilráð', 'Engilrós', 'Engla', 'Enika', 'Enja', 'Enóla', 'Eres', 'Erika', 'Erin', 'Erla', 'Erlen', 'Erlín', 'Erna', 'Esja', 'Esmeralda', 'Ester', 'Esther', 'Estiva', 'Ethel', 'Etna', 'Eufemía', 'Eva', 'Evelyn', 'Evey', 'Evfemía', 'Evgenía', 'Evíta', 'Evlalía', 'Ey', 'Eybjörg', 'Eybjört', 'Eydís', 'Eyfríður', 'Eygerður', 'Eygló', 'Eyhildur', 'Eyja', 'Eyjalín', 'Eyleif', 'Eylín', 'Eyrós', 'Eyrún', 'Eyveig', 'Eyvör', 'Eyþóra', 'Eyþrúður', 'Fanndís', 'Fanney', 'Fannlaug', 'Fanny', 'Fanný', 'Febrún', 'Fema', 'Filipía', 'Filippa', 'Filippía', 'Finna', 'Finnbjörg', 'Finnbjörk', 'Finnboga', 'Finnborg', 'Finndís', 'Finney', 'Finnfríður', 'Finnlaug', 'Finnrós', 'Fía', 'Fídes', 'Fífa', 'Fjalldís', 'Fjóla', 'Flóra', 'Folda', 'Fransiska', 'Franziska', 'Frán', 'Fregn', 'Freydís', 'Freygerður', 'Freyja', 'Freylaug', 'Freyleif', 'Friðbjörg', 'Friðbjört', 'Friðborg', 'Friðdís', 'Friðdóra', 'Friðey', 'Friðfinna', 'Friðgerður', 'Friðjóna', 'Friðlaug', 'Friðleif', 'Friðlín', 'Friðmey', 'Friðný', 'Friðrika', 'Friðrikka', 'Friðrós', 'Friðrún', 'Friðsemd', 'Friðveig', 'Friðþóra', 'Frigg', 'Fríða', 'Fríður', 'Frostrós', 'Fróðný', 'Fura', 'Fönn', 'Gabríela', 'Gabríella', 'Gauja', 'Gauthildur', 'Gefjun', 'Gefn', 'Geira', 'Geirbjörg', 'Geirdís', 'Geirfinna', 'Geirfríður', 'Geirhildur', 'Geirlaug', 'Geirlöð', 'Geirný', 'Geirríður', 'Geirrún', 'Geirþrúður', 'Georgía', 'Gerða', 'Gerður', 'Gestheiður', 'Gestný', 'Gestrún', 'Gillý', 'Gilslaug', 'Gissunn', 'Gía', 'Gígja', 'Gísela', 'Gísla', 'Gísley', 'Gíslína', 'Gíslný', 'Gíslrún', 'Gíslunn', 'Gíta', 'Gjaflaug', 'Gloría', 'Gló', 'Glóa', 'Glóbjört', 'Glódís', 'Glóð', 'Glóey', 'Gná', 'Góa', 'Gógó', 'Grein', 'Gret', 'Greta', 'Grélöð', 'Grét', 'Gréta', 'Gríma', 'Grímey', 'Grímheiður', 'Grímhildur', 'Gróa', 'Guðbjörg', 'Guðbjört', 'Guðborg', 'Guðdís', 'Guðfinna', 'Guðfríður', 'Guðjóna', 'Guðlaug', 'Guðleif', 'Guðlín', 'Guðmey', 'Guðmunda', 'Guðmundína', 'Guðný', 'Guðríður', 'Guðrún', 'Guðsteina', 'Guðveig', 'Gullbrá', 'Gullveig', 'Gullý', 'Gumma', 'Gunnbjörg', 'Gunnbjört', 'Gunnborg', 'Gunndís', 'Gunndóra', 'Gunnella', 'Gunnfinna', 'Gunnfríður', 'Gunnharða', 'Gunnheiður', 'Gunnhildur', 'Gunnjóna', 'Gunnlaug', 'Gunnleif', 'Gunnlöð', 'Gunnrún', 'Gunnur', 'Gunnveig', 'Gunnvör', 'Gunný', 'Gunnþóra', 'Gunnþórunn', 'Gurrý', 'Gúa', 'Gyða', 'Gyðja', 'Gyðríður', 'Gytta', 'Gæfa', 'Gæflaug', 'Hadda', 'Haddý', 'Hafbjörg', 'Hafborg', 'Hafdís', 'Hafey', 'Hafliða', 'Haflína', 'Hafný', 'Hafrós', 'Hafrún', 'Hafsteina', 'Hafþóra', 'Halla', 'Hallbera', 'Hallbjörg', 'Hallborg', 'Halldís', 'Halldóra', 'Halley', 'Hallfríður', 'Hallgerður', 'Hallgunnur', 'Hallkatla', 'Hallný', 'Hallrún', 'Hallveig', 'Hallvör', 'Hanna', 'Hanney', 'Hansa', 'Hansína', 'Harpa', 'Hauður', 'Hákonía', 'Heba', 'Hedda', 'Hedí', 'Heiða', 'Heiðbjörg', 'Heiðbjörk', 'Heiðbjört', 'Heiðbrá', 'Heiðdís', 'Heiðlaug', 'Heiðlóa', 'Heiðný', 'Heiðrós', 'Heiðrún', 'Heiður', 'Heiðveig', 'Hekla', 'Helen', 'Helena', 'Helga', 'Hella', 'Helma', 'Hendrikka', 'Henný', 'Henrietta', 'Henrika', 'Henríetta', 'Hera', 'Herbjörg', 'Herbjört', 'Herborg', 'Herdís', 'Herfríður', 'Hergerður', 'Herlaug', 'Hermína', 'Hersilía', 'Herta', 'Hertha', 'Hervör', 'Herþrúður', 'Hilda', 'Hildegard', 'Hildibjörg', 'Hildigerður', 'Hildigunnur', 'Hildiríður', 'Hildisif', 'Hildur', 'Hilma', 'Himinbjörg', 'Hind', 'Hinrika', 'Hinrikka', 'Hjalta', 'Hjaltey', 'Hjálmdís', 'Hjálmey', 'Hjálmfríður', 'Hjálmgerður', 'Hjálmrós', 'Hjálmrún', 'Hjálmveig', 'Hjördís', 'Hjörfríður', 'Hjörleif', 'Hjörný', 'Hjörtfríður', 'Hlaðgerður', 'Hlédís', 'Hlíf', 'Hlín', 'Hlökk', 'Hólmbjörg', 'Hólmdís', 'Hólmfríður', 'Hrafna', 'Hrafnborg', 'Hrafndís', 'Hrafney', 'Hrafngerður', 'Hrafnheiður', 'Hrafnhildur', 'Hrafnkatla', 'Hrafnlaug', 'Hrafntinna', 'Hraundís', 'Hrefna', 'Hreindís', 'Hróðný', 'Hrólfdís', 'Hrund', 'Hrönn', 'Hugbjörg', 'Hugbjört', 'Hugborg', 'Hugdís', 'Hugljúf', 'Hugrún', 'Huld', 'Hulda', 'Huldís', 'Huldrún', 'Húnbjörg', 'Húndís', 'Húngerður', 'Hvönn', 'Hödd', 'Högna', 'Hörn', 'Ida', 'Idda', 'Iða', 'Iðunn', 'Ilmur', 'Immý', 'Ina', 'Inda', 'India', 'Indiana', 'Indía', 'Indíana', 'Indíra', 'Indra', 'Inga', 'Ingdís', 'Ingeborg', 'Inger', 'Ingey', 'Ingheiður', 'Inghildur', 'Ingibjörg', 'Ingibjört', 'Ingiborg', 'Ingifinna', 'Ingifríður', 'Ingigerður', 'Ingilaug', 'Ingileif', 'Ingilín', 'Ingimaría', 'Ingimunda', 'Ingiríður', 'Ingirós', 'Ingisól', 'Ingiveig', 'Ingrid', 'Ingrún', 'Ingunn', 'Ingveldur', 'Inna', 'Irena', 'Irene', 'Irja', 'Irma', 'Irmý', 'Irpa', 'Isabel', 'Isabella', 'Ãda', 'Ãma', 'Ãna', 'Ãr', 'Ãren', 'Ãrena', 'Ãris', 'Ãrunn', 'Ãsabel', 'Ãsabella', 'Ãsadóra', 'Ãsafold', 'Ãsalind', 'Ãsbjörg', 'Ãsdís', 'Ãsey', 'Ãsfold', 'Ãsgerður', 'Ãshildur', 'Ãsis', 'Ãslaug', 'Ãsleif', 'Ãsmey', 'Ãsold', 'Ãsól', 'Ãsrún', 'Ãssól', 'Ãsveig', 'Ãunn', 'Ãva', 'Jakobína', 'Jana', 'Jane', 'Janetta', 'Jannika', 'Jara', 'Jarún', 'Jarþrúður', 'Jasmín', 'Járnbrá', 'Járngerður', 'Jenetta', 'Jenna', 'Jenný', 'Jensína', 'Jessý', 'Jovina', 'Jóa', 'Jóanna', 'Jódís', 'Jófríður', 'Jóhanna', 'Jólín', 'Jóna', 'Jónanna', 'Jónasína', 'Jónbjörg', 'Jónbjört', 'Jóndís', 'Jóndóra', 'Jóney', 'Jónfríður', 'Jóngerð', 'Jónheiður', 'Jónhildur', 'Jóninna', 'Jónída', 'Jónína', 'Jónný', 'Jóný', 'Jóra', 'Jóríður', 'Jórlaug', 'Jórunn', 'Jósebína', 'Jósefín', 'Jósefína', 'Judith', 'Júdea', 'Júdit', 'Júlía', 'Júlíana', 'Júlíanna', 'Júlíetta', 'Júlírós', 'Júnía', 'Júníana', 'Jökla', 'Jökulrós', 'Jörgína', 'Kaðlín', 'Kaja', 'Kalla', 'Kamilla', 'Kamí', 'Kamma', 'Kapitola', 'Kapítóla', 'Kara', 'Karen', 'Karin', 'Karitas', 'Karí', 'Karín', 'Karína', 'Karítas', 'Karla', 'Karlinna', 'Karlína', 'Karlotta', 'Karolína', 'Karó', 'Karólín', 'Karólína', 'Kassandra', 'Kata', 'Katarína', 'Katerína', 'Katharina', 'Kathinka', 'Katinka', 'Katla', 'Katrín', 'Katrína', 'Katý', 'Kára', 'Kellý', 'Kendra', 'Ketilbjörg', 'Ketilfríður', 'Ketilríður', 'Kiddý', 'Kira', 'Kirsten', 'Kirstín', 'Kittý', 'Kjalvör', 'Klara', 'Kládía', 'Klementína', 'Kleópatra', 'Kolbjörg', 'Kolbrá', 'Kolbrún', 'Koldís', 'Kolfinna', 'Kolfreyja', 'Kolgríma', 'Kolka', 'Konkordía', 'Konný', 'Korka', 'Kormlöð', 'Kornelía', 'Kókó', 'Krista', 'Kristbjörg', 'Kristborg', 'Kristel', 'Kristensa', 'Kristey', 'Kristfríður', 'Kristgerður', 'Kristin', 'Kristine', 'Kristíana', 'Kristíanna', 'Kristín', 'Kristína', 'Kristjana', 'Kristjóna', 'Kristlaug', 'Kristlind', 'Kristlín', 'Kristný', 'Kristólína', 'Kristrós', 'Kristrún', 'Kristveig', 'Kristvina', 'Kristþóra', 'Kría', 'Kæja', 'Laila', 'Laíla', 'Lana', 'Lara', 'Laufey', 'Laufheiður', 'Laufhildur', 'Lauga', 'Laugey', 'Laugheiður', 'Lára', 'Lárensína', 'Láretta', 'Lárey', 'Lea', 'Leikný', 'Leila', 'Lena', 'Leonóra', 'Leóna', 'Leónóra', 'Lilja', 'Liljá', 'Liljurós', 'Lill', 'Lilla', 'Lillian', 'Lillý', 'Lily', 'Lilý', 'Lind', 'Linda', 'Linddís', 'Lingný', 'Lisbeth', 'Listalín', 'Liv', 'Líba', 'Líf', 'Lífdís', 'Lín', 'Lína', 'Línbjörg', 'Líndís', 'Líneik', 'Líney', 'Línhildur', 'Lísa', 'Lísabet', 'Lísandra', 'Lísbet', 'Lísebet', 'Lív', 'Ljósbjörg', 'Ljósbrá', 'Ljótunn', 'Lofn', 'Loftveig', 'Logey', 'Lokbrá', 'Lotta', 'Louisa', 'Lousie', 'Lovísa', 'Lóa', 'Lóreley', 'Lukka', 'Lúcía', 'Lúðvíka', 'Lúísa', 'Lúna', 'Lúsinda', 'Lúsía', 'Lúvísa', 'Lydia', 'Lydía', 'Lyngheiður', 'Lýdía', 'Læla', 'Maddý', 'Magda', 'Magdalena', 'Magðalena', 'Magga', 'Maggey', 'Maggý', 'Magna', 'Magndís', 'Magnea', 'Magnes', 'Magney', 'Magnfríður', 'Magnheiður', 'Magnhildur', 'Magnúsína', 'Magný', 'Magnþóra', 'Maía', 'Maídís', 'Maísól', 'Maj', 'Maja', 'Malen', 'Malena', 'Malía', 'Malín', 'Malla', 'Manda', 'Manúela', 'Mara', 'Mardís', 'Marela', 'Marella', 'Maren', 'Marey', 'Marfríður', 'Margit', 'Margot', 'Margret', 'Margrét', 'Margrjet', 'Margunnur', 'Marheiður', 'Maria', 'Marie', 'Marikó', 'Marinella', 'Marit', 'Marí', 'María', 'Maríam', 'Marían', 'Maríana', 'Maríanna', 'Marín', 'Marína', 'Marínella', 'Maríon', 'Marísa', 'Marísól', 'Marít', 'Maríuerla', 'Marja', 'Markrún', 'Marlaug', 'Marlena', 'Marlín', 'Marlís', 'Marólína', 'Marsa', 'Marselía', 'Marselína', 'Marsibil', 'Marsilía', 'Marsý', 'Marta', 'Martha', 'Martína', 'Mary', 'Marý', 'Matta', 'Mattea', 'Matthea', 'Matthilda', 'Matthildur', 'Matthía', 'Mattíana', 'Mattína', 'Mattý', 'Maxima', 'Mábil', 'Málfríður', 'Málhildur', 'Málmfríður', 'Mánadís', 'Máney', 'Mára', 'Meda', 'Mekkin', 'Mekkín', 'Melinda', 'Melissa', 'Melkorka', 'Melrós', 'Messíana', 'Metta', 'Mey', 'Mikaela', 'Mikaelína', 'Mikkalína', 'Milda', 'Mildríður', 'Milla', 'Millý', 'Minerva', 'Minna', 'Minney', 'Minný', 'Miriam', 'Mirja', 'Mirjam', 'Mirra', 'Mist', 'Mía', 'Mínerva', 'Míra', 'Míranda', 'Mítra', 'Mjaðveig', 'Mjalldís', 'Mjallhvít', 'Mjöll', 'Mona', 'Monika', 'Módís', 'Móeiður', 'Móey', 'Móheiður', 'Móna', 'Mónika', 'Móníka', 'Munda', 'Mundheiður', 'Mundhildur', 'Mundína', 'Myrra', 'Mýr', 'Mýra', 'Mýrún', 'Mörk', 'Nadia', 'Nadía', 'Nadja', 'Nana', 'Nanna', 'Nanný', 'Nansý', 'Naomí', 'Naómí', 'Natalie', 'Natalía', 'Náttsól', 'Nella', 'Nellý', 'Nenna', 'Nicole', 'Niðbjörg', 'Nikíta', 'Nikoletta', 'Nikólína', 'Ninja', 'Ninna', 'Nína', 'Níní', 'Njála', 'Njóla', 'Norma', 'Nóa', 'Nóra', 'Nótt', 'Nýbjörg', 'Odda', 'Oddbjörg', 'Oddfreyja', 'Oddfríður', 'Oddgerður', 'Oddhildur', 'Oddlaug', 'Oddleif', 'Oddný', 'Oddrún', 'Oddveig', 'Oddvör', 'Oktavía', 'Októvía', 'Olga', 'Ollý', 'Ora', 'Orka', 'Ormheiður', 'Ormhildur', 'Otkatla', 'Otta', 'Óda', 'Ófelía', 'Óla', 'Ólafía', 'Ólafína', 'Ólavía', 'Ólivía', 'Ólína', 'Ólöf', 'Ósa', 'Ósk', 'Ótta', 'Pamela', 'París', 'Patricia', 'Patrisía', 'Pála', 'Páldís', 'Páley', 'Pálfríður', 'Pálhanna', 'Pálheiður', 'Pálhildur', 'Pálín', 'Pálína', 'Pálmey', 'Pálmfríður', 'Pálrún', 'Perla', 'Peta', 'Petra', 'Petrea', 'Petrína', 'Petronella', 'Petrónella', 'Petrós', 'Petrún', 'Petrúnella', 'Pétrína', 'Pétrún', 'Pía', 'Polly', 'Pollý', 'Pría', 'Rafney', 'Rafnhildur', 'Ragna', 'Ragnbjörg', 'Ragney', 'Ragnfríður', 'Ragnheiður', 'Ragnhildur', 'Rakel', 'Ramóna', 'Randalín', 'Randíður', 'Randý', 'Ranka', 'Rannva', 'Rannveig', 'Ráðhildur', 'Rán', 'Rebekka', 'Reginbjörg', 'Regína', 'Rein', 'Renata', 'Reyn', 'Reyndís', 'Reynheiður', 'Reynhildur', 'Rikka', 'Ripley', 'Rita', 'Ríkey', 'Rín', 'Ríta', 'Ronja', 'Rorí', 'Roxanna', 'Róberta', 'Róbjörg', 'Rós', 'Rósa', 'Rósalind', 'Rósanna', 'Rósbjörg', 'Rósborg', 'Róselía', 'Rósey', 'Rósfríður', 'Róshildur', 'Rósinkara', 'Rósinkransa', 'Róska', 'Róslaug', 'Róslind', 'Róslinda', 'Róslín', 'Rósmary', 'Rósmarý', 'Rósmunda', 'Rósný', 'Runný', 'Rut', 'Ruth', 'Rúbý', 'Rún', 'Rúna', 'Rúndís', 'Rúnhildur', 'Rúrí', 'Röfn', 'Rögn', 'Röskva', 'Sabína', 'Sabrína', 'Saga', 'Salbjörg', 'Saldís', 'Salgerður', 'Salín', 'Salína', 'Salka', 'Salma', 'Salný', 'Salome', 'Salóme', 'Salvör', 'Sandra', 'Sanna', 'Santía', 'Sara', 'Sarína', 'Sefanía', 'Selja', 'Selka', 'Selma', 'Senía', 'Septíma', 'Sera', 'Serena', 'Seselía', 'Sesilía', 'Sesselía', 'Sesselja', 'Sessilía', 'Sif', 'Sigdís', 'Sigdóra', 'Sigfríð', 'Sigfríður', 'Sigga', 'Siggerður', 'Sigmunda', 'Signa', 'Signhildur', 'Signý', 'Sigríður', 'Sigrún', 'Sigurást', 'Sigurásta', 'Sigurbára', 'Sigurbirna', 'Sigurbjörg', 'Sigurbjört', 'Sigurborg', 'Sigurdís', 'Sigurdóra', 'Sigurdríf', 'Sigurdrífa', 'Sigurða', 'Sigurey', 'Sigurfinna', 'Sigurfljóð', 'Sigurgeira', 'Sigurhanna', 'Sigurhelga', 'Sigurhildur', 'Sigurjóna', 'Sigurlaug', 'Sigurleif', 'Sigurlilja', 'Sigurlinn', 'Sigurlín', 'Sigurlína', 'Sigurmunda', 'Sigurnanna', 'Sigurósk', 'Sigurrós', 'Sigursteina', 'Sigurunn', 'Sigurveig', 'Sigurvina', 'Sigurþóra', 'Sigyn', 'Sigþóra', 'Sigþrúður', 'Silfa', 'Silfá', 'Silfrún', 'Silja', 'Silka', 'Silla', 'Silva', 'Silvana', 'Silvía', 'Sirra', 'Sirrý', 'Siv', 'Sía', 'Símonía', 'Sísí', 'Síta', 'Sjöfn', 'Skarpheiður', 'Skugga', 'Skuld', 'Skúla', 'Skúlína', 'Snjáfríður', 'Snjáka', 'Snjófríður', 'Snjólaug', 'Snorra', 'Snót', 'Snæbjörg', 'Snæbjört', 'Snæborg', 'Snæbrá', 'Snædís', 'Snæfríður', 'Snælaug', 'Snærós', 'Snærún', 'Soffía', 'Sofie', 'Sofía', 'Solveig', 'Sonja', 'Sonný', 'Sophia', 'Sophie', 'Sól', 'Sóla', 'Sólbjörg', 'Sólbjört', 'Sólborg', 'Sólbrá', 'Sólbrún', 'Sóldís', 'Sóldögg', 'Sóley', 'Sólfríður', 'Sólgerður', 'Sólhildur', 'Sólín', 'Sólkatla', 'Sóllilja', 'Sólný', 'Sólrós', 'Sólrún', 'Sólveig', 'Sólvör', 'Sónata', 'Stefana', 'Stefanía', 'Stefánný', 'Steina', 'Steinbjörg', 'Steinborg', 'Steindís', 'Steindóra', 'Steiney', 'Steinfríður', 'Steingerður', 'Steinhildur', 'Steinlaug', 'Steinrós', 'Steinrún', 'Steinunn', 'Steinvör', 'Steinþóra', 'Stella', 'Stígheiður', 'Stígrún', 'Stína', 'Stjarna', 'Styrgerður', 'Sumarlína', 'Sumarrós', 'Sunna', 'Sunnefa', 'Sunneva', 'Sunniva', 'Sunníva', 'Susan', 'Súla', 'Súsan', 'Súsanna', 'Svafa', 'Svala', 'Svalrún', 'Svana', 'Svanbjörg', 'Svanbjört', 'Svanborg', 'Svandís', 'Svaney', 'Svanfríður', 'Svanheiður', 'Svanhildur', 'Svanhvít', 'Svanlaug', 'Svanrós', 'Svanþrúður', 'Svava', 'Svea', 'Sveina', 'Sveinbjörg', 'Sveinborg', 'Sveindís', 'Sveiney', 'Sveinfríður', 'Sveingerður', 'Sveinhildur', 'Sveinlaug', 'Sveinrós', 'Sveinrún', 'Sveinsína', 'Sveinveig', 'Sylgja', 'Sylva', 'Sylvía', 'Sæbjörg', 'Sæbjört', 'Sæborg', 'Sædís', 'Sæfinna', 'Sæfríður', 'Sæhildur', 'Sælaug', 'Sæmunda', 'Sæný', 'Særós', 'Særún', 'Sæsól', 'Sæunn', 'Sævör', 'Sölva', 'Sölvey', 'Sölvína', 'Tala', 'Talía', 'Tamar', 'Tamara', 'Tanía', 'Tanja', 'Tanya', 'Tanya', 'Tara', 'Tea', 'Teitný', 'Tekla', 'Telma', 'Tera', 'Teresa', 'Teresía', 'Thea', 'Thelma', 'Theodóra', 'Theódóra', 'Theresa', 'Tindra', 'Tinna', 'Tirsa', 'Tía', 'Tíbrá', 'Tína', 'Todda', 'Torbjörg', 'Torfey', 'Torfheiður', 'Torfhildur', 'Tóbý', 'Tóka', 'Tóta', 'Tristana', 'Trú', 'Tryggva', 'Tryggvína', 'Týra', 'Ugla', 'Una', 'Undína', 'Unna', 'Unnbjörg', 'Unndís', 'Unnur', 'Urður', 'Úa', 'Úlfa', 'Úlfdís', 'Úlfey', 'Úlfheiður', 'Úlfhildur', 'Úlfrún', 'Úlla', 'Úna', 'Úndína', 'Úranía', 'Úrsúla', 'Vagna', 'Vagnbjörg', 'Vagnfríður', 'Vaka', 'Vala', 'Valbjörg', 'Valbjörk', 'Valbjört', 'Valborg', 'Valdheiður', 'Valdís', 'Valentína', 'Valería', 'Valey', 'Valfríður', 'Valgerða', 'Valgerður', 'Valhildur', 'Valka', 'Vallý', 'Valný', 'Valrós', 'Valrún', 'Valva', 'Valý', 'Valþrúður', 'Vanda', 'Vár', 'Veig', 'Veiga', 'Venus', 'Vera', 'Veronika', 'Verónika', 'Veróníka', 'Vetrarrós', 'Vébjörg', 'Védís', 'Végerður', 'Vélaug', 'Véný', 'Vibeka', 'Victoría', 'Viðja', 'Vigdís', 'Vigný', 'Viktoria', 'Viktoría', 'Vilborg', 'Vildís', 'Vilfríður', 'Vilgerður', 'Vilhelmína', 'Villa', 'Villimey', 'Vilma', 'Vilný', 'Vinbjörg', 'Vinný', 'Vinsý', 'Virginía', 'Víbekka', 'Víf', 'Vígdögg', 'Víggunnur', 'Víóla', 'Víóletta', 'Vísa', 'Von', 'Von', 'Voney', 'Vordís', 'Ylfa', 'Ylfur', 'Ylja', 'Ylva', 'Ynja', 'Yrja', 'Yrsa', 'Ãja', 'Ãma', 'Ãr', 'Ãrr', 'Þalía', 'Þeba', 'Þeódís', 'Þeódóra', 'Þjóðbjörg', 'Þjóðhildur', 'Þoka', 'Þorbjörg', 'Þorfinna', 'Þorgerður', 'Þorgríma', 'Þorkatla', 'Þorlaug', 'Þorleif', 'Þorsteina', 'Þorstína', 'Þóra', 'Þóranna', 'Þórarna', 'Þórbjörg', 'Þórdís', 'Þórða', 'Þórelfa', 'Þórelfur', 'Þórey', 'Þórfríður', 'Þórgunna', 'Þórgunnur', 'Þórhalla', 'Þórhanna', 'Þórheiður', 'Þórhildur', 'Þórkatla', 'Þórlaug', 'Þórleif', 'Þórný', 'Þórodda', 'Þórsteina', 'Þórsteinunn', 'Þórstína', 'Þórunn', 'Þórveig', 'Þórvör', 'Þrá', 'Þrúða', 'Þrúður', 'Þula', 'Þura', 'Þurí', 'Þuríður', 'Þurý', 'Þúfa', 'Þyri', 'Þyrí', 'Þöll', 'Ægileif', 'Æsa', 'Æsgerður', 'Ögmunda', 'Ögn', 'Ölrún', 'Ölveig', 'Örbrún', 'Örk', 'Ösp'); - - /** - * @var string Icelandic men names. - */ - protected static $firstNameMale = array('Aage', 'Abel', 'Abraham', 'Adam', 'Addi', 'Adel', 'Adíel', 'Adólf', 'Adrían', 'Adríel', 'Aðalberg', 'Aðalbergur', 'Aðalbert', 'Aðalbjörn', 'Aðalborgar', 'Aðalgeir', 'Aðalmundur', 'Aðalráður', 'Aðalsteinn', 'Aðólf', 'Agnar', 'Agni', 'Albert', 'Aldar', 'Alex', 'Alexander', 'Alexíus', 'Alfons', 'Alfred', 'Alfreð', 'Ali', 'Allan', 'Alli', 'Almar', 'Alrekur', 'Alvar', 'Alvin', 'Amír', 'Amos', 'Anders', 'Andreas', 'André', 'Andrés', 'Andri', 'Anes', 'Anfinn', 'Angantýr', 'Angi', 'Annar', 'Annarr', 'Annas', 'Annel', 'Annes', 'Anthony', 'Anton', 'Antoníus', 'Aran', 'Arent', 'Ares', 'Ari', 'Arilíus', 'Arinbjörn', 'Aríel', 'Aríus', 'Arnald', 'Arnaldur', 'Arnar', 'Arnberg', 'Arnbergur', 'Arnbjörn', 'Arndór', 'Arnes', 'Arnfinnur', 'Arnfreyr', 'Arngeir', 'Arngils', 'Arngrímur', 'Arnkell', 'Arnlaugur', 'Arnleifur', 'Arnljótur', 'Arnmóður', 'Arnmundur', 'Arnoddur', 'Arnold', 'Arnór', 'Arnsteinn', 'Arnúlfur', 'Arnviður', 'Arnþór', 'Aron', 'Arthur', 'Arthúr', 'Artúr', 'Asael', 'Askur', 'Aspar', 'Atlas', 'Atli', 'Auðbergur', 'Auðbert', 'Auðbjörn', 'Auðgeir', 'Auðkell', 'Auðmundur', 'Auðólfur', 'Auðun', 'Auðunn', 'Austar', 'Austmann', 'Austmar', 'Austri', 'Axel', 'Ãgúst', 'Ãki', 'Ãlfar', 'Ãlfgeir', 'Ãlfgrímur', 'Ãlfur', 'Ãlfþór', 'Ãmundi', 'Ãrbjartur', 'Ãrbjörn', 'Ãrelíus', 'Ãrgeir', 'Ãrgils', 'Ãrmann', 'Ãrni', 'Ãrsæll', 'Ãs', 'Ãsberg', 'Ãsbergur', 'Ãsbjörn', 'Ãsgautur', 'Ãsgeir', 'Ãsgils', 'Ãsgrímur', 'Ãsi', 'Ãskell', 'Ãslaugur', 'Ãslákur', 'Ãsmar', 'Ãsmundur', 'Ãsólfur', 'Ãsröður', 'Ãstbjörn', 'Ãstgeir', 'Ãstmar', 'Ãstmundur', 'Ãstráður', 'Ãstríkur', 'Ãstvald', 'Ãstvaldur', 'Ãstvar', 'Ãstvin', 'Ãstþór', 'Ãsvaldur', 'Ãsvarður', 'Ãsþór', 'Baldur', 'Baldvin', 'Baldwin', 'Baltasar', 'Bambi', 'Barði', 'Barri', 'Bassi', 'Bastían', 'Baugur', 'Bárður', 'Beinir', 'Beinteinn', 'Beitir', 'Bekan', 'Benedikt', 'Benidikt', 'Benjamín', 'Benoný', 'Benóní', 'Benóný', 'Bent', 'Berent', 'Berg', 'Bergfinnur', 'Berghreinn', 'Bergjón', 'Bergmann', 'Bergmar', 'Bergmundur', 'Bergsteinn', 'Bergsveinn', 'Bergur', 'Bergvin', 'Bergþór', 'Bernhard', 'Bernharð', 'Bernharður', 'Berni', 'Bernódus', 'Bersi', 'Bertel', 'Bertram', 'Bessi', 'Betúel', 'Bill', 'Birgir', 'Birkir', 'Birnir', 'Birtingur', 'Birtir', 'Bjargar', 'Bjargmundur', 'Bjargþór', 'Bjarkan', 'Bjarkar', 'Bjarki', 'Bjarmar', 'Bjarmi', 'Bjarnar', 'Bjarnfinnur', 'Bjarnfreður', 'Bjarnharður', 'Bjarnhéðinn', 'Bjarni', 'Bjarnlaugur', 'Bjarnleifur', 'Bjarnólfur', 'Bjarnsteinn', 'Bjarnþór', 'Bjartmann', 'Bjartmar', 'Bjartur', 'Bjartþór', 'Bjólan', 'Bjólfur', 'Björgmundur', 'Björgólfur', 'Björgúlfur', 'Björgvin', 'Björn', 'Björnólfur', 'Blængur', 'Blær', 'Blævar', 'Boði', 'Bogi', 'Bolli', 'Borgar', 'Borgúlfur', 'Borgþór', 'Bóas', 'Bói', 'Bótólfur', 'Bragi', 'Brandur', 'Breki', 'Bresi', 'Brestir', 'Brimar', 'Brimi', 'Brimir', 'Brími', 'Brjánn', 'Broddi', 'Bruno', 'Bryngeir', 'Brynjar', 'Brynjólfur', 'Brynjúlfur', 'Brynleifur', 'Brynsteinn', 'Bryntýr', 'Brynþór', 'Burkni', 'Búi', 'Búri', 'Bæring', 'Bæringur', 'Bæron', 'Böðvar', 'Börkur', 'Carl', 'Cecil', 'Christian', 'Christopher', 'Cýrus', 'Daði', 'Dagbjartur', 'Dagfari', 'Dagfinnur', 'Daggeir', 'Dagmann', 'Dagnýr', 'Dagur', 'Dagþór', 'Dalbert', 'Dalli', 'Dalmann', 'Dalmar', 'Dalvin', 'Damjan', 'Dan', 'Danelíus', 'Daniel', 'Danival', 'Daníel', 'Daníval', 'Dante', 'Daríus', 'Darri', 'Davíð', 'Demus', 'Deníel', 'Dennis', 'Diðrik', 'Díómedes', 'Dofri', 'Dolli', 'Dominik', 'Dómald', 'Dómaldi', 'Dómaldur', 'Dónald', 'Dónaldur', 'Dór', 'Dóri', 'Dósóþeus', 'Draupnir', 'Dreki', 'Drengur', 'Dufgus', 'Dufþakur', 'Dugfús', 'Dúi', 'Dúnn', 'Dvalinn', 'Dýri', 'Dýrmundur', 'Ebbi', 'Ebeneser', 'Ebenezer', 'Eberg', 'Edgar', 'Edilon', 'Edílon', 'Edvard', 'Edvin', 'Edward', 'Eðvald', 'Eðvar', 'Eðvarð', 'Efraím', 'Eggert', 'Eggþór', 'Egill', 'Eiðar', 'Eiður', 'Eikar', 'Eilífur', 'Einar', 'Einir', 'Einvarður', 'Einþór', 'Eiríkur', 'Eivin', 'Elberg', 'Elbert', 'Eldar', 'Eldgrímur', 'Eldjárn', 'Eldmar', 'Eldon', 'Eldór', 'Eldur', 'Elentínus', 'Elfar', 'Elfráður', 'Elimar', 'Elinór', 'Elis', 'Elí', 'Elías', 'Elíeser', 'Elímar', 'Elínbergur', 'Elínmundur', 'Elínór', 'Elís', 'Ellert', 'Elli', 'Elliði', 'Ellís', 'Elmar', 'Elvar', 'Elvin', 'Elvis', 'Emanúel', 'Embrek', 'Emerald', 'Emil', 'Emmanúel', 'Engilbert', 'Engilbjartur', 'Engiljón', 'Engill', 'Enok', 'Eric', 'Erik', 'Erlar', 'Erlendur', 'Erling', 'Erlingur', 'Ernestó', 'Ernir', 'Ernst', 'Eron', 'Erpur', 'Esekíel', 'Esjar', 'Esra', 'Estefan', 'Evald', 'Evan', 'Evert', 'Eyberg', 'Eyjólfur', 'Eylaugur', 'Eyleifur', 'Eymar', 'Eymundur', 'Eyríkur', 'Eysteinn', 'Eyvar', 'Eyvindur', 'Eyþór', 'Fabrisíus', 'Falgeir', 'Falur', 'Fannar', 'Fannberg', 'Fanngeir', 'Fáfnir', 'Fálki', 'Felix', 'Fengur', 'Fenrir', 'Ferdinand', 'Ferdínand', 'Fertram', 'Feykir', 'Filip', 'Filippus', 'Finn', 'Finnbjörn', 'Finnbogi', 'Finngeir', 'Finnjón', 'Finnlaugur', 'Finnur', 'Finnvarður', 'Fífill', 'Fjalar', 'Fjarki', 'Fjólar', 'Fjólmundur', 'Fjölnir', 'Fjölvar', 'Fjörnir', 'Flemming', 'Flosi', 'Flóki', 'Flórent', 'Flóvent', 'Forni', 'Fossmar', 'Fólki', 'Francis', 'Frank', 'Franklín', 'Frans', 'Franz', 'Fránn', 'Frár', 'Freybjörn', 'Freygarður', 'Freymar', 'Freymóður', 'Freymundur', 'Freyr', 'Freysteinn', 'Freyviður', 'Freyþór', 'Friðberg', 'Friðbergur', 'Friðbert', 'Friðbjörn', 'Friðfinnur', 'Friðgeir', 'Friðjón', 'Friðlaugur', 'Friðleifur', 'Friðmann', 'Friðmar', 'Friðmundur', 'Friðrik', 'Friðsteinn', 'Friður', 'Friðvin', 'Friðþjófur', 'Friðþór', 'Friedrich', 'Fritz', 'Frímann', 'Frosti', 'Fróði', 'Fróðmar', 'Funi', 'Fúsi', 'Fylkir', 'Gabriel', 'Gabríel', 'Gael', 'Galdur', 'Gamalíel', 'Garðar', 'Garibaldi', 'Garpur', 'Garri', 'Gaui', 'Gaukur', 'Gauti', 'Gautrekur', 'Gautur', 'Gautviður', 'Geir', 'Geirarður', 'Geirfinnur', 'Geirharður', 'Geirhjörtur', 'Geirhvatur', 'Geiri', 'Geirlaugur', 'Geirleifur', 'Geirmundur', 'Geirólfur', 'Geirröður', 'Geirtryggur', 'Geirvaldur', 'Geirþjófur', 'Geisli', 'Gellir', 'Georg', 'Gerald', 'Gerðar', 'Geri', 'Gestur', 'Gilbert', 'Gilmar', 'Gils', 'Gissur', 'Gizur', 'Gídeon', 'Gígjar', 'Gísli', 'Gjúki', 'Glói', 'Glúmur', 'Gneisti', 'Gnúpur', 'Gnýr', 'Goði', 'Goðmundur', 'Gottskálk', 'Gottsveinn', 'Gói', 'Grani', 'Grankell', 'Gregor', 'Greipur', 'Greppur', 'Gretar', 'Grettir', 'Grétar', 'Grímar', 'Grímkell', 'Grímlaugur', 'Grímnir', 'Grímólfur', 'Grímur', 'Grímúlfur', 'Guðberg', 'Guðbergur', 'Guðbjarni', 'Guðbjartur', 'Guðbjörn', 'Guðbrandur', 'Guðfinnur', 'Guðfreður', 'Guðgeir', 'Guðjón', 'Guðlaugur', 'Guðleifur', 'Guðleikur', 'Guðmann', 'Guðmar', 'Guðmon', 'Guðmundur', 'Guðni', 'Guðráður', 'Guðröður', 'Guðsteinn', 'Guðvarður', 'Guðveigur', 'Guðvin', 'Guðþór', 'Gumi', 'Gunnar', 'Gunnberg', 'Gunnbjörn', 'Gunndór', 'Gunngeir', 'Gunnhallur', 'Gunnlaugur', 'Gunnleifur', 'Gunnólfur', 'Gunnóli', 'Gunnröður', 'Gunnsteinn', 'Gunnvaldur', 'Gunnþór', 'Gustav', 'Gutti', 'Guttormur', 'Gústaf', 'Gústav', 'Gylfi', 'Gyrðir', 'Gýgjar', 'Gýmir', 'Haddi', 'Haddur', 'Hafberg', 'Hafgrímur', 'Hafliði', 'Hafnar', 'Hafni', 'Hafsteinn', 'Hafþór', 'Hagalín', 'Hagbarður', 'Hagbert', 'Haki', 'Hallberg', 'Hallbjörn', 'Halldór', 'Hallfreður', 'Hallgarður', 'Hallgeir', 'Hallgils', 'Hallgrímur', 'Hallkell', 'Hallmann', 'Hallmar', 'Hallmundur', 'Hallsteinn', 'Hallur', 'Hallvarður', 'Hallþór', 'Hamar', 'Hannes', 'Hannibal', 'Hans', 'Harald', 'Haraldur', 'Harri', 'Harry', 'Harrý', 'Hartmann', 'Hartvig', 'Hauksteinn', 'Haukur', 'Haukvaldur', 'Hákon', 'Háleygur', 'Hálfdan', 'Hálfdán', 'Hámundur', 'Hárekur', 'Hárlaugur', 'Hásteinn', 'Hávar', 'Hávarður', 'Hávarr', 'Hávarr', 'Heiðar', 'Heiðarr', 'Heiðberg', 'Heiðbert', 'Heiðlindur', 'Heiðmann', 'Heiðmar', 'Heiðmundur', 'Heiðrekur', 'Heikir', 'Heilmóður', 'Heimir', 'Heinrekur', 'Heisi', 'Hektor', 'Helgi', 'Helmút', 'Hemmert', 'Hendrik', 'Henning', 'Henrik', 'Henry', 'Henrý', 'Herbert', 'Herbjörn', 'Herfinnur', 'Hergeir', 'Hergill', 'Hergils', 'Herjólfur', 'Herlaugur', 'Herleifur', 'Herluf', 'Hermann', 'Hermóður', 'Hermundur', 'Hersir', 'Hersteinn', 'Hersveinn', 'Hervar', 'Hervarður', 'Hervin', 'Héðinn', 'Hilaríus', 'Hilbert', 'Hildar', 'Hildibergur', 'Hildibrandur', 'Hildigeir', 'Hildiglúmur', 'Hildimar', 'Hildimundur', 'Hildingur', 'Hildir', 'Hildiþór', 'Hilmar', 'Hilmir', 'Himri', 'Hinrik', 'Híram', 'Hjallkár', 'Hjalti', 'Hjarnar', 'Hjálmar', 'Hjálmgeir', 'Hjálmtýr', 'Hjálmur', 'Hjálmþór', 'Hjörleifur', 'Hjörtur', 'Hjörtþór', 'Hjörvar', 'Hleiðar', 'Hlégestur', 'Hlér', 'Hlini', 'Hlíðar', 'Hlíðberg', 'Hlífar', 'Hljómur', 'Hlynur', 'Hlöðmundur', 'Hlöður', 'Hlöðvarður', 'Hlöðver', 'Hnefill', 'Hnikar', 'Hnikarr', 'Holgeir', 'Holger', 'Holti', 'Hólm', 'Hólmar', 'Hólmbert', 'Hólmfastur', 'Hólmgeir', 'Hólmgrímur', 'Hólmkell', 'Hólmsteinn', 'Hólmþór', 'Hóseas', 'Hrafn', 'Hrafnar', 'Hrafnbergur', 'Hrafnkell', 'Hrafntýr', 'Hrannar', 'Hrappur', 'Hraunar', 'Hreggviður', 'Hreiðar', 'Hreiðmar', 'Hreimur', 'Hreinn', 'Hringur', 'Hrímnir', 'Hrollaugur', 'Hrolleifur', 'Hróaldur', 'Hróar', 'Hróbjartur', 'Hróðgeir', 'Hróðmar', 'Hróðólfur', 'Hróðvar', 'Hrói', 'Hrólfur', 'Hrómundur', 'Hrútur', 'Hrærekur', 'Hugberg', 'Hugi', 'Huginn', 'Hugleikur', 'Hugo', 'Hugó', 'Huldar', 'Huxley', 'Húbert', 'Húgó', 'Húmi', 'Húnbogi', 'Húni', 'Húnn', 'Húnröður', 'Hvannar', 'Hyltir', 'Hylur', 'Hængur', 'Hænir', 'Höður', 'Högni', 'Hörður', 'Höskuldur', 'Illugi', 'Immanúel', 'Indriði', 'Ingberg', 'Ingi', 'Ingiberg', 'Ingibergur', 'Ingibert', 'Ingibjartur', 'Ingibjörn', 'Ingileifur', 'Ingimagn', 'Ingimar', 'Ingimundur', 'Ingivaldur', 'Ingiþór', 'Ingjaldur', 'Ingmar', 'Ingólfur', 'Ingvaldur', 'Ingvar', 'Ingvi', 'Ingþór', 'Ismael', 'Issi', 'Ãan', 'Ãgor', 'Ãmi', 'Ãsak', 'Ãsar', 'Ãsarr', 'Ãsbjörn', 'Ãseldur', 'Ãsgeir', 'Ãsidór', 'Ãsleifur', 'Ãsmael', 'Ãsmar', 'Ãsólfur', 'Ãsrael', 'Ãvan', 'Ãvar', 'Jack', 'Jafet', 'Jaki', 'Jakob', 'Jakop', 'Jamil', 'Jan', 'Janus', 'Jarl', 'Jason', 'Járngrímur', 'Játgeir', 'Játmundur', 'Játvarður', 'Jenni', 'Jens', 'Jeremías', 'Jes', 'Jesper', 'Jochum', 'Johan', 'John', 'Joshua', 'Jóakim', 'Jóann', 'Jóel', 'Jóhann', 'Jóhannes', 'Jói', 'Jómar', 'Jómundur', 'Jón', 'Jónar', 'Jónas', 'Jónatan', 'Jónbjörn', 'Jóndór', 'Jóngeir', 'Jónmundur', 'Jónsteinn', 'Jónþór', 'Jósafat', 'Jósavin', 'Jósef', 'Jósep', 'Jósteinn', 'Jósúa', 'Jóvin', 'Julian', 'Júlí', 'Júlían', 'Júlíus', 'Júní', 'Júníus', 'Júrek', 'Jökull', 'Jörfi', 'Jörgen', 'Jörmundur', 'Jörri', 'Jörundur', 'Jörvar', 'Jörvi', 'Kaj', 'Kakali', 'Kaktus', 'Kaldi', 'Kaleb', 'Kali', 'Kalman', 'Kalmann', 'Kalmar', 'Kaprasíus', 'Karel', 'Karim', 'Karkur', 'Karl', 'Karles', 'Karli', 'Karvel', 'Kaspar', 'Kasper', 'Kastíel', 'Katarínus', 'Kató', 'Kár', 'Kári', 'Keran', 'Ketilbjörn', 'Ketill', 'Kilían', 'Kiljan', 'Kjalar', 'Kjallakur', 'Kjaran', 'Kjartan', 'Kjarval', 'Kjárr', 'Kjói', 'Klemens', 'Klemenz', 'Klængur', 'Knútur', 'Knörr', 'Koðrán', 'Koggi', 'Kolbeinn', 'Kolbjörn', 'Kolfinnur', 'Kolgrímur', 'Kolmar', 'Kolskeggur', 'Kolur', 'Kolviður', 'Konráð', 'Konstantínus', 'Kormákur', 'Kornelíus', 'Kort', 'Kópur', 'Kraki', 'Kris', 'Kristall', 'Kristberg', 'Kristbergur', 'Kristbjörn', 'Kristdór', 'Kristens', 'Krister', 'Kristfinnur', 'Kristgeir', 'Kristian', 'Kristinn', 'Kristján', 'Kristjón', 'Kristlaugur', 'Kristleifur', 'Kristmann', 'Kristmar', 'Kristmundur', 'Kristofer', 'Kristófer', 'Kristvaldur', 'Kristvarður', 'Kristvin', 'Kristþór', 'Krummi', 'Kveldúlfur', 'Lambert', 'Lars', 'Laufar', 'Laugi', 'Lauritz', 'Lár', 'Lárent', 'Lárentíus', 'Lárus', 'Leiðólfur', 'Leif', 'Leifur', 'Leiknir', 'Leo', 'Leon', 'Leonard', 'Leonhard', 'Leó', 'Leópold', 'Leví', 'Lér', 'Liljar', 'Lindar', 'Lindberg', 'Línberg', 'Líni', 'Ljósálfur', 'Ljótur', 'Ljúfur', 'Loðmundur', 'Loftur', 'Logi', 'Loki', 'Lórens', 'Lórenz', 'Ludvig', 'Lundi', 'Lúðvíg', 'Lúðvík', 'Lúkas', 'Lúter', 'Lúther', 'Lyngar', 'Lýður', 'Lýtingur', 'Maggi', 'Magngeir', 'Magni', 'Magnús', 'Magnþór', 'Makan', 'Manfred', 'Manfreð', 'Manúel', 'Mar', 'Marbjörn', 'Marel', 'Margeir', 'Margrímur', 'Mari', 'Marijón', 'Marinó', 'Marías', 'Marínó', 'Marís', 'Maríus', 'Marjón', 'Markó', 'Markús', 'Markþór', 'Maron', 'Marri', 'Mars', 'Marsellíus', 'Marteinn', 'Marten', 'Marthen', 'Martin', 'Marvin', 'Mathías', 'Matthías', 'Matti', 'Mattías', 'Max', 'Maximus', 'Máni', 'Már', 'Márus', 'Mekkinó', 'Melkíor', 'Melkólmur', 'Melrakki', 'Mensalder', 'Merkúr', 'Methúsalem', 'Metúsalem', 'Meyvant', 'Michael', 'Mikael', 'Mikjáll', 'Mikkael', 'Mikkel', 'Mildinberg', 'Mías', 'Mímir', 'Míó', 'Mír', 'Mjöllnir', 'Mjölnir', 'Moli', 'Morgan', 'Moritz', 'Mosi', 'Móði', 'Móri', 'Mórits', 'Móses', 'Muggur', 'Muni', 'Muninn', 'Múli', 'Myrkvi', 'Mýrkjartan', 'Mörður', 'Narfi', 'Natan', 'Natanael', 'Nataníel', 'Náttmörður', 'Náttúlfur', 'Neisti', 'Nenni', 'Neptúnus', 'Nicolas', 'Nikanor', 'Nikolai', 'Nikolas', 'Nikulás', 'Nils', 'Níels', 'Níls', 'Njáll', 'Njörður', 'Nonni', 'Norbert', 'Norðmann', 'Normann', 'Nóam', 'Nóel', 'Nói', 'Nóni', 'Nóri', 'Nóvember', 'Númi', 'Nývarð', 'Nökkvi', 'Oddbergur', 'Oddbjörn', 'Oddfreyr', 'Oddgeir', 'Oddi', 'Oddkell', 'Oddleifur', 'Oddmar', 'Oddsteinn', 'Oddur', 'Oddvar', 'Oddþór', 'Oktavíus', 'Októ', 'Októvíus', 'Olaf', 'Olav', 'Olgeir', 'Oliver', 'Olivert', 'Orfeus', 'Ormar', 'Ormur', 'Orri', 'Orvar', 'Otkell', 'Otri', 'Otti', 'Ottó', 'Otur', 'Óðinn', 'Ófeigur', 'Ólafur', 'Óli', 'Óliver', 'Ólíver', 'Ómar', 'Ómi', 'Óskar', 'Ósvald', 'Ósvaldur', 'Ósvífur', 'Óttar', 'Óttarr', 'Parmes', 'Patrek', 'Patrekur', 'Patrick', 'Patrik', 'Páll', 'Pálmar', 'Pálmi', 'Pedró', 'Per', 'Peter', 'Pétur', 'Pjetur', 'Príor', 'Rafael', 'Rafn', 'Rafnar', 'Rafnkell', 'Ragnar', 'Ragúel', 'Randver', 'Rannver', 'Rasmus', 'Ráðgeir', 'Ráðvarður', 'Refur', 'Reginbaldur', 'Reginn', 'Reidar', 'Reifnir', 'Reimar', 'Reinar', 'Reinhart', 'Reinhold', 'Reynald', 'Reynar', 'Reynir', 'Reyr', 'Richard', 'Rikharð', 'Rikharður', 'Ríkarður', 'Ríkharð', 'Ríkharður', 'Ríó', 'Robert', 'Rolf', 'Ronald', 'Róbert', 'Rólant', 'Róman', 'Rómeó', 'Rósant', 'Rósar', 'Rósberg', 'Rósenberg', 'Rósi', 'Rósinberg', 'Rósinkar', 'Rósinkrans', 'Rósmann', 'Rósmundur', 'Rudolf', 'Runi', 'Runólfur', 'Rúbar', 'Rúben', 'Rúdólf', 'Rúnar', 'Rúrik', 'Rútur', 'Röðull', 'Rögnvald', 'Rögnvaldur', 'Rögnvar', 'Rökkvi', 'Safír', 'Sakarías', 'Salmann', 'Salmar', 'Salómon', 'Salvar', 'Samson', 'Samúel', 'Sandel', 'Sandri', 'Sandur', 'Saxi', 'Sebastian', 'Sebastían', 'Seifur', 'Seimur', 'Sesar', 'Sesil', 'Sigbergur', 'Sigbert', 'Sigbjartur', 'Sigbjörn', 'Sigdór', 'Sigfastur', 'Sigfinnur', 'Sigfreður', 'Sigfús', 'Siggeir', 'Sighvatur', 'Sigjón', 'Siglaugur', 'Sigmann', 'Sigmar', 'Sigmundur', 'Signar', 'Sigri', 'Sigríkur', 'Sigsteinn', 'Sigtryggur', 'Sigtýr', 'Sigur', 'Sigurbaldur', 'Sigurberg', 'Sigurbergur', 'Sigurbjarni', 'Sigurbjartur', 'Sigurbjörn', 'Sigurbrandur', 'Sigurdór', 'Sigurður', 'Sigurfinnur', 'Sigurgeir', 'Sigurgestur', 'Sigurgísli', 'Sigurgrímur', 'Sigurhans', 'Sigurhjörtur', 'Sigurjón', 'Sigurkarl', 'Sigurlaugur', 'Sigurlás', 'Sigurleifur', 'Sigurliði', 'Sigurlinni', 'Sigurmann', 'Sigurmar', 'Sigurmon', 'Sigurmundur', 'Sigurnýas', 'Sigurnýjas', 'Siguroddur', 'Siguróli', 'Sigurpáll', 'Sigursteinn', 'Sigursveinn', 'Sigurvaldi', 'Sigurvin', 'Sigurþór', 'Sigvaldi', 'Sigvarður', 'Sigþór', 'Silli', 'Sindri', 'Símon', 'Sírnir', 'Sírus', 'Sívar', 'Sjafnar', 'Skafti', 'Skapti', 'Skarphéðinn', 'Skefill', 'Skeggi', 'Skíði', 'Skírnir', 'Skjöldur', 'Skorri', 'Skuggi', 'Skúli', 'Skúta', 'Skær', 'Skæringur', 'Smári', 'Smiður', 'Smyrill', 'Snjóki', 'Snjólaugur', 'Snjólfur', 'Snorri', 'Snæbjartur', 'Snæbjörn', 'Snæhólm', 'Snælaugur', 'Snær', 'Snæringur', 'Snævar', 'Snævarr', 'Snæþór', 'Soffanías', 'Sophanías', 'Sophus', 'Sófónías', 'Sófus', 'Sókrates', 'Sólberg', 'Sólbergur', 'Sólbjartur', 'Sólbjörn', 'Sólimann', 'Sólmar', 'Sólmundur', 'Sólon', 'Sólver', 'Sólvin', 'Spartakus', 'Sporði', 'Spói', 'Stanley', 'Stapi', 'Starkaður', 'Starri', 'Stefan', 'Stefán', 'Stefnir', 'Steinar', 'Steinarr', 'Steinberg', 'Steinbergur', 'Steinbjörn', 'Steindór', 'Steinfinnur', 'Steingrímur', 'Steini', 'Steinkell', 'Steinmann', 'Steinmar', 'Steinmóður', 'Steinn', 'Steinólfur', 'Steinröður', 'Steinvarður', 'Steinþór', 'Stirnir', 'Stígur', 'Stormur', 'Stórólfur', 'Sturla', 'Sturlaugur', 'Sturri', 'Styr', 'Styrbjörn', 'Styrkár', 'Styrmir', 'Styrr', 'Sumarliði', 'Svafar', 'Svali', 'Svan', 'Svanberg', 'Svanbergur', 'Svanbjörn', 'Svangeir', 'Svanhólm', 'Svani', 'Svanlaugur', 'Svanmundur', 'Svanur', 'Svanþór', 'Svavar', 'Sváfnir', 'Sveinar', 'Sveinberg', 'Sveinbjartur', 'Sveinbjörn', 'Sveinjón', 'Sveinlaugur', 'Sveinmar', 'Sveinn', 'Sveinungi', 'Sveinþór', 'Svend', 'Sverre', 'Sverrir', 'Svölnir', 'Svörfuður', 'Sýrus', 'Sæberg', 'Sæbergur', 'Sæbjörn', 'Sæi', 'Sælaugur', 'Sæmann', 'Sæmundur', 'Sær', 'Sævald', 'Sævaldur', 'Sævar', 'Sævarr', 'Sævin', 'Sæþór', 'Sölmundur', 'Sölvar', 'Sölvi', 'Sören', 'Sörli', 'Tandri', 'Tarfur', 'Teitur', 'Theodór', 'Theódór', 'Thomas', 'Thor', 'Thorberg', 'Thór', 'Tindar', 'Tindri', 'Tindur', 'Tinni', 'Tími', 'Tímon', 'Tímoteus', 'Tímóteus', 'Tístran', 'Tjaldur', 'Tjörfi', 'Tjörvi', 'Tobías', 'Tolli', 'Tonni', 'Torfi', 'Tóbías', 'Tói', 'Tóki', 'Tómas', 'Tór', 'Trausti', 'Tristan', 'Trostan', 'Trúmann', 'Tryggvi', 'Tumas', 'Tumi', 'Tyrfingur', 'Týr', 'Ubbi', 'Uggi', 'Ulrich', 'Uni', 'Unnar', 'Unnbjörn', 'Unndór', 'Unnsteinn', 'Unnþór', 'Urðar', 'Uxi', 'Úddi', 'Úlfar', 'Úlfgeir', 'Úlfhéðinn', 'Úlfkell', 'Úlfljótur', 'Úlftýr', 'Úlfur', 'Úlrik', 'Úranus', 'Vagn', 'Vakur', 'Valberg', 'Valbergur', 'Valbjörn', 'Valbrandur', 'Valdemar', 'Valdi', 'Valdimar', 'Valdór', 'Valentín', 'Valentínus', 'Valgarð', 'Valgarður', 'Valgeir', 'Valíant', 'Vallaður', 'Valmar', 'Valmundur', 'Valsteinn', 'Valter', 'Valtýr', 'Valur', 'Valves', 'Valþór', 'Varmar', 'Vatnar', 'Váli', 'Vápni', 'Veigar', 'Veigur', 'Ver', 'Vermundur', 'Vernharð', 'Vernharður', 'Vestar', 'Vestmar', 'Veturliði', 'Vébjörn', 'Végeir', 'Vékell', 'Vélaugur', 'Vémundur', 'Vésteinn', 'Victor', 'Viðar', 'Vigfús', 'Viggó', 'Vignir', 'Vigri', 'Vigtýr', 'Vigur', 'Vikar', 'Viktor', 'Vilberg', 'Vilbergur', 'Vilbert', 'Vilbjörn', 'Vilbogi', 'Vilbrandur', 'Vilgeir', 'Vilhelm', 'Vilhjálmur', 'Vili', 'Viljar', 'Vilji', 'Villi', 'Vilmar', 'Vilmundur', 'Vincent', 'Vinjar', 'Virgill', 'Víðar', 'Víðir', 'Vífill', 'Víglundur', 'Vígmar', 'Vígmundur', 'Vígsteinn', 'Vígþór', 'Víkingur', 'Vopni', 'Vorm', 'Vöggur', 'Völundur', 'Vörður', 'Vöttur', 'Walter', 'Werner', 'Wilhelm', 'Willard', 'William', 'Willum', 'Ylur', 'Ymir', 'Yngvar', 'Yngvi', 'Yrkill', 'Ãmir', 'Ãrar', 'Zakaría', 'Zakarías', 'Zophanías', 'Zophonías', 'Zóphanías', 'Zóphonías', 'Þangbrandur', 'Þengill', 'Þeyr', 'Þiðrandi', 'Þiðrik', 'Þinur', 'Þjálfi', 'Þjóðann', 'Þjóðbjörn', 'Þjóðgeir', 'Þjóðleifur', 'Þjóðmar', 'Þjóðólfur', 'Þjóðrekur', 'Þjóðvarður', 'Þjóstar', 'Þjóstólfur', 'Þorberg', 'Þorbergur', 'Þorbjörn', 'Þorbrandur', 'Þorfinnur', 'Þorgarður', 'Þorgautur', 'Þorgeir', 'Þorgestur', 'Þorgils', 'Þorgísl', 'Þorgnýr', 'Þorgrímur', 'Þorkell', 'Þorlaugur', 'Þorlákur', 'Þorleifur', 'Þorleikur', 'Þormar', 'Þormóður', 'Þormundur', 'Þorri', 'Þorsteinn', 'Þorvaldur', 'Þorvar', 'Þorvarður', 'Þór', 'Þórar', 'Þórarinn', 'Þórbergur', 'Þórbjörn', 'Þórður', 'Þórgnýr', 'Þórgrímur', 'Þórhaddur', 'Þórhalli', 'Þórhallur', 'Þórir', 'Þórlaugur', 'Þórleifur', 'Þórlindur', 'Þórmar', 'Þórmundur', 'Þóroddur', 'Þórormur', 'Þórólfur', 'Þórsteinn', 'Þórörn', 'Þrastar', 'Þráinn', 'Þrándur', 'Þróttur', 'Þrúðmar', 'Þrymur', 'Þröstur', 'Þyrnir', 'Ægir', 'Æsir', 'Ævar', 'Ævarr', 'Ögmundur', 'Ögri', 'Ölnir', 'Ölver', 'Ölvir', 'Öndólfur', 'Önundur', 'Örlaugur', 'Örlygur', 'Örn', 'Örnólfur', 'Örvar', 'Össur', 'Öxar'); - - /** - * @var string Icelandic middle names. - */ - protected static $middleName = array( - 'Aðaldal', 'Aldan', 'Arnberg', 'Arnfjörð', 'Austan', 'Austdal', 'Austfjörð', 'Ãss', 'Bakkdal', 'Bakkmann', 'Bald', 'Ben', 'Bergholt', 'Bergland', 'Bíldsfells', 'Bjarg', 'Bjarndal', 'Bjarnfjörð', 'Bláfeld', 'Blómkvist', 'Borgdal', 'Brekkmann', 'Brim', 'Brúnsteð', 'Dalhoff', 'Dan', 'Diljan', 'Ektavon', 'Eldberg', 'Elísberg', 'Elvan', 'Espólín', 'Eyhlíð', 'Eyvík', 'Falk', 'Finndal', 'Fossberg', 'Freydal', 'Friðhólm', 'Giljan', 'Gilsfjörð', 'Gnarr', 'Gnurr', 'Grendal', 'Grindvík', 'Gull', 'Haffjörð', 'Hafnes', 'Hafnfjörð', 'Har', 'Heimdal', 'Heimsberg', 'Helgfell', 'Herberg', 'Hildiberg', 'Hjaltdal', 'Hlíðkvist', 'Hnappdal', 'Hnífsdal', 'Hofland', 'Hofteig', 'Hornfjörð', 'Hólmberg', 'Hrafnan', 'Hrafndal', 'Hraunberg', 'Hreinberg', 'Hreindal', 'Hrútfjörð', 'Hvammdal', 'Hvítfeld', 'Höfðdal', 'Hörðdal', 'Ãshólm', 'Júl', 'Kjarrval', 'Knaran', 'Knarran', 'Krossdal', 'Laufkvist', 'Laufland', 'Laugdal', 'Laxfoss', 'Liljan', 'Linddal', 'Línberg', 'Ljós', 'Loðmfjörð', 'Lyngberg', 'Magdal', 'Magg', 'Matt', 'Miðdal', 'Miðvík', 'Mjófjörð', 'Móberg', 'Mýrmann', 'Nesmann', 'Norðland', 'Núpdal', 'Ólfjörð', 'Ósland', 'Ósmann', 'Reginbald', 'Reykfell', 'Reykfjörð', 'Reynholt', 'Salberg', 'Sandhólm', 'Seljan', 'Sigurhólm', 'Skagalín', 'Skíðdal', 'Snæberg', 'Snædahl', 'Sólan', 'Stardal', 'Stein', 'Steinbekk', 'Steinberg', 'Storm', 'Straumberg', 'Svanhild', 'Svarfdal', 'Sædal', 'Val', 'Valagils', 'Vald', 'Varmdal', 'Vatnsfjörð', 'Vattar', 'Vattnes', 'Viðfjörð', 'Vídalín', 'Víking', 'Vopnfjörð', 'Yngling', 'Þor', 'Önfjörð', 'Örbekk', 'Öxdal', 'Öxndal' - ); - - /** - * Randomly return a icelandic middle name. - * - * @return string - */ - public static function middleName() - { - return static::randomElement(static::$middleName); - } - - /** - * Generate prepared last name for further processing - * - * @return string - */ - public function lastName() - { - $name = static::firstNameMale(); - - if (substr($name, -2) === 'ur') { - $name = substr($name, 0, strlen($name) - 2); - } - - if (substr($name, -1) !== 's') { - $name .= 's'; - } - - return $name; - } - - /** - * Randomly return a icelandic last name for woman. - * - * @return string - */ - public function lastNameMale() - { - return $this->lastName().'son'; - } - - /** - * Randomly return a icelandic last name for man. - * - * @return string - */ - public function lastNameFemale() - { - return $this->lastName().'dóttir'; - } - - /** - * Randomly return a icelandic Kennitala (Social Security number) format. - * - * @link http://en.wikipedia.org/wiki/Kennitala - * - * @return string - */ - public static function ssn() - { - // random birth date - $birthdate = new \DateTime('@' . mt_rand(0, time())); - - // last four buffer - $lastFour = null; - - // security variable reference - $ref = '32765432'; - - // valid flag - $valid = false; - - while (! $valid) { - // make two random numbers - $rand = static::randomDigit().static::randomDigit(); - - // 8 char string with birth date and two random numbers - $tmp = $birthdate->format('dmy').$rand; - - // loop through temp string - for ($i = 7, $sum = 0; $i >= 0; $i--) { - // calculate security variable - $sum += ($tmp[$i] * $ref[$i]); - } - - // subtract 11 if not 11 - $chk = ($sum % 11 === 0) ? 0 : (11 - ($sum % 11)); - - if ($chk < 10) { - $lastFour = $rand.$chk.substr($birthdate->format('Y'), 1, 1); - - $valid = true; - } - } - - return sprintf('%s-%s', $birthdate->format('dmy'), $lastFour); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php deleted file mode 100644 index de91f742..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php +++ /dev/null @@ -1,20 +0,0 @@ - - */ -class PhoneNumber extends \Faker\Provider\PhoneNumber -{ - /** - * @var array Icelandic phone number formats. - */ - protected static $formats = array( - '+354 ### ####', - '+354 #######', - '+354#######', - '### ####', - '#######', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php deleted file mode 100644 index 1eee3b6d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php +++ /dev/null @@ -1,139 +0,0 @@ - 'Argovia'), - array('AI' => 'Appenzello Interno'), - array('AR' => 'Appenzello Esterno'), - array('BE' => 'Berna'), - array('BL' => 'Basilea Campagna'), - array('BS' => 'Basilea Città'), - array('FR' => 'Friburgo'), - array('GE' => 'Ginevra'), - array('GL' => 'Glarona'), - array('GR' => 'Grigioni'), - array('JU' => 'Giura'), - array('LU' => 'Lucerna'), - array('NE' => 'Neuchâtel'), - array('NW' => 'Nidvaldo'), - array('OW' => 'Obvaldo'), - array('SG' => 'San Gallo'), - array('SH' => 'Sciaffusa'), - array('SO' => 'Soletta'), - array('SZ' => 'Svitto'), - array('TG' => 'Turgovia'), - array('TI' => 'Ticino'), - array('UR' => 'Uri'), - array('VD' => 'Vaud'), - array('VS' => 'Vallese'), - array('ZG' => 'Zugo'), - array('ZH' => 'Zurigo') - ); - - protected static $cityFormats = array( - '{{cityName}}', - ); - - protected static $streetNameFormats = array( - '{{streetSuffix}} {{firstName}}', - '{{streetSuffix}} {{lastName}}' - ); - - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Returns a random street prefix - * @example Via - * @return string - */ - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - /** - * Returns a random city name. - * @example Luzern - * @return string - */ - public function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Returns a canton - * @example array('BE' => 'Bern') - * @return array - */ - public static function canton() - { - return static::randomElement(static::$canton); - } - - /** - * Returns the abbreviation of a canton. - * @return string - */ - public static function cantonShort() - { - $canton = static::canton(); - return key($canton); - } - - /** - * Returns the name of canton. - * @return string - */ - public static function cantonName() - { - $canton = static::canton(); - return current($canton); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php deleted file mode 100644 index 9a42b1c3..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php +++ /dev/null @@ -1,15 +0,0 @@ -generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php deleted file mode 100644 index 937f375f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php +++ /dev/null @@ -1,17 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'yamada.jp' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php deleted file mode 100644 index 0db2db0b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php +++ /dev/null @@ -1,141 +0,0 @@ -generator->parse($format); - } - - /** - * @param string|null $gender 'male', 'female' or null for any - * @return string - * @example 'アキラ' - */ - public function firstKanaName($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::firstKanaNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::firstKanaNameFemale(); - } - - return $this->generator->parse(static::randomElement(static::$firstKanaNameFormat)); - } - - /** - * @example 'アキラ' - */ - public static function firstKanaNameMale() - { - return static::randomElement(static::$firstKanaNameMale); - } - - /** - * @example 'アケミ' - */ - public static function firstKanaNameFemale() - { - return static::randomElement(static::$firstKanaNameFemale); - } - - /** - * @example 'アオタ' - */ - public static function lastKanaName() - { - return static::randomElement(static::$lastKanaName); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php deleted file mode 100644 index 9f03c565..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php +++ /dev/null @@ -1,19 +0,0 @@ -generator->parse($format); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefixes); - } - - public static function companyNameElement() - { - return static::randomElement(static::$companyElements); - } - - public static function companyNameSuffix() - { - return static::randomElement(static::$companyNameSuffixes); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php deleted file mode 100644 index 1a1a4dd4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php +++ /dev/null @@ -1,42 +0,0 @@ - 'კვირáƒ', - 'Monday' => 'áƒáƒ áƒ¨áƒáƒ‘áƒáƒ—ი', - 'Tuesday' => 'სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი', - 'Wednesday' => 'áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი', - 'Thursday' => 'ხუთშáƒáƒ‘áƒáƒ—ი', - 'Friday' => 'პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი', - 'Saturday' => 'შáƒáƒ‘áƒáƒ—ი', - ); - $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; - } - - public static function monthName($max = 'now') - { - $map = array( - 'January' => 'იáƒáƒœáƒ•áƒáƒ áƒ˜', - 'February' => 'თებერვáƒáƒšáƒ˜', - 'March' => 'მáƒáƒ áƒ¢áƒ˜', - 'April' => 'áƒáƒžáƒ áƒ˜áƒšáƒ˜', - 'May' => 'მáƒáƒ˜áƒ¡áƒ˜', - 'June' => 'ივნისი', - 'July' => 'ივლისი', - 'August' => 'áƒáƒ’ვისტáƒ', - 'September' => 'სექტემბერი', - 'October' => 'áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი', - 'November' => 'ნáƒáƒ”მბერი', - 'December' => 'დეკემბერი', - ); - $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php deleted file mode 100644 index 01b15c77..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php +++ /dev/null @@ -1,15 +0,0 @@ -generator->parse($format); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefixes); - } - - public static function companyNameElement() - { - return static::randomElement(static::$companyElements); - } - - public static function companyNameSuffix() - { - return static::randomElement(static::$companyNameSuffixes); - } - - /** - * National Business Identification Numbers - * - * @link http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fbus_business%2Ffor_businessmen%2Farticle%2Fbusiness_identification_number&lang=en - * @param \DateTime $registrationDate - * @return string 12 digits, like 150140000019 - */ - public static function businessIdentificationNumber(\DateTime $registrationDate = null) - { - if (!$registrationDate) { - $registrationDate = \Faker\Provider\DateTime::dateTimeThisYear(); - } - - $dateAsString = $registrationDate->format('ym'); - $legalEntityType = (string) static::numberBetween(4, 6); - $legalEntityAdditionalType = (string) static::numberBetween(0, 3); - $randomDigits = (string) static::numerify('######'); - - return $dateAsString . $legalEntityType . $legalEntityAdditionalType . $randomDigits; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php deleted file mode 100644 index 75999c2e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ - array( - self::CENTURY_19TH => self::MALE_CENTURY_19TH, - self::CENTURY_20TH => self::MALE_CENTURY_20TH, - self::CENTURY_21ST => self::MALE_CENTURY_21ST, - ), - self::GENDER_FEMALE => array( - self::CENTURY_19TH => self::FEMALE_CENTURY_19TH, - self::CENTURY_20TH => self::FEMALE_CENTURY_20TH, - self::CENTURY_21ST => self::FEMALE_CENTURY_21ST, - ), - ); - - /** - * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F - * - * @var array - */ - protected static $maleNameFormats = array( - '{{lastName}}ұлы {{firstNameMale}}', - ); - - /** - * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F - * - * @var array - */ - protected static $femaleNameFormats = array( - '{{lastName}}қызы {{firstNameFemale}}', - ); - - /** - * @see http://koshpendi.kz/index.php/nomad/imena/ - * - * @var array - */ - protected static $firstNameMale = array( - 'Ðылғазы', - 'Әбдіқадыр', - 'Бабағожа', - 'ҒайÑа', - 'Дәмен', - 'Егізбек', - 'Жазылбек', - 'Зұлпықар', - 'ИгіÑін', - 'Кәдіржан', - 'Қадырқан', - 'Латиф', - 'Мағаз', - 'Ðармағамбет', - 'Оңалбай', - 'ӨндіріÑ', - 'Пердебек', - 'Рақат', - 'Сағындық', - 'Танабай', - 'УайыÑ', - 'Ұйықбай', - 'Үрімбай', - 'Файзрахман', - 'Хангелді', - 'Шаттық', - 'ЫÑтамбақы', - 'Ібни', - ); - - /** - * @see http://koshpendi.kz/index.php/nomad/imena/ - * - * @var array - */ - protected static $firstNameFemale = array( - 'ÐÑылтаÑ', - 'Әужа', - 'Бүлдіршін', - 'Гүлшаш', - 'Ғафура', - 'Ділдә', - 'Еркежан', - 'Жібек', - 'Зылиқа', - 'Ирада', - 'КүнÑұлу', - 'Қырмызы', - 'Ләтипа', - 'Мүштәри', - 'Ðұршара', - 'Орынша', - 'ӨрзиÑ', - 'Перизат', - 'РухиÑ', - 'Сындыбала', - 'ТұрÑынай', - 'УәÑима', - 'ҰрқиÑ', - 'ҮриÑ', - 'Фируза', - 'Хафиза', - 'Шырынгүл', - 'ЫрыÑÑ‚Ñ‹', - 'Іңкәр', - ); - - /** - * @see http://koshpendi.kz/index.php/nomad/imena/ - * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F - * - * @var array - */ - protected static $lastName = array( - 'Ðдырбай', - 'Әжібай', - 'Байбөрі', - 'Ғизат', - 'Ділдабек', - 'Ешмұхамбет', - 'Жігер', - 'ЗікіриÑ', - 'ИÑа', - 'Кунту', - 'Қыдыр', - 'Лұқпан', - 'Мышырбай', - 'ÐÑ‹Ñынбай', - 'Ошақбай', - 'Өтетілеу', - 'Пірәлі', - 'РүÑтем', - 'Сырмұхамбет', - 'ТілеміÑ', - 'Уәлі', - 'Ұлықбек', - 'Ò®Ñтем', - 'Фахир', - 'Ð¥Ò±Ñайын', - 'Шілдебай', - 'ЫÑтамбақы', - 'ІÑмет', - ); - - /** - * @param integer $year - * - * @return integer|null - */ - private static function getCenturyByYear($year) - { - if ($year >= 2000 && $year <= DateTime::year()) { - return self::CENTURY_21ST; - } elseif ($year >= 1900) { - return self::CENTURY_20TH; - } elseif ($year >= 1800) { - return self::CENTURY_19TH; - } - } - - /** - * National Individual Identification Numbers - * - * @link http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fcitizen_migration%2Fpassport_id_card%2Farticle%2Fiin_info&lang=en - * @link https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80 - * - * @param \DateTime $birthDate - * @param integer $gender - * - * @return string 12 digits, like 780322300455 - */ - public static function individualIdentificationNumber(\DateTime $birthDate = null, $gender = self::GENDER_MALE) - { - if (!$birthDate) { - $birthDate = DateTime::dateTimeBetween(); - } - - $population = mt_rand(1000, 2000); - $century = self::getCenturyByYear((int) $birthDate->format('Y')); - - $iin = $birthDate->format('ymd'); - $iin .= (string) self::$genderCenturyMap[$gender][$century]; - $iin .= (string) $population; - - return $iin . (string) self::checkSum($iin); - } - - /** - * @param string $iinValue - * - * @return integer - */ - public static function checkSum($iinValue) - { - $controlDigit = self::getControlDigit($iinValue, self::$firstSequenceBitWeights); - - if ($controlDigit === 10) { - return self::getControlDigit($iinValue, self::$secondSequenceBitWeights); - } - - return $controlDigit; - } - - /** - * @param string $iinValue - * @param array $sequence - * - * @return integer - */ - protected static function getControlDigit($iinValue, $sequence) - { - $sum = 0; - - for ($i = 0; $i <= 10; $i++) { - $sum += (int) $iinValue[$i] * $sequence[$i]; - } - - return $sum % 11; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php deleted file mode 100644 index edb38dd5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php +++ /dev/null @@ -1,16 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'kim.kr' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php deleted file mode 100644 index 92d858f5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php +++ /dev/null @@ -1,55 +0,0 @@ -ì— ë‚˜ì˜¤ëŠ” ìš”ê·€ì˜ ë¶ˆë¹› 모양으로 푸르무레 하게 í—ˆê³µì„ ë¹„ì¶”ì˜¤. ë™ê²½ì˜ 불바다는 ë‚´ 마ìŒì„ ë”ìš± ìŒì¹¨í•˜ê²Œ 하였소. -ì´ ë•Œì— ë’¤ì—ì„œ, -"모시모시(여보세요)." -하는 소리가 들렸소. ê·¸ê²ƒì€ í° ì €ê³ ë¦¬ë¥¼ ìž…ì€ í˜¸í…” ë³´ì´ì˜€ì†Œ. -"왜?" -하고 나는 고개만 ëŒë ¸ì†Œ. -"ì†ë‹˜ì´ 오셨습니다." -"ì†ë‹˜?" -하고 나는 ë³´ì´ì—게로 í•œ ê±¸ìŒ ê°€ê¹Œì´ ê°”ì†Œ. 나를 ì°¾ì„ ì†ë‹˜ì´ ì–´ë”” 있나 하고 나는 놀란 것ì´ì˜¤. -"따님께서 오셨습니다. 방으로 모셨습니다." -하고 ë³´ì´ëŠ” 들어가 버리고 ë§ì•˜ì†Œ. -"따님?" -하고 나는 ë”ìš± 놀ëžì†Œ. 순임ì´ê°€ 서울서 나를 ë”°ë¼ì™”나? ê·¸ê²ƒì€ ì•ˆ ë  ë§ì´ì˜¤. 순임ì´ê°€ ë‚´ 뒤를 ë”°ë¼ ë– ë‚¬ë”ë¼ë„ 아무리 빨리 ì™€ë„ ë‚´ì¼ì´ 아니면 못 ì™”ì„ ê²ƒì´ì˜¤. 그러면 누군가. ì •ìž„ì¸ê°€. ì •ìž„ì´ê°€ 병ì›ì—ì„œ 뛰어온 것ì¸ê°€. -나는 ë‘근거리는 ê°€ìŠ´ì„ ì–µì§€ë¡œ 진정하면서 ë‚´ ë°©ë¬¸ì„ ì—´ì—ˆì†Œ. -ê·¸ê²ƒì€ ì •ìž„ì´ì—ˆì†Œ. ì •ìž„ì€ ë‚´ê°€ 쓰다가 ë‘” 편지를 ë³´ê³  있다가 벌떡 ì¼ì–´ë‚˜ 내게 달려들어 안겨 버렸소. 나는 얼빠진 ë“¯ì´ ì •ìž„ì´ê°€ 하ë¼ëŠ” 대로 내버려ë‘었소. ê·¸ 편지는 부치려고 ì“´ ê²ƒë„ ì•„ë‹Œë° ê·¸ 편지를 ì •ìž„ì´ê°€ 본 ê²ƒì´ ì•ˆë˜ì—ˆë‹¤ê³  ìƒê°í•˜ì˜€ì†Œ. -형! 나를 ì±…ë§í•˜ì‹œì˜¤. 심히 부ë„러운 ë§ì´ì§€ë§ˆëŠ” 나는 ì •ìž„ì„ íž˜ê» ê»´ì•ˆì•„ 주고 싶었소. 나는 몇 번ì´ë‚˜ ì •ìž„ì˜ ë“±ì„ êµ½ì–´ ë³´ë©´ì„œ ë‚´ íŒ”ì— íž˜ì„ ë„£ìœ¼ë ¤ê³  하였소. ì •ìž„ì€ ì‹¬ížˆ 귀여웠소. ì •ìž„ì´ê°€ 그처럼 나를 사모하는 ê²ƒì´ ì‹¬ížˆ 기뻤소. 나는 ê°ì •ì´ 재우ì³ì„œ ëˆˆì´ ì•ˆ ë³´ì´ê³  ì •ì‹ ì´ ëª½ë¡±í•˜ì—¬ì§ì„ 깨달았소. 나는 아프고 쓰린 듯한 기ì¨ì„ 깨달았소. ì˜ì–´ë¡œ 엑스터시ë¼ë“ ì§€, 한문으로 ë¬´ì•„ì˜ ê²½ì§€ëž€ ì´ëŸ° ê²ƒì´ ì•„ë‹Œê°€ 하였소. 나는 사십 í‰ìƒì— ì´ëŸ¬í•œ ê²½í—˜ì„ ì²˜ìŒ í•œ 것ì´ì˜¤. -형! í˜•ì´ ì•„ì‹œë‹¤ì‹œí”¼ 나는 ë‚´ ì•„ë‚´ ì´ì™¸ì— ì Šì€ ì—¬ì„±ì—게 ì´ë ‡ê²Œ 안겨 본 ì¼ì´ 없소. 물론 안아 본 ì¼ë„ 없소. -그러나 형! 나는 나를 눌렀소. ë‚´ 타오르는 ì• ìš•ì„ ì°¨ë””ì°¬ ì´ì§€ì˜ 입김으로 불어서 ë„려고 애를 ì¼ì†Œ. -"글쎄 웬ì¼ì´ëƒ. 앓는 ê²ƒì´ ì´ ë°¤ì¤‘ì— ë¹„ë¥¼ 맞고 왜 나온단 ë§ì´ëƒ. 철없는 것 같으니." -하고 나는 ì•„ë²„ì§€ì˜ ìœ„ì—„ìœ¼ë¡œ ì •ìž„ì˜ ë‘ ì–´ê¹¨ë¥¼ 붙들어 ì•”ì²´ì–´ì— ì•‰í˜”ì†Œ. 그리고 ë‚˜ë„ í…Œì´ë¸”ì„ í•˜ë‚˜ 세워 ë‘ê³  맞ì€íŽ¸ì— 앉았소. -ì •ìž„ì€ ë¶€ë„러운 ë“¯ì´ ë‘ ì†ìœ¼ë¡œ ë‚¯ì„ ê°€ë¦¬ìš°ê³  ì œ ë¬´ë¦Žì— ì—Žë“œë ¤ 울기를 시작하오. -ì •ìž„ì€ ëˆ„ëŸ° ê°ˆìƒ‰ì˜ ì™¸íˆ¬ë¥¼ 입었소. ë¬´ì—‡ì„ íƒ€ê³  왔는지 모르지마는 구ë‘ì—는 꽤 ë§Žì´ ë¬¼ì´ ë¬»ê³  모ìžì—는 빗방울 ì–¼ë£©ì´ ë³´ì´ì˜¤. -"네가 ì´ëŸ¬ë‹¤ê°€ 다시 ë³‘ì´ ë”치면 어찌한단 ë§ì´ëƒ. ì•„ì´ê°€ 왜 그렇게 ì² ì´ ì—†ë‹ˆ?" -하고 나는 ë”ìš± 냉정한 ì–´ì¡°ë¡œ ì±…ë§í•˜ê³  ë°ìŠ¤í¬ ìœ„ì— ë†“ì¸ ë‚´ 편지 초를 집어 ë°•ë°• 찢어 버렸소. ì¢…ì´ ì°¢ëŠ” ì†Œë¦¬ì— ì •ìž„ì€ ìž ê¹ ê³ ê°œë¥¼ 들어서 처ìŒì—는 ë‚´ ì†ì„ ë³´ê³  다ìŒì—는 ë‚´ ì–¼êµ´ì„ ë³´ì•˜ì†Œ. 그러나 나는 모르는 체하고 ë„ë¡œ êµì˜ì— ëŒì•„와 앉아서 가만히 ëˆˆì„ ê°ì•˜ì†Œ. 그리고 ë„무지 í¥ë¶„ë˜ì§€ 아니한 ëª¨ì–‘ì„ ê¾¸ëª„ì†Œ. -형! 어떻게나 힘드는 ì¼ì´ì˜¤? 참으면 ì°¸ì„ìˆ˜ë¡ ë‚´ ì´ë¹¨ì´ 마주 부딪고, ì–¼êµ´ì˜ ê·¼ìœ¡ì€ ì”°ë£©ê±°ë¦¬ê³  ì†ì€ 불ëˆë¶ˆëˆ ì¥ì–´ì§€ì˜¤. -"ì •ë§ ë‚´ì¼ ê°€ì„¸ìš”?" -하고 아마 오 분 ë™ì•ˆì´ë‚˜ ì¹¨ë¬µì„ ì§€í‚¤ë‹¤ê°€ ì •ìž„ì´ê°€ 고개를 들고 물었소. -"그럼, 가야지." -하고 나는 빙그레 웃어 보였소. -"ì €ë„ ë°ë¦¬ê³  가세요!" -하는 ì •ìž„ì˜ ë§ì€ 마치 ì„œë¦¿ë°œì´ ë‚ ë¦¬ëŠ” 칼날과 같았소. 나는 ê¹œì§ ë†€ë¼ì„œ ì •ìž„ì„ ë°”ë¼ë³´ì•˜ì†Œ. ê·¸ì˜ ëˆˆì€ ë¹›ë‚˜ê³  ìž…ì€ ê¼­ 다물고 ì–¼êµ´ì˜ ê·¼ìœ¡ì€ íŒ½íŒ½í•˜ê²Œ 켕겼소. ì •ìž„ì˜ ì–¼êµ´ì—는 ì°¬ë°”ëžŒì´ ë„는 무서운 ê¸°ìš´ì´ ìžˆì—ˆì†Œ. -나는 즉ê°ì ìœ¼ë¡œ 죽기를 결심한 ì—¬ìžì˜ 모양ì´ë¼ê³  ìƒê°í•˜ì˜€ì†Œ. 열정으로 불ë©ì–´ë¦¬ê°€ ë˜ì—ˆë˜ ì •ìž„ì€ ë‚´ê°€ ë³´ì´ëŠ” 냉랭한 태ë„ë¡œ ë§ë¯¸ì•”ì•„ ê°‘ìžê¸° 얼어 버린 것 같았소. -"어디를?" -하고 나는 ì •ìž„ì˜ `ì €ë„ ë°ë¦¬ê³  가세요.' 하는 담대한 ë§ì— 놀ë¼ë©´ì„œ 물었소. -"어디든지, 아버지 가시는 ë°ë©´ 어디든지 저를 ë°ë¦¬ê³  가세요. 저는 아버지를 떠나서는 혼ìžì„œëŠ” 못 ì‚´ ê²ƒì„ ì§€ë‚˜ê°„ ë°˜ 달 ë™ì•ˆì— 잘 알았습니다. 아까 아버지 오셨다 가신 ë’¤ì— ìƒê°í•´ ë³´ë‹ˆê¹ ì•”ë§Œí•´ë„ ì•„ë²„ì§€ëŠ” 다시 ì €ì—게 와 보시지 아니하고 가실 것만 같애요. 그리고 저로 í•´ì„œ 아버지께서는 무슨 í° íƒ€ê²©ì„ ë‹¹í•˜ì‹  것만 같으셔요. ì²˜ìŒ ëµˆì˜¬ ì ì— ë²Œì¨ ê°€ìŠ´ì´ ëœ¨ë”했습니다. 그리고 ì—¬í–‰ì„ ë– ë‚˜ì‹ ë‹¤ëŠ” ë§ì”€ì„ 듣고는 반드시 무슨 í°ì¼ì´ 나셨ëŠë‹ˆë¼ê³ ë§Œ ìƒê°í–ˆìŠµë‹ˆë‹¤. 그리고 저어, 저로 í•´ì„œ 그러신 것만 같고, 저를 버리시고 í˜¼ìž ê°€ì‹œë ¤ëŠ” 것만 같고, 그래서 달려왔ë”니 여기 ì¨ ë†“ìœ¼ì‹  편지를 ë³´ê³  ê·¸ íŽ¸ì§€ì— ë‹¤ë¥¸ ë§ì”€ì€ ì–´ì°Œ ë든지, 네 ì¼ê¸°ë¥¼ 보았다 하신 ë§ì”€ì„ 보고는 다 알았습니다. 저와 í•œ ë°©ì— ìžˆëŠ” ì• ê°€ ì•”ë§Œí•´ë„ ì–´ë¨¸ë‹ˆ 스파ì¸ê°€ë´ìš”. 제가 ìž…ì›í•˜ê¸° ì „ì—ë„ ì œ 눈치를 슬슬 ë³´ê³  ë˜ ì±…ìƒ ì„œëžë„ 뒤지는 눈치가 ë³´ì´ê¸¸ëž˜ ì¼ê¸°ì±…ì€ ëŠ˜ 쇠 잠그는 ì„œëžì— 넣어 ë‘ì—ˆëŠ”ë° ì•„ë§ˆ 제가 ì •ì‹  ì—†ì´ ì•“ê³  누웠는 ë™ì•ˆì— ì œ 핸드백ì—ì„œ 쇳대를 í›”ì³ ê°”ë˜ê°€ë´ìš”. 그래서는 ê·¸ ì¼ê¸°ì±…ì„ êº¼ë‚´ì„œ 서울로 보냈나ë´ìš”. 그걸루 í•´ì„œ 아버지께서는 불명예스러운 ëˆ„ëª…ì„ ì“°ì‹œê³  í•™êµì¼ë„ 내놓으시게 ë˜ê³  ì§‘ë„ ë– ë‚˜ì‹œê²Œ ë˜ì…¨ë‚˜ë´ìš”. 다시는 ì§‘ì— ì•ˆ ëŒì•„오실 양으로 ê²°ì‹¬ì„ í•˜ì…¨ë‚˜ë´ìš”. 아까 병ì›ì—ì„œë„ í•˜ì‹œëŠ” ë§ì”€ì´ ëª¨ë‘ ìœ ì–¸í•˜ì‹œëŠ” 것만 같아서 í½ ì˜ì‹¬ì„ ê°€ì¡Œì—ˆëŠ”ë° ì§€ê¸ˆ ê·¸ ì“°ì‹œë˜ íŽ¸ì§€ë¥¼ 보고는 다 알았습니다. 그렇지만 그렇지만." -하고 웅변으로 ë‚´ë ¤ ë§í•˜ë˜ ì •ìž„ì€ ê°‘ìžê¸° 복받치는 ì—´ì •ì„ ì´ê¸°ì§€ 못하는 듯ì´, í•œ 번 í•œìˆ¨ì„ ì§€ìš°ê³ , -"그렇지만 저는 아버지를 ë”°ë¼ê°€ìš”. 절루 í•´ì„œ 아버지께서는 ì§‘ë„ ìžƒìœ¼ì‹œê³  ëª…ì˜ˆë„ ìžƒìœ¼ì‹œê³  ì‚¬ì—…ë„ ìžƒìœ¼ì‹œê³  ì¸ìƒì˜ 모든 ê²ƒì„ ë‹¤ 잃으셨으니 저는 아버지를 ë”°ë¼ê°€ìš”. 어디를 가시든지 저는 어린 딸로 아버지를 ë”°ë¼ë‹¤ë‹ˆë‹¤ê°€ 아버지께서 먼저 ëŒì•„가시면 ì €ë„ ë”°ë¼ ì£½ì–´ì„œ 아버지 ë°œ ë°‘ì— ë¬»íž í…Œì•¼ìš”. 제가 먼저 죽거든 제가 ë³‘ì´ ìžˆìœ¼ë‹ˆê¹ ë¬¼ë¡  제가 먼저 죽지요. ì£½ì–´ë„ ì¢‹ìŠµë‹ˆë‹¤. 병ì›ì—ì„œ 앓다가 í˜¼ìž ì£½ëŠ” ê±´ ì‹«ì–´ìš”. 아버지 ê³ì—ì„œ 죽으면 아버지께서, 오 ë‚´ 딸 ì •ìž„ì•„ 하시고 귀해 주시고 불ìŒížˆ 여겨 주시겠지요. 그리고 ì œ ëª¸ì„ ì–´ë””ë“ ì§€ ë•…ì— ë¬»ìœ¼ì‹œê³  `사랑하는 ë‚´ 딸 ì •ìž„ì˜ ë¬´ë¤'ì´ë¼ê³  패ë¼ë„ ì†ìˆ˜ 쓰셔서 세워 주시지 않겠습니까." -하고 ì •ìž„ì€ ë¹„ì­‰ë¹„ì­‰í•˜ë‹¤ê°€ 그만 무릎 ìœ„ì— ì—Žë”ì ¸ 울고 마오. -나는 다만 ì£½ì€ ì‚¬ëžŒ 모양으로 반쯤 ëˆˆì„ ê°ê³  앉아 있었소. 가슴 ì†ì—는 ì •ìž„ì˜ ê³ì—ì„œ 지지 않는 ì—´ì •ì„ í’ˆìœ¼ë©´ì„œë„ ì •ìž„ì˜ ë§ëŒ€ë¡œ ì •ìž„ì„ ë°ë¦¬ê³  ì•„ë¬´ë„ ëª¨ë¥´ëŠ” 곳으로 ê°€ 버리고 ì‹¶ìœ¼ë©´ì„œë„ ë‚˜ëŠ” ì´ ì—´ì •ì˜ ë¶ˆê¸¸ì„ ë‚´ 입김으로 꺼 버리지 아니하면 아니 ë˜ëŠ” 것ì´ì—ˆì†Œ. -"ì•„ì•„, 제가 왜 났어요? 왜 하나님께서 저를 세ìƒì— 보내셨어요? ì•„ë²„ì§€ì˜ ì¼ìƒì„ 파멸시키려 ë‚œ 것ì´ì§€ìš”? 제가 지금 죽어 버려서 ì•„ë²„ì§€ì˜ ëª…ì˜ˆë¥¼ 회복할 수 있다면 저는 죽어 버릴 í„°ì´ì•¼ìš”. 기ì˜ê²Œ 죽어 버리겠습니다. 제가 ì—¬ëŸ ì‚´ë¶€í„° 오늘날까지 ë°›ì€ ì€í˜œë¥¼ ì œ 목숨 하나로 ê°šì„ ìˆ˜ê°€ 있다면 저는 지금으로 죽어 버리겠습니다. 그렇지만 그렇지만……. -그렇지만 그렇지만 저는 다만 얼마ë¼ë„ 다만 하루ë¼ë„ 아버지 ê³ì—ì„œ ì‚´ê³  싶어요 다만 하루만ì´ë¼ë„, 아버지! 제가 왜 ì´ë ‡ìŠµë‹ˆê¹Œ, 네? 제가 어려서 ì´ë ‡ìŠµë‹ˆê¹Œ. 미친 ë…„ì´ ë˜ì–´ì„œ ì´ë ‡ìŠµë‹ˆê¹Œ. 아버지께서는 아실 테니 ë§ì”€í•´ 주세요. 하루만ì´ë¼ë„ 아버지를 모시고 아버지 ê³ì—ì„œ 살았으면 ì£½ì–´ë„ í•œì´ ì—†ê² ìŠµë‹ˆë‹¤. ì œ ìƒê°ì´ 잘못ì´ì•¼ìš”? ì œ ìƒê°ì´ 죄야요? 왜 죄입니까? 아버지, 저를 버리시고 í˜¼ìž ê°€ì‹œì§€ 마세요, 네? `ì •ìž„ì•„, 너를 ë°ë¦¬ê³  가마.' 하고 약ì†í•´ 주세요, 네." -ì •ìž„ì€ ì•„ì£¼ 담대하게 제가 í•˜ê³ ìž í•˜ëŠ” ë§ì„ 다 하오. ê·¸ 얌전한, ìˆ˜ì‚½í•œì •ìž„ì˜ ì†ì— ì–´ë”” 그러한 용기가 있었ë˜ê°€, ì°¸ ì´ìƒí•œ ì¼ì´ì˜¤. 나는 귀여운 어린 계집애 ì •ìž„ì˜ ì†ì— ì—‰í¼í•œ ì—¬ìžê°€ ë“¤ì–´ì•‰ì€ ê²ƒì„ ë°œê²¬í•˜ì˜€ì†Œ. 그가 몇 가지 재료(ë‚´ê°€ ì—¬í–‰ì„ ë– ë‚œë‹¤ëŠ” 것과 ì œ ì¼ê¸°ë¥¼ 보았다는 것)를 종합하여 나와 ì €ì™€ì˜ ìƒˆì—, ë˜ ê·¸ ë•Œë¬¸ì— ì–´ë– í•œ ì¼ì´ ì¼ì–´ë‚œ ê²ƒì„ ì¶”ì¸¡í•˜ëŠ” ê·¸ ìƒìƒë ¥ë„ 놀ëžê±°ë‹ˆì™€ 그렇게 ë‚´ ì•žì—서는 별로 ìž…ë„ ë²Œë¦¬ì§€ ì•„ë‹ˆí•˜ë˜ ê·¸ê°€ ì´ì²˜ëŸ¼ 담대하게 ì œ ì†ì— 있는 ë§ì„ ê±°ë¦¬ë‚Œì—†ì´ ë‹¤ í•´ 버리는 용기를 아니 놀랄 수 없었소. ë‚´ê°€, 사내요 ì–´ë¥¸ì¸ ë‚´ê°€ ë„리어 ì •ìž„ì—게 리드를 받고 ë†€ë¦¼ì„ ë°›ìŒì„ 깨달았소. -그러나 ì •ìž„ì„ ìœ„í•´ì„œë“ ì§€, 중년 남ìžì˜ ìœ„ì‹ ì„ ìœ„í•´ì„œë“ ì§€ 나는 ì˜ì§€ë ¥ìœ¼ë¡œ, ë„ë•ë ¥ìœ¼ë¡œ, ì •ìž„ì„ ëˆ„ë¥´ê³  훈계하지 아니하면 아니 ë˜ê² ë‹¤ê³  ìƒê°í•˜ì˜€ì†Œ. -"ì •ìž„ì•„." -하고 나는 비로소 ìž…ì„ ì—´ì–´ì„œ 불렀소. ë‚´ ì–´ì„±ì€ ìž¥ì¤‘í•˜ì˜€ì†Œ. 나는 í•  수 있는 ìœ„ì—„ì„ ë‹¤í•˜ì—¬ `ì •ìž„ì•„.' 하고 부른 것ì´ì˜¤. -"ì •ìž„ì•„, 네 ì†ì€ 다 알았다. 네 ë§ˆìŒ ë„¤ ëœ»ì€ ê·¸ë§Œí•˜ë©´ 다 알았다. 네가 나를 그처럼 ìƒê°í•´ 주는 ê²ƒì„ ê³ ë§™ê²Œ ìƒê°í•œë‹¤. 기ì˜ê²Œë„ ìƒê°í•œë‹¤. 그러나 ì •ìž„ì•„." -하고 나는 ì¼ì¸µ 태ë„와 소리를 엄숙하게 하여, -"네가 청하는 ë§ì€ 절대로 ë“¤ì„ ìˆ˜ 없는 ë§ì´ë‹¤. ë‚´ê°€ 너를 ì¹œë”¸ê°™ì´ ì‚¬ëž‘í•˜ê¸° ë•Œë¬¸ì— ë‚˜ëŠ” 너를 ë°ë¦¬ê³  가지 못하는 것ì´ë‹¤. 나는 세ìƒì—ì„œ 죽고 ì¡°ì„ ì—ì„œ 죽ë”ë¼ë„ 너는 죽어서 아니 ëœë‹¤. 차마 너까지는 죽ì´ê³  싶지 아니하단 ë§ì´ë‹¤. ë‚´ê°€ ì–´ë”” 가서 없어져 버리면 세ìƒì€ 네게 씌운 ëˆ„ëª…ì´ ì• ë§¤í•œ ì¤„ì„ ì•Œê²Œ ë  ê²ƒì´ ì•„ë‹ˆëƒ. 그리ë˜ë©´ 너는 ì¡°ì„ ì˜ ì¢‹ì€ ì¼ê¾¼ì´ ë˜ì–´ì„œ ì¼ë„ ë§Žì´ í•˜ê³  ë˜ ì‚¬ëž‘í•˜ëŠ” ë‚¨íŽ¸ì„ ë§žì•„ì„œ í–‰ë³µëœ ìƒí™œë„ í•  수 ìžˆì„ ê²ƒì´ ì•„ë‹ˆëƒ. ê·¸ê²ƒì´ ë‚´ê°€ 네게 ë°”ë¼ëŠ” 것ì´ë‹¤. ë‚´ê°€ ì–´ë”” ê°€ 있든지, ë‚´ê°€ ì‚´ì•„ 있는 ë™ì•ˆ 나는 네가 잘ë˜ëŠ” 것만, 행복ë˜ê²Œ 사는 것만 ë°”ë¼ë³´ê³  í˜¼ìž ê¸°ë»í•  ê²ƒì´ ì•„ë‹ˆëƒ. -네가 다 옳게 알았다. 나는 네 ë§ëŒ€ë¡œ ì¡°ì„ ì„ ì˜ì›ížˆ 떠나기로 하였다. 그렇지마는 나는 ì´ë ‡ê²Œ ëœ ê²ƒì„ ì¡°ê¸ˆë„ ìŠ¬í¼í•˜ì§€ 아니한다. 너를 위해서 ë‚´ê°€ 무슨 í¬ìƒì„ 한다고 하면 내게는 ê·¸ê²ƒì´ í° ê¸°ì¨ì´ë‹¤. ê·¸ë¿ ì•„ë‹ˆë¼, 나는 ì¸ì œëŠ” 세ìƒì´ 싫어졌다. ë” ì‚´ê¸°ê°€ 싫어졌다. ë‚´ê°€ ì‹­ì—¬ ë…„ ë™ì•ˆ ì „ìƒëª…ì„ ë°”ì³ì„œ êµìœ¡í•œ í•™ìƒë“¤ì—게까지 ë°°ì²™ì„ ë°›ì„ ë•Œì—는 나는 지금까지 살아온 ê²ƒì„ ìƒê°ë§Œ í•˜ì—¬ë„ ì§„ì €ë¦¬ê°€ 난다. 그렇지마는 나는 ì´ê²ƒì´ 다 ë‚´ê°€ 부족한 ë•Œë¬¸ì¸ ì¤„ì„ ìž˜ 안다. 나는 ì¡°ì„ ì„ ì›ë§í•œë‹¤ë“ ê°€, ë‚´ ë™í¬ë¥¼ ì›ë§í•œë‹¤ë“ ê°€, 그럴 ìƒê°ì€ 없다. ì›ë§ì„ 한다면 나 ìžì‹ ì˜ ë¶€ì¡±ì„ ì›ë§í•  ë¿ì´ë‹¤. ë‚´ê°€ ì›ì²´ êµìœ¡ì„ 한다든지 ë‚¨ì˜ ì§€ë„ìžê°€ ëœë‹¤ë“ ì§€ í•  ìžê²©ì´ ì—†ìŒì„ ì›ë§í•œë‹¤ë©´ ì›ë§í• ê¹Œ, ë‚´ê°€ 어떻게 ì¡°ì„ ì´ë‚˜ ì¡°ì„  ì‚¬ëžŒì„ ì›ë§í•˜ëŠëƒ. 그러니까 ì¸ì œ 내게 ë‚¨ì€ ì¼ì€ 나를 ì¡°ì„ ì—ì„œ 없애 버리는 것ì´ë‹¤. ê°ížˆ ì‹­ì—¬ ë…„ ê°„ êµìœ¡ê°€ë¼ê³  ìžì²˜í•´ ì˜¤ë˜ ê±°ì§“ë˜ê³  ì™¸ëžŒëœ ìƒí™œì„ ëŠì–´ 버리는 것ì´ë‹¤. 남편 ë…¸ë¦‡ë„ ëª» 하고 아버지 ë…¸ë¦‡ë„ ëª» 하는 ì‚¬ëžŒì´ ë‚¨ì˜ ìŠ¤ìŠ¹ì€ ì–´ë–»ê²Œ ë˜ê³  지ë„ìžëŠ” 어떻게 ë˜ëŠëƒ. 하니까 나는 ì´ì œ 세ìƒì„ 떠나 버리는 ê²ƒì´ ì¡°ê¸ˆë„ ìŠ¬í”„ì§€ 아니하고 ë„리어 ëª¸ì´ ê°€ëœ¬í•˜ê³  유쾌해지는 것 같다. -ì˜¤ì§ í•˜ë‚˜ 마ìŒì— 걸리는 ê²ƒì€ ë‚´ ì„ ë°°ìš” 사랑하는 ë™ì§€ì´ë˜ 남 ì„ ìƒì˜ 유ì¼í•œ 혈육ì´ë˜ 네게다가 ëˆ„ëª…ì„ ì”Œìš°ê³  가는 것ì´ë‹¤." -"그게 ì–´ë”” 아버지 잘못입니까?" -하고 ì •ìž„ì€ ìž…ìˆ ì„ ê¹¨ë¬¼ì—ˆì†Œ. -"ëª¨ë‘ ì œê°€ ì² ì´ ì—†ì–´ì„œ ì € 때문ì—……." -하고 ì •ìž„ì€ ëª¸ì„ ë–¨ê³  울었소. -"아니! 그렇게 ìƒê°í•˜ì§€ 마ë¼. ë‚´ê°€ 지금 세ìƒì„ 버릴 ë•Œì— ë¬´ìŠ¨ 기ì¨ì´ í•œ 가지 남는 ê²ƒì´ ìžˆë‹¤ê³  하면 너 하나가, ì´ ì„¸ìƒì—ì„œ ì˜¤ì§ ë„ˆ 하나가 나를 ë”°ë¼ ì£¼ëŠ” 것ì´ë‹¤. 아마 ë„ˆë„ ë‚˜ë¥¼ 잘못 알고 ë”°ë¼ ì£¼ëŠ” 것ì´ê² ì§€ë§ˆëŠ” 세ìƒì´ 다 나를 버리고, 처ìžê¹Œì§€ë„ 다 나를 버릴 ë•Œì— ì˜¤ì§ ë„ˆ 하나가 나를 소중히 알아 주니 ì–´ì°Œ 고맙지 ì•Šê² ëŠëƒ. 그러니까 ì •ìž„ì•„ 너는 ëª¸ì„ ì¡°ì‹¬í•˜ì—¬ì„œ ê±´ê°•ì„ íšŒë³µí•˜ì—¬ì„œ 오래 잘 ì‚´ê³ , 그리고 나를 ìƒê°í•´ 다오." -하고 ë‚˜ë„ ìš¸ì—ˆì†Œ. -형! ë‚´ê°€ ì •ìž„ì—게 ì´ëŸ° ë§ì„ í•œ ê²ƒì´ ìž˜ëª»ì´ì§€ìš”. 그러나 나는 ê·¸ ë•Œì— ì´ëŸ° ë§ì„ 아니 í•  수 없었소. 왜 그런고 하니, ê·¸ê²ƒì´ ë‚´ 진정ì´ë‹ˆê¹Œ. ë‚˜ë„ í•™êµ ì„ ìƒìœ¼ë¡œ, êµìž¥ìœ¼ë¡œ, ë˜ ì£¼ì œë„˜ê²Œ ì§€ì‚¬ë¡œì˜ ì¼ìƒì„ ë³´ë‚´ë…¸ë¼ê³  마치 ì˜¤ì§ ì–¼ìŒ ê°™ì€ ì˜ì§€ë ¥ë§Œ 가진 사람 모양으로 사십 í‰ìƒì„ ì‚´ì•„ 왔지마는 ë‚´ ì†ì—ë„ ì—´ì •ì€ ìžˆì—ˆë˜ ê²ƒì´ì˜¤. 다만 ê·¸ ì—´ì •ì„ ëˆ„ë¥´ê³  죽ì´ê³  ìžˆì—ˆì„ ë¿ì´ì˜¤. 물론 나는 아마 ì¼ìƒì— ì´ ì—´ì •ì˜ ê³ ì‚를 놓아 줄 ë‚ ì´ ì—†ê² ì§€ìš”. ë§Œì¼ ë‚´ê°€ ì´ ì—´ì •ì˜ ê³ ì‚를 놓아서 ìžìœ ë¡œ 달리게 한다고 하면 나는 ì´ ê²½ìš°ì— ì •ìž„ì„ ì•ˆê³ , ë‚´ 열정으로 ì •ìž„ì„ íƒœì›Œ 버렸ì„ëŠ”ì§€ë„ ëª¨ë¥´ì˜¤. 그러나 나는 ì •ìž„ì´ê°€ 열정으로 íƒˆìˆ˜ë¡ ë‚˜ëŠ” ë‚´ ì—´ì •ì˜ ê³ ì‚를 ë‘ ì†ìœ¼ë¡œ 꽉 붙들고 ì´ë¥¼ 악물고 매달릴 ê²°ì‹¬ì„ í•œ 것ì´ì˜¤. -ì—´í•œ ì‹œ! -"ì •ìž„ì•„. ì¸ì œ 병ì›ìœ¼ë¡œ 가거ë¼." -하고 나는 엄연하게 명령하였소. -"ë‚´ì¼ ì €ë¥¼ 보시고 떠나시지요?" -하고 ì •ìž„ì€ ëˆˆë¬¼ì„ ì”»ê³  물었소. -"그럼, Jì¡°êµìˆ˜ë„ 만나고 ë„ˆë„ ë³´ê³  떠나지." -하고 나는 거짓ë§ì„ 하였소. ì´ ê²½ìš°ì— ë‚´ê°€ 거짓ë§ìŸì´ë¼ëŠ” í° ì£„ì¸ì´ ë˜ëŠ” ê²ƒì´ ì •ìž„ì—게 대하여 ì •ìž„ì„ ìœ„í•˜ì—¬ 가장 ì˜³ì€ ì¼ì´ë¼ê³  ìƒê°í•œ 까닭ì´ì˜¤. -ì •ìž„ì€, 무서운 ì§ê°ë ¥ê³¼ ìƒìƒë ¥ì„ 가진 ì •ìž„ì€ ë‚´ ë§ì˜ ì§„ì‹¤ì„±ì„ ì˜ì‹¬í•˜ëŠ” ë“¯ì´ ë‚˜ë¥¼ 뚫어지게 ë°”ë¼ë³´ì•˜ì†Œ. 나는 차마 ì •ìž„ì˜ ì‹œì„ ì„ ë§ˆì£¼ 보지 못하여 외면하여 버렸소. -ì •ìž„ì€ ìˆ˜ê±´ìœ¼ë¡œ ëˆˆë¬¼ì„ ì”»ê³  ì²´ê²½ ì•žì— ê°€ì„œ í™”ìž¥ì„ ê³ ì¹˜ê³  그리고, -"저는 가요." -하고 ë‚´ ì•žì— í—ˆë¦¬ë¥¼ 굽혀서 작별 ì¸ì‚¬ë¥¼ 하였소. -"오, ê°€ ìžê±°ë¼." -하고 나는 극히 범연하게 대답하였소. 나는 ìžë¦¬ì˜·ì„ 입었기 ë•Œë¬¸ì— í˜„ê´€ê¹Œì§€ 작별할 ìˆ˜ë„ ì—†ì–´ì„œ ë³´ì´ë¥¼ 불러 ìžë™ì°¨ë¥¼ 하나 준비하ë¼ê³  명하고 ë‚´ ë°©ì—ì„œ 작별할 ìƒê°ì„ 하였소. -"ë‚´ì¼ ë³‘ì›ì— 오세요?" -하고 ì •ìž„ì€ ê³ ê°œë¥¼ 숙ì´ê³  낙루하였소. -"오, 가마." -하고 나는 ë˜ ê±°ì§“ë§ì„ 하였소. 세ìƒì„ 버리기로 결심한 ì‚¬ëžŒì˜ ê±°ì§“ë§ì€ í•˜ë‚˜ë‹˜ê»˜ì„œë„ ìš©ì„œí•˜ì‹œê² ì§€ìš”. 설사 ë‚´ê°€ 거짓ë§ì„ í•œ 죄로 ì§€ì˜¥ì— ê°„ë‹¤ 하ë”ë¼ë„ ì´ ê²½ìš°ì— ì •ìž„ì„ ìœ„í•˜ì—¬ 거짓ë§ì„ 아니 í•  수가 없지 않소? ë‚´ê°€ 거짓ë§ì„ 아니 하면 ì •ìž„ì€ ì•„ë‹ˆ ê°ˆ ê²ƒì´ ë¶„ëª…í•˜ì˜€ì†Œ. -"ì „ 가요." -하고 ì •ìž„ì€ ë˜ í•œ 번 ì ˆì„ í•˜ì˜€ìœ¼ë‚˜ 소리를 ë‚´ì–´ì„œ 울었소. -"울지 마ë¼! 몸 ìƒí•œë‹¤." -하고 나는 ì •ìž„ì—게 대한 ìµœí›„ì˜ ì¹œì ˆì„ ì •ìž„ì˜ ê³ì— í•œ ê±¸ìŒ ê°€ê¹Œì´ ê°€ì„œ 어깨를 ë˜ë‹¥ë˜ë‹¥í•˜ì—¬ 주고, 외투를 입혀 주었소. -"안녕히 주무세요." -하고 ì •ìž„ì€ ë¬¸ì„ ì—´ê³  나가 버렸소. -ì •ìž„ì˜ ê±¸ì–´ê°€ëŠ” 소리가 차차 멀어졌소. -나는 얼빠진 사람 모양으로 ê·¸ ìžë¦¬ì— ìš°ë‘커니 ì„œ 있었소. -ì°½ì— ë¶€ë”ªížˆëŠ” ë¹—ë°œ 소리가 들리고 ìžë™ì°¨ 소리가 먼 나ë¼ì—ì„œ 오는 ê²ƒê°™ì´ ë“¤ë¦¬ì˜¤. ì´ê²ƒì´ ì •ìž„ì´ê°€ 타고 가는 ìžë™ì°¨ 소리ì¸ê°€. 나는 ì •ìž„ì„ ë”°ë¼ê°€ì„œ 붙들어 오고 싶었소. ë‚´ 몸과 마ìŒì€ ì •ìž„ì„ ë”°ë¼ì„œ í—ˆê³µì— ë– ê°€ëŠ” 것 같았소. -ì•„ì•„ ì´ë ‡ê²Œ 나는 ì •ìž„ì„ ê³ì— ë‘ê³  싶ì„까. ì´ë ‡ê²Œ ë‚´ê°€ ì •ìž„ì˜ ê³ì— 있고 싶ì„까. 그러하건마는 나는 ì •ìž„ì„ ë–¼ì–´ 버리고 가지 아니하면 아니 ëœë‹¤! ê·¸ê²ƒì€ ì• ë“는 ì¼ì´ë‹¤. 기막히는 ì¼ì´ë‹¤! 그러나 ë‚´ ë„ë•ì  ì±…ìž„ì€ ì—„ì •í•˜ê²Œ 그렇게 명령하지 ì•ŠëŠëƒ. 나는 ì´ ë„ë•ì  ì±…ìž„ì˜ ëª…ë ¹ ê·¸ê²ƒì€ ë”위가 없는 명령ì´ë‹¤ ì„ í„¸ë만치ë¼ë„ 휘어서는 아니 ëœë‹¤. -그러나 ì •ìž„ì´ê°€ 호텔 현관까지 ìžë™ì°¨ë¥¼ 타기 ì „ì— í•œ 번만 ë” ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í•  ì¼ì¼ê¹Œ. í•œ 번만, ìž ê¹ë§Œ ë” ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í•  ì¼ì¼ê¹Œ. ìž ê¹ë§Œ ì¼ ë¶„ë§Œ 아니 ì¼ ì´ˆë§Œ í•œ 시그마ë¼ëŠ” 극히 ì§§ì€ ë™ì•ˆë§Œ ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í•  ì¼ì¼ê¹Œ. 아니, ì •ìž„ì„ í•œ 시그마 ë™ì•ˆë§Œ ë” ë³´ê³  싶다 나는 ì´ë ‡ê²Œ ìƒê°í•˜ê³  벌떡 ì¼ì–´ë‚˜ì„œ ë„ì–´ì˜ í•¸ë“¤ì— ì†ì„ 대었소. -`안 ëœë‹¤! 옳잖다!' -하고 나는 ë‚´ ì†ŒíŒŒì— ëŒì•„와서 í„¸ì© ëª¸ì„ ë˜ì¡Œì†Œ. -`ìµœí›„ì˜ ìˆœê°„ì´ ì•„ë‹ˆëƒ. ìµœí›„ì˜ ìˆœê°„ì— ìš©ê°ížˆ ì´ê²¨ì•¼ í•  ê²ƒì´ ì•„ë‹ˆëƒ. ì•„ì„œë¼! ì•„ì„œë¼!' -하고 나는 í˜¼ìž ì£¼ë¨¹ì„ ë¶ˆëˆë¶ˆëˆ ì¥ì—ˆì†Œ. -ì´ ë•Œì— ì§œë°•ì§œë°• 하고 걸어오는 소리가 들리오. ë‚´ ê°€ìŠ´ì€ ìŒë°©ë§ì´ë¡œ ë‘들기는 ê²ƒê°™ì´ ë›°ì—ˆì†Œ. -`설마 ì •ìž„ì¼ê¹Œ.' -í•˜ë©´ì„œë„ ë‚˜ëŠ” ìˆ¨ì„ ì£½ì´ê³  귀를 기울였소. -ê·¸ ë°œìžêµ­ 소리는 분명 ë‚´ 문 ë°–ì— ì™€ì„œ 그쳤소. 그리고는 소리가 없었소. -`ë‚´ ê·€ì˜ í™˜ê°ì¸ê°€.' -하고 나는 í•œìˆ¨ì„ ë‚´ì‰¬ì—ˆì†Œ. -그러나 ë‹¤ìŒ ìˆœê°„ ë˜ ë‘ì–´ 번 ë¬¸ì„ ë‘드리는 소리가 들렸소. -"ì´ì—스." -하고 나는 대답하고 ë¬¸ì„ ë°”ë¼ë³´ì•˜ì†Œ. -ë¬¸ì´ ì—´ë ¸ì†Œ. -들어오는 ì´ëŠ” ì •ìž„ì´ì—ˆì†Œ. -"웬ì¼ì´ëƒ." -하고 나는 엄숙한 태ë„를 지었소. 그것으로 ì¼ ì´ˆì˜ ì¼ì²œë¶„지 ì¼ì´ë¼ë„ 다시 í•œ 번 ë³´ê³  ì‹¶ë˜ ì •ìž„ì„ ë³´ê³  기ì¨ì„ 카무플ë¼ì£¼í•œ 것ì´ì˜¤. -ì •ìž„ì€ ì„œìŠ´ì§€ ì•Šê³  ë‚´ ë’¤ì— ì™€ì„œ ë‚´ êµì˜ì— ëª¸ì„ ê¸°ëŒ€ë©°, -"ì•”ë§Œí•´ë„ ì˜¤ëŠ˜ì´ ë§ˆì§€ë§‰ì¸ ê²ƒë§Œ 같아서, 다시 뵈올 ê¸°ì•½ì€ ì—†ëŠ” 것만 같아서 가다가 ë„ë¡œ 왔습니다. í•œ 번만 ë” ëµ™ê³  ê°ˆ 양으로요. 그래 ë„ë¡œ ì™€ì„œë„ ë“¤ì–´ì˜¬ê¹Œ ë§ê¹Œ 하고 주저주저하다가 ì´ê²ƒì´ 마지막ì¸ë° 하고 용기를 ë‚´ì–´ì„œ 들어왔습니다. ë‚´ì¼ ì €ë¥¼ 보시고 가신다는 ê²ƒì´ ë¶€ëŸ¬ 하신 ë§ì”€ë§Œ 같고, 마지막 뵈옵고, ëµˆì˜¨ëŒ€ë„ ê·¸ëž˜ë„ í•œ 번 ë” ëµˆì˜µê¸°ë§Œ í•´ë„……." -하고 ì •ìž„ì˜ ë§ì€ ëì„ ì•„ë¬¼ì§€ 못하였소. 그는 ë‚´ 등 ë’¤ì— ì„œ 있기 ë•Œë¬¸ì— ê·¸ê°€ ì–´ë– í•œ í‘œì •ì„ í•˜ê³  있는지는 ë³¼ 수가 없었소. 나는 다만 ì•„ë²„ì§€ì˜ ìœ„ì—„ìœ¼ë¡œ ì •ë©´ì„ ë°”ë¼ë³´ê³  ìžˆì—ˆì„ ë¿ì´ì˜¤. -`ì •ìž„ì•„, ë‚˜ë„ ë„¤ê°€ ë³´ê³  싶었다. 네 뒤를 ë”°ë¼ê°€ê³  싶었다. ë‚´ 몸과 마ìŒì€ 네 뒤를 ë”°ë¼ì„œ 허공으로 날았다. 나는 너를 í•œ ì´ˆë¼ë„ í•œ ì´ˆì˜ ì²œë¶„ì§€ ì¼ ë™ì•ˆì´ë¼ë„ í•œ 번 ë” ë³´ê³  싶었다. ì •ìž„ì•„, ë‚´ ì§„ì •ì€ ë„ˆë¥¼ 언제든지 ë‚´ ê³ì— ë‘ê³  싶다. ì •ìž„ì•„, 지금 ë‚´ ìƒëª…ì´ ê°€ì§„ ê²ƒì€ ì˜¤ì§ ë„ˆë¿ì´ë‹¤.' -ì´ëŸ° ë§ì´ë¼ë„ 하고 싶었소. 그러나 ì´ëŸ° ë§ì„ 하여서는 아니 ë˜ì˜¤! ë§Œì¼ ë‚´ê°€ ì´ëŸ° ë§ì„ 하여 준다면 ì •ìž„ì´ê°€ 기ë»í•˜ê² ì§€ìš”. 그러나 나는 ì •ìž„ì´ì—게 ì´ëŸ° 기ì¨ì„ 주어서는 아니 ë˜ì˜¤! -나는 어디까지든지 ì•„ë²„ì§€ì˜ ìœ„ì—„, ì•„ë²„ì§€ì˜ ëƒ‰ì •í•¨ì„ ì•„ë‹ˆ 지켜서는 아니 ë˜ì˜¤. -그렇지마는 ë‚´ ê°€ìŠ´ì— íƒ€ì˜¤ë¥´ëŠ” ì´ë¦„ì§€ì„ ìˆ˜ 없는 ì—´ì •ì˜ ë¶ˆê¸¸ì€ ë‚´ ì´ì„±ê³¼ ì˜ì§€ë ¥ì„ 태워 버리려 하오. 나는 ëˆˆì´ ì•„ëœ©ì•„ëœ©í•¨ì„ ê¹¨ë‹«ì†Œ. 나는 ë‚´ ìƒëª…ì˜ ë¶ˆê¸¸ì´ ê¹œë°•ê¹œë°•í•¨ì„ ê¹¨ë‹«ì†Œ. -그렇지마는! ì•„ì•„ 그렇지마는 나는 ì´ ë„ë•ì  ì±…ìž„ì˜ ë¬´ìƒ ëª…ë ¹ì˜ ë°œë ¹ìžì¸ ì“´ ìž”ì„ ë§ˆì‹œì§€ 아니하여서는 아니 ë˜ëŠ” 것ì´ì˜¤. -`ì‚°! 바위!' -나는 ì •ì‹ ì„ ê°€ë‹¤ë“¬ì–´ì„œ ì´ê²ƒì„ 염하였소. -그러나 ì—´ì •ì˜ íŒŒë„ê°€ 치는 ê³³ì— ì‚°ì€ ì›€ì§ì´ì§€ 아니하오? 바위는 í”들리지 아니하오? 태산과 ë°˜ì„ì´ ê·¸ í° ë¶ˆê¸¸ì— íƒ€ì„œ 재가 ë˜ì§€ëŠ” 아니하오? ì¸ìƒì˜ 모든 힘 ê°€ìš´ë° ì—´ì •ë³´ë‹¤ ë” í­ë ¥ì ì¸ ê²ƒì´ ì–´ë”” 있소? ì•„ë§ˆë„ ìš°ì£¼ì˜ ëª¨ë“  힘 ê°€ìš´ë° ì‚¬ëžŒì˜ ì—´ì •ê³¼ ê°™ì´ í­ë ¥ì , 불가항력ì ì¸ ê²ƒì€ ì—†ìœ¼ë¦¬ë¼. 뇌성, 벽력, 글쎄 그것ì—나 비길까. ì°¨ë¼ë¦¬ 천체와 천체가 수학ì ìœ¼ë¡œ 계산할 수 없는 비ìƒí•œ ì†ë ¥ì„ 가지고 마주 달려들어서 ìš°ë¦¬ì˜ ê·€ë¡œ ë“¤ì„ ìˆ˜ 없는 í° ì†Œë¦¬ì™€ 우리가 굳다고 ì¼ì»«ëŠ” 금강ì„ì´ë¼ë„ ì¦ê¸°ë¥¼ 만들고야 ë§ ë§Œí•œ ì—´ì„ ë°œí•˜ëŠ” 충ëŒì˜ 순간ì—나 비길까. 형. 사람ì´ë¼ëŠ” 존재가 ìš°ì£¼ì˜ ëª¨ë“  존재 ì¤‘ì— ê°€ìž¥ 비ìƒí•œ ì¡´ìž¬ì¸ ê²ƒ 모양으로 ì‚¬ëžŒì˜ ì—´ì •ì˜ íž˜ì€ ìš°ì£¼ì˜ ëª¨ë“  신비한 힘 ê°€ìš´ë° ê°€ìž¥ 신비한 íž˜ì´ ì•„ë‹ˆê² ì†Œ? 대체 ìš°ì£¼ì˜ ëª¨ë“  íž˜ì€ ê·¸ê²ƒì´ ì•„ë¬´ë¦¬ í° íž˜ì´ë¼ê³  하ë”ë¼ë„ ì € ìžì‹ ì„ 깨뜨리는 ê²ƒì€ ì—†ì†Œ. 그렇지마는 사람ì´ë¼ëŠ” ì¡´ìž¬ì˜ ì—´ì •ì€ ëŠ¥ížˆ ì œ ìƒëª…ì„ ê¹¨ëœ¨ë ¤ 가루를 만들고 ì œ ìƒëª…ì„ ì‚´ë¼ì„œ 소지를 올리지 아니하오? 여보, 대체 ì´ì—ì„œ ë” í­ë ¥ì´ìš”, 신비ì ì¸ ê²ƒì´ ì–´ë”” 있단 ë§ì´ì˜¤. -ì´ ë•Œ ë‚´ ìƒíƒœ, 어깨 ë’¤ì—ì„œ 열정으로 타고 섰는 ì •ìž„ì„ ëŠë¼ëŠ” ë‚´ ìƒíƒœëŠ” 바야íë¡œ 대í­ë°œ, 대충ëŒì„ 기다리는 아슬아슬한 때가 아니었소. ë§Œì¼ ì¡°ê¸ˆë§Œì´ë¼ë„ ë‚´ê°€ ë‚´ ì—´ì •ì˜ ê³ ì‚ì— ëŠ¦ì¶¤ì„ ì¤€ë‹¤ê³  하면 무서운 대í­ë°œì´ ì¼ì–´ë‚¬ì„ 것ì´ì˜¤. -"ì •ìž„ì•„!" -하고 나는 충분히 마ìŒì„ 진정해 가지고 고개를 옆으로 ëŒë ¤ ì •ìž„ì˜ ì–¼êµ´ì„ ì°¾ì•˜ì†Œ. -"네ì—." -하고 ì •ìž„ì€ ìž…ì„ ì•½ê°„ ë‚´ ê·€ 가까ì´ë¡œ 가져와서 ê·¸ 씨근거리는 소리가 분명히 ë‚´ ê·€ì— ë“¤ë¦¬ê³  ê·¸ 후ëˆí›„ëˆí•˜ëŠ” 뜨거운 ìž…ê¹€ì´ ë‚´ 목과 ëº¨ì— ê°ê°ë˜ì—ˆì†Œ. -억지로 ì§„ì •í•˜ì˜€ë˜ ë‚´ ê°€ìŠ´ì€ ë‹¤ì‹œ 설레기를 시작하였소. ê·¸ 불규칙한 숨소리와 뜨거운 ìž…ê¹€ 때문ì´ì—ˆì„까. -"시간 늦는다. ì–´ì„œ 가거ë¼. ì´ ì•„ë²„ì§€ëŠ” 언제까지든지 너를 사랑하는 딸 ë¡œ 소중히 소중히 ê°€ìŠ´ì— í’ˆê³  있으마. ë˜ í›„ì¼ì— 다시 만날 ë•Œë„ ìžˆì„지 ì•„ëŠëƒ. 설사 다시 만날 때가 없다기로니 ê·¸ê²ƒì´ ë¬´ì—‡ì´ ê·¸ë¦¬ 대수ëƒ. ë‚˜ì´ ë§Žì€ ì‚¬ëžŒì€ ë¨¼ì € 죽고 ì Šì€ ì‚¬ëžŒì€ ì˜¤ëž˜ ì‚´ì•„ì„œ ì¸ìƒì˜ ì¼ì„ ë§Žì´ í•˜ëŠ” ê²ƒì´ ìˆœì„œê°€ 아니ëƒ. 너는 ëª¸ì´ ì•„ì§ ì•½í•˜ë‹ˆ 마ìŒì„ 잘 안정해서 ì–´ì„œ ê±´ê°•ì„ íšŒë³µí•˜ì—¬ë¼. 그리고 굳세게 굳세게, 힘있게 힘있게 ì‚´ì•„ 다오. ì¡°ì„ ì€ ì‚¬ëžŒì„ êµ¬í•œë‹¤. 나 ê°™ì€ ì‚¬ëžŒì€ ì¸ì œ ì¡°ì„ ì„œ ë” ì¼í•  ìžê²©ì„ 잃어버린 사람ì´ì§€ë§ˆëŠ” 네야 ì–´ë– ëƒ. 설사 누가 무슨 ë§ì„ í•´ì„œ í•™êµì—ì„œ 학비를 아니 준다거든 ë‚´ê°€ 네게 준 ìž¬ì‚°ì„ ê°€ì§€ê³  네 마ìŒëŒ€ë¡œ 공부를 하려무나. 네가 그렇게 í•´ 주어야 나를 위하는 것ì´ë‹¤. ìž ì¸ì œ 가거ë¼. 네 ì•žê¸¸ì´ ì–‘ì–‘í•˜ì§€ 아니하ëƒ. ìž ì¸ì œ 가거ë¼. 나는 ë‚´ì¼ ì•„ì¹¨ ë™ê²½ì„ 떠날란다. ìž ì–´ì„œ." -하고 나는 í™”í‰í•˜ê²Œ 웃는 낯으로 ì¼ì–´ì„°ì†Œ. -ì •ìž„ì€ ìš¸ë¨¹ìš¸ë¨¹í•˜ê³  고개를 숙ì´ì˜¤. -ë°–ì—서는 ë°”ëžŒì´ ì ì  강해져서 소리를 하고 ìœ ë¦¬ì°½ì„ í”드오. -"그럼, ì „ 가요." -하고 ì •ìž„ì€ ê³ ê°œë¥¼ 들었소. -"그래. ì–´ì„œ 가거ë¼. ë²Œì¨ ì—´í•œì‹œ ë°˜ì´ë‹¤. ë³‘ì› ë¬¸ì€ ì•„ë‹ˆ 닫니!" -ì •ìž„ì€ ëŒ€ë‹µì´ ì—†ì†Œ. -"ì–´ì„œ!" -하고 나는 ë³´ì´ë¥¼ 불러 ìžë™ì°¨ë¥¼ 하나 준비하ë¼ê³  ì¼ë €ì†Œ. -"ê°ˆëžë‹ˆë‹¤." -하고 ì •ìž„ì€ ê³ ê°œë¥¼ 숙여서 내게 ì¸ì‚¬ë¥¼ 하고 ë¬¸ì„ í–¥í•˜ì—¬ í•œ ê±¸ìŒ ê±·ë‹¤ê°€ ìž ê¹ ì£¼ì €í•˜ë”니, 다시 ëŒì•„서서, -"저를 í•œ 번만 안아 주셔요. 아버지가 어린 ë”¸ì„ ì•ˆë“¯ì´ í•œ 번만 안아 주셔요." -하고 ë‚´ 앞으로 ê°€ê¹Œì´ ì™€ 서오. -나는 íŒ”ì„ ë²Œë ¤ 주었소. ì •ìž„ì€ ë‚´ ê°€ìŠ´ì„ í–¥í•˜ê³  ëª¸ì„ ë˜ì¡Œì†Œ. 그리고 ì œ ì´ëº¨ ì €ëº¨ì„ ë‚´ ê°€ìŠ´ì— ëŒ€ê³  비ë³ì†Œ. 나는 ë‘ íŒ”ì„ ì •ìž„ì˜ ì–´ê¹¨ ìœ„ì— ê°€ë²¼ì´ ë†“ì•˜ì†Œ. -ì´ëŸ¬í•œ 지 몇 ë¶„ì´ ì§€ë‚¬ì†Œ. 아마 ì¼ ë¶„ë„ ë‹¤ 못 ë˜ì—ˆëŠ”지 모르오. -ì •ìž„ì€ ë‚´ 가슴ì—ì„œ 고개를 들어 나를 뚫어지게 우러러보ë”니, 다시 ë‚´ ê°€ìŠ´ì— ë‚¯ì„ ëŒ€ë”니 아마 ë‚´ ì‹¬ìž¥ì´ ë¬´ì„­ê²Œ 뛰는 소리를 ì •ìž„ì€ ë“¤ì—ˆì„ ê²ƒì´ì˜¤ ì •ìž„ì€ ë‹¤ì‹œ 고개를 들고, -"어디를 가시든지 편지나 주셔요." -하고 êµµì€ ëˆˆë¬¼ì„ ë–¨êµ¬ê³ ëŠ” 내게서 물러서서 ë˜ í•œ 번 절하고, -"안녕히 가셔요. 만주든지 ì•„ë ¹ì´ë“ ì§€ ì¡°ì„  사람 ë§Žì´ ì‚¬ëŠ” ê³³ì— ê°€ì…”ì„œ ì¼í•˜ê³  사셔요. ëŒì•„가실 ìƒê°ì€ 마셔요. 제가, 아버지 ë§ì”€ëŒ€ë¡œ í˜¼ìž ë–¨ì–´ì ¸ 있으니 ì•„ë²„ì§€ë„ ì œ ë§ì”€ëŒ€ë¡œ ëŒì•„가실 ìƒê°ì€ 마셔요, 네, 그렇다고 대답하셔요!" -하고는 ë˜ í•œ 번 ë‚´ ê°€ìŠ´ì— ëª¸ì„ ê¸°ëŒ€ì˜¤. -죽기를 결심한 나는 `오ëƒ, 그러마.' 하는 ëŒ€ë‹µì„ í•  수는 없었소. 그래서, -"오, ë‚´ ì‚´ë„ë¡ íž˜ì“°ë§ˆ." -하는 약ì†ì„ 주어서 ì •ìž„ì„ ëŒë ¤ë³´ëƒˆì†Œ. -ì •ìž„ì˜ ë°œìžêµ­ 소리가 안 들리게 ëœ ë•Œì— ë‚˜ëŠ” 빠른 걸ìŒìœ¼ë¡œ ì˜¥ìƒ ì •ì›ìœ¼ë¡œ 나갔소. 비가 막 뿌리오. -나는 ì •ìž„ì´ê°€ 타고 나가는 ìžë™ì°¨ë¼ë„ ë³¼ 양으로 호텔 현관 ì•žì´ ë³´ì´ëŠ” 꼭대기로 올ë¼ê°”소. í˜„ê´€ì„ ë– ë‚œ ìžë™ì°¨ 하나가 전찻길로 나서서는 ë¶ì„ 향하고 달아나서 순ì‹ê°„ì— ê·¸ ê½ë¬´ë‹ˆì— 달린 ë¶‰ì€ ë¶ˆì¡°ì°¨ 스러져 버리고 ë§ì•˜ì†Œ. -나는 미친 사람 모양으로, -"ì •ìž„ì•„, ì •ìž„ì•„!" -하고 ìˆ˜ì—†ì´ ë¶ˆë €ì†Œ. 나는 사 층ì´ë‚˜ ë˜ëŠ” ì´ ê¼­ëŒ€ê¸°ì—ì„œ 뛰어내려서 ì •ìž„ì´ê°€ 타고 ê°„ ìžë™ì°¨ì˜ 뒤를 따르고 싶었소. -"ì•„ì•„ ì˜ì›í•œ ì¸ìƒì˜ ì´ë³„!" -나는 ê·¸ 옥ìƒì— 얼마나 오래 ì„°ë˜ì§€ë¥¼ 모르오. ë‚´ 머리와 낯과 배스로브ì—서는 ë¬¼ì´ í르오. ë°©ì— ë“¤ì–´ì˜¤ë‹ˆ ì •ìž„ì´ê°€ ë¼ì¹˜ê³  ê°„ 향기와 추억만 남았소. -나는 ë°© 안 구ì„구ì„ì— ì •ìž„ì˜ ëª¨ì–‘ì´ ë³´ì´ëŠ” ê²ƒì„ ê¹¨ë‹¬ì•˜ì†Œ. 특별히 ì •ìž„ì´ê°€ 고개를 숙ì´ê³  ì„œ ìžˆë˜ ë‚´ êµì˜ ë’¤ì—는 분명히 갈색 외투를 ìž…ì€ ì •ìž„ì˜ ëª¨ì–‘ì´ ì™„ì—°í•˜ì˜¤. -"ì •ìž„ì•„!" -하고 나는 ê·¸ 곳으로 ë”°ë¼ê°€ì˜¤. 그러나 가면 거기는 ì •ìž„ì€ ì—†ì†Œ. -나는 êµì˜ì— 앉소. 그러면 ì •ìž„ì˜ ì”¨ê·¼ì”¨ê·¼í•˜ëŠ” 숨소리와 ë”ìš´ ìž…ê¹€ì´ ë¶„ëª… ë‚´ ì˜¤ë¥¸íŽ¸ì— ê°ê°ì´ ë˜ì˜¤. ì•„ì•„ 무서운 환ê°ì´ì—¬! -나는 ìžë¦¬ì— 눕소. 그리고 ì •ìž„ì˜ í™˜ê°ì„ 피하려고 ë¶ˆì„ ë„오. 그러면 ì •ìž„ì´ê°€ 내게 ì•ˆê¸°ë˜ ìžë¦¬ì¯¤ì— 환하게 ì •ìž„ì˜ ëª¨ì–‘ì´ ë‚˜íƒ€ë‚˜ì˜¤. -나는 ë¶ˆì„ ì¼œì˜¤. ë˜ ë¶ˆì„ ë„오. -ë‚ ì´ ë°ìž 나는 비가 ê°  ê²ƒì„ ë‹¤í–‰ìœ¼ë¡œ ë¹„í–‰ìž¥ì— ë‹¬ë ¤ê°€ì„œ 비행기를 얻어 탔소. -나는 다시 ì¡°ì„ ì˜ í•˜ëŠ˜ì„ í†µê³¼í•˜ê¸°ê°€ ì‹«ì–´ì„œ ë¶ê°•ì—ì„œ 비행기ì—ì„œ 내려서 ë¬¸ì‚¬ì— ì™€ì„œ 대련으로 가는 배를 탔소. -나는 대련ì—ì„œ 내려서 í•˜ë£»ë°¤ì„ ì—¬ê´€ì—ì„œ ìžê³ ëŠ” 곧 장춘 가는 ê¸‰í–‰ì„ íƒ”ì†Œ. 물론 아무ì—ê²Œë„ ì—½ì„œ í•œ 장 í•œ ì¼ ì—†ì—ˆì†Œ. ê·¸ê²ƒì€ ì¸ì—°ì„ ëŠì€ 세ìƒì— 대하여 ì—°ì—°í•œ 마ìŒì„ 가지는 ê²ƒì„ ë¶€ë„럽게 ìƒê°í•œ 까닭ì´ì˜¤. -차가 옛날ì—는 우리 ì¡°ìƒë„¤ê°€ ì‚´ê³  문화를 ì§“ë˜ ì˜› í„°ì „ì¸ ë§Œì£¼ì˜ ë²ŒíŒì„ 달릴 ë•Œì—는 ê°íšŒë„ 없지 아니하였소. 그러나 나는 지금 그런 한가한 ê°ìƒì„ 쓸 ê²¨ë¥¼ì´ ì—†ì†Œ. -ë‚´ê°€ 믿고 가는 ê³³ì€ í•˜ì–¼ë¹ˆì— ìžˆëŠ” ì–´ë–¤ 친구요. 그는 Rë¼ëŠ” 사람으로서 ê²½ìˆ ë…„ì— A씨 ë“±ì˜ ë§ëª…ê°ì„ ë”°ë¼ ë‚˜ê°”ë‹¤ê°€ ì•„ë¼ì‚¬ì—ì„œ 무관 í•™êµë¥¼ 졸업하고 ì•„ë¼ì‚¬ 사관으로서 구주 대전ì—ë„ ì¶œì •ì„ í•˜ì˜€ë‹¤ê°€, í˜ëª… 후ì—ë„ ì´ë‚´ ì ìœ„êµ°ì— ë¨¸ë¬¼ëŸ¬ì„œ 지금까지 소비ì—트 장êµë¡œ 있는 사람ì´ì˜¤. ì§€ê¸ˆì€ ìœ¡êµ° 소장ì´ë¼ë˜ê°€. -나는 í•˜ì–¼ë¹ˆì— ê·¸ ì‚¬ëžŒì„ ì°¾ì•„ê°€ëŠ” 것ì´ì˜¤. ê·¸ ì‚¬ëžŒì„ ì°¾ì•„ì•¼ ì•„ë¼ì‚¬ì— 들어갈 ì—¬í–‰ê¶Œì„ ì–»ì„ ê²ƒì´ìš”, ì—¬í–‰ê¶Œì„ ì–»ì–´ì•¼ ë‚´ê°€ í‰ì†Œì— ì´ìƒí•˜ê²Œë„ ê·¸ë¦¬ì›Œí•˜ë˜ ë°”ì´ì¹¼ 호를 ë³¼ 것ì´ì˜¤. -í•˜ì–¼ë¹ˆì— ë‚´ë¦° ê²ƒì€ í•´ê°€ 뉘엿뉘엿 넘어가는 ì„ì–‘ì´ì—ˆì†Œ. -나는 ì•ˆì¤‘ê·¼ì´ ì´ë“±ë°•ë¬¸(伊藤åšæ–‡:ì´í†  히로부미)ì„ ìœ ê³³ì´ ì–´ë”˜ê°€ 하고 벌íŒê³¼ ê°™ì´ ë„“ì€ í”Œëž«í¼ì— 내렸소. 과연 êµ­ì œ ë„ì‹œë¼ ì„œì–‘ 사람, 중국 사람, ì¼ë³¸ ì‚¬ëžŒì´ ê°ê¸° ì œ ë§ë¡œ 지껄ì´ì˜¤. ì•„ì•„ ì¡°ì„  ì‚¬ëžŒë„ ìžˆì„ ê²ƒì´ì˜¤ë§ˆëŠ” 다들 ì–‘ë³µì„ ìž…ê±°ë‚˜ ì²­ë³µì„ ìž…ê±°ë‚˜ 하고 ë˜ ì‚¬ëžŒì´ ë§Žì€ ê³³ì—서는 ë§ë„ 잘 하지 아니하여 ì•„ë¬´ìª¼ë¡ ì¡°ì„  ì‚¬ëžŒì¸ ê²ƒì„ í‘œì‹œí•˜ì§€ 아니하는 íŒì´ë¼ ê·¸ 골격과 í‘œì •ì„ ì‚´í”¼ê¸° ì „ì—는 ì–´ëŠ ê²ƒì´ ì¡°ì„  사람ì¸ì§€ ì•Œ ê¸¸ì´ ì—†ì†Œ. 아마 허름하게 차리고 기운 ì—†ì´, 비창한 ë¹›ì„ ë ê³  ì‚¬ëžŒì˜ ëˆˆì„ ìŠ¬ìŠ¬ 피하는 ì € 순하게 ìƒê¸´ ì‚¬ëžŒë“¤ì´ ì¡°ì„  사람ì´ê² ì§€ìš”. 언제나 í•œ 번 가는 곳마다 ë™ì–‘ì´ë“ ì§€, 서양ì´ë“ ì§€, -`나는 ì¡°ì„  사람ì´ì˜¤!' -하고 ë½ë‚´ê³  ë‹¤ë‹ ë‚ ì´ ìžˆì„까 하면 ëˆˆë¬¼ì´ ë‚˜ì˜¤. ë”구나, 하얼빈과 ê°™ì€ ê°ìƒ‰ ì¸ì¢…ì´ ëª¨ì—¬ì„œ ìƒì¡´ ê²½ìŸì„ 하는 ë§ˆë‹¹ì— ì„œì„œ ì´ëŸ° 비ê°ì´ 간절하오. ì•„ì•„ ì´ ë¶ˆìŒí•œ ìœ ëž‘ì˜ ë¬´ë¦¬ ì¤‘ì— ë‚˜ë„ í•˜ë‚˜ë¥¼ ë” ë³´íƒœëŠ”ê°€ 하면 ëˆˆë¬¼ì„ ì”»ì§€ 아니할 수 없었소. -나는 ì—­ì—ì„œ 나와서 ì–´ë–¤ ì•„ë¼ì‚¬ 병정 하나를 붙들고 Rì˜ ì•„ë¼ì‚¬ ì´ë¦„ì„ ë¶ˆë €ì†Œ. 그리고 ì•„ëŠëƒê³  ì˜ì–´ë¡œ 물었소. -ê·¸ ë³‘ì •ì€ ë‚´ ë§ì„ 잘못 알아들었는지, ë˜ëŠ” R를 모르는지 무엇ì´ë¼ê³  ì•„ë¼ì‚¬ë§ë¡œ 지껄ì´ëŠ” 모양ì´ë‚˜ 나는 물론 ê·¸ê²ƒì„ ì•Œì•„ë“¤ì„ ìˆ˜ê°€ 없었소. 그러나 나는 ê·¸ ë³‘ì •ì˜ í‘œì •ì—ì„œ 내게 호ì˜ë¥¼ 가진 ê²ƒì„ ì§ìž‘하고 í•œ 번 ë” ë¶„ëª…ížˆ, -"요십 알렉산드로비치 리가ì´." -ë¼ê³  불러 보았소. -ê·¸ ë³‘ì •ì€ ë¹™ê·¸ë ˆ 웃고 고개를 í”드오. ì´ ë‘ ì™¸êµ­ ì‚¬ëžŒì˜ ì´ìƒí•œ êµì„­ì— í¥ë¯¸ë¥¼ 가지고 여러 ì•„ë¼ì‚¬ 병정과 ë™ì–‘ ì‚¬ëžŒë“¤ì´ ì‹­ì—¬ ì¸ì´ë‚˜ 우리 ì£¼ìœ„ì— ëª¨ì—¬ë“œì˜¤. -ê·¸ ë³‘ì •ì´ ë‚˜ë¥¼ ë°”ë¼ë³´ê³  ë˜ í•œ 번 ê·¸ ì´ë¦„ì„ ë¶ˆëŸ¬ ë³´ë¼ëŠ” 모양 같기로 나는 ì´ë²ˆì—는 Rì˜ ì•„ë¼ì‚¬ ì´ë¦„ì— `제너럴'ì´ë¼ëŠ” ë§ì„ 붙여 불러 보았소. -그랬ë”니 ì–´ë–¤ 다른 ë³‘ì •ì´ ë›°ì–´ë“¤ë©°, -"게네ë¼ìš° 리가ì´!" -하고 안다는 í‘œì •ì„ í•˜ì˜¤. `게네ë¼ìš°'ë¼ëŠ” ê²ƒì´ ì•„ë§ˆ ì•„ë¼ì‚¬ë§ë¡œ 장군ì´ëž€ ë§ì¸ê°€ 하였소. -"예스. 예스." -하고 나는 기ì˜ê²Œ 대답하였소. 그리고는 ì•„ë¼ì‚¬ 병정들ë¼ë¦¬ 무ì—ë¼ê³  지껄ì´ë”니, ê·¸ ì¤‘ì— í•œ ë³‘ì •ì´ ë‚˜ì„œë©´ì„œ 고개를 ë„ë•ë„ë•í•˜ê³ , 제가 마차 하나를 불러서 나를 태우고 ì €ë„ íƒ€ê³  어디로 달려가오. -ê·¸ ì•„ë¼ì‚¬ ë³‘ì •ì€ ì¹œì ˆížˆ ì•Œì§€ë„ ëª»í•˜ëŠ” ë§ë¡œ ì´ê²ƒì €ê²ƒì„ 가리키면서 ì„¤ëª…ì„ í•˜ë”니 ë‚´ê°€ 못 알아듣는 ì¤„ì„ ìƒê°í•˜ê³  ë‚´ 어깨를 툭 치고 웃소. 어린애와 ê°™ì´ ìˆœí•œ 사람들ì´êµ¬ë‚˜ 하고 나는 고맙다는 표로 고개만 ë„ë•ë„ë•í•˜ì˜€ì†Œ. -어디로 어떻게 가는지 서양 시가로 달려가다가 ì–´ë–¤ í° ì €íƒ ì•žì— ì´ë¥´ëŸ¬ì„œ 마차를 ê·¸ 현관 앞으로 들ì´ëª°ì•˜ì†Œ. -현관ì—서는 ì¢…ì¡¸ì´ ë‚˜ì™”ì†Œ. ë‚´ê°€ ëª…í•¨ì„ ë“¤ì—¬ë³´ëƒˆë”니 ë¶€ê´€ì¸ ë“¯í•œ ì•„ë¼ì‚¬ 장êµê°€ 나와서 나를 으리으리한 ì‘접실로 ì¸ë„하였소. 얼마 있노ë¼ë‹ˆ ì¤‘ë…„ì´ ë„˜ì€ ì–´ë–¤ ëŒ€ìž¥ì´ ë‚˜ì˜¤ëŠ”ë° êµ°ë³µì— ì¹¼ëˆë§Œ 늘였소. -"ì´ê²Œ 누구요." -하고 ê·¸ ëŒ€ìž¥ì€ ë‹¬ë ¤ë“¤ì–´ì„œ 나를 껴안았소. ì´ì‹­ì˜¤ ë…„ ë§Œì— ë§Œë‚˜ëŠ” 우리는 서로 알아본 것ì´ì˜¤. -ì´ìœ½ê³  나는 ê·¸ì˜ ë¶€ì¸ê³¼ ìžë…€ë“¤ë„ 만났소. ê·¸ë“¤ì€ ë‹¤ ì•„ë¼ì‚¬ 사람ì´ì˜¤. -ì €ë…ì´ ëë‚œ ë’¤ì— ë‚˜ëŠ” Rì˜ ë¶€ì¸ê³¼ ë”¸ì˜ ìŒì•…ê³¼ 그림 구경과 ê¸°íƒ€ì˜ ê´€ëŒ€ë¥¼ 받고 ë‹¨ë‘˜ì´ ì´ì•¼ê¸°í•  기회를 얻었소. 경술년 당시 ì´ì•¼ê¸°ë„ 나오고, Aì”¨ì˜ ì´ì•¼ê¸°ë„ 나오고, Rì˜ ì‹ ì„¸ íƒ€ë ¹ë„ ë‚˜ì˜¤ê³ , ë‚´ ì´ì‹­ì˜¤ ë…„ ê°„ì˜ ìƒí™œ ì´ì•¼ê¸°ë„ 나오고, 소비ì—트 í˜ëª… ì´ì•¼ê¸°ë„ 나오고, 하얼빈 ì´ì•¼ê¸°ë„ 나오고, 우리네가 어려서 서로 ì‚¬ê·€ë˜ íšŒêµ¬ë‹´ë„ ë‚˜ì˜¤ê³  ì´ì•¼ê¸°ê°€ 그칠 바를 몰ëžì†Œ. "ì¡°ì„ ì€ ê·¸ë¦½ì§€ ì•Šì€ê°€." -하는 ë‚´ ë§ì— ì¾Œí™œí•˜ë˜ R는 고개를 숙ì´ê³  추연한 ë¹›ì„ ë³´ì˜€ì†Œ. -나는 Rì˜ ì¶”ì—°í•œ 태ë„를 아마 ê³ êµ­ì„ ê·¸ë¦¬ì›Œí•˜ëŠ” 것으로만 여겼소. 그래서 나는 그리 침ìŒí•˜ëŠ” ê²ƒì„ ë³´ê³ , -"얼마나 ê³ êµ­ì´ ê·¸ë¦½ê² ë‚˜. 나는 ê³ êµ­ì„ ë– ë‚œ 지가 ì¼ ì£¼ì¼ë„ 안 ë˜ê±´ë§ˆëŠ” 못 견디게 그리운ë°." -하고 ë™ì •í•˜ëŠ” ë§ì„ 하였소. -í–ˆë”니, ì´ ë§ ë³´ì‹œì˜¤. 그는 침ìŒì„ 깨뜨리고 고개를 ë²ˆì© ë“¤ë©°, -"아니! 나는 ê³ êµ­ì´ ì¡°ê¸ˆë„ ê·¸ë¦½ì§€ 아니하ì´. ë‚´ê°€ 지금 ìƒê°í•œ ê²ƒì€ ìžë„¤ ë§ì„ 듣고 ê³ êµ­ì´ ê·¸ë¦¬ìš´ê°€ 그리워할 ê²ƒì´ ìžˆëŠ”ê°€ë¥¼ ìƒê°í•´ 본 것ì¼ì„¸. 그랬ë”니 아무리 ìƒê°í•˜ì—¬ë„ 나는 ê³ êµ­ì´ ê·¸ë¦½ë‹¤ëŠ” ìƒê°ì„ 가질 수가 없어. 그야 어려서 ìžë¼ë‚  ë•Œì— ë³´ë˜ ê°•ì‚°ì´ë¼ë“ ì§€ ë‚´ ê¸°ì–µì— ë‚¨ì€ ì•„ëŠ” 사람들ì´ë¼ë“ ì§€, ë³´ê³  싶다 하는 ìƒê°ë„ 없지 아니하지마는 ê·¸ê²ƒì´ ê³ êµ­ì´ ê·¸ë¦¬ìš´ 것ì´ë¼ê³  í•  수가 있ì„까. ê·¸ ë°–ì—는 나는 아무리 ìƒê°í•˜ì—¬ë„ ê³ êµ­ì´ ê·¸ë¦¬ìš´ ê²ƒì„ ì°¾ì„ ê¸¸ì´ ì—†ë„¤. ë‚˜ë„ ì§€ê¸ˆ ìžë„¤ë¥¼ ë³´ê³  ë˜ ìžë„¤ ë§ì„ 듣고 오래 ìžŠì–´ë²„ë ¸ë˜ ê³ êµ­ì„ ì¢€ 그립게, 그립다 하게 ìƒê°í•˜ë ¤ê³  í•´ 보았지마는 ë„무지 나는 ê³ êµ­ì´ ê·¸ë¦½ë‹¤ëŠ” ìƒê°ì´ 나지 않네." -ì´ ë§ì— 나는 ê¹œì§ ë†€ëžì†Œ. 몸서리치게 무서웠소. 나는 í•´ì™¸ì— ì˜¤ëž˜ 표랑하는 ì‚¬ëžŒì€ ìœ¼ë ˆ ê³ êµ­ì„ ê·¸ë¦¬ì›Œí•  것으로 믿고 있었소. ê·¸ëŸ°ë° ì´ ì‚¬ëžŒì´, ì¼ì°ì€ ê³ êµ­ì„ ì‚¬ëž‘í•˜ì—¬ ëª©ìˆ¨ê¹Œì§€ë„ ë°”ì¹˜ë ¤ë˜ ì´ ì‚¬ëžŒì´ ë„무지 ì´ì²˜ëŸ¼ ê³ êµ­ì„ ìžŠì–´ë²„ë¦°ë‹¤ëŠ” ê²ƒì€ ë†€ë¼ìš´ ì •ë„를 지나서 괘씸하기 그지없었소. ë‚˜ë„ ë¹„ë¡ ì¡°ì„ ì„ ë– ë‚œë‹¤ê³ , ì˜ì›ížˆ 버린다고 나서기는 했지마는 나로는 죽기 ì „ì—는 아니 ë¹„ë¡ ì£½ë”ë¼ë„ 잊어버리지 못할 ê³ êµ­ì„ ìžŠì–´ë²„ë¦° Rì˜ ì‹¬ì‚¬ê°€ 난측하고 ì›ë§ìŠ¤ëŸ¬ì› ì†Œ. -"ê³ êµ­ì´ ê·¸ë¦½ì§€ê°€ ì•Šì•„?" -하고 Rì—게 묻는 ë‚´ 어성ì—는 격분한 ë¹›ì´ ìžˆì—ˆì†Œ. -"ì´ìƒí•˜ê²Œ ìƒê°í•˜ì‹œê² ì§€. 하지만 ê³ êµ­ì— ë¬´ìŠ¨ 그리울 ê²ƒì´ ìžˆë‹¨ ë§ì¸ê°€. ê·¸ 빈대 ë“는 오막살ì´ê°€ 그립단 ë§ì¸ê°€. 나무 í•œ ê°œ 없는 ì‚°ì´ ê·¸ë¦½ë‹¨ ë§ì¸ê°€. ë¬¼ë³´ë‹¤ë„ ëª¨ëž˜ê°€ ë§Žì€ ë‹¤ 늙어빠진 ê°œì²œì´ ê·¸ë¦½ë‹¨ ë§ì¸ê°€. ê·¸ 무기력하고 가난한, 시기 많고 싸우고 하는 ê·¸ ë°±ì„±ì„ ê·¸ë¦¬ì›Œí•œë‹¨ ë§ì¸ê°€. 그렇지 아니하면 무슨 그리워할 ìŒì•…ì´ ìžˆë‹¨ ë§ì¸ê°€, ë¯¸ìˆ ì´ ìžˆë‹¨ ë§ì¸ê°€, ë¬¸í•™ì´ ìžˆë‹¨ ë§ì¸ê°€, 사ìƒì´ 있단 ë§ì¸ê°€, 사모할 만한 ì¸ë¬¼ì´ 있단 ë§ì¸ê°€! ë‚ ë”러 ê³ êµ­ì˜ ë¬´ì—‡ì„ ê·¸ë¦¬ì›Œí•˜ëž€ ë§ì¸ê°€. 나는 ì¡°êµ­ì´ ì—†ëŠ” 사람ì¼ì„¸. ë‚´ê°€ 소비ì—트 êµ°ì¸ìœ¼ë¡œ 있으니 소비ì—트가 ë‚´ ì¡°êµ­ì´ê² ì§€. 그러나 진심으로 ë‚´ ì¡°êµ­ì´ë¼ëŠ” ìƒê°ì€ 나지 아니하네." -하고 ì €ë… ë¨¹ì„ ë•Œì— ì•½ê°„ ë¶‰ì—ˆë˜ Rì˜ ì–¼êµ´ì€ ì´ìƒí•œ í¥ë¶„으로 ë”ìš± 붉어지오.유 정유 ì • -R는 ë¨¹ë˜ ë‹´ë°°ë¥¼ 화나는 ë“¯ì´ ìž¬ë–¨ì´ì— 집어ë˜ì§€ë©°, -"ë‚´ê°€ í•˜ì–¼ë¹ˆì— ì˜¨ 지가 ì¸ì œ 겨우 삼사 ë…„ë°–ì— ì•ˆ ë˜ì§€ë§ˆëŠ” ì¡°ì„  사람 ë•Œë¬¸ì— ë‚˜ëŠ” 견딜 수가 없어. 와서 달ë¼ëŠ” ê²ƒë„ ë‹¬ë¼ëŠ” 것ì´ì§€ë§ˆëŠ” ì¡°ì„  ì‚¬ëžŒì´ ë˜ ì–´ì°Œí•˜ì˜€ëŠë‹ˆ ë˜ ì–´ì°Œí•˜ì˜€ëŠë‹ˆ 하는 불명예한 ë§ì„ ë“¤ì„ ë•Œì—는 나는 ê¸ˆì‹œì— ì£½ì–´ 버리고 싶단 ë§ì¼ì„¸. 내게 가장 불쾌한 ê²ƒì´ ìžˆë‹¤ê³  하면 ê·¸ê²ƒì€ ê³ êµ­ì´ë¼ëŠ” 기억과 ì¡°ì„  ì‚¬ëžŒì˜ ì¡´ìž´ì„¸. ë‚´ê°€ ë§Œì¼ ì–´ëŠ ë‚˜ë¼ì˜ ë…재ìžê°€ ëœë‹¤ê³  하면 나는 첫째로 ì¡°ì„ ì¸ ìž…êµ­ 금지를 단행하려네. ë§Œì¼ ì¡°ì„ ì´ë¼ëŠ” ê²ƒì„ ìžŠì–´ë²„ë¦´ ì•½ì´ ìžˆë‹¤ê³  하면 나는 ìƒëª…ê³¼ 바꾸어서ë¼ë„ 사 먹고 싶어." -하고 R는 약간 í¥ë¶„ëœ ì–´ì¡°ë¥¼ 늦추어서, -"ë‚˜ë„ ëª¨ìŠ¤í¬ë°”ì— ìžˆë‹¤ê°€ ì²˜ìŒ ì›ë™ì— ë‚˜ì™”ì„ ì ì—는 ê¸¸ì„ ë‹¤ë…€ë„ í˜¹ì‹œ ë™í¬ê°€ ëˆˆì— ëœ¨ì´ì§€ë‚˜ 아니하나 하고 찾았네. 그래서 어디서든지 ë™í¬ë¥¼ 만나면 ë°˜ê°€ì´ ì†ì„ 잡았지. 했지만 ì ì  ê·¸ë“¤ì€ ì˜¤ì§ ê·€ì°®ì€ ì¡´ìž¬ì— ì§€ë‚˜ì§€ 못하다는 ê²ƒì„ ì•Œì•˜ë‹¨ ë§ì¼ì„¸. ì¸ì œëŠ” ì¡°ì„  사람ì´ë¼ê³ ë§Œ 하면 만나기가 무섭고 ë”ì°ë”ì°í•˜ê³  진저리가 나는 걸 어떡허나. ìžë„¤ ëª…í•¨ì´ ë“¤ì–´ì˜¨ ë•Œì—ë„ ì¡°ì„  사람ì¸ê°€ 하고 ê°€ìŠ´ì´ ëœ¨ë”했네." -하고 R는 ì›ƒì§€ë„ ì•„ë‹ˆí•˜ì˜¤. ê·¸ì˜ ì–¼êµ´ì—는, êµ°ì¸ë‹¤ìš´ 기운찬 얼굴ì—는 ì¦ì˜¤ì™€ ë¶„ë…¸ì˜ ë¹›ì´ ë„˜ì³¤ì†Œ. -"ë‚˜ë„ ìžë„¤ ì§‘ì— í™˜ì˜ë°›ëŠ” 나그네는 ì•„ë‹ì„¸ê·¸ë ¤." -하고 나는 ì´ ê²¬ë””ê¸° 어려운 불쾌하고 무서운 공기를 완화하기 위하여 ë†ë‹´ì‚¼ì•„ í•œ 마디를 ë˜ì§€ê³  웃었소. -나는 Rì˜ ë§ì´ ê³¼ê²©í•¨ì— ë†€ëžì§€ë§ˆëŠ”, ë˜ ìƒê°í•˜ë©´ Rê°€ í•œ ë§ ê°€ìš´ë°ëŠ” ë“¤ì„ ë§Œí•œ ì´ìœ ë„ 없지 아니하오. ê·¸ê²ƒì„ ìƒê°í•  ë•Œì— ë‚˜ëŠ” R를 괘씸하게 ìƒê°í•˜ê¸° ì „ì— ë‚´ê°€ 버린다는 ì¡°ì„ ì„ ìœ„í•˜ì—¬ì„œ ê°€ìŠ´ì´ ì•„íŒ ì†Œ. 그렇지만 ì´ì œ 나 따위가 ê°€ìŠ´ì„ ì•„íŒŒí•œëŒ€ì•¼ 무슨 ì†Œìš©ì´ ìžˆì†Œ. ì¡°ì„ ì— ë‚¨ì•„ 계신 형ì´ë‚˜ Rì˜ ë§ì„ 참고삼아 쓰시기 ë°”ë¼ì˜¤. 어쨌으나 나는 Rì—게서 목ì í•œ ì—¬í–‰ê¶Œì„ ì–»ì—ˆì†Œ. Rì—게는 다만, -`나는 피곤한 ëª¸ì„ ì¢€ 정양하고 싶다. 나는 ë‚´ê°€ í‰ì†Œì— ì¦ê²¨í•˜ëŠ” ë°”ì´ì¹¼ 호반ì—ì„œ 눈과 ì–¼ìŒì˜ í•œê²¨ìš¸ì„ ì§€ë‚´ê³  싶다.' -는 ê²ƒì„ ì—¬í–‰ì˜ ì´ìœ ë¡œ 삼았소. -R는 ë‚˜ì˜ ì´ˆì·Œí•œ ëª¨ì–‘ì„ ì§ìž‘하고 ë‚´ 핑계를 그럴듯하게 아는 모양ì´ì—ˆì†Œ. 그리고 나ë”러, `ì´ì™• 정양하려거든 카프카 지방으로 가거ë¼. 거기는 기후 í’ê²½ë„ ì¢‹ê³  ë˜ ìš”ì–‘ì›ì˜ ì„¤ë¹„ë„ ìžˆë‹¤.'는 ê²ƒì„ ë§í•˜ì˜€ì†Œ. ë‚˜ë„ í†¨ìŠ¤í† ì´ì˜ 소설ì—ì„œ, ê¸°íƒ€ì˜ ì—¬í–‰ê¸° 등ì†ì—ì„œ ì´ ì§€ë°©ì— ê´€í•œ ë§ì„ 못 ë“¤ì€ ê²ƒì´ ì•„ë‹ˆë‚˜ 지금 ë‚´ 처지ì—는 그런 따뜻하고 경치 ì¢‹ì€ ì§€ë°©ì„ ê°€ë¦´ ì—¬ìœ ë„ ì—†ê³  ë˜ ê·¸ëŸ¬í•œ ì§€ë°©ë³´ë‹¤ë„ ëˆˆê³¼ ì–¼ìŒê³¼ ë°”ëžŒì˜ ì‹œë² ë¦¬ì•„ì˜ ê²¨ìš¸ì´ í•©ë‹¹í•œ 듯하였소. -그러나 나는 Rì˜ í˜¸ì˜ë¥¼ êµ³ì´ ì‚¬ì–‘í•  í•„ìš”ë„ ì—†ì–´ì„œ 그가 ì¨ ì£¼ëŠ” 대로 ì†Œê°œìž¥ì„ ë‹¤ 받아 넣었소. 그는 나를 처남 매부 ê°„ì´ë¼ê³  소개해 주었소. -나는 모스í¬ë°” 가는 ë‹¤ìŒ ê¸‰í–‰ì„ ê¸°ë‹¤ë¦¬ëŠ” ì‚¬í˜ ë™ì•ˆ Rì˜ ì§‘ì˜ ì†ì´ ë˜ì–´ì„œ Rë¶€ì²˜ì˜ ì¹œì ˆí•œ 대우를 받았소. -ê·¸ 후ì—는 나는 R와 ì¡°ì„ ì— ê´€í•œ í† ë¡ ì„ í•œ ì¼ì€ 없지마는 Rê°€ ì´ë¦„지어 ë§ì„ í•  ë•Œì—는 ì¡°ì„ ì„ ìžŠì—ˆë…¸ë¼, 그리워할 ê²ƒì´ ì—†ë…¸ë¼, 하지마는 무ì˜ì‹ì ìœ¼ë¡œ ë§ì„ í•  ë•Œì—는 ì¡°ì„ ì„ ëª» 잊고 ë˜ ì¡°ì„ ì„ ì—¬ëŸ¬ ì ìœ¼ë¡œ 그리워하는 ì–‘ì„ ë³´ì•˜ì†Œ. 나는 ê·¸ê²ƒìœ¼ë¡œì¨ ë§Œì¡±í•˜ê²Œ 여겼소. -나는 ê¸ˆìš”ì¼ ì˜¤í›„ 세시 모스í¬ë°” 가는 급행으로 í•˜ì–¼ë¹ˆì„ ë– ë‚¬ì†Œ. ì—­ë‘ì—는 R와 Rì˜ ê°€ì¡±ì´ ë‚˜ì™€ì„œ 꽃과 ê³¼ì¼ê³¼ 여러 가지 선물로 나를 전송하였소. R와 Rì˜ ê°€ì¡±ì€ ë‚˜ë¥¼ ì •ë§ í˜•ì œì˜ ì˜ˆë¡œ 대우하여 차가 떠나려 í•  ë•Œì— í¬ì˜¹ê³¼ 키스로 작별하여 주었소. -ì´ ë‚ ì€ í½ ë”°ëœ»í•˜ê³  ì¼ê¸°ê°€ ì¢‹ì€ ë‚ ì´ì—ˆì†Œ. í•˜ëŠ˜ì— êµ¬ë¦„ í•œ ì , ë•…ì— ë°”ëžŒ í•œ ì  ì—†ì´ ë§ˆì¹˜ ëŠ¦ì€ ë´„ë‚ ê³¼ ê°™ì´ ë”°ëœ»í•œ ë‚ ì´ì—ˆì†Œ. -차는 떠났소. íŒë‹¤ëŠ” ë‘¥ 안 íŒë‹¤ëŠ” ë‘¥ ë§ì½ ë§Žì€ ë™ì¤‘ë¡œ(ì§€ê¸ˆì€ ë¶ë§Œ ì² ë¡œë¼ê³  하오.)ì˜ êµ­ì œ ì—´ì°¨ì— ëª¸ì„ ì˜íƒí•œ 것ì´ì˜¤. -송화강(æ¾èŠ±æ±Ÿ:쑹화 ê°•)ì˜ ì² êµë¥¼ 건너오. ì•„ì•„ ê·¸ë¦¬ë„ ë‚¯ìµì€ 송화강! ì†¡í™”ê°•ì´ ì™œ ë‚¯ì´ ìµì†Œ. ì´ ì†¡í™”ê°•ì€ ë¶ˆí•¨ì‚°(장백산)ì— ê·¼ì›ì„ 발하여 광막한 ë¶ë§Œì£¼ì˜ ì‚¬ëžŒë„ ì—†ëŠ” 벌íŒì„ í˜¼ìž ì†Œë¦¬ë„ ì—†ì´ í˜ëŸ¬ê°€ëŠ” ê²ƒì´ ë‚´ 신세와 같소. ì´ ë¶ë§Œì£¼ì˜ 벌íŒì„ 만든 ìžê°€ 송화강ì´ì§€ë§ˆëŠ” 나는 그만한 íž˜ì´ ì—†ëŠ” ê²ƒì´ ë¶€ë„러울 ë¿ì´ì˜¤. ì´ ê´‘ë§‰í•œ ë¶ë§Œì˜ 벌íŒì„ ë‚´ ì†ìœ¼ë¡œ 개척하여서 ì¡°ì„  ì‚¬ëžŒì˜ ë‚™ì›ì„ ë§Œë“¤ìž í•˜ê³  ë½ë‚´ì–´ 볼까. ê·¸ê²ƒì€ í˜•ì´ í•˜ì‹œì˜¤. ë‚´ ì–´ë¦°ê²ƒì´ ìžë¼ê±°ë“  그놈ì—게나 그러한 ìƒê°ì„ 넣어 주시오. -ë™ì–‘ì˜ êµ­ì œì  ê´´ë¬¼ì¸ í•˜ì–¼ë¹ˆ ì‹œê°€ë„ ê¹Œë§£ê²Œ 안개ì—ì„œ 스러져 버리고 ë§ì•˜ì†Œ. 그러나 ê·¸ 시가를 싼 까만 ê¸°ìš´ì´ êµ­ì œì  í’ìš´ì„ í¬ìž¥í•œ 것ì´ë¼ê³  할까요. -ê°€ë„ê°€ë„ ë²ŒíŒ. ì„œë¦¬ë§žì€ ë§ˆë¥¸ 풀바다. 실개천 í•˜ë‚˜ë„ ì—†ëŠ” 메마른 사막. 어디를 ë³´ì•„ë„ ì‚° 하나 없으니 하늘과 ë•…ì´ ì°© 달ë¼ë¶™ì€ 듯한 천지. 구름 í•œ ì  ì—†ê±´ë§Œë„ ê·¸ í° íƒœì–‘ ê°€ì§€ê³ ë„ ë¯¸ì²˜ 다 비추지 못하여 지í‰ì„  호를 그린 지í‰ì„  위ì—는 í•­ìƒ í™©í˜¼ì´ ë– ë„는 듯한 세계. ì´ ì†ìœ¼ë¡œ ë‚´ê°€ ëª¸ì„ ë‹´ì€ ì—´ì°¨ëŠ” 서쪽으로 서쪽으로 í•´ê°€ 가는 걸ìŒì„ ë”°ë¼ì„œ 달리고 있소. 열차가 달리는 바퀴 ì†Œë¦¬ë„ ë°˜í–¥í•  ê³³ì´ ì—†ì–´ 힘없는 í•œìˆ¨ê°™ì´ ìŠ¤ëŸ¬ì§€ê³  마오. -ê¸°ì¨ ê°€ì§„ ì‚¬ëžŒì´ ì§€ë£¨í•´ì„œ 못 견딜 ì´ í’ê²½ì€ ë‚˜ê°™ì´ ìˆ˜ì‹¬ 가진 사람ì—게는 가장 ê³µìƒì˜ ë§ì„ ë‹¬ë¦¬ê¸°ì— í•©ë‹¹í•œ ê³³ì´ì˜¤. -ì´ ê³³ì—ë„ ì‚°ë„ ìžˆê³  ëƒ‡ë¬¼ë„ ìžˆê³  ì‚¼ë¦¼ë„ ìžˆê³  ê½ƒë„ í”¼ê³  ë‚ ì§ìŠ¹, 길ì§ìŠ¹ì´ ë‚ ê³  ê¸°ë˜ ë•Œë„ ìžˆì—ˆê² ì§€ìš”. ê·¸ëŸ¬ë˜ ê²ƒì´ ëª‡ë§Œ ë…„ 지나는 ë™ì•ˆì— ì‚°ì€ ë‚®ì•„ì§€ê³  ê³¨ì€ ë†’ì•„ì ¸ì„œ 마침내 ì´ ê¼´ì´ ëœ ê²ƒì¸ê°€ 하오. ë§Œì¼ í° íž˜ì´ ìžˆì–´ ì´ ê´‘ì•¼ë¥¼ 파낸다 하면 물 í르고 고기 ë†€ë˜ ê°•ê³¼, 울고 ì›ƒë˜ ìƒë¬¼ì´ ì‚´ë˜ ìžì·¨ê°€ ìžˆì„ ê²ƒì´ì˜¤. ì•„ì•„ ì´ ëª¨ë“  ê¸°ì–µì„ ê½‰ 품고 ì£½ì€ ë“¯ì´ ìž ìž í•œ 광야ì—! -ë‚´ê°€ 탄 차가 Fì—­ì— ë„ì°©í•˜ì˜€ì„ ë•Œì—는 ë¶ë§Œì£¼ ê´‘ì•¼ì˜ ì„ì–‘ì˜ ì•„ë¦„ë‹¤ì›€ì€ ê·¸ ê·¹ë„ì— ë‹¬í•œ 것 같았소. 둥긋한 지í‰ì„  ìœ„ì— ê±°ì˜ ê±¸ë¦° 커다란 í•´! 아마 ê·¸ 신비하고 ìž¥ì—„í•¨ì´ ë‚´ 경험으로는 ì´ ê³³ì—서밖ì—는 ë³¼ 수 없는 것ì´ë¼ê³ ìƒê°í•˜ì˜¤. ì´ê¸€ì´ê¸€ ì´ê¸€ì´ê¸€ ê·¸ëŸ¬ë©´ì„œë„ ë‘¥ê¸€ë‹¤ëŠ” 체모를 변치 아니하는 ê·¸ 지는 í•´! -게다가 먼 지í‰ì„ ìœ¼ë¡œë¶€í„° 기어드는 í™©í˜¼ì€ ì¸ì œëŠ” 대지를 ê±°ì˜ ë‹¤ ë®ì–´ 버려서 마른 풀로 ëœ ì§€ë©´ì€ ê°€ë­‡ê°€ë­‡í•œ ë¹›ì„ ë ê³  ì‚¬ë§‰ì˜ ê°€ëŠ” 모래를 ë¨¸ê¸ˆì€ ì§€ëŠ” í•´ì˜ ê´‘ì„ ì„ ë°˜ì‚¬í•˜ì—¬ì„œ 대기는 ì§™ì€ ìžì¤ë¹›ì„ 바탕으로 í•œ 가지ê°ìƒ‰ì˜ ëª…ì•”ì„ ê°€ì§„, ì˜¤ìƒ‰ì´ ì˜ë¡±í•œ, ë„무지 ë‚´ê°€ ì¼ì° 경험해 보지 못한 ìƒ‰ì±„ì˜ ì„¸ê³„ë¥¼ ì´ë£¨ì—ˆì†Œ. ì•„ 좋다! -ê·¸ ì†ì— 수ì€ê°™ì´ 빛나는, 수없는 ìž‘ê³  í° í˜¸ìˆ˜ë“¤ì˜ ë¹›! ê·¸ ì†ìœ¼ë¡œ 날아오는 수없고 ì´ë¦„ 모를 ìƒˆë“¤ì˜ ë–¼ë„ ì´ ì„¸ìƒì˜ 것ì´ë¼ê³ ëŠ” ìƒê°í•˜ì§€ 아니하오. -나는 ê±°ì˜ ë¬´ì˜ì‹ì ìœ¼ë¡œ ì°¨ì—ì„œ 뛰어내렸소. ê±°ì˜ ë– ë‚  ì‹œê°„ì´ ë‹¤ ë˜ì–´ì„œ ì§ì˜ ì¼ë¶€ë¶„ì€ ë¯¸ì²˜ ê°€ì§€ì§€ë„ ëª»í•˜ê³  뛰어내렸소. 반쯤 미친 것ì´ì˜¤. -정거장 ì•ž 조그마한 ì•„ë¼ì‚¬ ì‚¬ëžŒì˜ ì—¬ê´€ì—다가 ì§ì„ 맡겨 버리고 나는 ë‹¨ìž¥ì„ ëŒê³  ì² ë„ ì„ ë¡œë¥¼ ë›°ì–´ 건너서 í˜¸ìˆ˜ì˜ ìˆ˜ì€ë¹› 나는 ê³³ì„ ì°¾ì•„ì„œ 지향 ì—†ì´ ê±¸ì—ˆì†Œ. -í•œ 호수를 가서 ë³´ë©´ ë˜ ì € 편 호수가 ë” ì•„ë¦„ë‹¤ì›Œ ë³´ì´ì˜¤. ì›ì»¨ëŒ€ ì € 지는 í•´ê°€ 다 지기 ì „ì— ì´ ê´‘ì•¼ì— ìžˆëŠ” 호수를 다 ëŒì•„ë³´ê³  싶소. -ë‚´ê°€ 호숫 ê°€ì— ì„°ì„ ë•Œì— ê·¸ ê±°ìš¸ê°™ì´ ìž”ìž”í•œ í˜¸ìˆ˜ë©´ì— ë¹„ì¹˜ëŠ” ë‚´ 그림ìžì˜ 외로움ì´ì—¬, 그러나 아름다움ì´ì—¬! ê·¸ 호수는 ì˜ì›í•œ ìš°ì£¼ì˜ ì‹ ë¹„ë¥¼ 품고 í•˜ëŠ˜ì´ ì˜¤ë©´ 하늘ì„, 새가 오면 새를, êµ¬ë¦„ì´ ì˜¤ë©´ 구름ì„, 그리고 ë‚´ê°€ 오면 나를 비추지 아니하오. 나는 호수가 ë˜ê³  싶소. 그러나 형! 나는 ì´ í˜¸ìˆ˜ë©´ì—ì„œ 얼마나 ì •ìž„ì˜ ì–¼êµ´ì„ ì°¾ì•˜ê² ì†Œ. ê·¸ê²ƒì€ ë¬¼ë¦¬í•™ì ìœ¼ë¡œ 불가능한 ì¼ì´ê² ì§€ìš”. ë™ê²½ì˜ ë³‘ì‹¤ì— ëˆ„ì›Œ 있는 ì •ìž„ì˜ ëª¨ì–‘ì´ ëª½ê³  ì‚¬ë§‰ì˜ í˜¸ìˆ˜ë©´ì— ë¹„ì¹  리야 있겠소. 없겠지마는 나는 호수마다 ì •ìž„ì˜ ê·¸ë¦¼ìžë¥¼ 찾았소. 그러나 ë³´ì´ëŠ” ê²ƒì€ ì™¸ë¡œìš´ ë‚´ 그림ìžë¿ì´ì˜¤. -`ê°€ìž. ë없는 사막으로 í•œì—†ì´ ê°€ìž. 가다가 ë‚´ ê¸°ìš´ì´ ì§„í•˜ëŠ” ìžë¦¬ì— 나는 ë‚´ ì†ìœ¼ë¡œ 모래를 파고 ê·¸ ì†ì— ë‚´ ëª¸ì„ ë¬»ê³  죽어 버리ìž. ì‚´ì•„ì„œ 다시 ë³¼ 수 없는 ì •ìž„ì˜ ã€Œì´ë°ì•„ã€ë¥¼ 안고 ì´ ê¹¨ë—í•œ 광야ì—ì„œ 죽어 버리 ìž.' -하고 나는 지는 해를 향하고 한정 ì—†ì´ ê±¸ì—ˆì†Œ. ì‚¬ë§‰ì´ ë°›ì•˜ë˜ ë”°ëœ»í•œ ê¸°ìš´ì€ ì•„ì§ë„ 다 ì‹ì§€ëŠ” 아니하였소. 사막ì—는 바람 í•œ ì ë„ 없소. 소리 í•˜ë‚˜ë„ ì—†ì†Œ. ë°œìžêµ­ ë°‘ì—ì„œ 우는 마른 풀과 ëª¨ëž˜ì˜ ë°”ìŠ¤ë½ê±°ë¦¬ëŠ” 소리가 들릴 ë¿ì´ì˜¤. -나는 허리를 지í‰ì„ ì— 걸었소. ê·¸ 신비한 ê´‘ì„ ì€ ë‚´ 가슴으로부터 위ì—ë§Œì„ ë¹„ì¶”ê³  있소. -ë¬¸ë“ ë‚˜ëŠ” 해를 ë”°ë¼ê°€ëŠ” 별 ë‘ ê°œë¥¼ 보았소. 하나는 ì•žì„ ì„œê³  하나는 뒤를 섰소. ì•žì˜ ë³„ì€ ì¢€ í¬ê³  ë’¤ì˜ ë³„ì€ ì¢€ 작소. ì´ëŸ° ë³„ë“¤ì€ ì‚° ë§Žì€ ë‚˜ë¼ ë‹¤ì‹œ ë§í•˜ë©´ 서쪽 지í‰ì„ ì„ 보기 어려운 나ë¼ì—서만 ìƒìž¥í•œ 나로서는 보지 ëª»í•˜ë˜ ë³„ì´ì˜¤. 나는 ê·¸ ë³„ì˜ ì´ë¦„ì„ ëª¨ë¥´ì˜¤. `ë‘ ë³„'ì´ì˜¤. -í•´ê°€ 지í‰ì„ ì—ì„œ ëš ë–¨ì–´ì§€ìž ëŒ€ê¸°ì˜ ìžì¤ë¹›ì€ 남빛으로 변하였소. ì˜¤ì§ í•´ê°€ 금시 들어간 ìžë¦¬ì—만 주í™ë¹›ì˜ ì—¬ê´‘ì´ ìžˆì„ ë¿ì´ì˜¤. ë‚´ 눈앞ì—서는 남빛 안개가 피어오르는 듯하였소. ì•žì— ë³´ì´ëŠ” í˜¸ìˆ˜ë§Œì´ ìœ ë‚œížˆ 빛나오. ë˜ í•œ ë–¼ì˜ ì´ë¦„ 모를 ìƒˆë“¤ì´ ìˆ˜ë©´ì„ ìŠ¤ì¹˜ë©° ë‚  저문 ê²ƒì„ ë†€ë¼ëŠ” ë“¯ì´ ì–´ì§€ëŸ¬ì´ ë‚ ì•„ 지나가오. ê·¸ë“¤ì€ ì†Œë¦¬ë„ ì•„ë‹ˆ 하오. 날개치는 ì†Œë¦¬ë„ ì•„ë‹ˆ 들리오. ê·¸ê²ƒë“¤ì€ ì‚¬ë§‰ì˜ í™©í˜¼ì˜ í—ˆê¹¨ë¹„ì¸ ê²ƒ 같소. -나는 ìžê¾¸ 걷소. 해를 ë”°ë¥´ë˜ ë‚˜ëŠ” ë‘ ë³„ì„ ë”°ë¼ì„œ ìžê¾¸ 걷소. -ë³„ë“¤ì€ ì§„ 해를 ë”°ë¼ì„œ ë°”ì‚ ê±·ëŠ” ê²ƒë„ ê°™ê³ , 헤매는 나를 ì–´ë–¤ 나ë¼ë¡œ ë„는 ê²ƒë„ ê°™ì†Œ. -아니 ë‘ ë³„ ì¤‘ì— ì•žì„  ë³„ì´ í•œ 번 ë°˜ì§í•˜ê³ ëŠ” 최후로 í•œ 번 ë°˜ì§í•˜ê³ ëŠ” 지í‰ì„  ë°‘ì— ìˆ¨ì–´ 버리고 마오. ë’¤ì— ë‚¨ì€ ì™¸ë³„ì˜ ì™¸ë¡œì›€ì´ì—¬! 나는 울고 싶었소. 그러나 나는 하나만 ë‚¨ì€ ìž‘ì€ ë³„ 외로운 ìž‘ì€ ë³„ì„ ë”°ë¼ì„œ ë” ë¹¨ë¦¬ 걸ìŒì„ 걸었소. ê·¸ í•œ 별마저 넘어가 버리면 나는 어찌하오. -ë‚´ê°€ 웬ì¼ì´ì˜¤. 나는 ì‹œì¸ë„ 아니요, ì˜ˆìˆ ê°€ë„ ì•„ë‹ˆì˜¤. 나는 정으로 í–‰ë™í•œ ì¼ì€ 없다고 믿는 사람ì´ì˜¤. 그러나 형! ì´ ë•Œì— ë¯¸ì¹œ ê²ƒì´ ì•„ë‹ˆìš”, ë‚´ 가슴ì—는 무엇ì¸ì§€ 모를 ê²ƒì„ ë”°ë¥¼ 요샛ë§ë¡œ ì´ë¥¸ë°” ë™ê²½ìœ¼ë¡œ 찼소. -`ì•„ì•„ ì € ìž‘ì€ ë³„!' -ê·¸ê²ƒë„ ì§€í‰ì„ ì— 닿았소. -`ì•„ì•„ ì € ìž‘ì€ ë³„. 저것마저 넘어가면 나는 어찌하나.' -ì¸ì œëŠ” 어둡소. ê´‘ì•¼ì˜ í™©í˜¼ì€ ëª…ìƒ‰ë¿ì´ìš”, 순ì‹ê°„ì´ìš”, í•´ì§€ìž ì‹ ë¹„í•˜ë‹¤ê³  í•  만한 극히 ì§§ì€ ë™ì•ˆì— 아름다운 í™©í˜¼ì„ ì¡°ê¸ˆ ë³´ì´ê³ ëŠ” 곧 ì¹ ê³¼ ê°™ì€ ì•”í‘ì´ì˜¤. í˜¸ìˆ˜ì˜ ë¬¼ë§Œì´ ì–´ë””ì„œ ì€ë¹›ì„ 받았는지 뿌옇게 ë‚˜ë§Œì´ ìœ ì¼í•œ 존재다, ë‚˜ë§Œì´ ìœ ì¼í•œ ë¹›ì´ë‹¤ 하는 ë“¯ì´ ì¸ì œëŠ” 수ì€ë¹›ì´ ì•„ë‹ˆë¼ ë‚¨ë¹›ì„ ë°œí•˜ê³  ìžˆì„ ë¿ì´ì˜¤. -나는 ê·¸ 중 ë¹›ì„ ë§Žì´ ë°›ì€, ê·¸ 중 환해 ë³´ì´ëŠ” í˜¸ìˆ˜ë©´ì„ ì°¾ì•„ ë‘리번거리며, 그러나 빠른 걸ìŒìœ¼ë¡œ 헤매었소. 그러나 ë‚´ê°€ ì¢€ë” ë§‘ì€ í˜¸ìˆ˜ë©´ì„ ì°¾ëŠ” ë™ì•ˆì— ì´ ê´‘ì•¼ì˜ ì–´ë‘ ì€ ë”ìš±ë”ìš± 짙어지오. -나는 ì–´ë–¤ 조그마한 호숫 ê°€ì— íŽ„ì© ì•‰ì•˜ì†Œ. ë‚´ ì•žì—는 ì§™ì€ ë‚¨ë¹›ì˜ ìˆ˜ë©´ì— ì¡°ê·¸ë§ˆí•œ 거울만한 ë°ì€ ë°ê°€ 있소. 마치 ë‚´ 눈ì—ì„œ 무슨 ë¹›ì´ ë‚˜ì™€ì„œ, 아마 ì •ìž„ì„ ê·¸ë¦¬ì›Œí•˜ëŠ” ë¹›ì´ ë‚˜ì™€ì„œ ê·¸ ìˆ˜ë©´ì— ë°˜ì‚¬í•˜ëŠ” 듯ì´. 나는 í—ˆê²ì§€ê² ê·¸ 빤한 ìˆ˜ë©´ì„ ë“¤ì—¬ë‹¤ë³´ì•˜ì†Œ. 혹시나 ì •ìž„ì˜ ëª¨ì–‘ì´ ê±°ê¸° 나타나지나 아니할까 하고. 세ìƒì—는 그러한 기ì ë„ 있지 아니한가 하고. -물ì—는 ì •ìž„ì˜ ì–¼êµ´ì´ ì–´ë¥¸ê±°ë¦¬ëŠ” 것 같았소. ì´ë”°ê¸ˆ ì •ìž„ì˜ ëˆˆë„ ì–´ë¥¸ê±°ë¦¬ê³  ì½”ë„ ë²ˆëœ»ê±°ë¦¬ê³  ìž…ë„ ë²ˆëœ»ê±°ë¦¬ëŠ” 것 같소. 그러나 ìˆ˜ë©´ì€ ì ì  ì–´ë‘워 가서 ê·¸ 환ì˜ì¡°ì°¨ ë”ìš± í¬ë¯¸í•´ì§€ì˜¤. -나는 í˜¸ìˆ˜ë©´ì— ë¹¤í•˜ë˜ í•œ ì¡°ê°ì¡°ì°¨ 캄캄해지는 ê²ƒì„ ë³´ê³  ìˆ¨ì´ ë§‰íž ë“¯í•¨ì„ ê¹¨ë‹¬ìœ¼ë©´ì„œ 고개를 들었소. -고개를 들려고 í•  ë•Œì—, 형ì´ì—¬, ì´ìƒí•œ ì¼ë„ 다 있소. ê·¸ ìˆ˜ë©´ì— ì •ìž„ì˜ ëª¨ì–‘ì´, 얼굴만 아니ë¼, ê·¸ 몸 ì˜¨í†µì´ ê·¸ 어깨, 가슴, 팔, 다리까지ë„, ê·¸ 눈과 입까지ë„, ê·¸ ì–¼êµ´ì˜ í° ê²ƒê³¼ ìž…ìˆ ì´ ë¶ˆê·¸ë ˆí•œ 것까지ë„, 마치 환한 ëŒ€ë‚®ì— ì‹¤ë¬¼ì„ ëŒ€í•œ 모양으로 소ìƒí•˜ê²Œ 나타났소. -"ì •ìž„ì´!" -하고 나는 소리를 지르며 물로 뛰어들려 하였소. 그러나 형, ê·¸ ìˆœê°„ì— ì •ìž„ì˜ ëª¨ì–‘ì€ ì‚¬ë¼ì ¸ 버리고 ë§ì•˜ì†Œ. -나는 ì´ ì–´ë‘  ì†ì— ì–´ë”” ì •ìž„ì´ê°€ 나를 ë”°ë¼ì˜¨ ê²ƒê°™ì´ ìƒê°í–ˆì†Œ. 혹시나 ì •ìž„ì´ê°€ 죽어서 ê·¸ ëª¸ì€ ë™ê²½ì˜ 대학 병ì›ì— ë²—ì–´ ë‚´ì–´ë˜ì§€ê³  í˜¼ì´ ë¹ ì ¸ 나와서 ë¬¼ì— ë¹„ì¹˜ì—ˆë˜ ê²ƒì´ ì•„ë‹ê¹Œ, 나는 ê°€ìŠ´ì´ ìš¸ë ê±°ë¦¼ì„ 진정치 못하면서 호숫 ê°€ì—ì„œ 벌떡 ì¼ì–´ë‚˜ì„œ ì–´ë‘  ì†ì— ì •ìž„ì„ ë§Œì ¸ë³´ë ¤ëŠ” 듯ì´, ì–´ë‘워서 ëˆˆì— ë³´ì§€ëŠ” 못하ë”ë¼ë„ ìžê¾¸ 헤매노ë¼ë©´ ëª¸ì— ë¶€ë”ªížˆê¸°ë¼ë„ í•  것 같아서 함부로 헤매었소. 그리고는 ëˆˆì•žì— ë²ˆëœ»ê±°ë¦¬ëŠ” ì •ìž„ì˜ í™˜ì˜ì„ íŒ”ì„ ë²Œë ¤ì„œ 안고 소리를 ë‚´ì–´ì„œ 불렀소. -"ì •ìž„ì´, ì •ìž„ì´." -하고 나는 ìˆ˜ì—†ì´ ì •ìž„ì„ ë¶€ë¥´ë©´ì„œ 헤매었소. -그러나 형, ì´ê²ƒë„ 죄지요. ì´ê²ƒë„ 하나님께서 금하시는 ì¼ì´ì§€ìš”. 그러길래 ê´‘ì•¼ì— ì•„ì£¼ ì–´ë‘ ì´ ë®ì´ê³  새까만 í•˜ëŠ˜ì— ë³„ì´ ì´ì´í•˜ê²Œ 나고는 ì˜ ì •ìž„ì˜ í—›ê·¸ë¦¼ìžì¡°ì°¨ 아니 ë³´ì´ì§€ìš”. 나는 죄를 피해서 ì •ìž„ì„ ë– ë‚˜ì„œ 멀리 온 것ì´ë‹ˆ ì •ìž„ì˜ í—›ê·¸ë¦¼ìžë¥¼ ë”°ë¼ë‹¤ë‹ˆëŠ” ê²ƒë„ ì˜³ì§€ 않지요. -그렇지만 ë‚´ê°€ ì´ë ‡ê²Œ 혼ìžì„œ ì •ìž„ì„ ìƒê°ë§Œ 하는 것ì´ì•¼ 무슨 죄 ë  ê²ƒì´ ìžˆì„까요. ë‚´ê°€ ì •ìž„ì„ ë§Œ 리나 떠나서 ì´ë ‡ê²Œ 헛그림ìžë‚˜ 그리며 그리워하는 것ì´ì•¼ 무슨 죄가 ë ê¹Œìš”. 설사 죄가 ë˜ê¸°ë¡œì„œë‹ˆ 낸들 ì´ê²ƒê¹Œì§€ì•¼ 어찌하오. ë‚´ê°€ ë‚´ í˜¼ì„ ì£½ì—¬ 버리기 ì „ì—야 ë‚´ 힘으로 어찌하오. 설사 죄가 ë˜ì–´ì„œ ë‚´ê°€ ì§€ì˜¥ì˜ êº¼ì§€ì§€ 않는 유황불 ì†ì—ì„œ ì˜ì›í•œ í˜•ë²Œì„ ë°›ê²Œ ë˜ê¸°ë¡œì„œë‹ˆ ê·¸ê²ƒì„ ì–´ì°Œí•˜ì˜¤. 형, ì´ê²ƒ, ì´ê²ƒë„ ë§ì•„야 옳ì€ê°€ìš”. ì •ìž„ì˜ í—›ê·¸ë¦¼ìžê¹Œì§€ë„ ëŠì–´ 버려야 옳ì€ê°€ìš”. -ì´ ë•Œìš”. 바로 ì´ ë•Œìš”. ë‚´ ì•ž 수십 보나 ë ê¹Œ(캄캄한 ë°¤ì´ë¼ 먼지 가까운지 분명히 ì•Œ 수 없지마는) 하는 ê³³ì— ë‚œë°ì—†ëŠ” 등불 하나가 나서오. 나는 ê¹œì§ ë†€ë¼ì„œ ìš°ëš ì„°ì†Œ. ì´ ë¬´ì¸ì§€ê²½, ì´ ë°¤ì¤‘ì— ê°‘ìžê¸° ë³´ì´ëŠ” 등불 ê·¸ê²ƒì€ ë§ˆì¹˜ ì´ ì„¸ìƒ ê°™ì§€ 아니하였소. -ì € ë“±ë¶ˆì´ ì–´ë–¤ 등불ì¼ê¹Œ, ê·¸ ë“±ë¶ˆì´ ëª‡ ê±¸ìŒ ê°€ê¹Œì´ ì˜¤ë‹ˆ, ê·¸ 등불 ë’¤ì— ì‚¬ëžŒì˜ ë‹¤ë¦¬ê°€ ë³´ì´ì˜¤. -"누구요?" -하는 ê²ƒì€ ê·€ì— ìµì€ ì¡°ì„ ë§ì´ì˜¤. 어떻게 ì´ ëª½ê³ ì˜ ê´‘ì•¼ì—ì„œ ì¡°ì„ ë§ì„ 들ì„까 하고 나는 ë“±ë¶ˆì„ ì²˜ìŒ ë³¼ 때보다 ë”ìš± 놀ëžì†Œ. -"나는 ì§€ë‚˜ê°€ë˜ ì‚¬ëžŒì´ì˜¤." -하고 ë‚˜ë„ ë“±ë¶ˆì„ í–¥í•˜ì—¬ 마주 걸어갔소. -ê·¸ ì‚¬ëžŒì€ ë“±ë¶ˆì„ ë“¤ì–´ì„œ ë‚´ ì–¼êµ´ì„ ë¹„ì¶”ì–´ ë³´ë”니, -"당신 ì¡°ì„  사람ì´ì˜¤?" -하고 묻소. -"네, 나는 ì¡°ì„  사람ì´ì˜¤. ë‹¹ì‹ ë„ ìŒì„±ì„ 들으니 ì¡°ì„  사람ì¸ë°, 어떻게 ì´ëŸ° 광야ì—, ì•„ë‹Œ 밤중ì—, 여기 계시단 ë§ì´ì˜¤." -하고 나는 놀ë¼ëŠ” 표정 그대로 대답하였소. -"나는 ì´ ê·¼ë°©ì— ì‚¬ëŠ” 사람ì´ë‹ˆê¹Œ 여기 오는 ê²ƒë„ ìžˆì„ ì¼ì´ì§€ë§ˆëŠ” 당신ì´ì•¼ë§ë¡œ ì´ ì•„ë‹Œ 밤중ì—." -하고 육혈í¬ë¥¼ 집어넣고, ì†ì„ 내밀어서 내게 악수를 구하오. -나는 반갑게 ê·¸ì˜ ì†ì„ 잡았소. 그러나 나는 `ì£½ì„ ì§€ê²½ì— ì–´ë–»ê²Œ 오셨단 ë§ì´ì˜¤.' 하고, 그가 ë‚´ê°€ 무슨 ì•…ì˜ë¥¼ 가진 í‰í•œì´ ì•„ë‹Œ ì¤„ì„ ì•Œê³  ì†ì— ë¹¼ì–´ë“¤ì—ˆë˜ ìœ¡í˜ˆí¬ë¡œ 시기를 ìž ê¹ì´ë¼ë„ 노린 ê²ƒì„ ë¶ˆì¾Œí•˜ê²Œ ìƒê°í•˜ì˜€ë˜ 것ì´ì˜¤. -ê·¸ë„ ë‚´ ì´ë¦„ë„ ë¬»ì§€ 아니하고 ë˜ ë‚˜ë„ ê·¸ì˜ ì´ë¦„ì„ ë¬»ì§€ 아니하고 나는 ê·¸ì—게 ëŒë ¤ì„œ 그가 ì¸ë„하는 곳으로 갔소. ê·¸ ê³³ì´ëž€ ê²ƒì€ ì•„ê¹Œ ë“±ë¶ˆì´ ì²˜ìŒ ë‚˜íƒ€ë‚˜ë˜ ê³³ì¸ ë“¯í•œë°, 거기서 ë˜ í•œ 번 놀란 ê²ƒì€ ì–´ë–¤ 부ì¸ì´ 있는 것ì´ì˜¤. 남ìžëŠ” ì•„ë¼ì‚¬ì‹ ì–‘ë³µì„ ìž…ì—ˆìœ¼ë‚˜ 부ì¸ì€ 중국 옷 비슷한 ì˜·ì„ ìž…ì—ˆì†Œ. 남ìžëŠ” 나를 ëŒì–´ì„œ ê·¸ 부ì¸ì—게 ì¸ì‚¬í•˜ê²Œ 하고, -"ì´ëŠ” ë‚´ ì•„ë‚´ìš”." -하고 ë˜ ê·¸ ì•„ë‚´ë¼ëŠ” 부ì¸ì—게는, -"ì´ ì´ëŠ” ì¡°ì„  ì–‘ë°˜ì´ì˜¤. ì„±í•¨ì´ ë‰˜ì‹œì£ ?" -하고 그는 나를 ë°”ë¼ë³´ì˜¤. 나는, -"최ì„입니다." -하고 바로 대답하였소. -"ìµœì„ ì”¨?" -하고 ê·¸ 남ìžëŠ” ì†Œê°œí•˜ë˜ ê²ƒë„ ìžŠì–´ë²„ë¦¬ê³  ë‚´ ì–¼êµ´ì„ ë“¤ì—¬ë‹¤ë³´ì˜¤. -"네, 최ì„입니다." -"ì•„ â—â—í•™êµ êµìž¥ìœ¼ë¡œ 계신 ìµœì„ ì”¨." -하고 ê·¸ 남ìžëŠ” ë”ìš± 놀ë¼ì˜¤. -"네, 어떻게 ë‚´ ì´ë¦„ì„ ì•„ì„¸ìš”?" -하고 ë‚˜ë„ ê·¸ê°€ 혹시 아는 사람ì´ë‚˜ 아닌가 하고 등불 ë¹›ì— ì–¼êµ´ì„ ë“¤ì—¬ë‹¤ 보았으나 ë„무지 ê·¸ ì–¼êµ´ì´ ë³¸ ê¸°ì–µì´ ì—†ì†Œ. -"최 ì„ ìƒì„ ë‚´ê°€ 압니다. 남 ì„ ìƒí•œí…Œ ë§ì”€ì„ ë§Žì´ ë“¤ì—ˆì§€ìš”. ê·¸ëŸ°ë° ë‚¨ ì„ ìƒë„ ëŒì•„가신 지가 ë²Œì¨ ëª‡ 핸가." -하고 ê°ê°œë¬´ëŸ‰í•œ ë“¯ì´ ê·¸ 아내를 ëŒì•„보오. -"십오 ë…„ì´ì§€ìš”." -하고 ê³ì— ì„°ë˜ ë¶€ì¸ì´ ë§í•˜ì˜¤. -"ë²Œì¨ ì‹­ì˜¤ ë…„ì¸ê°€." -하고 ê·¸ 남ìžëŠ” 나를 ë³´ê³ , -"ì •ìž„ì´ ìž˜ ìžëžë‹ˆê¹Œ? ë²Œì¨ ì´ì‹­ì´ 넘었지." -하고 ë˜ ë¶€ì¸ì„ ëŒì•„보오. -"스물세 ì‚´ì´ì§€." -하고 부ì¸ì´ 확실치 아니한 ë“¯ì´ ëŒ€ë‹µí•˜ì˜¤. -"네, 스물세 살입니다. 지금 ë™ê²½ì— 있습니다. ë³‘ì´ ë‚˜ì„œ ìž…ì›í•œ ê²ƒì„ ë³´ê³  왔는ë°." -하고 나는 ë²ˆê°œê°™ì´ ì •ìž„ì˜ ë³‘ì‹¤ê³¼ ì •ìž„ì˜ í˜¸í…” 장면 ë“±ì„ ìƒê°í•˜ê³  ê°€ìŠ´ì´ ì„¤ë ˜ì„ ê¹¨ë‹¬ì•˜ì†Œ. ì˜ì™¸ì¸ ê³³ì—ì„œ ì˜ì™¸ì¸ ì‚¬ëžŒë“¤ì„ ë§Œë‚˜ì„œ ì •ìž„ì˜ ë§ì„ 하게 ëœ ê²ƒì„ ê¸°ë»í•˜ì˜€ì†Œ. -"무슨 병입니까. ì •ìž„ì´ê°€ 본래 ëª¸ì´ ì•½í•´ì„œ." -하고 부ì¸ì´ ì§ì ‘ 내게 묻소. -"네. ëª¸ì´ ì¢€ 약합니다. ë³‘ì´ ì¢€ ë‚˜ì€ ê²ƒì„ ë³´ê³  떠났습니다마는 염려가 ë©ë‹ˆë‹¤." -하고 나는 무ì˜ì‹ì¤‘ì— ê³ ê°œë¥¼ ë™ê²½ì´ 있는 방향으로 ëŒë ¸ì†Œ. 마치 고개를 ë™ìœ¼ë¡œ ëŒë¦¬ë©´ ì •ìž„ì´ê°€ ë³´ì´ê¸°ë‚˜ í•  것같ì´. -"ìž, 우리 집으로 갑시다." -하고 나는 ì•„ì§ ê·¸ì˜ ì„±ëª…ë„ ëª¨ë¥´ëŠ” 남ìžëŠ”, ê·¸ì˜ ì•„ë‚´ë¥¼ 재촉하ë”니, -"우리가 ì¡°ì„  ë™í¬ë¥¼ 만난 ê²ƒì´ ì‹­ì—¬ ë…„ 만ì´ì˜¤. ê·¸ëŸ°ë° ìµœ ì„ ìƒ, ì´ê²ƒì„ 좀 보시고 가시지요." -하고 그는 빙그레 웃으면서 나를 서너 ê±¸ìŒ ëŒê³  가오. 거기는 조그마한 무ë¤ì´ 있고 ê·¸ ì•žì—는 ì„ ìž ë†’ì´ë‚˜ ë˜ëŠ” 목패를 ì„¸ì› ëŠ”ë° ê·¸ 목패ì—는 `ë‘ ë³„ 무ë¤'ì´ë¼ëŠ” 넉 ìžë¥¼ ì¼ì†Œ. -ë‚´ê°€ ì´ìƒí•œ 눈으로 ê·¸ 무ë¤ê³¼ 목패를 ë³´ê³  있는 ê²ƒì„ ë³´ê³  그는, -"ì´ê²Œ 무슨 무ë¤ì¸ì§€ 아십니까?" -하고 유쾌하게 묻소. -"ë‘ ë³„ 무ë¤ì´ë¼ë‹ˆ 무슨 뜻ì¸ê°€ìš”?" -하고 ë‚˜ë„ ê·¸ì˜ ìœ ì¾Œí•œ í‘œì •ì— ì „ì—¼ì´ ë˜ì–´ì„œ 웃고 물었소. -"ì´ê²ƒì€ 우리 ë‘˜ì˜ ë¬´ë¤ì´ì™¸ë‹¤." -하고 그는 ì•„ë‚´ì˜ ì–´ê¹¨ë¥¼ 치며 유쾌하게 웃었소. 부ì¸ì€ 부ë„러운 ë“¯ì´ ì›ƒê³  고개를 숙ì´ì˜¤. -ë„무지 ëª¨ë‘ ê¿ˆ 같고 í™˜ì˜ ê°™ì†Œ. -"ìž ê°‘ì‹œë‹¤. ìžì„¸í•œ ë§ì€ 우리 ì§‘ì— ê°€ì„œ 합시다." -하고 서너 ê±¸ìŒ ì–´ë–¤ 방향으로 걸어가니 거기는 ë§ì„ 세 í•„ì´ë‚˜ 맨 마차가 있소. 몽고 ì‚¬ëžŒë“¤ì´ ê°€ì¡±ì„ ì‹£ê³  수초를 ë”°ë¼ ëŒì•„다니는 그러한 마차요. ì‚¿ìžë¦¬ë¡œ í™ì˜ˆí˜•ì˜ ì§€ë¶•ì„ ë§Œë“¤ê³  ê·¸ ì†ì— 들어가 앉게 ë˜ì—ˆì†Œ. ê·¸ì˜ ë¶€ì¸ê³¼ 나와는 ì´ ì§€ë¶• ì†ì— 들어앉고 그는 ì†ìˆ˜ ì–´ìžëŒ€ì— 앉아서 입으로 쮸쮸쮸쮸 하고 ë§ì„ 모오. ë“±ë¶ˆë„ êº¼ 버리고 캄캄한 ì†ìœ¼ë¡œ 달리오. -"ë¶ˆì´ ìžˆìœ¼ë©´ 군대ì—ì„œ ì˜ì‹¬ì„ 하지요. ë„ì ë†ˆì´ 엿보지요. 게다가 ë¶ˆì´ ìžˆìœ¼ë©´ ë„리어 ì•žì´ ì•ˆ ë³´ì¸ë‹¨ ë§ìš”. 쯧쯧쯧쯧!" -하는 소리가 들리오. -대체 ì´ ì‚¬ëžŒì€ ë¬´ìŠ¨ 사람ì¸ê°€. ë˜ ì´ ë¶€ì¸ì€ 무슨 사람ì¸ê°€ 하고 나는 ì–´ë‘ìš´ ì†ì—ì„œ í˜¼ìž ìƒê°í•˜ì˜€ì†Œ. 다만 ìž ì‹œ 본 ì¸ìƒìœ¼ë¡œ ë³´ì•„ì„œ ê·¸ë“¤ì€ í–‰ë³µëœ ë¶€ë¶€ì¸ ê²ƒ 같았소. ê·¸ë“¤ì´ ë¬´ì—‡ 하러 ì´ ì•„ë‹Œ ë°¤ì¤‘ì— ê´‘ì•¼ì— ë‚˜ì™”ë˜ê°€. ë˜ ê·¸ ì´ìƒì•¼ë¦‡í•œ ë‘ ë³„ 무ë¤ì´ëž€ 무엇ì¸ê°€. -나는 불현듯 ì§‘ì„ ìƒê°í•˜ì˜€ì†Œ. ë‚´ 아내와 ì–´ë¦°ê²ƒë“¤ì„ ìƒê°í•˜ì˜€ì†Œ. 가정과 사회ì—ì„œ 쫓겨난 ë‚´ê°€ 아니오. 쫓겨난 ìžì˜ ìƒê°ì€ 언제나 슬픔ë¿ì´ì—ˆì†Œ. -나는 ë‚´ 아내를 ì›ë§ì¹˜ 아니하오. 그는 ê²°ì½” ì•…í•œ ì—¬ìžê°€ 아니오. 다만 보통 ì—¬ìžìš”. 그는 질투 ë•Œë¬¸ì— ì´ì„±ì˜ íž˜ì„ ìžƒì€ ê²ƒì´ì˜¤. ì—¬ìžê°€ 질투 ë•Œë¬¸ì— ì´ì„±ì„ 잃는 ê²ƒì´ ì²œì§ì´ ì•„ë‹ê¹Œìš”. 그가 나를 사랑하길래 나를 위해서 질투를 가지는 ê²ƒì´ ì•„ë‹ˆì˜¤. -설사 질투가 그로 하여금 ì¹¼ì„ ë“¤ì–´ ë‚´ ê°€ìŠ´ì„ ì°Œë¥´ê²Œ 하였다 하ë”ë¼ë„ 나는 ê°ì‚¬í•œ ìƒê°ì„ 가지고 ëˆˆì„ ê°ì„ 것ì´ì˜¤. 사랑하는 ìžëŠ” 질투한다고 하오. 질투를 누르는 ê²ƒë„ ì•„ë¦„ë‹¤ìš´ ì¼ì´ì§€ë§ˆëŠ” ì§ˆíˆ¬ì— íƒ€ëŠ” ê²ƒë„ ì•„ë¦„ë‹¤ìš´ ì¼ì´ ì•„ë‹ê¹Œìš”. -ëœí¬ëŸ­ëœí¬ëŸ­ 하고 차바퀴가 ì² ë¡œê¸¸ì„ ë„˜ì–´ê°€ëŠ” 소리가 나ë”니 ì´ìœ½ê³  마차는 섰소. -ì•žì— ë¹¨ê°›ê²Œ ë¶ˆì´ ë¹„ì¹˜ì˜¤. -"ìž ì´ê²Œ 우리 집ì´ì˜¤." -하고 그가 마차ì—ì„œ 뛰어내리는 ì–‘ì´ ë³´ì´ì˜¤. ë‚´ë ¤ 보니까 ë‹¬ì´ ì˜¬ë¼ì˜¤ì˜¤. 굉장히 í° ë‹¬ì´, ë¶‰ì€ ë‹¬ì´ ì§€í‰ì„ ìœ¼ë¡œì„œ 넘ì„하고 올ë¼ì˜¤ì˜¤. -ë‹¬ë¹›ì— ë¹„ì¶”ì¸ ë°”ë¥¼ ë³´ë©´ 네모나게 ë‹´ ë‹´ì´ë¼ê¸°ë³´ë‹¤ëŠ” ì„±ì„ ë‘˜ëŸ¬ìŒ“ì€ ë‹¬ 뜨는 곳으로 열린 ëŒ€ë¬¸ì„ ë“¤ì–´ì„œì„œ ë„“ì€ ë§ˆë‹¹ì— ë‚´ë¦° ê²ƒì„ ë°œê²¬í•˜ì˜€ì†Œ. -"아버지!" -"엄마!" -하고 ì•„ì´ë“¤ì´ 뛰어나오오. ë§ë§Œí¼ì´ë‚˜ í° ê°œê°€ 네 놈ì´ë‚˜ 꼬리를 치고 나오오. ê·¸ë†ˆë“¤ì´ ì£¼ì¸ì§‘ 마차 소리를 알아듣고 짖지 아니한 모양ì´ì˜¤. -í° ì•„ì´ëŠ” 계집애로 ì—¬ë‚¨ì€ ì‚´, ìž‘ì€ ì•„ì´ëŠ” 사내로 육칠 세, ëª¨ë‘ ì¤‘êµ­ ì˜·ì„ ìž…ì—ˆì†Œ. -우리는 방으로 들어갔소. ë°©ì€ ì•„ë¼ì‚¬ì‹ 절반, ì¤‘êµ­ì‹ ì ˆë°˜ìœ¼ë¡œ ì„¸ê°„ì´ ë†“ì—¬ 있고 ë²½ì—는 ì¡°ì„  지ë„와 ë‹¨êµ°ì˜ ì´ˆìƒì´ 걸려 있소. -그들 부처는 지ë„와 단군 ì´ˆìƒ ì•žì— í—ˆë¦¬ë¥¼ 굽혀 배례하오. ë‚˜ë„ ë¬´ì˜ì‹ì ìœ¼ë¡œ 그대로 하였소. -그는 차를 마시며 ì´ë ‡ê²Œ ë§í•˜ì˜¤. -"우리는 ìžì‹ë“¤ì„ ì´ í¥ì•ˆë ¹ 가까운 무변 광야ì—ì„œ 기르는 것으로 ë‚™ì„ ì‚¼ê³  있지요. ì¡°ì„  ì‚¬ëžŒë“¤ì€ í•˜ë„ ë§ˆìŒì´ ìž‘ì•„ì„œ 걱정ì´ë‹ˆ ì´ëŸ° 호호탕탕한 ë„“ì€ ë²ŒíŒì—ì„œ 길러나면 마ìŒì´ 좀 커질까 하지요. ë˜ í¥ì•ˆë ¹ ë°‘ì—ì„œ 지나 중ì›ì„ 통ì¼í•œ ì œì™•ì´ ë§Žì´ ë‚¬ìœ¼ë‹ˆ 혹시나 ê·¸ 정기가 남아 있ì„까 하지요. 우리 ë¶€ì²˜ì˜ ìžì†ì´ 몇 대를 ë‘ê³  í¼ì§€ëŠ” ë™ì•ˆì—는 행여나 ë§ˆìŒ í° ì¸ë¬¼ì´ 하나 둘 날는지 알겠어요, 하하하하." -하고 그는 ì œ ë§ì„ 제가 비웃는 ë“¯ì´ í•œë°”íƒ• 웃고 나서, -"그러나 ì´ê±´ ë‚´ 진정ì´ì™¸ë‹¤. ìš°ë¦¬ë„ ì´ë ‡ê²Œ ê³ êµ­ì„ ë– ë‚˜ 있지마는 ê·¸ëž˜ë„ ê³ êµ­ 소ì‹ì´ ê¶ê¸ˆí•´ì„œ 신문 하나는 늘 보지요. 하지만 ì–´ë”” ì‹œì›í•œ 소ì‹ì´ 있어요. 그저 조리복소니가 ë˜ì–´ê°€ëŠ” ê²ƒì´ ì•„ë‹ˆë©´ 조그마한 ìƒê°ì„ 가지고, 눈곱만한 ì•¼ì‹¬ì„ ê°€ì§€ê³ , ì„œ 푼어치 안 ë˜ëŠ” ì´ìƒì„ 가지고 찧고 까불고 싸우고 하는 ê²ƒë°–ì— ì•ˆ ë³´ì´ë‹ˆ ì´ê±° ì–´ë”” ì‚´ 수가 있나. 그래서 나는 ë§ˆìŒ í° ìžì†ì„ 낳아서 길러 볼까 하고 ì´ë¥¼í…Œë©´ 새 ë¯¼ì¡±ì„ í•˜ë‚˜ 만들어 볼까 하고, 둘째 단군, 둘째 아브ë¼í•¨ì´ë‚˜ 하나 낳아 볼까 하고 하하하하앗하." -하고 유쾌하게, 그러나 비통하게 웃소. -나는 ì €ë…ì„ êµ¶ì–´ì„œ ë°°ê°€ 고프고, ë°¤ê¸¸ì„ ê±¸ì–´ì„œ ëª¸ì´ ê³¤í•œ ê²ƒë„ ìžŠê³  ê·¸ì˜ ë§ì„ 들었소. -부ì¸ì´ ê¹€ì´ ë¬´ëŸ­ë¬´ëŸ­ 나는 í˜¸ë–¡ì„ í° ëšë°°ê¸°ì— ë‹´ê³  김치를 ìž‘ì€ ëšë°°ê¸°ì— ë‹´ê³ , ë˜ ë¼ì§€ê³ ê¸° ì‚¶ì€ ê²ƒì„ í•œ ì ‘ì‹œ 담아다가 íƒìž ìœ„ì— ë†“ì†Œ. -건넌방ì´ë¼ê³  í•  만한 ë°©ì—ì„œ ì –ë¨¹ì´ ìš°ëŠ” 소리가 들리오. 부ì¸ì€ 삼십ì´ë‚˜ ë˜ì—ˆì„까, ë‚¨íŽ¸ì€ ì„œë¥¸ëŒ“ ë˜ì—ˆì„ 듯한 키가 í›¨ì© í¬ê³  눈과 코가 í¬ê³  ì†ë„ í° ê±´ìž¥í•œ 대장부요, ìŒì„±ì´ 부드러운 ê²ƒì´ ì²´ê²©ì— ì–´ìš¸ë¦¬ì§€ 아니하나 ê·¸ê²ƒì´ ì•„ë§ˆ ê·¸ì˜ ì •ì‹  ìƒí™œì´ ë†’ì€ í‘œê² ì§€ìš”. -"신문ì—ì„œ 최 ì„ ìƒì´ í•™êµë¥¼ 고만ë‘시게 ë˜ì—ˆë‹¤ëŠ” ë§ë„ 보았지요. 그러나 나는 ê·¸ê²ƒì´ ë‹¤ 최 ì„ ìƒì—게 대한 중ìƒì¸ ì¤„ì„ ì§ìž‘하였고, ë˜ ì˜¤ëŠ˜ ì´ë ‡ê²Œ 만나 보니까 ë”구나 ê·¸ê²ƒì´ ë‹¤ 중ìƒì¸ ì¤„ì„ ì•Œì§€ìš”." -하고 그는 확신 있는 ì–´ì¡°ë¡œ ë§í•˜ì˜¤. -"고맙습니다." -나는 ì´ë ‡ê²Œë°–ì— ëŒ€ë‹µí•  ë§ì´ 없었소. -"ì•„, 머, 고맙다고 하실 ê²ƒë„ ì—†ì§€ìš”." -하고 그는 머리를 뒤로 젖히고 한참ì´ë‚˜ ìƒê°ì„ 하ë”니 ìš°ì„  껄껄 한바탕 웃고 나서, -"ë‚´ê°€ 최 ì„ ìƒì´ 당하신 경우와 ê¼­ ê°™ì€ ê²½ìš°ë¥¼ 당하였거든요. ì´ë¥¼í…Œë©´ 과부 ì„¤ì›€ì€ ë™ë¬´ 과부가 안다는 것ì´ì§€ìš”." -하고 그는 ìžê¸°ì˜ ë‚´ë ¥ì„ ë§í•˜ê¸° 시작하오. -"ë‚´ ì§‘ì€ ë³¸ëž˜ 서울입니다. ë‚´ê°€ ì–´ë ¸ì„ ì ì— ë‚´ 선친께서 ì‹œêµ­ì— ëŒ€í•´ì„œ 불í‰ì„ 품고 당신 삼 í˜•ì œì˜ ê°€ì¡±ì„ ëŒê³  ìž¬ì‚°ì„ ëª¨ë‘ íŒ”ì•„ 가지고 ê°„ë„ì—를 건너오셨지요. ê°„ë„ì— ë§¨ 먼저 â—â—í•™êµë¥¼ 세운 ì´ê°€ ë‚´ 선친ì´ì§€ìš”." -여기까지 하는 ë§ì„ 듣고 나는 그가 누구ì¸ì§€ë¥¼ 알았소. 그는 R씨ë¼ê³  ê°„ë„ ê°œì²™ìžìš”, ê°„ë„ì— ì¡°ì„ ì¸ ë¬¸í™”ë¥¼ 세운 ì´ë¡œ 유명한 ì´ì˜ ì•„ë“¤ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜¤. 나는 ê·¸ì˜ ì´ë¦„ì´ ëˆ„êµ¬ì¸ì§€ë„ 물어 ë³¼ 것 ì—†ì´ ì•Œì•˜ì†Œ. -"ì•„ 그러십니까. 네, 그러세요." -하고 나는 ê°íƒ„하였소. -"네, ë‚´ ì„ ì¹œì„ í˜¹ 아실는지요. ì„ ì¹œì˜ ë§ì”€ì´ ë…¸ 그러신단 ë§ì”€ì•¼ìš”. ì¡°ì„  ì‚¬ëžŒì€ ì†ì´ ì¢ì•„ì„œ 못쓴다고 <ì •ê°ë¡>ì—ë„ ê·¸ëŸ° ë§ì´ 있다고 ì¡°ì„ ì€ ì‚°ì´ ë§Žê³  ë“¤ì´ ì¢ì•„ì„œ ì‚¬ëžŒì˜ ë§ˆìŒì´ ìž‘ì•„ì„œ í°ì¼í•˜ê¸°ê°€ 어렵고, í°ì‚¬ëžŒì´ 나기가 어렵다고. 웬만치 í°ì‚¬ëžŒì´ 나면 서로 시기해서 í°ì¼í•  새가 ì—†ì´ í•œë‹¤ê³  그렇게 <ì •ê°ë¡>ì—ë„ ìžˆë‹¤ë”êµ°ìš”. 그래서 선친께서 ìžì†ì—게나 í¬ë§ì„ 붙ì´ê³  ê°„ë„ë¡œ 오신 모양ì´ì§€ìš”. 거기서 ìžë¼ë‚¬ë‹¤ëŠ” ê²ƒì´ ë‚´ 꼴입니다마는, 아하하. -ë‚´ê°€ ìžë¼ì„œ 아버지께서 세우신 K여학êµì˜ êµì‚¬ë¡œ ìžˆì„ ë•Œ ì¼ìž…니다. 지금 ë‚´ 아내는 ê·¸ ë•Œ í•™ìƒìœ¼ë¡œ 있었구. ê·¸ëŸ¬ìž ë‚´ 아버지께서 ìž¬ì‚°ì´ ë‹¤ 없어져서 í•™êµë¥¼ ë…담하실 수가 없고, ë˜ ì–¼ë§ˆ 아니해서 아버지께서 ëŒì•„가시고 보니 í•™êµì—는 세력 ë‹¤íˆ¼ì´ ìƒê²¨ì„œ ì•„ë²„ì§€ì˜ í›„ê³„ìžë¡œ 추정ë˜ëŠ” 나를 배척하게 ë˜ì—ˆë‹¨ ë§ì”€ì´ì˜¤. 거기서 나를 배척하는 ìžë£Œë¥¼ ì‚¼ì€ ê²ƒì´ ë‚˜ì™€ 지금 ë‚´ ì•„ë‚´ê°€ ëœ í•™ìƒì˜ 관계란 것ì¸ë° ì´ê²ƒì€ ì „ì—° ë¬´ê·¼ì§€ì„¤ì¸ ê²ƒì€ ë§í•  ê²ƒë„ ì—†ì†Œ. ë‚˜ë„ ì´ê°ì´ìš”, 그는 처녀니까 혼ì¸ì„ 하ìžë©´ 못 í•  ê²ƒë„ ì—†ì§€ë§ˆëŠ” ê·¸ê²ƒì´ ì‚¬ì œ 관계ë¼ë©´ 중대 문제거든. 그래서 나는 단연히 사ì§ì„ 하고 ë‚´ê°€ 사ì§í•œ ê²ƒì€ ì œ 죄를 승ì¸í•œ 것ì´ë¼ 하여서 ê·¸ í•™ìƒ ì§€ê¸ˆ ë‚´ ì•„ë‚´ë„ ì¶œêµ ì²˜ë¶„ì„ ë‹¹í•œ 것ì´ì˜¤. 그러고 보니, ê·¸ ì—¬ìžì˜ 아버지 ë‚´ 장ì¸ì´ì§€ìš” ê·¸ ì—¬ìžì˜ 아버지는 나를 ì£½ì¼ ë†ˆê°™ì´ ì›ë§ì„ 하고 ê·¸ ë”¸ì„ ì£½ì¼ ë…„ì´ë¼ê³  ê°ê¸ˆì„ 하고 어쨌으나 조그마한 ê°„ë„ ì‚¬íšŒì—ì„œ í° íŒŒë¬¸ì„ ì¼ìœ¼ì¼°ë‹¨ ë§ì´ì˜¤. -ì´ ë¬¸ì œë¥¼ ë” í¬ê²Œ 만든 ê²ƒì€ ì§€ê¸ˆ ë‚´ ì•„ë‚´ì¸, ê·¸ ë”¸ì˜ ìžë°±ì´ì˜¤. 무어ë¼ê³  했는고 하니, 나는 ê·¸ ì‚¬ëžŒì„ ì‚¬ëž‘í•˜ì˜¤, ê·¸ 사람한테가 아니면 ì‹œì§‘ì„ ì•ˆ 가오, 하고 뻗댔단 ë§ìš”. -나는 ì´ ì—¬ìžê°€ ì´ë ‡ê²Œ 나를 ìƒê°í•˜ëŠ”ê°€ í•  ë•Œ ì˜ë¶„ì‹¬ì´ ë‚˜ì„œ 나는 어떻게 해서든지 ì´ ì—¬ìžì™€ 혼ì¸í•˜ë¦¬ë¼ê³  ê²°ì‹¬ì„ í•˜ì˜€ì†Œ. 나는 마침내 ì •ì‹ìœ¼ë¡œ K장로ë¼ëŠ” ë‚´ 장ì¸ì—게 ì²­í˜¼ì„ í•˜ì˜€ìœ¼ë‚˜ ë‹¨ë°•ì— ê±°ì ˆì„ ë‹¹í•˜ê³  ë§ì•˜ì§€ìš”. K장로는 ê·¸ ë”¸ì„ ê°„ë„ì— ë‘는 ê²ƒì´ ì˜³ì§€ 않다고 í•´ì„œ 서울로 보내기로 하였단 ë§ì„ 들었소. 그래서 나는 ìµœí›„ì˜ ê²°ì‹¬ìœ¼ë¡œ ê·¸ ì—¬ìž ì§€ê¸ˆ ë‚´ ì•„ë‚´ ëœ ì‚¬ëžŒì„ ë°ë¦¬ê³  ê°„ë„ì—ì„œ ë„ë§í•˜ì˜€ì†Œ. 하하하하. ë°¤ì¤‘ì— ë‹¨ë‘˜ì´ì„œ. -지금 같으면야 ì‚¬ì œê°„ì— ê²°í˜¼ì„ í•˜ê¸°ë¡œ 그리 í° ë¬¸ì œê°€ ë  ê²ƒì´ ì—†ì§€ë§ˆëŠ” ê·¸ ë•Œì— ì–´ë”” 그랬나요. ì‚¬ì œê°„ì— í˜¼ì¸ì´ëž€ ê²ƒì€ ë¶€ë…€ê°„ì— í˜¼ì¸í•œë‹¤ëŠ” 것과 ê°™ì´ ìƒê°í•˜ì˜€ì§€ìš”. ë”구나 ê·¸ ë•Œ ê°„ë„ ì‚¬íšŒì—는 ì²­êµë„ì  ì‚¬ìƒê³¼ 열렬한 ì• êµ­ì‹¬ì´ ìžˆì–´ì„œ ë„ë• í‘œì¤€ì´ ì—¬ê°„ 높지 아니하였지요. 그런 시대니까 ë‚´ê°€ ë‚´ ì œìžì¸ 여학ìƒì„ ë°ë¦¬ê³  달아난다는 ê²ƒì€ ì‚´ì¸ ê°•ë„를 하는 ì´ìƒìœ¼ë¡œ 무서운 ì¼ì´ì—ˆì§€ìš”. ì§€ê¸ˆë„ ë‚˜ëŠ” 그렇게 ìƒê°í•©ë‹ˆë‹¤ë§ˆëŠ”. -그래서 우리 ë‘ ì‚¬ëžŒì€ ìš°ë¦¬ ë‘ ì‚¬ëžŒì´ë¼ëŠ” ê²ƒë³´ë‹¤ë„ ë‚´ ìƒê°ì—는 어찌하였으나 나를 위해서 ì œ ëª©ìˆ¨ì„ ë²„ë¦¬ë ¤ëŠ” ê·¸ì—게 사실 ë‚˜ë„ ë§ˆìŒ ì†ìœ¼ë¡œëŠ” 그를 사랑하였지요. 다만 사제간ì´ë‹ˆê¹Œ ì˜ì›ížˆ 달할 수는 없는 사랑ì´ë¼ê³  단ë…í•˜ì˜€ì„ ë¿ì´ì§€ìš”. 그러니까 ë¹„ë¡ ë¶€ì²˜ ìƒí™œì€ 못 하ë”ë¼ë„ ë‚´ê°€ ê·¸ì˜ ì‚¬ëž‘ì„ ì•ˆë‹¤ëŠ” 것과 ë‚˜ë„ ê·¸ë¥¼ ì´ë§Œí¼ 사랑한다는 ê²ƒë§Œì„ ë³´ì—¬ 주ìžëŠ” 것ì´ì§€ìš”. -때는 마침 ê°€ì„ì´ì§€ë§ˆëŠ”, ëª¸ì— ì§€ë‹Œ ëˆë„ 얼마 없고 천신만고로 길림까지를 나와 가지고는 배를 타고 ì†¡í™”ê°•ì„ ë‚´ë ¤ì„œ í•˜ì–¼ë¹ˆì— ê°€ 가지고 ê±° 기서 간신히 ì¹˜íƒ€ê¹Œì§€ì˜ ì—¬ë¹„ì™€ ì—¬í–‰ê¶Œì„ ì–»ì–´ 가지고 차를 타고 떠나지 않았어요. ê·¸ê²ƒì´ ë°”ë¡œ ì‹­ì—¬ ë…„ ì „ 오늘ì´ëž€ ë§ì´ì˜¤." -ì´ ë•Œì— ë¶€ì¸ì´ 옥수수로 만든 국수와 ê°ìž ì‚¶ì€ ê²ƒì„ ê°€ì§€ê³  들어오오. -나는 Rì˜ ë§ì„ ë“£ë˜ ëì´ë¼ 유심히 부ì¸ì„ ë°”ë¼ë³´ì•˜ì†Œ. 그는 중키나 ë˜ëŠ” 둥근 ì–¼êµ´ì´ í˜ˆìƒ‰ì´ ì¢‹ê³  통통하여 미ì¸ì´ë¼ê¸°ë³´ë‹¤ëŠ” 씩씩한 ì—¬ìžìš”. 그런 ì¤‘ì— ì¡°ì„  ì—¬ìžë§Œì´ 가지는 아담하고 ì ìž–ì€ ë§›ì´ ìžˆì†Œ. -"앉으시지요. 지금 ë‘ ë¶„ê»˜ì„œ ì²˜ìŒ ì‚¬ëž‘í•˜ì‹œë˜ ë§ì”€ì„ 듣고 있습니다." -하고 나는 부ì¸ì—게 êµì˜ë¥¼ 권하였소. -"ì•„ì´, 그런 ë§ì”€ì€ 왜 하시오." -하고 부ì¸ì€ ê°‘ìžê¸° ì‹­ ë…„ì´ë‚˜ 어려지는 모양으로 수삽한 ë¹›ì„ ë³´ì´ê³  고개를 숙ì´ê³  달아나오. -"그래서요. 그래 ì˜¤ëŠ˜ì´ ê¸°ë…ì¼ì´ì™¸ë‹¤ê·¸ë ¤." -하고 ë‚˜ë„ ì›ƒì—ˆì†Œ. -"그렇지요. 우리는 해마다 ì˜¤ëŠ˜ì´ ì˜¤ë©´ 우리 무ë¤ì— 성묘를 가서 í•˜ë£»ë°¤ì„ ìƒˆìš°ì§€ìš”. ì˜¤ëŠ˜ì€ ì†ë‹˜ì´ 오셔서 ì¤‘ê°„ì— ëŒì•„왔지만, 하하하하." -하고 그는 유쾌하게 웃소. -"성묘ë¼ë‹ˆ?" -하고 나는 물었소. -"아까 ë³´ì‹  ë‘ ë³„ ë¬´ë¤ ë§ì´ì˜¤. ê·¸ê²ƒì´ ìš°ë¦¬ ë‚´ì™¸ì˜ ë¬´ë¤ì´ì§€ìš”. 하하하하." -"…………." -나는 ì˜ë¬¸ì„ 모르고 가만히 앉았소. -"ë‚´ ì´ì•¼ê¸°ë¥¼ 들으시지요. 그래 둘ì´ì„œ 차를 타고 오지 않았겠어요. 물론 여전히 ì„ ìƒë‹˜ê³¼ ì œìžì§€ìš”. 그렇지만 워낙 여러 ë‚  단둘ì´ì„œ ê°™ì´ ê³ ìƒì„ 하고 ì—¬í–‰ì„ í–ˆìœ¼ë‹ˆ ì‚¬ëž‘ì˜ ë¶ˆê¸¸ì´ íƒˆ 것ì´ì•¼ 물론 아니겠어요. 다만 사제ë¼ëŠ” êµ³ì€ ì˜ë¦¬ê°€ ê·¸ê²ƒì„ ê²‰ì— ë‚˜ì˜¤ì§€ 못하ë„ë¡ ëˆ„ë¥¸ 것ì´ì§€ìš”. â€¦â€¦ê·¸ëŸ°ë° ê¼­ ì˜¤ëŠ˜ê°™ì´ ì¢‹ì€ ë‚ ì¸ë° 여기는 대개 ì¼ê¸°ê°€ ì¼ì •í•©ë‹ˆë‹¤. 좀체로 비가 오는 ì¼ë„ 없고 í리는 ë‚ ë„ ì—†ì§€ìš”. í—Œë° Fì—­ì—를 오니까 ì°¸ ì„ì–‘ 경치가 좋단 ë§ì´ì˜¤. ê·¸ ë•Œì— ë¶ˆí˜„ë“¯, ì—ë¼ ì—¬ê¸°ì„œ 내려서 ì´ ì„ì–‘ ì†ì— ì € 호숫 ê°€ì— ë‘˜ì´ì„œ 헤매다가 깨ë—ì´ ì‚¬ì œì˜ ëª¸ìœ¼ë¡œ ì´ ê¹¨ë—í•œ ê´‘ì•¼ì— ë¬»í˜€ ë²„ë¦¬ìž í•˜ëŠ” ìƒê°ì´ 나겠지요. 그래 ê·¸ ë•Œ ë§ì„ ë‚´ ì•„ë‚´ ê·¸ ë•Œì—는 ì•„ì§ ì•„ë‚´ê°€ 아니지요 ë‚´ ì•„ë‚´ì—게 그런 ë§ì„ 하였ë”니 ì°¸ 좋다고 ë°•ìž¥ì„ í•˜ê³  ë‚´ ì–´ê¹¨ì— ë§¤ë‹¬ë¦¬ëŠ”êµ¬ë ¤. 그래서 우리 ë‘˜ì€ ì°¨ê°€ ê±°ì˜ ë– ë‚  ìž„ë°•í•´ì„œ ì°¨ì—ì„œ 뛰어내렸지요." -하고 그는 그때 ê´‘ê²½ì„ ëˆˆì•žì— ê·¸ë¦¬ëŠ” 모양으로 ë§ì„ ëŠê³  ìš°ë‘커니 í—ˆê³µì„ ë°”ë¼ë³´ì˜¤. 그러나 ê·¸ì˜ ìž… 언저리ì—는 유쾌한 회고ì—ì„œ 나오는 웃ìŒì´ì—ˆì†Œ. -"ì´ì•¼ê¸° 다 ë났어요?" -하고 부ì¸ì´ í¬ë°”스ë¼ëŠ” 청량 ìŒë£Œë¥¼ 들고 들어오오. -"아니오. ì´ì œë¶€í„°ê°€ 정통ì´ë‹ˆ ë‹¹ì‹ ë„ ê±°ê¸° 앉으시오. 지금 ì°¨ì—ì„œ 내린 ë°ê¹Œì§€ ì™”ëŠ”ë° ë‹¹ì‹ ë„ ì•‰ì•„ì„œ í•œ 파트를 맡으시오." -하고 R는 부ì¸ì˜ ì†ì„ ìž¡ì•„ì„œ ìžë¦¬ì— 앉히오. 부ì¸ë„ 웃으면서 앉소. -"최 ì„ ìƒ ì²˜ì§€ê°€ ê¼­ 나와 같단 ë§ìš”. ì •ìž„ì˜ ì²˜ì§€ê°€ 당신과 같고." -하고 그는 ë§ì„ 계ì†í•˜ì˜¤. -"그래 ì°¨ì—ì„œ 내려서 나는 ì´ ì–‘ë°˜í•˜ê³  ë¬¼ì„ ì°¾ì•„ 헤매었지요. ì•„ë”°, ì„ì–‘ì´ ì–´ë–»ê²Œ 좋ì€ì§€ ì´ ì–‘ë°˜ì€ ë°•ìž¥ì„ í•˜ê³  노래를 부르고 우리 ë‘˜ì€ ë§ˆì¹˜ 유쾌하게 산보하는 사람 같았지요." -"ì°¸ 좋았어요. ê·¸ ë•Œì—는 ì°¸ 좋았어요. ê·¸ ì„ì–‘ì— ë¹„ì¹œ 광야와 호수ë¼ëŠ” ê±´ 어떻게 좋ì€ì§€ ê·¸ ìˆ˜ì€ ê°™ì€ ë¬¼ ì†ì— 텀벙 뛰어들고 싶었어요. ê·¸ 후엔 해마다 ë³´ì•„ë„ ê·¸ë§Œ 못해." -하고 부ì¸ì´ ì°¸ê²¬ì„ í•˜ì˜¤. -ì•„ì´ë“¤ì€ 다 ìžëŠ” 모양ì´ì˜¤. -"그래 ì§€í–¥ì—†ì´ í—¤ë§¤ëŠ”ë° í•´ëŠ” 뉘엿뉘엿 넘어가구, ì–´ìŠ¤ë¦„ì€ ê¸°ì–´ë“¤ê³  ê·¸ ë•Œ 마침 하늘ì—는 별 ë‘˜ì´ ë‚˜íƒ€ë‚¬ë‹¨ ë§ì´ì•¼. ê·¸ê²ƒì„ ì´ ì—¬í•™ìƒì´ 먼저 ë³´ê³ ì„œ ê°‘ìžê¸° 추연해지면서 ì„ ìƒë‹˜ ì € 별 보셔요, ì•žì„  í° ë³„ì€ ì„ ìƒë‹˜ì´ 구 ë”°ë¼ê°€ëŠ” ìž‘ì€ ë³„ì€ ì €ì•¼ìš”, 하겠지요. ê·¸ ë§ì´, ë˜ ê·¸ 태ë„ê°€ 어떻게 가련한지. 그래서 나는 í•˜ëŠ˜ì„ ë°”ë¼ë³´ë‹ˆê¹ 과연 별 ë‘ ê°œê°€ 지는 해를 따르는 ë“¯ì´ ë”°ë¼ê°„다 ë§ìš”. ë§ì„ 듣고 보니 과연 우리 ì‹ ì„¸ì™€ë„ ê°™ì§€ ì•Šì•„ìš”? -그리고는 ì´ ì‚¬ëžŒì´ ë˜ ì´ëŸ½ë‹ˆë‹¤ê·¸ë ¤ `ì„ ìƒë‹˜, ì•žì„  í° ë³„ì€ ì•„ë¬´ë¦¬ ë”°ë¼ë„ ì € ìž‘ì€ ë³„ì€ ì˜ì›ížˆ ë”°ë¼ìž¡ì§€ 못하겠지요. ì˜ì›ížˆ ì˜ì›ížˆ ë”°ë¼ê°€ë‹¤ê°€ ë”°ë¼ê°€ë‹¤ê°€ 못 í•´ì„œ 마침내는 ì € ìž‘ì€ ë³„ì€ ì£½ì–´ì„œ ê²€ì€ ìž¬ê°€ ë˜ê³  ë§ê² ì§€ìš”? ì € ìž‘ì€ ë³„ì´ ì œ 신세와 어쩌면 그리 ê°™ì„까.' 하고 í•œíƒ„ì„ í•˜ê² ì§€ìš”. ê·¸ ë•Œì— í•œíƒ„ì„ í•˜ê³  ëˆˆë¬¼ì„ í˜ë¦¬ê³  섰는 어린 ì²˜ë…€ì˜ ì„ì–‘ë¹›ì— ë¹„ì·¬ ëª¨ì–‘ì„ ìƒìƒí•´ 보세요, 하하하하. ê·¸ ë•Œì—는 ë‹¹ì‹ ë„ ë¯¸ì¸ì´ì—ˆì†Œ. 하하하하." -하고 내외가 유쾌하게 웃는 ê²ƒì„ ë³´ë‹ˆ 나는 ë”ìš± ì ë§‰í•˜ì—¬ì§ì„ 깨달았소. 어쩌면 ê·¸ ì„ì–‘, ê·¸ ë‘ ë³„ì´ ì´ë“¤ì—게와 내게 ê¼­ ê°™ì€ ì¸ìƒì„ 주었ì„까 하니 참으로 ì´ìƒí•˜ë‹¤ 하였소. -"그래 ì¸ì œ." -하고 R는 다시 ì´ì•¼ê¸°ë¥¼ 계ì†í•˜ì˜¤. -"그래 ì¸ì œ 둘ì´ì„œ 그야ë§ë¡œ ê°ê°œë¬´ëŸ‰í•˜ê²Œ ë‘ ë³„ì„ ë°”ë¼ë³´ë©° 걸었지요. 그러다가 í•´ê°€ 넘어가고 ì•žì„  í° ë³„ì´ ë„˜ì–´ê°€ê³  그리고는 혼ìžì„œ 깜빡깜빡하고 ê°€ë˜ ìž‘ì€ ë³„ì´ ë„˜ì–´ê°€ë‹ˆ 우리는 그만 ë•…ì— ì£¼ì €ì•‰ì•˜ì†Œ. 거기가 어딘고 하니 ê·¸ ë‘ ë³„ 무ë¤ì´ 있는 ê³³ì´ì§€ìš”. `ì„ ìƒë‹˜ 저를 여기다가 파묻어 주시고 가셔요. ì„ ìƒë‹˜ ì†ìˆ˜ 저를 여기다가 묻어 놓고 ê°€ 주셔요.' 하고 ì´ ì‚¬ëžŒì´ ì¡°ë¥´ì§€ìš”." -하는 ê²ƒì„ ë¶€ì¸ì€, -"ë‚´ê°€ 언제." -하고 ë‚¨íŽ¸ì„ í˜ê²¨ë³´ì˜¤. -"그럼 무ì—ë¼ê³  했소? ì–´ë”” 본ì¸ì´ í•œ 번 옮겨 보오." -하고 Rê°€ ë§ì„ ëŠì†Œ. -"ê°„ë„를 ë– ë‚œ 지가 í•œ ë‹¬ì´ ë˜ë„ë¡ ë‹¨ë‘˜ì´ ë‹¤ë…€ë„ ìš”ë§Œí¼ë„ 귀해 주는 ì ì´ 안 뵈니 그럼 파묻어 달ë¼ê³  안 í•´ìš”?" -하고 부ì¸ì€ 웃소. -"í¥í¥." -하고 R는 부ì¸ì˜ ë§ì— 웃고 나서, -"ê·¸ ìžë¦¬ì— 묻어 달란 ë§ì„ 들으니까, 어떻게 측ì€í•œì§€, 그럼 ë‚˜ë„ í•¨ê»˜ 묻히ìžê³  그랬지요. 나는 ê·¸ ë•Œì— ì°¸ë§ ê·¸ ìžë¦¬ì— 함께 묻히고 싶었어요. 그래서 나는 ì†ìœ¼ë¡œ 곧 구ë©ì´ë¥¼ 팠지요. 떡가루 ê°™ì€ ëª¨ëž˜íŒì´ë‹ˆê¹Œ 파기는 íž˜ì´ ì•„ë‹ˆ 들겠지요. ì´ì´ë„ 물ë„러미 ë‚´ê°€ ë•…ì„ íŒŒëŠ” ê²ƒì„ ë³´ê³  ì„°ë”니만 ìžê¸°ë„ 파기를 시작하겠지요." -하고 내외가 다 웃소. -"그래 순ì‹ê°„ì—……." -하고 R는 ì´ì•¼ê¸°ë¥¼ 계ì†í•˜ì˜¤. -"순ì‹ê°„ì— ë‘˜ì´ ë“œëŸ¬ëˆ„ìš¸ 만한 구ë©ì´ë¥¼ 아마 ë‘ ìž ê¹Šì´ë‚˜ ë˜ê²Œ, 네모나게 파 놓고는 ë‚´ê°€ 들어가 누워 ë³´ê³  그러고는 ë˜ íŒŒê³  하여 아주 편안한 구ë©ì´ë¥¼ 파고 나서는 나는 아주 세ìƒì„ 하ì§í•  셈으로 ì‚¬ë°©ì„ ë‘˜ëŸ¬ë³´ ê³  사방ì´ëž˜ì•¼ ì»´ì»´í•œ ì–´ë‘ ë°–ì— ì—†ì§€ë§Œ ì‚¬ë°©ì„ ë‘˜ëŸ¬ë³´ê³ , ì´ë¥¼í…Œë©´ 세ìƒê³¼ ìž‘ë³„ì„ í•˜ê³  드러누웠지요. 지금 ì´ë ‡ê²Œ íšŒê³ ë‹´ì„ í•  ë•Œì—는 ìš°ìŠµê¸°ë„ í•˜ì§€ë§ˆëŠ” ê·¸ ë•Œì—는 참으로 종êµì ì´ë¼ í•  만한 엄숙ì´ì—ˆì†Œ. 그때 우리 ë‘˜ì˜ ì²˜ì§€ëŠ” ì•žë„ ì ˆë²½, ë’¤ë„ ì ˆë²½ì´ì–´ì„œ 죽는 ê¸¸ë°–ì— ì—†ì—ˆì§€ìš”. ë˜ ê·¸ë¿ ì•„ë‹ˆë¼ ì¸ìƒì˜ 가장 깨ë—하고 가장 ì‚¬ëž‘ì˜ ë§‘ì€ ì •ì´ íƒ€ê³  가장 기ì˜ê³ ë„ ìŠ¬í”„ê³ ë„ ì´ë¥¼í…Œë©´ 모든 ê°ì •ì´ ì ˆì •ì— ë‹¬í•˜ê³ , 그러한 ìˆœê°„ì— ëª©ìˆ¨ì„ ëŠì–´ 버리는 ê²ƒì´ ê°€ìž¥ ì¢‹ì€ ì¼ì´ìš”, 가장 마땅한 ì¼ê°™ì´ ìƒê°í•˜ì˜€ì§€ìš”. ê´‘ì•¼ì— ì•„ë¦„ë‹¤ìš´ í™©í˜¼ì´ ìˆœê°„ì— ìŠ¤ëŸ¬ì§€ëŠ” 모양으로 우리 ë‘ ìƒëª…ì˜ ì•„ë¦„ë‹¤ì›€ë„ ìˆœê°„ì— ìŠ¤ëŸ¬ì§€ìžëŠ” 우리는 ì² í•™ìžë„ ì‹œì¸ë„ 아니지마는 ìš°ë¦¬ë“¤ì˜ í™˜ê²½ì´ ìš°ë¦¬ 둘ì—게 그러한 ìƒê°ì„ 넣어 준 것ì´ì§€ìš”. -그래서 ë‚´ê°€ 가만히 드러누워 있는 ê²ƒì„ ì €ì´ê°€ 물ë„러미 ë³´ê³  있ë”니 ìžê¸°ë„ ë‚´ ê³ì— 들어와 눕겠지요. 그런 ë’¤ì—는 í™©í˜¼ì— ë‚¨ì€ ë¹›ë„ ë‹¤ 스러지고 아주 캄캄한 ì•”í‘ ì„¸ê³„ê°€ ë˜ì–´ 버렸지요. í•˜ëŠ˜ì— ì–´ë–»ê²Œ 그렇게 ë³„ì´ ë§Žì€ì§€. 가만히 í•˜ëŠ˜ì„ ë°”ë¼ë³´ë…¸ë¼ë©´ ì°¸ ë³„ì´ ë§Žì•„ìš”. 우주란 ì°¸ 커요. ê·¸ëŸ°ë° ì´ ëì—†ì´ í° ìš°ì£¼ì— í•œì—†ì´ ë§Žì€ ë³„ë“¤ì´ ë‹¤ ì œìžë¦¬ë¥¼ 지키고 ì œ ê¸¸ì„ ì§€ì¼œì„œ 서로 ë¶€ë”ªì§€ë„ ì•„ë‹ˆí•˜ê³  ëì—†ì´ ê¸´ ì‹œê°„ì— ì§ˆì„œë¥¼ 유지하고 있는 ê²ƒì„ ë³´ë©´ 우주ì—는 ì–´ë–¤ 주재하는 뜻, 섭리하는 ëœ»ì´ ìžˆë‹¤ 하는 ìƒê°ì´ 나겠지요. ë‚˜ë„ ì˜ˆìˆ˜êµì¸ì˜ 가정ì—ì„œ ìžë¼ë‚¬ì§€ë§ˆëŠ” ì´ ë•Œì²˜ëŸ¼ 하나님ì´ë¼ 할까 ì´ë¦„ì€ ë¬´ì—‡ì´ë¼ê³  하든지 ê°„ì— ìš°ì£¼ì˜ ì„­ë¦¬ìžì˜ 존재를 강렬하게 ì˜ì‹í•œ ì¼ì€ 없었지요. -그렇지만 `ì‚¬ëžŒì˜ ë§ˆìŒì— 비기면 저까짓 ë³„ë“¤ì´ ë‹¤ 무엇ì´ì˜¤?' 하고 그때 겨우 ì—´ì—¬ëŸ ì‚´ë°–ì— ì•ˆ ëœ ì´ì´ê°€ ë‚´ ê·€ì— ìž…ì„ ëŒ€ê³  ë§í•  ë•Œì—는 ë‚˜ë„ ì°¸ìœ¼ë¡œ 놀ëžìŠµë‹ˆë‹¤. 나ì´ëŠ” 나보다 오륙 ë…„ ìƒê´€ë°–ì— ì•ˆ ë˜ì§€ë§ˆëŠ” ì´ì‹­ 세 ë‚´ì™¸ì— ì˜¤ë¥™ ë…„ ìƒê´€ì´ ì ì€ 것ì¸ê°€ìš”? 게다가 나는 ì„ ìƒì´ìš” ìžê¸°ëŠ” í•™ìƒì´ë‹ˆê¹Œ 어린애로만 ì•Œì•˜ë˜ ê²ƒì´ ê·¸ëŸ° ë§ì„ 하니 놀ëžì§€ ì•Šì•„ìš”? 어째서 ì‚¬ëžŒì˜ ë§ˆìŒì´ í•˜ëŠ˜ë³´ë‹¤ë„ ë” ì´ìƒí• ê¹Œ 하고 ë‚´ê°€ 물으니까, ê·¸ ëŒ€ë‹µì´ `나는 무엇ì´ë¼ê³  설명할 수가 없지마는 ë‚´ ë§ˆìŒ ì†ì— ì¼ì–´ë‚˜ëŠ” ê²ƒì´ í•˜ëŠ˜ì´ë‚˜ ë•…ì— ì¼ì–´ë‚˜ëŠ” 모든 ê²ƒë³´ë‹¤ë„ ë” ì•„ë¦„ë‹µê³  ë” ì•Œ 수 없고 ë” ëœ¨ê²ê³  그런 것 같아요.' 그러겠지요. ìƒëª…ì´ëž€ 모든 아름다운 것 ì¤‘ì— ê°€ìž¥ 아름다운 것ì´ë¼ëŠ” ê²ƒì„ ë‚˜ëŠ” 깨달았어요. ê·¸ ë§ì—, `그렇다 하면 ì´ ì•„ë¦„ë‹µê³  신비한 ìƒëª…ì„ ë‚´ëŠ” 우주는 ë” ì•„ë¦„ë‹¤ìš´ ê²ƒì´ ì•„ë‹ˆì˜¤?' 하고 ë‚´ê°€ 반문하니까, 당신(부ì¸ì„ 향하여) ë§ì´, `ì „ 모르겠어요, 어쨌으나 ì „ 행복합니다. 저는 ì´ í–‰ë³µì„ ê¹¨ëœ¨ë¦¬ê³  싶지 않습니다. ë†“ì³ ë²„ë¦¬ê³  싶지 않습니다. ì´ í–‰ë³µ ì„ ìƒë‹˜ ê³ì— 있는 ì´ í–‰ë³µì„ ê½‰ 안고 죽고 싶어요.' 그러지 않았소?" -"누가 그랬어요? ì•„ì´ ë‚œ 다 잊어버렸어요." -하고 부ì¸ì€ 차를 따르오. R는 ì¸ì œëŠ” 하하하 하는 웃ìŒì¡°ì°¨ 잊어버리고, 부ì¸ì—게 ë†ë‹´ì„ 붙ì´ëŠ” 것조차 잊어버리고, 그야ë§ë¡œ 종êµì  엄숙 그대로ë§ì„ ì´ì–´, -"`ìž ì €ëŠ” ì•½ì„ ë¨¹ì–´ìš”.' 하고 ì†ì„ 입으로 가져가는 ë™ìž‘ì´ ê°í–‰ë˜ê² ì§€ìš”. 약ì´ëž€ ê²ƒì€ í•˜ì–¼ë¹ˆì—ì„œ 준비한 아편ì´ì§€ìš”. 하얼빈서 치타까지 가는 ë™ì•ˆì— í¥ì•ˆë ¹ì´ë‚˜ ì–´ëŠ ì‚¼ë¦¼ì§€ëŒ€ë‚˜ 어디서나 ì£½ì„ ìžë¦¬ë¥¼ ì°¾ìžê³  준비한 것ì´ë‹ˆê¹Œ. 나는 ìž… 근처로 가는 ê·¸ì˜ ì†ì„ 붙들었어요. 붙들면서 나는 `ìž ê¹ë§Œ 기다리오. 오늘 ë°¤ 안으로 ê·¸ ì•½ì„ ë¨¹ìœ¼ë©´ ê³ ë§Œì´ ì•„ë‹ˆì˜¤? ì´ í–‰ë³µëœ ìˆœê°„ì„ ìž ê¹ì´ë¼ë„ 늘립시다. 달 올ë¼ì˜¬ 때까지만.' 나는 ì´ë ‡ê²Œ ë§í–ˆì§€ìš”. `ì„ ìƒë‹˜ë„ 행복ë˜ì…”ìš”? ì„ ìƒë‹˜ì€ 불행ì´ì‹œì§€. ì € ë•Œë¬¸ì— ë¶ˆí–‰ì´ì‹œì§€. 저만 ì´ê³³ì— 묻어 주시구는 ì„ ìƒë‹˜ì€ 세ìƒì— ëŒì•„ê°€ 사셔요, 오래오래 사셔요, ì¼ ë§Žì´ í•˜ê³  사셔요.' 하고 울지 ì•Šê² ì–´ìš”. 나는 ê·¸ ë•Œì— ë‚´ ì•„ë‚´ê°€ í•˜ë˜ ë§ì„ í•œ ë§ˆë””ë„ ìžŠì§€ 아니합니다. ê·¸ ë§ì„ ë“£ë˜ ë•Œì˜ ë‚´ ì¸ìƒì€ 아마 ì¼ìƒ ë‘ê³  잊히지 아니하겠지요. -나는 ìžë°±í•©ë‹ˆë‹¤. ê·¸ ìˆœê°„ì— ë‚˜ëŠ” 처ìŒìœ¼ë¡œ ë‚´ 아내를 안고 키스를 하였지요. ë‚´ ì†ì— 눌리고 눌리고 쌓ì´ê³  í•˜ì˜€ë˜ ì—´ì •ì´ ê·¸ë§Œ ì¼ì‹œì— í­ë°œë˜ì—ˆë˜ 것ì´ì˜¤. ì•„ì•„ ì´ê²ƒì´ ìµœì´ˆì˜ ê²ƒì´ìš”, ë™ì‹œì— ìµœí›„ì˜ ê²ƒì´ë¡œêµ¬ë‚˜ í•  ë•Œì— ë‚´ 눈ì—서는 ë“는 듯한 ëˆˆë¬¼ì´ í˜ë €ì†Œì´ë‹¤. ë‘ ì‚¬ëžŒì˜ ì‹¬ìž¥ì´ ë›°ëŠ” 소리, ë‘ ì‚¬ëžŒì˜ í’€ë¬´ 불길 ê°™ì€ ìˆ¨ì†Œë¦¬. -ì´ìœ½ê³  ë‹¬ì´ ë– ì˜¬ë¼ ì™”ìŠµë‹ˆë‹¤. ê°€ì´ì—†ëŠ” 벌íŒì´ë‹ˆê¹Œ ë‹¬ì´ ëœ¨ë‹ˆê¹Œ ê°‘ìžê¸° 천지가 환해지고 우리 ë‘˜ì´ ì†ìœ¼ë¡œ 파서 쌓아 ë†“ì€ í™ë¬´ë”기가 ì´ ì‚° 없는 세ìƒì— ì‚°ì´ë‚˜ ë˜ëŠ” ê²ƒê°™ì´ ì¡°ê·¸ë§ˆí•œ ê²€ì€ ê·¸ë¦¼ìžë¥¼ 지고 있겠지요. `ìž ìš°ë¦¬ ë‹¬ë¹›ì„ ë ê³  좀 ëŒì•„다ë‹ê¹Œ.' 하고 나는 아내를 안아 ì¼ìœ¼ì¼°ì§€ìš”. ë‚´ íŒ”ì— ì•ˆê²¨ì„œ 고개를 뒤로 젖힌 ë‚´ ì•„ë‚´ì˜ ì–¼êµ´ì´ ë‹¬ë¹›ì— ë¹„ì¹œ ì–‘ì„ ë‚˜ëŠ” 잘 기억합니다. 실신한 듯한, 만족한 듯한, ê·¸ë¦¬ê³ ë„ ì ˆë§í•œ 듯한 ê·¸ í‘œì •ì„ ë¬´ì—‡ìœ¼ë¡œ 그릴지 모릅니다. ê·¸ë¦¼ë„ ê·¸ë¦´ 줄 모르고 ì¡°ê°ë„ í•  줄 모르고 ê¸€ë„ ì“¸ 줄 모르는 ë‚´ê°€ ê·¸ê²ƒì„ ì–´ë–»ê²Œ 그립니까. 그저 가슴 ì†ì— 품고 ì´ë ‡ê²Œ ì˜¤ëŠ˜ì˜ ë‚´ 아내를 ë°”ë¼ë³¼ ë¿ì´ì§€ìš”. -나는 ë‚´ 아내를 íŒ”ì— ê±¸ê³  네, 걸었다고 하는 ê²ƒì´ ê°€ìž¥ 합당하지 ìš” ì´ë ‡ê²Œ 팔ì—다 걸고 ë‹¬ë¹›ì„ ë°›ì€ í™©ëŸ‰í•œ 벌íŒ, 아무리 í•˜ì—¬ë„ í™˜í•˜ê²Œ ë°ì•„지지는 아니하는 벌íŒì„ 헤매었습니다. ì´ë”°ê¸ˆ ë‚´ ì•„ë‚´ê°€, `ì–´ì„œ 죽고 싶어요, ì „ 죽고만 싶어요.' 하는 ë§ì—는 ëŒ€ë‹µë„ ì•„ë‹ˆ 하고. 죽고 싶다는 ê·¸ ë§ì€ 물론 ì§„ì •ì¼ ê²ƒì´ì§€ìš”. 아무리 ë§‘ì€ ì¼ê¸°ë¼ 하ë”ë¼ë„ 오후가 ë˜ë©´ í려지는 법ì´ë‹ˆê¹Œ 오래 살아가는 ë™ì•ˆì— 늘 í•œ 모양으로 ì´ ìˆœê°„ê°™ì´ ê¹¨ë—하고 뜨거운 기분으로 ê°ˆ 수는 없지 ì•Šì•„ìš”? 불쾌한 ì¼ë„ ìƒê¸°ê³ , 보기 í‰í•œ ì¼ë„ ìƒê¸¸ëŠ”지 모르거든. 그러니까 ì´ ì™„ì „í•œ 깨ë—ê³¼ 완전한 사랑과 완전한 행복 ì†ì— 죽어 버리ìžëŠ” ëœ»ì„ ë‚˜ëŠ” 잘 알지요. ë”구나 ìš°ë¦¬ë“¤ì´ ì‚´ì•„ 남는대야 ì•žê¸¸ì´ ê¸°êµ¬í•˜ì§€ í‰íƒ„í•  리는 없지 아니해요? 그래서 나는 `죽지, 우리 ì´ ë‹¬ë°¤ì— ì‹¤ì»· ëŒì•„다니다가, ë” ëŒì•„다니기가 ì‹«ê±°ë“  ê·¸ 구ë©ì— ëŒì•„가서 ì•½ì„ ë¨¹ì시다.' ì´ë ‡ê²Œ ë§í•˜ê³  우리 ë‘˜ì€ í—¤ë§¸ì§€ìš”. ë‚®ì— ë³´ë©´ 어디까지나 í‰í‰í•œ 벌íŒì¸ 것만 같지마는 ë‹¬ë°¤ì— ë³´ë©´ ì´ ì‚¬ë§‰ì—ë„ ì•„ì§ ì±„ 스러지지 아니한 ì‚°ì˜ í˜•ì ì´ 남아 있어서 êµ°ë°êµ°ë° 거뭇거뭇한 그림ìžê°€ 있겠지요. ê·¸ ê·¸ë¦¼ìž ì†ì—는 걸어 들어가면 ì–´ë–¤ ë°ëŠ” 우리 í—ˆë¦¬ë§Œí¼ ê·¸ë¦¼ìžì— 가리우고 ì–´ë–¤ ë°ëŠ” 우리 ë‘˜ì„ ë‹¤ 가리워 버리는 ë°ë„ 있단 ë§ì•¼ìš”. 죽ìŒì˜ 그림ìžë¼ëŠ” ìƒê°ì´ 나면 ê·¸ëž˜ë„ ëª¸ì— ì†Œë¦„ì´ ë¼ì³ìš”. -차차 ë‹¬ì´ ë†’ì•„ì§€ê³  추위가 심해져서 ë°”ëžŒê²°ì´ ì§€ë‚˜ê°ˆ ë•Œì—는 눈ì—ì„œ ëˆˆë¬¼ì´ ë‚  지경ì´ì§€ìš”. ì›ì²´ 대기 ì¤‘ì— ìˆ˜ë¶„ì´ ì ìœ¼ë‹ˆê¹Œ ì„œë¦¬ë„ ë§Žì§€ 않지마는, ê·¸ëž˜ë„ ëŒ€ê¸° ì¤‘ì— ìžˆëŠ” ìˆ˜ë¶„ì€ ë‹¤ 얼어 버려서 ì–¼ìŒê°€ë£¨ê°€ ë˜ì—ˆëŠ” 게지요. 공중ì—는 ë°˜ì§ë°˜ì§í•˜ëŠ” 수정가루 ê°™ì€ ê²ƒì´ ë³´ìž…ë‹ˆë‹¤. ë‚®ì—는 ë•€ì´ íë¥´ë¦¬ë§Œí¼ ë¥ë˜ ì‚¬ë§‰ë„ ë°¤ì´ ë˜ë©´ ì´ë ‡ê²Œ ê¸°ì˜¨ì´ ë‚´ë ¤ê°€ì§€ìš”. 춥다고 ìƒê°ì€ í•˜ë©´ì„œë„ ì¶¥ë‹¤ëŠ” ë§ì€ 아니 하고 우리는 ì–´ë–¤ ë•Œì—는 ë‹¬ì„ ë”°ë¼ì„œ, ì–´ë–¤ ë•Œì—는 ë‹¬ì„ ë“±ì§€ê³ , ì–´ë–¤ ë•Œì—는 í˜¸ìˆ˜ì— ë¹„ì¹œ ë‹¬ì„ êµ½ì–´ë³´ê³ , ì´ ëª¨ì–‘ìœ¼ë¡œ í•œì—†ì´ ë§ë„ ì—†ì´ ëŒì•„다녔지요. ì´ ì„¸ìƒ ìƒëª…ì˜ ë§ˆì§€ë§‰ ìˆœê°„ì„ íž˜ê» ì˜ì‹í•˜ë ¤ëŠ” 듯ì´. -마침내 `나는 ë” ëª» 걸어요.' 하고 ì´ì´ê°€ ë‚´ ì–´ê¹¨ì— ë§¤ë‹¬ë ¤ 버리고 ë§ì•˜ì§€ìš”." -하고 Rê°€ 부ì¸ì„ ëŒì•„보니 부ì¸ì€ íŽ¸ë¬¼í•˜ë˜ ì†ì„ 쉬고, -"다리가 아픈 ì¤„ì€ ëª¨ë¥´ê² ëŠ”ë° ë‹¤ë¦¬ê°€ ì´ë¦¬ 뉘구 저리 뉘구 í•´ì„œ 걸ìŒì„ ê±¸ì„ ìˆ˜ê°€ 없었어요. 춥기는 하구." -하고 소리를 ë‚´ì–´ì„œ 웃소. -"그럴 ë§Œë„ í•˜ì§€." -하고 R는 긴장한 í‘œì •ì„ ì•½ê°„ 풀고 ì•‰ì€ ìžì„¸ë¥¼ ìž ê¹ ê³ ì¹˜ë©°, -"ê·¸ í›„ì— ê·¸ ë‚  ë°¤ ëŒì•„다닌 ê³³ì„ ë”듬어 보니까, ìžì„¸ížˆëŠ” ì•Œ 수 없지마는 삼십 리는 ë” ë˜ëŠ” 것 같거든. 다리가 아프지 아니할 리가 있나." -하고 차를 í•œ 모금 마시고 나서 ë§ì„ 계ì†í•˜ì˜¤. -"그래서 나는 ë‚´ 외투를 ë²—ì–´ì„œ, ì´ì´(부ì¸)를 싸서 어린애 ì•ˆë“¯ì´ ì•ˆê³  걸었지요. 외투로 쌌으니 ìžê¸°ë„ 춥지 않구, 나는 ë˜ ë¬´ê±°ìš´ ì§ì„ 안았으니 ë•€ì´ ë‚  지경ì´êµ¬, ê·¸ë¿ ì•„ë‹ˆë¼ ë‚´ê°€ 제게 주는 ìµœí›„ì˜ ì„œë¹„ìŠ¤ë¼ í•˜ë‹ˆ 기ì˜ê³ , ë§í•˜ìžë©´ ì¼ê±° 삼ë“ì´ì§€ìš”. 하하하하. 지난 ì¼ì´ë‹ˆ 웃지마는 ê·¸ ë•Œ ì‚¬ì •ì„ ìƒê°í•´ 보세요, 어떠했겠나." -하고 R는 약간 처참한 ë¹›ì„ ë ë©´ì„œ, -"그러니 ê·¸ 구ë©ì´ë¥¼ ì–´ë”” ì°¾ì„ ìˆ˜ê°€ 있나. 얼마를 찾아 ëŒì•„다니다가 아무 ë°ì„œë‚˜ ì£½ì„ ìƒê°ë„ í•´ 보았지마는 몸뚱ì´ë¥¼ 그냥 벌íŒì— 내놓고 죽고 싶지는 아니하고 ë˜ ê·¸ 구ë©ì´ê°€ 우리 ë‘ ì‚¬ëžŒì—게 특별한 ì˜ë¯¸ê°€ 있는 것 같아서 기어코 ê·¸ê²ƒì„ ì°¾ì•„ 내고야 ë§ì•˜ì§€ìš”. ê·¸ 때는 ë²Œì¨ ìƒˆë²½ì´ ê°€ê¹Œì› ë˜ ëª¨ì–‘ì´ì˜¤. ì—´ 시나 넘어서 뜬 í•˜í˜„ë‹¬ì´ ë‚®ì´ ê¸°ìš¸ì—ˆìœ¼ë‹ˆ 그렇지 ì•Šê² ì–´ìš”. ê·¸ 구ë©ì´ì— 와서 우리는 í•œ 번 ë” í•˜ëŠ˜ê³¼ 달과 별과, 그리고 ë§ˆìŒ ì†ì— 떠오른 사람들과 하ì§í•˜ê³  약 ë¨¹ì„ ì¤€ë¹„ë¥¼ 했지요. -ì•½ì„ ê²€ì€ ê³ ì•½ê³¼ ê°™ì€ ì•„íŽ¸ì„ ë§›ì´ ì“°ë‹¤ëŠ” ì•„íŽ¸ì„ ë¬¼ë„ ì—†ì´ ë¨¹ìœ¼ë ¤ 들었지요. -우리 ë‘˜ì€ ì•„ê¹Œ 모양으로 가지런히 누워서 í•˜ëŠ˜ì„ ë°”ë¼ë³´ì•˜ëŠ”ë° ë‹¬ì´ ë°ìœ¼ë‹ˆê¹Œ ë³´ì´ë˜ 별들 ì¤‘ì— ìˆ¨ì€ ë³„ì´ ë§Žê³  ë˜ ë³„ë“¤ì˜ ìœ„ì¹˜ 우리ì—게 낯ìµì€ ë¶ë‘칠성 ìžë¦¬ë„ ë³€í–ˆì„ ê²ƒ 아니야요. ì´ìƒí•œ ìƒê°ì´ 나요. 우리가 벌íŒìœ¼ë¡œ 헤매는 ë™ì•ˆì— 천지가 ëª¨ë‘ ë³€í•œ 것 같아요. 사실 변하였지요. ê·¸ 변한 ê²ƒì´ ìš°ìŠ¤ì›Œì„œ 나는 껄껄 웃었지요. 워낙 ë‚´ê°€ 웃ìŒì´ 좀 헤프지만 ì´ ë•Œì²˜ëŸ¼ 헤프게 실컷 웃어 본 ì¼ì€ 없습니다. -왜 웃ëŠëƒê³  ì•„ë‚´ê°€ 좀 ì„±ì„ ë‚¸ ë“¯ì´ ë¬»ê¸°ë¡œ, `천지와 ì¸ìƒì´ 변하는 ê²ƒì´ ìš°ìŠ¤ì›Œì„œ 웃었소.' 그랬지요. 그랬ë”니, `천지와 ì¸ìƒì€ 변할는지 몰ë¼ë„ ë‚´ 마ìŒì€ 안 변해요!' 하고 소리를 지르겠지요. í½ ë¶„ê°œí–ˆë˜ ëª¨ì–‘ì´ì•¼." -하고 R는 ê·¸ 아내를 보오. -"그럼 분개 안 í•´ìš”? ë‚¨ì€ ì£½ì„ ê²°ì‹¬ì„ í•˜ê³  발발 떨구 ìžˆëŠ”ë° ê³ì—ì„œ 껄껄거리고 웃으니, 어째 분하지가 ì•Šì•„ìš”. 나는 분해서 달아나려고 했어요." -하고 부ì¸ì€ ì•„ì§ë„ ë¶„í•¨ì´ ë‚¨ì€ ê²ƒê°™ì´ ë§í•˜ì˜¤. -"그래 달아나지 않았소?" -하고 R는 부ì¸ì´ 벌떡 ì¼ì–´ë‚˜ì„œ 비틀거리고 달아나는 í‰ë‚´ë¥¼ 팔과 다리로 ë‚´ê³  나서, -"ì´ëž˜ì„œ 죽는 ì‹œê°„ì´ ì§€ì²´ê°€ ë˜ì—ˆì§€ìš”. 그래서 ë‚´ê°€ 빌고 달래고 í•´ì„œ 가까스로 ì•ˆì •ì„ ì‹œí‚¤ê³  나니 ì†ì— ì¥ì—ˆë˜ ì•„íŽ¸ì´ ë•€ì— í‘¹ 젖었겠지요. ë‚´ê°€ ì›ƒì€ ê²ƒì€ ì£½ê¸° ì „ í•œ 번 천지와 ì¸ìƒì„ 웃어 버린 것ì¸ë° 그렇게 야단ì´ë‹ˆâ€¦â€¦ 하하하하." -R는 ì‹ì€ 차를 í•œ 모금 ë” ë§ˆì‹œë©°, -"ì°¸ ëª©ë„ ë§ˆë¥´ê¸°ë„ í•˜ë”니. ìž…ì—는 침 í•œ 방울 없고. 그러나 ëª»ë¬¼ì„ ë¨¹ì„ ìƒê°ë„ 없고. 나중ì—는 ë§ì„ 하려고 í•´ë„ í˜€ê°€ 안 ëŒì•„가겠지요. -ì´ëŸ¬ëŠ” ë™ì•ˆì— ë‹¬ë¹›ì´ í¬ë¯¸í•´ì§€ê¸¸ëž˜ 웬ì¼ì¸ê°€ 하고 고개를 ë²ˆì© ë“¤ì—ˆë”니 í•´ê°€ 떠오릅니다그려. 어떻게 붉고 둥글고 씩씩한지. `ì € í•´ 보오.' 하고 나는 기계ì ìœ¼ë¡œ 벌떡 ì¼ì–´ë‚˜ì„œ 구ë©ì´ì—ì„œ 뛰어나왔지요." -하고 빙그레 웃소. Rì˜ ë¹™ê·¸ë ˆ 웃는 ì–‘ì´ ì°¸ 좋았소. -"ë‚´ê°€ 뛰어나오는 ê²ƒì„ ë³´ê³  ì´ì´ë„ 뿌시시 ì¼ì–´ë‚¬ì§€ìš”. ê·¸ í•´! ê·¸ í•´ì˜ ìƒˆ ë¹›ì„ ë°›ëŠ” 하늘과 ë•…ì˜ ë¹›! 나는 ê·¸ê²ƒì„ í˜•ìš©í•  ë§ì„ 가지지 못합니다. 다만 íž˜ê» ì†Œë¦¬ì¹˜ê³  싶고 ê¸°ìš´ê» ë‹¬ìŒë°•ì§ˆì¹˜ê³  ì‹¶ì€ ìƒê°ì´ ë‚  ë¿ì´ì–´ìš”. -`우리 삽시다, 죽지 ë§ê³  삽시다, ì‚´ì•„ì„œ 새 세ìƒì„ 하나 만들어 봅시다.' ì´ë ‡ê²Œ ë§í•˜ì˜€ì§€ìš”. 하니까 ì´ì´ê°€ 처ìŒì—는 ê¹œì§ ë†€ë¼ëŠ” 것 같아요. 그러나 마침내 ì•„ë‚´ë„ ì£½ì„ ëœ»ì„ ë³€í•˜ì˜€ì§€ìš”. 그래서 남 ì„ ìƒì„ 청하여다가 ê·¸ ë§ì”€ì„ 여쭈었ë”니 남 ì„ ìƒê»˜ì„œ 고개를 ë„ë•ë„ë•í•˜ì‹œê³  우리 ë‘˜ì˜ í˜¼ì¸ ì£¼ë¡€ë¥¼ 하셨지요. ê·¸ 후 ì‹­ì—¬ ë…„ì— ìš°ë¦¬ëŠ” ë°­ 갈고 ì•„ì´ ê¸°ë¥´ê³  ì´ëŸ° ìƒí™œì„ 하고 ìžˆëŠ”ë° ì–¸ì œë‚˜ 여기 새 ë¯¼ì¡±ì´ ìƒê¸°ê³  누가 새 ë‹¨êµ°ì´ ë ëŠ”지요. 하하하하, 아하하하. 피곤하시겠습니다. ì´ì•¼ê¸°ê°€ 너무 길어서." -하고 R는 ë§ì„ ëŠì†Œ. -나는 R부처가 만류하는 ê²ƒë„ ë‹¤ 뿌리치고 여관으로 ëŒì•„왔소. R와 함께 달빛 ì†, ê°œ 짖는 소리 ì†ì„ 지나서 ì•„ë¼ì‚¬ ì‚¬ëžŒì˜ ì¡°ê·¸ë§ˆí•œ 여관으로 ëŒì•„왔소. 여관 주ì¸ë„ R를 아는 모양ì´ì–´ì„œ 반갑게 ì¸ì‚¬í•˜ê³  ë˜ ë‚´ê²Œ 대한 부íƒë„ 하는 모양ì¸ê°€ 보오. -R는 ë‚´ ë°©ì— ì˜¬ë¼ì™€ì„œ ë‚´ì¼ í•˜ë£¨ 지날 ì¼ë„ ì´ì•¼ê¸°í•˜ê³  ë˜ ë‚¨ ì„ ìƒê³¼ ì •ìž„ì—게 관한 ì´ì•¼ê¸°ë„ 하였으나, 나는 그가 무슨 ì´ì•¼ê¸°ë¥¼ 하는지 잘 ë“¤ì„ ë§Œí•œ 마ìŒì˜ ì—¬ìœ ë„ ì—†ì–´ì„œ ë§ˆìŒ ì—†ëŠ” ëŒ€ë‹µì„ í•  ë¿ì´ì—ˆì†Œ. -Rê°€ ëŒì•„ê°„ ë’¤ì— ë‚˜ëŠ” ì˜·ë„ ë²—ì§€ 아니하고 ì¹¨ëŒ€ì— ë“œëŸ¬ëˆ„ì› ì†Œ. 페치카를 때기는 í•œ 모양ì´ë‚˜ ë°©ì´ ì¨ëŠ˜í•˜ê¸° 그지없소. -`ê·¸ ë‘ ë³„ 무ë¤ì´ ì •ë§ R와 ê·¸ 여학ìƒê³¼ ë‘ ì‚¬ëžŒì´ ì˜ì›ížˆ 달치 못할 ê¿ˆì„ ì•ˆì€ ì±„ë¡œ 깨ë—하게 죽어서 묻힌 무ë¤ì´ì—ˆìœ¼ë©´ 얼마나 좋ì„까. ë§Œì¼ ê·¸ë ‡ë‹¤ 하면 ë‚´ì¼ í•œ 번 ë” ê°€ì„œ 보토ë¼ë„ 하고 오련마는.' -하고 나는 Rë¶€ì²˜ì˜ ìƒí™œì— 대하여 ì¼ì¢…ì˜ ë¶ˆë§Œê³¼ í™˜ë©¸ì„ ëŠê¼ˆì†Œ. -그리고 ë‚´ê°€ ì •ìž„ì„ ì—¬ê¸°ë‚˜ 시베리아나 ì–´ë–¤ 곳으로 불러다가 ë§Œì¼ R와 ê°™ì€ í‰ë‚´ë¥¼ 낸다 하면, 하고 ìƒê°í•´ 보고는 나는 진저리를 쳤소. 나는 내머리 ì†ì— 다시 그러한 ìƒê°ì´ í•œ ì¡°ê°ì´ë¼ë„ 들어올 ê²ƒì„ ë‘려워하였소. -ê¸‰í–‰ì„ ê¸°ë‹¤ë¦¬ìžë©´ ë˜ ì‚¬í˜ì„ 기다리지 아니하면 아니 ë˜ê¸°ë¡œ 나는 ì´íŠ¿ë‚  ìƒˆë²½ì— ë– ë‚˜ëŠ” 구간차를 타고 Fì—­ì„ ë– ë‚˜ 버렸소. Rì—게는 고맙다는 편지 í•œ ìž¥ë§Œì„ ì¨ ë†“ê³ . 나는 R를 ë” ë³´ê¸°ë¥¼ ì›ì¹˜ 아니하였소. ê·¸ê²ƒì€ ë°˜ë“œì‹œ R를 죄ì¸ìœ¼ë¡œ ë³´ì•„ì„œ 그런 ê²ƒì€ ì•„ë‹ˆì˜¤ë§ˆëŠ” 그저 나는 다시 R를 대면하기를 ì›ì¹˜ 아니한 것ì´ì˜¤. -나는 차가 Rì˜ ì§‘ ì•žì„ ì§€ë‚  ë•Œì—ë„ Rì˜ ì§‘ì— ëŒ€í•˜ì—¬ì„œëŠ” 외면하였소. -ì´ ëª¨ì–‘ìœ¼ë¡œ 나는 í¥ì•ˆë ¹ì„ 넘고, 하ì¼ë¼ë¥´ì˜ ì†”ë°­ì„ ì§€ë‚˜ì„œ 마침내 ì´ ê³³ì— ì˜¨ 것ì´ì˜¤. -형! 나는 ì¸ì œëŠ” ì´ íŽ¸ì§€ë¥¼ ë내오. ë” ì“¸ ë§ë„ 없거니와 ì¸ì œëŠ” ì´ê²ƒì„ ì“°ê¸°ë„ ì‹«ì¦ì´ 났소. -ì´ íŽ¸ì§€ë¥¼ 쓰기 시작할 ë•Œì—는 ë°”ì´ì¹¼ì— ë¬¼ê²°ì´ í‰ìš©í•˜ë”니 ì´ íŽ¸ì§€ë¥¼ ë내는 지금ì—는 ê°€ì˜ ê°€ê¹Œìš´ 물ì—는 ì–¼ìŒì´ 얼었소. 그리고 ì € 멀리 푸른 ë¬¼ì´ ëŠ ì‹¤ëŠ ì‹¤ 하얗게 눈 ë®ì¸ ì‚° 빛과 어울리게 ë˜ì—ˆì†Œ. -사í˜ì´ë‚˜ ì´ì–´ì„œ ì˜¤ë˜ ëˆˆì´ ë°¤ìƒˆì— ê°œê³  오늘 아침ì—는 칼날 ê°™ì€ ë°”ëžŒì´ ëˆˆì„ ë‚ ë¦¬ê³  있소. -나는 ì´ ì–¼ìŒ ìœ„ë¡œ 걸어서 ì € 푸른 물 있는 곳까지 가고 ì‹¶ì€ ìœ í˜¹ì„ ê¸ˆí•  수 없소. ë”구나 ì´ íŽ¸ì§€ë„ ë‹¤ ì“°ê³  나니, ì¸ì œëŠ” ë‚´ê°€ ì´ ì„¸ìƒì—ì„œ í•  마지막 ì¼ê¹Œì§€ 다 í•œ 것 같소. -ë‚´ê°€ ì´ ì•žì— ì–´ë””ë¡œ 가서 ì–´ì°Œ ë ëŠ”지는 ë‚˜ë„ ëª¨ë¥´ì§€ë§ˆëŠ” í¬ë¯¸í•œ 소ì›ì„ ë§í•˜ë©´ 눈 ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ì¸ì  없는 삼림 지대로 한정 ì—†ì´ í—¤ë§¤ë‹¤ê°€ 기운 진하는 ê³³ì—ì„œ ì´ ëª©ìˆ¨ì„ ë§ˆì¹˜ê³  싶소. -ìµœì„ êµ°ì€ `ë'ì´ë¼ëŠ” 글ìžë¥¼ ì¼ë‹¤ê°€ 지워 버리고 ë”´ 종ì´ì—다가 ì´ëŸ° ë§ì„ ì¼ë‹¤ -다 ì“°ê³  나니 ì´ëŸ° íŽ¸ì§€ë„ ë‹¤ 부질없는 ì¼ì´ì˜¤. ë‚´ê°€ ì´ëŸ° ë§ì„ 한대야 세ìƒì´ 믿어 줄 ë¦¬ë„ ì—†ì§€ 않소. ë§ì´ëž€ 소용 없는 것ì´ì˜¤. ë‚´ê°€ 아무리 ë‚´ ì•„ë‚´ì—게 ë§ì„ í–ˆì–´ë„ ì•„ë‹ˆ 믿었거든 ë‚´ ì•„ë‚´ë„ ë‚´ ë§ì„ 아니 믿었거든 하물며 세ìƒì´ ë‚´ ë§ì„ ë¯¿ì„ ë¦¬ê°€ 있소. 믿지 아니할 ë¿ ì•„ë‹ˆë¼ ë‚´ ë§ ì¤‘ì—ì„œ ìžê¸°ë„¤ 목ì ì— 필요한 ë¶€ë¶„ë§Œì€ ë¯¿ê³ , ë˜ ìžê¸°ë„¤ 목ì ì— 필요한 ë¶€ë¶„ì€ ë§ˆìŒëŒ€ë¡œ 고치고 뒤집고 보태고 í•  것ì´ë‹ˆê¹Œ, 나는 ì´ íŽ¸ì§€ë¥¼ ì“´ ê²ƒì´ í•œ 무ìµí•˜ê³  어리ì„ì€ ì¼ì¸ ì¤„ì„ ê¹¨ë‹¬ì•˜ì†Œ. -형ì´ì•¼ ì´ íŽ¸ì§€ë¥¼ 아니 보기로니 나를 안 믿겠소? ê·¸ 중ì—는 혹 í˜•ì´ ì§€ê¸ˆê¹Œì§€ ëª¨ë¥´ë˜ ìžë£Œë„ 없지 아니하니, 형만 í˜¼ìž ë³´ì‹œê³  형만 í˜¼ìž ë‚´ ì‚¬ì •ì„ ì•Œì•„ 주시면 다행ì´ê² ì†Œ. 세ìƒì— í•œ 믿는 친구를 가지는 ê²ƒì´ ì €ë§ˆë‹¤ 하는 ì¼ì´ê² ì†Œ? -나는 ì´ ì“¸ë°ì—†ëŠ” 편지를 몇 번ì´ë‚˜ ë¶ˆì‚´ë¼ ë²„ë¦¬ë ¤ê³  하였으나 ê·¸ëž˜ë„ ê±°ê¸°ë„ ì¼ì¢…ì˜ ì• ì°©ì‹¬ì´ ìƒê¸°ê³  ë¯¸ë ¨ì´ ìƒê¸°ëŠ”구려. 형 í•œ 분ì´ë¼ë„ ë³´ì—¬ 드리고 ì‹¶ì€ ë§ˆìŒì´ ìƒê¸°ëŠ”구려. ë‚´ê°€ Sí˜•ë¬´ì†Œì— ìž…ê°í•´ ìžˆì„ ì ì— 형무소 ë²½ì— ì£„ìˆ˜ê°€ ì†í†±ìœ¼ë¡œ ì„±ëª…ì„ ìƒˆê¸´ ê²ƒì„ ë³´ì•˜ì†Œ. ë’¤ì— ë¬¼ì—ˆë”니 ê·¸ê²ƒì€ í”히 사형수가 하는 짓ì´ë¼ê³ . 사형수가 êµìˆ˜ëŒ€ì— ëŒë ¤ 나가기 바로 ì „ì— í”히 ì†í†±ìœ¼ë¡œ ë‹´ë²¼ë½ì´ë‚˜ ë§ˆë£»ë°”ë‹¥ì— ì œ ì´ë¦„ì„ ìƒˆê¸°ëŠ” ì¼ì´ 있다고 하는 ë§ì„ 들었소. ë‚´ê°€ 형ì—게 쓰는 ì´ íŽ¸ì§€ë„ ê·¸ 심리와 비슷한 것ì¼ê¹Œìš”? -형! 나는 보통 사람보다는, 정보다는 지로, ìƒì‹ë³´ë‹¤ëŠ” ì´ë¡ ìœ¼ë¡œ, ì´í•´ë³´ë‹¤ëŠ” ì˜ë¦¬ë¡œ ì‚´ì•„ 왔다고 ìžì‹ í•˜ì˜¤. ì´ë¥¼í…Œë©´ 논리학ì ìœ¼ë¡œ 윤리학ì ìœ¼ë¡œ 살아온 것ì´ë¼ê³  할까. 나는 엄격한 êµì‚¬ìš”, êµìž¥ì´ì—ˆì†Œ. 내게는 ì˜ì§€ë ¥ê³¼ ì´ì§€ë ¥ë°–ì— ì—†ëŠ” 것 같았소. 그러한 ìƒí™œì„ 수십 ë…„ í•´ 오지 아니하였소? 나는 ì´ ì•žì— ëª‡ì‹­ ë…„ì„ ë” ì‚´ë”ë¼ë„ ë‚´ ì´ ì„±ê²©ì´ë‚˜ ìƒí™œ 태ë„ì—는 ë³€í•¨ì´ ì—†ìœ¼ë¦¬ë¼ê³  ìžì‹ í•˜ì˜€ì†Œ. ë¶ˆí˜¹ì§€ë…„ì´ ì§€ë‚¬ìœ¼ë‹ˆ 그렇게 ìƒê°í•˜ì˜€ì„ ê²ƒì´ ì•„ë‹ˆì˜¤? -ê·¸ëŸ°ë° í˜•! ì°¸ ì´ìƒí•œ ì¼ì´ 있소. ê·¸ê²ƒì€ ë‚´ê°€ 지금까지 처해 ìžˆë˜ í™˜ê²½ì„벗어나서 호호 탕탕하게 ë„“ì€ ì„¸ê³„ì— ì•Œëª¸ì„ ë‚´ì–´ë˜ì§ì„ 당하니 ë‚´ ë§ˆìŒ ì†ì—는 무서운 여러 가지 변화가 ì¼ì–´ë‚˜ëŠ”구려. 나는 ì´ ë§ë„ 형ì—게 아니 하려고 ìƒê°í•˜ì˜€ì†Œ. 노여워하지 마시오, ë‚´ê²Œê¹Œì§€ë„ ìˆ¨ê¸°ëŠëƒê³ . 그런 ê²ƒì´ ì•„ë‹ˆì˜¤, 형ì€ì»¤ë…• 나 ìžì‹ ì—ê²Œê¹Œì§€ë„ ìˆ¨ê¸°ë ¤ê³  í•˜ì˜€ë˜ ê²ƒì´ì˜¤. 혹시 그런 기다리지 아니 í•˜ì˜€ë˜ ì›, 그런 ìƒê°ì´ ë‚´ 마ìŒì˜ í•˜ëŠ˜ì— ì¼ì–´ë‚˜ë¦¬ë¼ê³  ìƒìƒë„ 아니하였ë˜, 그런 ìƒê°ì´ ì¼ì–´ë‚  ë•Œì—는 나는 스스로 놀ë¼ê³  스스로 슬í¼í•˜ì˜€ì†Œ. 그래서 스스로 숨기기로 하였소. -ê·¸ 숨긴다는 ê²ƒì´ ë¬´ì—‡ì´ëƒ 하면 ê·¸ê²ƒì€ ì—´ì •ì´ìš”, ì •ì˜ ë¶ˆê¸¸ì´ìš”, ì •ì˜ ê´‘í’ì´ìš”, ì •ì˜ ë¬¼ê²°ì´ì˜¤. ë§Œì¼ ë‚´ ì˜ì‹ì´ 세계를 í‰í™”로운 í’€ 있고, 꽃 있고, 나무 있는 벌íŒì´ë¼ê³  하면 거기 ë‚œë°ì—†ëŠ” 미친 ì§ìŠ¹ë“¤ì´ ë¶ˆì„ ë¿œê³  소리를 지르고 싸우고, ì˜ê°ì„ 하고 ë‚ ì³ì„œ, ì´ ë™ì‚°ì˜ í‰í™”ì˜ í™”ì´ˆë¥¼ 다 짓밟아 버리고 마는 그러한 모양과 같소. -형! ê·¸ ì´ìƒì•¼ë¦‡í•œ ì§ìŠ¹ë“¤ì´ 여태ê», 사십 ë…„ ê°„ì„ ì–´ëŠ êµ¬ì„ì— ìˆ¨ì–´ 있었소? 그러다가 ì¸ì œ 뛰어나와 ê°ê° ì œ 권리를 주장하오? -지금 ë‚´ 가슴 ì†ì€ ë“소. ë‚´ ëª¸ì€ ë°”ì§ ì—¬ìœ„ì—ˆì†Œ. ê·¸ê²ƒì€ ìƒë¦¬í•™ì ìœ¼ë¡œë‚˜ 심리학ì ìœ¼ë¡œë‚˜ 타는 것ì´ìš”, 연소하는 것ì´ì˜¤. 그래서 다만 ë‚´ ëª¸ì˜ ì§€ë°©ë§Œì´ íƒ€ëŠ” ê²ƒì´ ì•„ë‹ˆë¼, 골수까지 타고, ëª¸ì´ íƒˆ ë¿ì´ ì•„ë‹ˆë¼ ìƒëª… ê·¸ ë¬¼ê±´ì´ íƒ€ê³  있는 것ì´ì˜¤. 그러면 어찌할까. -지위, 명성, 습관, 시대 사조 등등으로 ì¼ìƒì— 눌리고 ëˆŒë ¸ë˜ ë‚´ ìžì•„ì˜ ì¼ë¶€ë¶„ì´ í˜ëª…ì„ ì¼ìœ¼í‚¨ 것ì´ì˜¤? í•œ ë²ˆë„ ìžìœ ë¡œ 권세를 부려 보지 못한 본능과 ê°ì •ë“¤ì´ ë‚´ ìƒëª…ì´ ë나기 ì „ì— í•œ 번 ë‚ ë›°ì–´ 보려는 것ì´ì˜¤. ì´ê²ƒì´ ì„ ì´ì˜¤? ì•…ì´ì˜¤? -ê·¸ë“¤ì€ ë‚´ê°€ 지금까지 옳다고 여기고 신성하다고 ì—¬ê¸°ë˜ ëª¨ë“  권위를 모조리 둘러엎으려고 드오. 그러나 형! 나는 ë„저히 ì´ í˜ëª…ì„ ìš©ì¸í•  수가 없소. 나는 죽기까지 버티기로 ê²°ì •ì„ í•˜ì˜€ì†Œ. ë‚´ ì†ì—ì„œ ë‘ ì„¸ë ¥ì´ ì‹¸ìš°ë‹¤ê°€ 싸우다가 승부가 ê²°ì •ì´ ëª» ëœë‹¤ë©´ 나는 ìŠ¹ë¶€ì˜ ê²°ì •ì„ ê¸°ë‹¤ë¦¬ì§€ 아니하고 살기를 그만ë‘려오. -나는 눈 ë®ì¸ 삼림 ì†ìœ¼ë¡œ 들어가려오. 나는 Vë¼ëŠ” 대삼림 지대가 ì–´ë””ì¸ ì¤„ë„ ì•Œê³  거기를 가려면 ì–´ëŠ ì •ê±°ìž¥ì—ì„œ 내릴 ê²ƒë„ ë‹¤ 알아 놓았소. -ë§Œì¼ ë‹¨ìˆœížˆ 죽는다 하면 구태여 멀리 찾아갈 í•„ìš”ë„ ì—†ì§€ë§ˆëŠ” ê·¸ëž˜ë„ ë‚˜ 혼ìžë¡œëŠ” ë‚´ 사ìƒê³¼ ê°ì •ì˜ ì²­ì‚°ì„ í•˜ê³  싶소. ì‚´ 수 있는 날까지 세ìƒì„ ë– ë‚œ ê³³ì—ì„œ 살다가 완전한 í•´ê²°ì„ ì–»ëŠ” ë‚  나는 í˜¹ì€ ìŠ¹ë¦¬ì˜, í˜¹ì€ íŒ¨ë°°ì˜ ì¢…ë§‰ì„ ë‹«ì¹  것ì´ì˜¤. ë§Œì¼ í•´ê²°ì´ ì•ˆ ë˜ë©´ 안 ë˜ëŠ” 대로 그치면 그만ì´ì§€ìš”. -나는 ì´ ë¶“ì„ ë†“ê¸° ì „ì— ì–´ì ¯ë°¤ì— ê¾¼ 꿈 ì´ì•¼ê¸° 하나는 하려오. ê¿ˆì´ í•˜ë„ ìˆ˜ìƒí•´ì„œ 마치 ë‚´ ì „ë„ì— ëŒ€í•œ ì‹ ì˜ ê³„ì‹œì™€ë„ ê°™ê¸°ë¡œ 하는 ë§ì´ì˜¤. ê·¸ ê¿ˆì€ ì´ëŸ¬í•˜ì˜€ì†Œ. -ë‚´ê°€ ê½ì´ê¹¨(꼬ì´ê¹Œë¼ëŠ” ì•„ë¼ì‚¬ë§ë¡œ 침대ë¼ëŠ” ë§ì´ ì¡°ì„  ë™í¬ì˜ 입으로 변한 ë§ì´ì˜¤.) ì§ì„ 지고 ì‚½ì„ ë©”ê³  ëˆˆì´ ë®ì¸ 삼림 ì†ì„ í˜¼ìž ê±¸ì—ˆì†Œ. ì´ ê½ì´ê¹¨ ì§ì´ëž€ ê²ƒì€ ê¸ˆì ê¾¼ë“¤ì´ ê·¸ 여행 ì¤‘ì— ì†Œìš©í’ˆ, 마른 ë¹µ, 소금, ë‚´ë³µ 등ì†ì„ 침대 ë§¤íŠ¸ë¦¬ìŠ¤ì— ë„£ì–´ì„œ 지고 다니는 것ì´ì˜¤. ì´ ì§í•˜ê³  삽 í•œ ê°œ, ë„ë¼ í•œ ê°œ, ê·¸ê²ƒì´ ì‹œë² ë¦¬ì•„ë¡œ ê¸ˆì„ ì°¾ì•„ 헤매는 ì¡°ì„  ë™í¬ë“¤ì˜ 행색ì´ì˜¤. ë‚´ê°€ ì´ë¥´ì¿ ì¸ í¬ì—ì„œ ì´ëŸ¬í•œ ë™í¬ë¥¼ ë§Œë‚¬ë˜ ê²ƒì´ ê¿ˆìœ¼ë¡œ ë˜ì–´ 나온 모양ì´ì˜¤. -나는 꿈ì—는 세ìƒì„ 다 잊어버린, 아주 깨ë—하고 침착한 사람으로 ì´ ê½ì´ê¹¨ ì§ì„ 지고 ì‚½ì„ ë©”ê³  ë°¤ì¸ì§€ ë‚®ì¸ì§€ ì•Œ 수 없으나 ë•…ì€ ëˆˆë¹›ìœ¼ë¡œ í¬ê³ , í•˜ëŠ˜ì€ êµ¬ë¦„ë¹›ìœ¼ë¡œ íšŒìƒ‰ì¸ ì‚¼ë¦¼ 지대를 í—ˆë•í—ˆë• 걸었소. ê¸¸ë„ ì—†ëŠ” ë°ë¥¼, ì¸ì ë„ 없는 ë°ë¥¼. -꿈ì—ë„ ë‚´ ëª¸ì€ í½ í”¼ê³¤í•´ì„œ 쉴 ìžë¦¬ë¥¼ 찾는 마ìŒì´ì—ˆì†Œ. -나는 마침내 ì–´ë–¤ ì–¸ë• ë°‘ í•œ êµ°ë°ë¥¼ 골ëžì†Œ. 그리고 ìƒì‹œì— ì´ì•¼ê¸°ì—ì„œ ë“¤ì€ ëŒ€ë¡œ 삽으로 ë‚´ê°€ 누울 ìžë¦¬ë§Œí•œ ëˆˆì„ ì¹˜ê³ , 그리고는 ë„ë¼ë¡œ ê³ì— ì„  나무 몇 개를 ì°ì–´ 누ì´ê³  거기다가 ë¶ˆì„ ë†“ê³  ê·¸ ë¶ˆê¹€ì— ë…¹ì€ ë•…ì„ ë‘ì–´ ìžë‚˜ 파내고 ê·¸ ì†ì— 드러누웠소. 훈훈한 ê²ƒì´ ì•„ì£¼ 편안하였소. -하늘ì—는 ë³„ì´ ë°˜ì§ê±°ë ¸ì†Œ. Fì—­ì—ì„œ ë³´ë˜ ë°”ì™€ ê°™ì´ í° ë³„ ìž‘ì€ ë³„ë„ ë³´ì´ê³  í‰ì‹œì— 보지 ëª»í•˜ë˜ ë¶‰ì€ ë³„, 푸른 별 ë“¤ë„ ë³´ì˜€ì†Œ. 나는 ì´ ì´ìƒí•œ 하늘, ì´ìƒí•œ ë³„ë“¤ì´ ìžˆëŠ” í•˜ëŠ˜ì„ ë³´ê³  드러누워 있노ë¼ë‹ˆê¹Œ ë¬¸ë“ ì–´ë””ì„œ ë°œìžêµ­ 소리가 들렸소. í‰í‰í‰í‰ 우루루루…… 나는 벌떡 ì¼ì–´ë‚˜ë ¤ 하였으나 ëª¸ì´ ì²œ ê·¼ì´ë‚˜ ë˜ì–´ì„œ 움ì§ì¼ 수가 없었소. 가까스로 고개를 조금 들고 보니 ë¿”ì´ ê¸¸ë‹¤ëž—ê³  ëˆˆì´ ë¶ˆê°™ì´ ë¶‰ì€ ì‚¬ìŠ´ì˜ ë–¼ê°€ ë¬´ì—‡ì— ë†€ëžëŠ”지 껑충껑충 ë›°ì–´ 지나가오. ì´ê²ƒì€ 아마 í¬ë¡œí¬íŠ¸í‚¨ì˜ <ìƒí˜¸ 부조론> ì†ì— ë§í•œ ì‹œë² ë¦¬ì•„ì˜ ì‚¬ìŠ´ì˜ ë–¼ê°€ ê¿ˆì´ ë˜ì–´ 나온 모양ì´ì˜¤. -그러ë”니 ê·¸ ì‚¬ìŠ´ì˜ ë–¼ê°€ 다 지나간 ë’¤ì—, ê·¸ ì‚¬ìŠ´ì˜ ë–¼ê°€ ì˜¤ë˜ ë°©í–¥ìœ¼ë¡œì„œ ì •ìž„ì´ê°€ 걸어오는 ê²ƒì´ ì•„ë‹ˆë¼ ìŠ¤ë¥´ë¥µ 하고 미ë„러져 오오. 마치 ì¸í˜•ì„ 밀어 주는 것같ì´. -"ì •ìž„ì•„!" -하고 나는 소리를 치고 ëª¸ì„ ì¼ìœ¼í‚¤ë ¤ 하였소. -ì •ìž„ì˜ ëª¨ì–‘ì€ ë‚˜ë¥¼ ìž ê¹ ë³´ê³ ëŠ” 미ë„러지는 ë“¯ì´ í˜ëŸ¬ê°€ 버리오. -나는 ì •ìž„ì•„, 정임아를 부르고 팔다리를 부둥거렸소. 그러다가 마침내 ë‚´ ëª¸ì´ ë²ˆì© ì¼ìœ¼ì¼œì§ì„ 깨달았소. 나는 ì •ìž„ì˜ ë’¤ë¥¼ ë”°ëžì†Œ. -나는 눈 위로 삼림 ì†ìœ¼ë¡œ ì •ìž„ì˜ ê·¸ë¦¼ìžë¥¼ ë”°ëžì†Œ. ë³´ì¼ ë“¯ 안 ë³´ì¼ ë“¯, ìž¡íž ë“¯ 안 ìž¡íž ë“¯, 나는 무거운 다리를 ëŒê³  ì •ìž„ì„ ë”°ëžì†Œ. -ì •ìž„ì€ ì´ ì¶”ìš´ ë‚ ì´ì–¸ë§Œ 눈과 ê°™ì´ í° ì˜·ì„ ìž…ì—ˆì†Œ. ê·¸ ì˜·ì€ ì˜›ë‚  로마 ì—¬ì¸ì˜ 옷과 ê°™ì´ ë°”ëžŒê²°ì— íŽ„ë ê±°ë ¸ì†Œ. -"오지 마세요. 저를 ë”°ë¼ì˜¤ì§€ 못하십니다." -하고 ì •ìž„ì€ ëˆˆë³´ë¼ ì†ì— 가리워 버리고 ë§ì•˜ì†Œ. 암만 ë¶ˆëŸ¬ë„ ëŒ€ë‹µì´ ì—†ê³  눈보ë¼ê°€ 다 지나간 ë’¤ì—ë„ ë¶‰ì€ ë³„, 푸른 별과 ë¿” 긴 ì‚¬ìŠ´ì˜ ë–¼ë¿ì´ì˜¤. ì •ìž„ì€ ë³´ì´ì§€ 아니하였소. 나는 미칠 ë“¯ì´ ì •ìž„ì„ ì°¾ê³  부르다가 ìž ì„ ê¹¨ì—ˆì†Œ. -ê¿ˆì€ ì´ê²ƒë¿ì´ì˜¤. ê¿ˆì„ ê¹¨ì–´ì„œ ì°½ ë°–ì„ ë°”ë¼ë³´ë‹ˆ ì–¼ìŒê³¼ ëˆˆì— ë®ì¸ ë°”ì´ì¹¼í˜¸ 위ì—는 ìƒˆë²½ì˜ ê²¨ìš¸ ë‹¬ì´ ë¹„ì¹˜ì–´ 있었소. ì € 멀리 검푸르게 ë³´ì´ëŠ” ê²ƒì´ ì±„ 얼어붙지 아니한 물ì´ê² ì§€ìš”. 오늘 ë°¤ì— ë°”ëžŒì´ ì—†ê³  ê¸°ì˜¨ì´ ë‚´ë¦¬ë©´ 그것마저 얼어붙ì„는지 모르지요. ë²Œì¨ ì‚´ì–¼ìŒì´ ìž¡í˜”ëŠ”ì§€ë„ ëª¨ë¥´ì§€ìš”. ì•„ì•„, ê·¸ ì†ì€ 얼마나 깊ì„까. 나는 ë°”ì´ì¹¼ì˜ 물 ì†ì´ ê´€ì‹¬ì´ ë˜ì–´ì„œ 못 견디겠소. -형! 나는 ìžë°±í•˜ì§€ 아니할 수 없소. ì´ ê¿ˆì€ ë‚´ 마ìŒì˜ ì–´ë–¤ ë¶€ë¶„ì„ ì„¤ëª…í•œ 것ì´ë¼ê³ . 그러나 형! 나는 ì´ê²ƒì„ 부정하려오. 굳세게 부정하려오. 나는 ì´ ê¿ˆì„ ë¶€ì •í•˜ë ¤ì˜¤. 억지로ë¼ë„ 부정하려오. 나는 ê²°ì½” ë‚´ ì†ì— ì¼ì–´ë‚œ í˜ëª…ì„ ìš©ì¸í•˜ì§€ 아니하려오. 나는 ê·¸ê²ƒì„ í˜ëª…으로 ì¸ì •í•˜ì§€ 아니하려오. 아니오! 아니오! ê·¸ê²ƒì€ ë°˜ëž€ì´ì˜¤! ë‚´ ì¸ê²©ì˜ 통ì¼ì— 대한 반란ì´ì˜¤. 단연코 무단ì ìœ¼ë¡œ 진정하지 아니하면 아니 ë  ë°˜ëž€ì´ì˜¤. 보시오! 나는 굳게 서서 í•œ 걸ìŒë„ 뒤로 물러서지 아니할 것ì´ì˜¤. 만ì¼ì— í˜•ì´ ê´‘ì•¼ì— êµ¬ë¥´ëŠ” ë‚´ 시체나 í•´ê³¨ì„ ë³¸ë‹¤ë“ ì§€, ë˜ëŠ” 무슨 ì¸ì—°ìœ¼ë¡œ ë‚´ 무ë¤ì„ 발견하는 ë‚ ì´ ìžˆë‹¤ê³  하면 ê·¸ ë•Œì— í˜•ì€ ë‚´ê°€ ì´ ëª¨ë“  ë°˜ëž€ì„ ì§„ì •í•œ ê°œì„ ì˜ êµ°ì£¼ë¡œ ì£½ì€ ê²ƒì„ ì•Œì•„ 주시오. -ì¸ì œ ë°”ì´ì¹¼ì— ê²¨ìš¸ì˜ ì„ì–‘ì´ ë¹„ì¹˜ì—ˆì†Œ. ëˆˆì„ ì¸ ë‚˜ì§€ë§‰í•œ ì‚°ë“¤ì´ ì§€ëŠ” í–‡ë¹›ì— ìžì¤ë¹›ì„ 발하고 있소. 극히 깨ë—하고 싸늘한 ê´‘ê²½ì´ì˜¤. 아디유! -ì´ íŽ¸ì§€ë¥¼ ìš°íŽ¸ì— ë¶€ì¹˜ê³ ëŠ” 나는 ìµœí›„ì˜ ë°©ëž‘ì˜ ê¸¸ì„ ë– ë‚˜ì˜¤. ì°¾ì„ ìˆ˜ë„ ì—†ê³ , 편지 ë°›ì„ ìˆ˜ë„ ì—†ëŠ” 곳으로. -부디 í‰ì•ˆížˆ 계시오. ì¼ ë§Žì´ í•˜ì‹œì˜¤. 부ì¸ê»˜ 문안 드리오. ë‚´ 가족과 ì •ìž„ì˜ ì¼ ë§¡ê¸°ì˜¤. 아디유! -ì´ê²ƒìœ¼ë¡œ ìµœì„ êµ°ì˜ íŽ¸ì§€ëŠ” ë났다. -나는 ì´ íŽ¸ì§€ë¥¼ 받고 울었다. ì´ê²ƒì´ ì¼ íŽ¸ì˜ ì†Œì„¤ì´ë¼ 하ë”ë¼ë„ 슬픈 ì¼ì´ì–´ë“ , 하물며 ë‚´ê°€ 가장 믿고 사랑하는 ì¹œêµ¬ì˜ ì¼ìž„ì—야. -ì´ íŽ¸ì§€ë¥¼ 받고 나는 곧 ìµœì„ êµ°ì˜ ì§‘ì„ ì°¾ì•˜ë‹¤. 주ì¸ì„ ìžƒì€ ì´ ì§‘ì—서는아ì´ë“¤ì´ 마당ì—ì„œ 떠들고 있었다. -"ì‚¼ì²­ë™ ì•„ìžì”¨ 오셨수. 어머니, ì‚¼ì²­ë™ ì•„ìžì”¨." -하고 ìµœì„ êµ°ì˜ ìž‘ì€ë”¸ì´ 나를 ë³´ê³  뛰어들어갔다. -최ì„ì˜ ë¶€ì¸ì´ 나와 나를 맞았다. -부ì¸ì€ ë¨¸ë¦¬ë„ ë¹—ì§€ 아니하고, 얼굴ì—는 ì¡°ê¸ˆë„ í™”ìž¥ì„ ì•„ë‹ˆí•˜ê³ , ë§¤ë¬´ì‹œë„ í˜ëŸ¬ë‚´ë¦´ 지경으로 ì •ëˆë˜ì§€ 못하였다. ì¼ ì£¼ì¼ì´ë‚˜ 못 만난 ë™ì•ˆì— 부ì¸ì˜ ëª¨ì–‘ì€ ë”ìš± 초췌하였다. -"ë…¸ì„헌테서 무슨 기별ì´ë‚˜ 있습니까." -하고 나는 무슨 ë§ë¡œ ë§ì„ 시작할지 몰ë¼ì„œ ì´ëŸ° ë§ì„ 하였다. -"아니오. 왜 ê·¸ì´ê°€ ì§‘ì— íŽ¸ì§€í•˜ë‚˜ìš”?" -하고 부ì¸ì€ 성난 ë¹›ì„ ë³´ì´ë©°, -"ì§‘ì„ ë– ë‚œ 지가 ê·¼ 사십 ì¼ì´ ë˜ê±´ë§Œ 엽서 í•œ 장 있나요. 집안 ì‹êµ¬ê°€ 다 죽기로 눈ì´ë‚˜ 깜ì§í•  ì¸ê°€ìš”. 그저 ì •ìž„ì´í—Œí…Œë§Œ 미ì³ì„œ 죽ì„지 살지를 모르지요." -하고 울먹울먹한다. -"잘못 아십니다. 부ì¸ê»˜ì„œ ë…¸ì„ì˜ ë§ˆìŒì„ 잘못 아십니다. 그런 ê²ƒì´ ì•„ë‹™ë‹ˆë‹¤." -하고 나는 확신 있는 ë“¯ì´ ë§ì„ 시작하였다. -"ë…¸ì„ì˜ ìƒê°ì„ 부ì¸ê»˜ì„œ 오해하신 ì¤„ì€ ë²Œì¨ë¶€í„° 알았지마는 오늘 ë…¸ì„ì˜ íŽ¸ì§€ë¥¼ 받아보고 ë”ìš± 분명히 알았습니다." -하고 나는 부ì¸ì˜ í‘œì •ì˜ ë³€í™”ë¥¼ 엿보았다. -"편지가 왔어요?" -하고 부ì¸ì€ 놀ë¼ë©´ì„œ, -"지금 ì–´ë”” 있어요? ì¼ë³¸ 있지요?" -하고 ì§ˆíˆ¬ì˜ ë¶ˆê¸¸ì„ ëˆˆìœ¼ë¡œ 토하였다. -"ì¼ë³¸ì´ 아닙니다. ë…¸ì„ì€ ì§€ê¸ˆ ì•„ë¼ì‚¬ì— 있습니다." -"ì•„ë¼ì‚¬ìš”?" -하고 부ì¸ì€ 놀ë¼ëŠ” ë¹›ì„ ë³´ì´ë”니, -"그럼 ì •ìž„ì´ë¥¼ ë°ë¦¬ê³  아주 ì•„ë¼ì‚¬ë¡œ 가케오치를 하였군요." -하고 히스테리컬한 웃ìŒì„ ë³´ì´ê³ ëŠ” ëª¸ì„ í•œ 번 떨었다. -부ì¸ì€ 남편과 ì •ìž„ì˜ ê´€ê³„ë¥¼ ë§í•  때마다 ì´ë ‡ê²Œ 경련ì ì¸ 웃ìŒì„ 웃고 ëª¸ì„ ë– ëŠ” ê²ƒì´ ë²„ë¦‡ì´ì—ˆë‹¤. -"아닙니다. ë…¸ì„ì€ í˜¼ìž ê°€ 있습니다. 그렇게 오해를 마세요." -하고 나는 ë³´ì— ì‹¼ 최ì„ì˜ íŽ¸ì§€ë¥¼ ë‚´ì–´ì„œ 부ì¸ì˜ 앞으로 밀어 놓으며, -"ì´ê²ƒì„ 보시면 다 아실 줄 압니다. 어쨌으나 ë…¸ì„ì€ ê²°ì½” ì •ìž„ì´ë¥¼ ë°ë¦¬ê³  ê°„ ê²ƒì´ ì•„ë‹ˆìš”, ë„리어 ì •ìž„ì´ë¥¼ 멀리 떠나서 ê°„ 것입니다. 그러나 ê·¸ë³´ë‹¤ë„ ì¤‘ëŒ€ 문제가 있습니다. ë…¸ì„ì€ ì´ íŽ¸ì§€ë¥¼ ë³´ë©´ ì£½ì„ ê²°ì‹¬ì„ í•œ 모양입니다." -하고 부ì¸ì˜ 주ì˜ë¥¼ 질투로부터 ê·¸ 남편ì—게 대한 ë™ì •ì— ëŒì–´ ë³´ë ¤ 하였다. -"í¥. 왜요? 시체 정사를 하나요? 좋겠습니다. 머리가 허연 ê²ƒì´ ë”¸ìžì‹ ê°™ì€ ê³„ì§‘ì• í—ˆêµ¬ 정사를 한다면 ê·¸ ê¼´ 좋겠습니다. 죽으ë¼ì§€ìš”. 죽으래요. 죽는 ê²ƒì´ ë‚«ì§€ìš”. 그리구 ì‚´ì•„ì„œ 무엇 í•´ìš”?" -ë‚´ ëœ»ì€ í‹€ë ¤ 버렸다. 부ì¸ì˜ 표정과 ë§ì—서는 ë”ìš±ë”ìš± ë…í•œ ì§ˆíˆ¬ì˜ ì•ˆê°œì™€ 싸늘한 ì–¼ìŒê°€ë£¨ê°€ 날았다. -나는 부ì¸ì˜ ì´ íƒœë„ì— ë°˜ê°ì„ ëŠê¼ˆë‹¤. 아무리 ì§ˆíˆ¬ì˜ ê°ì •ì´ 강하다 하기로, ì‚¬ëžŒì˜ ìƒëª…ì´ ì œ ë‚¨íŽ¸ì˜ ìƒëª…ì´ ìœ„íƒœí•¨ì—ë„ ë¶ˆêµ¬í•˜ê³  ì˜¤ì§ ì œ ì§ˆíˆ¬ì˜ ê°ì •ì—만 충실하려 하는 ê·¸ 태ë„ê°€ 불쾌하였다. 그래서 나는, -"나는 ê·¸ë§Œí¼ ë§ì”€í•´ 드렸으니 ë” í•  ë§ì”€ì€ 없습니다. 아무려나 ì¢€ë” ëƒ‰ì •í•˜ê²Œ ìƒê°í•´ 보세요. 그리고 ì´ê²ƒì„ ì½ì–´ 보세요." -하고 ì¼ì–´ë‚˜ì„œ 집으로 ëŒì•„와 버리고 ë§ì•˜ë‹¤. -ë„무지 불쾌하기 그지없는 ë‚ ì´ë‹¤. 최ì„ì˜ íƒœë„ê¹Œì§€ë„ ë¶ˆì¾Œí•˜ë‹¤. 달아나긴 왜 달아나? 죽기는 왜 죽어? 못난 것! 기운 없는 것! 하고 나는 최ì„ì´ê°€ ê³ì— 섰기나 í•œ 것처럼 ëˆˆì„ í˜ê¸°ê³  중얼거렸다. -최ì„ì˜ ë§ëŒ€ë¡œ 최ì„ì˜ ë¶€ì¸ì€ ì•…í•œ ì‚¬ëžŒì´ ì•„ë‹ˆìš”, 그저 ë³´í†µì¸ ì—¬ì„±ì¼ëŠ”지 모른다. 그렇다 하면 ì—¬ìžì˜ 마ìŒì´ëž€ ë„ˆë¬´ë„ ì§ˆíˆ¬ì˜ ì¢…ì´ ì•„ë‹ê¹Œ. 설사 남편 ë˜ëŠ” 최ì„ì˜ ì‚¬ëž‘ì´ ì•„ë‚´ë¡œë¶€í„° ì •ìž„ì—게로 옮아 갔다고 하ë”ë¼ë„ ê·¸ê²ƒì„ ì§ˆíˆ¬ë¡œ 회복하려는 ê²ƒì€ ì–´ë¦¬ì„ì€ ì¼ì´ë‹¤. ì´ë¯¸ ì‚¬ëž‘ì´ ë– ë‚œ ë‚¨íŽ¸ì„ ë„¤ 마ìŒëŒ€ë¡œ ê°€ê±°ë¼ í•˜ê³  ìžë°œì ìœ¼ë¡œ 내어버릴 것ì´ì§€ë§ˆëŠ” ê·¸ê²ƒì„ ëª» í•  ì‚¬ì •ì´ ìžˆë‹¤ê³  하면 모르는 체하고 내버려 둘 ê²ƒì´ ì•„ë‹Œê°€. ê·¸ëž˜ë„ ì´ê²ƒì€ 우리네 남ìžì˜ ì´ë¡ ì´ìš”, ì—¬ìžë¡œëŠ” ì´ëŸ° ê²½ìš°ì— ì§ˆíˆ¬ë¼ëŠ” ë°˜ì‘ë°–ì— ì—†ë„ë¡ ìƒê¸´ 것ì¼ê¹Œ 나는 ì´ëŸ° ìƒê°ì„ 하고 있었다. -시계가 아홉시를 친다. -남대문 ë°– ì •ê±°ìž¥ì„ ë– ë‚˜ëŠ” ì—´ì°¨ì˜ ê¸°ì  ì†Œë¦¬ê°€ 들린다. -나는 만주를 ìƒê°í•˜ê³ , 시베리아를 ìƒê°í•˜ê³  최ì„ì„ ìƒê°í•˜ì˜€ë‹¤. 마ìŒìœ¼ë¡œëŠ” ì •ìž„ì„ ì‚¬ëž‘í•˜ë©´ì„œ ê·¸ ì‚¬ëž‘ì„ ë°œí‘œí•  수 없어서 ì‹œë² ë¦¬ì•„ì˜ ëˆˆ ë®ì¸ 삼림 ì†ìœ¼ë¡œ 방황하는 최ì„ì˜ ëª¨ì–‘ì´ ìµœì„ì˜ ê¿ˆ ì´ì•¼ê¸°ì— 있는 대로 ëˆˆì•žì— ì„ í•˜ê²Œ 떠나온다. -`ì‚¬ëž‘ì€ ëª©ìˆ¨ì„ ë¹¼ì•—ëŠ”ë‹¤.' -하고 나는 사랑ì¼ëž˜ ì¼ì–´ë‚˜ëŠ” ì¸ìƒì˜ ë¹„ê·¹ì„ ìƒê°í•˜ì˜€ë‹¤. 그러나 최ì„ì˜ ê²½ìš°ëŠ” 보통 있는 ê³µì‹ê³¼ëŠ” 달ë¼ì„œ ì‚¬ëž‘ì„ ì£½ì´ê¸° 위해서 ì œ ëª©ìˆ¨ì„ ì£½ì´ëŠ” 것ì´ì—ˆë‹¤. 그렇다 하ë”ë¼ë„, -`ì‚¬ëž‘ì€ ëª©ìˆ¨ì„ ë¹¼ì•—ëŠ”ë‹¤.' -는 ë°ì—는 ë‹¤ë¦„ì´ ì—†ë‹¤. -나는 ë¶ˆì¾Œë„ í•˜ê³  ëª¸ë„ ìœ¼ìŠ¤ìŠ¤í•˜ì—¬ 얼른 ìžë¦¬ì— 누웠다. ë©°ëŠë¦¬ê°€ 들어온 뒤부터 사랑 ìƒí™œì„ 하는 지가 ë²Œì¨ ì˜¤ ë…„ì´ë‚˜ ë˜ì—ˆë‹¤. 우리 부처란 ì¸ì œëŠ” í•œ ì—­ì‚¬ì  ì¡´ìž¬ìš”, ìœ¤ë¦¬ì  ê´€ê³„ì— ë¶ˆê³¼í•˜ì˜€ë‹¤. 오래 사귄 친구와 ê°™ì€ ìµìˆ™í•¨ì´ 있고, ì§‘ì— ì—†ì§€ 못할 사람ì´ë¼ëŠ” í•„ìš”ê°ë„ 있지마는 ì Šì€ ë¶€ì²˜ê°€ 가지는 듯한 그런 ì •ì€ ë²Œì¨ ì—†ëŠ” 지 오래였다. ì•„ë‚´ë„ ë‚˜ë¥¼ 대하면 본체만체, ë‚˜ë„ ì•„ë‚´ë¥¼ 대하면 본체만체, 무슨 필요가 있어서 ë§ì„ 붙ì´ë”ë¼ë„ ì•„ë¬´ìª¼ë¡ ë“£ê¸° 싫기를 ì›í•˜ëŠ” ë“¯ì´ í†¡í†¡ ë‚´ë˜ì¡Œë‹¤. ì•„ë‚´ë„ ê·¼ëž˜ì— ì™€ì„œëŠ” ì˜·ë„ ì•„ë¬´ë ‡ê²Œë‚˜, ë¨¸ë¦¬ë„ ì•„ë¬´ë ‡ê²Œë‚˜, ì–´ë”” 출입할 때밖ì—는 ë„무지 í™”ìž¥ì„ ì•„ë‹ˆ 하였다. -그러나 그렇다고 우리 ë¶€ì²˜ì˜ ìƒˆê°€ 좋지 못한 ê²ƒë„ ì•„ë‹ˆì—ˆë‹¤. 서로 소중히 여기는 마ìŒë„ 있었다. ì•„ë‚´ê°€ ì•ˆì— ìžˆë‹¤ê³  ìƒê°í•˜ë©´ 마ìŒì´ 든든하고 ë˜ ì•„ë‚´ì˜ ë§ì— ì˜í•˜ê±´ëŒ€ ë‚´ê°€ ì‚¬ëž‘ì— ìžˆê±°ë‹ˆ 하면 마ìŒì´ 든든하다고 한다. -우리 ë¶€ì²˜ì˜ ê´€ê³„ëŠ” ì´ëŸ¬í•œ 관계다. -나는 í•œ ë°©ì—ì„œ í˜¼ìž ìž ì„ ìžëŠ” ê²ƒì´ ìŠµê´€ì´ ë˜ì–´ì„œ 누가 ê³ì— 있으면 ìž ì´ ìž˜ 들지 아니하였다. 혹시 ì–´ë¦°ê²ƒë“¤ì´ ë§¤ë¥¼ 얻어맞고 사랑으로 í”¼ë‚œì„ ì™€ì„œ 울다가 ë‚´ ìžë¦¬ì—ì„œ ìž ì´ ë“¤ë©´ 귀엽기는 ê·€ì—¬ì›Œë„ ìž ìžë¦¬ëŠ” 편안치 아니하였다. 나는 ì±…ì„ ë³´ê³  ê¸€ì„ ì“°ê³  ê³µìƒì„ 하고 있으면 족하였다. 내게는 아무 ì• ìš•ì  ìš”êµ¬ë„ ì—†ì—ˆë‹¤. ì´ê²ƒì€ ë‚´ ì •ë ¥ì´ ì‡ ëª¨í•œ 까닭ì¸ì§€ 모른다. -그러나 최ì„ì˜ íŽ¸ì§€ë¥¼ 본 ê·¸ ë‚  ë°¤ì—는 ë„무지 ìž ì´ ìž˜ 들지 아니하였다. 최ì„ì˜ íŽ¸ì§€ê°€ 최ì„ì˜ ê³ ë¯¼ì´ ë‚´ ì¡¸ë˜ ì˜ì‹ì— 무슨 ìžê·¹ì„ 준 듯하였다. ì ë§‰í•œ 듯하였다. 허전한 듯하였다. 무엇ì¸ì§€ 모르나 그리운 ê²ƒì´ ìžˆëŠ” 것 같았다. -"ì–´, ì´ê±° 안ë˜ì—ˆêµ°." -하고 나는 벌떡 ì¼ì–´ë‚˜ 담배를 피워 물었다. -"나으리 주무셔 곕시오?" -하고 ì•„ë²”ì´ ì „ë³´ë¥¼ 가지고 왔다. -"명조 경성 ì°© 남정임" -ì´ë¼ëŠ” 것ì´ì—ˆë‹¤. -"ì •ìž„ì´ê°€ 와?" -하고 나는 전보를 다시 ì½ì—ˆë‹¤. -최ì„ì˜ ê·¸ 편지를 ë³´ë©´ ìµœì„ ë¶€ì¸ì—게는 ì–´ë–¤ ë°˜ì‘ì´ ì¼ì–´ë‚˜ê³  ì •ìž„ì—게는 ì–´ë–¤ ë°˜ì‘ì´ ì¼ì–´ë‚ ê¹Œ, 하고 ìƒê°í•˜ë©´ ìžëª» 마ìŒì´ 편하지 못하였다. -ì´íŠ¿ë‚  ì•„ì¹¨ì— ë‚˜ëŠ” 부산서 오는 차를 맞으려고 정거장ì—를 나갔다. -차는 ì œ ì‹œê°„ì— ë“¤ì–´ì™”ë‹¤. ë‚¨ì •ìž„ì€ ìŠˆíŠ¸ì¼€ì´ìŠ¤ 하나를 들고 ì°¨ì—ì„œ 내렸다. ê²€ì€ ì™¸íˆ¬ì— ê²€ì€ ëª¨ìžë¥¼ ì“´ ê·¸ì˜ ì–¼êµ´ì€ ë”ìš± 해쓱해 보였다. -"ì„ ìƒë‹˜!" -하고 ì •ìž„ì€ ë‚˜ë¥¼ ë³´ê³  ì†ì— ë“¤ì—ˆë˜ ì§ì„ ë•…ë°”ë‹¥ì— ë‚´ë ¤ë†“ê³ , ë‚´ 앞으로 왔다. -"í’ëž‘ì´ë‚˜ 없었나?" -하고 나는 ë‚´ ì†ì— 잡힌 ì •ìž„ì˜ ì†ì´ 싸늘한 ê²ƒì„ ê·¼ì‹¬í•˜ì˜€ë‹¤. -"네. 아주 잔잔했습니다. ì €ê°™ì´ ì•½í•œ ì‚¬ëžŒë„ ë°–ì— ë‚˜ì™€ì„œ 바다 경치를 구경하였습니다." -하고 ì •ìž„ì€ ì‚¬êµì ì¸ 웃ìŒì„ 웃었다. 그러나 ê·¸ì˜ ëˆˆì—는 ëˆˆë¬¼ì´ ìžˆëŠ” 것 같았다. -"최 ì„ ìƒë‹˜ ì–´ë”” 계신지 아세요?" -하고 ì •ìž„ì€ ë‚˜ë¥¼ ë”°ë¼ ì„œë©´ì„œ 물었다. -"ë‚˜ë„ ì§€ê¸ˆê¹Œì§€ 몰ëžëŠ”ë° ì–´ì œ 편지를 하나 받았지." -하는 ê²ƒì´ ë‚´ 대답ì´ì—ˆë‹¤. -"네? 편지 받으셨어요? ì–´ë”” 계십니까?" -하고 ì •ìž„ì€ ê±¸ìŒì„ 멈추었다. -"ë‚˜ë„ ëª°ë¼." -하고 ë‚˜ë„ ì •ìž„ê³¼ ê°™ì´ ê±¸ìŒì„ 멈추고, -"ê·¸ 편지를 ì“´ ê³³ë„ ì•Œê³  부친 ê³³ë„ ì•Œì§€ë§ˆëŠ” 지금 어디로 갔는지 ê·¸ê²ƒì€ ëª¨ë¥´ì§€. ì°¾ì„ ìƒê°ë„ ë§ê³  편지할 ìƒê°ë„ ë§ë¼ê³  했으니까." -하고 사실대로 대답하였다. -"어디야요? ê·¸ 편지 부치신 ê³³ì´ ì–´ë””ì•¼ìš”? ì € ì´ ì°¨ë¡œ ë”°ë¼ê°ˆ 테야요." -하고 ì •ìž„ì€ ì¡°ê¸‰í•˜ì˜€ë‹¤. -"ê°ˆ ë•Œì—는 ê°€ë”ë¼ë„ ì´ ì°¨ì—야 ê°ˆ 수가 있나." -하고 나는 겨우 ì •ìž„ì„ ëŒê³  들어왔다. -ì •ìž„ì„ ì§‘ìœ¼ë¡œ ë°ë¦¬ê³  와서 대강 ë§ì„ 하고, ì´íŠ¿ë‚  새벽 차로 떠난다는 것ì„, -"가만 있어. 어떻게 계íšì„ 세워 가지고 해야지." -하여 가까스로 붙들어 놓았다. -ì•„ì¹¨ì„ ë¨¹ê³  나서 ìµœì„ ì§‘ì—를 ê°€ 보려고 í•  즈ìŒì— 순임ì´ê°€ 와서 마루 ëì— ì„  채로, -"ì„ ìƒë‹˜, 어머니가 ìž ê¹ë§Œ 오십시사구요." -하였다. -"ì •ìž„ì´ê°€ 왔다." -하고 ë‚´ê°€ 그러니까, -"ì •ìž„ì´ê°€ìš”?" -하고 ìˆœìž„ì€ ê¹œì§ ë†€ë¼ë©´ì„œ, -"ì •ìž„ì´ëŠ” 아버지 계신 ë°ë¥¼ 알아요?" -하고 물었다. -"ì •ìž„ì´ë„ 모른단다. 너 아버지는 ì‹œë² ë¦¬ì•„ì— ê³„ì‹œê³  ì •ìž„ì´ëŠ” ë™ê²½ 있다가 ì™”ëŠ”ë° ì•Œ 리가 있니?" -하고 나는 ìˆœìž„ì˜ ìƒê°ì„ 깨뜨리려 하였다. 순임ì€, -"ì •ìž„ì´ê°€ ì–´ë”” 있어요?" -하고 방들 있는 ê³³ì„ ë‘˜ëŸ¬ë³´ë©°, -"언제 왔어요?" -하고는 그제야 ì •ìž„ì—게 대한 반가운 ì •ì´ ë°œí•˜ëŠ” 듯ì´, -"ì •ìž„ì•„!" -하고 불러 본다. -"언니요? 여기 있수." -하고 ì •ìž„ì´ê°€ 머릿방 ë¬¸ì„ ì—´ê³  ì˜·ì„ ê°ˆì•„ìž…ë˜ ì±„ë¡œ 고개를 내어민다. -ìˆœìž„ì€ êµ¬ë‘를 ì°¨ë‚´ë²„ë¦¬ë“¯ì´ ë²—ì–´ 놓고 ì •ìž„ì˜ ë°©ìœ¼ë¡œ 뛰어들어간다. -나는 최ì„ì˜ ì§‘ì—를 ê°€ëŠë¼ê³  외투를 ìž…ê³  모ìžë¥¼ ì“°ê³  ì •ìž„ì˜ ë°©ë¬¸ì„ ì—´ì–´ 보았다. ë‘ ì²˜ë…€ëŠ” 울고 있었다. -"ì •ìž„ì´ë„ 가지. 아주머니 뵈러 안 ê°€?" -하고 나는 ì •ìž„ì„ ìž¬ì´‰í•˜ì˜€ë‹¤. -"ì„ ìƒë‹˜ 먼저 ê°€ 계셔요." -하고 순임ì´ê°€ ëˆˆë¬¼ì„ ì”»ê³  ì¼ì–´ë‚˜ë©´ì„œ, -"ì´ë”°ê°€ 제가 ì •ìž„ì´í—ˆêµ¬ 갑니다." -하고 내게 ëˆˆì„ ë”ì©ê±°ë ¤ 보였다. ê°‘ìžê¸° ì •ìž„ì´ê°€ 가면 어머니와 ì •ìž„ì´ì™€ 사ì´ì— ì–´ë– í•œ íŒŒëž€ì´ ì¼ì–´ë‚˜ì§€ë‚˜ 아니할까 하고 순임ì´ê°€ 염려하는 것ì´ì—ˆë‹¤. ìˆœìž„ë„ ì¸ì œëŠ” 노성하여졌다고 나는 ìƒê°í•˜ì˜€ë‹¤. -"ì„ ìƒë‹˜ ì´ íŽ¸ì§€ê°€ 다 ì°¸ë§ì¼ê¹Œìš”?" -하고 나를 보는 길로 ìµœì„ ë¶€ì¸ì´ 물었다. ìµœì„ ë¶€ì¸ì€ 히스테리를 ì¼ìœ¼í‚¨ 사람 모양으로 머리와 ì†ì„ 떨었다. -나는 ì°¸ë§ì´ëƒ 하는 ê²ƒì´ ë¬´ì—‡ì„ ê°€ë¦¬í‚¤ëŠ” ë§ì¸ì§€ 분명하지 아니하여서, -"ë…¸ì„ì´ ê±°ì§“ë§í•  사람입니까?" -하고 대체론으로 대답하였다. -"앉으십쇼. 앉으시란 ë§ì”€ë„ 안 하고." -하고 부ì¸ì€ 침착한 ëª¨ì–‘ì„ ë³´ì´ë ¤ê³  빙그레 웃었으나, ê·¸ê²ƒì€ ì‹¤íŒ¨ì˜€ë‹¤. -"그게 ì°¸ë§ì¼ê¹Œìš”? ì •ìž„ì´ê°€ 아기를 ë—€ ê²ƒì´ ì•„ë‹ˆë¼, íê°€ 나빠서 피를 토하고 ìž…ì›í•˜ì˜€ë‹¤ëŠ” 것ì´?" -하고 부ì¸ì€ 중대하다는 í‘œì •ì„ ê°€ì§€ê³  묻는다. -"그럼 ê·¸ê²ƒì´ ì°¸ë§ì´ 아니구요. ì•„ì§ë„ 그런 ì˜ì‹¬ì„ 가지고 계십니까. ì •ìž„ì´ì™€ í•œ ë°©ì— ìžˆëŠ” í•™ìƒì´ 모함한 것ì´ë¼ê³  안 그랬어요? 그게 ë§ì´ ë©ë‹ˆê¹Œ." -하고 ì–¸ì„±ì„ ë†’ì—¬ì„œ 대답하였다. -"그럼 왜 ì •ìž„ì´ê°€ 호텔ì—ì„œ 왜 아버지한테 í•œ 번 안아 달ë¼ê³  그래요? ê·¸ íŽ¸ì§€ì— ì“´ 대로 í•œ 번 안아만 보았ì„까요?" -ì´ê²ƒì€ 부ì¸ì˜ 둘째 물ìŒì´ì—ˆë‹¤. -"나는 ê·¸ë¿ì´ë¼ê³  믿습니다. ê·¸ê²ƒì´ ë„리어 깨ë—하다는 í‘œë¼ê³  믿습니다. 안 그렇습니까?" -하고 나는 딱하다는 í‘œì •ì„ í•˜ì˜€ë‹¤. -"글쎄요." -하고 부ì¸ì€ 한참ì´ë‚˜ ìƒê°í•˜ê³  있다가, -"ì •ë§ ì•  아버지가 í˜¼ìž ë‹¬ì•„ë‚¬ì„까요? ì •ìž„ì´ë¥¼ ë°ë¦¬ê³  가케오치한 ê²ƒì´ ì•„ë‹ê¹Œìš”? ê¼­ ê·¸ëž¬ì„ ê²ƒë§Œ ê°™ì€ë°." -하고 부ì¸ì€ 괴로운 í‘œì •ì„ ê°ì¶”려는 ë“¯ì´ ê³ ê°œë¥¼ 숙ì¸ë‹¤. -나는 남편ì—게 대한 ì•„ë‚´ì˜ ì˜ì‹¬ì´ 어떻게 깊ì€ê°€ì— 아니 놀랄 수가 없어서, -"í—ˆ." -하고 í•œ 마디 웃고, -"그렇게 수십 ë…„ ë™ì•ˆ 부부 ìƒí™œì„ í•˜ì‹œê³ ë„ ê·¸ë ‡ê²Œ ë…¸ì„ì˜ ì¸ê²©ì„ ëª°ë¼ ì£¼ì‹­ë‹ˆê¹Œ. 나는 부ì¸ê»˜ì„œ 하시는 ë§ì”€ì´ 부러 하시는 ë†ë‹´ìœ¼ë¡œë°–ì— ì•„ë‹ˆ 들립니다. ì •ìž„ì´ê°€ 지금 서울 있습니다." -하고 ë˜ í•œ 번 웃었다. ì •ë§ ê¸°ë§‰ížŒ 웃ìŒì´ì—ˆë‹¤. -"ì •ìž„ì´ê°€ 서울 있어요?" -하고 부ì¸ì€ íŽ„ì© ë›°ë©´ì„œ, -"ì–´ë”” 있다가 언제 왔습니까? 그게 ì •ë§ìž…니까?" -하고 ì˜ì•„í•œ ë¹›ì„ ë³´ì¸ë‹¤. ê¼­ 최ì„ì´í•˜ê³  함께 ë‹¬ì•„ë‚¬ì„ ì •ìž„ì´ê°€ ì„œìš¸ì— ìžˆì„ ë¦¬ê°€ 없는 것ì´ì—ˆë‹¤. -"ë™ê²½ì„œ 오늘 ì•„ì¹¨ì— ì™”ìŠµë‹ˆë‹¤. 지금 우리 집ì—ì„œ 순임ì´í—ˆêµ¬ ì´ì•¼ê¸°ë¥¼ 하고 있으니까 조금 있으면 뵈오러 올 것입니다." -하고 나는 ì •ìž„ì´ê°€ 분명히 서울 있는 ê²ƒì„ ì¼ì¼ì´ ì¦ê±°ë¥¼ 들어서 ì¦ëª…하였다. 그리고 우스운 ê²ƒì„ ì†ìœ¼ë¡œ 참았다. 그러나 ë‹¤ìŒ ìˆœê°„ì—는 ì´ ë³‘ë“¤ê³  ëŠ™ì€ ì•„ë‚´ì˜ ì§ˆíˆ¬ì™€ ì˜ì‹¬ìœ¼ë¡œ 괴로워서 ëœëœëœëœ 떨고 앉았는 ê²ƒì„ ê°€ì—¾ê²Œ ìƒê°í•˜ì˜€ë‹¤. -ì •ìž„ì´ê°€ 지금 ì„œìš¸ì— ìžˆëŠ” ê²ƒì´ ë” ì˜ì‹¬í•  여지가 없는 ì‚¬ì‹¤ìž„ì´ íŒëª…ë˜ë§¤, 부ì¸ì€ ë„리어 ë‚™ë§í•˜ëŠ” 듯하였다. 그가 ì œ 마ìŒëŒ€ë¡œ 그려 놓고 믿고 í•˜ë˜ ëª¨ë“  ì² í•™ì˜ ê³„í†µì´ ë¬´ë„ˆì§„ 것ì´ì—ˆë‹¤. -한참ì´ë‚˜ í©ì–´ì§„ ì •ì‹ ì„ ëª» 수습하는 ë“¯ì´ ì•‰ì•„ 있ë”니 아주 기운 없는 ì–´ì¡°ë¡œ, -"ì„ ìƒë‹˜ ì•  아버지가 ì •ë§ ì£½ì„까요? ì •ë§ ì˜ì˜ 집ì—를 안 ëŒì•„올까요?" -하고 묻는다. ê·¸ 눈ì—는 ë²Œì¨ ëˆˆë¬¼ì´ ì–´ë¦¬ì—ˆë‹¤. -"글쎄요. ë‚´ ìƒê° 같아서는 다시는 ì§‘ì— ëŒì•„오지 아니할 것 같습니다. ë˜ ê·¸ë§Œì¹˜ ë§ì‹ ì„ 했으니, ì´ì œ 무슨 낯으로 ëŒì•„옵니까. ë‚´ë¼ë„ 다시 ì§‘ì— ëŒì•„올 ìƒê°ì€ 아니 내겠습니다." -하고 나는 ì˜ì‹ì ìœ¼ë¡œ ì•…ì˜ë¥¼ 가지고 부ì¸ì˜ ê°€ìŠ´ì— ì¹¼ì„ í•˜ë‚˜ 박았다. -ê·¸ ì¹¼ì€ ë¶„ëª…ížˆ 부ì¸ì˜ ê°€ìŠ´ì— ì•„í”„ê²Œ 박힌 모양ì´ì—ˆë‹¤. -"ì„ ìƒë‹˜. 어떡하면 좋습니까. ì•  아버지가 죽지 않게 í•´ 주세요. 그렇지 ì•Šì•„ë„ ìˆœìž„ì´ë…„ì´ ì œê°€ ê±” 아버지를 달아나게나 í•œ 것처럼 ì›ë§ì„ 하는ë°ìš”. 그러다가 ì •ë…• 죽으면 어떻게 합니까. ì œì¼ ë”´ ìžì‹ë“¤ì˜ ì›ë§ì„ 들ì„ê¹Œë´ ê²ì´ 납니다. ì„ ìƒë‹˜, 어떻게 ì•  아버지를 붙들어다 주세요." -하고 마침내 ì°¸ì„ ìˆ˜ ì—†ì´ ìš¸ì—ˆë‹¤. ë§ì€ ë¹„ë¡ ìžì‹ë“¤ì˜ ì›ë§ì´ ë‘렵다고 하지마는 ì§ˆíˆ¬ì˜ ê°ì •ì´ 스러질 ë•Œì— ê·¸ì—게는 남편ì—게 대한 ì•„ë‚´ì˜ ì• ì •ì´ ë§‰í˜”ë˜ ë¬¼ê³¼ ê°™ì´ í„°ì ¸ 나온 것ì´ë¼ê³  나는 í•´ì„하였다. -"글쎄, ì–´ë”” 있는 줄 알고 찾습니까. ë…¸ì„ì˜ ì„±ë¯¸ì— í•œë²ˆ 아니 한다고 했으면 다시 편지할 리는 만무하다고 믿습니다." -하여 나는 부ì¸ì˜ ê°€ìŠ´ì— ë‘˜ì§¸ ì¹¼ë‚ ì„ ë°•ì•˜ë‹¤. -나는 ë¹„ë¡ ìµœì„ì˜ ë¶€ì¸ì´ 청하지 아니하ë”ë¼ë„ 최ì„ì„ ì°¾ìœ¼ëŸ¬ 떠나지 아니하면 아니 ë  ì˜ë¬´ë¥¼ 진다. ì‚° 최ì„ì„ ëª» ì°¾ë”ë¼ë„ 최ì„ì˜ ì‹œì²´ë¼ë„, 무ë¤ì´ë¼ë„, ì£½ì€ ìžë¦¬ë¼ë„, 마지막 ìžˆë˜ ê³³ì´ë¼ë„ 찾아보지 아니하면 아니 ë  ì˜ë¬´ë¥¼ 깨닫는다. -그러나 ì‹œêµ­ì´ ë³€í•˜ì—¬ ê·¸ ë•Œì—는 ì•„ë¼ì‚¬ì— 가는 ê²ƒì€ ì—¬ê°„ 곤란한 ì¼ì´ 아니었다. ê·¸ ë•Œì—는 ë¶ë§Œì˜ í’ìš´ì´ ê¸‰ë°•í•˜ì—¬ 만주리를 통과하기는 ì‚¬ì‹¤ìƒ ë¶ˆê°€ëŠ¥ì— ê°€ê¹Œì› ë‹¤. 마ì ì‚°(馬å å±±) ì¼íŒŒì˜ 군대가 í¥ì•ˆë ¹, 하ì¼ë¼ë¥´ ë“±ì§€ì— ì›…ê±°í•˜ì—¬ 언제 대충ëŒì´ í­ë°œë ëŠ”지 ëª¨ë¥´ë˜ ë•Œì˜€ë‹¤. ì´ ë•Œë¬¸ì— ì‹œë² ë¦¬ì•„ì— ë“¤ì–´ê°€ê¸°ëŠ” ê±°ì˜ ì ˆë§ ìƒíƒœë¼ê³  하겠고, ë˜ ê´€í—Œë„ ì•„ë¼ì‚¬ì— 들어가는 ì—¬í–‰ê¶Œì„ ìž˜ êµë¶€í•  것 같지 아니하였다. -부ì¸ì€ 울고, 나는 ì´ëŸ° ìƒê° 저런 ìƒê° 하고 있는 ë™ì•ˆì— 문 ë°–ì—는 순임ì´, ì •ìž„ì´ê°€ 들어오는 소리가 들렸다. -"ì•„ì´, ì •ìž„ì´ëƒ." -하고 부ì¸ì€ 반갑게 허리 굽혀 ì¸ì‚¬í•˜ëŠ” ì •ìž„ì˜ ì–´ê¹¨ì— ì†ì„ 대고, -"ìž ì•‰ì•„ë¼. 그래 ì¸ì œ ë³‘ì´ ì¢€ 나으ëƒâ€¦â€¦ 수척했구나. ë” ë…¸ì„±í•´ì§€êµ¬ ë°˜ ë…„ë„ ëª» ë˜ì—ˆëŠ”ë°." -하고 ì •ìž„ì—게 대하여 ì• ì •ì„ í‘œí•˜ëŠ” ê²ƒì„ ë³´ê³  나는 ì˜ì™¸ì§€ë§ˆëŠ” 다행으로 ìƒê°í•˜ì˜€ë‹¤. 나는 ì •ìž„ì´ê°€ 오면 보기 ì‹«ì€ í•œ ì‹ ì„ ì—°ì¶œí•˜ì§€ 않나 하고 ê·¼ì‹¬í•˜ì˜€ë˜ ê²ƒì´ë‹¤. -"í¬ ìž˜ ìžë¼ìš”?" -하고 ì •ìž„ì€ í•œì°¸ì´ë‚˜ 있다가 비로소 ìž…ì„ ì—´ì—ˆë‹¤. -"ì‘, 잘 있단다. 컸나 ê°€ ë³´ì•„ë¼." -하고 부ì¸ì€ ë”ìš± 반가운 í‘œì •ì„ ë³´ì¸ë‹¤. -"ì–´ëŠ ë°©ì´ì•¼?" -하고 ì •ìž„ì€ ì„ ë¬¼ ë³´í‰ì´ë¥¼ 들고 순임과 함께 나가 버린다. ì—¬ìžì¸ ì •ìž„ì€ í¬ì™€ 순임과 부ì¸ê³¼ ë˜ ìˆœìž„ì˜ ë‹¤ë¥¸ ë™ìƒì—게 선물 사 오는 ê²ƒì„ ìžŠì–´ë²„ë¦¬ì§€ 아니하였다. -ì •ìž„ê³¼ ìˆœìž„ì€ í•œ ì´ì‚¼ 분 있다가 ëŒì•„왔다. ë°–ì—ì„œ í¬ê°€ 무엇ì´ë¼ê³  지절대는 소리가 들린다. 아마 ì •ìž„ì´ê°€ 사다 준 ì„ ë¬¼ì„ ë°›ê³  좋아하는 모양ì´ë‹¤. -ì •ìž„ì€ ë“¤ê³  온 ë³´í‰ì´ì—ì„œ ì—¬ìžìš© 배스로브 하나를 ë‚´ì–´ì„œ 부ì¸ì—게주며, -"맞으실까?" -하였다. -"ì•„ì´ ê·¸ê±´ 무어ë¼ê³  사 왔니?" -하고 부ì¸ì€ 좋아ë¼ê³  ìž…ì–´ ë³´ê³ , ì´ë¦¬ ë³´ê³  저리 ë³´ê³  하면서, -"ë‚œ ì´ëŸ° ê±° ì²˜ìŒ ìž…ì–´ 본다." -하고 ìžê¾¸ ëˆì„ ë™ì—¬ë§¨ë‹¤. -"ì •ìž„ì´ê°€ ë‚œ 파ìžë§ˆë¥¼ 사다 주었어." -하고 ìˆœìž„ì€ ë”°ë¡œ ìŒŒë˜ êµµì€ ì¤„ 있는 융 파ìžë§ˆë¥¼ ë‚´ì–´ì„œ 경매장 사람 모양으로 í”들어 ë³´ì´ë©°, -"어머니 ê·¸ 배스로브 나 주우. 어머닌 늙ì€ì´ê°€ 그건 ìž…ì–´ì„œ 무엇 하우?" -하고 부ì¸ì´ ìž…ì€ ë°°ìŠ¤ë¡œë¸Œë¥¼ 벗겨서 제가 ìž…ê³  ë‘ í˜¸ì£¼ë¨¸ë‹ˆì— ì†ì„ 넣고 어기죽어기죽하고 서양 부ì¸ë„¤ í‰ë‚´ë¥¼ 낸다. -"저런 ë§ê´„량ì´ê°€ ë„ˆë„ ì •ìž„ì´ì²˜ëŸ¼ 좀 얌전해 ë³´ì•„ë¼." -하고 부ì¸ì€ ìˆœìž„ì„ í–¥í•˜ì—¬ ëˆˆì„ í˜ê¸´ë‹¤. -ì´ ëª¨ì–‘ìœ¼ë¡œ 부ì¸ê³¼ ì •ìž„ê³¼ì˜ ëŒ€ë©´ì€ ê°€ìž¥ ì›ë§Œí•˜ê²Œ ë˜ì—ˆë‹¤. -그러나 부ì¸ì€ ì •ìž„ì—게 최ì„ì˜ íŽ¸ì§€ë¥¼ ë³´ì´ê¸°ë¥¼ ì›ì¹˜ 아니하였다. 편지가 왔다는 ë§ì¡°ì°¨ ìž… ë°–ì— ë‚´ì§€ 아니하였다. 그러나 순임ì´ê°€ ì •ìž„ì—게 대하여 표하는 ì• ì •ì€ ì—¬ê°„ 깊지 아니하였다. ê·¸ ë‘˜ì€ í•˜ë£¨ ì¢…ì¼ ê°™ì´ ìžˆì—ˆë‹¤. ì •ìž„ì€ ê·¸ ë‚  ì €ë…ì— ë‚˜ë¥¼ ë³´ê³ , -"순임ì´í—Œí…Œ 최 ì„ ìƒë‹˜ 편지 ì‚¬ì—°ì€ ë‹¤ 들었어요. 순임ì´ê°€ ê·¸ 편지를 í›”ì³ë‹¤ê°€ 얼른얼른 몇 êµ°ë° ì½ì–´ë„ 보았습니다. 순임ì´ê°€ 저를 í½ ë™ì •í•˜ë©´ì„œ ì ˆë”러 최 ì„ ìƒì„ ë”°ë¼ê°€ ë³´ë¼ê³  그래요. í˜¼ìž ê°€ê¸°ê°€ 어려우면 ìžê¸°í—ˆêµ¬ ê°™ì´ ê°€ìžê³ . 가서 최 ì„ ìƒì„ ë°ë¦¬ê³  오ìžê³ . 어머니가 못 가게 하거든 몰래 ë‘˜ì´ ë„ë§í•´ ê°€ìžê³ . 그래서 그러ìžê³  그랬습니다. 안ë지요. ì„ ìƒë‹˜?" -하고 ì €í¬ë¼ë¦¬ ìž‘ì •ì€ ë‹¤ í•´ 놓고는 ìŠ¬ì© ë‚´ ì˜í–¥ì„ 물었다. -"ì Šì€ ì—¬ìž ë‹¨ë‘˜ì´ì„œ 먼 ì—¬í–‰ì„ ì–´ë–»ê²Œ 한단 ë§ì´ëƒ? 게다가 지금 ë¶ë§Œì£¼ 형세가 대단히 위급한 모양ì¸ë°. ë˜ ì •ìž„ì´ëŠ” ê·¸ ê±´ê°• 가지고 어디를 ê°€, ì´ ì¶”ìš´ 겨울ì—?" -하고 나는 ì´ëŸ° ë§ì´ 다 쓸ë°ì—†ëŠ” ë§ì¸ 줄 ì•Œë©´ì„œë„ ì–´ë¥¸ìœ¼ë¡œì„œ í•œ 마디 안 í•  수 없어서 하였다. ì •ìž„ì€ ë” ì œ ëœ»ì„ ì£¼ìž¥í•˜ì§€ë„ ì•„ë‹ˆí•˜ì˜€ë‹¤. -ê·¸ ë‚  ì €ë…ì— ì •ìž„ì€ ìˆœìž„ì˜ ì§‘ì—ì„œ 잤는지 ì§‘ì— ì˜¤ì§€ë¥¼ 아니하였다. -나는 ì´ ì¼ì„ 어찌하면 좋ì€ê°€, ì´ ë‘ ì—¬ìžì˜ í–‰ë™ì„ 어찌하면 좋ì€ê°€ 하고 í˜¼ìž ë™ë™ ìƒê°í•˜ê³  있었다. -ì´íŠ¿ë‚  나는 ê¶ê¸ˆí•´ì„œ 최ì„ì˜ ì§‘ì—를 ê°”ë”니 부ì¸ì´, -"우리 ìˆœìž„ì´ ëŒì— 갔어요?" -하고 ì˜ì™¸ì˜ ì§ˆë¬¸ì„ í•˜ì˜€ë‹¤. -"아니오." -하고 나는 놀ëžë‹¤. -"그럼, ì´ê²ƒë“¤ì´ 어딜 갔어요? ë‚œ ì •ìž„ì´í—ˆêµ¬ ëŒì—ì„œ ìž” 줄만 알았는ë°." -하고 부ì¸ì€ 무슨 불길한 것ì´ë‚˜ 본 ë“¯ì´ ëª¸ì„ ë–¤ë‹¤. 히스테리가 ì¼ì–´ë‚œ 것ì´ì—ˆë‹¤. -나는 ìž…ë§›ì„ ë‹¤ì‹œì—ˆë‹¤. 분명히 ì´ ë‘ ì—¬ìžê°€ 시베리아를 향하고 떠났구나 하였다. -ê·¸ ë‚ ì€ ì†Œì‹ì´ ì—†ì´ ì§€ë‚¬ë‹¤. ê·¸ ì´íŠ¿ë‚ ë„ 소ì‹ì´ ì—†ì´ ì§€ë‚¬ë‹¤. -ìµœì„ ë¶€ì¸ì€ 딸까지 잃어버리고 미친 ë“¯ì´ ìš¸ê³  애통하다가 머리를 싸매고 누워 버리고 ë§ì•˜ë‹¤. -ì •ìž„ì´ì™€ 순임ì´ê°€ 없어진 지 ì‚¬í˜ ë§Œì— ì•„ì¹¨ ìš°íŽ¸ì— íŽ¸ì§€ í•œ ìž¥ì„ ë°›ì•˜ë‹¤. ê·¸ 봉투는 봉천 ì•¼ë§ˆë„ í˜¸í…” 것ì´ì—ˆë‹¤. ê·¸ ì†ì—는 편지 ë‘ ìž¥ì´ ë“¤ì–´ 있었다. í•œ ìž¥ì€ , -ì„ ìƒë‹˜! 저는 아버지를 위하여, ì •ìž„ì„ ìœ„í•˜ì—¬ ì •ìž„ê³¼ ê°™ì´ ì§‘ì„ ë– ë‚¬ìŠµë‹ˆë‹¤. -어머님께서 슬í¼í•˜ì‹¤ ì¤„ì€ ì•Œì§€ë§ˆëŠ” ì €í¬ë“¤ì´ 다행히 아버지를 찾아서 모시고 오면 ì–´ë¨¸ë‹ˆê»˜ì„œë„ ê¸°ë»í•˜ì‹¤ ê²ƒì„ ë¯¿ìŠµë‹ˆë‹¤. ì €í¬ë“¤ì´ 가지 아니하고는 아버지는 ì‚´ì•„ì„œ ëŒì•„오실 것 같지 아니합니다. 아버지를 ì´ì²˜ëŸ¼ 불행하시게 í•œ 죄는 ì ˆë°˜ì€ ì–´ë¨¸ë‹ˆê»˜ 있고, ì ˆë°˜ì€ ì œê²Œ 있습니다. 저는 아버지 ì¼ì„ ìƒê°í•˜ë©´ ê°€ìŠ´ì´ ë¯¸ì–´ì§€ê³  ì´ê°€ 갈립니다. 저는 아무리 í•´ì„œë¼ë„ 아버지를 찾아내어야겠습니다. -저는 ì •ìž„ì„ ë¬´í•œížˆ ë™ì •í•©ë‹ˆë‹¤. 저는 어려서 ì •ìž„ì„ ë¯¸ì›Œí•˜ê³  아버지를 미워하였지마는 ì§€ê¸ˆì€ ì•„ë²„ì§€ì˜ ë§ˆìŒê³¼ ì •ìž„ì˜ ë§ˆìŒì„ 알아볼 만치 ìžëžìŠµë‹ˆë‹¤. -ì„ ìƒë‹˜! ì €í¬ë“¤ì€ ë‘˜ì´ ì†ì„ ìž¡ê³  어디를 가서든지 아버지를 찾아내겠습니다. í•˜ë‚˜ë‹˜ì˜ ì‚¬ìžê°€ ë‚®ì—는 êµ¬ë¦„ì´ ë˜ê³  ë°¤ì—는 ë³„ì´ ë˜ì–´ì„œ 반드시 ì €í¬ë“¤ì˜ ì•žê¸¸ì„ ì¸ë„í•  줄 믿습니다. -ì„ ìƒë‹˜, ì €í¬ ì–´ë¦°ê²ƒë“¤ì˜ ëœ»ì„ ë¶ˆìŒížˆ 여기셔서 ëˆ ì²œ ì›ë§Œ ì „ë³´ë¡œ ë³´ë‚´ 주시기를 ë°”ëžë‹ˆë‹¤. -ë§Œì¼ ë§Œì£¼ë¦¬ë¡œ 가는 ê¸¸ì´ ëŠì–´ì§€ë©´ 몽고로 ìžë™ì°¨ë¡œë¼ë„ 가려고 합니다. 아버지 íŽ¸ì§€ì— ì ížŒ Fì—­ì˜ R씨를 찾고, 그리고 ë°”ì´ì¹¼ í˜¸ë°˜ì˜ ë°”ì´ì¹¼ë¦¬ìŠ¤ì½”ì—를 찾아, ì´ ëª¨ì–‘ìœ¼ë¡œ 찾으면 반드시 아버지를 찾아 내고야 ë§ ê²ƒì„ ë¯¿ìŠµë‹ˆë‹¤. -ì„ ìƒë‹˜, ëˆ ì²œ ì›ë§Œ 봉천 ì•¼ë§ˆë„ í˜¸í…” 최순임 ì´ë¦„으로 ë¶€ì³ ì£¼ì„¸ìš”. 그리고 어머니헌테는 ì•„ì§ ë§ì”€ ë§ì•„ 주세요. -ì„ ìƒë‹˜. ì´ë ‡ê²Œ 걱정하시게 í•´ì„œ 미안합니다. 용서하세요. -순임 ìƒì„œ -ì´ë ‡ê²Œ ì¨ ìžˆë‹¤. ë˜ í•œ 장ì—는, -ì„ ìƒë‹˜! 저는 마침내 ëŒì•„오지 못할 ê¸¸ì„ ë– ë‚˜ë‚˜ì´ë‹¤. 어디든지 최 ì„ ìƒë‹˜ì„ 뵈옵는 ê³³ì—ì„œ ì´ ëª¸ì„ ë¬»ì–´ 버리려 하나ì´ë‹¤. 지금 ë˜ ëª¸ì— ì—´ì´ ë‚˜ëŠ” 모양ì´ìš”, í˜ˆë‹´ë„ ë³´ì´ì˜¤ë‚˜ 최 ì„ ìƒì„ 뵈올 때까지는 아무리 하여서ë¼ë„ ì´ ëª©ìˆ¨ì„ ë¶€ì§€í•˜ë ¤ 하오며, 최 ì„ ìƒì„ 뵈옵고 제가 진 ì€í˜œë¥¼ ê°ì‚¬í•˜ëŠ” í•œ ë§ì”€ë§Œ 사뢰면 고대 ì£½ì‚¬ì™€ë„ ì—¬í•œì´ ì—†ì„까 하나ì´ë‹¤. -순임 언니가 제게 주시는 사랑과 ë™ì •ì€ ì˜¤ì§ ëˆˆë¬¼ê³¼ ê°ê²©ë°–ì— ë” í‘œí•  ë§ì”€ì´ 없나ì´ë‹¤. 순임 언니가 저를 보호하여 주니 마ìŒì´ 든든하여ì´ë‹¤â€¦â€¦. -ì´ë¼ê³  하였다. -편지를 보아야 별로 놀랄 ê²ƒì€ ì—†ì—ˆë‹¤. 다만 ë§ê´„량ì´ë¡œë§Œ ì•Œì•˜ë˜ ìˆœìž„ì˜ ì†ì— ì–´ëŠìƒˆì— 그러한 ê°ì •ì´ 발달하였나 하는 ê²ƒì„ ë†€ëž„ ë¿ì´ì—ˆë‹¤. -그러나 ê±±ì •ì€ ì´ê²ƒì´ë‹¤. 순임ì´ë‚˜ ì •ìž„ì´ë‚˜ 다 ë‚´ê°€ ê°ë…해야 í•  ì²˜ì§€ì— ìžˆê±°ëŠ˜ ê·¸ë“¤ì´ ë§Œë¦¬ 긴 ì—¬í–‰ì„ ë– ë‚œë‹¤ê³  하니 ê°ë…ìžì¸ ë‚´ 태ë„를 어떻게 할까 하는 것ì´ë‹¤. -나는 편지를 받는 길로 ìš°ì„  ëˆ ì²œ ì›ì„ ì€í–‰ì— 가서 찾아다 놓았다. -ì•”ë§Œí•´ë„ ë‚´ê°€ ì„œìš¸ì— ê°€ë§Œížˆ 앉아서 ë‘ ì•„ì´ì—게 ëˆë§Œ ë¶€ì³ ì£¼ëŠ” ê²ƒì´ ì¸ì •ì— 어그러지는 것 같아서 나는 여러 가지로 ì£¼ì„ ì„ í•˜ì—¬ì„œ ì—¬í–‰ì˜ ì–‘í•´ë¥¼ 얻어 가지고 ë´‰ì²œì„ í–¥í•˜ì—¬ 떠났다. -ë‚´ê°€ ë´‰ì²œì— ë„ì°©í•œ ê²ƒì€ ë°¤ 열시가 지나서였다. 순임과 ì •ìž„ì€ ìžë¦¬ì˜· 바람으로 ë‚´ 방으로 달려와서 반가워하였다. ê·¸ë“¤ì´ ë°˜ê°€ì›Œí•˜ëŠ” ì–‘ì€ ì‹¤ë¡œ ëˆˆë¬¼ì´ í를 만하였다. -"ì•„ì´êµ¬ ì„ ìƒë‹˜!" -"ì•„ì´êµ¬ 어쩌면!" -하는 ê²ƒì´ ê·¸ë“¤ì˜ ë‚´ê²Œ 대한 ì¸ì‚¬ì˜ 전부였다. -"ì •ìž„ì´ ì–´ë– ì˜¤?" -하고 나는 ìˆœìž„ì˜ íŽ¸ì§€ì— ì •ìž„ì´ê°€ ì—´ì´ ìžˆë‹¨ ë§ì„ ìƒê°í•˜ì˜€ë‹¤. -"무어요. 괜찮습니다." -하고 ì •ìž„ì€ ì›ƒì—ˆë‹¤. -ì „ë“±ë¹›ì— ë³´ì´ëŠ” ì •ìž„ì˜ ì–¼êµ´ì€ ê·¸ì•¼ë§ë¡œ 대리ì„으로 ê¹Žì€ ë“¯í•˜ì˜€ë‹¤. 여위고 í•ê¸°ê°€ 없는 ê²ƒì´ ë”ìš± ì •ìž„ì˜ ìš©ëª¨ì— ì—„ìˆ™í•œ ë§›ì„ ì£¼ì—ˆë‹¤. -"ëˆ ê°€ì ¸ì˜¤ì…¨ì–´ìš”?" -하고 순임ì´ê°€ 어리광 절반으로 묻다가 ë‚´ê°€ 웃고 ëŒ€ë‹µì´ ì—†ìŒì„ ë³´ê³ , -"우리를 붙들러 오셨어요?" -하고 성내는 ì–‘ì„ ë³´ì¸ë‹¤. -"그래 둘ì´ì„œë“¤ 간다니 어떻게 간단 ë§ì¸ê°€. 시베리아가 ì–´ë–¤ ê³³ì— ë¶™ì—ˆëŠ”ì§€ ì•Œì§€ë„ ëª»í•˜ë©´ì„œ." -하고 나는 ë‘ ì‚¬ëžŒì´ ê·¸ë¦¬ 슬í¼í•˜ì§€ 아니하는 ìˆœê°„ì„ ë³´ëŠ” ê²ƒì´ ë‹¤í–‰í•˜ì—¬ì„œ ë†ë‹´ì‚¼ì•„ 물었다. -"왜 몰ë¼ìš”? 시베리아가 저기 아니야요?" -하고 순임ì´ê°€ ì‚°í•´ê´€ ìª½ì„ ê°€ë¦¬í‚¤ë©°, -"ìš°ë¦¬ë„ ì§€ë¦¬ì—ì„œ 배워서 다 알아요. 어저께 하루 ì¢…ì¼ ì§€ë„를 사다 놓고 연구를 하였답니다. 봉천서 ì‹ ê²½, 신경서 하얼빈, 하얼빈ì—ì„œ 만주리, 만주리ì—ì„œ ì´ë¥´ì¿ ì¸ í¬, 보세요, 잘 알지 않습니까. ë˜ ë§Œì¼ ì¤‘ë™ ì² ë„ê°€ 불통ì´ë©´ 어떻게 가는고 하니 여기서 ì‚°í•´ê´€ì„ ê°€ê³ , 산해관서 ë¶ê²½ì„ 가지요. 그리고는 ë¶ê²½ì„œ 장가구를 가지 않습니까. 장가구서 ìžë™ì°¨ë¥¼ 타고 몽고를 통과해서 가거든요. 잘 알지 않습니까." -하고 ì •ìž„ì˜ í—ˆë¦¬ë¥¼ 안으며, -"그렇지ì´?" -하고 ìžì‹  있는 ë“¯ì´ ì›ƒëŠ”ë‹¤. -"ë˜ ëª½ê³ ë¡œë„ ëª» 가게 ë˜ì–´ì„œ 구ë¼íŒŒë¥¼ ëŒê²Œ ë˜ë©´?" -하고 나는 êµì‚¬ê°€ ìƒë„ì—게 묻는 모양으로 물었다. -"네, ì € ì¸ë„양으로 í•´ì„œ 지중해로 í•´ì„œ 프랑스로 í•´ì„œ 그렇게 가지요." -"í—ˆ, 잘 아는구나." -하고 나는 웃었다. -"그렇게만 알아요? ë˜ í•´ì‚¼ìœ„ë¡œ í•´ì„œ 가는 ê¸¸ë„ ì•Œì•„ìš”. ì €í¬ë¥¼ 어린애로 아시네." -"잘못했소." -"하하." -"후후." -사실 ê·¸ë“¤ì€ ë²Œì¨ ì–´ë¦°ì• ë“¤ì€ ì•„ë‹ˆì—ˆë‹¤. ìˆœìž„ë„ ë²Œì¨ ê·¸ ì•„ë²„ì§€ì˜ ë§í•  수 없는 ì‚¬ì •ì— ë™ì •í•  나ì´ê°€ ë˜ì—ˆë‹¤. 순임ì´ê°€ 기어다닌 ê²ƒì€ ë³¸ 나로는 ì´ê²ƒë„ ì´ìƒí•˜ê²Œ 보였다. 나는 ë²Œì¨ ë‚˜ì´ ë§Žì•˜êµ¬ë‚˜ 하는 ìƒê°ì´ 나지 아니할 수 없었다. -나는 ìž  안 드는 í•˜ë£»ë°¤ì„ ì§€ë‚´ë©´ì„œ 옆방ì—ì„œ ì •ìž„ì´ê°€ ê¸°ì¹¨ì„ ì§“ëŠ” 소리를 들었다. ê·¸ 소리는 ë‚´ ê°€ìŠ´ì„ ì•„í”„ê²Œ 하였다. -ì´íŠ¿ë‚  나는 ë‘ ì‚¬ëžŒì—게 ëˆ ì²œ ì›ì„ 주어서 ì‹ ê²½ 가는 급행차를 태워 주었다. ëŒ€ë¥™ì˜ ì´ ê±´ì¡°í•˜ê³  추운 ê¸°í›„ì— ì •ìž„ì˜ ë³‘ë“  íê°€ 견디어 날까 하고 마ìŒì´ 놓ì´ì§€ 아니하였다. 그러나 나는 ê·¸ë“¤ì„ ê°€ë¼ê³  권할 수는 ìžˆì–´ë„ ê°€ì§€ ë§ë¼ê³  붙들 수는 없었다. 다만 ì œ 아버지, ì œ ì• ì¸ì„ 죽기 ì „ì— ë§Œë‚  수 있기만 빌 ë¿ì´ì—ˆë‹¤. -나는 ë‘ ì•„ì´ë¥¼ ë¶ìª½ìœ¼ë¡œ 떠나 ë³´ë‚´ê³  í˜¼ìž ì—¬ê´€ì— ë“¤ì–´ì™€ì„œ ë„무지 ì •ì‹ ì„ ì§„ì •í•˜ì§€ 못하여 ìˆ ì„ ë¨¹ê³  잊으려 하였다. 그러다가 ê·¸ ë‚  밤차로 서울로 ëŒì•„왔다. -ì´íŠ¿ë‚  ì•„ì¹¨ì— ë‚˜ëŠ” ìµœì„ ë¶€ì¸ì„ 찾아서 순임과 ì •ìž„ì´ê°€ 시베리아로 갔단 ë§ì„ 전하였다. -ê·¸ ë•Œì— ìµœ 부ì¸ì€ ê±°ì˜ ì•„ë¬´ ì •ì‹ ì´ ì—†ëŠ” 듯하였다. 아무 ë§ë„ 하지 아니하고 울고만 있었다. -얼마 있다가 부ì¸ì€, -"ê·¸ê²ƒë“¤ì´ ì €í¬ë“¤ë¼ë¦¬ 가서 괜찮ì„까요?" -하는 í•œ 마디를 í•  ë¿ì´ì—ˆë‹¤. -ë©°ì¹  í›„ì— ìˆœìž„ì—게서 편지가 왔다. ê·¸ê²ƒì€ í•˜ì–¼ë¹ˆì—ì„œ 부친 것ì´ì—ˆë‹¤. -í•˜ì–¼ë¹ˆì„ ì˜¤ëŠ˜ 떠납니다. í•˜ì–¼ë¹ˆì— ì™€ì„œ 아버지 친구 ë˜ì‹œëŠ” Rì†Œìž¥ì„ ë§Œë‚˜ëµˆì˜µê³  아버지 ì¼ì„ 물어 보았습니다. 그리고 ì €í¬ ë‘˜ì´ì„œ 찾아 떠났다는 ë§ì”€ì„ 하였ë”니 Rì†Œìž¥ì´ ëŒ€ë‹¨ížˆ ë™ì •í•˜ì—¬ì„œ ì—¬í–‰ê¶Œë„ ì¤€ë¹„í•´ 주시기로 ì €í¬ëŠ” 아버지를 찾아서 오늘 오후 모스í¬ë°” 가는 급행으로 떠납니다. 가다가 Fì—­ì— ë‚´ë¦¬ê¸°ëŠ” 어려울 듯합니다. ì •ìž„ì˜ ê±´ê°•ì´ ëŒ€ë‹¨ížˆ 좋지 못합니다. ì¼ê¸°ê°€ ê°‘ìžê¸° 추워지는 관계ì¸ì§€ ì •ìž„ì˜ ì‹ ì—´ì´ ì˜¤í›„ë©´ 삼십팔 ë„를 넘고 ê¸°ì¹¨ë„ ëŒ€ë‹¨í•©ë‹ˆë‹¤. 저는 염려가 ë˜ì–´ì„œ ì •ìž„ë”러 하얼빈ì—ì„œ ìž…ì›í•˜ì—¬ 조리를 하ë¼ê³  권하였지마는 ë„무지 듣지를 아니합니다. 어디까지든지 가는 대로 가다가 ë” ëª» 가게 ë˜ë©´ ê·¸ ê³³ì—ì„œ 죽는다고 합니다. -저는 ê·¸ ë™ì•ˆ ë©°ì¹  ì •ìž„ê³¼ ê°™ì´ ìžˆëŠ” ì¤‘ì— ì •ìž„ì´ê°€ 어떻게 아름답고 높고 굳세게 깨ë—í•œ ì—¬ìžì¸ ê²ƒì„ ë°œê²¬í•˜ì˜€ìŠµë‹ˆë‹¤. 저는 지금까지 ì •ìž„ì„ ëª°ë¼ë³¸ ê²ƒì„ ë¶€ë„럽게 ìƒê°í•©ë‹ˆë‹¤. 그리고 ë˜ ì œ 아버지께서 어떻게 갸륵한 어른ì´ì‹  ê²ƒì„ ì¸ì œì•¼ 깨달았습니다. ìžì‹ ëœ ì €ê¹Œì§€ë„ ì•„ë²„ì§€ì™€ ì •ìž„ê³¼ì˜ ê´€ê³„ë¥¼ ì˜ì‹¬í•˜ì˜€ìŠµë‹ˆë‹¤. ì˜ì‹¬í•˜ëŠ” 것보다는 세ìƒì—ì„œ ë§í•˜ëŠ” 대로 믿고 있었습니다. 그러나 ì •ìž„ì„ ë§Œë‚˜ ë³´ê³  ì •ìž„ì˜ ë§ì„ 듣고 아버지께서 ì„ ìƒë‹˜ê»˜ 드린 편지가 ëª¨ë‘ ì°¸ì¸ ê²ƒì„ ê¹¨ë‹¬ì•˜ìŠµë‹ˆë‹¤. 아버지께서는 ì¹œêµ¬ì˜ ì˜ì§€ 없는 ë”¸ì¸ ì •ìž„ì„ ë‹¹ì‹ ì˜ ì¹œí˜ˆìœ¡ì¸ ì €ì™€ ê¼­ ê°™ì´ ì‚¬ëž‘í•˜ë ¤ê³  하신 것ì´ì—ˆìŠµë‹ˆë‹¤. ê·¸ê²ƒì´ ì–¼ë§ˆë‚˜ 갸륵한 ì¼ìž…니까. ê·¸ëŸ°ë° ì œ 어머니와 저는 ê·¸ 갸륵하신 ì •ì‹ ì„ ëª°ë¼ë³´ê³  오해하였습니다. 어머니는 질투하시고 저는 시기하였습니다. ì´ê²ƒì´ 얼마나 아버지를 그렇게 갸륵하신 아버지를 몰ë¼ëµˆì˜¨ 것입니다. ì´ê²ƒì´ 얼마나 부ë„럽고 ì›í†µí•œ ì¼ìž…니까. -ì„ ìƒë‹˜ê»˜ì„œë„ 여러 번 ì•„ë²„ì§€ì˜ ì¸ê²©ì´ 높다는 ê²ƒì„ ì €í¬ ëª¨ë…€ì—게 설명해 주셨습니다마는 마ìŒì´ 막힌 저는 ì„ ìƒë‹˜ì˜ ë§ì”€ë„ 믿지 아니하였습니다. -ì„ ìƒë‹˜, ì •ìž„ì€ ì°¸ìœ¼ë¡œ 아버지를 사랑합니다. ì •ìž„ì—게는 ì´ ì„¸ìƒì— 아버지밖ì—는 사랑하는 ì•„ë¬´ê²ƒë„ ì—†ì´, 그렇게 외â—으로, 그렇게 열렬하게 아버지를 사모하고 사랑합니다. 저는 잘 압니다. ì •ìž„ì´ê°€ 처ìŒì—는 아버지로 ì‚¬ëž‘í•˜ì˜€ë˜ ê²ƒì„, 그러나 ì–´ëŠ ìƒˆì— ì •ìž„ì˜ ì•„ë²„ì§€ì—게 대한 ì‚¬ëž‘ì´ ë¬´ì—‡ì¸ì§€ 모를 사랑으로 변한 것ì„, ê·¸ê²ƒì´ ì—°ì• ëƒ í•˜ê³  물으면 ì •ìž„ì€ ì•„ë‹ˆë¼ê³  í•  것입니다. ì •ìž„ì˜ ê·¸ ëŒ€ë‹µì€ ê²°ì½” ê±°ì§“ì´ ì•„ë‹™ë‹ˆë‹¤. ì •ìž„ì€ ìˆ™ì„±í•˜ì§€ë§ˆëŠ” ì•„ì§ë„ 극히 순결합니다. ì •ìž„ì€ ë¶€ëª¨ë¥¼ ìžƒì€ í›„ì— ì•„ë²„ì§€ë°–ì— ì‚¬ëž‘í•œ ì‚¬ëžŒì´ ì—†ìŠµë‹ˆë‹¤. ë˜ ì•„ë²„ì§€ì—ê²Œë°–ì— ì‚¬ëž‘ë°›ë˜ ì¼ë„ 없습니다. ê·¸ëŸ¬ë‹ˆê¹ ì •ìž„ì€ ì•„ë²„ì§€ë¥¼ 그저 사랑합니다 ì „ì ìœ¼ë¡œ 사랑합니다. ì„ ìƒë‹˜, ì •ìž„ì˜ ì‚¬ëž‘ì—는 ì•„ë²„ì§€ì— ëŒ€í•œ ìžì‹ì˜ 사랑, 오ë¼ë¹„ì— ëŒ€í•œ 누ì´ì˜ 사랑, 사내 ì¹œêµ¬ì— ëŒ€í•œ ì—¬ìž ì¹œêµ¬ì˜ ì‚¬ëž‘, ì• ì¸ì— 대한 ì• ì¸ì˜ 사랑, ì´ ë°–ì— ì¡´ê²½í•˜ê³  숭배하는 ì„ ìƒì— 대한 ì œìžì˜ 사랑까지, ì‚¬ëž‘ì˜ ëª¨ë“  종류가 í¬í•¨ë˜ì–´ 있는 ê²ƒì„ ì €ëŠ” 발견하였습니다. -ì„ ìƒë‹˜, ì •ìž„ì˜ ì •ìƒì€ 차마 ë³¼ 수가 없습니다. ì•„ë²„ì§€ì˜ ì•ˆë¶€ë¥¼ 근심하는 ì–‘ì€ ì œ 몇십 배나 ë˜ëŠ”지 모르게 간절합니다. ì •ìž„ì€ ì € ë•Œë¬¸ì— ì•„ë²„ì§€ê°€ 불행하게 ë˜ì…¨ë‹¤ê³  í•´ì„œ 차마 ë³¼ 수 없게 애통하고 있습니다. ì§„ì •ì„ ë§ì”€í•˜ì˜¤ë©´ 저는 지금 ì•„ë²„ì§€ë³´ë‹¤ë„ ì–´ë¨¸ë‹ˆë³´ë‹¤ë„ ì •ìž„ì—게 가장 ë™ì •ì´ ëŒë¦½ë‹ˆë‹¤. ì„ ìƒë‹˜, 저는 아버지를 찾아가는 ê²ƒì´ ì•„ë‹ˆë¼ ì •ìž„ì„ ë•ê¸° 위하여 간호하기 위하여 가는 것 같습니다. -ì„ ìƒë‹˜, 저는 ì•„ì§ ì‚¬ëž‘ì´ëž€ ê²ƒì´ ë¬´ì—‡ì¸ì§€ë¥¼ 모릅니다. 그러나 ì •ìž„ì„ ë³´ê³  사랑ì´ëž€ ê²ƒì´ ì–´ë–»ê²Œ 신비하고 열렬하고 놀ë¼ìš´ 것ì¸ê°€ë¥¼ 안 것 같습니다. -ìˆœìž„ì˜ íŽ¸ì§€ëŠ” 계ì†ëœë‹¤. -ì„ ìƒë‹˜, í•˜ì–¼ë¹ˆì— ì˜¤ëŠ” ê¸¸ì— ì†¡í™”ê°• êµ½ì´ë¥¼ ë³¼ ë•Œì—는 ì •ìž„ì´ê°€ 어떻게나 울었는지, ê·¸ê²ƒì€ ì°¨ë§ˆ ë³¼ 수가 없었습니다. 아버지께서 ì†¡í™”ê°•ì„ ë³´ì‹œê³  ê°ìƒì´ 깊으셨ë”란 ê²ƒì„ ìƒê°í•œ 것입니다. 무ì¸ì§€ê²½ìœ¼ë¡œ, 허옇게 ëˆˆì´ ë®ì¸ 벌íŒìœ¼ë¡œ í˜ëŸ¬ê°€ëŠ” 송화강 êµ½ì´, ê·¸ê²ƒì€ ìŠ¬í”ˆ í’경입니다. 아버지께서 여기를 지나실 ë•Œì—는 마른 풀만 있는 ê´‘ì•¼ì˜€ì„ ê²ƒì´ë‹ˆ ê·¸ ë•Œì—는 ë”ìš± í™©ëŸ‰í•˜ì˜€ì„ ê²ƒì´ë¼ê³  ì •ìž„ì€ ë§í•˜ê³  ì›ë‹ˆë‹¤. -ì •ìž„ì€ ì œê°€ 아버지를 아는 것보다 아버지를 잘 아는 것 같습니다. í‰ì†Œì— 아버지와는 그리 ì ‘ì´‰ì´ ì—†ê±´ë§ˆëŠ” ì •ìž„ì€ ì•„ë²„ì§€ì˜ ì˜ì§€ë ¥, ì•„ë²„ì§€ì˜ ìˆ¨ì€ ì—´ì •, ì•„ë²„ì§€ì˜ ì„±ë¯¸ê¹Œì§€ 잘 압니다. 저는 ì •ìž„ì˜ ë§ì„ 듣고야 비로소 ì°¸ 그래, 하는 ê°íƒ„ì„ ë°œí•œ ì¼ì´ 여러 번 있습니다. -ì •ìž„ì˜ ë§ì„ 듣고야 비로소 아버지가 남보다 뛰어나신 ì¸ë¬¼ì¸ ê²ƒì„ ê¹¨ë‹¬ì•˜ìŠµë‹ˆë‹¤. 아버지는 ì •ì˜ê°ì´ 굳세고 겉으로는 싸늘하ë„ë¡ ì´ì§€ì ì´ì§€ë§ˆëŠ” ì†ì—는 불 ê°™ì€ ì—´ì •ì´ ìžˆìœ¼ì‹œê³ , 아버지는 쇠 ê°™ì€ ì˜ì§€ë ¥ê³¼ 칼날 ê°™ì€ íŒë‹¨ë ¥ì´ 있어서 언제나 ì£¼ì €í•˜ì‹¬ì´ ì—†ê³  ë˜ í”ë“¤ë¦¬ì‹¬ì´ ì—†ë‹¤ëŠ” 것, 아버지께서는 모든 ê²ƒì„ ìš©ì„œí•˜ê³  모든 ê²ƒì„ í˜¸ì˜ë¡œ í•´ì„하여서 누구를 미워하거나 ì›ë§í•˜ì‹¬ì´ 없는 등, ì •ìž„ì€ ì•„ë²„ì§€ì˜ ë§ˆìŒì˜ 목ë¡ê³¼ 설명서를 ë”°ë¡œ 외우는 것처럼 ì•„ë²„ì§€ì˜ ì„±ê²©ì„ ì„¤ëª…í•©ë‹ˆë‹¤. 듣고 ë³´ì•„ì„œ 비로소 ì•„ë²„ì§€ì˜ ë”¸ì¸ ì €ëŠ” ë‚´ 아버지가 ì–´ë–¤ 아버지ì¸ê°€ë¥¼ 알았습니다. -ì„ ìƒë‹˜, ì´í•´ê°€ ì‚¬ëž‘ì„ ë‚³ëŠ”ë‹¨ ë§ì”€ì´ 있지마는 저는 ì •ìž„ì„ ë³´ì•„ì„œ ì‚¬ëž‘ì´ ì´í•´ë¥¼ 낳는 ê²ƒì´ ì•„ë‹Œê°€ 합니다. -어쩌면 어머니와 저는 í‰ìƒì„ 아버지를 모시고 ìžˆìœ¼ë©´ì„œë„ ì•„ë²„ì§€ë¥¼ 몰ëžìŠµë‹ˆê¹Œ. ì´ì„±ì´ 무디고 ì–‘ì‹¬ì´ í려서 그랬습니까. ì •ìž„ì€ ì§„ì‹¤ë¡œ 존경할 ì—¬ìžìž…니다. 제가 남ìžë¼ 하ë”ë¼ë„ ì •ìž„ì„ ì•„ë‹ˆ 사랑하고는 못 견디겠습니다. -아버지는 분명 ì •ìž„ì„ ì‚¬ëž‘í•˜ì‹  것입니다. 처ìŒì—는 ì¹œêµ¬ì˜ ë”¸ë¡œ, 다ìŒì—는 친딸과 ê°™ì´, ë˜ ë‹¤ìŒì—는 무엇ì¸ì§€ 모르게 뜨거운 ì‚¬ëž‘ì´ ìƒê²¼ìœ¼ë¦¬ë¼ê³  믿습니다. ê·¸ê²ƒì„ ì•„ë²„ì§€ëŠ” ì£½ì¸ ê²ƒìž…ë‹ˆë‹¤. ê·¸ê²ƒì„ ì£½ì´ë ¤ê³  ì´ ë‹¬í•  수 없는 ì‚¬ëž‘ì„ ì£½ì´ë ¤ê³  시베리아로 달아나신 것입니다. ì¸ì œì•¼ 아버지께서 ì„ ìƒë‹˜ê»˜ 하신 íŽ¸ì§€ì˜ ëœ»ì´ ì•Œì•„ì§„ 것 같습니다. ë°±ì„¤ì´ ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ ì†ìœ¼ë¡œ í˜¼ìž í—¤ë§¤ë©° ì •ìž„ì—게로 향하는 ì‚¬ëž‘ì„ ì£½ì´ë ¤ê³  무진 애를 쓰시는 ê·¸ ì‹¬ì •ì´ ì•Œì•„ì§€ëŠ” 것 같습니다. -ì„ ìƒë‹˜ ì´ê²ƒì´ 얼마나 비참한 ì¼ìž…니까. 저는 ì •ìž„ì˜ ì§ì— 지니고 온 ì¼ê¸°ë¥¼ 보다가 ì´ëŸ¬í•œ êµ¬ì ˆì„ ë°œê²¬í•˜ì˜€ìŠµë‹ˆë‹¤. -ì„ ìƒë‹˜. 저는 세ì¸íŠ¸ ì˜¤ê±°ìŠ¤í‹´ì˜ <참회ë¡>ì„ ì ˆë°˜ì´ë‚˜ 다 ë³´ê³  ë‚˜ë„ ìž ì´ ë“¤ì§€ 아니합니다. ìž ì´ ë“¤ê¸° ì „ì— ì œê°€ í•­ìƒ ì¦ê²¨í•˜ëŠ” ì•„ë² ë§ˆë¦¬ì•„ì˜ ë…¸ëž˜ë¥¼ 유성기로 듣고 나서 오늘 ì¼ê¸°ë¥¼ 쓰려고 하니 슬픈 소리만 나옵니다. -사랑하는 어른ì´ì—¬. 저는 멀리서 ë‹¹ì‹ ì„ ì¡´ê²½í•˜ê³  신뢰하는 마ìŒì—서만 살아야 í•  ê²ƒì„ ìž˜ 압니다. 여기ì—ì„œ ì˜ì›í•œ 정지를 하지 아니하면 아니 ë©ë‹ˆë‹¤. ë¹„ë¡ ì œ ìƒëª…ì´ ê´´ë¡œì›€ìœ¼ë¡œ ëŠì–´ì§€ê³  ì œ í˜¼ì´ í”¼ì–´ 보지 못하고 스러져 버리ë”ë¼ë„ 저는 ì´ ë©€ë¦¬ì„œ ë°”ë¼ë³´ëŠ” 존경과 ì‹ ë¢°ì˜ ì‹¬ê²½ì—ì„œ í•œ ë°œìžêµ­ì´ë¼ë„ 옮기지 않아야 í•  ê²ƒì„ ìž˜ 압니다. 나를 위하여 놓여진 ìƒì˜ 궤ë„는 ë‚˜ì˜ ìƒëª…ì„ ë¶€ì¸í•˜ëŠ” ì–µì§€ì˜ ê¸¸ìž…ë‹ˆë‹¤. 제가 몇 ë…„ ì „ 기숙사 ë² ë“œì—ì„œ ì´ëŸ° ë°¤ì— ë‚´ë‹¤ë³´ë©´ ì¦ê²ê³  ì•„ë¦„ë‹µë˜ ë‚´ ìƒì˜ ê¿ˆì€ ë‹¤ 깨어졌습니다. -ì œ ì˜í˜¼ì˜ í•œ ì¡°ê°ì´ 먼 ì„¸ìƒ ì•Œì§€ 못할 세계로 떠다니고 있습니다. 잃어버린 ë§ˆìŒ ì¡°ê° ì–´ì°Œí•˜ë‹¤ê°€ 제가 ì´ë ‡ê²Œ ë˜ì—ˆëŠ”지 모릅니다. -피어 오르는 ìƒëª…ì˜ ê´‘ì±„ë¥¼ 스스로 ì‚¬í˜•ì— ì²˜í•˜ì§€ 아니하면 아니 ë  ë•Œ ì–´ì°Œ ìŠ¬í””ì´ ì—†ê² ìŠµë‹ˆê¹Œ. ì´ê²ƒì€ 현실로 ì‚¬ëžŒì˜ ìƒëª…ì„ ì£½ì´ëŠ” 것보다 ë” ë¬´ì„œìš´ 죄가 아니오리까. ë‚˜ì˜ ì„¸ê³„ì—ì„œ 처ìŒì´ìš” 마지막으로 발견한 ë¹›ì„ ì–´ë‘  ì†ì— 소멸해 버리ë¼ëŠ” ì´ ì¼ì´ 얼마나 떨리는 ì§ë¬´ì˜¤ë¦¬ê¹Œ. ì´ í—ˆê¹¨ë¹„ì˜ í˜•ì˜ ì‚¬ëžŒì´ ì‚´ê¸° 위하여 ë‚´ ì†ìœ¼ë¡œ ì¹¼ì„ ë“¤ì–´ ë‚´ ì˜í˜¼ì˜ 환í¬ë¥¼ ì³ì•¼ 옳습니까. 저는 í•˜ë‚˜ë‹˜ì„ ì›ë§í•©ë‹ˆë‹¤. -ì´ë ‡ê²Œ 씌어 있습니다. ì„ ìƒë‹˜ ì´ê²ƒì´ 얼마나 피 í르는 고백입니까. -ì„ ìƒë‹˜, 저는 ì •ìž„ì˜ ì´ ê³ ë°±ì„ ë³´ê³  무조건으로 ì •ìž„ì˜ ì‚¬ëž‘ì„ ì‹œì¸í•©ë‹ˆë‹¤. ì„ ìƒë‹˜, ì œ ëª©ìˆ¨ì„ ë°”ì³ì„œ 하는 ì¼ì— 누가 시비를 하겠습니까. ë”구나 ê·¸ ë™ê¸°ì— í‹°ëŒë§Œí¼ë„ 불순한 ê²ƒì´ ì—†ìŒì—야 무조건으로 ì‹œì¸í•˜ì§€ 아니하고 어찌합니까. -ë°”ë¼ê¸°ëŠ” ì •ìž„ì˜ ë³‘ì´ í¬ê²Œ ë˜ì§€ 아니하고 아버지께서 무사히 계셔서 ì†ížˆ 만나뵙게 ë˜ëŠ” 것입니다마는 ì•žê¸¸ì´ ë§ë§í•˜ì—¬ ê°€ìŠ´ì´ ë‘ê·¼ê±°ë¦¼ì„ ê¸ˆì¹˜ 못합니다. 게다가 ì˜¤ëŠ˜ì€ í•¨ë°•ëˆˆì´ í¼ë¶€ì–´ì„œ 천지가 온통 회색으로 í•œ ë¹›ì´ ë˜ì—ˆìœ¼ë‹ˆ ë”ìš± ì „ë„ê°€ 막막합니다. 그러나 ì„ ìƒë‹˜ 저는 앓는 ì •ìž„ì„ ë°ë¦¬ê³  ìš©ê°í•˜ê²Œ 시베리아 ê¸¸ì„ ë– ë‚©ë‹ˆë‹¤. -í•œ ì¼ ì£¼ì¼ í›„ì— ë˜ íŽ¸ì§€ í•œ ìž¥ì´ ì™”ë‹¤. ê·¸ê²ƒë„ ìˆœìž„ì˜ íŽ¸ì§€ì—¬ì„œ ì´ëŸ¬í•œ ë§ì´ 있었다. -……오늘 ìƒˆë²½ì— í¥ì•ˆë ¹ì„ 지났습니다. 플랫í¼ì˜ 한란계는 ì˜í•˜ ì´ì‹­ì‚¼ ë„를 가리켰습니다. ì‚¬ëžŒë“¤ì˜ ì–¼êµ´ì€ ì†œí„¸ì— ì„±ì—ê°€ 슬어서 남녀 노소 í•  것 ì—†ì´ í•˜ì–—ê²Œ ë¶„ì„ ë°”ë¥¸ 것 같습니다. ìœ ë¦¬ì— ë¹„ì¹œ ë‚´ ì–¼êµ´ë„ ê·¸ì™€ ê°™ì´ í° ê²ƒì„ ë³´ê³  놀ëžìŠµë‹ˆë‹¤. ìˆ¨ì„ ë“¤ì´ì‰´ ë•Œì—는 ì½”í„¸ì´ ì–¼ì–´ì„œ ìˆ¨ì´ ëŠê¸°ê³  ë°”ëžŒê²°ì´ ì§€ë‚˜ê°€ë©´ ëˆˆë¬¼ì´ ì–¼ì–´ì„œ 눈ì¹ì´ 마주 붙습니다. ì‚¬ëžŒë“¤ì€ í„¸ê³¼ ê°€ì£½ì— ì‹¸ì—¬ì„œ ê³°ê°™ì´ ë³´ìž…ë‹ˆë‹¤. -ë˜ ì´ëŸ° ë§ë„ 있었다. -ì•„ë¼ì‚¬ ê³„ì§‘ì• ë“¤ì´ ìš°ìœ ë³‘ë“¤ì„ í’ˆì— í’ˆê³  서서 ì†ë‹˜ì´ 사기를 기다리고 있습니다. ì €ë„ ë‘ ë³‘ì„ ì‚¬ì„œ ì •ìž„ì´ì™€ 나누어 먹었습니다. 우유는 따뜻합니다. ê·¸ê²ƒì„ ì‹ížˆì§€ 아니할 양으로 í’ˆì— í’ˆê³  ì„°ë˜ ê²ƒìž…ë‹ˆë‹¤. -ë˜ ì´ëŸ¬í•œ êµ¬ì ˆë„ ìžˆì—ˆë‹¤. -ì •ê±°ìž¥ì— ë‹¿ì„ ë•Œë§ˆë‹¤ ì €í¬ë“¤ì€ ë°–ì„ ë‚´ë‹¤ë´…ë‹ˆë‹¤. 행여나 아버지가 거기 계시지나 아니할까 하고요. 차가 어길 ë•Œì—는 ë”구나 마ìŒì´ 조입니다. 아버지가 ê·¸ 차를 타고 지나가시지나 아니하는가 하고요. 그리고는 ì •ìž„ì€ ì›ë‹ˆë‹¤. ê¼­ 뵈올 ì–´ë¥¸ì„ ë†“ì³ë‚˜ 버린 듯ì´. -그리고는 ì´ ì£¼ì¼ ë™ì•ˆì´ë‚˜ 소ì‹ì´ 없다가 편지 í•œ ìž¥ì´ ì™”ë‹¤. ê·¸ê²ƒì€ ì •ìž„ì˜ ê¸€ì”¨ì˜€ë‹¤. -ì„ ìƒë‹˜, 저는 지금 최 ì„ ìƒê»˜ì„œ ê³„ì‹œë˜ ë°”ì´ì¹¼ í˜¸ë°˜ì˜ ê·¸ ì§‘ì— ì™€ì„œ 홀로 누웠습니다. ìˆœìž„ì€ ì£¼ì¸ ë…¸íŒŒì™€ 함께 F역으로 최 ì„ ìƒì„ 찾아서 오늘 ì•„ì¹¨ì— ë– ë‚˜ê³  병든 저만 í˜¼ìž ëˆ„ì›Œì„œ ì–¼ìŒì— ì‹¸ì¸ ë°”ì´ì¹¼ í˜¸ì˜ ëˆˆë³´ë¼ì¹˜ëŠ” 바람 소리를 듣고 있습니다. ì—´ì€ ì‚¼ì‹­íŒ” ë„로부터 구 ë„ ì‚¬ì´ë¥¼ 오르내리고 ê¸°ì¹¨ì€ ë‚˜ê³  ëª¸ì˜ ê´´ë¡œì›€ì„ ê²¬ë”œ 수 없습니다. 그러하오나 ì„ ìƒë‹˜, 저는 í•˜ë‚˜ë‹˜ì„ ë¶ˆëŸ¬ì„œ 축ì›í•©ë‹ˆë‹¤. ì´ ì‹¤ë‚± ê°™ì€ ìƒëª…ì´ ë‹¤ 타 버리기 ì „ì— ìµœ ì„ ìƒì˜ ë‚¯ì„ ë‹¤ë§Œ ì¼ ì´ˆ ë™ì•ˆì´ë¼ë„ 보여지ì´ë¼ê³ . 그러하오나 ì„ ìƒë‹˜, ì´ ì¶•ì›ì´ ì´ë£¨ì–´ì§€ê² ìŠµë‹ˆê¹Œ. -저는 한사코 F역까지 가려 하였사오나 순임 í˜•ì´ ìš¸ê³  막사오며 ë˜ ì£¼ì¸ ë…¸íŒŒê°€ 본래 미국 사람과 ì‚´ë˜ ì‚¬ëžŒìœ¼ë¡œ ì˜ì–´ë¥¼ 알아서 순임 í˜•ì˜ ë„ì›€ì´ ë˜ê² ê¸°ë¡œ 저는 ì´ ê³³ì— ëˆ„ì›Œ 있습니다. 순임 í˜•ì€ ê¸°ì–´ì½” 아버지를 찾아 모시고 오마고 약ì†í•˜ì˜€ì‚¬ì˜¤ë‚˜ ì´ ë„“ì€ ì‹œë² ë¦¬ì•„ì—ì„œ ì–´ë”” 가서 찾겠습니까. -ì„ ìƒë‹˜, 저는 죽ìŒì„ 봅니다. 죽ìŒì´ 바로 ì œ ì•žì— ì™€ì„œ ì„  ê²ƒì„ ë´…ë‹ˆë‹¤. ê·¸ì˜ ì†ì€ ì œ 여윈 ì†ì„ 잡으려고 ë“¤ë¨¹ê±°ë¦¼ì„ ë´…ë‹ˆë‹¤. -ì„ ìƒë‹˜, ì£½ì€ ë’¤ì—ë„ ì˜ì‹ì´ 남습니까. ë§Œì¼ ì˜ì‹ì´ 남는다 하면 ì£½ì€ ë’¤ì—ë„ ì´ ì•„í””ê³¼ ê´´ë¡œì›€ì„ ê³„ì†í•˜ì§€ 아니하면 아니 ë©ë‹ˆê¹Œ. ì£½ì€ ë’¤ì—는 ì˜¤ì§ ì˜ì›í•œ ì–´ë‘ ê³¼ ìžŠì–´ë²„ë¦¼ì´ ìžˆìŠµë‹ˆê¹Œ. ì£½ì€ ë’¤ì—는 혹시나 ìƒì „ì— ë¨¹ì—ˆë˜ ë§ˆìŒì„ ìžìœ ë¡œ 펼 ë„리가 있습니까. ì´ ì„¸ìƒì—ì„œ 그립고 ì‚¬ëª¨í•˜ë˜ ì´ë¥¼ ì£½ì€ ë’¤ì—는 ìžìœ ë¡œ 만나 ë³´ê³  언제나 마ìŒê» ê°™ì´í•  수가 있습니까. 그런 ì¼ë„ 있습니까. ì´ëŸ° ì¼ì„ ë°”ë¼ëŠ” ê²ƒë„ ì£„ê°€ ë©ë‹ˆê¹Œ. -ì •ìž„ì˜ íŽ¸ì§€ëŠ” ë”ìš± ì ˆë§ì ì¸ ì–´ì¡°ë¡œ 찬다. -저는 ì²˜ìŒ ë³‘ì´ ë‚¬ì„ ë•Œì—는 죽는 ê²ƒì´ ì‹«ê³  무서웠습니다. 그러나 ì§€ê¸ˆì€ ì£½ëŠ” ê²ƒì´ ì¡°ê¸ˆë„ ë¬´ì„­ì§€ 아니합니다. 다만 차마 죽지 못하는 ê²ƒì´ í•œ. -하고는 `다만 차마' ì´í•˜ë¥¼ ë°•ë°• 지워 버렸다. 그리고는 새로 시작하여 나와내 가족ì—게 대한 ë¬¸ì•ˆì„ í•˜ê³ ëŠ” ëì„ ë§‰ì•˜ë‹¤. -나는 ì´ íŽ¸ì§€ë¥¼ 받고 울었다. 무슨 í° ë¹„ê·¹ì´ ê°€ê¹Œìš´ ê²ƒì„ ì˜ˆìƒí•˜ê²Œ 하였다. -ê·¸ 후 í•œ ì‹­ì—¬ ì¼ì´ë‚˜ 지나서 ì „ë³´ê°€ 왔다. ê·¸ê²ƒì€ ì˜ë¬¸ìœ¼ë¡œ 씌었는ë°, -"아버지 ë³‘ì´ ê¸‰í•˜ë‹¤. 나로는 ì–´ì©” 수 없다. ëˆ ê°€ì§€ê³  곧 오기를 바란다." -하고 ê·¸ ëì— B호텔ì´ë¼ê³  주소를 ì ì—ˆë‹¤. ì „ë³´ ë°œì‹ êµ­ì´ ì´ë¥´ì¿ ì¸ í¬ì¸ ê²ƒì„ ë³´ë‹ˆ B호텔ì´ë¼ í•¨ì€ ì´ë¥´ì¿ ì¸ í¬ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜€ë‹¤. -나는 ìµœì„ ë¶€ì¸ì—게 최ì„ì´ê°€ ì•„ì§ ì‚´ì•„ 있다는 ê²ƒì„ ì „í•˜ê³  곧 여행권 수ì†ì„ 하였다. ì ˆë§ìœ¼ë¡œ ì•Œì•˜ë˜ ì—¬í–‰ê¶Œì€ ì‚¬ì •ì´ ì‚¬ì •ì¸ë§Œí¼ 곧 발부ë˜ì—ˆë‹¤. -나는 비행기로 ì—¬ì˜ë„를 떠났다. ë°±ì„¤ì— ê°œê°œí•œ ë•…ì„, 남빛으로 푸른 바다를 굽어보는 ë™ì•ˆì— ëŒ€ë ¨ì„ ë“¤ëŸ¬ 거기서 다른 비행기를 갈아타고 봉천, ì‹ ê²½, í•˜ì–¼ë¹ˆì„ ê±°ì³, ì¹˜ì¹˜í•˜ì–¼ì— ë“¤ë €ë‹¤ê°€ 만주리로 급행하였다. -웅대한 ëŒ€ë¥™ì˜ ì„¤ê²½ë„ ë‚˜ì—게 아무러한 ì¸ìƒë„ 주지 못하였다. 다만 푸른 하늘과 í¬ê³  í‰í‰í•œ ë•…ê³¼ì˜ ì‚¬ì´ë¡œ 한량 ì—†ì´ í—ˆê³µì„ ë‚ ì•„ê°„ë‹¤ëŠ” ìƒê°ë°–ì— ì—†ì—ˆë‹¤. ê·¸ê²ƒì€ ì‚¬ëž‘í•˜ëŠ” ë‘ ì¹œêµ¬ê°€ ëª©ìˆ¨ì´ ê²½ê°ì— 달린 ê²ƒì„ ìƒê°í•  ë•Œì— ë§ˆìŒì— 아무 ì—¬ìœ ë„ ì—†ëŠ” 까닭ì´ì—ˆë‹¤. -만주리ì—ì„œë„ ë¹„í–‰ê¸°ë¥¼ 타려 하였으나 소비ì—트 ê´€í—Œì´ í—ˆë½ì„ 아니 하여 열차로 ê°ˆ ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. -초조한 몇 ë°¤ì„ ì§€ë‚˜ê³  ì´ë¥´ì¿ ì¸ í¬ì— 내린 ê²ƒì´ ì˜¤ì „ ë‘ì‹œ. 나는 B호텔로 ì´ìŠ¤ë³´ìŠ¤ì¹˜ì¹´ë¼ëŠ” 마차를 몰았다. 죽ìŒê³¼ ê°™ì´ ê³ ìš”í•˜ê²Œ 눈 ì†ì— ìžëŠ” 시간ì—는 여기저기 ì „ë“±ì´ ë°˜ì§ê±°ë¦´ ë¿, ì´ë”°ê¸ˆ ë°¤ì˜ ì‹œê°€ë¥¼ 경계하는 ë³‘ì •ë“¤ì˜ ëˆˆì´ ë¬´ì„­ê²Œ 빛나는 ê²ƒì´ ë³´ì˜€ë‹¤. -B호텔ì—ì„œ 미스 ì´ˆì´(최 ì–‘)를 찾았으나 ìˆœìž„ì€ ì—†ê³  ì–´ë–¤ 서양 노파가 나와서, -"유 미스터 Y?" -하고 ì˜ì‹¬ìŠ¤ëŸ¬ìš´ 눈으로 나를 보았다. -그렇다는 ë‚´ ëŒ€ë‹µì„ ë“£ê³ ëŠ” 노파는 반갑게 ì†ì„ 내밀어서 ë‚´ ì†ì„ 잡았다. -나는 넉넉하지 못한 ì˜ì–´ë¡œ ê·¸ 노파ì—게서 최ì„ì´ê°€ ì•„ì§ ì‚´ì•˜ë‹¤ëŠ” ë§ê³¼ ì •ìž„ì˜ ì†Œì‹ì€ ë“¤ì€ ì§€ 오래ë¼ëŠ” ë§ê³¼ 최ì„ê³¼ ìˆœìž„ì€ ì—¬ê¸°ì„œ 삼십 마ì¼ì´ë‚˜ 떨어진 Fì—­ì—ì„œë„ ì°ë§¤ë¡œ ë” ê°€ëŠ” 삼림 ì†ì— 있다는 ë§ì„ 들었다. -나는 ê·¸ ë°¤ì„ ì—¬ê¸°ì„œ 지내고 ì´íŠ¿ë‚  ì•„ì¹¨ì— ë– ë‚˜ëŠ” 완행차로 ê·¸ 노파와 함께 ì´ë¥´ì¿ ì¸ í¬ë¥¼ 떠났다. -ì´ ë‚ ë„ ì²œì§€ëŠ” ì˜¤ì§ ëˆˆë¿ì´ì—ˆë‹¤. 차는 ê°€ë” ì‚¼ë¦¼ 중으로 가는 모양ì´ë‚˜ ëª¨ë‘ íšŒìƒ‰ë¹›ì— ê°€ë¦¬ì›Œì„œ 분명히 ë³´ì´ì§€ë¥¼ 아니하였다. -Fì—­ì´ë¼ëŠ” ê²ƒì€ ì‚¼ë¦¼ ì†ì— 있는 조그마한 정거장으로 집ì´ë¼ê³ ëŠ” 정거장 ì§‘ë°–ì— ì—†ì—ˆë‹¤. 역부 ë‘ì—‡ì´ í„¸ì˜·ì— í•˜ì–—ê²Œ ëˆˆì„ ë’¤ì“°ê³  졸리는 ë“¯ì´ ì˜¤ë½ê°€ë½í•  ë¿ì´ì—ˆë‹¤. -우리는 ì°ë§¤ 하나를 얻어 타고 어디가 길ì¸ì§€ ë¶„ëª…ì¹˜ë„ ì•„ë‹ˆí•œ 눈 ì†ìœ¼ë¡œ ë§ì„ 몰았다. -ë°”ëžŒì€ ì—†ëŠ” 듯하지마는 ê·¸ëž˜ë„ ëˆˆë°œì„ í•œíŽ¸ìœ¼ë¡œ 비ë¼ëŠ” 모양ì´ì–´ì„œ 아름드리 ë‚˜ë¬´ë“¤ì˜ í•œìª½ì€ í•˜ì–—ê²Œ 눈으로 쌓ì´ê³  í•œìª½ì€ ê²€ì€ ë¹›ì´ ë”ìš± ë‹ë³´ì˜€ë‹¤. ë°± ì²™ì€ ë„˜ì„ ë“¯í•œ 꼿꼿한 침엽수(전나무 따윈가)ë“¤ì´ ì–´ë””ê¹Œì§€ë“ ì§€, 하늘ì—ì„œ 곧 ë‚´ë ¤ë°•ì€ ëª» 모양으로, ìˆ˜ì—†ì´ ì„œ 있는 사ì´ë¡œ 우리 ì°ë§¤ëŠ” 간다. ë•…ì— ë®ì¸ ëˆˆì€ ìƒˆë¡œ 피워 ë†“ì€ ì†œê°™ì´ í¬ì§€ë§ˆëŠ” 하늘ì—ì„œ 내리는 ëˆˆì€ êµ¬ë¦„ë¹›ê³¼ 공기빛과 어울려서 ë°¥ ìž¦íž ë•Œì— êµ´ëšì—ì„œ 나오는 연기와 ê°™ì´ ì—°íšŒìƒ‰ì´ë‹¤. -ë°”ëžŒë„ ë¶ˆì§€ 아니하고 ìƒˆë„ ë‚ ì§€ 아니하건마는 나무 ë†’ì€ ê°€ì§€ì— ìŒ“ì¸ ëˆˆì´ ì´ë”°ê¸ˆ ë©ì¹˜ë¡œ 떨어져서는 고요한 수풀 ì†ì— ìž‘ì€ ë™ìš”를 ì¼ìœ¼í‚¨ë‹¤. -우리 ì°ë§¤ê°€ 가는 ê¸¸ì´ ìžì—°ìŠ¤ëŸ¬ìš´ 복잡한 커브를 ë„는 ê²ƒì„ ë³´ë©´ í•„ì‹œ ì–¼ìŒ ì–¸ 개천 위로 달리는 모양ì´ì—ˆë‹¤. -í•œ 시간ì´ë‚˜ 달린 ë’¤ì— ìš°ë¦¬ ì°ë§¤ëŠ” ëŠ¦ì€ ê²½ì‚¬ì§€ë¥¼ 올ëžë‹¤. ë§ì„ 어거하는 ì•„ë¼ì‚¬ ì‚¬ëžŒì€ ì­ˆì­ˆì­ˆì­ˆ, 후르르 하고 ì£¼ë¬¸ì„ ì™¸ìš°ë“¯ì´ ìž…ìœ¼ë¡œ ë§ì„ 재촉하고 ê³ ì‚를 ì´ë¦¬ 들고 저리 들어 ë§ì—게 ë°©í–¥ì„ ê°€ë¦¬í‚¬ ë¿ì´ìš”, 채ì°ì€ ë³´ì´ê¸°ë§Œí•˜ê³  í•œ ë²ˆë„ ì“°ì§€ 아니하였다. 그와 ë§ê³¼ëŠ” 완전히 뜻과 ì •ì´ ë§žëŠ” ë™ì§€ì¸ 듯하였다. -처ìŒì—는 몰ëžìœ¼ë‚˜ 차차 추워ì§ì„ 깨달았다. 발과 무르íŒì´ 시렸다. -"얼마나 머오?" -하고 나는 ì˜¤ëž˜ê°„ë§Œì— ìž…ì„ ì—´ì–´ì„œ 노파ì—게 물었다. 노파는 털수건으로 머리를 싸매고 깊숙한 눈만 남겨 가지고 실신한 사람 모양으로 허공만 ë°”ë¼ë³´ê³  있다가, ë‚´ê°€ 묻는 ë§ì— 비로소 ìž ì´ë‚˜ 깬 듯ì´, -"멀지 않소. ì¸ì   í•œ 십오 마ì¼." -하고는 나를 ë°”ë¼ë³´ì•˜ë‹¤. ê·¸ ëˆˆì€ ì•„ë§ˆ 웃는 모양ì´ì—ˆë‹¤. -ê·¸ 얼굴, ê·¸ 눈, ê·¸ ìŒì„±ì´ ëª¨ë‘ ì´ ë…¸íŒŒê°€ ì¸ìƒ í’íŒŒì˜ ìŠ¬í”ˆ ì¼ ê´´ë¡œìš´ ì¼ì— 부대ë¼ê³  지친 ê²ƒì„ í‘œí•˜ì˜€ë‹¤. 그리고 죽는 날까지 살아간다 하는 듯하였다. -경사지를 올ë¼ì„œì„œ 보니 ê·¸ê²ƒì€ í•œ 산등성ì´ì˜€ë‹¤. ë°©í–¥ì€ ì•Œ 수 없으나 우리가 가는 ë°©í–¥ì—는 ë” ë†’ì€ ë“±ì„±ì´ê°€ 있는 모양ì´ë‚˜ 다른 ê³³ì€ ë‹¤ ì´ë³´ë‹¤ ë‚®ì€ ê²ƒ 같아서 하얀 눈바다가 ëì—†ì´ ë³´ì´ëŠ” 듯하였다. ê·¸ 눈보ë¼ëŠ” ë“¤ì‘¹ë‚ ì‘¹ì´ ìžˆëŠ” ê²ƒì„ ë³´ë©´ ì‚¼ë¦¼ì˜ ê¼­ëŒ€ê¸°ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜€ë‹¤. ë”구나 여기저기 뾰족뾰족 ëˆˆì†¡ì´ ë¶™ì„ ìˆ˜ 없는 마른 나뭇가지가 거뭇거뭇 ë³´ì´ëŠ” ê²ƒì„ ë³´ì•„ì„œ 그러하였다. ë§Œì¼ ëˆˆì´ ê±·í˜€ 주었으면 얼마나 안계가 넓으랴, ìµœì„ êµ°ì´ ê³ ë¯¼í•˜ëŠ” ê°€ìŠ´ì„ ì•ˆê³  ì´ë¦¬ë¡œ 헤매었구나 하면서 나는 ëª©ì„ ë‘˜ëŸ¬ì„œ ì‚¬ë°©ì„ ë°”ë¼ë³´ì•˜ë‹¤. -우리는 ê·¸ 등성ì´ë¥¼ 내려갔다. ë§ì´ 미처 ë°œì„ ë•…ì— ë†“ì„ ìˆ˜ê°€ 없는 ì •ë„ë¡œ 빨리 내려갔다. 여기는 ì‚°ë¶ˆì´ ë‚¬ë˜ ìžë¦¬ì¸ 듯하여 거뭇거뭇 불탄 ìžêµ­ 있는 마른 ë‚˜ë¬´ë“¤ì´ ë“œë¬¸ë“œë¬¸ ì„œ 있었다. ê·¸ ë‚˜ë¬´ë“¤ì€ ì°ì–´ 가는 ì‚¬ëžŒë„ ì—†ìœ¼ë§¤ 저절로 ì©ì–´ì„œ 없어지기를 기다릴 ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. ê·¸ë“¤ì€ ë‚˜ì„œ 아주 ì©ì–´ 버리기까지 천 ë…„ ì´ìƒì€ 걸린다고 하니 ë˜í•œ 장한 ì¼ì´ë‹¤. -ì´ ëŒ€ì‚¼ë¦¼ì— ë¶ˆì´ ë¶™ëŠ”ë‹¤ 하면 ê·¸ê²ƒì€ ìž¥ê´€ì¼ ê²ƒì´ë‹¤. ë‹¬ë°¤ì— ë†’ì€ ê³³ì—ì„œ ì´ ê²½ì¹˜ë¥¼ 내려다본다 하면 ê·¸ë„ ìž¥ê´€ì¼ ê²ƒì´ìš”, ì—¬ë¦„ì— í•œì°½ ê¸°ìš´ì„ íŽ¼ ë•Œë„ ìž¥ê´€ì¼ ê²ƒì´ë‹¤. 나는 ì˜¤ë‰´ì›”ê²½ì— ì‹œë² ë¦¬ì•„ë¥¼ 여행하는 ì´ë“¤ì´ ë없는 꽃바다를 보았다는 기ë¡ì„ ìƒê°í•˜ì˜€ë‹¤. -"저기요!" -하는 ë…¸íŒŒì˜ ë§ì— 나는 ìƒê°ì˜ ì¤„ì„ ëŠì—ˆë‹¤. 저기ë¼ê³  가리키는 ê³³ì„ ë³´ë‹ˆ 거기는 집ì´ë¼ê³  ìƒê°ë˜ëŠ” ë¬¼ê±´ì´ ë‚˜ë¬´ 사ì´ë¡œ 보였다. ì°½ì´ ìžˆìœ¼ë‹ˆ 분명 집ì´ì—ˆë‹¤. -우리 ì´ìŠ¤ë³´ìŠ¤ì¹˜ì¹´ê°€ ê°€ê¹Œì´ ì˜¤ëŠ” ê²ƒì„ ë³´ì•˜ëŠ”ì§€, ê·¸ 집 ê°™ì€ ë¬¼ê±´ì˜ ë¬¸ ê°™ì€ ê²ƒì´ ì—´ë¦¬ë©° ê²€ì€ ì™¸íˆ¬ ìž…ì€ ì—¬ìž í•˜ë‚˜ê°€ íŒ”ì„ í—ˆìš°ì ê±°ë¦¬ë©° 뛰어나온다. 아마 ì†Œë¦¬ë„ ì¹˜ëŠ” 모양ì´ê² ì§€ë§ˆëŠ” ê·¸ 소리는 아니 들렸다. 나는 ê·¸ê²ƒì´ ìˆœìž„ì¸ ì¤„ì„ ì–¼ë¥¸ 알았다. ë˜ ìˆœìž„ì´ë°–ì— ë  ì‚¬ëžŒë„ ì—†ì—ˆë‹¤. -ìˆœìž„ì€ í•œì°¸ 달ìŒë°•ì§ˆë¡œ 오다가 ëˆˆì´ ê¹Šì–´ì„œ 걸ìŒì„ 걷기가 íž˜ì´ ë“œëŠ”ì§€ 멈칫 섰다. ê·¸ì˜ ê²€ì€ ì™¸íˆ¬ëŠ” ì–´ëŠë§ í° ì ìœ¼ë¡œ 얼려져 가지고 어깨는 í¬ê²Œ ë˜ëŠ” ê²ƒì´ ë³´ì˜€ë‹¤. -ìˆœìž„ì˜ ê°¸ë¦„í•œ ì–¼êµ´ì´ ë³´ì˜€ë‹¤. -"ì„ ìƒë‹˜!" -하고 ìˆœìž„ë„ ë‚˜ë¥¼ 알아보고는 ë˜ íŒ”ì„ í—ˆìš°ì ê±°ë¦¬ë©° 소리를 질렀다. -ë‚˜ë„ ë°˜ê°€ì›Œì„œ 모ìžë¥¼ ë²—ì–´ 둘렀다. -"ì•„ì´ ì„ ìƒë‹˜!" -하고 ìˆœìž„ì€ ë‚´ê°€ ì°ë§¤ì—ì„œ ì¼ì–´ì„œê¸°ë„ ì „ì— ë‚´ê²Œ 와서 매달리며 울었다. -"아버지 ì–´ë– ì‹œëƒ?" -하고 나는 ìˆœìž„ì˜ ë“±ì„ ë‘드렸다. 나는 다리가 마비가 ë˜ì–´ì„œ 곧 ì¼ì–´ì„¤ 수가 없었다. -"아버지 ì–´ë– ì‹œëƒ?" -하고 나는 í•œ 번 ë” ë¬¼ì—ˆë‹¤. -ìˆœìž„ì€ ë²Œë–¡ ì¼ì–´ë‚˜ ë‘ ì£¼ë¨¹ìœ¼ë¡œ í르는 ëˆˆë¬¼ì„ ì³ë‚´ 버리며, -"대단하셔요." -í•˜ê³ ë„ ìš¸ìŒì„ 금치 못하였다. -노파는 ë²Œì¨ ì°ë§¤ì—ì„œ 내려서 기운 없는 걸ìŒìœ¼ë¡œ 비틀비틀 걷기를 시작하였다. -나는 ìˆœìž„ì„ ë”°ë¼ì„œ ì–¸ë•ì„ 오르며, -"그래 무슨 병환ì´ì‹œëƒ?" -하고 물었다. -"몰ë¼ìš”. ì‹ ì—´ì´ ëŒ€ë‹¨í•˜ì…”ìš”." -"ì •ì‹ ì€ ì°¨ë¦¬ì‹œë“ ?" -"ì²˜ìŒ ì œê°€ 여기 ì™”ì„ ì ì—는 그렇지 ì•Šë”니 요새ì—는 ê°€ë” í˜¼ìˆ˜ ìƒíƒœì— 빠지시는 모양ì´ì•¼ìš”." -ì´ë§Œí•œ 지ì‹ì„ 가지고 나는 최ì„ì´ê°€ 누워 있는 집 ì•žì— ë‹¤ë‹¤ëžë‹¤. -ì´ ì§‘ì€ í†µë‚˜ë¬´ë¥¼ 댓 ê°œ 우물 ì •ìžë¡œ 가로놓고 ì§€ë¶•ì€ ë¬´ì—‡ìœ¼ë¡œ 했는지 모르나 ëˆˆì´ ë®ì´ê³ , 문 하나 ì°½ 하나를 ë‚´ì—ˆëŠ”ë° ë¬¸ì€ ë‚˜ë¬´ê»ì§ˆì¸ 모양ì´ë‚˜ ì°½ì€ ì –ë¹› 나는 ìœ ë¦¬ì°½ì¸ ì¤„ 알았ë”니 ë’¤ì— ì•Œì•„ë³¸ì¦‰ ê·¸ê²ƒì€ ìœ ë¦¬ê°€ 아니요, ì–‘ëª©ì„ ë°”ë¥´ê³  ë¬¼ì„ ë¿œì–´ì„œ 얼려 ë†“ì€ ê²ƒì´ì—ˆë‹¤. 그리고 통나무와 통나무 틈바구니ì—는 쇠털과 ê°™ì€ ë§ˆë¥¸ í’€ì„ ê¼­ê¼­ ë°•ì•„ì„œ ë°”ëžŒì„ ë§‰ì•˜ë‹¤. -ë¬¸ì„ ì—´ê³  들어서니 ë¶€ì—Œì— ë“¤ì–´ì„œëŠ” 모양으로 ì‘¥ ë¹ ì¡ŒëŠ”ë° í™”ëˆí™”ëˆí•˜ëŠ” ê²ƒì´ í•œì¦ê³¼ 같다. 그렇지 ì•Šì•„ë„ ì¹¨ì¹¨í•œ ë‚ ì— ì–¸ 눈으로 ê´‘ì„  부족한 ë°©ì— ë“¤ì–´ì˜¤ë‹ˆ, 캄캄 절벽ì´ì–´ì„œ ì•„ë¬´ê²ƒë„ ë³´ì´ì§€ 아니하였다. -순임ì´ê°€ 앞서서 ì–‘ì´ˆì— ë¶ˆì„ ì¼ ë‹¤. 촛불 ë¹›ì€ ë°© 한편 쪽 침대ë¼ê³  í•  만한 ë†’ì€ ê³³ì— ë‹´ìš”ë¥¼ ë®ê³  누운 최ì„ì˜ ì‹œì²´ì™€ ê°™ì€ í° ì–¼êµ´ì„ ë¹„ì¶˜ë‹¤. -"아버지, 아버지 샌전 아저씨 오셨어요." -하고 ìˆœìž„ì€ ìµœì„ì˜ ê·€ì— ìž…ì„ ëŒ€ê³  가만히 불렀다. -그러나 ëŒ€ë‹µì´ ì—†ì—ˆë‹¤. -나는 최ì„ì˜ ì´ë§ˆë¥¼ 만져 보았다. 축축하게 ë•€ì´ í˜ë €ë‹¤. 그러나 그리 ë”ìš´ ì¤„ì€ ëª°ëžë‹¤. -ë°© ì•ˆì˜ ê³µê¸°ëŠ” ìˆ¨ì´ ë§‰íž ë“¯í•˜ì˜€ë‹¤. ê·¸ 난방 장치는 ì‚¼êµ¿ì˜ ì›ë¦¬ë¥¼ ì´ìš©í•œ 것ì´ì—ˆë‹¤. ëŒë©©ì´ë¡œ ì•„ê¶ì´ë¥¼ 쌓고 ê·¸ ìœ„ì— í° ëŒë©©ì´ë“¤ì„ ë§Žì´ ìŒ“ê³  거기다가 ë¶ˆì„ ë•Œì–´ì„œ 달게 í•œ ë’¤ì— ê±°ê¸° ëˆˆì„ ë¶€ì–´ 뜨거운 ì¦ê¸°ë¥¼ 발하는 것ì´ì—ˆë‹¤. -ì´ ê±´ì¶•ë²•ì€ ì¡°ì„  ë™í¬ë“¤ì´ 시베리아로 ê¸ˆê´‘ì„ ì°¾ì•„ë‹¤ë‹ˆë©´ì„œ 하는 법ì´ëž€ ë§ì„ 들었으나 최ì„ì´ê°€ 누구ì—게서 배워 가지고 ì–´ë–¤ 모양으로 지었는지는 최ì„ì˜ ë§ì„ 듣기 ì „ì—는 ì•Œ 수 없는 ì¼ì´ë‹¤. -나는 ë‚´ íž˜ì´ ë¯¸ì¹˜ëŠ” ë°ê¹Œì§€ 최ì„ì˜ ë³‘ ì¹˜ë£Œì— ëŒ€í•œ ì†ì„ ì“°ê³  어떻게 해서든지 ì´ë¥´ì¿ ì¸ í¬ì˜ 병ì›ìœ¼ë¡œ 최ì„ì„ ë°ë ¤ë‹¤ê°€ ìž…ì›ì‹œí‚¬ ë„리를 ê¶ë¦¬í•˜ì˜€ë‹¤. 그러나 냉정하게 ìƒê°í•˜ë©´ 최ì„ì€ ì‚´ì•„ë‚  ê°€ë§ì´ 없는 것만 같았다. -ë‚´ê°€ ê°„ 지 ì‚¬í˜ ë§Œì— ìµœì„ì€ ì²˜ìŒìœ¼ë¡œ ì •ì‹ ì„ ì°¨ë ¤ì„œ ëˆˆì„ ëœ¨ê³  나를 알아보았다. -그는 반가운 í‘œì •ì„ í•˜ê³  빙그레 웃기까지 하였다. -"다 ì¼ì—†ë‚˜?" -ì´ëŸ° ë§ë„ ì•Œì•„ë“¤ì„ ìˆ˜ê°€ 있었다. -그러나 심히 ê¸°ìš´ì´ ì—†ëŠ” 모양ì´ê¸°ë¡œ 나는 ë§Žì´ ë§ì„ 하지 아니하였다. -최ì„ì€ í•œì°¸ì´ë‚˜ ëˆˆì„ ê°ê³  있ë”니, -"ì •ìž„ì´ ì†Œì‹ ë“¤ì—ˆë‚˜?" -하였다. -"괜찮대요." -하고 ê³ì—ì„œ 순임ì´ê°€ ë§í•˜ì˜€ë‹¤. -그리고는 ë˜ í˜¼ëª½í•˜ëŠ” 듯하였다. -ê·¸ ë‚  ë˜ í•œ 번 최ì„ì€ ì •ì‹ ì„ ì°¨ë¦¬ê³  순임ë”러는 저리로 ê°€ë¼ëŠ” ëœ»ì„ í‘œí•˜ê³  나ë”러 귀를 ê°€ê¹Œì´ ëŒ€ë¼ëŠ” ëœ»ì„ ë³´ì´ê¸°ë¡œ 그대로 하였ë”니, -"ë‚´ 가방 ì†ì— ì¼ê¸°ê°€ 있으니 그걸 ìžë„¤ë§Œ 보고는 ë¶ˆì‚´ë¼ ë²„ë ¤. ë‚´ê°€ ì£½ì€ ë’¤ì—ë¼ë„ ê·¸ê²ƒì´ ì„¸ìƒ ì‚¬ëžŒì˜ ëˆˆì— ë“¤ë©´ 안 ë˜ì§€. 순임ì´ê°€ 볼까 ê±±ì •ì´ ë˜ì§€ë§ˆëŠ” ë‚´ê°€ ëª¸ì„ ê¼¼ì§í•  수가 있나." -하는 ëœ»ì„ ë§í•˜ì˜€ë‹¤. -"그러지." -하고 나는 고개를 ë„ë•ì—¬ 보였다. -그러고 ë‚œ ë’¤ì— ë‚˜ëŠ” 최ì„ì´ê°€ 시킨 대로 ê°€ë°©ì„ ì—´ê³  ì±…ë“¤ì„ ë’¤ì ¸ì„œ ê·¸ ì¼ê¸°ì±…ì´ë¼ëŠ” ê³µì±…ì„ êº¼ë‚´ì—ˆë‹¤. -"ìˆœìž„ì´ ë„ˆ ì´ê±° 보았니?" -하고 나는 ê³ì—ì„œ ë‚´ê°€ ì±… 찾는 ê²ƒì„ ë³´ê³  ì„°ë˜ ìˆœìž„ì—게 물었다. -"아니오. 그게 무어여요?" -하고 ìˆœìž„ì€ ë‚´ ì†ì— ë“  ì±…ì„ ë¹¼ì•—ìœ¼ë ¤ëŠ” ë“¯ì´ ì†ì„ 내밀었다. -나는 ìˆœìž„ì˜ ì†ì´ 닿지 ì•Šë„ë¡ ì±…ì„ í•œíŽ¸ìœ¼ë¡œ 비키며, -"ì´ê²ƒì´ 네 아버지 ì¼ê¸°ì¸ 모양ì¸ë° 너는 ë³´ì´ì§€ ë§ê³  나만 ë³´ë¼ê³  하셨다. 네 아버지가 네가 ì´ê²ƒì„ 보았ì„까 í•´ì„œ 염려를 í•˜ì‹œëŠ”ë° ì•ˆ 보았으면 다행ì´ë‹¤." -하고 나는 ê·¸ ì±…ì„ ë“¤ê³  밖으로 나왔다. -ë‚ ì´ ë°ë‹¤. 해는 ì¤‘ì²œì— ìžˆë‹¤. 중천ì´ëž˜ì•¼ ì € 남쪽 지í‰ì„  가까운 ë°ë‹¤. ë°¤ì´ ì—´ì—¬ëŸ ì‹œê°„, ë‚®ì´ ëŒ€ì—¬ì„¯ ì‹œê°„ë°–ì— ì•ˆ ë˜ëŠ” ë¶ìª½ 나ë¼ë‹¤. 멀건 햇빛ì´ë‹¤. -나는 ë³•ì´ ìž˜ 드는 ê³³ì„ ê³¨ë¼ì„œ ë‚˜ë¬´ì— ëª¸ì„ ê¸°ëŒ€ê³  최ì„ì˜ ì¼ê¸°ë¥¼ ì½ê¸° 시작하였다. ì½ì€ 중ì—ì„œ 몇 êµ¬ì ˆì„ ê³¨ë¼ ë³¼ê¹Œ. -"ì§‘ì´ ë‹¤ ë˜ì—ˆë‹¤. ì´ ì§‘ì€ ë‚´ê°€ ìƒì „ ì‚´ê³  ê·¸ ì†ì—ì„œ ì´ ì„¸ìƒì„ 마칠 집ì´ë‹¤. 마ìŒì´ 기ì˜ë‹¤. ì‹œë„러운 세ìƒì€ 여기서 멀지 아니하ëƒ. ë‚´ê°€ 여기 홀로 있기로 누가 ì°¾ì„ ì‚¬ëžŒë„ ì—†ì„ ê²ƒì´ë‹¤. ë‚´ê°€ 여기서 죽기로 누가 슬í¼í•´ 줄 ì‚¬ëžŒë„ ì—†ì„ ê²ƒì´ë‹¤. 때로 ê³°ì´ë‚˜ 찾아올까. ì§€ë‚˜ê°€ë˜ ì‚¬ìŠ´ì´ë‚˜ 들여다볼까. -ì´ê²ƒì´ ë‚´ 소ì›ì´ 아니ëƒ. 세ìƒì˜ ì‹œë„ëŸ¬ì›€ì„ ë– ë‚˜ëŠ” ê²ƒì´ ë‚´ 소ì›ì´ 아니ëƒ. ì´ ì†ì—ì„œ 나는 나를 ì´ê¸°ê¸°ë¥¼ 공부하ìž." -ì²«ë‚ ì€ ì´ëŸ° í‰ë²”í•œ 소리를 ì¼ë‹¤. -ê·¸ ì´íŠ¿ë‚ ì—는. -"어떻게나 나는 약한 사람ì¸ê³ . ì œ 마ìŒì„ 제가 지배하지 못하는 사람ì¸ê³ . 밤새ë„ë¡ ë‚˜ëŠ” ì •ìž„ì„ ìƒê°í•˜ì˜€ë‹¤. ì–´ë‘ìš´ í—ˆê³µì„ í–¥í•˜ì—¬ ì •ìž„ì„ ë¶ˆë €ë‹¤. ì •ìž„ì´ê°€ 나를 찾아서 ë™ê²½ì„ 떠나서 ì´ë¦¬ë¡œ 오지나 아니하나 하고 ìƒê°í•˜ì˜€ë‹¤. 어떻게나 부ë„러운 ì¼ì¸ê³ ? 어떻게나 ê°€ì¦í•œ ì¼ì¸ê³ ? -나는 아내를 ìƒê°í•˜ë ¤ 하였다. ì•„ì´ë“¤ì„ ìƒê°í•˜ë ¤ 하였다. 아내와 ì•„ì´ë“¤ì„ ìƒê°í•¨ìœ¼ë¡œ ì •ìž„ì˜ ìƒê°ì„ ì´ê¸°ë ¤ 하였다. -최ì„ì•„, 너는 ë‚¨íŽ¸ì´ ì•„ë‹ˆëƒ. 아버지가 아니ëƒ. ì •ìž„ì€ ë„¤ ë”¸ì´ ì•„ë‹ˆëƒ. ì´ëŸ° ìƒê°ì„ 하였다. -ê·¸ëž˜ë„ ì •ìž„ì˜ ì¼ë¥˜ì „ì€ ì•„ë‚´ì™€ ì•„ì´ë“¤ì˜ ìƒê°ì„ 밀치고 달려오는 절대 ìœ„ë ¥ì„ ê°€ì§„ 듯하였다. -ì•„, 나는 어떻게나 파렴치한 사람ì¸ê³ . ë‚˜ì´ ì‚¬ì‹­ì´ ë„˜ì–´ ì˜¤ì‹­ì„ ë°”ë¼ë³´ëŠ” ë†ˆì´ ì•„ë‹ˆëƒ. ì‚¬ì‹­ì— ë¶ˆí˜¹ì´ë¼ê³  아니 하ëŠëƒ. êµìœ¡ê°€ë¡œ 깨ë—í•œ êµì¸ìœ¼ë¡œ ì¼ìƒì„ ì‚´ì•„ 왔다고 ìžì²˜í•˜ëŠ” ë‚´ê°€ ì•„ë‹ˆëƒ í•˜ê³  나는 ë‚´ 입으로 ë‚´ ì†ê°€ë½ì„ 물어서 ë‘ êµ°ë°ë‚˜ 피를 내었다." -최ì„ì˜ ë‘˜ì§¸ ë‚  ì¼ê¸°ëŠ” 계ì†ëœë‹¤. -"ë‚´ ì†ê°€ë½ì—ì„œ 피가 ë‚  ë•Œì— ë‚˜ëŠ” 유쾌하였다. 나는 ìŠ¹ì²©ì˜ ê¸°ì¨ì„ 깨달았다. -그러나 ì•„ì•„ 그러나 ê·¸ 빨간, ì°¸íšŒì˜ í•ë°©ìš¸ ì†ì—ì„œë„ ì• ìš•ì˜ ë¶ˆê¸¸ì´ ì¼ì§€ 아니하는가. 나는 마침내 ì œë„í•  수 없는 ì¸ìƒì¸ê°€." -ì´ ì§‘ì— ë“  지 ë‘˜ì§¸ë‚ ì— ë²Œì¨ ì´ëŸ¬í•œ ë¹„ê´€ì  ë§ì„ 하였다. -ë˜ ë©°ì¹ ì„ ì§€ë‚œ ë’¤ ì¼ê¸°ì—, -"나는 ë™ê²½ìœ¼ë¡œ ëŒì•„가고 싶다. ì •ìž„ì˜ ê³ìœ¼ë¡œ 가고 싶다. 시베리아ì˜ê´‘ì•¼ì˜ ìœ í˜¹ë„ ì•„ë¬´ íž˜ì´ ì—†ë‹¤. ì–´ì ¯ë°¤ì€ ì‚¼ë¦¼ì˜ ì¢‹ì€ ë‹¬ì„ ë³´ì•˜ìœ¼ë‚˜ ê·¸ ë‹¬ì„ ì•„ë¦„ë‹µê²Œ ë³´ë ¤ 하였으나 아무리 í•˜ì—¬ë„ ì•„ë¦„ë‹µê²Œ ë³´ì´ì§€ë¥¼ 아니하였다. -하늘ì´ë‚˜ 달ì´ë‚˜ 삼림ì´ë‚˜ ëª¨ë‘ ë¬´ì˜ë¯¸í•œ 존재다. ì´ì²˜ëŸ¼ 무ì˜ë¯¸í•œ 존재를 나는 경험한 ì¼ì´ 없다. ê·¸ê²ƒì€ ë‹¤ë§Œ 기ì¨ì„ ìžì•„내지 아니할 ë¿ë”러 ìŠ¬í””ë„ ìžì•„내지 못하였다. ê·¸ê²ƒì€ ìž¿ë”미였다. ì•„ë¬´ë„ ë“£ëŠ” ì´ ì—†ëŠ” ë°ì„œ ë‚´ ì§„ì •ì„ ë§í•˜ë¼ë©´ ê·¸ê²ƒì€ ì´ ì²œì§€ì— ë‚´ê²Œ ì˜ë¯¸ 있는 ê²ƒì€ ì •ìž„ì´ë°–ì— ì—†ë‹¤ëŠ” 것ì´ë‹¤. -나는 ì •ìž„ì˜ ê³ì— 있고 싶다. ì •ìž„ì„ ë‚´ ê³ì— ë‘ê³  싶다. 왜? ê·¸ê²ƒì€ ë‚˜ë„ ëª¨ë¥¸ë‹¤. -ë§Œì¼ ì´ ì›€ ì†ì—ë¼ë„ ì •ìž„ì´ê°€ 있다 하면 얼마나 ì´ê²ƒì´ ì¦ê±°ìš´ ê³³ì´ ë ê¹Œ. -그러나 ì´ê²ƒì€ 불가능한 ì¼ì´ë‹¤. ì´ ì¼ì´ 있어서는 아니 ëœë‹¤. 나는 ì´ ìƒê°ì„ 죽여야 한다. 다시 ê±°ë‘를 못 하ë„ë¡ ëª©ìˆ¨ì„ ëŠì–´ 버려야 한다. -ì´ê²ƒì„ 나는 ì›í•œë‹¤. ì›í•˜ì§€ë§ˆëŠ” 내게는 ê·¸ íž˜ì´ ì—†ëŠ” 모양ì´ë‹¤. -나는 종êµë¥¼ ìƒê°í•˜ì—¬ 본다. ì² í•™ì„ ìƒê°í•˜ì—¬ 본다. ì¸ë¥˜ë¥¼ ìƒê°í•˜ì—¬ 본다. 나ë¼ë¥¼ ìƒê°í•˜ì—¬ 본다. ì´ê²ƒì„ 가지고 ë‚´ ì• ìš•ê³¼ 바꾸려고 ì• ì¨ ë³¸ë‹¤. 그렇지마는 내게 그러한 íž˜ì´ ì—†ë‹¤. 나는 완전히 í—¬í”Œë¦¬ìŠ¤í•¨ì„ ê¹¨ë‹«ëŠ”ë‹¤. -ì•„ì•„ 나는 어찌할꼬? -나는 못ìƒê¸´ 사람ì´ë‹¤. 그까짓 ê²ƒì„ ëª» ì´ê²¨? 그까짓 ê²ƒì„ ëª» ì´ê²¨? -나는 ì˜ˆìˆ˜ì˜ ê´‘ì•¼ì—ì„œì˜ ìœ í˜¹ì„ ìƒê°í•œë‹¤. 천하를 주마 하는 ìœ í˜¹ì„ ìƒê°í•œë‹¤. 나는 싯다르타 태ìžê°€ 왕ê¶ì„ 버리고 나온 ê²ƒì„ ìƒê°í•˜ê³ , ë˜ ìŠ¤í† ì•„ ì² í•™ìžì˜ ì˜ì§€ë ¥ì„ ìƒê°í•˜ì˜€ë‹¤. -그러나 나는 그러한 ìƒê°ìœ¼ë¡œë„ ì´ ìƒê°ì„ ì´ê¸¸ 수가 없는 것 같다. -나는 í˜ëª…가를 ìƒê°í•˜ì˜€ë‹¤. 모든 것 ì‚¬ëž‘ë„ ëª©ìˆ¨ë„ ë‹¤ 헌신ì§ê°™ì´ 집어ë˜ì§€ê³  피 í르는 마당으로 뛰어나가는 용사를 ìƒê°í•˜ì˜€ë‹¤. 나는 ì´ë없는 삼림 ì†ìœ¼ë¡œ í˜ëª…ì˜ ìš©ì‚¬ 모양으로 달ìŒë°•ì§ˆì¹˜ë‹¤ê°€ ê¸°ìš´ì´ ì§„í•œ ê³³ì—ì„œ 죽어 버리는 ê²ƒì´ ì†Œì›ì´ì—ˆë‹¤. 그러나 ê±°ê¸°ê¹Œì§€ë„ ì´ ìƒê°ì€ 따르지 아니할까. -나는 지금 곧 죽어 버릴까. 나는 육혈í¬ë¥¼ ì†ì— 들어 보았다. ì´ ë°©ì•„ì‡ ë¥¼ í•œ 번만 튕기면 ë‚´ ìƒëª…ì€ ì—†ì–´ì§€ëŠ” ê²ƒì´ ì•„ë‹Œê°€. 그리 ë˜ë©´ 모든 ì´ ë§ˆìŒì˜ 움ì§ìž„ì€ ì†Œë©¸ë˜ëŠ” ê²ƒì´ ì•„ë‹Œê°€. ì´ê²ƒìœ¼ë¡œ 만사가 í•´ê²°ë˜ëŠ” ê²ƒì´ ì•„ë‹Œê°€. -ì•„ 하나님ì´ì‹œì—¬, íž˜ì„ ì£¼ì‹œì˜µì†Œì„œ. 천하를 ì´ê¸°ëŠ” íž˜ë³´ë‹¤ë„ ë‚˜ ìžì‹ ì„ ì´ê¸°ëŠ” íž˜ì„ ì£¼ì‹œì˜µì†Œì„œ. ì´ ì£„ì¸ìœ¼ë¡œ 하여금 í•˜ë‚˜ë‹˜ì˜ ëˆˆì— ì˜ë¡­ê³  깨ë—í•œ 사람으로 ì´ ì¼ìƒì„ 마치게 하여 주시옵소서, ì´ë ‡ê²Œ 나는 기ë„를 한다. -그러나 하나님께서는 나를 버리셨다. 하나님께서는 내게 íž˜ì„ ì£¼ì‹œì§€ 아니하시었다. 나를 ì´ ë¹„ì°¸í•œ ìžë¦¬ì—ì„œ ì©ì–´ì ¸ 죽게 하시었다." -최ì„ì€ ì–´ë–¤ ë‚  ì¼ê¸°ì— ë˜ ì´ëŸ° ê²ƒë„ ì¼ë‹¤. ê·¸ê²ƒì€ ì˜ˆì „ 내게 보낸 íŽ¸ì§€ì— ìžˆë˜ ê¿ˆ ì´ì•¼ê¸°ë¥¼ ì—°ìƒì‹œí‚¤ëŠ” 것ì´ì—ˆë‹¤. ê·¸ê²ƒì€ ì´ëŸ¬í•˜ë‹¤. -"오늘 ë°¤ì€ ë‹¬ì´ ì¢‹ë‹¤. ì‹œë² ë¦¬ì•„ì˜ ê²¨ìš¸ 해는 ì°¸ 못ìƒê¸´ ì‚¬ëžŒê³¼ë„ ê°™ì´ ê¸°ìš´ì´ ì—†ì§€ë§ˆëŠ” 하얀 ë•…, 검푸른 í•˜ëŠ˜ì— ì €ìª½ 지í‰ì„ ì„ 향하고 í˜ëŸ¬ê°€ëŠ” ë°˜ë‹¬ì€ ì°¸ìœ¼ë¡œ ë§‘ìŒ ê·¸ê²ƒì´ì—ˆë‹¤. -나는 í‰ìƒ ì²˜ìŒ ì‹œ 비슷한 ê²ƒì„ ì§€ì—ˆë‹¤. -ìž„ê³¼ ì´ë³„í•˜ë˜ ë‚  ë°¤ì—는 남쪽 나ë¼ì— 바람비가 쳤네 -ìž„ 타신 ìžë™ì°¨ì˜ ë’·ë¶ˆì´ ë¹¨ê°„ ë’·ë¶ˆì´ ë¹—ë°œì— ì°¢ê²¼ë„¤ -ìž„ 떠나 í˜¼ìž í—¤ë§¤ëŠ” ì‹œë² ë¦¬ì•„ì˜ ì˜¤ëŠ˜ ë°¤ì—는 -지려는 ìª½ë‹¬ì´ ëˆˆ ë®ì¸ ì‚¼ë¦¼ì— ê±¸ë ¸êµ¬ë‚˜ -ì•„ì•„ ì € 쪽달ì´ì—¬ -억지로 ë°˜ì„ ê°ˆê²¨ì§„ ê²ƒë„ ê°™ì•„ë¼ -ì•„ì•„ ì € 쪽달ì´ì—¬ -잃어진 ì§ì„ 찾아 -차디찬 허공 ì†ì„ ì˜ì›ížˆ 헤매는 ê²ƒë„ ê°™êµ¬ë‚˜ -ë‚˜ë„ ì € 달과 ê°™ì´ ìžƒì–´ë²„ë¦° ë°˜ìª½ì„ ì°¾ì•„ 무ê¶í•œ 시간과 공간ì—ì„œ 헤매는 것만 같다. -ì—ìµ. ë‚´ê°€ 왜 ì´ë¦¬ 약한가. 어찌하여 í¬ë‚˜í° ë§Žì€ ì¼ì„ ëŒì•„보지 못하고 요만한 ì• ìš•ì˜ í¬ë¡œê°€ ë˜ëŠ”ê°€. -그러나 나는 차마 ê·¸ ë‹¬ì„ ë²„ë¦¬ê³  들어올 수가 없었다. ë‚´ê°€ 왜 ì´ë ‡ê²Œ 센티멘털하게 ë˜ì—ˆëŠ”ê³ . ë‚´ 쇠 ê°™ì€ ì˜ì§€ë ¥ì´ 어디로 갔는고. ë‚´ 누를 수 없는 ìžì¡´ì‹¬ì´ 어디로 갔는고. 나는 마치 ìœ ëª¨ì˜ ì†ì— 달린 젖먹ì´ì™€ë„ 같다. ë‚´ ì¼ì‹ ì€ ë„ì‹œ ì• ìš• ë©ì–´ë¦¬ë¡œ 화해 버린 것 같다. -ì´ë¥¸ë°” 사랑 사랑ì´ëž€ ë§ì€ 종êµì  ì˜ë¯¸ì¸ 것 ì´ì™¸ì—ë„ ìž…ì— ë‹´ê¸°ë„ ì‹«ì–´í•˜ë˜ ë§ì´ë‹¤ ì´ëŸ° ê²ƒì€ ë‚´ ì˜ì§€ë ¥ê³¼ ìžì¡´ì‹¬ì„ 녹여 버렸는가. ë˜ ì´ ë¶€ìžì—°í•œ ê³ ë…ì˜ ìƒí™œì´ 나를 ì´ë ‡ê²Œ ë‚´ ì¸ê²©ì„ ì´ë ‡ê²Œ 파괴하였는가. -그렇지 아니하면 ë‚´ ìžì¡´ì‹¬ì´ë¼ëŠ” 것ì´ë‚˜, ì˜ì§€ë ¥ì´ë¼ëŠ” 것ì´ë‚˜, ì¸ê²©ì´ë¼ëŠ” ê²ƒì´ ëª¨ë‘ ì„¸ìƒì˜ 습관과 ì‚¬ì¡°ì— íœ©ì“¸ë¦¬ë˜ ê²ƒì¸ê°€. ë‚¨ë“¤ì´ ê·¸ëŸ¬ë‹ˆê¹Œ ë‚¨ë“¤ì´ ì˜³ë‹¤ë‹ˆê¹Œ ë‚¨ë“¤ì´ ë¬´ì„œìš°ë‹ˆê¹Œ ì´ ì• ìš•ì˜ ë¬´ë¤ì— 회를 ë°œëžë˜ 것ì¸ê°€. 그러다가 ê³ ë…ê³¼ ë°˜ì„±ì˜ ê¸°íšŒë¥¼ 얻으매 모든 회칠과 ê°€ë©´ì„ ë–¼ì–´ 버리고 ë¹¨ê°€ë²—ì€ ì• ìš•ì˜ ë­‰í……ì´ê°€ 나온 것ì¸ê°€. -그렇다 하면, ì´ê²ƒì´ ì°¸ëœ ë‚˜ì¸ê°€. ì´ê²ƒì´ 하나님께서 지어 주신 ëŒ€ë¡œì˜ ë‚˜ì¸ê°€. ê°€ìŠ´ì— íƒ€ì˜¤ë¥´ëŠ” ì• ìš•ì˜ ë¶ˆê¸¸ ì´ ë¶ˆê¸¸ì´ ê³§ ë‚´ ì˜í˜¼ì˜ 불길ì¸ê°€. -어쩌면 ê·¸ 모든 ë†’ì€ ì´ìƒë“¤ ì¸ë¥˜ì— 대한, ë¯¼ì¡±ì— ëŒ€í•œ, ë„ë•ì— 대한, ì‹ ì•™ì— ëŒ€í•œ ê·¸ ë†’ì€ ì´ìƒë“¤ì´ ì´ë ‡ê²Œë„ 만만하게 마치 ë°”ëžŒì— ë¶ˆë¦¬ëŠ” 재 모양으로 ìžì·¨ë„ ì—†ì´ í©ì–´ì ¸ 버리고 ë§ê¹Œ. 그리고 ê·¸ ë’¤ì—는 í‰ì†Œì—ê·¸ë ‡ê²Œë„ ë¯¸ì›Œí•˜ê³  천히 ì—¬ê¸°ë˜ ì• ìš•ì˜ ê²€ì€ í™ë§Œ 남고 ë§ê¹Œ. -ì•„ì•„ ì € 눈 ë®ì¸ ë•…ì´ì—¬, 차고 ë§‘ì€ ë‹¬ì´ì—¬, 허공ì´ì—¬! 나는 너í¬ë“¤ì„ 부러워하노ë¼. -불êµë„ë“¤ì˜ í•´íƒˆì´ë¼ëŠ” ê²ƒì´ ì´ëŸ¬í•œ ì• ìš•ì´ ë¶ˆë¶™ëŠ” 지옥ì—ì„œ 눈과 ê°™ì´ ì‹¸ëŠ˜í•˜ê³  허공과 ê°™ì´ ë¹ˆ 곳으로 들어ê°ì„ ì´ë¦„ì¸ê°€. -ì„ê°€ì˜ íŒ” ë…„ ê°„ 설산 ê³ í–‰ì´ ì´ ì• ìš•ì˜ ë¿Œë¦¬ë¥¼ ëŠìœ¼ë ¤ 함ì´ë¼ 하고 ì˜ˆìˆ˜ì˜ ì‚¬ì‹­ ì¼ ê´‘ì•¼ì˜ ê³ í–‰ê³¼ ê²Ÿì„¸ë§ˆë„¤ì˜ ê³ ë¯¼ë„ ì´ ì• ìš•ì˜ ë¿Œë¦¬ 때문ì´ì—ˆë˜ê°€. -그러나 ê·¸ê²ƒì„ ì´ê¸°ì–´ 낸 ì‚¬ëžŒì´ ì²œì§€ 개벽 ì´ëž˜ì— 몇몇ì´ë‚˜ ë˜ì—ˆëŠ”ê³ ? 나 ê°™ì€ ê²ƒì´ ê·¸ ì¤‘ì— í•œ 사람 ë˜ê¸°ë¥¼ 바랄 수가 있ì„까. -나 같아서는 마침내 ì´ ì• ìš•ì˜ ë¶ˆê¸¸ì— ë‹¤ 타서 재가 ë˜ì–´ 버릴 것만 같다. ì•„ì•„ 어떻게나 힘있고 무서운 불길ì¸ê³ ." -ì´ëŸ¬í•œ ê³ ë¯¼ì˜ ìžë°±ë„ 있었다. -ë˜ ì–´ë–¤ ë‚  ì¼ê¸°ì—는 최ì„ì€ ì´ëŸ° ë§ì„ ì¼ë‹¤. -"나는 단연히 ë™ê²½ìœ¼ë¡œ ëŒì•„가기를 결심하였다." -그리고는 ê·¸ ì´íŠ¿ë‚ ì€, -"나는 단연히 ë™ê²½ìœ¼ë¡œ ëŒì•„가리란 ê²°ì‹¬ì„ í•œ ê²ƒì„ êµ³ì„¸ê²Œ 취소한다. 나는 ì´ëŸ¬í•œ ê²°ì‹¬ì„ í•˜ëŠ” 나 ìžì‹ ì„ 굳세게 부ì¸í•œë‹¤." -ë˜ ì´ëŸ° ë§ë„ 있다. -"나는 ì •ìž„ì„ ì‹œë² ë¦¬ì•„ë¡œ 부르련다." -ë˜ ê·¸ 다ìŒì—는, -"ì•„ì•„ 나는 í•˜ë£¨ë°”ì‚ ì£½ì–´ì•¼ 한다. ì´ ëª©ìˆ¨ì„ ì—°ìž¥í•˜ì˜€ë‹¤ê°€ëŠ” 무슨 ì¼ì„ 저지를는지 모른다. 나는 깨ë—하게 나를 ì´ê¸°ëŠ” ë„ë•ì  ì¸ê²©ìœ¼ë¡œ ì´ ì¼ìƒì„ 마ì³ì•¼ 한다. ì´ ë°–ì— ë‚´ ì‚¬ì—…ì´ ë¬´ì—‡ì´ëƒ." -ë˜ ì–´ë–¤ ê³³ì—는, -"ì•„ì•„ 무서운 하룻밤ì´ì—ˆë‹¤. 나는 지난 í•˜ë£»ë°¤ì„ ëˆ„ë¥¼ 수 없는 ì• ìš•ì˜ ë¶ˆê¸¸ì— íƒ”ë‹¤. 나는 ë‚´ 주먹으로 ë‚´ ê°€ìŠ´ì„ ë‘드리고 머리를 ë²½ì— ë¶€ë”ªì³¤ë‹¤. 나는 주먹으로 ë‹´ë²½ì„ ë‘드려 ì†ë“±ì´ 터져서 피가 í˜ë €ë‹¤. 나는 ë‚´ 머리카ë½ì„ ì¥ì–´ëœ¯ì—ˆë‹¤. 나는 ìˆ˜ì—†ì´ ë°œì„ êµ´ë €ë‹¤. 나는 ì´ ë¬´ì„œìš´ ìœ í˜¹ì„ ì´ê¸°ë ¤ê³  ë‚´ ëª¸ì„ ì•„í”„ê²Œ 하였다. 나는 견디다 못하여 ë¬¸ì„ ë°•ì°¨ê³  뛰어나갔다. ë°–ì—는 ë‹¬ì´ ìžˆê³  ëˆˆì´ ìžˆì—ˆë‹¤. 그러나 ëˆˆì€ í•ë¹›ì´ìš”, ë‹¬ì€ ì°Œê·¸ëŸ¬ì§„ 것 같았다. 나는 눈 ì†ìœ¼ë¡œ 달ìŒë°•ì§ˆì³¤ë‹¤. ë‹¬ì„ ë”°ë¼ì„œ 엎드러지며 ìžë¹ ì§€ë©° 달ìŒì§ˆì³¤ë‹¤. 나는 소리를 질렀다. 나는 미친 사람 같았다." -그러고는 어디까지 갔다가 ì–´ëŠ ë•Œì— ì–´ë– í•œ ì‹¬ê²½ì˜ ë³€í™”ë¥¼ 얻어 가지고 ëŒì•„왔다는 ë§ì€ ì“°ì´ì§€ 아니하였으나 최ì„ì˜ ë³‘ì˜ ì›ì¸ì„ 설명하는 것 같았다. -"ì—´ì´ ë‚˜ê³  ê¸°ì¹¨ì´ ë‚œë‹¤. ê°€ìŠ´ì´ ì•„í”„ë‹¤. ì´ê²ƒì´ íë ´ì´ ë˜ì–´ì„œ í˜¼ìž ê¹¨ë—하게 ì´ ìƒëª…ì„ ë§ˆì¹˜ê²Œ 하여 주소서 하고 빈다. 나는 오늘부터 먹고 마시기를 그치련다." -ì´ëŸ¬í•œ ë§ì„ ì¼ë‹¤. 그러고는, -"ì •ìž„, ì •ìž„, ì •ìž„, ì •ìž„." -하고 ì •ìž„ì˜ ì´ë¦„ì„ ìˆ˜ì—†ì´ ì“´ ê²ƒë„ ìžˆê³ , ì–´ë–¤ ë°ëŠ”, -"Overcome, Overcome." -하고 ì˜ì–´ë¡œ ì“´ ê²ƒë„ ìžˆì—ˆë‹¤. -그리고 마지막ì—, -"나는 죽ìŒê³¼ 대면하였다. 사í˜ì§¸ 굶고 ì•“ì€ ì˜¤ëŠ˜ì— ë‚˜ëŠ” 극히 맑고 침착한 정신으로 죽ìŒê³¼ 대면하였다. 죽ìŒì€ ê²€ì€ ì˜·ì„ ìž…ì—ˆìœ¼ë‚˜ ê·¸ 얼굴ì—는 ìžë¹„ì˜ í‘œì •ì´ ìžˆì—ˆë‹¤. 죽ìŒì€ 곧 ê²€ì€ ì˜·ì„ ìž…ì€ êµ¬ì›ì˜ ì†ì´ì—ˆë‹¤. 죽ìŒì€ 아름다운 그림ìžì˜€ë‹¤. 죽ìŒì€ 반가운 ì• ì¸ì´ìš”, ê²°ì½” 무서운 ì›ìˆ˜ê°€ 아니었다. 나는 죽ìŒì˜ ì†ì„ ìž¡ë…¸ë¼. ê°ì‚¬í•˜ëŠ” 마ìŒìœ¼ë¡œ 죽ìŒì˜ í’ˆì— ì•ˆê¸°ë…¸ë¼. 아멘." -ì´ê²ƒì„ ì“´ ë’¤ì—는 다시는 ì¼ê¸°ê°€ 없었다. ì´ê²ƒìœ¼ë¡œ 최ì„ì´ê°€ ê·¸ ë™ì•ˆ 지난 ì¼ì„ ì ì–´ë„ ì‹¬ë¦¬ì  ë³€í™”ë§Œì€ ëŒ€ê°• 추측할 수가 있었다. -다행히 최ì„ì˜ ë³‘ì€ ì ì  ëŒë¦¬ëŠ” 듯하였다. ì—´ë„ ë‚´ë¦¬ê³  ì‹ì€ë•€ë„ ëœ í˜ë ¸ë‹¤. 안 먹는다고 ê³ ì§‘í•˜ë˜ ìŒì‹ë„ 먹기를 시작하였다. -ì •ìž„ì—게로 ê°”ë˜ ë…¸íŒŒì—게서는 ì •ìž„ë„ ì—´ì´ ë‚´ë¦¬ê³  ì¼ì–´ë‚˜ ì•‰ì„ ë§Œí•˜ë‹¤ëŠ” 편지가 왔다. -나는 ë…¸íŒŒì˜ íŽ¸ì§€ë¥¼ 최ì„ì—게 ì½ì–´ 주었다. 최ì„ì€ ê·¸ 편지를 듣고 매우 í¥ë¶„하는 모양ì´ì—ˆìœ¼ë‚˜ 곧 안심하는 ë¹›ì„ ë³´ì˜€ë‹¤. -나는 최ì„ì˜ ë³‘ì´ ëŒë¦¬ëŠ” ê²ƒì„ ë³´ê³  ì •ìž„ì„ ì°¾ì•„ë³¼ 양으로 떠나려 하였으나 순임ì´ê°€ 듣지 아니하였다. 혼ìžì„œ 앓는 아버지를 맡아 가지고 ìžˆì„ ìˆ˜ëŠ” 없다는 것ì´ì—ˆë‹¤. 그래서 노파가 오기를 기다리기로 하였다. -나는 최ì„ì´ê°€ ë¨¹ì„ ìŒì‹ë„ ì‚´ 겸 우편국ì—ë„ ë“¤ë¥¼ 겸 시가까지 가기로 하고 ì´ ê³³ 온 지 ì¼ ì£¼ì¼ì´ë‚˜ 지나서 처ìŒìœ¼ë¡œ ì‚°ì—ì„œ 나왔다. -나는 ì´ë¥´ì¿ ì¸ í¬ì— 가서 최ì„ì„ ìœ„í•˜ì—¬ 약품과 ë¨¹ì„ ê²ƒì„ ì‚¬ê³  ë˜ ìˆœìž„ì„ ìœ„í•´ì„œë„ ë¨¹ì„ ê²ƒê³¼ ì˜ë³µê³¼ ë˜ í•˜ëª¨ë‹ˆì¹´ì™€ ì†í’ê¸ˆë„ ì‚¬ 가지고 ì •ê±°ìž¥ì— ë‚˜ì™€ì„œ ëŒì•„올 차를 기다리고 있었다. -나는 순후해 ë³´ì´ëŠ” ì•„ë¼ì‚¬ ì‚¬ëžŒë“¤ì´ ì •ê±°ìž¥ì—ì„œ 오ë½ê°€ë½í•˜ëŠ” ê²ƒì„ ë³´ê³  ì†ìœ¼ë¡œëŠ” 최ì„ì´ê°€ ë³‘ì´ ì¢€ ë‚˜ì€ ê²ƒì„ ë‹¤í–‰ìœ¼ë¡œ ìƒê°í•˜ê³ , ë˜ ìµœì„ê³¼ ì •ìž„ì˜ ìž¥ëž˜ê°€ ì–´ì°Œ ë ê¹Œ 하는 ê²ƒë„ ìƒê°í•˜ë©´ì„œ 뷔페(ì‹ë‹¹)ì—ì„œ 뜨거운 ì°¨ì´(ì°¨)를 마시고 있었다. -ì´ ë•Œì— ë°–ì„ ë°”ë¼ë³´ê³  ìžˆë˜ ë‚´ ëˆˆì€ ë¬¸ë“ ì´ìƒí•œ ê²ƒì„ ë³´ì•˜ë‹¤. ê·¸ê²ƒì€ ê·¸ 노파가 ì´ë¦¬ë¡œ 향하고 걸어오는 것ì¸ë° ê·¸ 노파와 íŒ”ì„ ê±¸ì€ ì Šì€ ì—¬ìžê°€ 있는 것ì´ë‹¤. 머리를 ê²€ì€ ìˆ˜ê±´ìœ¼ë¡œ 싸매고 ìž…ê³¼ 코를 가리웠으니 분명히 ì•Œ 수 없으나 í˜¹ì€ ì •ìž„ì´ë‚˜ 아닌가 í•  ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. ì •ìž„ì´ê°€ 몸만 기ë™í•˜ê²Œ ë˜ë©´ 최ì„ì„ ë³´ëŸ¬ 올 ê²ƒì€ ì •ìž„ì˜ ì—´ì •ì ì¸ 성격으로 ë³´ì•„ì„œ 당연한 ì¼ì´ê¸° 때문ì´ì—ˆë‹¤. -나는 반쯤 ë¨¹ë˜ ì°¨ë¥¼ 놓고 뷔페 밖으로 뛰어나갔다. -"오 미시즈 체스터필드?" -하고 나는 노파 ì•žì— ì†ì„ 내어밀었다. 노파는 체스터필드ë¼ëŠ” 미국 ë‚¨íŽ¸ì˜ ì„±ì„ ë”°ë¼ì„œ 부르는 ê²ƒì„ ê¸°ì–µí•˜ì˜€ë‹¤. -"ì„ ìƒë‹˜!" -하는 ê²ƒì€ ì •ìž„ì´ì—ˆë‹¤. ê·¸ ì†Œë¦¬ë§Œì€ ë³€ì¹˜ 아니하였다. 나는 ê²€ì€ ìž¥ê°‘ì„ ë‚€ ì •ìž„ì˜ ì†ì„ 잡았다. 나는 여러 ë§ ì•„ë‹ˆí•˜ê³  노파와 ì •ìž„ì„ ë·”íŽ˜ë¡œ ëŒê³  들어왔다. -ëŠ™ì€ ë·”íŽ˜ ë³´ì´ëŠ” 번ì©ë²ˆì©í•˜ëŠ” 사모바르ì—ì„œ ì°¨ ë‘ ìž”ì„ ë”°ë¼ë‹¤ê°€ 노파와 ì •ìž„ì˜ ì•žì— ë†“ì•˜ë‹¤. -노파는 어린애ì—게 하는 모양으로 ì •ìž„ì˜ ìˆ˜ê±´ì„ ë²—ê²¨ 주었다. ê·¸ ì†ì—서는 해쓱하게 여윈 ì •ìž„ì˜ ì–¼êµ´ì´ ë‚˜ì™”ë‹¤. ë‘ ë³¼ì— ë¶ˆê·¸ë ˆí•˜ê²Œ í™í›ˆì´ ë„는 ê²ƒë„ ë³‘ 때문ì¸ê°€. -"ì–´ë•Œ? ì‹ ì—´ì€ ì—†ë‚˜?" -하고 나는 ì •ìž„ì—게 물었다. -"괜찮아요." -하고 ì •ìž„ì€ ì›ƒìœ¼ë©°, -"최 ì„ ìƒë‹˜ê»˜ì„œëŠ” 어떠세요?" -하고 묻는다. -"좀 나으신 모양ì´ì•¼. 그래서 나는 오늘 ì •ìž„ì„ ì¢€ 보러 가려고 í–ˆëŠ”ë° ì´ ì²´ìŠ¤í„°í•„ë“œ 부ì¸ê»˜ì„œ 아니 오시면 순임ì´ê°€ í˜¼ìž ìžˆì„ ìˆ˜ê°€ 없다고 í•´ì„œ, 그래 ì´ë ‡ê²Œ 최 ì„ ìƒ ìžì‹¤ ê²ƒì„ ì‚¬ 가지고 가는 길ì´ì•¼." -하고 ë§ì„ í•˜ë©´ì„œë„ ë‚˜ëŠ” ì •ìž„ì˜ ëˆˆê³¼ ìž…ê³¼ 목ì—ì„œ ê·¸ì˜ ë³‘ê³¼ 마ìŒì„ 알아보려고 애를 ì¼ë‹¤. -ì¤‘ë³‘ì„ ì•“ì€ ê¹ í•´ì„œëŠ” í•œ 달 ì „ 남대문서 ë³¼ 때보다 얼마 ë” ì´ˆì·Œí•œ 것 같지는 아니하였다. -"네ì—." -하고 ì •ìž„ì€ ê³ ê°œë¥¼ 숙였다. ê·¸ì˜ ì•ˆê²½ì•Œì—는 ì´ìŠ¬ì´ 맺혔다. -"ì„ ìƒë‹˜ ëŒì€ 다 안녕하셔요?" -"ì‘, ë‚´ê°€ ë– ë‚  ë•Œì—는 괜찮았어." -"최 ì„ ìƒë‹˜ ëŒë„?" -"ì‘." -"ì„ ìƒë‹˜ í½ì€ 애를 쓰셨어요." -하고 ì •ìž„ì€ ìš¸ìŒì¸ì§€ 웃ìŒì¸ì§€ 모를 웃ìŒì„ 웃는다. -ë§ì„ 모르는 노파는 우리가 하는 ë§ì„ 눈치나 채려는 ë“¯ì´ ë©€ê±°ë‹ˆ ë³´ê³  있다가 서투른 ì˜ì–´ë¡œ, -"ì•„ì§ ë¯¸ìŠ¤ ë‚¨ì€ ì‹ ì—´ì´ ìžˆë‹µë‹ˆë‹¤. ê·¸ëž˜ë„ ê°€ 본다고, ì£½ì–´ë„ ê°€ 본다고 ë‚´ ë§ì„ 안 듣고 ë”°ë¼ì™”지요." -하고 ì •ìž„ì—게 ì• ì • 있는 눈í˜ê¹€ì„ 주며, -"유 노티 ì°¨ì¼ë“œ(ë§ì½ê¾¼ì´)." -하고 ìž…ì„ ì”°ë£©í•˜ë©° ì •ìž„ì„ ì•ˆê²½ 위로 본다. -"니체워, 마뚜슈까(괜찮아요, 어머니)." -하고 ì •ìž„ì€ ë…¸íŒŒë¥¼ ë³´ê³  웃었다. ì •ìž„ì˜ ì„œì–‘ 사람ì—게 대한 í–‰ë™ì€ 서양ì‹ìœ¼ë¡œ 째었다고 ìƒê°í•˜ì˜€ë‹¤. -ì •ìž„ì€ ë„리어 유쾌한 ë¹›ì„ ë³´ì˜€ë‹¤. 다만 ê·¸ì˜ ë¶‰ì€ë¹› ë¤ ëˆˆê³¼ 마른 ìž…ìˆ ì´ ê·¸ì˜ ëª¸ì— ì—´ì´ ìžˆìŒì„ 보였다. 나는 ê·¸ì˜ ì†ëê³¼ ë°œëì´ ì‹¸ëŠ˜í•˜ê²Œ ì–¼ì—ˆì„ ê²ƒì„ ìƒìƒí•˜ì˜€ë‹¤. -마침 ì´ ë‚ ì€ ë‚ ì´ ì˜¨í™”í•˜ì˜€ë‹¤. ì—·ì€ í–‡ë¹›ë„ ì˜¤ëŠ˜ì€ ë‘꺼워진 듯하였다. -우리 세 ì‚¬ëžŒì€ Fì—­ì—ì„œ 내려서 ì°ë§¤ 하나를 얻어 타고 산으로 향하였다. ì‚°ë„ ì•„ë‹ˆì§€ë§ˆëŠ” ì‚° 있는 나ë¼ì—ì„œ ì‚´ë˜ ìš°ë¦¬ëŠ” 최ì„ì´ê°€ 사는 ê³³ì„ ì‚°ì´ë¼ê³  부르는 ìŠµê´€ì„ ì§€ì—ˆë‹¤. ì‚¼ë¦¼ì´ ìžˆìœ¼ë‹ˆ ì‚°ê°™ì´ ìƒê°ëœ 까닭ì´ì—ˆë‹¤. -노파가 오른편 ëì— ì•‰ê³ , 가운ë°ë‹¤ê°€ ì •ìž„ì„ ì•‰ížˆê³  왼편 ëì— ë‚´ê°€ 앉았다. -ì©Ÿì©Ÿì©Ÿ 하는 ì†Œë¦¬ì— ë§ì€ 달리기 시작하였다. í•œ í•„ì€ í‚¤ í° ë§ì´ìš”, í•œ í•„ì€ í‚¤ê°€ ìž‘ì€ ë§ì¸ë° 키 í° ë§ì€ 아마 ëŠ™ì€ êµ°ë§ˆ 퇴물ì¸ê°€ 싶게 허우대는 좋으나 ëª¸ì´ ì—¬ìœ„ê³  털ì—는 ìœ¤ì´ ì—†ì—ˆë‹¤. 조금만 올ë¼ê°€ëŠ” ê¸¸ì´ ë˜ì–´ë„ 고개를 숙ì´ê³  애를 ì¼ë‹¤. ìž‘ì€ ë§ì€ 까불어서 ê°€ë” ì±„ì°ìœ¼ë¡œ 얻어맞았다. -"ì•„ì´ ì‚¼ë¦¼ì´ ì¢‹ì•„ìš”." -하고 ì •ìž„ì€ ì •ë§ ê¸°ìœ ë“¯ì´ ë‚˜ë¥¼ ëŒì•„보았다. -"좋아?" -하고 나는 ë©‹ì—†ì´ ëŒ€ê¾¸í•˜ê³  나서, 후회ë˜ëŠ” 듯ì´, -"밤낮 삼림 ì†ì—서만 사니까 지루한ë°." -하는 ë§ì„ 붙였다. -"저는 ì € 눈 있는 삼림 ì†ìœ¼ë¡œ 한정 ì—†ì´ ê°€ê³  싶어요. 그러나 저는 ì¸ì œ ê¸°ìš´ì´ ì—†ìœ¼ë‹ˆê¹ ì›¬ê±¸ 그래 ë³´ê² ì–´ìš”?" -하고 í•œìˆ¨ì„ ì‰¬ì—ˆë‹¤. -"왜 그런 소릴 í•´. ì¸ì œ 나ì„걸." -하고 나는 ì •ìž„ì˜ ëˆˆì„ ë“¤ì—¬ë‹¤ë³´ì•˜ë‹¤. 마치 슬픈 눈물 방울ì´ë‚˜ 찾으려는 듯ì´. -"제가 ì§€ê¸ˆë„ ì—´ì´ ì‚¼ì‹­íŒ” ë„ê°€ 넘습니다. ì •ì‹ ì´ í릿해지는 ê²ƒì„ ë³´ë‹ˆê¹Œ 아마 ë” ì˜¬ë¼ê°€ë‚˜ ë´ìš”. ê·¸ëž˜ë„ ê´œì°®ì•„ìš”. 오늘 하루야 못 ì‚´ë¼ê³ ìš”. 오늘 하루만 ì‚´ë©´ 괜찮아요. 최 ì„ ìƒë‹˜ë§Œ í•œ 번 뵙고 죽으면 괜찮아요." -"왜 그런 소릴 í•´?" -하고 나는 ì±…ë§í•˜ëŠ” ë“¯ì´ ì–¸ì„±ì„ ë†’ì˜€ë‹¤. -ì •ìž„ì€ ê¸°ì¹¨ì„ ì‹œìž‘í•˜ì˜€ë‹¤. 한바탕 ê¸°ì¹¨ì„ í•˜ê³ ëŠ” ê¸°ìš´ì´ ì§„í•œ ë“¯ì´ ë…¸íŒŒì—게 기대며 ì¡°ì„ ë§ë¡œ, -"추워요." -하였다. ì´ ì—¬í–‰ì´ ì–´ë–»ê²Œ ì •ìž„ì˜ ë³‘ì— ì¢‹ì§€ 못할 ê²ƒì€ ì˜ì‚¬ê°€ ì•„ë‹Œ ë‚˜ë¡œë„ ì§ìž‘í•  수가 있었다. 그러나 나로는 ë” ì–´ì°Œí•  수가 없었다. -나는 외투를 ë²—ì–´ì„œ ì •ìž„ì—게 입혀 주고 노파는 ì •ìž„ì„ ì•ˆì•„ì„œ ëª¸ì´ ëœ í”들리ë„ë¡ ë˜ ì¶¥ì§€ ì•Šë„ë¡ í•˜ì˜€ë‹¤. -나는 ì •ìž„ì˜ ëª¨ì–‘ì„ ì• ì²˜ë¡œì›Œì„œ 차마 ë³¼ 수가 없었다. 그러나 ì´ê²ƒì€ 하나님밖ì—는 어찌할 ë„리가 없는 ì¼ì´ì—ˆë‹¤. -얼마를 지나서 ì •ìž„ì€ ê°‘ìžê¸° 고개를 들고 ì¼ì–´ë‚˜ë©°, -"ì¸ì œ ëª¸ì´ ì¢€ 녹았습니다. ì„ ìƒë‹˜ 추우시겠어요. ì´ ì™¸íˆ¬ 입으셔요." -하고 ê·¸ì˜ ìž…ë§Œ 웃는 웃ìŒì„ 웃었다. -"ë‚œ 춥지 ì•Šì•„. ì–´ì„œ ìž…ê³  있어." -하고 나는 ì •ìž„ì´ê°€ 외투를 벗는 ê²ƒì„ ë§‰ì•˜ë‹¤. ì •ìž„ì€ ë” ê³ ì§‘í•˜ë ¤ê³ ë„ ì•„ë‹ˆí•˜ê³ , -"ì„ ìƒë‹˜ ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ì€ ì°¸ 좋아요. 눈 ë®ì¸ ê²ƒì´ ë” ì¢‹ì€ ê²ƒ 같아요. 저는 ì´ ì¸ì  없고 ìžìœ ë¡œìš´ 삼림 ì†ìœ¼ë¡œ 헤매어 ë³´ê³  싶어요." -하고 아까 í•˜ë˜ ê²ƒê³¼ ê°™ì€ ë§ì„ ë˜ í•˜ì˜€ë‹¤. -"ë©°ì¹  잘 정양하여서, ë‚ ì´ë‚˜ 따뜻하거든 í•œ 번 산보나 í•´ 보지." -하고 나는 ì •ìž„ì˜ ë§ ëœ»ì´ ë‹¤ë¥¸ ë° ìžˆëŠ” ì¤„ì„ ì•Œë©´ì„œë„ ë¶€ëŸ¬ í‰ë²”하게 대답하였다. -ì •ìž„ì€ ëŒ€ë‹µì´ ì—†ì—ˆë‹¤. -"ì—¬ê¸°ì„œë„ ì•„ì§ ë©€ì–´ìš”?" -하고 ì •ìž„ì€ ëª¸ì´ í”들리는 ê²ƒì„ ì‹¬ížˆ 괴로워하는 모양으로 ë‘ ì†ì„ ìžë¦¬ì— 짚어 ëª¸ì„ ë²„í‹°ë©´ì„œ ë§í•˜ì˜€ë‹¤. -"고대야, 최 ì„ ìƒì´ 반가워할 í„°ì´ì§€. 오죽ì´ë‚˜ 반갑겠나." -하고 나는 ì •ìž„ì„ ìœ„ë¡œí•˜ëŠ” 뜻으로 ë§í•˜ì˜€ë‹¤. -"ì•„ì´ ì°¸ 미안해요. 제가 죄ì¸ì´ì•¼ìš”. ì € ë•Œë¬¸ì— ì• ë§¤í•œ ëˆ„ëª…ì„ ì“°ì‹œê³  저렇게 ì‚¬ì—…ë„ ë²„ë¦¬ì‹œê³  병환까지 나시니 저는 어떡허면 ì´ ì£„ë¥¼ 씻습니까?" -하고 눈물 ê³ ì¸ ëˆˆìœ¼ë¡œ ì •ìž„ì€ ë‚˜ë¥¼ ì³ë‹¤ë³´ì•˜ë‹¤. -나는 ì •ìž„ê³¼ 최ì„ì„ ì´ ìžìœ ë¡œìš´ ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ ì†ì— ë‹¨ë‘˜ì´ ì‚´ê²Œ 하고 싶었다. 그러나 최ì„ì€ ì‚´ì•„ë‚˜ê°€ê² ì§€ë§ˆëŠ” ì •ìž„ì´ê°€ ì‚´ì•„ë‚  수가 있ì„까, 하고 나는 ì •ìž„ì˜ ì–´ê¹¨ë¥¼ ë°”ë¼ë³´ì•˜ë‹¤. ê·¸ì˜ ëª©ìˆ¨ì€ ì‹¤ë‚± ê°™ì€ ê²ƒ 같았다. 바람받ì´ì— ë†“ì¸ ë“±ìž”ë¶ˆê³¼ë§Œ ê°™ì€ ê²ƒ 같았다. ì´ ëª©ìˆ¨ì´ ëŠì–´ì§€ê¸° ì „ì— ì‚¬ëž‘í•˜ëŠ” ì´ì˜ ì–¼êµ´ì„ í•œ 번 대하겠다는 ê²ƒë°–ì— ì•„ë¬´ 소ì›ì´ 없는 ì •ìž„ì€ ì°¸ìœ¼ë¡œ 가엾어서 ê°€ìŠ´ì´ ë¯¸ì–´ì§€ëŠ” 것 같았다. -"염려 ë§ì–´. 무슨 걱정ì´ì•¼? 최 ì„ ìƒë„ ë³‘ì´ ëŒë¦¬ê³  ì •ìž„ë„ ì¸ì œ 얼마 정양하면 ë‚˜ì„ ê²ƒ 아닌가. 아무 염려 ë§ì•„ìš”." -하고 나는 ë”ìš± 최ì„ê³¼ ì •ìž„ê³¼ ë‘ ì‚¬ëžŒì˜ ì‚¬ëž‘ì„ ë‹¬í•˜ê²Œ í•  ê²°ì‹¬ì„ í•˜ì˜€ë‹¤. 하나님께서 계시다면 ì´ ê°€ì—¾ì€ ê°„ì ˆí•œ ë‘ ì‚¬ëžŒì˜ ë§ˆìŒì„ 가슴 미어지게 아니 ìƒê°í•  리가 없다고 ìƒê°í•˜ì˜€ë‹¤. ìš°ì£¼ì˜ ëª¨ë“  ì¼ ì¤‘ì— ì •ìž„ì˜ ì •ê²½ë³´ë‹¤ ë” ìŠ¬í”„ê³  불ìŒí•œ ì •ê²½ì´ ë˜ ìžˆì„까 하였다. 차디찬 눈으로 ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ê´‘ì•¼ì— ë³‘ë“  ì •ìž„ì˜ ì‚¬ëž‘ìœ¼ë¡œ 타는 불똥과 ê°™ì´ ë‚ ì•„ê°€ëŠ” ì´ ì •ê²½ì€ ì¸ìƒì´ 가질 수 있는 최대한 ë¹„ê·¹ì¸ ê²ƒ 같았다. -ì •ìž„ì€ ì§€ì³ì„œ 고개를 숙ì´ê³  ìžˆë‹¤ê°€ë„ ê°€ë” ê³ ê°œë¥¼ 들어서는 기운 나는 ì–‘ì„ ë³´ì´ë ¤ê³ , 유쾌한 ì–‘ì„ ë³´ì´ë ¤ê³  애를 ì¼ë‹¤. -"ì € 나무 보셔요. 오백 ë…„ì€ ì‚´ì•˜ê² ì§€ìš”?" -ì´ëŸ° ë§ë„ 하였다. 그러나 ê·¸ê²ƒì€ ë‹¤ 억지로 지어서 하는 것ì´ì—ˆë‹¤. 그러다가는 ë˜ ê¸°ìš´ì´ ì§€ì³ì„œëŠ” 고개를 숙ì´ê³ , í˜¹ì€ ë…¸íŒŒì˜ ì–´ê¹¨ì— í˜¹ì€ ë‚´ ì–´ê¹¨ì— ì“°ëŸ¬ì¡Œë‹¤. -마침내 우리가 향하고 가는 ì›€ì§‘ì´ ë³´ì˜€ë‹¤. -"ì •ìž„ì´, 저기야." -하고 나는 ì›€ì§‘ì„ ê°€ë¦¬ì¼°ë‹¤. -"네ì—?" -하고 ì •ìž„ì€ ë‚´ ì†ê°€ë½ 가는 ê³³ì„ ë³´ê³  다ìŒì—는 ë‚´ ì–¼êµ´ì„ ë³´ì•˜ë‹¤. 잘 ë³´ì´ì§€ 않는 모양ì´ë‹¤. -"저기 저것 ë§ì•¼. 저기 ì € ê³ ìž‘ í° ì „ë‚˜ë¬´ ë‘ ê°œê°€ 있지 ì•Šì•„? ê·¸ 사ì´ë¡œ ë³´ì´ëŠ” ì €, 저거 ë§ì•¼. 옳지 옳지, ìˆœìž„ì´ ì§€ê¸ˆ 나오지 ì•Šì•„?" -하였다. -순임ì´ê°€ ë¬´ì—‡ì„ ê°€ì§€ëŸ¬ 나오는지 ë¬¸ì„ ì—´ê³  나와서는 ë°¥ 짓ëŠë¼ê³  지어 ë†“ì€ ì´ë¥¼í…Œë©´ 부엌ì—를 들어갔다가 나오는 ê¸¸ì— ì´ ìª½ì„ ë°”ë¼ë³´ë‹¤ê°€ 우리를 발견하였는지 몇 ê±¸ìŒ ë¹¨ë¦¬ 오다가는 서서 ë³´ê³  오다가는 서서 ë³´ë”니 ë‚´ê°€ 모ìžë¥¼ ë‚´ë‘르는 ê²ƒì„ ë³´ê³ ì•¼ 우리 ì¼í–‰ì¸ ê²ƒì„ í™•ì‹¤ížˆ 알고 달ìŒë°•ì§ˆì„ ì³ì„œ 나온다. -우리 ì°ë§¤ë¥¼ 만나ìž, -"ì •ìž„ì´ì•¼? 어쩌면 ì´ ì¶”ìš´ë°." -하고 ìˆœìž„ì€ ì •ìž„ì„ ì•ˆê³  ê·¸ 안경으로 ì •ìž„ì˜ ëˆˆì„ ë“¤ì—¬ë‹¤ë³¸ë‹¤. -"어쩌면 앓으면서 ì´ë ‡ê²Œ 와?" -하고 ìˆœìž„ì€ ë…¸íŒŒì™€ 나를 ì±…ë§í•˜ëŠ” ë“¯ì´ ëŒì•„보았다. -"아버지 ì–´ë– ì‹œëƒ?" -하고 나는 ì§ì„ 들고 앞서서 오면서 뒤따르는 순임ì—게 물었다. -"아버지요?" -하고 ìˆœìž„ì€ ì–´ë¥¸ì—게 대한 ê²½ì˜ë¥¼ 표하노ë¼ê³  ë‚´ ê³ì— 와서 걸으며, -"아버지께서 ì˜¤ëŠ˜ì€ ë§ì”€ì„ ë§Žì´ í•˜ì…¨ì–´ìš”. 순임ì´ê°€ ê³ ìƒí•˜ëŠ”구나 고맙다, ì´ëŸ° ë§ì”€ë„ 하시고, 지금 같아서는 ì¼ì–´ë‚  ê²ƒë„ ê°™ì€ë° ê¸°ìš´ì´ ì—†ì–´ì„œ, ì´ëŸ° ë§ì”€ë„ 하시고, ë˜ ì„ ìƒë‹˜ì´ ì´ë¥´ì¿ ì¸ í¬ì—를 들어가셨으니 ë¬´ì—‡ì„ ì‚¬ 오실 듯싶으ëƒ, 알아맞혀 ë³´ì•„ë¼, ì´ëŸ° ë†ë‹´ë„ 하시고, ì •ìž„ì´ê°€ 어떤가 í•œ 번 보았으면, ì´ëŸ° ë§ì”€ë„ 하시겠지요. ë˜ ìˆœìž„ì•„, ë‚´ê°€ 죽ë”ë¼ë„ ì •ìž„ì„ ë„¤ 친ë™ìƒìœ¼ë¡œ 알아서 부디 잘 사랑해 주어ë¼, ì •ìž„ì€ ë¶ˆìŒí•œ 애다, ì°¸ ì •ìž„ì€ ë¶ˆìŒí•´! ì´ëŸ° ë§ì”€ë„ 하시겠지요. 그렇게 여러 가지 ë§ì”€ì„ ë§Žì´ í•˜ì‹œë”니, 순임아 ë‚´ê°€ 죽거든 ì„ ìƒë‹˜ì„ 아버지로 알고 ê·¸ 지ë„를 받아ë¼, 그러시길래 제가 아버지 안 ëŒì•„가셔요! 그랬ë”니 아버지께서 웃으시면서, 죽지 ë§ê¹Œ, 하시고는 어째 ê°€ìŠ´ì´ ì¢€ ê±°ë¶í•œê°€, 하시ë”니 ìž ì´ ë“œì…¨ì–´ìš”. í•œ 시간ì´ë‚˜ ë˜ì—ˆì„까, 온." -집 ì•žì— ê±°ì˜ ë‹¤ 가서는 ìˆœìž„ì€ ì •ìž„ì˜ íŒ”ì„ ê¼ˆë˜ ê²ƒì„ ë†“ê³  빨리 집으로 뛰어들어갔다. -치마í­ì„ 펄럭거리고 뛰는 ì–‘ì—는 ì–´ë ¸ì„ ì  ë§ê´„ëŸ‰ì´ ìˆœìž„ì˜ ëª¨ìŠµì´ ë‚¨ì•„ 있어서 나는 í˜¼ìž ì›ƒì—ˆë‹¤. ìˆœìž„ì€ ì •ìž„ì´ê°€ 왔다는 ê¸°ìœ ì†Œì‹ì„ í•œ ì‹œê°ì´ë¼ë„ 빨리 아버지께 전하고 ì‹¶ì—ˆë˜ ê²ƒì´ë‹¤. -"아버지, 주무시우? ì •ìž„ì´ê°€ 왔어요. ì •ìž„ì´ê°€ 왔습니다." -하고 부르는 소리가 ë°–ì—ì„œë„ ë“¤ë ¸ë‹¤. -ë‚˜ë„ ë°©ì— ë“¤ì–´ì„œê³ , ì •ìž„ë„ ë’¤ë”°ë¼ ë“¤ì–´ì„œê³ , 노파는 부엌으로 ë¬¼ê±´ì„ ë‘러 들어갔다. -ë°©ì€ ì ˆë²½ê°™ì´ ì–´ë‘웠다. -"순임아, ë¶ˆì„ ì¢€ 켜려무나." -하고 최ì„ì˜ ì–¼êµ´ì„ ì°¾ëŠë¼ê³  ëˆˆì„ í¬ê²Œ 뜨고 고개를 숙ì´ë©°, -"ìžë‚˜? ì •ìž„ì´ê°€ 왔네." -하고 불렀다. -ì •ìž„ë„ ê³ì— 와서 선다. -최ì„ì€ ëŒ€ë‹µì´ ì—†ì—ˆë‹¤. -순임ì´ê°€ ì´›ë¶ˆì„ ì¼œìž ìµœì„ì˜ ì–¼êµ´ì´ í™˜í•˜ê²Œ 보였다. -"여보게, ì—¬ë´. ìžë‚˜?" -하고 나는 무서운 예ê°ì„ 가지면서 최ì„ì˜ ì–´ê¹¨ë¥¼ í”들었다. -ê·¸ê²ƒì´ ë¬´ì—‡ì¸ì§€ 모르지마는 최ì„ì€ ì‹œì²´ë¼ í•˜ëŠ” ê²ƒì„ ë‚˜ëŠ” ë‚´ ì†ì„ 통해서 깨달았다. -나는 ê¹œì§ ë†€ë¼ì„œ ì´ë¶ˆì„ 벗기고 최ì„ì˜ íŒ”ì„ ìž¡ì•„ ë§¥ì„ ì§šì–´ 보았다. 거기는 ë§¥ì´ ì—†ì—ˆë‹¤. -나는 최ì„ì˜ ìžë¦¬ì˜· ê°€ìŠ´ì„ í—¤ì¹˜ê³  귀를 ê°€ìŠ´ì— ëŒ€ì—ˆë‹¤. ê·¸ ì‚´ì€ ì–¼ìŒê³¼ ê°™ì´ ì°¨ê³  ê·¸ ê°€ìŠ´ì€ ê³ ìš”í•˜ì˜€ë‹¤. ì‹¬ìž¥ì€ ë›°ê¸°ë¥¼ 그친 것ì´ì—ˆë‹¤. -나는 최ì„ì˜ ê°€ìŠ´ì—ì„œ 귀를 떼고 ì¼ì–´ì„œë©´ì„œ, -"네 아버지는 ëŒì•„가셨다. 네 ì†ìœ¼ë¡œ 눈ì´ë‚˜ ê°ê²¨ 드려ë¼." -하였다. ë‚´ 눈ì—서는 ëˆˆë¬¼ì´ í˜ë €ë‹¤. -"ì„ ìƒë‹˜!" -하고 ì •ìž„ì€ ì „ì—°ížˆ 절제할 íž˜ì„ ìžƒì–´ë²„ë¦° ë“¯ì´ ìµœì„ì˜ ê°€ìŠ´ì— ì—Žì–´ì¡Œë‹¤. 그러고는 소리를 ë‚´ì–´ 울었다. 순임ì€, -"아버지, 아버지!" -하고 최ì„ì˜ ë² ê°œ ê³ì— ì´ë§ˆë¥¼ 대고 울었다. -ì•„ë¼ì‚¬ ë…¸íŒŒë„ ìš¸ì—ˆë‹¤. -ë°© 안ì—는 ì˜¤ì§ ìš¸ìŒ ì†Œë¦¬ë¿ì´ìš”, ë§ì´ 없었다. 최ì„ì€ ë²Œì¨ ì´ ìŠ¬í”ˆ ê´‘ê²½ë„ ëª°ë¼ë³´ëŠ” 사람ì´ì—ˆë‹¤. -최ì„ì´ê°€ ìžê¸°ì˜ ì‹¸ì›€ì„ ì´ê¸°ê³  죽었는지, ë˜ëŠ” ë까지 지다가 죽었는지 ê·¸ê²ƒì€ ì˜ì›í•œ 비밀ì´ì–´ì„œ ì•Œ ë„리가 없었다. 그러나 ì´ê²ƒë§Œì€ 확실하다 ê·¸ì˜ ì˜ì‹ì´ 마지막으로 ë나는 ìˆœê°„ì— ê·¸ì˜ ì˜ì‹ê¸°ì— ë– ì˜¤ë¥´ë˜ ì˜¤ì§ í•˜ë‚˜ê°€ ì •ìž„ì´ì—ˆìœ¼ë¦¬ë¼ëŠ” 것만ì€. -지금 ì •ìž„ì´ê°€ ê·¸ì˜ ê°€ìŠ´ì— ì—Žì–´ì ¸ 울지마는, ì •ìž„ì˜ ëœ¨ê±°ìš´ ëˆˆë¬¼ì´ ê·¸ì˜ ê°€ìŠ´ì„ ì ì‹œê±´ë§ˆëŠ” 최ì„ì˜ ê°€ìŠ´ì€ ë›¸ ì¤„ì„ ëª¨ë¥¸ë‹¤. ì´ê²ƒì´ 죽ìŒì´ëž€ 것ì´ë‹¤. -ë’¤ì— ê²½ì°°ì˜ê°€ 와서 검사한 ê²°ê³¼ì— ì˜í•˜ë©´, 최ì„ì€ í렴으로 ì•“ë˜ ê²°ê³¼ë¡œ 심장마비를 ì¼ìœ¼í‚¨ 것ì´ë¼ê³  하였다. -나는 최ì„ì˜ ìž¥ë¡€ë¥¼ ëë‚´ê³  순임과 ì •ìž„ì„ ë°ë¦¬ê³  오려 하였으나 ì •ìž„ì€ ë“£ì§€ 아니하고 노파와 ê°™ì´ ë°”ì´ì¹¼ 촌으로 ê°€ 버렸다. -그런 뒤로는 ì •ìž„ì—게서는 ì¼ì²´ ìŒì‹ ì´ 없다. 때때로 노파ì—게서 편지가 ì˜¤ëŠ”ë° ì •ìž„ì€ ìµœì„ì´ê°€ ìžˆë˜ ë°©ì— ê°€ë§Œížˆ 있다고만 하였다. -서투른 ì˜ì–´ê°€ ëœ»ì„ ì¶©ë¶„ížˆ 발표하지 못하는 것ì´ì—ˆë‹¤. -나는 ì •ìž„ì—게 안심하고 ë³‘ì„ ì¹˜ë£Œí•˜ë¼ëŠ” íŽ¸ì§€ë„ í•˜ê³  ëˆì´ 필요하거든 청구하ë¼ëŠ” íŽ¸ì§€ë„ í•˜ë‚˜ ì˜ ë‹µìž¥ì´ ì—†ë‹¤. -ë§Œì¼ ì •ìž„ì´ê°€ 죽었다는 ê¸°ë³„ì´ ì˜¤ë©´ 나는 í•œ 번 ë” ì‹œë² ë¦¬ì•„ì— ê°€ì„œ ë‘˜ì„ ê°€ì§€ëŸ°ížˆ 묻고 `ë‘ ë³„ 무ë¤'ì´ë¼ëŠ” 비를 세워 줄 ìƒê°ì´ë‹¤. 그러나 나는 ì •ìž„ì´ê°€ 조선으로 오기를 바란다. -ì—¬ëŸ¬ë¶„ì€ ìµœì„ê³¼ ì •ìž„ì—게 대한 ì´ ê¸°ë¡ì„ 믿고 ê·¸ ë‘ ì‚¬ëžŒì—게 대한 오해를 í’€ë¼. -EOT; -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php deleted file mode 100644 index 5f446408..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php +++ /dev/null @@ -1,131 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function citySuffix() - { - return static::randomElement(static::$citySuffix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public static function streetSuffix() - { - return static::randomElement(static::$streetSuffix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php deleted file mode 100644 index 4a110c2c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php +++ /dev/null @@ -1,15 +0,0 @@ -bothify("########"); - } - - /** - * Return passport number - * @return string - * @example 12345678 - */ - public function passportNumber() - { - return $this->bothify("########"); - } - - /** - * National Personal Identity number (asmens kodas) - * @link https://en.wikipedia.org/wiki/National_identification_number#Lithuania - * @link https://lt.wikipedia.org/wiki/Asmens_kodas - * @param string [male|female] - * @param \DateTime $birthdate - * @param string $randomNumber three integers - * @return string on format XXXXXXXXXXX - */ - public function personalIdentityNumber($gender = 'male', \DateTime $birthdate = null, $randomNumber = '') - { - if (!$birthdate) { - $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury(); - } - - $genderNumber = ($gender == 'male') ? (int) 1 : (int) 0; - $firstNumber = (int) floor($birthdate->format('Y') / 100) * 2 - 34 - $genderNumber; - - $datePart = $birthdate->format('ymd'); - $randomDigits = (string) ( ! $randomNumber || strlen($randomNumber < 3)) ? static::numerify('###') : substr($randomNumber, 0, 3); - $partOfPerosnalCode = $firstNumber . $datePart . $randomDigits; - - $sum = self::calculateSum($partOfPerosnalCode, 1); - $liekana = $sum % 11; - - if ($liekana !== 10) { - $lastNumber = $liekana; - return $firstNumber . $datePart . $randomDigits . $lastNumber; - } - - $sum = self::calculateSum($partOfPerosnalCode, 2); - $liekana = (int) $sum % 11; - - $lastNumber = ($liekana !== 10) ? $liekana : 0; - return $firstNumber . $datePart . $randomDigits . $lastNumber; - } - - /** - * Calculate the sum of personal code - * @link https://en.wikipedia.org/wiki/National_identification_number#Lithuania - * @link https://lt.wikipedia.org/wiki/Asmens_kodas - * @param string $numbers - * @param int $time [1|2] - * @return int - */ - private static function calculateSum($numbers, $time = 1) - { - if ($time == 1) { - $multipliers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 1 ); - } else { - $multipliers = array(3, 4, 5, 6, 7, 8, 9, 1, 2, 3 ); - } - - $sum = 0; - for ($i=1; $i <= 10; $i++) { - $sum += $numbers[$i-1] * $multipliers[$i-1]; - } - - return (int) $sum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php deleted file mode 100644 index 752eb78b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php +++ /dev/null @@ -1,17 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function cityPrefix() - { - return static::randomElement(static::$cityPrefix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php deleted file mode 100644 index 99e681b7..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php +++ /dev/null @@ -1,19 +0,0 @@ -format('dmy'); - $randomDigits = (string) static::numerify('####'); - - $checksum = Luhn::computeCheckDigit($datePart . $randomDigits); - - return $datePart . '-' . $randomDigits . $checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php deleted file mode 100644 index 29c19f63..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php +++ /dev/null @@ -1,15 +0,0 @@ - static::latitude(42.43, 42.45), - 'longitude' => static::longitude(19.16, 19.27) - ); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php deleted file mode 100644 index 1f803127..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php +++ /dev/null @@ -1,49 +0,0 @@ -generator->parse(static::$idNumberFormat)); - } - - /** - * @return string - * @example 'Ф' - */ - public function alphabet() - { - return static::randomElement(static::$alphabet); - } - - /** - * @return string - * @example 'Э' - */ - public function namePrefix() - { - return static::randomElement(static::$namePrefix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php deleted file mode 100644 index dd0bb4ab..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php +++ /dev/null @@ -1,13 +0,0 @@ -format('dmy'); - - /** - * @todo These number should be random based on birth year - * @link http://no.wikipedia.org/wiki/F%C3%B8dselsnummer - */ - $randomDigits = (string)static::numerify('##'); - - switch($gender) { - case static::GENDER_MALE: - $genderDigit = static::randomElement(array(1,3,5,7,9)); - break; - case static::GENDER_FEMALE: - $genderDigit = static::randomElement(array(0,2,4,6,8)); - break; - default: - $genderDigit = (string)static::numerify('#'); - } - - - $digits = $datePart.$randomDigits.$genderDigit; - - /** - * @todo Calculate modulo 11 of $digits - * @link http://no.wikipedia.org/wiki/F%C3%B8dselsnummer - */ - $checksum = (string)static::numerify('##'); - - - return $digits.$checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php deleted file mode 100644 index 9be29932..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - OddziaÅ‚ w Polsce', - '249' => 'Alior Bank SA', - '247' => 'Banco Espirito Santo de Investimento, S.A. Spółka Akcyjna OddziaÅ‚ w Polsce', - '238' => 'Banco Mais S.A. (SA) OddziaÅ‚ w Polsce', - '106' => 'Bank BPH SA', - '219' => 'Bank DnB NORD Polska SA', - '203' => 'Bank Gospodarki Å»ywnoÅ›ciowej SA', - '113' => 'Bank Gospodarstwa Krajowego', - '122' => 'Bank Handlowo - Kredytowy SA (w likwidacji 31.03.92)', - '103' => 'Bank Handlowy w Warszawie SA', - '116' => 'Bank Millennium SA', - '154' => 'Bank Ochrony Åšrodowiska SA', - '260' => 'Bank of China (Luxembourg)S.A. Spółka Akcyjna OddziaÅ‚ w Polsce', - '221' => 'Bank of Tokyo-Mitsubishi UFJ (Polska) SA', - '132' => 'Bank Pocztowy SA', - '124' => 'Bank Polska Kasa Opieki SA', - '193' => 'BANK POLSKIEJ SPÓÅDZIELCZOÅšCI SA', - '109' => 'Bank Zachodni WBK SA', - '224' => 'Banque PSA Finance SA OddziaÅ‚ w Polsce', - '160' => 'BNP PARIBAS BANK POLSKA SA', - '235' => 'BNP PARIBAS SA OddziaÅ‚ w Polsce', - '243' => 'BNP Paribas Securities Services SKAOddziaÅ‚ w Polsce', - '229' => 'BPI Bank Polskich Inwestycji SA', - '215' => 'BRE Bank Hipoteczny SA', - '114' => 'BRE Bank SA', - '239' => 'CAIXABANK, S.A. (SPÓÅKA AKCYJNA)ODDZIAÅ W POLSCE', - '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) OddziaÅ‚ w Polsce', - '194' => 'Credit Agricole Bank Polska SA', - '252' => 'CREDIT SUISSE (LUXEMBOURG) S.A. Spółka Akcyjna, OddziaÅ‚ w Polsce', - '236' => 'Danske Bank A/S SA OddziaÅ‚ w Polsce', - '191' => 'Deutsche Bank PBC SA', - '188' => 'Deutsche Bank Polska SA', - '174' => 'DZ BANK Polska SA', - '241' => 'Elavon Financial Services Limited (Spółka z ograniczonÄ… odpowiedzialnoÅ›ciÄ…) OddziaÅ‚ w Polsce', - '147' => 'Euro Bank SA', - '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - OddziaÅ‚ w Polsce', - '207' => 'FCE Bank Polska SA', - '214' => 'Fiat Bank Polska SA', - '253' => 'FM Bank SA', - '248' => 'Getin Noble Bank SA', - '128' => 'HSBC Bank Polska SA', - '195' => 'Idea Bank SA', - '255' => 'Ikano Bank GmbH (Sp. z o.o.) OddziaÅ‚ w Polsce', - '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) OddziaÅ‚ w Polsce', - '105' => 'ING Bank ÅšlÄ…ski SA', - '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna OddziaÅ‚ w Polsce', - '168' => 'INVEST - BANK SA', - '258' => 'J.P. Morgan Europe Limited Sp. z o.o. OddziaÅ‚ w Polsce', - '158' => 'Mercedes-Benz Bank Polska SA', - '130' => 'Meritum Bank ICB SA', - '101' => 'Narodowy Bank Polski', - '256' => 'Nordea Bank AB SA OddziaÅ‚ w Polsce', - '144' => 'NORDEA BANK POLSKA SA', - '232' => 'Nykredit Realkredit A/S SA - OddziaÅ‚ w Polsce', - '189' => 'Pekao Bank Hipoteczny SA', - '187' => 'Polski Bank PrzedsiÄ™biorczoÅ›ci SA', - '102' => 'Powszechna Kasa OszczÄ™dnoÅ›ci Bank Polski SA', - '200' => 'Rabobank Polska SA', - '175' => 'Raiffeisen Bank Polska SA', - '167' => 'RBS Bank (Polska) SA', - '264' => 'RCI Banque Spółka Akcyjna OddziaÅ‚ w Polsce', - '212' => 'Santander Consumer Bank SA', - '263' => 'Saxo Bank A/S Spółka Akcyjna OddziaÅ‚ w Polsce', - '161' => 'SGB-Bank SA', - '237' => 'Skandinaviska Enskilda Banken AB (SA) - OddziaÅ‚ w Polsce', - '184' => 'Societe Generale SA OddziaÅ‚ w Polsce', - '225' => 'Svenska Handelsbanken AB SA OddziaÅ‚ w Polsce', - '227' => 'Sygma Banque Societe Anonyme (SA) OddziaÅ‚ w Polsce', - '216' => 'Toyota Bank Polska SA', - '257' => 'UBS Limited (spółka z ograniczonÄ… odpowiedzialnoÅ›ciÄ…) OddziaÅ‚ w Polsce', - '261' => 'Vanquis Bank Limited (spółka z ograniczonÄ… odpowiedzialnoÅ›ciÄ…) OddziaÅ‚ w Polsce', - '213' => 'VOLKSWAGEN BANK POLSKA SA', - ); - - /** - * @example 'Euro Bank SA' - */ - public static function bank() - { - return static::randomElement(static::$banks); - } - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'PL', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } - - protected static function addBankCodeChecksum($iban, $countryCode = 'PL') - { - if ($countryCode != "PL" || strlen($iban) <= 8) { - return $iban; - } - $checksum = 0; - $weights = array(7, 1, 3, 9, 7, 1, 3); - for ($i = 0; $i < 7; $i++) { - $checksum += $weights[$i] * (int) $iban[$i]; - } - $checksum = $checksum % 10; - - return substr($iban, 0, 7) . $checksum . substr($iban, 8); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php deleted file mode 100644 index c6b2402e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php +++ /dev/null @@ -1,226 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } - - public function title($gender = null) - { - return static::randomElement(static::$title); - } - - /** - * replaced by specific unisex Polish title - */ - public static function titleMale() - { - return static::title(); - } - - /** - * replaced by specific unisex Polish title - */ - public static function titleFemale() - { - return static::title(); - } - - /** - * PESEL - Universal Electronic System for Registration of the Population - * @link http://en.wikipedia.org/wiki/PESEL - * @param DateTime $birthdate - * @param string $sex M for male or F for female - * @return string 11 digit number, like 44051401358 - */ - public static function pesel($birthdate = null, $sex = null) - { - if ($birthdate === null) { - $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury(); - } - - $weights = array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3); - $length = count($weights); - - $fullYear = (int) $birthdate->format('Y'); - $year = (int) $birthdate->format('y'); - $month = $birthdate->format('m') + (((int) ($fullYear/100) - 14) % 5) * 20; - $day = $birthdate->format('d'); - - $result = array((int) ($year / 10), $year % 10, (int) ($month / 10), $month % 10, (int) ($day / 10), $day % 10); - - for ($i = 6; $i < $length; $i++) { - $result[$i] = static::randomDigit(); - } - if ($sex == "M") { - $result[$length - 1] |= 1; - } elseif ($sex == "F") { - $result[$length - 1] ^= 1; - } - $checksum = 0; - for ($i = 0; $i < $length; $i++) { - $checksum += $weights[$i] * $result[$i]; - } - $checksum = (10 - ($checksum % 10)) % 10; - $result[] = $checksum; - - return implode('', $result); - } - - /** - * National Identity Card number - * @link http://en.wikipedia.org/wiki/Polish_National_Identity_Card - * @return string 3 letters and 6 digits, like ABA300000 - */ - public static function personalIdentityNumber() - { - $range = str_split("ABCDEFGHIJKLMNPRSTUVWXYZ"); - $low = array("A", static::randomElement($range), static::randomElement($range)); - $high = array(static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit()); - $weights = array(7, 3, 1, 7, 3, 1, 7, 3); - $checksum = 0; - for ($i = 0, $size = count($low); $i < $size; $i++) { - $checksum += $weights[$i] * (ord($low[$i]) - 55); - } - for ($i = 0, $size = count($high); $i < $size; $i++) { - $checksum += $weights[$i+3] * $high[$i]; - } - $checksum %= 10; - - return implode('', $low).$checksum.implode('', $high); - } - - /** - * Taxpayer Identification Number (NIP in Polish) - * @link http://en.wikipedia.org/wiki/PESEL#Other_identifiers - * @link http://pl.wikipedia.org/wiki/NIP - * @return string 10 digit number - */ - public static function taxpayerIdentificationNumber() - { - $weights = array(6, 5, 7, 2, 3, 4, 5, 6, 7); - $result = array(); - do { - $result = array( - static::randomDigitNotNull(), static::randomDigitNotNull(), static::randomDigitNotNull(), - static::randomDigit(), static::randomDigit(), static::randomDigit(), - static::randomDigit(), static::randomDigit(), static::randomDigit(), - ); - $checksum = 0; - for ($i = 0, $size = count($result); $i < $size; $i++) { - $checksum += $weights[$i] * $result[$i]; - } - $checksum %= 11; - } while ($checksum == 10); - $result[] = $checksum; - - return implode('', $result); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php deleted file mode 100644 index 65bc5c0e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php +++ /dev/null @@ -1,18 +0,0 @@ - - - Prof. Hart will answer or forward your message. - - We would prefer to send you information by email. - - - **The Legal Small Print** - - - (Three Pages) - - ***START**THE SMALL PRINT!**FOR PUBLIC DOMAIN EBOOKS**START*** - Why is this "Small Print!" statement here? You know: lawyers. - They tell us you might sue us if there is something wrong with - your copy of this eBook, even if you got it for free from - someone other than us, and even if what's wrong is not our - fault. So, among other things, this "Small Print!" statement - disclaims most of our liability to you. It also tells you how - you may distribute copies of this eBook if you want to. - - *BEFORE!* YOU USE OR READ THIS EBOOK - By using or reading any part of this PROJECT GUTENBERG-tm - eBook, you indicate that you understand, agree to and accept - this "Small Print!" statement. If you do not, you can receive - a refund of the money (if any) you paid for this eBook by - sending a request within 30 days of receiving it to the person - you got it from. If you received this eBook on a physical - medium (such as a disk), you must return it with your request. - - ABOUT PROJECT GUTENBERG-TM EBOOKS - This PROJECT GUTENBERG-tm eBook, like most PROJECT GUTENBERG-tm eBooks, - is a "public domain" work distributed by Professor Michael S. Hart - through the Project Gutenberg Association (the "Project"). - Among other things, this means that no one owns a United States copyright - on or for this work, so the Project (and you!) can copy and - distribute it in the United States without permission and - without paying copyright royalties. Special rules, set forth - below, apply if you wish to copy and distribute this eBook - under the "PROJECT GUTENBERG" trademark. - - Please do not use the "PROJECT GUTENBERG" trademark to market - any commercial products without permission. - - To create these eBooks, the Project expends considerable - efforts to identify, transcribe and proofread public domain - works. Despite these efforts, the Project's eBooks and any - medium they may be on may contain "Defects". Among other - things, Defects may take the form of incomplete, inaccurate or - corrupt data, transcription errors, a copyright or other - intellectual property infringement, a defective or damaged - disk or other eBook medium, a computer virus, or computer - codes that damage or cannot be read by your equipment. - - LIMITED WARRANTY; DISCLAIMER OF DAMAGES - But for the "Right of Replacement or Refund" described below, - [1] Michael Hart and the Foundation (and any other party you may - receive this eBook from as a PROJECT GUTENBERG-tm eBook) disclaims - all liability to you for damages, costs and expenses, including - legal fees, and [2] YOU HAVE NO REMEDIES FOR NEGLIGENCE OR - UNDER STRICT LIABILITY, OR FOR BREACH OF WARRANTY OR CONTRACT, - INCLUDING BUT NOT LIMITED TO INDIRECT, CONSEQUENTIAL, PUNITIVE - OR INCIDENTAL DAMAGES, EVEN IF YOU GIVE NOTICE OF THE - POSSIBILITY OF SUCH DAMAGES. - - If you discover a Defect in this eBook within 90 days of - receiving it, you can receive a refund of the money (if any) - you paid for it by sending an explanatory note within that - time to the person you received it from. If you received it - on a physical medium, you must return it with your note, and - such person may choose to alternatively give you a replacement - copy. If you received it electronically, such person may - choose to alternatively give you a second opportunity to - receive it electronically. - - THIS EBOOK IS OTHERWISE PROVIDED TO YOU "AS-IS". NO OTHER - WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, ARE MADE TO YOU AS - TO THE EBOOK OR ANY MEDIUM IT MAY BE ON, INCLUDING BUT NOT - LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A - PARTICULAR PURPOSE. - - Some states do not allow disclaimers of implied warranties or - the exclusion or limitation of consequential damages, so the - above disclaimers and exclusions may not apply to you, and you - may have other legal rights. - - INDEMNITY - You will indemnify and hold Michael Hart, the Foundation, - and its trustees and agents, and any volunteers associated - with the production and distribution of Project Gutenberg-tm - texts harmless, from all liability, cost and expense, including - legal fees, that arise directly or indirectly from any of the - following that you do or cause: [1] distribution of this eBook, - [2] alteration, modification, or addition to the eBook, - or [3] any Defect. - - DISTRIBUTION UNDER "PROJECT GUTENBERG-tm" - You may distribute copies of this eBook electronically, or by - disk, book or any other medium if you either delete this - "Small Print!" and all other references to Project Gutenberg, - or: - - [1] Only give exact copies of it. Among other things, this - requires that you do not remove, alter or modify the - eBook or this "small print!" statement. You may however, - if you wish, distribute this eBook in machine readable - binary, compressed, mark-up, or proprietary form, - including any form resulting from conversion by word - processing or hypertext software, but only so long as - *EITHER*: - - [*] The eBook, when displayed, is clearly readable, and - does *not* contain characters other than those - intended by the author of the work, although tilde - (~), asterisk (*) and underline (_) characters may - be used to convey punctuation intended by the - author, and additional characters may be used to - indicate hypertext links; OR - - [*] The eBook may be readily converted by the reader at - no expense into plain ASCII, EBCDIC or equivalent - form by the program that displays the eBook (as is - the case, for instance, with most word processors); - OR - - [*] You provide, or agree to also provide on request at - no additional cost, fee or expense, a copy of the - eBook in its original plain ASCII form (or in EBCDIC - or other equivalent proprietary form). - - [2] Honor the eBook refund and replacement provisions of this - "Small Print!" statement. - - [3] Pay a trademark license fee to the Foundation of 20% of the - gross profits you derive calculated using the method you - already use to calculate your applicable taxes. If you - don't derive profits, no royalty is due. Royalties are - payable to "Project Gutenberg Literary Archive Foundation" - the 60 days following each date you prepare (or were - legally required to prepare) your annual (or equivalent - periodic) tax return. Please contact us beforehand to - let us know your plans and to work out the details. - - WHAT IF YOU *WANT* TO SEND MONEY EVEN IF YOU DON'T HAVE TO? - Project Gutenberg is dedicated to increasing the number of - public domain and licensed works that can be freely distributed - in machine readable form. - - The Project gratefully accepts contributions of money, time, - public domain materials, or royalty free copyright licenses. - Money should be paid to the: - "Project Gutenberg Literary Archive Foundation." - - If you are interested in contributing scanning equipment or - software or other items, please contact Michael Hart at: - hart@pobox.com - - [Portions of this eBook's header and trailer may be reprinted only - when distributed free of all fees. Copyright (C) 2001, 2002 by - Michael S. Hart. Project Gutenberg is a TradeMark and may not be - used in any sales of Project Gutenberg eBooks or other materials be - they hardware or software or any other related product without - express permission.] - - *END THE SMALL PRINT! FOR PUBLIC DOMAIN EBOOKS*Ver.02/11/02*END* - - */ -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php deleted file mode 100644 index 68b6df07..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php +++ /dev/null @@ -1,154 +0,0 @@ -generator->numerify('########0001'); - $n .= check_digit($n); - $n .= check_digit($n); - - return $formatted? vsprintf('%d%d.%d%d%d.%d%d%d/%d%d%d%d-%d%d', str_split($n)) : $n; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php deleted file mode 100644 index 7481a6f5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ - array( - "4##############" - ), - 'MasterCard' => array( - "5##############" - ), - 'American Express' => array( - "34############", - "37############" - ), - 'Discover Card' => array( - "6011###########", - "622############", - "64#############", - "65#############" - ), - 'Diners' => array( - "301############", - "301##########", - "305############", - "305##########", - "36#############", - "36###########", - "38#############", - "38###########", - ), - 'Elo' => array( - "636368#########", - "438935#########", - "504175#########", - "451416#########", - "636297#########", - "5067###########", - "4576###########", - "4011###########", - ), - 'Hipercard' => array( - "38#############", - "60#############", - ), - "Aura" => array( - "50#############" - ) - ); - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'BR', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php deleted file mode 100644 index be39a2e7..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php +++ /dev/null @@ -1,133 +0,0 @@ -generator->numerify('#########'); - $n .= check_digit($n); - $n .= check_digit($n); - - return $formatted? vsprintf('%d%d%d.%d%d%d.%d%d%d-%d%d', str_split($n)) : $n; - } - - /** - * A random RG number, following Sao Paulo state's rules. - * @link http://pt.wikipedia.org/wiki/C%C3%A9dula_de_identidade - * @param bool $formatted If the number should have dots/dashes or not. - * @return string - */ - public function rg($formatted = true) - { - $n = $this->generator->numerify('########'); - $n .= check_digit($n); - - return $formatted? vsprintf('%d%d.%d%d%d.%d%d%d-%s', str_split($n)) : $n; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php deleted file mode 100644 index 9224b08e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php +++ /dev/null @@ -1,124 +0,0 @@ - '')); - } - - return $number; - } - - /** - * Generates an 9-digit landline number without formatting characters. - * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return string - */ - public static function landline($formatted = true) - { - $number = static::numerify(static::randomElement(static::$landlineFormats)); - - if (!$formatted) { - $number = strtr($number, array('-' => '')); - } - - return $number; - } - - /** - * Randomizes between cellphone and landline numbers. - * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return mixed - */ - public static function phone($formatted = true) - { - $options = static::randomElement(array( - array('cellphone', false), - array('cellphone', true), - array('landline', null), - )); - - return call_user_func("static::{$options[0]}", $formatted, $options[1]); - } - - /** - * Generates a complete phone number. - * @param string $type [def: landline] One of "landline" or "cellphone". Defaults to "landline" on invalid values. - * @param bool $formatted [def: true] If the number should be formatted or not. - * @return string - */ - protected static function anyPhoneNumber($type, $formatted = true) - { - $area = static::areaCode(); - $number = ($type == 'cellphone')? - static::cellphone($formatted) : - static::landline($formatted); - - return $formatted? "($area) $number" : $area.$number; - } - - /** - * Concatenates {@link areaCode} and {@link cellphone} into a national cellphone number. - * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return string - */ - public static function cellphoneNumber($formatted = true) - { - return static::anyPhoneNumber('cellphone', $formatted); - } - - /** - * Concatenates {@link areaCode} and {@link landline} into a national landline number. - * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return string - */ - public static function landlineNumber($formatted = true) - { - return static::anyPhoneNumber('landline', $formatted); - } - - /** - * Randomizes between complete cellphone and landline numbers. - * @return mixed - */ - public function phoneNumber() - { - $method = static::randomElement(array('cellphoneNumber', 'landlineNumber')); - return call_user_func("static::$method", true); - } - - /** - * Randomizes between complete cellphone and landline numbers, cleared from formatting symbols. - * @return mixed - */ - public static function phoneNumberCleared() - { - $method = static::randomElement(array('cellphoneNumber', 'landlineNumber')); - return call_user_func("static::$method", false); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php deleted file mode 100644 index ab67db9d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php +++ /dev/null @@ -1,35 +0,0 @@ -= 12; - $verifier = 0; - - for ($i = 1; $i <= $length; $i++) { - if (!$second_algorithm) { - $multiplier = $i+1; - } else { - $multiplier = ($i >= 9)? $i-7 : $i+1; - } - $verifier += $numbers[$length-$i] * $multiplier; - } - - $verifier = 11 - ($verifier % 11); - if ($verifier >= 10) { - $verifier = 0; - } - - return $verifier; -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php deleted file mode 100644 index a6e10099..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php +++ /dev/null @@ -1,124 +0,0 @@ - 0; $i--) { - $numbers[$i] = substr($number, $i - 1, 1); - $partial[$i] = $numbers[$i] * $factor; - $sum += $partial[$i]; - if ($factor == $base) { - $factor = 1; - } - $factor++; - } - $res = $sum % 11; - - if ($res == 0 || $res == 1) { - $digit = 0; - } else { - $digit = 11 - $res; - } - - return $digit; - } - - /** - * - * @link http://nomesportugueses.blogspot.pt/2012/01/lista-dos-cem-nomes-mais-usados-em.html - */ - - protected static $firstNameMale = array( - 'Rodrigo', 'João', 'Martim', 'Afonso', 'Tomás', 'Gonçalo', 'Francisco', 'Tiago', - 'Diogo', 'Guilherme', 'Pedro', 'Miguel', 'Rafael', 'Gabriel', 'Santiago', 'Dinis', - 'David', 'Duarte', 'José', 'Simão', 'Daniel', 'Lucas', 'Gustavo', 'André', 'Denis', - 'Salvador', 'António', 'Vasco', 'Henrique', 'Lourenço', 'Manuel', 'Eduardo', 'Bernardo', - 'Leandro', 'Luís', 'Diego', 'Leonardo', 'Alexandre', 'Rúben', 'Mateus', 'Ricardo', - 'Vicente', 'Filipe', 'Bruno', 'Nuno', 'Carlos', 'Rui', 'Hugo', 'Samuel', 'Ãlvaro', - 'Matias', 'Fábio', 'Ivo', 'Paulo', 'Jorge', 'Xavier', 'Marco', 'Isaac', 'Raúl','Benjamim', - 'Renato', 'Artur', 'Mário', 'Frederico', 'Cristiano', 'Ivan', 'Sérgio', 'Micael', - 'Vítor', 'Edgar', 'Kevin', 'Joaquim', 'Igor', 'Ângelo', 'Enzo', 'Valentim', 'Flávio', - 'Joel', 'Fernando', 'Sebastião', 'Tomé', 'César', 'Cláudio', 'Nelson', 'Lisandro', 'Jaime', - 'Gil', 'Mauro', 'Sandro', 'Hélder', 'Matheus', 'William', 'Gaspar', 'Márcio', - 'Martinho', 'Emanuel', 'Marcos', 'Telmo', 'Davi', 'Wilson' - ); - - protected static $firstNameFemale = array( - 'Maria', 'Leonor', 'Matilde', 'Mariana', 'Ana', 'Beatriz', 'Inês', 'Lara', 'Carolina', 'Margarida', - 'Joana', 'Sofia', 'Diana', 'Francisca', 'Laura', 'Sara', 'Madalena', 'Rita', 'Mafalda', 'Catarina', - 'Luana', 'Marta', 'Ãris', 'Alice', 'Bianca', 'Constança', 'Gabriela', 'Eva', 'Clara', 'Bruna', 'Daniela', - 'Iara', 'Filipa', 'Vitória', 'Ariana', 'Letícia', 'Bárbara', 'Camila', 'Rafaela', 'Carlota', 'Yara', - 'Núria', 'Raquel', 'Ema', 'Helena', 'Benedita', 'Érica', 'Isabel', 'Nicole', 'Lia', 'Alícia', 'Mara', - 'Jéssica', 'Soraia', 'Júlia', 'Luna', 'Victória', 'Luísa', 'Teresa', 'Miriam', 'Adriana', 'Melissa', - 'Andreia', 'Juliana', 'Alexandra', 'Yasmin', 'Tatiana', 'Leticia', 'Luciana', 'Eduarda', 'Cláudia', - 'Débora', 'Fabiana', 'Renata', 'Kyara', 'Kelly', 'Irina', 'Mélanie', 'Nádia', 'Cristiana', 'Liliana', - 'Patrícia', 'Vera', 'Doriana', 'Ângela', 'Mia', 'Erica', 'Mónica', 'Isabela', 'Salomé', 'Cátia', - 'Verónica', 'Violeta', 'Lorena', 'Érika', 'Vanessa', 'Iris', 'Anna', 'Viviane', 'Rebeca', 'Neuza', - ); - - protected static $lastName = array( - 'Abreu', 'Almeida', 'Alves', 'Amaral', 'Amorim', 'Andrade', 'Anjos', 'Antunes', 'Araújo', 'Assunção', - 'Azevedo', 'Baptista', 'Barbosa', 'Barros', 'Batista', 'Borges', 'Branco', 'Brito', 'Campos', 'Cardoso', - 'Carneiro', 'Carvalho', 'Castro', 'Coelho', 'Correia', 'Costa', 'Cruz', 'Cunha', 'Domingues', 'Esteves', - 'Faria', 'Fernandes', 'Ferreira', 'Figueiredo', 'Fonseca', 'Freitas', 'Garcia', 'Gaspar', 'Gomes', - 'Gonçalves', 'Guerreiro', 'Henriques', 'Jesus', 'Leal', 'Leite', 'Lima', 'Lopes', 'Loureiro', 'Lourenço', - 'Macedo', 'Machado', 'Magalhães', 'Maia', 'Marques', 'Martins', 'Matias', 'Matos', 'Melo', 'Mendes', - 'Miranda', 'Monteiro', 'Morais', 'Moreira', 'Mota', 'Moura', 'Nascimento', 'Neto', 'Neves', 'Nogueira', - 'Nunes', 'Oliveira', 'Pacheco', 'Paiva', 'Pereira', 'Pinheiro', 'Pinho', 'Pinto', 'Pires', 'Ramos', - 'Reis', 'Ribeiro', 'Rocha', 'Rodrigues', 'Santos', 'Silva', 'Simões', 'Soares', 'Sousa', - 'Sá', 'Tavares', 'Teixeira', 'Torres', 'Valente', 'Vaz', 'Vicente', 'Vieira', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php deleted file mode 100644 index 618a01c6..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php +++ /dev/null @@ -1,50 +0,0 @@ -generator->parse($format); - } - - public function address() - { - $format = static::randomElement(static::$addressFormats); - - return $this->generator->parse($format); - } - - public function streetAddress() - { - $format = static::randomElement(static::$streetAddressFormats); - - return $this->generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php deleted file mode 100644 index 5fb9543f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'Cluj' - */ - public function county() - { - return static::randomElement(static::$counties); - } - - public function address() - { - $format = static::randomElement(static::$addressFormats); - - return $this->generator->parse($format); - } - - public function streetAddress() - { - $format = static::randomElement(static::$streetAddressFormats); - - return $this->generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php deleted file mode 100644 index 980e8bb9..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ - '01', 'AR' => '02', 'AG' => '03', 'B' => '40', 'BC' => '04', 'BH' => '05', - 'BN' => '06', 'BT' => '07', 'BV' => '08', 'BR' => '09', 'BZ' => '10', 'CS' => '11', - 'CL' => '51', 'CJ' => '12', 'CT' => '13', 'CV' => '14', 'DB' => '15', 'DJ' => '16', - 'GL' => '17', 'GR' => '52', 'GJ' => '18', 'HR' => '19', 'HD' => '20', 'IL' => '21', - 'IS' => '22', 'IF' => '23', 'MM' => '24', 'MH' => '25', 'MS' => '26', 'NT' => '27', - 'OT' => '28', 'PH' => '29', 'SM' => '30', 'SJ' => '31', 'SB' => '32', 'SV' => '33', - 'TR' => '34', 'TM' => '35', 'TL' => '36', 'VS' => '37', 'VL' => '38', 'VN' => '39', - - 'B1' => '41', 'B2' => '42', 'B3' => '43', 'B4' => '44', 'B5' => '45', 'B6' => '46' - ); - - /** - * Personal Numerical Code (CNP) - * - * @link http://ro.wikipedia.org/wiki/Cod_numeric_personal - * @example 1111111111118 - * - * @param null|string $gender Person::GENDER_MALE or Person::GENDER_FEMALE - * @param null|string $dateOfBirth (1800-2099) 'Y-m-d', 'Y-m', 'Y' I.E. '1981-06-16', '2085-03', '1900' - * @param null|string $county county code where the CNP was issued - * @param null|bool $isResident flag if the person resides in Romania - * @return string 13 digits CNP code - */ - public function cnp($gender = null, $dateOfBirth = null, $county = null, $isResident = true) - { - $genders = array(Person::GENDER_MALE, Person::GENDER_FEMALE); - if (empty($gender)) { - $gender = static::randomElement($genders); - } elseif (!in_array($gender, $genders)) { - throw new \InvalidArgumentException("Gender must be '{Person::GENDER_MALE}' or '{Person::GENDER_FEMALE}'"); - } - - $date = $this->getDateOfBirth($dateOfBirth); - - if (is_null($county)) { - $countyCode = static::randomElement(array_values(static::$cnpCountyCodes)); - } elseif (!array_key_exists($county, static::$cnpCountyCodes)) { - throw new \InvalidArgumentException("Invalid county code '{$county}' received"); - } else { - $countyCode = static::$cnpCountyCodes[$county]; - } - - $cnp = (string)$this->getGenderDigit($date, $gender, $isResident) - . $date->format('ymd') - . $countyCode - . static::numerify('##%') - ; - - $checksum = $this->getChecksumDigit($cnp); - - return $cnp.$checksum; - } - - /** - * @param $dateOfBirth - * @return \DateTime - */ - protected function getDateOfBirth($dateOfBirth) - { - if (empty($dateOfBirth)) { - $dateOfBirthParts = array(static::numberBetween(1800, 2099)); - } else { - $dateOfBirthParts = explode('-', $dateOfBirth); - } - $baseDate = \Faker\Provider\DateTime::dateTimeBetween("first day of {$dateOfBirthParts[0]}", "last day of {$dateOfBirthParts[0]}"); - - switch (count($dateOfBirthParts)) { - case 1: - $dateOfBirthParts[] = $baseDate->format('m'); - //don't break, we need the day also - case 2: - $dateOfBirthParts[] = $baseDate->format('d'); - //don't break, next line will - case 3: - break; - default: - throw new \InvalidArgumentException("Invalid date of birth - must be null or in the 'Y-m-d', 'Y-m', 'Y' format"); - } - - if ($dateOfBirthParts[0] < 1800 || $dateOfBirthParts[0] > 2099) { - throw new \InvalidArgumentException("Invalid date of birth - year must be between 1900 and 2099, '{$dateOfBirthParts[0]}' received"); - } - - $dateOfBirthFinal = implode('-', $dateOfBirthParts); - $date = \DateTime::createFromFormat('Y-m-d', $dateOfBirthFinal); - //a full (invalid) date might have been supplied, check if it converts - if ($date->format('Y-m-d') !== $dateOfBirthFinal) { - throw new \InvalidArgumentException("Invalid date of birth - '{$date->format('Y-m-d')}' generated based on '{$dateOfBirth}' received"); - } - - return $date; - } - - /** - * - * https://ro.wikipedia.org/wiki/Cod_numeric_personal#S - * - * @param \DateTime $dateOfBirth - * @param bool $isResident - * @param string $gender - * @return int - */ - protected static function getGenderDigit(\DateTime $dateOfBirth, $gender, $isResident) - { - if (!$isResident) { - return 9; - } - - if ($dateOfBirth->format('Y') < 1900) { - if ($gender == Person::GENDER_MALE) { - return 3; - } - return 4; - } - - if ($dateOfBirth->format('Y') < 2000) { - if ($gender == Person::GENDER_MALE) { - return 1; - } - return 2; - } - - if ($gender == Person::GENDER_MALE) { - return 5; - } - return 6; - } - - /** - * Calculates a checksum for the Personal Numerical Code (CNP). - * - * @param string $value 12 digit CNP - * @return int checksum digit - */ - protected function getChecksumDigit($value) - { - $checkNumber = 279146358279; - - $checksum = 0; - foreach (range(0, 11) as $digit) { - $checksum += (int)substr($value, $digit, 1) * (int)substr($checkNumber, $digit, 1); - } - $checksum = $checksum % 11; - - return $checksum == 10 ? 1 : $checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php deleted file mode 100644 index e8af8101..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php +++ /dev/null @@ -1,67 +0,0 @@ - array( - '021#######', // Bucharest - '023#######', - '024#######', - '025#######', - '026#######', - '027#######', // non-geographic - '031#######', // Bucharest - '033#######', - '034#######', - '035#######', - '036#######', - '037#######', // non-geographic - ), - 'mobile' => array( - '07########', - ) - ); - - protected static $specialFormats = array( - 'toll-free' => array( - '0800######', - '0801######', // shared-cost numbers - '0802######', // personal numbering - '0806######', // virtual cards - '0807######', // pre-paid cards - '0870######', // internet dial-up - ), - 'premium-rate' => array( - '0900######', - '0903######', // financial information - '0906######', // adult entertainment - ) - ); - - /** - * @link http://en.wikipedia.org/wiki/Telephone_numbers_in_Romania#Last_years - */ - public function phoneNumber() - { - $type = static::randomElement(array_keys(static::$normalFormats)); - $number = static::numerify(static::randomElement(static::$normalFormats[$type])); - - return $number; - } - - public static function tollFreePhoneNumber() - { - $number = static::numerify(static::randomElement(static::$specialFormats['toll-free'])); - - return $number; - } - - public static function premiumRatePhoneNumber() - { - $number = static::numerify(static::randomElement(static::$specialFormats['premium-rate'])); - - return $number; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php deleted file mode 100644 index 410c6f9b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php +++ /dev/null @@ -1,154 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function cityPrefix() - { - return static::randomElement(static::$cityPrefix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php deleted file mode 100644 index e1af033f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php +++ /dev/null @@ -1,23 +0,0 @@ -generator->parse($format); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefixes); - } - - public static function companyNameElement() - { - return static::randomElement(static::$companyElements); - } - - public static function companyNameSuffix() - { - return static::randomElement(static::$companyNameSuffixes); - } - - public static function inn($area_code = "") - { - if ($area_code === "" || intval($area_code) == 0) { - //Simple generation code for areas in Russian without check for valid - $area_code = static::numberBetween(1, 91); - } else { - $area_code = intval($area_code); - } - $area_code = str_pad($area_code, 2, '0', STR_PAD_LEFT); - $inn_base = $area_code . static::numerify('#######'); - return $inn_base . \Faker\Calculator\Inn::checksum($inn_base); - } - - public static function kpp($inn = "") - { - if ($inn == "" || strlen($inn) < 4) { - $inn = static::inn(); - } - return substr($inn, 0, 4) . "01001"; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php deleted file mode 100644 index 53870ee3..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -.*<' | \ - * sed -r 's/—//' | sed -r 's/[\<\>]//g' | sed -r "s/(^|$)/'/g" | sed -r 's/$/,/' | sed -r 's/\&(laquo|raquo);/"/g' | \ - * sed -r 's/\s+/ /g'" - */ - protected static $banks = array( - 'Ðовый Промышленный Банк', - 'Ðовый Символ', - 'ÐокÑÑбанк', - 'ÐооÑфера', - 'Ðордеа Банк', - 'Ðота-Банк', - 'ÐС Банк', - 'ÐСТ-Банк', - 'ÐÑклиÑ-Банк', - 'Образование', - 'Объединенный Банк Промышленных ИнвеÑтиций', - 'Объединенный Банк РеÑпублики', - 'Объединенный Капитал', - 'Объединенный Кредитный Банк', - 'Объединенный Кредитный Банк МоÑковÑкий филиал', - 'Объединенный Ðациональный Банк', - 'Объединенный Резервный Банк', - 'Океан Банк', - 'ОЛМÐ-Банк', - 'Онего', - 'Оней Банк', - 'ОПМ-Банк', - 'Оргбанк', - 'Оренбург', - 'ОТП Банк', - 'ОФК Банк', - 'Охабанк', - 'Первобанк', - 'ПервомайÑкий', - 'ПервоуральÑкбанк', - 'Первый ДортранÑбанк', - 'Первый ИнвеÑтиционный банк', - 'Первый КлиентÑкий Банк', - 'Первый ЧешÑко-РоÑÑийÑкий Банк', - 'ПереÑвет', - 'Пермь', - 'ПетербургÑкий Социальный КоммерчеÑкий Банк', - 'Петрокоммерц', - 'ПИР Банк', - 'Платина', - 'Плато-Банк', - 'ÐŸÐ»ÑŽÑ Ð‘Ð°Ð½Ðº', - 'Пойдем!', - 'Почтобанк', - 'Прайм ФинанÑ', - 'Преодоление', - 'Приморье', - 'ПримÑоцбанк', - 'Примтеркомбанк', - 'Прио-Внешторгбанк', - 'Приобье', - 'ПриполÑрный', - 'ПриÑко Капитал Банк', - 'ПробизнеÑбанк', - 'ПроинвеÑтбанк', - 'Прокоммерцбанк', - 'ПроминвеÑтбанк', - 'Промрегионбанк', - 'ПромÑвÑзьбанк', - 'ПромÑвÑзьинвеÑтбанк', - 'ПромÑельхозбанк', - 'ПромтранÑбанк', - 'Промышленно-ФинанÑовое СотрудничеÑтво', - 'ПромÑнергобанк', - 'ПрофеÑÑионал Банк', - 'Профит Банк', - 'Прохладный', - 'ÐŸÑƒÐ»ÑŒÑ Ð¡Ñ‚Ð¾Ð»Ð¸Ñ†Ñ‹', - 'Радиотехбанк', - 'Развитие', - 'Развитие-Столица', - 'Райффайзенбанк', - 'РаÑчетно-Кредитный Банк', - 'РаÑчетный Дом', - 'РБÐ', - 'Региональный Банк РазвитиÑ', - 'Региональный Банк Сбережений', - 'Региональный КоммерчеÑкий Банк', - 'Региональный Кредит', - 'РегионфинанÑбанк', - 'Регнум', - 'Резерв', - 'РенеÑÑанÑ', - 'РенеÑÑÐ°Ð½Ñ ÐšÑ€ÐµÐ´Ð¸Ñ‚', - 'Рента-Банк', - 'РЕСО Кредит', - 'РеÑпубликанÑкий Кредитный ÐльÑнÑ', - 'РеÑурÑ-ТраÑÑ‚', - 'Риабанк', - 'Риал-Кредит', - 'РинвеÑтбанк', - 'РинвеÑтбанк МоÑковÑкий офиÑ', - 'РИТ-Банк', - 'РРБанк', - 'РоÑавтобанк', - 'РоÑбанк', - 'РоÑбизнеÑбанк', - 'РоÑгоÑÑтрах Банк', - 'РоÑдорбанк', - 'РоÑЕвроБанк', - 'РоÑинтерБанк', - 'РоÑпромбанк', - 'РоÑÑельхозбанк', - 'РоÑÑийÑÐºÐ°Ñ Ð¤Ð¸Ð½Ð°Ð½ÑÐ¾Ð²Ð°Ñ ÐšÐ¾Ñ€Ð¿Ð¾Ñ€Ð°Ñ†Ð¸Ñ', - 'РоÑÑийÑкий Капитал', - 'РоÑÑийÑкий Кредит', - 'РоÑÑийÑкий Ðациональный КоммерчеÑкий Банк', - 'РоÑÑита-Банк', - 'РоÑÑиÑ', - 'РоÑÑ‚ Банк', - 'РоÑтфинанÑ', - 'РоÑÑкÑимбанк', - 'РоÑÑнергобанк', - 'РоÑл Кредит Банк', - 'РСКБ', - 'РТС-Банк', - 'РУБанк', - 'Рублев', - 'Руна-Банк', - 'РунÑтбанк', - 'РуÑкобанк', - 'РуÑнарбанк', - 'РуÑÑкий Банк Сбережений', - 'РуÑÑкий Ипотечный Банк', - 'РуÑÑкий Международный Банк', - 'РуÑÑкий Ðациональный Банк', - 'РуÑÑкий Стандарт', - 'РуÑÑкий Торговый Банк', - 'РуÑÑкий ТраÑтовый Банк', - 'РуÑÑкий ФинанÑовый ÐльÑнÑ', - 'РуÑÑкий Элитарный Банк', - 'РуÑÑлавбанк', - 'РуÑÑобанк', - 'РуÑÑтройбанк', - 'РуÑÑ„Ð¸Ð½Ð°Ð½Ñ Ð‘Ð°Ð½Ðº', - 'РуÑÑŒ', - 'РуÑьРегионБанк', - 'РуÑьуниверÑалбанк', - 'РуÑЮгбанк', - 'РФИ Банк', - 'Саммит Банк', - 'Санкт-ПетербургÑкий Банк ИнвеÑтиций', - 'Саратов', - 'СаровбизнеÑбанк', - 'Сбербанк РоÑÑии', - 'СвÑзной Банк', - 'СвÑзь-Банк', - 'СДМ-Банк', - 'СеваÑтопольÑкий МорÑкой банк', - 'Северный Кредит', - 'Северный Ðародный Банк', - 'Северо-ВоÑточный ÐльÑнÑ', - 'Северо-Западный 1 ÐльÑÐ½Ñ Ð‘Ð°Ð½Ðº', - 'СеверÑтройбанк', - 'СевзапинвеÑтпромбанк', - 'Сельмашбанк', - 'СервиÑ-Резерв', - 'Сетелем Банк', - 'СИÐБ', - 'СибирÑкий Банк РеконÑтрукции и РазвитиÑ', - 'Сибнефтебанк', - 'СибÑоцбанк', - 'СибÑÑ', - 'СибÑÑ ÐœÐ¾ÑковÑкий офиÑ', - 'СинергиÑ', - 'Синко-Банк', - 'СиÑтема', - 'Сити ИнвеÑÑ‚ Банк', - 'Ситибанк', - 'СКÐ-Банк', - 'СКБ-Банк', - 'СлавиÑ', - 'СлавÑнбанк', - 'СлавÑнÑкий Кредит', - 'Смартбанк', - 'СМБ-Банк', - 'Смолевич', - 'СМП Банк', - 'СнежинÑкий', - 'Собинбанк', - 'Соверен Банк', - 'СоветÑкий', - 'Совкомбанк', - 'Современные Стандарты БизнеÑа', - 'СодружеÑтво', - 'СоколовÑкий', - 'Солид Банк', - 'СолидарноÑÑ‚ÑŒ (МоÑква)', - 'СолидарноÑÑ‚ÑŒ (Самара)', - 'СоцинвеÑтбанк', - 'СоцинвеÑтбанк МоÑковÑкий филиал', - 'Социум-Банк', - 'Союз', - 'Союзный', - 'СпецÑтройбанк', - 'Спиритбанк', - 'Спурт Банк', - 'Спутник', - 'СтавропольпромÑтройбанк', - 'Сталь Банк', - 'Стандарт-Кредит', - 'Стар ÐльÑнÑ', - 'СтарБанк', - 'СтарооÑкольÑкий Ðгропромбанк', - 'Старый Кремль', - 'Стелла-Банк', - 'Столичный Кредит', - 'СтратегиÑ', - 'Строительно-КоммерчеÑкий Банк', - 'СтройлеÑбанк', - 'Сумитомо Мицуи', - 'Сургутнефтегазбанк', - 'СЭБ Банк', - 'Таатта', - 'ТавричеÑкий', - 'Таганрогбанк', - 'Тагилбанк', - 'Тайдон', - 'Тайм Банк', - 'Тальменка-Банк', - 'Тальменка-Банк МоÑковÑкий филиал', - 'Тамбовкредитпромбанк', - 'Татагропромбанк', - 'ТатÑоцбанк', - 'Татфондбанк', - 'Ð¢Ð°ÑƒÑ€ÑƒÑ Ð‘Ð°Ð½Ðº', - 'ТверьУниверÑалБанк', - 'ТекÑбанк', - 'Темпбанк', - 'Тендер-Банк', - 'Терра', - 'ТетраполиÑ', - 'Тимер Банк', - 'Тинькофф Банк', - 'ТихоокеанÑкий Внешторгбанк', - 'Тойота Банк', - 'ТольÑттихимбанк', - 'ТомÑкпромÑтройбанк', - 'Торгово-Промышленный Банк КитаÑ', - 'Торговый ГородÑкой Банк', - 'ТоржокуниверÑалбанк', - 'ТранÑкапиталбанк', - 'ТранÑнациональный Банк', - 'ТранÑпортный', - 'ТранÑÑтройбанк', - 'ТраÑÑ‚ Капитал Банк', - 'Тройка-Д Банк', - 'ТульÑкий Промышленник', - 'ТульÑкий Промышленник МоÑковÑкий офиÑ', - 'ТульÑкий РаÑчетный Центр', - 'Турбобанк', - 'ТуÑар', - 'ТЭМБР-Банк', - 'ТЭСТ', - 'Углеметбанк', - 'Уздан', - 'Унифин', - 'Унифондбанк', - 'Уралкапиталбанк', - 'Уралприватбанк', - 'Уралпромбанк', - 'УралÑиб', - 'УралтранÑбанк', - 'УралфинанÑ', - 'УральÑкий Банк РеконÑтрукции и РазвитиÑ', - 'УральÑкий Межрегиональный Банк', - 'УральÑкий ФинанÑовый Дом', - 'Ури Банк', - 'УÑÑури', - 'ФДБ', - 'ФИÐ-Банк', - 'Финам Банк', - 'Ð¤Ð¸Ð½Ð°Ð½Ñ Ð‘Ð¸Ð·Ð½ÐµÑ Ð‘Ð°Ð½Ðº', - 'ФинанÑово-Промышленный Капитал', - 'ФинанÑовый Капитал', - 'ФинанÑовый Стандарт', - 'Ð¤Ð¸Ð½Ð°Ñ€Ñ Ð‘Ð°Ð½Ðº', - 'Финпромбанк (ФПБ Банк)', - 'ФинтраÑтбанк', - 'ФК Открытие (бывш. ÐОМОС-Банк)', - 'Флора-МоÑква', - 'ФолькÑваген Банк РуÑ', - 'ФондÑервиÑбанк', - 'Фора-Банк', - 'Форбанк', - 'Ð¤Ð¾Ñ€ÑƒÑ Ð‘Ð°Ð½Ðº', - 'Форштадт', - 'Фьючер', - 'ХакаÑÑкий Муниципальный Банк', - 'Ханты-МанÑийÑкий банк Открытие', - 'Химик', - 'Хлынов', - 'ХованÑкий', - 'ХолдинвеÑтбанк', - 'ХолмÑк', - 'Хоум Кредит Банк', - 'Центр-инвеÑÑ‚', - 'Центрально-ÐзиатÑкий', - 'Центрально-ЕвропейÑкий Банк', - 'Центркомбанк', - 'ЦентроКредит', - 'Церих', - 'Чайна КонÑтракшн', - 'ЧайнаÑельхозбанк', - 'Челиндбанк', - 'ЧелÑбинвеÑтбанк', - 'ЧерноморÑкий банк Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Ð¸ реконÑтрукции', - 'Чувашкредитпромбанк', - 'Эйч-ЭÑ-Би-Си Банк (HSBC)', - 'Эко-ИнвеÑÑ‚', - 'Экономбанк', - 'ЭкономикÑ-Банк', - 'ЭкÑи-Банк', - 'ЭкÑперт Банк', - 'ЭкÑпобанк', - 'ЭкÑпреÑÑ-Волга', - 'ЭкÑпреÑÑ-Кредит', - 'Эл Банк', - 'Элита', - 'Эльбин', - 'Энергобанк', - 'Энергомашбанк', - 'ЭнерготранÑбанк', - 'Эно', - 'ЭнтузиаÑтбанк', - 'Эргобанк', - 'Ю Би Ð­Ñ Ð‘Ð°Ð½Ðº', - 'ЮГ-ИнвеÑтбанк', - 'Югра', - 'Южный Региональный Банк', - 'ЮМК', - 'ЮниаÑтрум Банк', - 'ЮниКредит Банк', - 'ЮниÑтрим', - 'Япы Креди Банк МоÑква', - 'ЯР-Банк', - 'Яринтербанк', - 'ЯроÑлавич', - 'K2 Банк', - 'ÐББ', - 'ÐбÑолют Банк', - 'Ðвангард', - 'ÐверÑ', - 'Ðвтоградбанк', - 'ÐвтоКредитБанк', - 'Ðвтоторгбанк', - 'Ðгроинкомбанк', - 'Ðгропромкредит', - 'ÐгророÑ', - 'ÐгроÑоюз', - 'Ðдамон Банк', - 'Ðдамон Банк МоÑковÑкий филиал', - 'Ðделантбанк', - 'ÐдмиралтейÑкий', - 'ÐзиатÑко-ТихоокеанÑкий Банк', - 'Ðзимут', - 'ÐÐ·Ð¸Ñ Ð‘Ð°Ð½Ðº', - 'ÐзиÑ-ИнвеÑÑ‚ Банк', - 'Ðй-Си-Ðй-Си-Ðй Банк (ICICI)', - 'Ðйви Банк', - 'ÐйМаниБанк', - 'Ðк БарÑ', - 'Ðкибанк', - 'Ðккобанк', - 'Ðкрополь', - 'ÐкÑонбанк', - 'Ðктив Банк', - 'ÐктивКапитал Банк', - 'ÐктивКапитал Банк МоÑковÑкий филиал', - 'ÐктивКапитал Банк Санкт-ПетербургÑкий филиал', - 'Ðкцент', - 'Ðкцепт', - 'ÐкциÑ', - 'Ðлданзолотобанк', - 'ÐлекÑандровÑкий', - 'Ðлеф-Банк', - 'Ðлжан', - 'ÐлмазÑргиÑнбанк', - 'ÐлтайБизнеÑ-Банк', - 'Ðлтайкапиталбанк', - 'Ðлтынбанк', - 'Ðльба ÐльÑнÑ', - 'Ðльта-Банк', - 'Ðльтернатива', - 'Ðльфа-Банк', - 'ÐМБ Банк', - 'ÐмерикÑн ЭкÑпреÑÑ Ð‘Ð°Ð½Ðº', - 'Ðнелик РУ', - 'Ðнкор Банк', - 'Ðнталбанк', - 'Ðпабанк', - 'ÐреÑбанк', - 'ÐрзамаÑ', - 'ÐркÑбанк', - 'ÐÑ€Ñенал', - 'ÐÑпект', - 'ÐÑÑоциациÑ', - 'БайкалБанк', - 'БайкалИнвеÑтБанк', - 'Байкалкредобанк', - 'Балаково-Банк', - 'БалтийÑкий Банк', - 'Балтика', - 'БалтинвеÑтбанк', - 'Банк "Ðкцент" МоÑковÑкий филиал', - 'Банк "МБÐ-МоÑква"', - 'Банк "Санкт-Петербург"', - 'Банк ÐВБ', - 'Банк БКФ', - 'Банк БФÐ', - 'Банк БЦК-МоÑква', - 'Банк Город', - 'Банк Жилищного ФинанÑированиÑ', - 'Банк Инноваций и РазвитиÑ', - 'Банк Интеза', - 'Банк ИТБ', - 'Банк Казани', - 'Банк ÐšÐ¸Ñ‚Ð°Ñ (ЭлоÑ)', - 'Банк Кредит СвиÑÑ', - 'Банк МБФИ', - 'Банк МоÑквы', - 'Банк на КраÑных Воротах', - 'Банк Оранжевый (бывш. ПромÑервиÑбанк)', - 'Банк оф Токио-МицубиÑи', - 'Банк Премьер Кредит', - 'Банк ÐŸÐ¡Ð Ð¤Ð¸Ð½Ð°Ð½Ñ Ð ÑƒÑ', - 'Банк Ð Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Ð¢ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸Ð¹', - 'Банк РаÑчетов и Сбережений', - 'Банк Раунд', - 'Банк РСИ', - 'Банк Сберегательно-кредитного ÑервиÑа', - 'Банк СГБ', - 'Банк Торгового ФинанÑированиÑ', - 'Банк ФинÑервиÑ', - 'Банк ЭкономичеÑкий Союз', - 'БанкирÑкий Дом', - 'Ð‘Ð°Ð½ÐºÑ…Ð°ÑƒÑ Ð­Ñ€Ð±Ðµ', - 'БашкомÑнаббанк', - 'Башпромбанк', - 'ББР Банк', - 'БелгородÑоцбанк', - 'Бенифит-Банк', - 'Берейт', - 'БеÑÑ‚ Ð­Ñ„Ñ„Ð¾Ñ€Ñ‚Ñ Ð‘Ð°Ð½Ðº', - 'Ð‘Ð¸Ð·Ð½ÐµÑ Ð´Ð»Ñ Ð‘Ð¸Ð·Ð½ÐµÑа', - 'Бинбанк', - 'БИÐБÐÐК кредитные карты', - 'Бинбанк МурманÑк', - 'БКС ИнвеÑтиционный Банк', - 'БМВ Банк', - 'БÐП Париба Банк', - 'БогородÑкий', - 'БогородÑкий Муниципальный Банк', - 'БратÑкий ÐÐКБ', - 'БСТ-Банк', - 'Булгар Банк', - 'Бум-Банк', - 'Бумеранг', - 'БФГ-Кредит', - 'БыÑтроБанк', - 'Вакобанк', - 'Вега-Банк', - 'Век', - 'Великие Луки Банк', - 'Венец', - 'ВерхневолжÑкий', - 'ВерхневолжÑкий КрымÑкий филиал', - 'ВерхневолжÑкий МоÑковÑкий филиал', - 'ВерхневолжÑкий ÐевÑкий филиал', - 'ВерхневолжÑкий ТавричеÑкий филиал', - 'ВерхневолжÑкий ЯроÑлавÑкий филиал', - 'ВеÑта', - 'ВеÑтинтербанк', - 'ВзаимодейÑтвие', - 'Викинг', - 'Витабанк', - 'ВитÑзь', - 'Вкабанк', - 'ВладбизнеÑбанк', - 'Владпромбанк', - 'Внешпромбанк', - 'Внешфинбанк', - 'ВнешÑкономбанк', - 'Военно-Промышленный Банк', - 'Возрождение', - 'Вокбанк', - 'Вологдабанк', - 'Вологжанин', - 'Воронеж', - 'ВоÑточно-ЕвропейÑкий ТраÑтовый Банк', - 'ВоÑточный ЭкÑпреÑÑ Ð‘Ð°Ð½Ðº', - 'ВоÑтСибтранÑкомбанк', - 'ВРБ МоÑква', - 'Ð’ÑероÑÑийÑкий Банк Ð Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Ð ÐµÐ³Ð¸Ð¾Ð½Ð¾Ð²', - 'ВТБ', - 'ВТБ 24', - 'ВУЗ-Банк', - 'Выборг-Банк', - 'Выборг-Банк МоÑковÑкий филиал', - 'Ð’Ñлтон Банк', - 'Ð’Ñтич', - 'Ð’Ñтка-Банк', - 'ГагаринÑкий', - 'Газбанк', - 'Газнефтьбанк', - 'Газпромбанк', - 'ГазÑтройбанк', - 'ГазтранÑбанк', - 'ГазÑнергобанк', - 'Ганзакомбанк', - 'Гарант-ИнвеÑÑ‚', - 'Гаранти Банк МоÑква', - 'Геленджик-Банк', - 'Генбанк', - 'Геобанк', - 'ГефеÑÑ‚', - 'ГлобуÑ', - 'ГлобÑкÑ', - 'Голдман Ð¡Ð°ÐºÑ Ð‘Ð°Ð½Ðº', - 'Горбанк', - 'ГПБ-Ипотека', - 'Гранд ИнвеÑÑ‚ Банк', - 'Гринкомбанк', - 'Гринфилдбанк', - 'ГриÑ-Банк', - 'Гута-Банк', - 'Далена', - 'Далетбанк', - 'Далта-Банк', - 'ДальневоÑточный Банк', - 'ДанÑке Банк', - 'Девон-Кредит', - 'ДельтаКредит', - 'Денизбанк МоÑква', - 'Держава', - 'Дж. П. ÐœÐ¾Ñ€Ð³Ð°Ð½ Банк', - 'ДжаÑÑ‚ Банк', - 'Джей Ñнд Ти Банк', - 'Дил-Банк', - 'Динамичные СиÑтемы', - 'Дойче Банк', - 'ДолинÑк', - 'Дом-Банк', - 'Дон-ТекÑбанк', - 'Донкомбанк', - 'Донхлеббанк', - 'Ð”Ð¾Ñ€Ð¸Ñ Ð‘Ð°Ð½Ðº', - 'Дружба', - 'ЕÐТП Банк', - 'ЕвразийÑкий Банк', - 'ЕвроазиатÑкий ИнвеÑтиционный Банк', - 'ЕвроÐкÑÐ¸Ñ Ð‘Ð°Ð½Ðº', - 'ЕвроальÑнÑ', - 'Еврокапитал-ÐльÑнÑ', - 'Еврокоммерц', - 'Еврокредит', - 'Евромет', - 'ЕвропейÑкий Стандарт', - 'Европлан Банк', - 'ЕвроÑитиБанк', - 'Ð•Ð²Ñ€Ð¾Ñ„Ð¸Ð½Ð°Ð½Ñ ÐœÐ¾Ñнарбанк', - 'ЕдинÑтвенный', - 'Единый Строительный Банк', - 'Екатеринбург', - 'ЕкатерининÑкий', - 'ЕниÑей', - 'ЕниÑейÑкий Объединенный Банк', - 'Ермак', - 'Живаго-Банк', - 'Жилкредит', - 'ЖилÑтройбанк', - 'ЗапÑибкомбанк', - 'Заречье', - 'Заубер Банк', - 'Земкомбанк', - 'ЗемÑкий Банк', - 'Зенит', - 'Зенит Сочи', - 'Зернобанк', - 'Зираат Банк', - 'Златкомбанк', - 'И.Д.Е.Ð. Банк', - 'Иваново', - 'Идеалбанк', - 'Ижкомбанк', - 'ИК Банк', - 'Икано Банк', - 'Инбанк', - 'ИнвеÑÑ‚-Экобанк', - 'ИнвеÑтиционный Банк Кубани', - 'ИнвеÑтиционный РеÑпубликанÑкий Банк', - 'ИнвеÑтиционный Союз', - 'ИнвеÑткапиталбанк', - 'ИнвеÑÑ‚Ñоцбанк', - 'ИнвеÑтторгбанк', - 'ИÐГ Банк', - 'ИндуÑтриальный Сберегательный Банк', - 'Инкаробанк', - 'Интерактивный Банк', - 'Интеркоммерц Банк', - 'Интеркоопбанк', - 'Интеркредит', - 'Интернациональный Торговый Банк', - 'ИнтерпрогреÑÑбанк', - 'Интерпромбанк', - 'Интехбанк', - 'ИнформпрогреÑÑ', - 'Ипозембанк', - 'ИпоТек Банк', - 'Иронбанк', - 'ИРС', - 'Итуруп', - 'Ишбанк', - 'Йошкар-Ола', - 'Калуга', - 'КамÑкий Горизонт', - 'КамÑкий КоммерчеÑкий Банк', - 'Камчаткомагропромбанк', - 'КанÑкий', - 'Капитал', - 'Капиталбанк', - 'Кедр', - 'КемÑоцинбанк', - 'КетовÑкий КоммерчеÑкий Банк', - 'Киви Банк', - 'КлаÑÑик Эконом Банк', - 'КлиентÑкий', - 'Кольцо Урала', - 'Коммерцбанк (ЕвразиÑ)', - 'КоммерчеÑкий Банк РазвитиÑ', - 'КоммерчеÑкий Индо Банк', - 'КонÑервативный КоммерчеÑкий Банк', - 'КонÑтанÑ-Банк', - 'Континенталь', - 'КонфидÑÐ½Ñ Ð‘Ð°Ð½Ðº', - 'Кор', - 'Кореа ЭкÑчендж Банк РуÑ', - 'КоролевÑкий Банк Шотландии', - 'КоÑмоÑ', - 'КоÑтромаÑелькомбанк', - 'Кошелев-Банк', - 'КрайинвеÑтбанк', - 'Кранбанк', - 'Креди Ðгриколь КИБ', - 'Кредит Европа Банк', - 'Кредит Урал Банк', - 'Кредит ЭкÑпреÑÑ', - 'Кредит-МоÑква', - 'КредитинвеÑÑ‚', - 'Кредо ФинанÑ', - 'Кредпромбанк', - 'КремлевÑкий', - 'КрокуÑ-Банк', - 'Крона-Банк', - 'КроÑна-Банк', - 'КроÑÑинвеÑтбанк', - 'КрыловÑкий', - 'КС Банк', - 'КубанÑкий УниверÑальный Банк', - 'Кубань Кредит', - 'Кубаньторгбанк', - 'КузбаÑÑхимбанк', - 'КузнецкбизнеÑбанк', - 'Кузнецкий', - 'Кузнецкий МоÑÑ‚', - 'Курган', - 'КурÑкпромбанк', - 'Лада-Кредит', - 'Лайтбанк', - 'Ланта-Банк', - 'Левобережный', - 'Легион', - 'Леноблбанк', - 'ЛеÑбанк', - 'Лето Банк', - 'Липецккомбанк', - 'ЛогоÑ', - 'Локо-Банк', - 'ЛÑнд-Банк', - 'Ðœ2Ðœ Прайвет Банк', - 'Майкопбанк', - 'МайÑкий', - 'ÐœÐК-Банк', - 'МакÑима', - 'МакÑимум', - 'ÐœÐСТ-Банк', - 'МаÑтер-Капитал', - 'МВС Банк', - 'МДМ Банк', - 'МегаполиÑ', - 'Международный Ðкционерный Банк', - 'Международный Банк РазвитиÑ', - 'Международный Банк Санкт-Петербурга (МБСП)', - 'Международный КоммерчеÑкий Банк', - 'Международный РаÑчетный Банк', - 'Международный Строительный Банк', - 'Международный ФинанÑовый Клуб', - 'МежотраÑÐ»ÐµÐ²Ð°Ñ Ð‘Ð°Ð½ÐºÐ¾Ð²ÑÐºÐ°Ñ ÐšÐ¾Ñ€Ð¿Ð¾Ñ€Ð°Ñ†Ð¸Ñ', - 'Межрегиональный Банк РеконÑтрукции', - 'Межрегиональный Клиринговый Банк', - 'Межрегиональный Почтовый Банк', - 'Межрегиональный промышленно-Ñтроительный банк', - 'Межрегионбанк', - 'МежтопÑнергобанк', - 'МежтраÑтбанк', - 'МерÑедеÑ-Бенц Банк РуÑ', - 'МеталлинвеÑтбанк', - 'Металлург', - 'Меткомбанк (КаменÑк-УральÑкий)', - 'Меткомбанк (Череповец)', - 'Метробанк', - 'Метрополь', - 'Мидзухо Банк', - 'Мико-Банк', - 'Милбанк', - 'Миллениум Банк', - 'Мир Ð‘Ð¸Ð·Ð½ÐµÑ Ð‘Ð°Ð½Ðº', - 'Мираф-Банк', - 'Мираф-Банк МоÑковÑкий филиал', - 'Миръ', - 'МихайловÑкий ПЖСБ', - 'Морган СтÑнли Банк', - 'МорÑкой Банк', - 'МоÑводоканалбанк', - 'МоÑква', - 'МоÑква-Сити', - 'МоÑковÑкий ВекÑельный Банк', - 'МоÑковÑкий ИндуÑтриальный Банк', - 'МоÑковÑкий КоммерчеÑкий Банк', - 'МоÑковÑкий Кредитный Банк', - 'МоÑковÑкий Ðациональный ИнвеÑтиционный Банк', - 'МоÑковÑкий ÐефтехимичеÑкий Банк', - 'МоÑковÑкий ОблаÑтной Банк', - 'МоÑковÑко-ПарижÑкий Банк', - 'МоÑковÑкое Ипотечное ÐгентÑтво', - 'МоÑкоммерцбанк', - 'МоÑÑтройÑкономбанк (Ðœ Банк)', - 'МоÑтранÑбанк', - 'МоÑуралбанк', - 'МС Банк РуÑ', - 'МСП Банк', - 'МТИ-Банк', - 'МТС Банк', - 'Муниципальный Камчатпрофитбанк', - 'МурманÑкий Социальный КоммерчеÑкий Банк', - 'МФБанк', - 'Ð-Банк', - 'Ðальчик', - 'Ðаратбанк', - 'Ðародный Банк', - 'Ðародный Банк РеÑпублики Тыва', - 'Ðародный Доверительный Банк', - 'Ðародный Земельно-Промышленный Банк', - 'Ðародный ИнвеÑтиционный Банк', - 'ÐатикÑÐ¸Ñ Ð‘Ð°Ð½Ðº', - 'ÐацинвеÑтпромбанк', - 'ÐÐ°Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð°Ñ Ð¤Ð°ÐºÑ‚Ð¾Ñ€Ð¸Ð½Ð³Ð¾Ð²Ð°Ñ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ', - 'Ðациональный Банк "ТраÑÑ‚"', - 'Ðациональный Банк Взаимного Кредита', - 'Ðациональный Банк Сбережений', - 'Ðациональный Залоговый Банк', - 'Ðациональный Клиринговый Банк', - 'Ðациональный Клиринговый Центр', - 'Ðациональный Корпоративный Банк', - 'Ðациональный Резервный Банк', - 'Ðациональный Стандарт', - 'Ðаш Дом', - 'ÐБД-Банк', - 'ÐБК-Банк', - 'ÐеваÑтройинвеÑÑ‚', - 'ÐевÑкий Банк', - 'Ðейва', - 'Ðерюнгрибанк', - 'Ðефтепромбанк', - 'ÐефтÑной ÐльÑнÑ', - 'ÐижневолжÑкий КоммерчеÑкий Банк', - 'Ðико-Банк', - 'ÐК Банк', - 'ÐоваховКапиталБанк', - 'ÐовациÑ', - 'Ðовикомбанк', - 'Ðовобанк', - 'Ðовое ВремÑ', - 'Ðовокиб', - 'ÐовопокровÑкий', - 'Ðовый Век', - 'Ðовый Кредитный Союз', - 'Ðовый МоÑковÑкий Банк', - ); - - /** - * @example 'Ðовый МоÑковÑкий Банк' - */ - public static function bank() - { - return static::randomElement(static::$banks); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php deleted file mode 100644 index 25ebd5a1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php +++ /dev/null @@ -1,157 +0,0 @@ -middleNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return $this->middleNameFemale(); - } - - return $this->middleName(static::randomElement(array( - static::GENDER_MALE, - static::GENDER_FEMALE, - ))); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php deleted file mode 100644 index c7477d7e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php +++ /dev/null @@ -1,14 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } - - /** - * @example 'PhD' - */ - public static function suffix() - { - return static::randomElement(static::$suffix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php deleted file mode 100644 index 1baf7ccf..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php +++ /dev/null @@ -1,15 +0,0 @@ -format('ymd'); - - if ($gender && $gender == static::GENDER_MALE) { - $randomDigits = (string)static::numerify('##') . static::randomElement(array(1,3,5,7,9)); - } elseif ($gender && $gender == static::GENDER_FEMALE) { - $randomDigits = (string)static::numerify('##') . static::randomElement(array(0,2,4,6,8)); - } else { - $randomDigits = (string)static::numerify('###'); - } - - - $checksum = Luhn::computeCheckDigit($datePart . $randomDigits); - - return $datePart . '-' . $randomDigits . $checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php deleted file mode 100644 index d15e5dd6..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php +++ /dev/null @@ -1,37 +0,0 @@ -format('a') === 'am' ? 'öö' : 'ös'; - } - - public static function dayOfWeek($max = 'now') - { - $map = array( - 'Sunday' => 'Pazar', - 'Monday' => 'Pazartesi', - 'Tuesday' => 'Salı', - 'Wednesday' => 'ÇarÅŸamba', - 'Thursday' => 'PerÅŸembe', - 'Friday' => 'Cuma', - 'Saturday' => 'Cumartesi', - ); - $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; - } - - public static function monthName($max = 'now') - { - $map = array( - 'January' => 'Ocak', - 'February' => 'Åžubat', - 'March' => 'Mart', - 'April' => 'Nisan', - 'May' => 'Mayıs', - 'June' => 'Haziran', - 'July' => 'Temmuz', - 'August' => 'AÄŸustos', - 'September' => 'Eylül', - 'October' => 'Ekim', - 'November' => 'Kasım', - 'December' => 'Aralık', - ); - $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php deleted file mode 100644 index ef907d44..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->parse($format); - } - - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php deleted file mode 100644 index 197cc3b6..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php +++ /dev/null @@ -1,23 +0,0 @@ -generator->parse($format); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefix); - } - - public static function companyName() - { - return static::randomElement(static::$companyName); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php deleted file mode 100644 index 33214d67..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -middleNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return $this->middleNameFemale(); - } - - return $this->middleName(static::randomElement(array( - static::GENDER_MALE, - static::GENDER_FEMALE, - ))); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php deleted file mode 100644 index 24187f33..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php +++ /dev/null @@ -1,51 +0,0 @@ -generator->parse($format)); - } - - public function hamletPrefix() - { - return static::randomElement(static::$hamletPrefix); - } - - public function wardName() - { - $format = static::randomElement(static::$wardNameFormats); - - return static::bothify($this->generator->parse($format)); - } - - public function wardPrefix() - { - return static::randomElement(static::$wardPrefix); - } - - public function districtName() - { - $format = static::randomElement(static::$districtNameFormats); - - return static::bothify($this->generator->parse($format)); - } - - public function districtPrefix() - { - return static::randomElement(static::$districtPrefix); - } - - /** - * @example 'Hà Ná»™i' - */ - public function city() - { - return static::randomElement(static::$city); - } - - /** - * @example 'Bắc Giang' - */ - public static function province() - { - return static::randomElement(static::$province); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php deleted file mode 100644 index 4deaa2fb..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php +++ /dev/null @@ -1,36 +0,0 @@ -generator->parse(static::randomElement(static::$middleNameFormat)); - } - - public static function middleNameMale() - { - return static::randomElement(static::$middleNameMale); - } - - public static function middleNameFemale() - { - return static::randomElement(static::$middleNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php deleted file mode 100644 index 5f9f60a1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php +++ /dev/null @@ -1,61 +0,0 @@ - array( - '0[a] ### ####', - '(0[a]) ### ####', - '0[a]-###-####', - '(0[a])###-####', - '84-[a]-###-####', - '(84)([a])###-####', - '+84-[a]-###-####', - ), - '8' => array( - '0[a] #### ####', - '(0[a]) #### ####', - '0[a]-####-####', - '(0[a])####-####', - '84-[a]-####-####', - '(84)([a])####-####', - '+84-[a]-####-####', - ), - ); - - public function phoneNumber() - { - $areaCode = static::randomElement(static::$areaCodes); - $areaCodeLength = strlen($areaCode); - $digits = 7; - - if ($areaCodeLength < 2) { - $digits = 8; - } - - return static::numerify(str_replace('[a]', $areaCode, static::randomElement(static::$formats[$digits]))); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php deleted file mode 100644 index 19d1c941..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php +++ /dev/null @@ -1,149 +0,0 @@ -city() . static::area(); - } - - public static function postcode() - { - $prefix = str_pad(mt_rand(1, 85), 2, 0, STR_PAD_LEFT); - $suffix = '00'; - - return $prefix . mt_rand(10, 88) . $suffix; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php deleted file mode 100644 index 12d29e32..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php +++ /dev/null @@ -1,66 +0,0 @@ -format('a') === 'am' ? '上åˆ' : '下åˆ'; - } - - public static function dayOfWeek($max = 'now') - { - $map = array( - 'Sunday' => '星期日', - 'Monday' => '星期一', - 'Tuesday' => '星期二', - 'Wednesday' => '星期三', - 'Thursday' => '星期四', - 'Friday' => '星期五', - 'Saturday' => '星期六', - ); - $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; - } - - public static function monthName($max = 'now') - { - $map = array( - 'January' => '一月', - 'February' => '二月', - 'March' => '三月', - 'April' => '四月', - 'May' => '五月', - 'June' => '六月', - 'July' => '七月', - 'August' => '八月', - 'September' => 'ä¹æœˆ', - 'October' => 'å月', - 'November' => 'å一月', - 'December' => 'å二月', - ); - $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php deleted file mode 100644 index ca10822c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php +++ /dev/null @@ -1,24 +0,0 @@ - array( - 'æ¿æ©‹å€', '三é‡å€', '中和å€', '永和å€', - '新莊å€', '新店å€', '樹林å€', '鶯歌å€', - '三峽å€', 'æ·¡æ°´å€', 'æ±æ­¢å€', '瑞芳å€', - '土城å€', '蘆洲å€', '五股å€', 'æ³°å±±å€', - 'æž—å£å€', 'æ·±å‘å€', '石碇å€', 'åªæž—å€', - '三èŠå€', '石門å€', '八里å€', '平溪å€', - '雙溪å€', '貢寮å€', '金山å€', 'è¬é‡Œå€', - 'çƒä¾†å€', - ), - '宜蘭縣' => array( - '宜蘭市', 'ç¾…æ±éŽ®', '蘇澳鎮', '頭城鎮', 'ç¤æºªé„‰', - '壯åœé„‰', '員山鄉', '冬山鄉', '五çµé„‰', '三星鄉', - '大åŒé„‰', 'å—澳鄉', - ), - '桃園縣' => array( - '桃園市', '中壢市', '大溪鎮', '楊梅鎮', '蘆竹鄉', - '大園鄉', '龜山鄉', '八德市', 'é¾æ½­é„‰', '平鎮市', - '新屋鄉', '觀音鄉', '復興鄉', - ), - '新竹縣' => array( - '竹北市', '竹æ±éŽ®', '新埔鎮', '關西鎮', 'æ¹–å£é„‰', - 'æ–°è±é„‰', '芎林鄉', '橫山鄉', '北埔鄉', '寶山鄉', - '峨眉鄉', '尖石鄉', '五峰鄉', - ), - '苗栗縣' => array( - '苗栗市', '苑裡鎮', '通霄鎮', '竹å—鎮', '頭份鎮', - '後é¾éŽ®', 'å“蘭鎮', '大湖鄉', '公館鄉', '銅鑼鄉', - 'å—庄鄉', '頭屋鄉', '三義鄉', '西湖鄉', '造橋鄉', - '三ç£é„‰', 'ç…潭鄉', '泰安鄉', - ), - '臺中市' => array( - 'è±åŽŸå€', 'æ±å‹¢å€', '大甲å€', '清水å€', '沙鹿å€', - '梧棲å€', 'åŽé‡Œå€', '神岡å€', 'æ½­å­å€', '大雅å€', - '新社å€', '石岡å€', '外埔å€', '大安å€', 'çƒæ—¥å€', - '大肚å€', 'é¾äº•å€', '霧峰å€', '太平å€', '大里å€', - '和平å€', '中å€', 'æ±å€', 'å—å€', '西å€', '北å€', - '西屯å€', 'å—屯å€', '北屯å€', - ), - '彰化縣' => array( - '彰化市', '鹿港鎮', '和美鎮', '線西鄉', '伸港鄉', - 'ç¦èˆˆé„‰', '秀水鄉', '花壇鄉', '芬園鄉', '員林鎮', - '溪湖鎮', '田中鎮', '大æ‘鄉', '埔鹽鄉', '埔心鄉', - 'æ°¸é–鄉', '社頭鄉', '二水鄉', '北斗鎮', '二林鎮', - '田尾鄉', '埤頭鄉', '芳苑鄉', '大城鄉', '竹塘鄉', - '溪州鄉', - ), - 'å—投縣' => array( - 'å—投市', '埔里鎮', 'è‰å±¯éŽ®', '竹山鎮', '集集鎮', - 'å間鄉', '鹿谷鄉', '中寮鄉', '魚池鄉', '國姓鄉', - '水里鄉', '信義鄉', 'ä»æ„›é„‰', - ), - '雲林縣' => array( - '斗六市', 'æ–—å—鎮', '虎尾鎮', '西螺鎮', '土庫鎮', - '北港鎮', 'å¤å‘鄉', '大埤鄉', '莿æ¡é„‰', '林內鄉', - '二崙鄉', '崙背鄉', '麥寮鄉', 'æ±å‹¢é„‰', '褒忠鄉', - '臺西鄉', '元長鄉', '四湖鄉', 'å£æ¹–鄉', '水林鄉', - ), - '嘉義縣' => array( - '太ä¿å¸‚', '朴å­å¸‚', '布袋鎮', '大林鎮', '民雄鄉', - '溪å£é„‰', '新港鄉', '六腳鄉', 'æ±çŸ³é„‰', '義竹鄉', - '鹿è‰é„‰', '水上鄉', '中埔鄉', '竹崎鄉', '梅山鄉', - '番路鄉', '大埔鄉', '阿里山鄉', - ), - '臺å—市' => array( - '新營å€', '鹽水å€', '白河å€', '柳營å€', '後å£å€', - 'æ±å±±å€', '麻豆å€', '下營å€', '六甲å€', '官田å€', - '大內å€', '佳里å€', '學甲å€', '西港å€', '七股å€', - 'å°‡è»å€', '北門å€', '新化å€', '善化å€', '新市å€', - '安定å€', '山上å€', '玉井å€', '楠西å€', 'å—化å€', - '左鎮å€', 'ä»å¾·å€', 'æ­¸ä»å€', '關廟å€', 'é¾å´Žå€', - '永康å€', 'æ±å€', 'å—å€', '西å€', '北å€', '中å€', - '安å—å€', '安平å€', - ), - '高雄市' => array( - '鳳山å€', '林園å€', '大寮å€', '大樹å€', '大社å€', - 'ä»æ­¦å€', 'é³¥æ¾å€', '岡山å€', 'æ©‹é ­å€', '燕巢å€', - '田寮å€', '阿蓮å€', '路竹å€', 'æ¹–å…§å€', '茄è£å€', - '永安å€', '彌陀å€', '梓官å€', 'æ——å±±å€', '美濃å€', - '六龜å€', '甲仙å€', 'æ‰æž—å€', '內門å€', '茂林å€', - '桃æºå€', '三民å€', '鹽埕å€', '鼓山å€', '左營å€', - '楠梓å€', '三民å€', '新興å€', 'å‰é‡‘å€', 'è‹“é›…å€', - 'å‰éŽ®å€', 'æ——æ´¥å€', 'å°æ¸¯å€', - ), - 'å±æ±ç¸£' => array( - 'å±æ±å¸‚', '潮州鎮', 'æ±æ¸¯éŽ®', 'æ†æ˜¥éŽ®', 'è¬ä¸¹é„‰', - '長治鄉', '麟洛鄉', 'ä¹å¦‚鄉', '里港鄉', '鹽埔鄉', - '高樹鄉', 'è¬å·’鄉', '內埔鄉', '竹田鄉', '新埤鄉', - '枋寮鄉', '新園鄉', 'å´é ‚鄉', '林邊鄉', 'å—州鄉', - '佳冬鄉', 'ç‰çƒé„‰', '車城鄉', '滿州鄉', '枋山鄉', - '三地門鄉', '霧臺鄉', '瑪家鄉', '泰武鄉', '來義鄉', - '春日鄉', 'ç…å­é„‰', '牡丹鄉', - ), - '臺æ±ç¸£' => array( - '臺æ±å¸‚', 'æˆåŠŸéŽ®', '關山鎮', 'å‘å—鄉', '鹿野鄉', - '池上鄉', 'æ±æ²³é„‰', '長濱鄉', '太麻里鄉', '大武鄉', - '綠島鄉', '海端鄉', '延平鄉', '金峰鄉', 'é”ä»é„‰', - '蘭嶼鄉', - ), - '花蓮縣' => array( - '花蓮市', '鳳林鎮', '玉里鎮', '新城鄉', 'å‰å®‰é„‰', - '壽è±é„‰', '光復鄉', 'è±æ¿±é„‰', '瑞穗鄉', '富里鄉', - '秀林鄉', 'è¬æ¦®é„‰', 'å“溪鄉', - ), - '澎湖縣' => array( - '馬公市', '湖西鄉', '白沙鄉', '西嶼鄉', '望安鄉', - '七美鄉', - ), - '基隆市' => array( - '中正å€', '七堵å€', 'æš–æš–å€', 'ä»æ„›å€', '中山å€', - '安樂å€', '信義å€', - ), - '新竹市' => array( - 'æ±å€', '北å€', '香山å€', - ), - '嘉義市' => array( - 'æ±å€', '西å€', - ), - '臺北市' => array( - 'æ¾å±±å€', '信義å€', '大安å€', '中山å€', '中正å€', - '大åŒå€', 'è¬è¯å€', '文山å€', 'å—港å€', '內湖å€', - '士林å€', '北投å€', - ), - '連江縣' => array( - 'å—竿鄉', '北竿鄉', '莒光鄉', 'æ±å¼•é„‰', - ), - '金門縣' => array( - '金城鎮', '金沙鎮', '金湖鎮', '金寧鄉', '烈嶼鄉', 'çƒåµé„‰', - ), - ); - - /** - * @link http://terms.naer.edu.tw/download/287/ - */ - protected static $country = array( - 'ä¸ä¸¹', '中éž', '丹麥', '伊朗', '冰島', '剛果', - '加彭', '北韓', 'å—éž', 'å¡é”', 'å°å°¼', 'å°åº¦', - 'å¤å·´', '哥德', '埃åŠ', '多哥', '寮國', '尼日', - '巴曼', 'å·´æž—', 'å·´ç´', '巴西', '希臘', '帛ç‰', - '德國', '挪å¨', 'æ·å…‹', '教廷', 'æ–æ¿Ÿ', '日本', - '智利', 'æ±åŠ ', '查德', '汶èŠ', '法國', '波蘭', - '波赫', '泰國', '海地', 'ç‘žå…¸', '瑞士', '祕魯', - '秘魯', 'ç´„æ—¦', 'ç´åŸƒ', '緬甸', '美國', 'è–å°¼', - 'è–æ™®', '肯亞', '芬蘭', '英國', 'è·è˜­', '葉門', - '蘇丹', '諾魯', 'è²å—', '越å—', '迦彭', - '迦ç´', '阿曼', '阿è¯', '韓國', '馬利', - '以色列', '以色利', '伊拉克', 'ä¿„ç¾…æ–¯', - '利比亞', '加拿大', '匈牙利', 'å—極洲', - 'å—蘇丹', '厄瓜多', 'å‰å¸ƒåœ°', 'å瓦魯', - '哈撒克', '哈薩克', '喀麥隆', '喬治亞', - '土庫曼', '土耳其', 'å¡”å‰å…‹', '塞席爾', - '墨西哥', '大西洋', '奧地利', '孟加拉', - '安哥拉', '安地å¡', '安é“爾', '尚比亞', - '尼伯爾', '尼泊爾', '巴哈馬', '巴拉圭', - '巴拿馬', 'å·´è²å¤š', '幾內亞', '愛爾蘭', - '所在國', '摩洛哥', 'æ‘©ç´å“¥', 'æ•åˆ©äºž', - '敘利亞', '新加å¡', 'æ±å¸æ±¶', '柬埔寨', - '比利時', '波扎那', '波札那', 'çƒå…‹è˜­', - 'çƒå¹²é”', 'çƒæ‹‰åœ­', '牙買加', 'ç…å­å±±', - '甘比亞', '盧安é”', '盧森堡', '科å¨ç‰¹', - '科索夫', '科索沃', '立陶宛', 'ç´è¥¿è˜­', - '維德角', '義大利', 'è–文森', '艾塞亞', - 'è²å¾‹è³“', 'è¬é‚£æœ', 'è‘¡è„牙', '蒲隆地', - '蓋亞ç´', '薩摩亞', '蘇利å—', '西ç­ç‰™', - 'è²é‡Œæ–¯', '賴索托', '辛巴å¨', '阿富汗', - '阿根廷', '馬其頓', '馬拉å¨', '馬爾他', - '黎巴嫩', '亞塞拜然', '亞美尼亞', 'ä¿åŠ åˆ©äºž', - 'å—斯拉夫', '厄利垂亞', 'å²ç“¦æ¿Ÿè˜­', 'å‰çˆ¾å‰æ–¯', - 'å‰é‡Œå·´æ–¯', '哥倫比亞', 'å¦å°šå°¼äºž', '塞內加爾', - '塞内加爾', '塞爾維亞', '多明尼加', '多米尼克', - '奈åŠåˆ©äºž', '委內瑞拉', 'å®éƒ½æ‹‰æ–¯', '尼加拉瓜', - '巴基斯å¦', '庫克群島', '愛沙尼亞', '拉脫維亞', - '摩爾多瓦', '摩里西斯', '斯洛ä¼å…‹', '斯里蘭å¡', - '格瑞那é”', '模里西斯', '波多黎å„', '澳大利亞', - 'çƒèŒ²åˆ¥å…‹', '玻利維亞', '瓜地馬拉', '白俄羅斯', - 'çªå°¼è¥¿äºž', 'ç´ç±³æ¯”亞', '索馬利亞', '索馬尼亞', - '羅馬尼亞', 'è–露西亞', 'è–馬利諾', '莫三比克', - '莫三鼻克', '葛摩è¯ç›Ÿ', '薩爾瓦多', '衣索比亞', - '西薩摩亞', '象牙海岸', '賴比瑞亞', '賽普勒斯', - '馬來西亞', '馬爾地夫', '克羅埃西亞', - '列支敦斯登', '哥斯大黎加', '布å‰ç´æ³•ç´¢', - '布å‰é‚£æ³•ç´¢', '幾內亞比索', '幾內亞比紹', - '斯洛維尼亞', '索羅門群島', '茅利塔尼亞', - '蒙特內哥羅', '赤é“幾內亞', '阿爾åŠåˆ©äºž', - '阿爾åŠå°¼äºž', '阿爾巴尼亞', '馬紹爾群島', - '馬é”加斯加', '密克羅尼西亞', 'æ²™çƒåœ°é˜¿æ‹‰ä¼¯', - 'åƒé‡Œé”åŠæ‰˜å·´å“¥', - ); - - protected static $postcode = array('###-##', '###'); - - public function street() - { - return static::randomElement(static::$street); - } - - public static function randomChineseNumber() - { - $digits = array( - '', '一', '二', '三', 'å››', '五', 'å…­', '七', 'å…«', 'ä¹', - ); - return $digits[static::randomDigitNotNull()]; - } - - public static function randomNumber2() - { - return static::randomNumber(2) + 1; - } - - public static function randomNumber3() - { - return static::randomNumber(3) + 1; - } - - public static function localLatitude() - { - return number_format(mt_rand(22000000, 25000000)/1000000, 6); - } - - public static function localLongitude() - { - return number_format(mt_rand(120000000, 122000000)/1000000, 6); - } - - public function city() - { - $county = static::randomElement(array_keys(static::$city)); - $city = static::randomElement(static::$city[$county]); - return $county.$city; - } - - public function state() - { - return '臺ç£çœ'; - } - - public static function stateAbbr() - { - return '臺'; - } - - public static function cityPrefix() - { - return ''; - } - - public static function citySuffix() - { - return ''; - } - - public static function secondaryAddress() - { - return (static::randomNumber(2)+1).static::randomElement(static::$secondaryAddressSuffix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php deleted file mode 100644 index 7be5953d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php +++ /dev/null @@ -1,66 +0,0 @@ -generator->parse($format); - } - - public static function companyModifier() - { - return static::randomElement(static::$companyModifier); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefix); - } - - public function catchPhrase() - { - return static::randomElement(static::$catchPhrase); - } - - public function bs() - { - $result = ''; - foreach (static::$bsWords as &$word) { - $result .= static::randomElement($word); - } - return $result; - } - - /** - * return standard VAT / Tax ID / Uniform Serial Number - * - * @example 28263822 - * - * @return int - */ - public function VAT() - { - return static::randomNumber(8, true); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php deleted file mode 100644 index 6df5e928..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php +++ /dev/null @@ -1,46 +0,0 @@ -format('a') === 'am' ? '上åˆ' : '下åˆ'; - } - - public static function dayOfWeek($max = 'now') - { - $map = array( - 'Sunday' => '星期日', - 'Monday' => '星期一', - 'Tuesday' => '星期二', - 'Wednesday' => '星期三', - 'Thursday' => '星期四', - 'Friday' => '星期五', - 'Saturday' => '星期六', - ); - $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; - } - - public static function monthName($max = 'now') - { - $map = array( - 'January' => '一月', - 'February' => '二月', - 'March' => '三月', - 'April' => '四月', - 'May' => '五月', - 'June' => '六月', - 'July' => '七月', - 'August' => '八月', - 'September' => 'ä¹æœˆ', - 'October' => 'å月', - 'November' => 'å一月', - 'December' => 'å二月', - ); - $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php deleted file mode 100644 index 4035ea85..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php +++ /dev/null @@ -1,16 +0,0 @@ -userName(); - } - - public function domainWord() - { - return \Faker\Factory::create('en_US')->domainWord(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php deleted file mode 100644 index 6b1a5829..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php +++ /dev/null @@ -1,11 +0,0 @@ -creditCardDetails($valid); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php deleted file mode 100644 index 1ae72027..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php +++ /dev/null @@ -1,201 +0,0 @@ - 10, - 'B' => 11, - 'C' => 12, - 'D' => 13, - 'E' => 14, - 'F' => 15, - 'G' => 16, - 'H' => 17, - 'I' => 34, - 'J' => 18, - 'K' => 19, - 'M' => 21, - 'N' => 22, - 'O' => 35, - 'p' => 23, - 'Q' => 24, - 'T' => 27, - 'U' => 28, - 'V' => 29, - 'W' => 32, - 'X' => 30, - 'Z' => 33 - ); - - /** - * @see https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89 - */ - public static $idDigitValidator = array(1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1); - - protected static $maleNameFormats = array( - '{{lastName}}{{firstNameMale}}', - ); - - protected static $femaleNameFormats = array( - '{{lastName}}{{firstNameFemale}}', - ); - - protected static $titleMale = array('先生', 'åšå£«', '教授'); - protected static $titleFemale = array('å°å§', '太太', 'åšå£«', '教授'); - - /** - * @link http://zh.wikipedia.org/wiki/%E7%99%BE%E5%AE%B6%E5%A7%93 - */ - protected static $lastName = array( - '趙', '錢', 'å­«', 'æŽ', '周', 'å³', 'é„­', '王', '馮', - '陳', '褚', 'è¡›', '蔣', '沈', '韓', '楊', '朱', '秦', - 'å°¤', '許', '何', 'å‘‚', 'æ–½', 'å¼µ', 'å­”', '曹', 'åš´', - 'è¯', '金', 'é­', '陶', '姜', '戚', 'è¬', 'é„’', 'å–»', - 'æŸ', 'æ°´', '竇', 'ç« ', '雲', '蘇', '潘', 'è‘›', - '奚', '范', 'å½­', '郎', 'é­¯', '韋', '昌', '馬', - 'è‹—', 'é³³', '花', 'æ–¹', 'ä¿ž', 'ä»»', 'è¢', '柳', - 'é…†', '鮑', 'å²', 'å”', 'è²»', '廉', '岑', 'è–›', - 'é›·', 'è³€', '倪', '湯', '滕', 'æ®·', 'ç¾…', 'ç•¢', - 'éƒ', 'é„”', '安', '常', '樂', '于', '時', 'å‚…', - 'çš®', 'åž', '齊', '康', 'ä¼', 'ä½™', 'å…ƒ', 'åœ', - '顧', 'å­Ÿ', 'å¹³', '黃', 'å’Œ', '穆', 'è•­', 'å°¹', - '姚', '邵', 'æ¹›', '汪', 'ç¥', '毛', '禹', 'ç‹„', - 'ç±³', 'è²', '明', '臧', '計', 'ä¼', 'æˆ', '戴', - '談', '宋', '茅', 'é¾', '熊', 'ç´€', '舒', '屈', - 'é …', 'ç¥', 'è‘£', 'æ¢', 'æœ', '阮', 'è—', 'é–”', - '席', 'å­£', '麻', 'å¼·', '賈', 'è·¯', 'å©', 'å±', - '江', 'ç«¥', 'é¡', '郭', '梅', 'ç››', 'æž—', 'åˆ', - 'é¾', 'å¾', '丘', '駱', '高', 'å¤', '蔡', 'ç”°', - '樊', '胡', '凌', 'éœ', '虞', 'è¬', '支', '柯', - 'æ˜', '管', '盧', '莫', '經', '房', '裘', '繆', - 'å¹²', '解', '應', 'å®—', 'ä¸', '宣', 'è³', '鄧', - 'éƒ', 'å–®', 'æ­', 'æ´ª', '包', '諸', 'å·¦', '石', - 'å´”', 'å‰', '鈕', 'é¾”', '程', '嵇', 'é‚¢', '滑', - '裴', '陸', '榮', 'ç¿', 'è€', '羊', 'æ–¼', '惠', - '甄', '麴', '家', 'å°', '芮', '羿', '儲', 'é³', - 'æ±²', 'é‚´', '糜', 'æ¾', '井', '段', '富', 'å·«', - 'çƒ', '焦', 'å·´', '弓', '牧', 'éš—', 'å±±', 'è°·', - '車', '侯', '宓', '蓬', 'å…¨', '郗', 'ç­', 'ä»°', - '秋', '仲', '伊', 'å®®', '甯', '仇', '欒', 'æš´', - '甘', '鈄', '厲', '戎', '祖', 'æ­¦', '符', '劉', - '景', '詹', 'æŸ', 'é¾', '葉', '幸', 'å¸', '韶', - '郜', '黎', 'è–Š', 'è–„', 'å°', '宿', '白', '懷', - 'è’²', 'é‚°', '從', 'é„‚', 'ç´¢', 'å’¸', 'ç±', 'è³´', - 'å“', 'è—º', 'å± ', 'è’™', 'æ± ', 'å–¬', 'é™°', '鬱', - '胥', '能', 'è’¼', 'é›™', 'èž', '莘', '黨', 'ç¿Ÿ', - 'è­š', 'è²¢', 'å‹ž', '逄', '姬', '申', '扶', 'å µ', - '冉', 'å®°', 'é…ˆ', 'é›', '郤', 'ç’©', 'æ¡‘', 'æ¡‚', - 'æ¿®', '牛', '壽', '通', 'é‚Š', '扈', '燕', '冀', - '郟', '浦', 'å°š', 'è¾²', '溫', '別', '莊', 'æ™', - '柴', 'çž¿', 'é–»', 'å……', 'æ…•', '連', '茹', 'ç¿’', - '宦', '艾', 'é­š', '容', 'å‘', 'å¤', '易', 'æ…Ž', - '戈', 'å»–', '庾', '終', '暨', 'å±…', 'è¡¡', 'æ­¥', - '都', '耿', '滿', '弘', '匡', '國', 'æ–‡', '寇', - '廣', '祿', 'é—•', 'æ±', 'æ­', '殳', '沃', '利', - '蔚', '越', '夔', '隆', '師', 'éž', '厙', 'è¶', - 'æ™', '勾', 'æ•–', 'èž', '冷', '訾', 'è¾›', 'é—ž', - 'é‚£', 'ç°¡', '饒', '空', '曾', '毋', 'æ²™', '乜', - '養', 'éž ', 'é ˆ', 'è±', 'å·¢', 'é—œ', 'è’¯', '相', - '查', 'åŽ', 'èŠ', 'ç´…', '游', '竺', '權', '逯', - 'è“‹', '益', 'æ¡“', 'å…¬', '万俟', 'å¸é¦¬', '上官', - 'æ­é™½', 'å¤ä¾¯', '諸葛', 'èžäºº', 'æ±æ–¹', '赫連', - '皇甫', 'å°‰é²', '公羊', '澹臺', '公冶', '宗政', - '濮陽', '淳于', '單于', '太å”', '申屠', '公孫', - '仲孫', 'è»’è½…', '令ç‹', 'é¾é›¢', '宇文', 'é•·å­«', - '慕容', '鮮于', '閭丘', 'å¸å¾’', 'å¸ç©º', '亓官', - 'å¸å¯‡', '仉', 'ç£', 'å­è»Š', 'é¡“å­«', '端木', '巫馬', - '公西', '漆雕', '樂正', '壤駟', '公良', 'æ‹“è·‹', - '夾谷', '宰父', 'ç©€æ¢', '晉', '楚', 'é–†', '法', - 'æ±', 'é„¢', '涂', '欽', '段干', '百里', 'æ±éƒ­', - 'å—é–€', '呼延', 'æ­¸', 'æµ·', '羊舌', '微生', 'å²³', - '帥', 'ç·±', '亢', 'æ³', '後', '有', 'ç´', 'æ¢ä¸˜', - '左丘', 'æ±é–€', '西門', '商', '牟', '佘', 'ä½´', - '伯', '賞', 'å—å®®', '墨', '哈', 'è­™', '笪', 'å¹´', - 'æ„›', '陽', '佟', '第五', '言', 'ç¦', - ); - - /** - * @link http://technology.chtsai.org/namefreq/ - */ - protected static $characterMale = array( - 'ä½³', 'ä¿Š', 'ä¿¡', 'å‰', 'å‚‘', '冠', 'å›', '哲', - '嘉', 'å¨', '宇', '安', 'å®', 'å®—', '宜', '家', - '庭', 'å»·', '建', 'å½¥', '心', 'å¿—', 'æ€', '承', - 'æ–‡', 'æŸ', '樺', 'ç‘‹', 'ç©Ž', '美', 'ç¿°', 'è¯', - 'è©©', '豪', 'è³¢', 'è»’', '銘', '霖', - ); - - protected static $characterFemale = array( - '伶', '佩', 'ä½³', 'ä¾', 'å„€', '冠', 'å›', '嘉', - '如', '娟', '婉', 'å©·', '安', '宜', '家', '庭', - '心', 'æ€', '怡', '惠', 'æ…§', 'æ–‡', '欣', '涵', - 'æ·‘', '玲', 'çŠ', 'çª', 'ç¬', 'ç‘œ', 'ç©Ž', 'ç­‘', - 'ç­±', '美', '芬', '芳', 'è¯', 'è', 'è±', '蓉', - 'è©©', '貞', 'éƒ', '鈺', 'é›…', '雯', 'éœ', '馨', - ); - - public static function randomName($pool, $n) - { - $name = ''; - for ($i = 0; $i < $n; ++$i) { - $name .= static::randomElement($pool); - } - return $name; - } - - public static function firstNameMale() - { - return static::randomName(static::$characterMale, mt_rand(1, 2)); - } - - public static function firstNameFemale() - { - return static::randomName(static::$characterFemale, mt_rand(1, 2)); - } - - public static function suffix() - { - return ''; - } - - /** - * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE - * - * @see https://en.wikipedia.org/wiki/National_Identification_Card_(Republic_of_China) - * - * @return string Length 10 alphanumeric characters, begins with 1 latin character (birthplace), - * 1 number (gender) and then 8 numbers (the last one is check digit). - */ - public function personalIdentityNumber($gender = null) - { - $birthPlace = self::randomKey(self::$idBirthplaceCode); - $birthPlaceCode = self::$idBirthplaceCode[$birthPlace]; - - $gender = ($gender != null) ? $gender : self::randomElement(array(self::GENDER_FEMALE, self::GENDER_MALE)); - $genderCode = ($gender === self::GENDER_MALE) ? 1 : 2; - - $randomNumberCode = self::randomNumber(7, true); - - $codes = str_split($birthPlaceCode . $genderCode . $randomNumberCode); - $total = 0; - - foreach ($codes as $key => $code) { - $total += $code * self::$idDigitValidator[$key]; - } - - $checkSumDigit = 10 - ($total % 10); - - if ($checkSumDigit == 10) { - $checkSumDigit = 0; - } - - $id = $birthPlace . $genderCode . $randomNumberCode . $checkSumDigit; - - return $id; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php deleted file mode 100644 index 7c31a979..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php +++ /dev/null @@ -1,19 +0,0 @@ - 251: - $temp .= $chars[++$i]; - // no break - case $ord > 247: - $temp .= $chars[++$i]; - // no break - case $ord > 239: - $temp .= $chars[++$i]; - // no break - case $ord > 223: - $temp .= $chars[++$i]; - // no break - case $ord > 191: - $temp .= $chars[++$i]; - // no break - } - - $encoding[] = $temp; - } - - return $encoding; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php b/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php deleted file mode 100644 index 431f7653..00000000 --- a/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php +++ /dev/null @@ -1,58 +0,0 @@ -unique() - */ -class UniqueGenerator -{ - protected $generator; - protected $maxRetries; - protected $uniques = array(); - - /** - * @param Generator $generator - * @param integer $maxRetries - */ - public function __construct(Generator $generator, $maxRetries = 10000) - { - $this->generator = $generator; - $this->maxRetries = $maxRetries; - } - - /** - * Catch and proxy all generator calls but return only unique values - * @param string $attribute - * @return mixed - */ - public function __get($attribute) - { - return $this->__call($attribute, array()); - } - - /** - * Catch and proxy all generator calls with arguments but return only unique values - * @param string $name - * @param array $arguments - * @return mixed - */ - public function __call($name, $arguments) - { - if (!isset($this->uniques[$name])) { - $this->uniques[$name] = array(); - } - $i = 0; - do { - $res = call_user_func_array(array($this->generator, $name), $arguments); - $i++; - if ($i > $this->maxRetries) { - throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a unique value', $this->maxRetries)); - } - } while (array_key_exists(serialize($res), $this->uniques[$name])); - $this->uniques[$name][serialize($res)]= null; - - return $res; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php b/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php deleted file mode 100644 index 1352dfc0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php +++ /dev/null @@ -1,65 +0,0 @@ -valid() - */ -class ValidGenerator -{ - protected $generator; - protected $validator; - protected $maxRetries; - - /** - * @param Generator $generator - * @param callable|null $validator - * @param integer $maxRetries - */ - public function __construct(Generator $generator, $validator = null, $maxRetries = 10000) - { - if (is_null($validator)) { - $validator = function () { - return true; - }; - } elseif (!is_callable($validator)) { - throw new \InvalidArgumentException('valid() only accepts callables as first argument'); - } - $this->generator = $generator; - $this->validator = $validator; - $this->maxRetries = $maxRetries; - } - - /** - * Catch and proxy all generator calls but return only valid values - * @param string $attribute - * - * @return mixed - */ - public function __get($attribute) - { - return $this->__call($attribute, array()); - } - - /** - * Catch and proxy all generator calls with arguments but return only valid values - * @param string $name - * @param array $arguments - * - * @return mixed - */ - public function __call($name, $arguments) - { - $i = 0; - do { - $res = call_user_func_array(array($this->generator, $name), $arguments); - $i++; - if ($i > $this->maxRetries) { - throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a valid value', $this->maxRetries)); - } - } while (!call_user_func($this->validator, $res)); - - return $res; - } -} diff --git a/vendor/fzaninotto/faker/src/autoload.php b/vendor/fzaninotto/faker/src/autoload.php deleted file mode 100644 index f55914de..00000000 --- a/vendor/fzaninotto/faker/src/autoload.php +++ /dev/null @@ -1,26 +0,0 @@ -assertEquals($checksum, Iban::checksum($iban), $iban); - } - - public function validatorProvider() - { - return array( - array('AL47212110090000000235698741', true), - array('AD1200012030200359100100', true), - array('AT611904300234573201', true), - array('AZ21NABZ00000000137010001944', true), - array('BH67BMAG00001299123456', true), - array('BE68539007547034', true), - array('BA391290079401028494', true), - array('BR7724891749412660603618210F3', true), - array('BG80BNBG96611020345678', true), - array('CR0515202001026284066', true), - array('HR1210010051863000160', true), - array('CY17002001280000001200527600', true), - array('CZ6508000000192000145399', true), - array('DK5000400440116243', true), - array('DO28BAGR00000001212453611324', true), - array('EE382200221020145685', true), - array('FO6264600001631634', true), - array('FI2112345600000785', true), - array('FR1420041010050500013M02606', true), - array('GE29NB0000000101904917', true), - array('DE89370400440532013000', true), - array('GI75NWBK000000007099453', true), - array('GR1601101250000000012300695', true), - array('GL8964710001000206', true), - array('GT82TRAJ01020000001210029690', true), - array('HU42117730161111101800000000', true), - array('IS140159260076545510730339', true), - array('IE29AIBK93115212345678', true), - array('IL620108000000099999999', true), - array('IT60X0542811101000000123456', true), - array('KZ86125KZT5004100100', true), - array('KW81CBKU0000000000001234560101', true), - array('LV80BANK0000435195001', true), - array('LB62099900000001001901229114', true), - array('LI21088100002324013AA', true), - array('LT121000011101001000', true), - array('LU280019400644750000', true), - array('MK07250120000058984', true), - array('MT84MALT011000012345MTLCAST001S', true), - array('MR1300020001010000123456753', true), - array('MU17BOMM0101101030300200000MUR', true), - array('MD24AG000225100013104168', true), - array('MC5811222000010123456789030', true), - array('ME25505000012345678951', true), - array('NL91ABNA0417164300', true), - array('NO9386011117947', true), - array('PK36SCBL0000001123456702', true), - array('PL61109010140000071219812874', true), - array('PS92PALS000000000400123456702', true), - array('PT50000201231234567890154', true), - array('QA58DOHB00001234567890ABCDEFG', true), - array('RO49AAAA1B31007593840000', true), - array('SM86U0322509800000000270100', true), - array('SA0380000000608010167519', true), - array('RS35260005601001611379', true), - array('SK3112000000198742637541', true), - array('SI56263300012039086', true), - array('ES9121000418450200051332', true), - array('SE4550000000058398257466', true), - array('CH9300762011623852957', true), - array('TN5910006035183598478831', true), - array('TR330006100519786457841326', true), - array('AE070331234567890123456', true), - array('GB29NWBK60161331926819', true), - array('VG96VPVG0000012345678901', true), - array('YY24KIHB12476423125915947930915268', true), - array('ZZ25VLQT382332233206588011313776421', true), - - - array('AL4721211009000000023569874', false), - array('AD120001203020035910010', false), - array('AT61190430023457320', false), - array('AZ21NABZ0000000013701000194', false), - array('BH67BMAG0000129912345', false), - array('BE6853900754703', false), - array('BA39129007940102849', false), - array('BR7724891749412660603618210F', false), - array('BG80BNBG9661102034567', false), - array('CR051520200102628406', false), - array('HR121001005186300016', false), - array('CY1700200128000000120052760', false), - array('CZ650800000019200014539', false), - array('DK500040044011624', false), - array('DO28BAGR0000000121245361132', false), - array('EE38220022102014568', false), - array('FO626460000163163', false), - array('FI2112345600000780', false), - array('FR1420041010050500013M0260', false), - array('GE29NB000000010190491', false), - array('DE8937040044053201300', false), - array('GI75NWBK00000000709945', false), - array('GR160110125000000001230069', false), - array('GL896471000100020', false), - array('GT82TRAJ0102000000121002969', false), - array('HU4211773016111110180000000', false), - array('IS14015926007654551073033', false), - array('IE29AIBK9311521234567', false), - array('IL62010800000009999999', false), - array('IT60X054281110100000012345', false), - array('KZ86125KZT500410010', false), - array('KW81CBKU000000000000123456010', false), - array('LV80BANK000043519500', false), - array('LB6209990000000100190122911', false), - array('LI21088100002324013A', false), - array('LT12100001110100100', false), - array('LU28001940064475000', false), - array('MK0725012000005898', false), - array('MT84MALT011000012345MTLCAST001', false), - array('MR130002000101000012345675', false), - array('MU17BOMM0101101030300200000MU', false), - array('MD24AG00022510001310416', false), - array('MC58112220000101234567890', false), - array('ME2550500001234567895', false), - array('NL91ABNA041716430', false), - array('NO938601111794', false), - array('PK36SCBL000000112345670', false), - array('PL6110901014000007121981287', false), - array('PS92PALS00000000040012345670', false), - array('PT5000020123123456789015', false), - array('QA58DOHB00001234567890ABCDEF', false), - array('RO49AAAA1B3100759384000', false), - array('SM86U032250980000000027010', false), - array('SA038000000060801016751', false), - array('RS3526000560100161137', false), - array('SK311200000019874263754', false), - array('SI5626330001203908', false), - array('ES912100041845020005133', false), - array('SE455000000005839825746', false), - array('CH930076201162385295', false), - array('TN591000603518359847883', false), - array('TR33000610051978645784132', false), - array('AE07033123456789012345', false), - array('GB29NWBK6016133192681', false), - array('VG96VPVG000001234567890', false), - array('YY24KIHB1247642312591594793091526', false), - array('ZZ25VLQT38233223320658801131377642', false), - ); - } - - /** - * @dataProvider validatorProvider - */ - public function testIsValid($iban, $isValid) - { - $this->assertEquals($isValid, Iban::isValid($iban), $iban); - } - - public function alphaToNumberProvider() - { - return array( - array('A', 10), - array('B', 11), - array('C', 12), - array('D', 13), - array('E', 14), - array('F', 15), - array('G', 16), - array('H', 17), - array('I', 18), - array('J', 19), - array('K', 20), - array('L', 21), - array('M', 22), - array('N', 23), - array('O', 24), - array('P', 25), - array('Q', 26), - array('R', 27), - array('S', 28), - array('T', 29), - array('U', 30), - array('V', 31), - array('W', 32), - array('X', 33), - array('Y', 34), - array('Z', 35), - ); - } - - /** - * @dataProvider alphaToNumberProvider - */ - public function testAlphaToNumber($letter, $number) - { - $this->assertEquals($number, Iban::alphaToNumber($letter), $letter); - } - - public function mod97Provider() - { - // Large numbers - $return = array( - array('123456789123456789', 7), - array('111222333444555666', 73), - array('4242424242424242424242', 19), - array('271828182845904523536028', 68), - ); - - // 0-200 - for ($i = 0; $i < 200; $i++) { - $return[] = array((string)$i, $i % 97); - } - - return $return; - } - /** - * @dataProvider mod97Provider - */ - public function testMod97($number, $result) - { - $this->assertEquals($result, Iban::mod97($number), $number); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Calculator/InnTest.php b/vendor/fzaninotto/faker/test/Faker/Calculator/InnTest.php deleted file mode 100644 index 4dfb8802..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Calculator/InnTest.php +++ /dev/null @@ -1,50 +0,0 @@ -assertEquals($checksum, Inn::checksum($inn), $inn); - } - - public function validatorProvider() - { - return array( - array('5902179757', true), - array('5408294405', true), - array('2724164617', true), - array('0726000515', true), - array('6312123552', true), - - array('1111111111', false), - array('0123456789', false), - ); - } - - /** - * @dataProvider validatorProvider - */ - public function testIsValid($inn, $isValid) - { - $this->assertEquals($isValid, Inn::isValid($inn), $inn); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php b/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php deleted file mode 100644 index 9eb30b5d..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php +++ /dev/null @@ -1,71 +0,0 @@ -assertInternalType('string', $checkDigit); - $this->assertEquals($checkDigit, Luhn::computeCheckDigit($partialNumber)); - } - - public function validatorProvider() - { - return array( - array('79927398710', false), - array('79927398711', false), - array('79927398712', false), - array('79927398713', true), - array('79927398714', false), - array('79927398715', false), - array('79927398716', false), - array('79927398717', false), - array('79927398718', false), - array('79927398719', false), - array(79927398713, true), - array(79927398714, false), - ); - } - - /** - * @dataProvider validatorProvider - */ - public function testIsValid($number, $isValid) - { - $this->assertEquals($isValid, Luhn::isValid($number)); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Argument should be an integer. - */ - public function testGenerateLuhnNumberWithInvalidPrefix() - { - Luhn::generateLuhnNumber('abc'); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php b/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php deleted file mode 100644 index 262243d1..00000000 --- a/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php +++ /dev/null @@ -1,27 +0,0 @@ -assertSame(null, $generator->value); - } - - public function testGeneratorReturnsDefaultValueForAnyPropertyGet() - { - $generator = new DefaultGenerator(123); - $this->assertSame(123, $generator->foo); - $this->assertNotSame(null, $generator->bar); - } - - public function testGeneratorReturnsDefaultValueForAnyMethodCall() - { - $generator = new DefaultGenerator(123); - $this->assertSame(123, $generator->foobar()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php b/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php deleted file mode 100644 index e437292a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php +++ /dev/null @@ -1,147 +0,0 @@ -addProvider(new FooProvider()); - $generator->addProvider(new BarProvider()); - $this->assertEquals('barfoo', $generator->format('fooFormatter')); - } - - public function testGetFormatterReturnsCallable() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertTrue(is_callable($generator->getFormatter('fooFormatter'))); - } - - public function testGetFormatterReturnsCorrectFormatter() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $expected = array($provider, 'fooFormatter'); - $this->assertEquals($expected, $generator->getFormatter('fooFormatter')); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testGetFormatterThrowsExceptionOnIncorrectProvider() - { - $generator = new Generator; - $generator->getFormatter('fooFormatter'); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testGetFormatterThrowsExceptionOnIncorrectFormatter() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $generator->getFormatter('barFormatter'); - } - - public function testFormatCallsFormatterOnProvider() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('foobar', $generator->format('fooFormatter')); - } - - public function testFormatTransfersArgumentsToFormatter() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('bazfoo', $generator->format('fooFormatterWithArguments', array('foo'))); - } - - public function testParseReturnsSameStringWhenItContainsNoCurlyBraces() - { - $generator = new Generator(); - $this->assertEquals('fooBar#?', $generator->parse('fooBar#?')); - } - - public function testParseReturnsStringWithTokensReplacedByFormatters() - { - $generator = new Generator(); - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('This is foobar a text with foobar', $generator->parse('This is {{fooFormatter}} a text with {{ fooFormatter }}')); - } - - public function testMagicGetCallsFormat() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('foobar', $generator->fooFormatter); - } - - public function testMagicCallCallsFormat() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('foobar', $generator->fooFormatter()); - } - - public function testMagicCallCallsFormatWithArguments() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('bazfoo', $generator->fooFormatterWithArguments('foo')); - } - - public function testSeed() - { - $generator = new Generator; - - $generator->seed(0); - $mtRandWithSeedZero = mt_rand(); - $generator->seed(0); - $this->assertEquals($mtRandWithSeedZero, mt_rand(), 'seed(0) should be deterministic.'); - - $generator->seed(); - $mtRandWithoutSeed = mt_rand(); - $this->assertNotEquals($mtRandWithSeedZero, $mtRandWithoutSeed, 'seed() should be different than seed(0)'); - $generator->seed(); - $this->assertNotEquals($mtRandWithoutSeed, mt_rand(), 'seed() should not be deterministic.'); - - $generator->seed('10'); - $this->assertTrue(true, 'seeding with a non int value doesn\'t throw an exception'); - } -} - -class FooProvider -{ - public function fooFormatter() - { - return 'foobar'; - } - - public function fooFormatterWithArguments($value = '') - { - return 'baz' . $value; - } -} - -class BarProvider -{ - public function fooFormatter() - { - return 'barfoo'; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php deleted file mode 100644 index 5a5f66d4..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php +++ /dev/null @@ -1,46 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testLatitude() - { - $latitude = $this->faker->latitude(); - $this->assertInternalType('float', $latitude); - $this->assertGreaterThanOrEqual(-90, $latitude); - $this->assertLessThanOrEqual(90, $latitude); - } - - public function testLongitude() - { - $longitude = $this->faker->longitude(); - $this->assertInternalType('float', $longitude); - $this->assertGreaterThanOrEqual(-180, $longitude); - $this->assertLessThanOrEqual(180, $longitude); - } - - public function testCoordinate() - { - $coordinate = $this->faker->localCoordinates(); - $this->assertInternalType('array', $coordinate); - $this->assertInternalType('float', $coordinate['latitude']); - $this->assertGreaterThanOrEqual(-90, $coordinate['latitude']); - $this->assertLessThanOrEqual(90, $coordinate['latitude']); - $this->assertInternalType('float', $coordinate['longitude']); - $this->assertGreaterThanOrEqual(-180, $coordinate['longitude']); - $this->assertLessThanOrEqual(180, $coordinate['longitude']); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php deleted file mode 100644 index 1373b2b5..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php +++ /dev/null @@ -1,45 +0,0 @@ -addProvider(new Barcode($faker)); - $faker->seed(0); - $this->faker = $faker; - } - - public function testEan8() - { - $code = $this->faker->ean8(); - $this->assertRegExp('/^\d{8}$/i', $code); - $codeWithoutChecksum = substr($code, 0, -1); - $checksum = substr($code, -1); - $this->assertEquals(TestableBarcode::eanChecksum($codeWithoutChecksum), $checksum); - } - - public function testEan13() - { - $code = $this->faker->ean13(); - $this->assertRegExp('/^\d{13}$/i', $code); - $codeWithoutChecksum = substr($code, 0, -1); - $checksum = substr($code, -1); - $this->assertEquals(TestableBarcode::eanChecksum($codeWithoutChecksum), $checksum); - } -} - -class TestableBarcode extends Barcode -{ - public static function eanChecksum($input) - { - return parent::eanChecksum($input); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php deleted file mode 100644 index 313b0021..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php +++ /dev/null @@ -1,555 +0,0 @@ -assertTrue(is_integer(BaseProvider::randomDigit())); - } - - public function testRandomDigitReturnsDigit() - { - $this->assertTrue(BaseProvider::randomDigit() >= 0); - $this->assertTrue(BaseProvider::randomDigit() < 10); - } - - public function testRandomDigitNotNullReturnsNotNullDigit() - { - $this->assertTrue(BaseProvider::randomDigitNotNull() > 0); - $this->assertTrue(BaseProvider::randomDigitNotNull() < 10); - } - - - public function testRandomDigitNotReturnsValidDigit() - { - for ($i = 0; $i <= 9; $i++) { - $this->assertTrue(BaseProvider::randomDigitNot($i) >= 0); - $this->assertTrue(BaseProvider::randomDigitNot($i) < 10); - $this->assertTrue(BaseProvider::randomDigitNot($i) !== $i); - } - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testRandomNumberThrowsExceptionWhenCalledWithAMax() - { - BaseProvider::randomNumber(5, 200); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testRandomNumberThrowsExceptionWhenCalledWithATooHighNumberOfDigits() - { - BaseProvider::randomNumber(10); - } - - public function testRandomNumberReturnsInteger() - { - $this->assertTrue(is_integer(BaseProvider::randomNumber())); - $this->assertTrue(is_integer(BaseProvider::randomNumber(5, false))); - } - - public function testRandomNumberReturnsDigit() - { - $this->assertTrue(BaseProvider::randomNumber(3) >= 0); - $this->assertTrue(BaseProvider::randomNumber(3) < 1000); - } - - public function testRandomNumberAcceptsStrictParamToEnforceNumberSize() - { - $this->assertEquals(5, strlen((string) BaseProvider::randomNumber(5, true))); - } - - public function testNumberBetween() - { - $min = 5; - $max = 6; - - $this->assertGreaterThanOrEqual($min, BaseProvider::numberBetween($min, $max)); - $this->assertGreaterThanOrEqual(BaseProvider::numberBetween($min, $max), $max); - } - - public function testNumberBetweenAcceptsZeroAsMax() - { - $this->assertEquals(0, BaseProvider::numberBetween(0, 0)); - } - - public function testRandomFloat() - { - $min = 4; - $max = 10; - $nbMaxDecimals = 8; - - $result = BaseProvider::randomFloat($nbMaxDecimals, $min, $max); - - $parts = explode('.', $result); - - $this->assertInternalType('float', $result); - $this->assertGreaterThanOrEqual($min, $result); - $this->assertLessThanOrEqual($max, $result); - $this->assertLessThanOrEqual($nbMaxDecimals, strlen($parts[1])); - } - - public function testRandomLetterReturnsString() - { - $this->assertTrue(is_string(BaseProvider::randomLetter())); - } - - public function testRandomLetterReturnsSingleLetter() - { - $this->assertEquals(1, strlen(BaseProvider::randomLetter())); - } - - public function testRandomLetterReturnsLowercaseLetter() - { - $lowercaseLetters = 'abcdefghijklmnopqrstuvwxyz'; - $this->assertTrue(strpos($lowercaseLetters, BaseProvider::randomLetter()) !== false); - } - - public function testRandomAsciiReturnsString() - { - $this->assertTrue(is_string(BaseProvider::randomAscii())); - } - - public function testRandomAsciiReturnsSingleCharacter() - { - $this->assertEquals(1, strlen(BaseProvider::randomAscii())); - } - - public function testRandomAsciiReturnsAsciiCharacter() - { - $lowercaseLetters = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'; - $this->assertTrue(strpos($lowercaseLetters, BaseProvider::randomAscii()) !== false); - } - - public function testRandomElementReturnsNullWhenArrayEmpty() - { - $this->assertNull(BaseProvider::randomElement(array())); - } - - public function testRandomElementReturnsElementFromArray() - { - $elements = array('23', 'e', 32, '#'); - $this->assertContains(BaseProvider::randomElement($elements), $elements); - } - - public function testRandomElementReturnsElementFromAssociativeArray() - { - $elements = array('tata' => '23', 'toto' => 'e', 'tutu' => 32, 'titi' => '#'); - $this->assertContains(BaseProvider::randomElement($elements), $elements); - } - - public function testShuffleReturnsStringWhenPassedAStringArgument() - { - $this->assertInternalType('string', BaseProvider::shuffle('foo')); - } - - public function testShuffleReturnsArrayWhenPassedAnArrayArgument() - { - $this->assertInternalType('array', BaseProvider::shuffle(array(1, 2, 3))); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testShuffleThrowsExceptionWhenPassedAnInvalidArgument() - { - BaseProvider::shuffle(false); - } - - public function testShuffleArraySupportsEmptyArrays() - { - $this->assertEquals(array(), BaseProvider::shuffleArray(array())); - } - - public function testShuffleArrayReturnsAnArrayOfTheSameSize() - { - $array = array(1, 2, 3, 4, 5); - $this->assertSameSize($array, BaseProvider::shuffleArray($array)); - } - - public function testShuffleArrayReturnsAnArrayWithSameElements() - { - $array = array(2, 4, 6, 8, 10); - $shuffleArray = BaseProvider::shuffleArray($array); - $this->assertContains(2, $shuffleArray); - $this->assertContains(4, $shuffleArray); - $this->assertContains(6, $shuffleArray); - $this->assertContains(8, $shuffleArray); - $this->assertContains(10, $shuffleArray); - } - - public function testShuffleArrayReturnsADifferentArrayThanTheOriginal() - { - $arr = array(1, 2, 3, 4, 5); - $shuffledArray = BaseProvider::shuffleArray($arr); - $this->assertNotEquals($arr, $shuffledArray); - } - - public function testShuffleArrayLeavesTheOriginalArrayUntouched() - { - $arr = array(1, 2, 3, 4, 5); - BaseProvider::shuffleArray($arr); - $this->assertEquals($arr, array(1, 2, 3, 4, 5)); - } - - public function testShuffleStringSupportsEmptyStrings() - { - $this->assertEquals('', BaseProvider::shuffleString('')); - } - - public function testShuffleStringReturnsAnStringOfTheSameSize() - { - $string = 'abcdef'; - $this->assertEquals(strlen($string), strlen(BaseProvider::shuffleString($string))); - } - - public function testShuffleStringReturnsAnStringWithSameElements() - { - $string = 'acegi'; - $shuffleString = BaseProvider::shuffleString($string); - $this->assertContains('a', $shuffleString); - $this->assertContains('c', $shuffleString); - $this->assertContains('e', $shuffleString); - $this->assertContains('g', $shuffleString); - $this->assertContains('i', $shuffleString); - } - - public function testShuffleStringReturnsADifferentStringThanTheOriginal() - { - $string = 'abcdef'; - $shuffledString = BaseProvider::shuffleString($string); - $this->assertNotEquals($string, $shuffledString); - } - - public function testShuffleStringLeavesTheOriginalStringUntouched() - { - $string = 'abcdef'; - BaseProvider::shuffleString($string); - $this->assertEquals($string, 'abcdef'); - } - - public function testNumerifyReturnsSameStringWhenItContainsNoHashSign() - { - $this->assertEquals('fooBar?', BaseProvider::numerify('fooBar?')); - } - - public function testNumerifyReturnsStringWithHashSignsReplacedByDigits() - { - $this->assertRegExp('/foo\dBa\dr/', BaseProvider::numerify('foo#Ba#r')); - } - - public function testNumerifyReturnsStringWithPercentageSignsReplacedByDigits() - { - $this->assertRegExp('/foo\dBa\dr/', BaseProvider::numerify('foo%Ba%r')); - } - - public function testNumerifyReturnsStringWithPercentageSignsReplacedByNotNullDigits() - { - $this->assertNotEquals('0', BaseProvider::numerify('%')); - } - - public function testNumerifyCanGenerateALargeNumberOfDigits() - { - $largePattern = str_repeat('#', 20); // definitely larger than PHP_INT_MAX on all systems - $this->assertEquals(20, strlen(BaseProvider::numerify($largePattern))); - } - - public function testLexifyReturnsSameStringWhenItContainsNoQuestionMark() - { - $this->assertEquals('fooBar#', BaseProvider::lexify('fooBar#')); - } - - public function testLexifyReturnsStringWithQuestionMarksReplacedByLetters() - { - $this->assertRegExp('/foo[a-z]Ba[a-z]r/', BaseProvider::lexify('foo?Ba?r')); - } - - public function testBothifyCombinesNumerifyAndLexify() - { - $this->assertRegExp('/foo[a-z]Ba\dr/', BaseProvider::bothify('foo?Ba#r')); - } - - public function testBothifyAsterisk() - { - $this->assertRegExp('/foo([a-z]|\d)Ba([a-z]|\d)r/', BaseProvider::bothify('foo*Ba*r')); - } - - public function testBothifyUtf() - { - $utf = 'œ∑´®†¥¨ˆøπ“‘和製╯°□°╯︵ â”»â”┻🵠🙈 ﺚﻣ ﻦﻔﺳ ﺲﻘﻄﺗ ﻮﺑﺎﻠﺘﺣﺪﻳﺩ،, ïºïº°ï»³ïº®ïº˜ï»³ ïºïºŽïº´ïº˜ïº§ïº©ïºŽï»£ ﺄﻧ ﺪﻧﻭ. ﺇﺫ ﻪﻧïºØŸ ﺎﻠﺴﺗïºïº­ ﻮﺘ'; - $this->assertRegExp('/'.$utf.'foo\dB[a-z]a([a-z]|\d)r/u', BaseProvider::bothify($utf.'foo#B?a*r')); - } - - public function testAsciifyReturnsSameStringWhenItContainsNoStarSign() - { - $this->assertEquals('fooBar?', BaseProvider::asciify('fooBar?')); - } - - public function testAsciifyReturnsStringWithStarSignsReplacedByAsciiChars() - { - $this->assertRegExp('/foo.Ba.r/', BaseProvider::asciify('foo*Ba*r')); - } - - public function regexifyBasicDataProvider() - { - return array( - array('azeQSDF1234', 'azeQSDF1234', 'does not change non regex chars'), - array('foo(bar){1}', 'foobar', 'replaces regex characters'), - array('', '', 'supports empty string'), - array('/^foo(bar){1}$/', 'foobar', 'ignores regex delimiters') - ); - } - - /** - * @dataProvider regexifyBasicDataProvider - */ - public function testRegexifyBasicFeatures($input, $output, $message) - { - $this->assertEquals($output, BaseProvider::regexify($input), $message); - } - - public function regexifyDataProvider() - { - return array( - array('\d', 'numbers'), - array('\w', 'letters'), - array('(a|b)', 'alternation'), - array('[aeiou]', 'basic character class'), - array('[a-z]', 'character class range'), - array('[a-z1-9]', 'multiple character class range'), - array('a*b+c?', 'single character quantifiers'), - array('a{2}', 'brackets quantifiers'), - array('a{2,3}', 'min-max brackets quantifiers'), - array('[aeiou]{2,3}', 'brackets quantifiers on basic character class'), - array('[a-z]{2,3}', 'brackets quantifiers on character class range'), - array('(a|b){2,3}', 'brackets quantifiers on alternation'), - array('\.\*\?\+', 'escaped characters'), - array('[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}', 'complex regex') - ); - } - - /** - * @dataProvider regexifyDataProvider - */ - public function testRegexifySupportedRegexSyntax($pattern, $message) - { - $this->assertRegExp('/' . $pattern . '/', BaseProvider::regexify($pattern), 'Regexify supports ' . $message); - } - - public function testOptionalReturnsProviderValueWhenCalledWithWeight1() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $this->assertNotNull($faker->optional(100)->randomDigit); - } - - public function testOptionalReturnsNullWhenCalledWithWeight0() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $this->assertNull($faker->optional(0)->randomDigit); - } - - public function testOptionalAllowsChainingPropertyAccess() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs - $this->assertEquals(1, $faker->optional(100)->count); - $this->assertNull($faker->optional(0)->count); - } - - public function testOptionalAllowsChainingMethodCall() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs - $this->assertEquals(1, $faker->optional(100)->count()); - $this->assertNull($faker->optional(0)->count()); - } - - public function testOptionalAllowsChainingProviderCallRandomlyReturnNull() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $values = array(); - for ($i=0; $i < 10; $i++) { - $values[]= $faker->optional()->randomDigit; - } - $this->assertContains(null, $values); - - $values = array(); - for ($i=0; $i < 10; $i++) { - $values[]= $faker->optional(50)->randomDigit; - } - $this->assertContains(null, $values); - } - - /** - * @link https://github.com/fzaninotto/Faker/issues/265 - */ - public function testOptionalPercentageAndWeight() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \Faker\Provider\Miscellaneous($faker)); - - $valuesOld = array(); - $valuesNew = array(); - - for ($i = 0; $i < 10000; ++$i) { - $valuesOld[] = $faker->optional(0.5)->boolean(100); - $valuesNew[] = $faker->optional(50)->boolean(100); - } - - $this->assertEquals( - round(array_sum($valuesOld) / 10000, 2), - round(array_sum($valuesNew) / 10000, 2) - ); - } - - public function testUniqueAllowsChainingPropertyAccess() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs - $this->assertEquals(1, $faker->unique()->count); - } - - public function testUniqueAllowsChainingMethodCall() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs - $this->assertEquals(1, $faker->unique()->count()); - } - - public function testUniqueReturnsOnlyUniqueValues() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $values = array(); - for ($i=0; $i < 10; $i++) { - $values[]= $faker->unique()->randomDigit; - } - sort($values); - $this->assertEquals(array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), $values); - } - - /** - * @expectedException OverflowException - */ - public function testUniqueThrowsExceptionWhenNoUniqueValueCanBeGenerated() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - for ($i=0; $i < 11; $i++) { - $faker->unique()->randomDigit; - } - } - - public function testUniqueCanResetUniquesWhenPassedTrueAsArgument() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $values = array(); - for ($i=0; $i < 10; $i++) { - $values[]= $faker->unique()->randomDigit; - } - $values[]= $faker->unique(true)->randomDigit; - for ($i=0; $i < 9; $i++) { - $values[]= $faker->unique()->randomDigit; - } - sort($values); - $this->assertEquals(array(0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9), $values); - } - - public function testValidAllowsChainingPropertyAccess() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $this->assertLessThan(10, $faker->valid()->randomDigit); - } - - public function testValidAllowsChainingMethodCall() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $this->assertLessThan(10, $faker->valid()->numberBetween(5, 9)); - } - - public function testValidReturnsOnlyValidValues() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $values = array(); - $evenValidator = function($digit) { - return $digit % 2 === 0; - }; - for ($i=0; $i < 50; $i++) { - $values[$faker->valid($evenValidator)->randomDigit] = true; - } - $uniqueValues = array_keys($values); - sort($uniqueValues); - $this->assertEquals(array(0, 2, 4, 6, 8), $uniqueValues); - } - - /** - * @expectedException OverflowException - */ - public function testValidThrowsExceptionWhenNoValidValueCanBeGenerated() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $evenValidator = function($digit) { - return $digit % 2 === 0; - }; - for ($i=0; $i < 11; $i++) { - $faker->valid($evenValidator)->randomElement(array(1, 3, 5, 7, 9)); - } - } - - /** - * @expectedException InvalidArgumentException - */ - public function testValidThrowsExceptionWhenParameterIsNotCollable() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->valid(12)->randomElement(array(1, 3, 5, 7, 9)); - } - - /** - * @expectedException LengthException - * @expectedExceptionMessage Cannot get 2 elements, only 1 in array - */ - public function testRandomElementsThrowsWhenRequestingTooManyKeys() - { - BaseProvider::randomElements(array('foo'), 2); - } - - public function testRandomElements() - { - $this->assertCount(1, BaseProvider::randomElements(), 'Should work without any input'); - - $empty = BaseProvider::randomElements(array(), 0); - $this->assertInternalType('array', $empty); - $this->assertCount(0, $empty); - - $shuffled = BaseProvider::randomElements(array('foo', 'bar', 'baz'), 3); - $this->assertContains('foo', $shuffled); - $this->assertContains('bar', $shuffled); - $this->assertContains('baz', $shuffled); - - $allowDuplicates = BaseProvider::randomElements(array('foo', 'bar'), 3, true); - $this->assertCount(3, $allowDuplicates); - $this->assertContainsOnly('string', $allowDuplicates); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php deleted file mode 100644 index 1f7a99ac..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php +++ /dev/null @@ -1,73 +0,0 @@ -generator = new Generator(); - $this->generator->addProvider(new Biased($this->generator)); - - $this->results = array_fill(1, self::MAX, 0); - } - - public function performFake($function) - { - for($i = 0; $i < self::NUMBERS; $i++) { - $this->results[$this->generator->biasedNumberBetween(1, self::MAX, $function)]++; - } - } - - public function testUnbiased() - { - $this->performFake(array('\Faker\Provider\Biased', 'unbiased')); - - // assert that all numbers are near the expected unbiased value - foreach ($this->results as $number => $amount) { - // integral - $assumed = (1 / self::MAX * $number) - (1 / self::MAX * ($number - 1)); - // calculate the fraction of the whole area - $assumed /= 1; - $this->assertGreaterThan(self::NUMBERS * $assumed * .95, $amount, "Value was more than 5 percent under the expected value"); - $this->assertLessThan(self::NUMBERS * $assumed * 1.05, $amount, "Value was more than 5 percent over the expected value"); - } - } - - public function testLinearHigh() - { - $this->performFake(array('\Faker\Provider\Biased', 'linearHigh')); - - foreach ($this->results as $number => $amount) { - // integral - $assumed = 0.5 * pow(1 / self::MAX * $number, 2) - 0.5 * pow(1 / self::MAX * ($number - 1), 2); - // calculate the fraction of the whole area - $assumed /= pow(1, 2) * .5; - $this->assertGreaterThan(self::NUMBERS * $assumed * .9, $amount, "Value was more than 10 percent under the expected value"); - $this->assertLessThan(self::NUMBERS * $assumed * 1.1, $amount, "Value was more than 10 percent over the expected value"); - } - } - - public function testLinearLow() - { - $this->performFake(array('\Faker\Provider\Biased', 'linearLow')); - - foreach ($this->results as $number => $amount) { - // integral - $assumed = -0.5 * pow(1 / self::MAX * $number, 2) - -0.5 * pow(1 / self::MAX * ($number - 1), 2); - // shift the graph up - $assumed += 1 / self::MAX; - // calculate the fraction of the whole area - $assumed /= pow(1, 2) * .5; - $this->assertGreaterThan(self::NUMBERS * $assumed * .9, $amount, "Value was more than 10 percent under the expected value"); - $this->assertLessThan(self::NUMBERS * $assumed * 1.1, $amount, "Value was more than 10 percent over the expected value"); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php deleted file mode 100644 index f73831b1..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php +++ /dev/null @@ -1,53 +0,0 @@ -assertRegExp('/^#[a-f0-9]{6}$/i', Color::hexColor()); - } - - public function testSafeHexColor() - { - $this->assertRegExp('/^#[a-f0-9]{6}$/i', Color::safeHexColor()); - } - - public function testRgbColorAsArray() - { - $this->assertEquals(3, count(Color::rgbColorAsArray())); - } - - public function testRgbColor() - { - $regexp = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])'; - $this->assertRegExp('/^' . $regexp . ',' . $regexp . ',' . $regexp . '$/i', Color::rgbColor()); - } - - public function testRgbCssColor() - { - $regexp = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])'; - $this->assertRegExp('/^rgb\(' . $regexp . ',' . $regexp . ',' . $regexp . '\)$/i', Color::rgbCssColor()); - } - - public function testRgbaCssColor() - { - $regexp = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])'; - $regexpAlpha = '([01]?(\.\d+)?)'; - $this->assertRegExp('/^rgba\(' . $regexp . ',' . $regexp . ',' . $regexp . ',' . $regexpAlpha . '\)$/i', Color::rgbaCssColor()); - } - - public function testSafeColorName() - { - $this->assertRegExp('/^[\w]+$/', Color::safeColorName()); - } - - public function testColorName() - { - $this->assertRegExp('/^[\w]+$/', Color::colorName()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/CompanyTest.php deleted file mode 100644 index ac26c5a0..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/CompanyTest.php +++ /dev/null @@ -1,30 +0,0 @@ -addProvider(new Company($faker)); - $faker->addProvider(new Lorem($faker)); - $this->faker = $faker; - } - - public function testJobTitle() - { - $jobTitle = $this->faker->jobTitle(); - $pattern = '/^[A-Za-z]+$/'; - $this->assertRegExp($pattern, $jobTitle); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php deleted file mode 100644 index 91b17f81..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php +++ /dev/null @@ -1,232 +0,0 @@ -originalTz = date_default_timezone_get(); - $this->defaultTz = 'UTC'; - date_default_timezone_set($this->defaultTz); - } - - public function tearDown() - { - date_default_timezone_set($this->originalTz); - } - - public function testUnixTime() - { - $timestamp = DateTimeProvider::unixTime(); - $this->assertInternalType('int', $timestamp); - $this->assertTrue($timestamp >= 0); - $this->assertTrue($timestamp <= time()); - } - - public function testDateTime() - { - $date = DateTimeProvider::dateTime(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('@0'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeWithTimezone() - { - $date = DateTimeProvider::dateTime('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testDateTimeAD() - { - $date = DateTimeProvider::dateTimeAD(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('0000-01-01 00:00:00'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisCentury() - { - $date = DateTimeProvider::dateTimeThisCentury(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('-100 year'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisDecade() - { - $date = DateTimeProvider::dateTimeThisDecade(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('-10 year'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisYear() - { - $date = DateTimeProvider::dateTimeThisYear(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('-1 year'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisMonth() - { - $date = DateTimeProvider::dateTimeThisMonth(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('-1 month'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisCenturyWithTimezone() - { - $date = DateTimeProvider::dateTimeThisCentury('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testDateTimeThisDecadeWithTimezone() - { - $date = DateTimeProvider::dateTimeThisDecade('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testDateTimeThisYearWithTimezone() - { - $date = DateTimeProvider::dateTimeThisYear('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testDateTimeThisMonthWithTimezone() - { - $date = DateTimeProvider::dateTimeThisMonth('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testIso8601() - { - $date = DateTimeProvider::iso8601(); - $this->assertRegExp('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-Z](\d{4})?$/', $date); - $this->assertGreaterThanOrEqual(new \DateTime('@0'), new \DateTime($date)); - $this->assertLessThanOrEqual(new \DateTime(), new \DateTime($date)); - } - - public function testDate() - { - $date = DateTimeProvider::date(); - $this->assertRegExp('/^\d{4}-\d{2}-\d{2}$/', $date); - $this->assertGreaterThanOrEqual(new \DateTime('@0'), new \DateTime($date)); - $this->assertLessThanOrEqual(new \DateTime(), new \DateTime($date)); - } - - public function testTime() - { - $date = DateTimeProvider::time(); - $this->assertRegExp('/^\d{2}:\d{2}:\d{2}$/', $date); - } - - /** - * - * @dataProvider providerDateTimeBetween - */ - public function testDateTimeBetween($start, $end) - { - $date = DateTimeProvider::dateTimeBetween($start, $end); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime($start), $date); - $this->assertLessThanOrEqual(new \DateTime($end), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function providerDateTimeBetween() - { - return array( - array('-1 year', false), - array('-1 year', null), - array('-1 day', '-1 hour'), - array('-1 day', 'now'), - ); - } - - /** - * - * @dataProvider providerDateTimeInInterval - */ - public function testDateTimeInInterval($start, $interval = "+5 days", $isInFuture) - { - $date = DateTimeProvider::dateTimeInInterval($start, $interval); - $this->assertInstanceOf('\DateTime', $date); - - $_interval = \DateInterval::createFromDateString($interval); - $_start = new \DateTime($start); - if ($isInFuture) { - $this->assertGreaterThanOrEqual($_start, $date); - $this->assertLessThanOrEqual($_start->add($_interval), $date); - } else { - $this->assertLessThanOrEqual($_start, $date); - $this->assertGreaterThanOrEqual($_start->add($_interval), $date); - } - } - - public function providerDateTimeInInterval() - { - return array( - array('-1 year', '+5 days', true), - array('-1 day', '-1 hour', false), - array('-1 day', '+1 hour', true), - ); - } - - public function testFixedSeedWithMaximumTimestamp() - { - $max = '2018-03-01 12:00:00'; - - mt_srand(1); - $unixTime = DateTimeProvider::unixTime($max); - $datetimeAD = DateTimeProvider::dateTimeAD($max); - $dateTime1 = DateTimeProvider::dateTime($max); - $dateTimeBetween = DateTimeProvider::dateTimeBetween('2014-03-01 06:00:00', $max); - $date = DateTimeProvider::date('Y-m-d', $max); - $time = DateTimeProvider::time('H:i:s', $max); - $iso8601 = DateTimeProvider::iso8601($max); - $dateTimeThisCentury = DateTimeProvider::dateTimeThisCentury($max); - $dateTimeThisDecade = DateTimeProvider::dateTimeThisDecade($max); - $dateTimeThisMonth = DateTimeProvider::dateTimeThisMonth($max); - $amPm = DateTimeProvider::amPm($max); - $dayOfMonth = DateTimeProvider::dayOfMonth($max); - $dayOfWeek = DateTimeProvider::dayOfWeek($max); - $month = DateTimeProvider::month($max); - $monthName = DateTimeProvider::monthName($max); - $year = DateTimeProvider::year($max); - $dateTimeThisYear = DateTimeProvider::dateTimeThisYear($max); - mt_srand(); - - //regenerate Random Date with same seed and same maximum end timestamp - mt_srand(1); - $this->assertEquals($unixTime, DateTimeProvider::unixTime($max)); - $this->assertEquals($datetimeAD, DateTimeProvider::dateTimeAD($max)); - $this->assertEquals($dateTime1, DateTimeProvider::dateTime($max)); - $this->assertEquals($dateTimeBetween, DateTimeProvider::dateTimeBetween('2014-03-01 06:00:00', $max)); - $this->assertEquals($date, DateTimeProvider::date('Y-m-d', $max)); - $this->assertEquals($time, DateTimeProvider::time('H:i:s', $max)); - $this->assertEquals($iso8601, DateTimeProvider::iso8601($max)); - $this->assertEquals($dateTimeThisCentury, DateTimeProvider::dateTimeThisCentury($max)); - $this->assertEquals($dateTimeThisDecade, DateTimeProvider::dateTimeThisDecade($max)); - $this->assertEquals($dateTimeThisMonth, DateTimeProvider::dateTimeThisMonth($max)); - $this->assertEquals($amPm, DateTimeProvider::amPm($max)); - $this->assertEquals($dayOfMonth, DateTimeProvider::dayOfMonth($max)); - $this->assertEquals($dayOfWeek, DateTimeProvider::dayOfWeek($max)); - $this->assertEquals($month, DateTimeProvider::month($max)); - $this->assertEquals($monthName, DateTimeProvider::monthName($max)); - $this->assertEquals($year, DateTimeProvider::year($max)); - $this->assertEquals($dateTimeThisYear, DateTimeProvider::dateTimeThisYear($max)); - mt_srand(); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/HtmlLoremTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/HtmlLoremTest.php deleted file mode 100644 index f40e0a28..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/HtmlLoremTest.php +++ /dev/null @@ -1,29 +0,0 @@ -addProvider(new HtmlLorem($faker)); - $node = $faker->randomHtml(6, 10); - $this->assertStringStartsWith("", $node); - $this->assertStringEndsWith("\n", $node); - } - - public function testRandomHtmlReturnsValidHTMLString(){ - $faker = new Generator(); - $faker->addProvider(new HtmlLorem($faker)); - $node = $faker->randomHtml(6, 10); - $dom = new \DOMDocument(); - $error = $dom->loadHTML($node); - $this->assertTrue($error); - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php deleted file mode 100644 index 12109d19..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php +++ /dev/null @@ -1,75 +0,0 @@ -assertRegExp('#^https://lorempixel.com/640/480/#', Image::imageUrl()); - } - - public function testImageUrlAcceptsCustomWidthAndHeight() - { - $this->assertRegExp('#^https://lorempixel.com/800/400/#', Image::imageUrl(800, 400)); - } - - public function testImageUrlAcceptsCustomCategory() - { - $this->assertRegExp('#^https://lorempixel.com/800/400/nature/#', Image::imageUrl(800, 400, 'nature')); - } - - public function testImageUrlAcceptsCustomText() - { - $this->assertRegExp('#^https://lorempixel.com/800/400/nature/Faker#', Image::imageUrl(800, 400, 'nature', false, 'Faker')); - } - - public function testImageUrlAddsARandomGetParameterByDefault() - { - $url = Image::imageUrl(800, 400); - $splitUrl = preg_split('/\?/', $url); - - $this->assertEquals(count($splitUrl), 2); - $this->assertRegexp('#\d{5}#', $splitUrl[1]); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testUrlWithDimensionsAndBadCategory() - { - Image::imageUrl(800, 400, 'bullhonky'); - } - - public function testDownloadWithDefaults() - { - $url = "http://www.lorempixel.com/"; - $curlPing = curl_init($url); - curl_setopt($curlPing, CURLOPT_TIMEOUT, 5); - curl_setopt($curlPing, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($curlPing, CURLOPT_RETURNTRANSFER, true); - $data = curl_exec($curlPing); - $httpCode = curl_getinfo($curlPing, CURLINFO_HTTP_CODE); - curl_close($curlPing); - - if ($httpCode < 200 | $httpCode > 300) { - $this->markTestSkipped("LoremPixel is offline, skipping image download"); - } - - $file = Image::image(sys_get_temp_dir()); - $this->assertFileExists($file); - if (function_exists('getimagesize')) { - list($width, $height, $type, $attr) = getimagesize($file); - $this->assertEquals(640, $width); - $this->assertEquals(480, $height); - $this->assertEquals(constant('IMAGETYPE_JPEG'), $type); - } else { - $this->assertEquals('jpg', pathinfo($file, PATHINFO_EXTENSION)); - } - if (file_exists($file)) { - unlink($file); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php deleted file mode 100644 index 11ad2c6e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php +++ /dev/null @@ -1,166 +0,0 @@ -addProvider(new Lorem($faker)); - $faker->addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function localeDataProvider() - { - $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider'); - $localePaths = array_filter(glob($providerPath . '/*', GLOB_ONLYDIR)); - foreach ($localePaths as $path) { - $parts = explode('/', $path); - $locales[] = array($parts[count($parts) - 1]); - } - - return $locales; - } - - /** - * @link http://stackoverflow.com/questions/12026842/how-to-validate-an-email-address-in-php - * - * @dataProvider localeDataProvider - */ - public function testEmailIsValid($locale) - { - if ($locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $this->loadLocalProviders($locale); - $pattern = '/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD'; - $emailAddress = $this->faker->email(); - $this->assertRegExp($pattern, $emailAddress); - } - - /** - * @dataProvider localeDataProvider - */ - public function testUsernameIsValid($locale) - { - if ($locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $this->loadLocalProviders($locale); - $pattern = '/^[A-Za-z0-9]+([._][A-Za-z0-9]+)*$/'; - $username = $this->faker->username(); - $this->assertRegExp($pattern, $username); - } - - /** - * @dataProvider localeDataProvider - */ - public function testDomainnameIsValid($locale) - { - if ($locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $this->loadLocalProviders($locale); - $pattern = '/^[a-z]+(\.[a-z]+)+$/'; - $domainName = $this->faker->domainName(); - $this->assertRegExp($pattern, $domainName); - } - - /** - * @dataProvider localeDataProvider - */ - public function testDomainwordIsValid($locale) - { - if ($locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $this->loadLocalProviders($locale); - $pattern = '/^[a-z]+$/'; - $domainWord = $this->faker->domainWord(); - $this->assertRegExp($pattern, $domainWord); - } - - public function loadLocalProviders($locale) - { - $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider'); - if (file_exists($providerPath.'/'.$locale.'/Internet.php')) { - $internet = "\\Faker\\Provider\\$locale\\Internet"; - $this->faker->addProvider(new $internet($this->faker)); - } - if (file_exists($providerPath.'/'.$locale.'/Person.php')) { - $person = "\\Faker\\Provider\\$locale\\Person"; - $this->faker->addProvider(new $person($this->faker)); - } - if (file_exists($providerPath.'/'.$locale.'/Company.php')) { - $company = "\\Faker\\Provider\\$locale\\Company"; - $this->faker->addProvider(new $company($this->faker)); - } - } - - public function testPasswordIsValid() - { - $this->assertRegexp('/^.{6}$/', $this->faker->password(6, 6)); - } - - public function testSlugIsValid() - { - $pattern = '/^[a-z0-9-]+$/'; - $slug = $this->faker->slug(); - $this->assertSame(preg_match($pattern, $slug), 1); - } - - public function testUrlIsValid() - { - $url = $this->faker->url(); - $this->assertNotFalse(filter_var($url, FILTER_VALIDATE_URL)); - } - - public function testLocalIpv4() - { - $this->assertNotFalse(filter_var(Internet::localIpv4(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)); - } - - public function testIpv4() - { - $this->assertNotFalse(filter_var($this->faker->ipv4(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)); - } - - public function testIpv4NotLocalNetwork() - { - $this->assertNotRegExp('/\A0\./', $this->faker->ipv4()); - } - - public function testIpv4NotBroadcast() - { - $this->assertNotEquals('255.255.255.255', $this->faker->ipv4()); - } - - public function testIpv6() - { - $this->assertNotFalse(filter_var($this->faker->ipv6(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)); - } - - public function testMacAddress() - { - $this->assertRegExp('/^([0-9A-F]{2}[:]){5}([0-9A-F]{2})$/i', Internet::macAddress()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php deleted file mode 100644 index 347b1351..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php +++ /dev/null @@ -1,26 +0,0 @@ -assertNotNull($faker->name(), 'Localized Name Provider ' . $matches[1] . ' does not throw errors'); - } - } - - public function testLocalizedAddressProvidersDoNotThrowErrors() - { - foreach (glob(__DIR__ . '/../../../src/Faker/Provider/*/Address.php') as $localizedAddress) { - preg_match('#/([a-zA-Z_]+)/Address\.php#', $localizedAddress, $matches); - $faker = Factory::create($matches[1]); - $this->assertNotNull($faker->address(), 'Localized Address Provider ' . $matches[1] . ' does not throw errors'); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php deleted file mode 100644 index 62785d43..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php +++ /dev/null @@ -1,108 +0,0 @@ -assertEquals('Word word word word.', TestableLorem::text(24)); - } - - public function testTextReturnsSentencesWhenAskedSizeLessThan100() - { - $this->assertEquals('This is a test sentence. This is a test sentence. This is a test sentence.', TestableLorem::text(99)); - } - - public function testTextReturnsParagraphsWhenAskedSizeGreaterOrEqualThanThan100() - { - $this->assertEquals('This is a test paragraph. It has three sentences. Exactly three.', TestableLorem::text(100)); - } - - public function testSentenceWithZeroNbWordsReturnsEmptyString() - { - $this->assertEquals('', Lorem::sentence(0)); - } - - public function testSentenceWithNegativeNbWordsReturnsEmptyString() - { - $this->assertEquals('', Lorem::sentence(-1)); - } - - public function testParagraphWithZeroNbSentencesReturnsEmptyString() - { - $this->assertEquals('', Lorem::paragraph(0)); - } - - public function testParagraphWithNegativeNbSentencesReturnsEmptyString() - { - $this->assertEquals('', Lorem::paragraph(-1)); - } - - public function testSentenceWithPositiveNbWordsReturnsAtLeastOneWord() - { - $sentence = Lorem::sentence(1); - - $this->assertGreaterThan(1, strlen($sentence)); - $this->assertGreaterThanOrEqual(1, count(explode(' ', $sentence))); - } - - public function testParagraphWithPositiveNbSentencesReturnsAtLeastOneWord() - { - $paragraph = Lorem::paragraph(1); - - $this->assertGreaterThan(1, strlen($paragraph)); - $this->assertGreaterThanOrEqual(1, count(explode(' ', $paragraph))); - } - - public function testWordssAsText() - { - $words = TestableLorem::words(2, true); - - $this->assertEquals('word word', $words); - } - - public function testSentencesAsText() - { - $sentences = TestableLorem::sentences(2, true); - - $this->assertEquals('This is a test sentence. This is a test sentence.', $sentences); - } - - public function testParagraphsAsText() - { - $paragraphs = TestableLorem::paragraphs(2, true); - - $expected = "This is a test paragraph. It has three sentences. Exactly three.\n\nThis is a test paragraph. It has three sentences. Exactly three."; - $this->assertEquals($expected, $paragraphs); - } -} - -class TestableLorem extends Lorem -{ - - public static function word() - { - return 'word'; - } - - public static function sentence($nbWords = 5, $variableNbWords = true) - { - return 'This is a test sentence.'; - } - - public static function paragraph($nbSentences = 3, $variableNbSentences = true) - { - return 'This is a test paragraph. It has three sentences. Exactly three.'; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php deleted file mode 100644 index 8e39eb2c..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php +++ /dev/null @@ -1,58 +0,0 @@ -assertContains(Miscellaneous::boolean(), array(true, false)); - } - - public function testMd5() - { - $this->assertRegExp('/^[a-z0-9]{32}$/', Miscellaneous::md5()); - } - - public function testSha1() - { - $this->assertRegExp('/^[a-z0-9]{40}$/', Miscellaneous::sha1()); - } - - public function testSha256() - { - $this->assertRegExp('/^[a-z0-9]{64}$/', Miscellaneous::sha256()); - } - - public function testLocale() - { - $this->assertRegExp('/^[a-z]{2,3}_[A-Z]{2}$/', Miscellaneous::locale()); - } - - public function testCountryCode() - { - $this->assertRegExp('/^[A-Z]{2}$/', Miscellaneous::countryCode()); - } - - public function testCountryISOAlpha3() - { - $this->assertRegExp('/^[A-Z]{3}$/', Miscellaneous::countryISOAlpha3()); - } - - public function testLanguage() - { - $this->assertRegExp('/^[a-z]{2}$/', Miscellaneous::languageCode()); - } - - public function testCurrencyCode() - { - $this->assertRegExp('/^[A-Z]{3}$/', Miscellaneous::currencyCode()); - } - - public function testEmoji() - { - $this->assertRegExp('/^[\x{1F600}-\x{1F637}]$/u', Miscellaneous::emoji()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php deleted file mode 100644 index 773b7227..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php +++ /dev/null @@ -1,207 +0,0 @@ -addProvider(new BaseProvider($faker)); - $faker->addProvider(new DateTimeProvider($faker)); - $faker->addProvider(new PersonProvider($faker)); - $faker->addProvider(new PaymentProvider($faker)); - $this->faker = $faker; - } - - public function localeDataProvider() - { - $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider'); - $localePaths = array_filter(glob($providerPath . '/*', GLOB_ONLYDIR)); - foreach ($localePaths as $path) { - $parts = explode('/', $path); - $locales[] = array($parts[count($parts) - 1]); - } - - return $locales; - } - - public function loadLocalProviders($locale) - { - $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider'); - if (file_exists($providerPath.'/'.$locale.'/Payment.php')) { - $payment = "\\Faker\\Provider\\$locale\\Payment"; - $this->faker->addProvider(new $payment($this->faker)); - } - } - - public function testCreditCardTypeReturnsValidVendorName() - { - $this->assertTrue(in_array($this->faker->creditCardType, array('Visa', 'MasterCard', 'American Express', 'Discover Card'))); - } - - public function creditCardNumberProvider() - { - return array( - array('Discover Card', '/^6011\d{12}$/'), - array('Visa', '/^4\d{12,15}$/'), - array('MasterCard', '/^(5[1-5]|2[2-7])\d{14}$/') - ); - } - - /** - * @dataProvider creditCardNumberProvider - */ - public function testCreditCardNumberReturnsValidCreditCardNumber($type, $regexp) - { - $cardNumber = $this->faker->creditCardNumber($type); - $this->assertRegExp($regexp, $cardNumber); - $this->assertTrue(Luhn::isValid($cardNumber)); - } - - public function testCreditCardNumberCanFormatOutput() - { - $this->assertRegExp('/^6011-\d{4}-\d{4}-\d{4}$/', $this->faker->creditCardNumber('Discover Card', true)); - } - - public function testCreditCardExpirationDateReturnsValidDateByDefault() - { - $expirationDate = $this->faker->creditCardExpirationDate; - $this->assertTrue(intval($expirationDate->format('U')) > strtotime('now')); - $this->assertTrue(intval($expirationDate->format('U')) < strtotime('+36 months')); - } - - public function testRandomCard() - { - $cardDetails = $this->faker->creditCardDetails; - $this->assertEquals(count($cardDetails), 4); - $this->assertEquals(array('type', 'number', 'name', 'expirationDate'), array_keys($cardDetails)); - } - - protected $ibanFormats = array( - 'AD' => '/^AD\d{2}\d{4}\d{4}[A-Z0-9]{12}$/', - 'AE' => '/^AE\d{2}\d{3}\d{16}$/', - 'AL' => '/^AL\d{2}\d{8}[A-Z0-9]{16}$/', - 'AT' => '/^AT\d{2}\d{5}\d{11}$/', - 'AZ' => '/^AZ\d{2}[A-Z]{4}[A-Z0-9]{20}$/', - 'BA' => '/^BA\d{2}\d{3}\d{3}\d{8}\d{2}$/', - 'BE' => '/^BE\d{2}\d{3}\d{7}\d{2}$/', - 'BG' => '/^BG\d{2}[A-Z]{4}\d{4}\d{2}[A-Z0-9]{8}$/', - 'BH' => '/^BH\d{2}[A-Z]{4}[A-Z0-9]{14}$/', - 'BR' => '/^BR\d{2}\d{8}\d{5}\d{10}[A-Z]{1}[A-Z0-9]{1}$/', - 'CH' => '/^CH\d{2}\d{5}[A-Z0-9]{12}$/', - 'CR' => '/^CR\d{2}\d{3}\d{14}$/', - 'CY' => '/^CY\d{2}\d{3}\d{5}[A-Z0-9]{16}$/', - 'CZ' => '/^CZ\d{2}\d{4}\d{6}\d{10}$/', - 'DE' => '/^DE\d{2}\d{8}\d{10}$/', - 'DK' => '/^DK\d{2}\d{4}\d{9}\d{1}$/', - 'DO' => '/^DO\d{2}[A-Z0-9]{4}\d{20}$/', - 'EE' => '/^EE\d{2}\d{2}\d{2}\d{11}\d{1}$/', - 'ES' => '/^ES\d{2}\d{4}\d{4}\d{1}\d{1}\d{10}$/', - 'FI' => '/^FI\d{2}\d{6}\d{7}\d{1}$/', - 'FR' => '/^FR\d{2}\d{5}\d{5}[A-Z0-9]{11}\d{2}$/', - 'GB' => '/^GB\d{2}[A-Z]{4}\d{6}\d{8}$/', - 'GE' => '/^GE\d{2}[A-Z]{2}\d{16}$/', - 'GI' => '/^GI\d{2}[A-Z]{4}[A-Z0-9]{15}$/', - 'GR' => '/^GR\d{2}\d{3}\d{4}[A-Z0-9]{16}$/', - 'GT' => '/^GT\d{2}[A-Z0-9]{4}[A-Z0-9]{20}$/', - 'HR' => '/^HR\d{2}\d{7}\d{10}$/', - 'HU' => '/^HU\d{2}\d{3}\d{4}\d{1}\d{15}\d{1}$/', - 'IE' => '/^IE\d{2}[A-Z]{4}\d{6}\d{8}$/', - 'IL' => '/^IL\d{2}\d{3}\d{3}\d{13}$/', - 'IS' => '/^IS\d{2}\d{4}\d{2}\d{6}\d{10}$/', - 'IT' => '/^IT\d{2}[A-Z]{1}\d{5}\d{5}[A-Z0-9]{12}$/', - 'KW' => '/^KW\d{2}[A-Z]{4}\d{22}$/', - 'KZ' => '/^KZ\d{2}\d{3}[A-Z0-9]{13}$/', - 'LB' => '/^LB\d{2}\d{4}[A-Z0-9]{20}$/', - 'LI' => '/^LI\d{2}\d{5}[A-Z0-9]{12}$/', - 'LT' => '/^LT\d{2}\d{5}\d{11}$/', - 'LU' => '/^LU\d{2}\d{3}[A-Z0-9]{13}$/', - 'LV' => '/^LV\d{2}[A-Z]{4}[A-Z0-9]{13}$/', - 'MC' => '/^MC\d{2}\d{5}\d{5}[A-Z0-9]{11}\d{2}$/', - 'MD' => '/^MD\d{2}[A-Z0-9]{2}[A-Z0-9]{18}$/', - 'ME' => '/^ME\d{2}\d{3}\d{13}\d{2}$/', - 'MK' => '/^MK\d{2}\d{3}[A-Z0-9]{10}\d{2}$/', - 'MR' => '/^MR\d{2}\d{5}\d{5}\d{11}\d{2}$/', - 'MT' => '/^MT\d{2}[A-Z]{4}\d{5}[A-Z0-9]{18}$/', - 'MU' => '/^MU\d{2}[A-Z]{4}\d{2}\d{2}\d{12}\d{3}[A-Z]{3}$/', - 'NL' => '/^NL\d{2}[A-Z]{4}\d{10}$/', - 'NO' => '/^NO\d{2}\d{4}\d{6}\d{1}$/', - 'PK' => '/^PK\d{2}[A-Z]{4}[A-Z0-9]{16}$/', - 'PL' => '/^PL\d{2}\d{8}\d{16}$/', - 'PS' => '/^PS\d{2}[A-Z]{4}[A-Z0-9]{21}$/', - 'PT' => '/^PT\d{2}\d{4}\d{4}\d{11}\d{2}$/', - 'RO' => '/^RO\d{2}[A-Z]{4}[A-Z0-9]{16}$/', - 'RS' => '/^RS\d{2}\d{3}\d{13}\d{2}$/', - 'SA' => '/^SA\d{2}\d{2}[A-Z0-9]{18}$/', - 'SE' => '/^SE\d{2}\d{3}\d{16}\d{1}$/', - 'SI' => '/^SI\d{2}\d{5}\d{8}\d{2}$/', - 'SK' => '/^SK\d{2}\d{4}\d{6}\d{10}$/', - 'SM' => '/^SM\d{2}[A-Z]{1}\d{5}\d{5}[A-Z0-9]{12}$/', - 'TN' => '/^TN\d{2}\d{2}\d{3}\d{13}\d{2}$/', - 'TR' => '/^TR\d{2}\d{5}\d{1}[A-Z0-9]{16}$/', - 'VG' => '/^VG\d{2}[A-Z]{4}\d{16}$/', - ); - - /** - * @dataProvider localeDataProvider - */ - public function testBankAccountNumber($locale) - { - $parts = explode('_', $locale); - $countryCode = array_pop($parts); - - if (!isset($this->ibanFormats[$countryCode])) { - // No IBAN format available - return; - } - - $this->loadLocalProviders($locale); - - try { - $iban = $this->faker->bankAccountNumber; - } catch (\InvalidArgumentException $e) { - // Not implemented, nothing to test - $this->markTestSkipped("bankAccountNumber not implemented for $locale"); - return; - } - - // Test format - $this->assertRegExp($this->ibanFormats[$countryCode], $iban); - - // Test checksum - $this->assertTrue(Iban::isValid($iban), "Checksum for $iban is invalid"); - } - - public function ibanFormatProvider() - { - $return = array(); - foreach ($this->ibanFormats as $countryCode => $regex) { - $return[] = array($countryCode, $regex); - } - return $return; - } - /** - * @dataProvider ibanFormatProvider - */ - public function testIban($countryCode, $regex) - { - $iban = $this->faker->iban($countryCode); - - // Test format - $this->assertRegExp($regex, $iban); - - // Test checksum - $this->assertTrue(Iban::isValid($iban), "Checksum for $iban is invalid"); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php deleted file mode 100644 index a8d1c0f2..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php +++ /dev/null @@ -1,86 +0,0 @@ -addProvider(new Person($faker)); - $this->assertContains($faker->firstName($gender), $expected); - } - - public function firstNameProvider() - { - return array( - array(null, array('John', 'Jane')), - array('foobar', array('John', 'Jane')), - array('male', array('John')), - array('female', array('Jane')), - ); - } - - public function testFirstNameMale() - { - $this->assertContains(Person::firstNameMale(), array('John')); - } - - public function testFirstNameFemale() - { - $this->assertContains(Person::firstNameFemale(), array('Jane')); - } - - /** - * @dataProvider titleProvider - */ - public function testTitle($gender, $expected) - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $this->assertContains($faker->title($gender), $expected); - } - - public function titleProvider() - { - return array( - array(null, array('Mr.', 'Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')), - array('foobar', array('Mr.', 'Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')), - array('male', array('Mr.', 'Dr.', 'Prof.')), - array('female', array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')), - ); - } - - public function testTitleMale() - { - $this->assertContains(Person::titleMale(), array('Mr.', 'Dr.', 'Prof.')); - } - - public function testTitleFemale() - { - $this->assertContains(Person::titleFemale(), array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')); - } - - public function testLastNameReturnsDoe() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $this->assertEquals($faker->lastName(), 'Doe'); - } - - public function testNameReturnsFirstNameAndLastName() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $this->assertContains($faker->name(), array('John Doe', 'Jane Doe')); - $this->assertContains($faker->name('foobar'), array('John Doe', 'Jane Doe')); - $this->assertContains($faker->name('male'), array('John Doe')); - $this->assertContains($faker->name('female'), array('Jane Doe')); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/PhoneNumberTest.php deleted file mode 100644 index f73bda88..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/PhoneNumberTest.php +++ /dev/null @@ -1,35 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberFormat() - { - $number = $this->faker->e164PhoneNumber(); - $this->assertRegExp('/^\+[0-9]{11,}$/', $number); - } - - public function testImeiReturnsValidNumber() - { - $imei = $this->faker->imei(); - $this->assertTrue(Luhn::isValid($imei)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php deleted file mode 100644 index 7fa046ba..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php +++ /dev/null @@ -1,193 +0,0 @@ - - */ - -namespace Faker\Test\Provider; - -use Faker; - -/** - * Class ProviderOverrideTest - * - * @package Faker\Test\Provider - * - * This class tests a large portion of all locale specific providers. It does not test the entire stack, because each - * locale specific provider (can) has specific implementations. The goal of this test is to test the common denominator - * and to try to catch possible invalid multi-byte sequences. - */ -class ProviderOverrideTest extends \PHPUnit_Framework_TestCase -{ - /** - * Constants with regular expression patterns for testing the output. - * - * Regular expressions are sensitive for malformed strings (e.g.: strings with incorrect encodings) so by using - * PCRE for the tests, even though they seem fairly pointless, we test for incorrect encodings also. - */ - const TEST_STRING_REGEX = '/.+/u'; - - /** - * Slightly more specific for e-mail, the point isn't to properly validate e-mails. - */ - const TEST_EMAIL_REGEX = '/^(.+)@(.+)$/ui'; - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testAddress($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->city); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->postcode); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->address); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->country); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testCompany($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->company); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testDateTime($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->century); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->timezone); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testInternet($locale = null) - { - if ($locale && $locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->userName); - - $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->email); - $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->safeEmail); - $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->freeEmail); - $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->companyEmail); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testPerson($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->name); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->title); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->firstName); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->lastName); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testPhoneNumber($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->phoneNumber); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testUserAgent($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->userAgent); - } - - - /** - * @dataProvider localeDataProvider - * - * @param null $locale - * @param string $locale - */ - public function testUuid($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->uuid); - } - - - /** - * @return array - */ - public function localeDataProvider() - { - $locales = $this->getAllLocales(); - $data = array(); - - foreach ($locales as $locale) { - $data[] = array( - $locale - ); - } - - return $data; - } - - - /** - * Returns all locales as array values - * - * @return array - */ - private function getAllLocales() - { - static $locales = array(); - - if ( ! empty($locales)) { - return $locales; - } - - // Finding all PHP files in the xx_XX directories - $providerDir = __DIR__ .'/../../../src/Faker/Provider'; - foreach (glob($providerDir .'/*_*/*.php') as $file) { - $localisation = basename(dirname($file)); - - if (isset($locales[ $localisation ])) { - continue; - } - - $locales[ $localisation ] = $localisation; - } - - return $locales; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php deleted file mode 100644 index 3baf49f3..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php +++ /dev/null @@ -1,54 +0,0 @@ -addProvider(new Text($generator)); - $generator->seed(0); - - $lengths = array(10, 20, 50, 70, 90, 120, 150, 200, 500); - - foreach ($lengths as $length) { - $this->assertLessThan($length, $generator->realText($length)); - } - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testTextMaxIndex() - { - $generator = new Generator(); - $generator->addProvider(new Text($generator)); - $generator->seed(0); - $generator->realText(200, 11); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testTextMinIndex() - { - $generator = new Generator(); - $generator->addProvider(new Text($generator)); - $generator->seed(0); - $generator->realText(200, 0); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testTextMinLength() - { - $generator = new Generator(); - $generator->addProvider(new Text($generator)); - $generator->seed(0); - $generator->realText(9); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php deleted file mode 100644 index b45b9f86..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php +++ /dev/null @@ -1,38 +0,0 @@ -assertNotNull(UserAgent::userAgent()); - } - - public function testFirefoxUserAgent() - { - $this->stringContains(' Firefox/', UserAgent::firefox()); - } - - public function testSafariUserAgent() - { - $this->stringContains('Safari/', UserAgent::safari()); - } - - public function testInternetExplorerUserAgent() - { - $this->assertStringStartsWith('Mozilla/5.0 (compatible; MSIE ', UserAgent::internetExplorer()); - } - - public function testOperaUserAgent() - { - $this->assertStringStartsWith('Opera/', UserAgent::opera()); - } - - public function testChromeUserAgent() - { - $this->stringContains('(KHTML, like Gecko) Chrome/', UserAgent::chrome()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php deleted file mode 100644 index 22f9efb7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php +++ /dev/null @@ -1,28 +0,0 @@ -assertTrue($this->isUuid($uuid)); - } - - public function testUuidExpectedSeed() - { - $faker = new Generator(); - $faker->seed(123); - $this->assertEquals("8e2e0c84-50dd-367c-9e66-f3ab455c78d6", BaseProvider::uuid()); - $this->assertEquals("073eb60a-902c-30ab-93d0-a94db371f6c8", BaseProvider::uuid()); - } - - protected function isUuid($uuid) - { - return is_string($uuid) && (bool) preg_match('/^[a-f0-9]{8,8}-(?:[a-f0-9]{4,4}-){3,3}[a-f0-9]{12,12}$/i', $uuid); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ar_JO/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ar_JO/InternetTest.php deleted file mode 100644 index d323f1e7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ar_JO/InternetTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ar_SA/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ar_SA/InternetTest.php deleted file mode 100644 index 3765a107..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ar_SA/InternetTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php deleted file mode 100644 index afc8c27b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php +++ /dev/null @@ -1,30 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVatIsValid() - { - $vat = $this->faker->vat(); - $unspacedVat = $this->faker->vat(false); - $this->assertRegExp('/^(AT U\d{8})$/', $vat); - $this->assertRegExp('/^(ATU\d{8})$/', $unspacedVat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php deleted file mode 100644 index 31c6325c..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php +++ /dev/null @@ -1,30 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVatIsValid() - { - $vat = $this->faker->vat(); - $unspacedVat = $this->faker->vat(false); - $this->assertRegExp('/^(BG \d{9,10})$/', $vat); - $this->assertRegExp('/^(BG\d{9,10})$/', $unspacedVat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/bn_BD/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/bn_BD/PersonTest.php deleted file mode 100644 index 606599ff..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/bn_BD/PersonTest.php +++ /dev/null @@ -1,29 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testIfFirstNameMaleCanReturnData() - { - $firstNameMale = $this->faker->firstNameMale(); - $this->assertNotEmpty($firstNameMale); - } - - public function testIfFirstNameFemaleCanReturnData() - { - $firstNameFemale = $this->faker->firstNameFemale(); - $this->assertNotEmpty($firstNameFemale); - } -} -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/cs_CZ/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/cs_CZ/PersonTest.php deleted file mode 100644 index 40023cfe..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/cs_CZ/PersonTest.php +++ /dev/null @@ -1,46 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Miscellaneous($faker)); - - for ($i = 0; $i < 1000; $i++) { - $birthNumber = $faker->birthNumber(); - $birthNumber = str_replace('/', '', $birthNumber); - - // check date - $year = intval(substr($birthNumber, 0, 2), 10); - $month = intval(substr($birthNumber, 2, 2), 10); - $day = intval(substr($birthNumber, 4, 2), 10); - - // make 4 digit year from 2 digit representation - $year += $year < 54 ? 2000 : 1900; - - // adjust special cases for month - if ($month > 50) $month -= 50; - if ($year >= 2004 && $month > 20) $month -= 20; - - $this->assertTrue(checkdate($month, $day, $year), "Birth number $birthNumber: date $year/$month/$day is invalid."); - - // check CRC if presented - if (strlen($birthNumber) == 10) { - $crc = intval(substr($birthNumber, -1), 10); - $refCrc = intval(substr($birthNumber, 0, -1), 10) % 11; - if ($refCrc == 10) { - $refCrc = 0; - } - $this->assertEquals($crc, $refCrc, "Birth number $birthNumber: checksum $crc doesn't match expected $refCrc."); - } - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/da_DK/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/da_DK/InternetTest.php deleted file mode 100644 index ddbdd7af..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/da_DK/InternetTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php deleted file mode 100644 index 91ce5ca5..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php deleted file mode 100644 index 2d61ad5e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php +++ /dev/null @@ -1,28 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberFormat() - { - $number = $this->faker->phoneNumber; - $this->assertRegExp('/^06\d{2} \d{7}|\+43 \d{4} \d{4}(-\d{2})?$/', $number); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/AddressTest.php deleted file mode 100644 index 2f2de276..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/AddressTest.php +++ /dev/null @@ -1,69 +0,0 @@ -addProvider(new Address($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function canton () - { - $canton = $this->faker->canton(); - $this->assertInternalType('array', $canton); - $this->assertCount(1, $canton); - - foreach ($canton as $cantonShort => $cantonName){ - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - } - - /** - * @test - */ - public function cantonName () - { - $cantonName = $this->faker->cantonName(); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - - /** - * @test - */ - public function cantonShort () - { - $cantonShort = $this->faker->cantonShort(); - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - } - - /** - * @test - */ - public function address (){ - $address = $this->faker->address(); - $this->assertInternalType('string', $address); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/InternetTest.php deleted file mode 100644 index 907af210..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/InternetTest.php +++ /dev/null @@ -1,35 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function emailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/PhoneNumberTest.php deleted file mode 100644 index 0c5f9379..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/PhoneNumberTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - $this->assertRegExp('/^0\d{2} ?\d{3} ?\d{2} ?\d{2}|\+41 ?(\(0\))?\d{2} ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->phoneNumber()); - } - - public function testMobileNumber() - { - $this->assertRegExp('/^07[56789] ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->mobileNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_DE/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_DE/InternetTest.php deleted file mode 100644 index 8d39ff08..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_DE/InternetTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_AU/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_AU/AddressTest.php deleted file mode 100644 index ef8e9f2e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_AU/AddressTest.php +++ /dev/null @@ -1,48 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testCityPrefix() - { - $cityPrefix = $this->faker->cityPrefix(); - $this->assertNotEmpty($cityPrefix); - $this->assertInternalType('string', $cityPrefix); - $this->assertRegExp('/[A-Z][a-z]+/', $cityPrefix); - } - - public function testStreetSuffix() - { - $streetSuffix = $this->faker->streetSuffix(); - $this->assertNotEmpty($streetSuffix); - $this->assertInternalType('string', $streetSuffix); - $this->assertRegExp('/[A-Z][a-z]+/', $streetSuffix); - } - - public function testState() - { - $state = $this->faker->state(); - $this->assertNotEmpty($state); - $this->assertInternalType('string', $state); - $this->assertRegExp('/[A-Z][a-z]+/', $state); - } -} - -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_CA/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_CA/AddressTest.php deleted file mode 100644 index fb17c09f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_CA/AddressTest.php +++ /dev/null @@ -1,68 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * Test the validity of province - */ - public function testProvince() - { - $province = $this->faker->province(); - $this->assertNotEmpty($province); - $this->assertInternalType('string', $province); - $this->assertRegExp('/[A-Z][a-z]+/', $province); - } - - /** - * Test the validity of province abbreviation - */ - public function testProvinceAbbr() - { - $provinceAbbr = $this->faker->provinceAbbr(); - $this->assertNotEmpty($provinceAbbr); - $this->assertInternalType('string', $provinceAbbr); - $this->assertRegExp('/^[A-Z]{2}$/', $provinceAbbr); - } - - /** - * Test the validity of postcode letter - */ - public function testPostcodeLetter() - { - $postcodeLetter = $this->faker->randomPostcodeLetter(); - $this->assertNotEmpty($postcodeLetter); - $this->assertInternalType('string', $postcodeLetter); - $this->assertRegExp('/^[A-Z]{1}$/', $postcodeLetter); - } - - /** - * Test the validity of Canadian postcode - */ - public function testPostcode() - { - $postcode = $this->faker->postcode(); - $this->assertNotEmpty($postcode); - $this->assertInternalType('string', $postcode); - $this->assertRegExp('/^[A-Za-z]\d[A-Za-z][ -]?\d[A-Za-z]\d$/', $postcode); - } -} - -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_GB/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_GB/AddressTest.php deleted file mode 100644 index 0bad562e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_GB/AddressTest.php +++ /dev/null @@ -1,35 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * - */ - public function testPostcode() - { - - $postcode = $this->faker->postcode(); - $this->assertNotEmpty($postcode); - $this->assertInternalType('string', $postcode); - $this->assertRegExp('@^(GIR ?0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]([0-9ABEHMNPRV-Y])?)|[0-9][A-HJKPS-UW]) ?[0-9][ABD-HJLNP-UW-Z]{2})$@i', $postcode); - - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_IN/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_IN/AddressTest.php deleted file mode 100644 index a5e965b2..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_IN/AddressTest.php +++ /dev/null @@ -1,56 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testCity() - { - $city = $this->faker->city(); - $this->assertNotEmpty($city); - $this->assertInternalType('string', $city); - $this->assertRegExp('/[A-Z][a-z]+/', $city); - } - - public function testCountry() - { - $country = $this->faker->country(); - $this->assertNotEmpty($country); - $this->assertInternalType('string', $country); - $this->assertRegExp('/[A-Z][a-z]+/', $country); - } - - public function testLocalityName() - { - $localityName = $this->faker->localityName(); - $this->assertNotEmpty($localityName); - $this->assertInternalType('string', $localityName); - $this->assertRegExp('/[A-Z][a-z]+/', $localityName); - } - - public function testAreaSuffix() - { - $areaSuffix = $this->faker->areaSuffix(); - $this->assertNotEmpty($areaSuffix); - $this->assertInternalType('string', $areaSuffix); - $this->assertRegExp('/[A-Z][a-z]+/', $areaSuffix); - } -} - -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/AddressTest.php deleted file mode 100644 index 912de541..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/AddressTest.php +++ /dev/null @@ -1,56 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * - */ - public function testPostcodeIsNotEmptyAndIsValid() - { - $postcode = $this->faker->postcode(); - - $this->assertNotEmpty($postcode); - $this->assertInternalType('string', $postcode); - } - - /** - * Test the name of the Nigerian State/County - */ - public function testCountyIsAValidString() - { - $county = $this->faker->county; - - $this->assertNotEmpty($county); - $this->assertInternalType('string', $county); - } - - /** - * Test the name of the Nigerian Region in a State. - */ - public function testRegionIsAValidString() - { - $region = $this->faker->region; - - $this->assertNotEmpty($region); - $this->assertInternalType('string', $region); - } - -} \ No newline at end of file diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/InternetTest.php deleted file mode 100644 index fd1a0e76..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/InternetTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - $this->assertNotEmpty($email); - $this->assertInternalType('string', $email); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PersonTest.php deleted file mode 100644 index 50760a43..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PersonTest.php +++ /dev/null @@ -1,29 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testPersonNameIsAValidString() - { - $name = $this->faker->name; - - $this->assertNotEmpty($name); - $this->assertInternalType('string', $name); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PhoneNumberTest.php deleted file mode 100644 index a8997e6c..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PhoneNumberTest.php +++ /dev/null @@ -1,25 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberReturnsPhoneNumberWithOrWithoutCountryCode() - { - $phoneNumber = $this->faker->phoneNumber(); - - $this->assertNotEmpty($phoneNumber); - $this->assertInternalType('string', $phoneNumber); - $this->assertRegExp('/^(0|(\+234))\s?[789][01]\d\s?(\d{3}\s?\d{4})/', $phoneNumber); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NZ/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NZ/PhoneNumberTest.php deleted file mode 100644 index f8a8f6cf..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NZ/PhoneNumberTest.php +++ /dev/null @@ -1,35 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testIfPhoneNumberCanReturnData() - { - $number = $this->faker->phoneNumber; - $this->assertNotEmpty($number); - } - - public function phoneNumberFormat() - { - $number = $this->faker->phoneNumber; - $this->assertRegExp('/(^\([0]\d{1}\))(\d{7}$)|(^\([0][2]\d{1}\))(\d{6,8}$)|([0][8][0][0])([\s])(\d{5,8}$)/', $number); - } -} -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_PH/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_PH/AddressTest.php deleted file mode 100644 index d3b4682b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_PH/AddressTest.php +++ /dev/null @@ -1,49 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testProvince() - { - $province = $this->faker->province(); - $this->assertNotEmpty($province); - $this->assertInternalType('string', $province); - } - - public function testCity() - { - $city = $this->faker->city(); - $this->assertNotEmpty($city); - $this->assertInternalType('string', $city); - } - - public function testMunicipality() - { - $municipality = $this->faker->municipality(); - $this->assertNotEmpty($municipality); - $this->assertInternalType('string', $municipality); - } - - public function testBarangay() - { - $barangay = $this->faker->barangay(); - $this->assertInternalType('string', $barangay); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/AddressTest.php deleted file mode 100644 index a62e1c6d..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/AddressTest.php +++ /dev/null @@ -1,26 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testStreetNumber() - { - $this->assertRegExp('/^\d{2,3}$/', $this->faker->streetNumber()); - } - - public function testBlockNumber() - { - $this->assertRegExp('/^Blk\s*\d{2,3}[A-H]*$/i', $this->faker->blockNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/PhoneNumberTest.php deleted file mode 100644 index 9b72d14a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/PhoneNumberTest.php +++ /dev/null @@ -1,45 +0,0 @@ -faker = Factory::create('en_SG'); - $this->faker->seed(1); - $this->faker->addProvider(new PhoneNumber($this->faker)); - } - - // http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore#Numbering_plan - // y means 0 to 8 only - // x means 0 to 9 - public function testMobilePhoneNumberStartWith9Returns9yxxxxxx() - { - $startsWith9 = false; - while (!$startsWith9) { - $mobileNumber = $this->faker->mobileNumber(); - $startsWith9 = preg_match('/^(\+65|65)?\s*9/', $mobileNumber); - } - - $this->assertRegExp('/^(\+65|65)?\s*9\s*[0-8]{3}\s*\d{4}$/', $mobileNumber); - } - - // http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore#Numbering_plan - // z means 1 to 9 only - // x means 0 to 9 - public function testMobilePhoneNumberStartWith7Or8Returns7Or8zxxxxxx() - { - $startsWith7Or8 = false; - while (!$startsWith7Or8) { - $mobileNumber = $this->faker->mobileNumber(); - $startsWith7Or8 = preg_match('/^(\+65|65)?\s*[7-8]/', $mobileNumber); - } - $this->assertRegExp('/^(\+65|65)?\s*[7-8]\s*[1-9]{3}\s*\d{4}$/', $mobileNumber); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_UG/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_UG/AddressTest.php deleted file mode 100644 index 484b125b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_UG/AddressTest.php +++ /dev/null @@ -1,52 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function testCityName() - { - $city = $this->faker->cityName(); - $this->assertNotEmpty($city); - $this->assertInternalType('string', $city); - } - - /** - * @test - */ - public function testDistrict() - { - $district = $this->faker->district(); - $this->assertNotEmpty($district); - $this->assertInternalType('string', $district); - } - - /** - * @test - */ - public function testRegion() - { - $region = $this->faker->region(); - $this->assertNotEmpty($region); - $this->assertInternaltype('string', $region); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PaymentTest.php deleted file mode 100644 index d17593fe..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PaymentTest.php +++ /dev/null @@ -1,84 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testBankAccountNumber() - { - $accNo = $this->faker->bankAccountNumber; - $this->assertTrue(ctype_digit($accNo)); - $this->assertLessThanOrEqual(17, strlen($accNo)); - } - - public function testBankRoutingNumber() - { - $routingNo = $this->faker->bankRoutingNumber; - $this->assertRegExp('/^\d{9}$/', $routingNo); - $this->assertEquals(Payment::calculateRoutingNumberChecksum($routingNo), $routingNo[8]); - } - - public function routingNumberProvider() - { - return array( - array('122105155'), - array('082000549'), - array('121122676'), - array('122235821'), - array('102101645'), - array('102000021'), - array('123103729'), - array('071904779'), - array('081202759'), - array('074900783'), - array('104000029'), - array('073000545'), - array('101000187'), - array('042100175'), - array('083900363'), - array('091215927'), - array('091300023'), - array('091000022'), - array('081000210'), - array('101200453'), - array('092900383'), - array('104000029'), - array('121201694'), - array('107002312'), - array('091300023'), - array('041202582'), - array('042000013'), - array('123000220'), - array('091408501'), - array('064000059'), - array('124302150'), - array('125000105'), - array('075000022'), - array('307070115'), - array('091000022'), - ); - } - - /** - * @dataProvider routingNumberProvider - */ - public function testCalculateRoutingNumberChecksum($routingNo) - { - $this->assertEquals($routingNo[8], Payment::calculateRoutingNumberChecksum($routingNo), $routingNo); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PersonTest.php deleted file mode 100644 index 544a7b38..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PersonTest.php +++ /dev/null @@ -1,47 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testSsn() - { - for ($i = 0; $i < 100; $i++) { - $number = $this->faker->ssn; - - // should be in the format ###-##-#### - $this->assertRegExp('/^[0-9]{3}-[0-9]{2}-[0-9]{4}$/', $number); - - $parts = explode("-", $number); - - // first part must be between 001 and 899, excluding 666 - $this->assertNotEquals(666, $parts[0]); - $this->assertGreaterThan(0, $parts[0]); - $this->assertLessThan(900, $parts[0]); - - // second part must be between 01 and 99 - $this->assertGreaterThan(0, $parts[1]); - $this->assertLessThan(100, $parts[1]); - - // the third part must be between 0001 and 9999 - $this->assertGreaterThan(0, $parts[2]); - $this->assertLessThan(10000, $parts[2]); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PhoneNumberTest.php deleted file mode 100644 index ae2951a5..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PhoneNumberTest.php +++ /dev/null @@ -1,84 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - for ($i = 0; $i < 100; $i++) { - $number = $this->faker->phoneNumber; - $baseNumber = preg_replace('/ *x.*$/', '', $number); // Remove possible extension - $digits = array_values(array_filter(str_split($baseNumber), 'ctype_digit')); - - // Prefix '1' allowed - if (count($digits) === 11) { - $this->assertEquals('1', $digits[0]); - $digits = array_slice($digits, 1); - } - - // 10 digits - $this->assertEquals(10, count($digits)); - - // Last two digits of area code cannot be identical - $this->assertNotEquals($digits[1], $digits[2]); - - // Last two digits of exchange code cannot be 1 - if ($digits[4] === 1) { - $this->assertNotEquals($digits[4], $digits[5]); - } - - // Test format - $this->assertRegExp('/^(\+?1)?([ -.]*\d{3}[ -.]*| *\(\d{3}\) *)\d{3}[-.]?\d{4}$/', $baseNumber); - } - } - - public function testTollFreeAreaCode() - { - $this->assertContains($this->faker->tollFreeAreaCode, array(800, 822, 833, 844, 855, 866, 877, 888, 880, 887, 889)); - } - - public function testTollFreePhoneNumber() - { - for ($i = 0; $i < 100; $i++) { - $number = $this->faker->tollFreePhoneNumber; - $digits = array_values(array_filter(str_split($number), 'ctype_digit')); - - // Prefix '1' allowed - if (count($digits) === 11) { - $this->assertEquals('1', $digits[0]); - $digits = array_slice($digits, 1); - } - - // 10 digits - $this->assertEquals(10, count($digits)); - - $areaCode = $digits[0] . $digits[1] . $digits[2]; - $this->assertContains($areaCode, array('800', '822', '833', '844', '855', '866', '877', '888', '880', '887', '889')); - - // Last two digits of exchange code cannot be 1 - if ($digits[4] === 1) { - $this->assertNotEquals($digits[4], $digits[5]); - } - - // Test format - $this->assertRegExp('/^(\+?1)?([ -.]*\d{3}[ -.]*| *\(\d{3}\) *)\d{3}[-.]?\d{4}$/', $number); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/CompanyTest.php deleted file mode 100644 index 678a3886..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/CompanyTest.php +++ /dev/null @@ -1,26 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testGenerateValidCompanyNumber() - { - $companyRegNo = $this->faker->companyNumber(); - - $this->assertEquals(14, strlen($companyRegNo)); - $this->assertRegExp('#^\d{4}/\d{6}/\d{2}$#', $companyRegNo); - } -} \ No newline at end of file diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/InternetTest.php deleted file mode 100644 index 7edd63f9..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/InternetTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PersonTest.php deleted file mode 100644 index 557ec8fc..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PersonTest.php +++ /dev/null @@ -1,47 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new DateTime($faker)); - $this->faker = $faker; - } - - public function testIdNumberWithDefaults() - { - $idNumber = $this->faker->idNumber(); - - $this->assertEquals(13, strlen($idNumber)); - $this->assertRegExp('#^\d{13}$#', $idNumber); - $this->assertInternalType('string', $idNumber); - } - - public function testIdNumberForMales() - { - $idNumber = $this->faker->idNumber(new \DateTime(), true, 'male'); - - $genderDigit = substr($idNumber, 6, 1); - - $this->assertContains($genderDigit, array('5', '6', '7', '8', '9')); - } - - public function testIdNumberForFemales() - { - $idNumber = $this->faker->idNumber(new \DateTime(), true, 'female'); - - $genderDigit = substr($idNumber, 6, 1); - - $this->assertContains($genderDigit, array('0', '1', '2', '3', '4')); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PhoneNumberTest.php deleted file mode 100644 index bfb516a4..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PhoneNumberTest.php +++ /dev/null @@ -1,65 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - for ($i = 0; $i < 10; $i++) { - $number = $this->faker->phoneNumber; - - $digits = array_values(array_filter(str_split($number), 'ctype_digit')); - - // 10 digits - if($digits[0] = 2 && $digits[1] == 7) { - $this->assertLessThanOrEqual(11, count($digits)); - } else { - $this->assertGreaterThanOrEqual(10, count($digits)); - } - } - } - - public function testTollFreePhoneNumber() - { - for ($i = 0; $i < 10; $i++) { - $number = $this->faker->tollFreeNumber; - $digits = array_values(array_filter(str_split($number), 'ctype_digit')); - - if (count($digits) === 11) { - $this->assertEquals('0', $digits[0]); - } - - $areaCode = $digits[0] . $digits[1] . $digits[2] . $digits[3]; - $this->assertContains($areaCode, array('0800', '0860', '0861', '0862')); - } - } - - public function testCellPhoneNumber() - { - for ($i = 0; $i < 10; $i++) { - $number = $this->faker->mobileNumber; - $digits = array_values(array_filter(str_split($number), 'ctype_digit')); - - if($digits[0] = 2 && $digits[1] == 7) { - $this->assertLessThanOrEqual(11, count($digits)); - } else { - $this->assertGreaterThanOrEqual(10, count($digits)); - } - - $this->assertRegExp('/^(\+27|27)?(\()?0?([6][0-4]|[7][1-9]|[8][1-9])(\))?( |-|\.|_)?(\d{3})( |-|\.|_)?(\d{4})/', $number); - } - } -} \ No newline at end of file diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PaymentTest.php deleted file mode 100644 index 344ce236..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PaymentTest.php +++ /dev/null @@ -1,60 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVAT() - { - $vat = $this->faker->vat(); - - $this->assertTrue($this->isValidCIF($vat)); - } - - /** - * Validation taken from https://github.com/amnesty/drupal-nif-nie-cif-validator/ - * @link https://github.com/amnesty/drupal-nif-nie-cif-validator/blob/master/includes/nif-nie-cif.php - */ - function isValidCIF($docNumber) - { - $fixedDocNumber = strtoupper($docNumber); - - return $this->isValidCIFFormat($fixedDocNumber); - } - - function isValidCIFFormat($docNumber) - { - return $this->respectsDocPattern($docNumber, '/^[PQSNWR][0-9][0-9][0-9][0-9][0-9][0-9][0-9][A-Z0-9]/') - || - $this->respectsDocPattern($docNumber, '/^[ABCDEFGHJUV][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/'); - } - - function respectsDocPattern($givenString, $pattern) - { - $isValid = FALSE; - $fixedString = strtoupper($givenString); - if (is_int(substr($fixedString, 0, 1))) { - $fixedString = substr("000000000" . $givenString, -9); - } - if (preg_match($pattern, $fixedString)) { - $isValid = TRUE; - } - return $isValid; - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PersonTest.php deleted file mode 100644 index 55360bac..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PersonTest.php +++ /dev/null @@ -1,38 +0,0 @@ -seed(1); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testDNI() - { - $dni = $this->faker->dni; - $this->assertTrue($this->isValidDNI($dni)); - } - - // validation taken from http://kiwwito.com/php-function-for-spanish-dni-nie-validation/ - public function isValidDNI($string) - { - if (strlen($string) != 9 || - preg_match('/^[XYZ]?([0-9]{7,8})([A-Z])$/i', $string, $matches) !== 1) { - return false; - } - - $map = 'TRWAGMYFPDXBNJZSQVHLCKE'; - - list(, $number, $letter) = $matches; - - return strtoupper($letter) === $map[((int) $number) % 23]; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/TextTest.php deleted file mode 100644 index 75bfee5f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/TextTest.php +++ /dev/null @@ -1,26 +0,0 @@ -addProvider(new Text($faker)); - $this->faker = $faker; - } - - public function testText() - { - $this->assertNotSame('', $this->faker->realtext(200, 2)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_PE/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_PE/PersonTest.php deleted file mode 100644 index 666ed2bf..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_PE/PersonTest.php +++ /dev/null @@ -1,28 +0,0 @@ -seed(1); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testDNI() - { - $dni = $this->faker->dni; - $this->assertRegExp('/\A[0-9]{8}\Z/', $dni); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/InternetTest.php deleted file mode 100644 index 3f0e5067..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/InternetTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/PersonTest.php deleted file mode 100644 index 6c77097e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/PersonTest.php +++ /dev/null @@ -1,74 +0,0 @@ -addProvider(new DateTime($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function provideSeedAndExpectedReturn() - { - return array( - array(1, '1800-01-01', '010100+5207'), - array(2, '1930-08-08', '080830-508R'), - array(3, '1999-12-31', '311299-409D'), - array(4, '2000-01-01', '010100A039P'), - array(5, '2015-06-17', '170615A690X') - ); - } - - /** - * @dataProvider provideSeedAndExpectedReturn - */ - public function testPersonalIdentityNumberUsesBirthDateIfProvided($seed, $birthdate, $expected) - { - $faker = $this->faker; - $faker->seed($seed); - $pin = $faker->personalIdentityNumber(\DateTime::createFromFormat('Y-m-d', $birthdate)); - $this->assertEquals($expected, $pin); - } - - public function testPersonalIdentityNumberGeneratesCompliantNumbers() - { - for ($i = 0; $i < 10; $i++) { - $birthdate = $this->faker->dateTimeBetween('1800-01-01 00:00:00', '1899-12-31 23:59:59'); - $pin = $this->faker->personalIdentityNumber($birthdate); - $this->assertRegExp('/^[0-9]{6}\+[0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/', $pin); - } - for ($i = 0; $i < 10; $i++) { - $birthdate = $this->faker->dateTimeBetween('1900-01-01 00:00:00', '1999-12-31 23:59:59'); - $pin = $this->faker->personalIdentityNumber($birthdate); - $this->assertRegExp('/^[0-9]{6}-[0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/', $pin); - } - for ($i = 0; $i < 10; $i++) { - $birthdate = $this->faker->dateTimeBetween('2000-01-01 00:00:00', '2099-12-31 23:59:59'); - $pin = $this->faker->personalIdentityNumber($birthdate); - $this->assertRegExp('/^[0-9]{6}A[0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/', $pin); - } - } - - public function testPersonalIdentityNumberGeneratesOddValuesForMales() - { - $pin = $this->faker->personalIdentityNumber(null, 'male'); - $this->assertEquals(1, $pin{9} % 2); - } - - public function testPersonalIdentityNumberGeneratesEvenValuesForFemales() - { - $pin = $this->faker->personalIdentityNumber(null, 'female'); - $this->assertEquals(0, $pin{9} % 2); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_BE/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_BE/PaymentTest.php deleted file mode 100644 index 46c1cd77..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_BE/PaymentTest.php +++ /dev/null @@ -1,29 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVatIsValid() - { - $vat = $this->faker->vat(); - $unspacedVat = $this->faker->vat(false); - $this->assertRegExp('/^(BE 0\d{9})$/', $vat); - $this->assertRegExp('/^(BE0\d{9})$/', $unspacedVat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/AddressTest.php deleted file mode 100644 index f589c1f8..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/AddressTest.php +++ /dev/null @@ -1,69 +0,0 @@ -addProvider(new Address($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function canton () - { - $canton = $this->faker->canton(); - $this->assertInternalType('array', $canton); - $this->assertCount(1, $canton); - - foreach ($canton as $cantonShort => $cantonName){ - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - } - - /** - * @test - */ - public function cantonName () - { - $cantonName = $this->faker->cantonName(); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - - /** - * @test - */ - public function cantonShort () - { - $cantonShort = $this->faker->cantonShort(); - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - } - - /** - * @test - */ - public function address (){ - $address = $this->faker->address(); - $this->assertInternalType('string', $address); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/InternetTest.php deleted file mode 100644 index 2f20871a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/InternetTest.php +++ /dev/null @@ -1,35 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function emailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/PhoneNumberTest.php deleted file mode 100644 index 1f3fc20f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/PhoneNumberTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - $this->assertRegExp('/^0\d{2} ?\d{3} ?\d{2} ?\d{2}|\+41 ?(\(0\))?\d{2} ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->phoneNumber()); - } - - public function testMobileNumber() - { - $this->assertRegExp('/^07[56789] ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->mobileNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php deleted file mode 100644 index 5486cf9d..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php +++ /dev/null @@ -1,74 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testSiretReturnsAValidSiret() - { - $siret = $this->faker->siret(false); - $this->assertRegExp("/^\d{14}$/", $siret); - $this->assertTrue(Luhn::isValid($siret)); - } - - public function testSiretReturnsAWellFormattedSiret() - { - $siret = $this->faker->siret(); - $this->assertRegExp("/^\d{3}\s\d{3}\s\d{3}\s\d{5}$/", $siret); - $siret = str_replace(' ', '', $siret); - $this->assertTrue(Luhn::isValid($siret)); - } - - public function testSirenReturnsAValidSiren() - { - $siren = $this->faker->siren(false); - $this->assertRegExp("/^\d{9}$/", $siren); - $this->assertTrue(Luhn::isValid($siren)); - } - - public function testSirenReturnsAWellFormattedSiren() - { - $siren = $this->faker->siren(); - $this->assertRegExp("/^\d{3}\s\d{3}\s\d{3}$/", $siren); - $siren = str_replace(' ', '', $siren); - $this->assertTrue(Luhn::isValid($siren)); - } - - public function testCatchPhraseReturnsValidCatchPhrase() - { - $this->assertTrue(TestableCompany::isCatchPhraseValid($this->faker->catchPhrase())); - } - - public function testIsCatchPhraseValidReturnsFalseWhenAWordsAppearsTwice() - { - $isCatchPhraseValid = TestableCompany::isCatchPhraseValid('La sécurité de rouler en toute sécurité'); - $this->assertFalse($isCatchPhraseValid); - } - - public function testIsCatchPhraseValidReturnsTrueWhenNoWordAppearsTwice() - { - $isCatchPhraseValid = TestableCompany::isCatchPhraseValid('La sécurité de rouler en toute simplicité'); - $this->assertTrue($isCatchPhraseValid); - } -} - -class TestableCompany extends Company -{ - public static function isCatchPhraseValid($catchPhrase) - { - return parent::isCatchPhraseValid($catchPhrase); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PersonTest.php deleted file mode 100644 index b5bc8056..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PersonTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testNIRReturnsTheRightGender() - { - $nir = $this->faker->nir(\Faker\Provider\Person::GENDER_MALE); - $this->assertStringStartsWith('1', $nir); - } - - public function testNIRReturnsTheRightPattern() - { - $nir = $this->faker->nir; - $this->assertRegExp("/^[12]\d{5}[0-9A-B]\d{8}$/", $nir); - } - - public function testNIRFormattedReturnsTheRightPattern() - { - $nir = $this->faker->nir(null, true); - $this->assertRegExp("/^[12]\s\d{2}\s\d{2}\s\d{1}[0-9A-B]\s\d{3}\s\d{3}\s\d{2}$/", $nir); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php deleted file mode 100644 index abd039f0..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php +++ /dev/null @@ -1,40 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testIfFirstNameMaleCanReturnData() - { - $firstNameMale = $this->faker->firstNameMale(); - $this->assertNotEmpty($firstNameMale); - } - - public function testIfLastNameMaleCanReturnData() - { - $lastNameMale = $this->faker->lastNameMale(); - $this->assertNotEmpty($lastNameMale); - } - - public function testIfFirstNameFemaleCanReturnData() - { - $firstNameFemale = $this->faker->firstNameFemale(); - $this->assertNotEmpty($firstNameFemale); - } - - public function testIfLastNameFemaleCanReturnData() - { - $lastNameFemale = $this->faker->lastNameFemale(); - $this->assertNotEmpty($lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/AddressTest.php deleted file mode 100644 index 76122532..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/AddressTest.php +++ /dev/null @@ -1,69 +0,0 @@ -addProvider(new Address($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function canton () - { - $canton = $this->faker->canton(); - $this->assertInternalType('array', $canton); - $this->assertCount(1, $canton); - - foreach ($canton as $cantonShort => $cantonName){ - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - } - - /** - * @test - */ - public function cantonName () - { - $cantonName = $this->faker->cantonName(); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - - /** - * @test - */ - public function cantonShort () - { - $cantonShort = $this->faker->cantonShort(); - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - } - - /** - * @test - */ - public function address (){ - $address = $this->faker->address(); - $this->assertInternalType('string', $address); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/InternetTest.php deleted file mode 100644 index 16616c70..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/InternetTest.php +++ /dev/null @@ -1,35 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function emailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/PhoneNumberTest.php deleted file mode 100644 index d3f17b8a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/PhoneNumberTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - $this->assertRegExp('/^0\d{2} ?\d{3} ?\d{2} ?\d{2}|\+41 ?(\(0\))?\d{2} ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->phoneNumber()); - } - - public function testMobileNumber() - { - $this->assertRegExp('/^07[56789] ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->mobileNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/CompanyTest.php deleted file mode 100644 index 7bef3fae..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/CompanyTest.php +++ /dev/null @@ -1,23 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testIfTaxIdCanReturnData() - { - $vatId = $this->faker->vatId(); - $this->assertRegExp('/^IT[0-9]{11}$/', $vatId); - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/PersonTest.php deleted file mode 100644 index 5d0dc231..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/PersonTest.php +++ /dev/null @@ -1,23 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testIfTaxIdCanReturnData() - { - $taxId = $this->faker->taxId(); - $this->assertRegExp('/^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/', $taxId); - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/InternetTest.php deleted file mode 100644 index 355567a5..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/InternetTest.php +++ /dev/null @@ -1,27 +0,0 @@ -addProvider(new Internet($faker)); - $faker->seed(1); - - $this->assertEquals('akira72', $faker->userName); - } - - public function testDomainName() - { - $faker = new Generator(); - $faker->addProvider(new Internet($faker)); - $faker->seed(1); - - $this->assertEquals('nakajima.com', $faker->domainName); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php deleted file mode 100644 index d64ac043..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php +++ /dev/null @@ -1,54 +0,0 @@ -addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('アオタ ミノル', $faker->kanaName('male')); - } - - public function testKanaNameFemaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('アオタ ミキ', $faker->kanaName('female')); - } - - public function testFirstKanaNameMaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('ヒデキ', $faker->firstKanaName('male')); - } - - public function testFirstKanaNameFemaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('マアヤ', $faker->firstKanaName('female')); - } - - public function testLastKanaNameReturnsNakajima() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('ナカジマ', $faker->lastKanaName); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PhoneNumberTest.php deleted file mode 100644 index d90d9743..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PhoneNumberTest.php +++ /dev/null @@ -1,21 +0,0 @@ -addProvider(new PhoneNumber($faker)); - - for ($i = 0; $i < 10; $i++) { - $phoneNumber = $faker->phoneNumber; - $this->assertNotEmpty($phoneNumber); - $this->assertRegExp('/^0\d{1,4}-\d{1,4}-\d{3,4}$/', $phoneNumber); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/CompanyTest.php deleted file mode 100644 index 779e73a6..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/CompanyTest.php +++ /dev/null @@ -1,31 +0,0 @@ -faker = new Generator(); - - $this->faker->addProvider(new Company($this->faker)); - } - - public function testBusinessIdentificationNumberIsValid() - { - $registrationDate = new \DateTime('now'); - $businessIdentificationNumber = $this->faker->businessIdentificationNumber($registrationDate); - $registrationDateAsString = $registrationDate->format('ym'); - - $this->assertRegExp( - "/^(" . $registrationDateAsString . ")([4-6]{1})([0-3]{1})(\\d{6})$/", - $businessIdentificationNumber - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/PersonTest.php deleted file mode 100644 index 0f2f981c..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/PersonTest.php +++ /dev/null @@ -1,29 +0,0 @@ -faker = new Generator(); - - $this->faker->addProvider(new Person($this->faker)); - } - - public function testIndividualIdentificationNumberIsValid() - { - $birthDate = DateTime::dateTimeBetween('-30 years', '-10 years'); - $individualIdentificationNumber = $this->faker->individualIdentificationNumber($birthDate); - $controlDigit = Person::checkSum($individualIdentificationNumber); - - $this->assertTrue($controlDigit === (int)substr($individualIdentificationNumber, 11, 1)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/mn_MN/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/mn_MN/PersonTest.php deleted file mode 100644 index f3c9572e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/mn_MN/PersonTest.php +++ /dev/null @@ -1,27 +0,0 @@ -addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertRegExp('/^[Ð-Я]{1}\.[\w\W]+$/u', $faker->name); - } - - public function testIdNumber() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(2); - - $this->assertRegExp('/^[Ð-Я]{2}\d{8}$/u', $faker->idNumber); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PaymentTest.php deleted file mode 100644 index 9216de75..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PaymentTest.php +++ /dev/null @@ -1,29 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVatIsValid() - { - $vat = $this->faker->vat(); - $unspacedVat = $this->faker->vat(false); - $this->assertRegExp('/^(BE 0\d{9})$/', $vat); - $this->assertRegExp('/^(BE0\d{9})$/', $unspacedVat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/CompanyTest.php deleted file mode 100644 index 4775b14e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/CompanyTest.php +++ /dev/null @@ -1,34 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testGenerateValidVatNumber() - { - $vatNo = $this->faker->vat(); - - $this->assertEquals(14, strlen($vatNo)); - $this->assertRegExp('/^NL[0-9]{9}B[0-9]{2}$/', $vatNo); - } - - public function testGenerateValidBtwNumberAlias() - { - $btwNo = $this->faker->btw(); - - $this->assertEquals(14, strlen($btwNo)); - $this->assertRegExp('/^NL[0-9]{9}B[0-9]{2}$/', $btwNo); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/AddressTest.php deleted file mode 100644 index 9bdc0515..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/AddressTest.php +++ /dev/null @@ -1,31 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * Test the validity of state - */ - public function testState() - { - $state = $this->faker->state(); - $this->assertNotEmpty($state); - $this->assertInternalType('string', $state); - $this->assertRegExp('/[a-z]+/', $state); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php deleted file mode 100644 index f59142bd..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php +++ /dev/null @@ -1,25 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testCnpjFormatIsValid() - { - $cnpj = $this->faker->cnpj(false); - $this->assertRegExp('/\d{8}\d{4}\d{2}/', $cnpj); - $cnpj = $this->faker->cnpj(true); - $this->assertRegExp('/\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}/', $cnpj); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php deleted file mode 100644 index 767c1887..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testCpfFormatIsValid() - { - $cpf = $this->faker->cpf(false); - $this->assertRegExp('/\d{9}\d{2}/', $cpf); - $cpf = $this->faker->cpf(true); - $this->assertRegExp('/\d{3}\.\d{3}\.\d{3}-\d{2}/', $cpf); - } - - public function testRgFormatIsValid() - { - $rg = $this->faker->rg(false); - $this->assertRegExp('/\d{8}\d/', $rg); - $rg = $this->faker->rg(true); - $this->assertRegExp('/\d{2}\.\d{3}\.\d{3}-[0-9X]/', $rg); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php deleted file mode 100644 index 7db5b68f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php +++ /dev/null @@ -1,39 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testPostCodeIsValid() - { - $main = '[1-9]{1}[0-9]{2}[0,1,4,5,9]{1}'; - $pattern = "/^($main)|($main-[0-9]{3})+$/"; - $postcode = $this->faker->postcode(); - $this->assertSame(preg_match($pattern, $postcode), 1, $postcode); - } - - public function testAddressIsSingleLine() - { - $this->faker->addProvider(new Person($this->faker)); - - $address = $this->faker->address(); - $this->assertFalse(strstr($address, "\n")); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php deleted file mode 100644 index 9bfb7a2f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php +++ /dev/null @@ -1,52 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testTaxpayerIdentificationNumberIsValid() - { - $tin = $this->faker->taxpayerIdentificationNumber(); - $this->assertTrue($this->isValidTin($tin), $tin); - } - - /** - * - * @link http://pt.wikipedia.org/wiki/N%C3%BAmero_de_identifica%C3%A7%C3%A3o_fiscal - * - * @param type $tin - * - * @return boolean - */ - public static function isValidTin($tin) - { - $regex = '(([1,2,3,5,6,8]{1}[0-9]{8})|((45)|(70)|(71)|(72)|(77)|(79)|(90|(98|(99))))[0-9]{7})'; - if (is_null($tin) || !is_numeric($tin) || !strlen($tin) == 9 || preg_match("/$regex/", $tin) !== 1) { - return false; - } - $n = str_split($tin); - // cd - Control Digit - $cd = ($n[0] * 9 + $n[1] * 8 + $n[2] * 7 + $n[3] * 6 + $n[4] * 5 + $n[5] * 4 + $n[6] * 3 + $n[7] * 2) % 11; - if ($cd === 0 || $cd === 1) { - $cd = 0; - } else { - $cd = 11 - $cd; - } - if ($cd === intval($n[8])) { - return true; - } - - return false; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php deleted file mode 100644 index 04b2f63d..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php +++ /dev/null @@ -1,25 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberReturnsPhoneNumberWithOrWithoutPrefix() - { - $this->assertRegExp('/^(9[1,2,3,6][0-9]{7})|(2[0-9]{8})|(\+351 [2][0-9]{8})|(\+351 9[1,2,3,6][0-9]{7})/', $this->faker->phoneNumber()); - } - public function testMobileNumberReturnsMobileNumberWithOrWithoutPrefix() - { - $this->assertRegExp('/^(9[1,2,3,6][0-9]{7})/', $this->faker->mobileNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php deleted file mode 100644 index 2777f770..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php +++ /dev/null @@ -1,254 +0,0 @@ -originalTz = @date_default_timezone_get(); - date_default_timezone_set('Europe/Bucharest'); - - $faker = new Generator(); - $faker->addProvider(new DateTime($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function tearDown() - { - date_default_timezone_set($this->originalTz); - } - - public function invalidGenderProvider() - { - return array( - array('elf'), - array('ent'), - array('fmle'), - array('mal'), - ); - } - - public function invalidYearProvider() - { - return array( - array(1652), - array(1799), - array(2100), - array(2252), - ); - } - - public function validYearProvider() - { - return array( - array(null), - array(''), - array(1800), - array(1850), - array(1900), - array(1990), - array(2000), - array(2099), - ); - } - - public function validCountyCodeProvider() - { - return array( - array('AB'), array('AR'), array('AG'), array('B'), array('BC'), array('BH'), array('BN'), array('BT'), - array('BV'), array('BR'), array('BZ'), array('CS'), array('CL'), array('CJ'), array('CT'), array('CV'), - array('DB'), array('DJ'), array('GL'), array('GR'), array('GJ'), array('HR'), array('HD'), array('IL'), - array('IS'), array('IF'), array('MM'), array('MH'), array('MS'), array('NT'), array('OT'), array('PH'), - array('SM'), array('SJ'), array('SB'), array('SV'), array('TR'), array('TM'), array('TL'), array('VS'), - array('VL'), array('VN'), array('B1'), array('B2'), array('B3'), array('B4'), array('B5'), array('B6') - ); - } - - public function invalidCountyCodeProvider() - { - return array( - array('JK'), array('REW'), array('x'), array('FF'), array('aaaddadaada') - ); - } - - public function validInputDataProvider() - { - return array( - array(Person::GENDER_MALE, '1981-06-16','B2', true, '181061642'), - array(Person::GENDER_FEMALE, '1981-06-16','B2', true, '281061642'), - array(Person::GENDER_MALE, '1981-06-16','B2', false, '981061642'), - array(Person::GENDER_FEMALE, '1981-06-16','B2', false, '981061642'), - ); - } - /** - * - */ - public function test_allRandom_returnsValidCnp() - { - $cnp = $this->faker->cnp; - $this->assertTrue( - $this->isValidCnp($cnp), - sprintf("Invalid CNP '%' generated", $cnp) - ); - } - - /** - * - */ - public function test_validGender_returnsValidCnp() - { - $cnp = $this->faker->cnp(Person::GENDER_MALE); - $this->assertTrue( - $this->isValidMaleCnp($cnp), - sprintf("Invalid CNP '%' generated for '%s' gender", $cnp, Person::GENDER_MALE) - ); - - $cnp = $this->faker->cnp(Person::GENDER_FEMALE); - $this->assertTrue( - $this->isValidFemaleCnp($cnp), - sprintf("Invalid CNP '%' generated for '%s' gender", $cnp, Person::GENDER_FEMALE) - ); - } - - /** - * @param string $value - * - * @dataProvider invalidGenderProvider - */ - public function test_invalidGender_throwsException($value) - { - $this->setExpectedException('InvalidArgumentException'); - $this->faker->cnp($value); - } - - /** - * @param string $value year of birth - * - * @dataProvider validYearProvider - */ - public function test_validYear_returnsValidCnp($value) - { - $cnp = $this->faker->cnp(null, $value); - $this->assertTrue( - $this->isValidCnp($cnp), - sprintf("Invalid CNP '%' generated for valid year '%s'", $cnp, $value) - ); - } - - /** - * @param string $value year of birth - * - * @dataProvider invalidYearProvider - */ - public function test_invalidYear_throwsException($value) - { - $this->setExpectedException('InvalidArgumentException'); - $this->faker->cnp(null, $value); - } - - /** - * @param $value - * @dataProvider validCountyCodeProvider - */ - public function test_validCountyCode_returnsValidCnp($value) - { - $cnp = $this->faker->cnp(null, null, $value); - $this->assertTrue( - $this->isValidCnp($cnp), - sprintf("Invalid CNP '%' generated for valid year '%s'", $cnp, $value) - ); - } - - /** - * @param $value - * @dataProvider invalidCountyCodeProvider - */ - public function test_invalidCountyCode_throwsException($value) - { - $this->setExpectedException('InvalidArgumentException'); - $this->faker->cnp(null, null, $value); - } - - /** - * - */ - public function test_nonResident_returnsValidCnp() - { - $cnp = $this->faker->cnp(null, null, null, false); - $this->assertTrue( - $this->isValidCnp($cnp), - sprintf("Invalid CNP '%' generated for non resident", $cnp) - ); - $this->assertStringStartsWith( - '9', - $cnp, - sprintf("Invalid CNP '%' generated for non resident (should start with 9)", $cnp) - ); - } - - /** - * - * @param $gender - * @param $dateOfBirth - * @param $county - * @param $isResident - * @param $expectedCnpStart - * - * @dataProvider validInputDataProvider - */ - public function test_validInputData_returnsValidCnp($gender, $dateOfBirth, $county, $isResident, $expectedCnpStart) - { - $cnp = $this->faker->cnp($gender, $dateOfBirth, $county, $isResident); - $this->assertStringStartsWith( - $expectedCnpStart, - $cnp, - sprintf("Invalid CNP '%' generated for non valid data", $cnp) - ); - } - - - protected function isValidFemaleCnp($value) - { - return $this->isValidCnp($value) && in_array($value[0], array(2, 4, 6, 8, 9)); - } - - protected function isValidMaleCnp($value) - { - return $this->isValidCnp($value) && in_array($value[0], array(1, 3, 5, 7, 9)); - } - - protected function isValidCnp($cnp) - { - if (preg_match(static::TEST_CNP_REGEX, $cnp) !== false) { - $checkNumber = 279146358279; - - $checksum = 0; - foreach (range(0, 11) as $digit) { - $checksum += (int)substr($cnp, $digit, 1) * (int)substr($checkNumber, $digit, 1); - } - $checksum = $checksum % 11; - $checksum = $checksum == 10 ? 1 : $checksum; - - if ($checksum == substr($cnp, -1)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php deleted file mode 100644 index 8a406da9..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php +++ /dev/null @@ -1,31 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberReturnsNormalPhoneNumber() - { - $this->assertRegExp('/^0(?:[23][13-7]|7\d)\d{7}$/', $this->faker->phoneNumber()); - } - - public function testTollFreePhoneNumberReturnsTollFreePhoneNumber() - { - $this->assertRegExp('/^08(?:0[01267]|70)\d{6}$/', $this->faker->tollFreePhoneNumber()); - } - - public function testPremiumRatePhoneNumberReturnsPremiumRatePhoneNumber() - { - $this->assertRegExp('/^090[036]\d{6}$/', $this->faker->premiumRatePhoneNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/CompanyTest.php deleted file mode 100644 index 08dd2477..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/CompanyTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testINN() - { - $this->assertRegExp('/^[0-9]{10}$/', $this->faker->inn); - $this->assertEquals("77", substr($this->faker->inn("77"), 0, 2)); - $this->assertEquals("02", substr($this->faker->inn(2), 0, 2)); - } - - public function testKPP() - { - $this->assertRegExp('/^[0-9]{9}$/', $this->faker->kpp); - $this->assertEquals("01001", substr($this->faker->kpp, -5, 5)); - $inn = $this->faker->inn; - $this->assertEquals(substr($inn, 0, 4), substr($this->faker->kpp($inn), 0, 4)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php deleted file mode 100644 index 623723a6..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php +++ /dev/null @@ -1,60 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function provideSeedAndExpectedReturn() - { - return array( - array(1, '720727', '720727-5798'), - array(2, '710414', '710414-5664'), - array(3, '591012', '591012-4519'), - array(4, '180307', '180307-0356'), - array(5, '820904', '820904-7748') - ); - } - - /** - * @dataProvider provideSeedAndExpectedReturn - */ - public function testPersonalIdentityNumberUsesBirthDateIfProvided($seed, $birthdate, $expected) - { - $faker = $this->faker; - $faker->seed($seed); - $pin = $faker->personalIdentityNumber(\DateTime::createFromFormat('ymd', $birthdate)); - $this->assertEquals($expected, $pin); - } - - public function testPersonalIdentityNumberGeneratesLuhnCompliantNumbers() - { - $pin = str_replace('-', '', $this->faker->personalIdentityNumber()); - $this->assertTrue(Luhn::isValid($pin)); - } - - public function testPersonalIdentityNumberGeneratesOddValuesForMales() - { - $pin = $this->faker->personalIdentityNumber(null, 'male'); - $this->assertEquals(1, $pin{9} % 2); - } - - public function testPersonalIdentityNumberGeneratesEvenValuesForFemales() - { - $pin = $this->faker->personalIdentityNumber(null, 'female'); - $this->assertEquals(0, $pin{9} % 2); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php deleted file mode 100644 index a3e38d73..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php +++ /dev/null @@ -1,80 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testPostCodeIsValid() - { - $main = '[0-9]{5}'; - $pattern = "/^($main)|($main-[0-9]{3})+$/"; - $postcode = $this->faker->postcode; - $this->assertRegExp($pattern, $postcode, 'Post code ' . $postcode . ' is wrong!'); - } - - public function testEmptySuffixes() - { - $this->assertEmpty($this->faker->citySuffix, 'City suffix should be empty!'); - $this->assertEmpty($this->faker->streetSuffix, 'Street suffix should be empty!'); - } - - public function testStreetCyrOnly() - { - $pattern = "/[0-9Ð-ЩЯІЇЄЮа-щÑіїєюьIVXCM][0-9Ð-ЩЯІЇЄЮа-щÑіїєюь \'-.]*[Ð-Яа-Ñ.]/u"; - $streetName = $this->faker->streetName; - $this->assertSame( - preg_match($pattern, $streetName), - 1, - 'Street name ' . $streetName . ' is wrong!' - ); - } - - public function testCityNameCyrOnly() - { - $pattern = "/[Ð-ЩЯІЇЄЮа-щÑіїєюь][0-9Ð-ЩЯІЇЄЮа-щÑіїєюь \'-]*[Ð-Яа-Ñ]/u"; - $city = $this->faker->city; - $this->assertSame( - preg_match($pattern, $city), - 1, - 'City name ' . $city . ' is wrong!' - ); - } - - public function testRegionNameCyrOnly() - { - $pattern = "/[Ð-ЩЯІЇЄЮ][Ð-ЩЯІЇЄЮа-щÑіїєюь]*а$/u"; - $regionName = $this->faker->region; - $this->assertSame( - preg_match($pattern, $regionName), - 1, - 'Region name ' . $regionName . ' is wrong!' - ); - } - - public function testCountryCyrOnly() - { - $pattern = "/[Ð-ЩЯІЇЄЮа-щÑіїєюьIVXCM][Ð-ЩЯІЇЄЮа-щÑіїєюь \'-]*[Ð-Яа-Ñ.]/u"; - $country = $this->faker->country; - $this->assertSame( - preg_match($pattern, $country), - 1, - 'Country name ' . $country . ' is wrong!' - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PersonTest.php deleted file mode 100644 index 5d73d725..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PersonTest.php +++ /dev/null @@ -1,56 +0,0 @@ -addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('МакÑим', $faker->firstNameMale()); - } - - public function testFirstNameFemaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('Людмила', $faker->firstNameFemale()); - } - - public function testMiddleNameMaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('Миколайович', $faker->middleNameMale()); - } - - public function testMiddleNameFemaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('Миколаївна', $faker->middleNameFemale()); - } - - public function testLastNameReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('Броваренко', $faker->lastName()); - } - - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php deleted file mode 100644 index 13620c72..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php +++ /dev/null @@ -1,35 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberFormat() - { - $pattern = "/((\+38)(((\(\d{3}\))\d{7}|(\(\d{4}\))\d{6})|(\d{8})))|0\d{9}/"; - $phoneNumber = $this->faker->phoneNumber; - $this->assertSame( - preg_match($pattern, $phoneNumber), - 1, - 'Phone number format ' . $phoneNumber . ' is wrong!' - ); - - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/CompanyTest.php deleted file mode 100644 index 329c3a8a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/CompanyTest.php +++ /dev/null @@ -1,26 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testVAT() - { - $this->assertEquals(8, floor(log10($this->faker->VAT) + 1)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/PersonTest.php deleted file mode 100644 index 1ba05a53..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/PersonTest.php +++ /dev/null @@ -1,44 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @see https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89 - */ - public function testPersonalIdentityNumber() - { - $id = $this->faker->personalIdentityNumber; - - $firstChar = substr($id, 0, 1); - $codesString = Person::$idBirthplaceCode[$firstChar] . substr($id, 1); - - // After transfer the first alphabet word into 2 digit number, there should be totally 11 numbers - $this->assertRegExp("/^[0-9]{11}$/", $codesString); - - $total = 0; - $codesArray = str_split($codesString); - foreach ($codesArray as $key => $code) { - $total += $code * Person::$idDigitValidator[$key]; - } - - // Validate - $this->assertEquals(0, ($total % 10)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/TextTest.php deleted file mode 100644 index 5bcabe44..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/TextTest.php +++ /dev/null @@ -1,77 +0,0 @@ -textClass = new \ReflectionClass('Faker\Provider\zh_TW\Text'); - } - - protected function getMethod($name) { - $method = $this->textClass->getMethod($name); - - $method->setAccessible(true); - - return $method; - } - - /** @test */ - function testItShouldExplodeTheStringToArray() - { - $this->assertSame( - array('中', 'æ–‡', '測', '試', '真', '有', '趣'), - $this->getMethod('explode')->invokeArgs(null, array('中文測試真有趣')) - ); - - $this->assertSame( - array('標', '點', ',', '符', '號', 'ï¼'), - $this->getMethod('explode')->invokeArgs(null, array('標點,符號ï¼')) - ); - } - - /** @test */ - function testItShouldReturnTheStringLength() - { - $this->assertContains( - $this->getMethod('strlen')->invokeArgs(null, array('中文測試真有趣')), - array(7, 21) - ); - } - - /** @test */ - function testItShouldReturnTheCharacterIsValidStartOrNot() - { - $this->assertTrue($this->getMethod('validStart')->invokeArgs(null, array('中'))); - - $this->assertTrue($this->getMethod('validStart')->invokeArgs(null, array('2'))); - - $this->assertTrue($this->getMethod('validStart')->invokeArgs(null, array('Hello'))); - - $this->assertFalse($this->getMethod('validStart')->invokeArgs(null, array('。'))); - - $this->assertFalse($this->getMethod('validStart')->invokeArgs(null, array('ï¼'))); - } - - /** @test */ - function testItShouldAppendEndPunctToTheEndOfString() - { - $this->assertSame( - '中文測試真有趣。', - $this->getMethod('appendEnd')->invokeArgs(null, array('中文測試真有趣')) - ); - - $this->assertSame( - '中文測試真有趣。', - $this->getMethod('appendEnd')->invokeArgs(null, array('中文測試真有趣,')) - ); - - $this->assertSame( - '中文測試真有趣ï¼', - $this->getMethod('appendEnd')->invokeArgs(null, array('中文測試真有趣ï¼')) - ); - } -} diff --git a/vendor/fzaninotto/faker/test/documentor.php b/vendor/fzaninotto/faker/test/documentor.php deleted file mode 100644 index 1051ea28..00000000 --- a/vendor/fzaninotto/faker/test/documentor.php +++ /dev/null @@ -1,16 +0,0 @@ -seed(1); -$documentor = new Faker\Documentor($generator); -?> -getFormatters() as $provider => $formatters): ?> - -### `` - - $example): ?> - // - - -seed(5); - -echo ''; -?> - - - - -boolean(25)): ?> - - -
- streetAddress ?> - city ?> - postcode ?> - state ?> -
- -boolean(33)): ?> - bs ?> - -boolean(33)): ?> - - - -boolean(15)): ?> -
-text(400) ?> -]]> -
- -
- -
diff --git a/vendor/guzzlehttp/guzzle/CHANGELOG.md b/vendor/guzzlehttp/guzzle/CHANGELOG.md deleted file mode 100644 index b265cbcd..00000000 --- a/vendor/guzzlehttp/guzzle/CHANGELOG.md +++ /dev/null @@ -1,1264 +0,0 @@ -# CHANGELOG - -## 6.3.0 - 2017-06-22 - -* Feature: force IP resolution (ipv4 or ipv6) [#1608](https://github.com/guzzle/guzzle/pull/1608), [#1659](https://github.com/guzzle/guzzle/pull/1659) -* Improvement: Don't include summary in exception message when body is empty [#1621](https://github.com/guzzle/guzzle/pull/1621) -* Improvement: Handle `on_headers` option in MockHandler [#1580](https://github.com/guzzle/guzzle/pull/1580) -* Improvement: Added SUSE Linux CA path [#1609](https://github.com/guzzle/guzzle/issues/1609) -* Improvement: Use class reference for getting the name of the class instead of using hardcoded strings [#1641](https://github.com/guzzle/guzzle/pull/1641) -* Feature: Added `read_timeout` option [#1611](https://github.com/guzzle/guzzle/pull/1611) -* Bug fix: PHP 7.x fixes [#1685](https://github.com/guzzle/guzzle/pull/1685), [#1686](https://github.com/guzzle/guzzle/pull/1686), [#1811](https://github.com/guzzle/guzzle/pull/1811) -* Deprecation: BadResponseException instantiation without a response [#1642](https://github.com/guzzle/guzzle/pull/1642) -* Feature: Added NTLM auth [#1569](https://github.com/guzzle/guzzle/pull/1569) -* Feature: Track redirect HTTP status codes [#1711](https://github.com/guzzle/guzzle/pull/1711) -* Improvement: Check handler type during construction [#1745](https://github.com/guzzle/guzzle/pull/1745) -* Improvement: Always include the Content-Length if there's a body [#1721](https://github.com/guzzle/guzzle/pull/1721) -* Feature: Added convenience method to access a cookie by name [#1318](https://github.com/guzzle/guzzle/pull/1318) -* Bug fix: Fill `CURLOPT_CAPATH` and `CURLOPT_CAINFO` properly [#1684](https://github.com/guzzle/guzzle/pull/1684) -* Improvement: Use `\GuzzleHttp\Promise\rejection_for` function instead of object init [#1827](https://github.com/guzzle/guzzle/pull/1827) - - -+ Minor code cleanups, documentation fixes and clarifications. - -## 6.2.3 - 2017-02-28 - -* Fix deprecations with guzzle/psr7 version 1.4 - -## 6.2.2 - 2016-10-08 - -* Allow to pass nullable Response to delay callable -* Only add scheme when host is present -* Fix drain case where content-length is the literal string zero -* Obfuscate in-URL credentials in exceptions - -## 6.2.1 - 2016-07-18 - -* Address HTTP_PROXY security vulnerability, CVE-2016-5385: - https://httpoxy.org/ -* Fixing timeout bug with StreamHandler: - https://github.com/guzzle/guzzle/pull/1488 -* Only read up to `Content-Length` in PHP StreamHandler to avoid timeouts when - a server does not honor `Connection: close`. -* Ignore URI fragment when sending requests. - -## 6.2.0 - 2016-03-21 - -* Feature: added `GuzzleHttp\json_encode` and `GuzzleHttp\json_decode`. - https://github.com/guzzle/guzzle/pull/1389 -* Bug fix: Fix sleep calculation when waiting for delayed requests. - https://github.com/guzzle/guzzle/pull/1324 -* Feature: More flexible history containers. - https://github.com/guzzle/guzzle/pull/1373 -* Bug fix: defer sink stream opening in StreamHandler. - https://github.com/guzzle/guzzle/pull/1377 -* Bug fix: do not attempt to escape cookie values. - https://github.com/guzzle/guzzle/pull/1406 -* Feature: report original content encoding and length on decoded responses. - https://github.com/guzzle/guzzle/pull/1409 -* Bug fix: rewind seekable request bodies before dispatching to cURL. - https://github.com/guzzle/guzzle/pull/1422 -* Bug fix: provide an empty string to `http_build_query` for HHVM workaround. - https://github.com/guzzle/guzzle/pull/1367 - -## 6.1.1 - 2015-11-22 - -* Bug fix: Proxy::wrapSync() now correctly proxies to the appropriate handler - https://github.com/guzzle/guzzle/commit/911bcbc8b434adce64e223a6d1d14e9a8f63e4e4 -* Feature: HandlerStack is now more generic. - https://github.com/guzzle/guzzle/commit/f2102941331cda544745eedd97fc8fd46e1ee33e -* Bug fix: setting verify to false in the StreamHandler now disables peer - verification. https://github.com/guzzle/guzzle/issues/1256 -* Feature: Middleware now uses an exception factory, including more error - context. https://github.com/guzzle/guzzle/pull/1282 -* Feature: better support for disabled functions. - https://github.com/guzzle/guzzle/pull/1287 -* Bug fix: fixed regression where MockHandler was not using `sink`. - https://github.com/guzzle/guzzle/pull/1292 - -## 6.1.0 - 2015-09-08 - -* Feature: Added the `on_stats` request option to provide access to transfer - statistics for requests. https://github.com/guzzle/guzzle/pull/1202 -* Feature: Added the ability to persist session cookies in CookieJars. - https://github.com/guzzle/guzzle/pull/1195 -* Feature: Some compatibility updates for Google APP Engine - https://github.com/guzzle/guzzle/pull/1216 -* Feature: Added support for NO_PROXY to prevent the use of a proxy based on - a simple set of rules. https://github.com/guzzle/guzzle/pull/1197 -* Feature: Cookies can now contain square brackets. - https://github.com/guzzle/guzzle/pull/1237 -* Bug fix: Now correctly parsing `=` inside of quotes in Cookies. - https://github.com/guzzle/guzzle/pull/1232 -* Bug fix: Cusotm cURL options now correctly override curl options of the - same name. https://github.com/guzzle/guzzle/pull/1221 -* Bug fix: Content-Type header is now added when using an explicitly provided - multipart body. https://github.com/guzzle/guzzle/pull/1218 -* Bug fix: Now ignoring Set-Cookie headers that have no name. -* Bug fix: Reason phrase is no longer cast to an int in some cases in the - cURL handler. https://github.com/guzzle/guzzle/pull/1187 -* Bug fix: Remove the Authorization header when redirecting if the Host - header changes. https://github.com/guzzle/guzzle/pull/1207 -* Bug fix: Cookie path matching fixes - https://github.com/guzzle/guzzle/issues/1129 -* Bug fix: Fixing the cURL `body_as_string` setting - https://github.com/guzzle/guzzle/pull/1201 -* Bug fix: quotes are no longer stripped when parsing cookies. - https://github.com/guzzle/guzzle/issues/1172 -* Bug fix: `form_params` and `query` now always uses the `&` separator. - https://github.com/guzzle/guzzle/pull/1163 -* Bug fix: Adding a Content-Length to PHP stream wrapper requests if not set. - https://github.com/guzzle/guzzle/pull/1189 - -## 6.0.2 - 2015-07-04 - -* Fixed a memory leak in the curl handlers in which references to callbacks - were not being removed by `curl_reset`. -* Cookies are now extracted properly before redirects. -* Cookies now allow more character ranges. -* Decoded Content-Encoding responses are now modified to correctly reflect - their state if the encoding was automatically removed by a handler. This - means that the `Content-Encoding` header may be removed an the - `Content-Length` modified to reflect the message size after removing the - encoding. -* Added a more explicit error message when trying to use `form_params` and - `multipart` in the same request. -* Several fixes for HHVM support. -* Functions are now conditionally required using an additional level of - indirection to help with global Composer installations. - -## 6.0.1 - 2015-05-27 - -* Fixed a bug with serializing the `query` request option where the `&` - separator was missing. -* Added a better error message for when `body` is provided as an array. Please - use `form_params` or `multipart` instead. -* Various doc fixes. - -## 6.0.0 - 2015-05-26 - -* See the UPGRADING.md document for more information. -* Added `multipart` and `form_params` request options. -* Added `synchronous` request option. -* Added the `on_headers` request option. -* Fixed `expect` handling. -* No longer adding default middlewares in the client ctor. These need to be - present on the provided handler in order to work. -* Requests are no longer initiated when sending async requests with the - CurlMultiHandler. This prevents unexpected recursion from requests completing - while ticking the cURL loop. -* Removed the semantics of setting `default` to `true`. This is no longer - required now that the cURL loop is not ticked for async requests. -* Added request and response logging middleware. -* No longer allowing self signed certificates when using the StreamHandler. -* Ensuring that `sink` is valid if saving to a file. -* Request exceptions now include a "handler context" which provides handler - specific contextual information. -* Added `GuzzleHttp\RequestOptions` to allow request options to be applied - using constants. -* `$maxHandles` has been removed from CurlMultiHandler. -* `MultipartPostBody` is now part of the `guzzlehttp/psr7` package. - -## 5.3.0 - 2015-05-19 - -* Mock now supports `save_to` -* Marked `AbstractRequestEvent::getTransaction()` as public. -* Fixed a bug in which multiple headers using different casing would overwrite - previous headers in the associative array. -* Added `Utils::getDefaultHandler()` -* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated. -* URL scheme is now always lowercased. - -## 6.0.0-beta.1 - -* Requires PHP >= 5.5 -* Updated to use PSR-7 - * Requires immutable messages, which basically means an event based system - owned by a request instance is no longer possible. - * Utilizing the [Guzzle PSR-7 package](https://github.com/guzzle/psr7). - * Removed the dependency on `guzzlehttp/streams`. These stream abstractions - are available in the `guzzlehttp/psr7` package under the `GuzzleHttp\Psr7` - namespace. -* Added middleware and handler system - * Replaced the Guzzle event and subscriber system with a middleware system. - * No longer depends on RingPHP, but rather places the HTTP handlers directly - in Guzzle, operating on PSR-7 messages. - * Retry logic is now encapsulated in `GuzzleHttp\Middleware::retry`, which - means the `guzzlehttp/retry-subscriber` is now obsolete. - * Mocking responses is now handled using `GuzzleHttp\Handler\MockHandler`. -* Asynchronous responses - * No longer supports the `future` request option to send an async request. - Instead, use one of the `*Async` methods of a client (e.g., `requestAsync`, - `getAsync`, etc.). - * Utilizing `GuzzleHttp\Promise` instead of React's promise library to avoid - recursion required by chaining and forwarding react promises. See - https://github.com/guzzle/promises - * Added `requestAsync` and `sendAsync` to send request asynchronously. - * Added magic methods for `getAsync()`, `postAsync()`, etc. to send requests - asynchronously. -* Request options - * POST and form updates - * Added the `form_fields` and `form_files` request options. - * Removed the `GuzzleHttp\Post` namespace. - * The `body` request option no longer accepts an array for POST requests. - * The `exceptions` request option has been deprecated in favor of the - `http_errors` request options. - * The `save_to` request option has been deprecated in favor of `sink` request - option. -* Clients no longer accept an array of URI template string and variables for - URI variables. You will need to expand URI templates before passing them - into a client constructor or request method. -* Client methods `get()`, `post()`, `put()`, `patch()`, `options()`, etc. are - now magic methods that will send synchronous requests. -* Replaced `Utils.php` with plain functions in `functions.php`. -* Removed `GuzzleHttp\Collection`. -* Removed `GuzzleHttp\BatchResults`. Batched pool results are now returned as - an array. -* Removed `GuzzleHttp\Query`. Query string handling is now handled using an - associative array passed into the `query` request option. The query string - is serialized using PHP's `http_build_query`. If you need more control, you - can pass the query string in as a string. -* `GuzzleHttp\QueryParser` has been replaced with the - `GuzzleHttp\Psr7\parse_query`. - -## 5.2.0 - 2015-01-27 - -* Added `AppliesHeadersInterface` to make applying headers to a request based - on the body more generic and not specific to `PostBodyInterface`. -* Reduced the number of stack frames needed to send requests. -* Nested futures are now resolved in the client rather than the RequestFsm -* Finishing state transitions is now handled in the RequestFsm rather than the - RingBridge. -* Added a guard in the Pool class to not use recursion for request retries. - -## 5.1.0 - 2014-12-19 - -* Pool class no longer uses recursion when a request is intercepted. -* The size of a Pool can now be dynamically adjusted using a callback. - See https://github.com/guzzle/guzzle/pull/943. -* Setting a request option to `null` when creating a request with a client will - ensure that the option is not set. This allows you to overwrite default - request options on a per-request basis. - See https://github.com/guzzle/guzzle/pull/937. -* Added the ability to limit which protocols are allowed for redirects by - specifying a `protocols` array in the `allow_redirects` request option. -* Nested futures due to retries are now resolved when waiting for synchronous - responses. See https://github.com/guzzle/guzzle/pull/947. -* `"0"` is now an allowed URI path. See - https://github.com/guzzle/guzzle/pull/935. -* `Query` no longer typehints on the `$query` argument in the constructor, - allowing for strings and arrays. -* Exceptions thrown in the `end` event are now correctly wrapped with Guzzle - specific exceptions if necessary. - -## 5.0.3 - 2014-11-03 - -This change updates query strings so that they are treated as un-encoded values -by default where the value represents an un-encoded value to send over the -wire. A Query object then encodes the value before sending over the wire. This -means that even value query string values (e.g., ":") are url encoded. This -makes the Query class match PHP's http_build_query function. However, if you -want to send requests over the wire using valid query string characters that do -not need to be encoded, then you can provide a string to Url::setQuery() and -pass true as the second argument to specify that the query string is a raw -string that should not be parsed or encoded (unless a call to getQuery() is -subsequently made, forcing the query-string to be converted into a Query -object). - -## 5.0.2 - 2014-10-30 - -* Added a trailing `\r\n` to multipart/form-data payloads. See - https://github.com/guzzle/guzzle/pull/871 -* Added a `GuzzleHttp\Pool::send()` convenience method to match the docs. -* Status codes are now returned as integers. See - https://github.com/guzzle/guzzle/issues/881 -* No longer overwriting an existing `application/x-www-form-urlencoded` header - when sending POST requests, allowing for customized headers. See - https://github.com/guzzle/guzzle/issues/877 -* Improved path URL serialization. - - * No longer double percent-encoding characters in the path or query string if - they are already encoded. - * Now properly encoding the supplied path to a URL object, instead of only - encoding ' ' and '?'. - * Note: This has been changed in 5.0.3 to now encode query string values by - default unless the `rawString` argument is provided when setting the query - string on a URL: Now allowing many more characters to be present in the - query string without being percent encoded. See http://tools.ietf.org/html/rfc3986#appendix-A - -## 5.0.1 - 2014-10-16 - -Bugfix release. - -* Fixed an issue where connection errors still returned response object in - error and end events event though the response is unusable. This has been - corrected so that a response is not returned in the `getResponse` method of - these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867 -* Fixed an issue where transfer statistics were not being populated in the - RingBridge. https://github.com/guzzle/guzzle/issues/866 - -## 5.0.0 - 2014-10-12 - -Adding support for non-blocking responses and some minor API cleanup. - -### New Features - -* Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`. -* Added a public API for creating a default HTTP adapter. -* Updated the redirect plugin to be non-blocking so that redirects are sent - concurrently. Other plugins like this can now be updated to be non-blocking. -* Added a "progress" event so that you can get upload and download progress - events. -* Added `GuzzleHttp\Pool` which implements FutureInterface and transfers - requests concurrently using a capped pool size as efficiently as possible. -* Added `hasListeners()` to EmitterInterface. -* Removed `GuzzleHttp\ClientInterface::sendAll` and marked - `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the - recommended way). - -### Breaking changes - -The breaking changes in this release are relatively minor. The biggest thing to -look out for is that request and response objects no longer implement fluent -interfaces. - -* Removed the fluent interfaces (i.e., `return $this`) from requests, - responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`, - `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and - `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of - why I did this: http://ocramius.github.io/blog/fluent-interfaces-are-evil/. - This also makes the Guzzle message interfaces compatible with the current - PSR-7 message proposal. -* Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except - for the HTTP request functions from function.php, these functions are now - implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode` - moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to - `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to - `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be - `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php - caused problems for many users: they aren't PSR-4 compliant, require an - explicit include, and needed an if-guard to ensure that the functions are not - declared multiple times. -* Rewrote adapter layer. - * Removing all classes from `GuzzleHttp\Adapter`, these are now - implemented as callables that are stored in `GuzzleHttp\Ring\Client`. - * Removed the concept of "parallel adapters". Sending requests serially or - concurrently is now handled using a single adapter. - * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The - Transaction object now exposes the request, response, and client as public - properties. The getters and setters have been removed. -* Removed the "headers" event. This event was only useful for changing the - body a response once the headers of the response were known. You can implement - a similar behavior in a number of ways. One example might be to use a - FnStream that has access to the transaction being sent. For example, when the - first byte is written, you could check if the response headers match your - expectations, and if so, change the actual stream body that is being - written to. -* Removed the `asArray` parameter from - `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header - value as an array, then use the newly added `getHeaderAsArray()` method of - `MessageInterface`. This change makes the Guzzle interfaces compatible with - the PSR-7 interfaces. -* `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add - custom request options using double-dispatch (this was an implementation - detail). Instead, you should now provide an associative array to the - constructor which is a mapping of the request option name mapping to a - function that applies the option value to a request. -* Removed the concept of "throwImmediately" from exceptions and error events. - This control mechanism was used to stop a transfer of concurrent requests - from completing. This can now be handled by throwing the exception or by - cancelling a pool of requests or each outstanding future request individually. -* Updated to "GuzzleHttp\Streams" 3.0. - * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a - `maxLen` parameter. This update makes the Guzzle streams project - compatible with the current PSR-7 proposal. - * `GuzzleHttp\Stream\Stream::__construct`, - `GuzzleHttp\Stream\Stream::factory`, and - `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second - argument. They now accept an associative array of options, including the - "size" key and "metadata" key which can be used to provide custom metadata. - -## 4.2.2 - 2014-09-08 - -* Fixed a memory leak in the CurlAdapter when reusing cURL handles. -* No longer using `request_fulluri` in stream adapter proxies. -* Relative redirects are now based on the last response, not the first response. - -## 4.2.1 - 2014-08-19 - -* Ensuring that the StreamAdapter does not always add a Content-Type header -* Adding automated github releases with a phar and zip - -## 4.2.0 - 2014-08-17 - -* Now merging in default options using a case-insensitive comparison. - Closes https://github.com/guzzle/guzzle/issues/767 -* Added the ability to automatically decode `Content-Encoding` response bodies - using the `decode_content` request option. This is set to `true` by default - to decode the response body if it comes over the wire with a - `Content-Encoding`. Set this value to `false` to disable decoding the - response content, and pass a string to provide a request `Accept-Encoding` - header and turn on automatic response decoding. This feature now allows you - to pass an `Accept-Encoding` header in the headers of a request but still - disable automatic response decoding. - Closes https://github.com/guzzle/guzzle/issues/764 -* Added the ability to throw an exception immediately when transferring - requests in parallel. Closes https://github.com/guzzle/guzzle/issues/760 -* Updating guzzlehttp/streams dependency to ~2.1 -* No longer utilizing the now deprecated namespaced methods from the stream - package. - -## 4.1.8 - 2014-08-14 - -* Fixed an issue in the CurlFactory that caused setting the `stream=false` - request option to throw an exception. - See: https://github.com/guzzle/guzzle/issues/769 -* TransactionIterator now calls rewind on the inner iterator. - See: https://github.com/guzzle/guzzle/pull/765 -* You can now set the `Content-Type` header to `multipart/form-data` - when creating POST requests to force multipart bodies. - See https://github.com/guzzle/guzzle/issues/768 - -## 4.1.7 - 2014-08-07 - -* Fixed an error in the HistoryPlugin that caused the same request and response - to be logged multiple times when an HTTP protocol error occurs. -* Ensuring that cURL does not add a default Content-Type when no Content-Type - has been supplied by the user. This prevents the adapter layer from modifying - the request that is sent over the wire after any listeners may have already - put the request in a desired state (e.g., signed the request). -* Throwing an exception when you attempt to send requests that have the - "stream" set to true in parallel using the MultiAdapter. -* Only calling curl_multi_select when there are active cURL handles. This was - previously changed and caused performance problems on some systems due to PHP - always selecting until the maximum select timeout. -* Fixed a bug where multipart/form-data POST fields were not correctly - aggregated (e.g., values with "&"). - -## 4.1.6 - 2014-08-03 - -* Added helper methods to make it easier to represent messages as strings, - including getting the start line and getting headers as a string. - -## 4.1.5 - 2014-08-02 - -* Automatically retrying cURL "Connection died, retrying a fresh connect" - errors when possible. -* cURL implementation cleanup -* Allowing multiple event subscriber listeners to be registered per event by - passing an array of arrays of listener configuration. - -## 4.1.4 - 2014-07-22 - -* Fixed a bug that caused multi-part POST requests with more than one field to - serialize incorrectly. -* Paths can now be set to "0" -* `ResponseInterface::xml` now accepts a `libxml_options` option and added a - missing default argument that was required when parsing XML response bodies. -* A `save_to` stream is now created lazily, which means that files are not - created on disk unless a request succeeds. - -## 4.1.3 - 2014-07-15 - -* Various fixes to multipart/form-data POST uploads -* Wrapping function.php in an if-statement to ensure Guzzle can be used - globally and in a Composer install -* Fixed an issue with generating and merging in events to an event array -* POST headers are only applied before sending a request to allow you to change - the query aggregator used before uploading -* Added much more robust query string parsing -* Fixed various parsing and normalization issues with URLs -* Fixing an issue where multi-valued headers were not being utilized correctly - in the StreamAdapter - -## 4.1.2 - 2014-06-18 - -* Added support for sending payloads with GET requests - -## 4.1.1 - 2014-06-08 - -* Fixed an issue related to using custom message factory options in subclasses -* Fixed an issue with nested form fields in a multi-part POST -* Fixed an issue with using the `json` request option for POST requests -* Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar` - -## 4.1.0 - 2014-05-27 - -* Added a `json` request option to easily serialize JSON payloads. -* Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON. -* Added `setPort()` and `getPort()` to `GuzzleHttp\Message\RequestInterface`. -* Added the ability to provide an emitter to a client in the client constructor. -* Added the ability to persist a cookie session using $_SESSION. -* Added a trait that can be used to add event listeners to an iterator. -* Removed request method constants from RequestInterface. -* Fixed warning when invalid request start-lines are received. -* Updated MessageFactory to work with custom request option methods. -* Updated cacert bundle to latest build. - -4.0.2 (2014-04-16) ------------------- - -* Proxy requests using the StreamAdapter now properly use request_fulluri (#632) -* Added the ability to set scalars as POST fields (#628) - -## 4.0.1 - 2014-04-04 - -* The HTTP status code of a response is now set as the exception code of - RequestException objects. -* 303 redirects will now correctly switch from POST to GET requests. -* The default parallel adapter of a client now correctly uses the MultiAdapter. -* HasDataTrait now initializes the internal data array as an empty array so - that the toArray() method always returns an array. - -## 4.0.0 - 2014-03-29 - -* For more information on the 4.0 transition, see: - http://mtdowling.com/blog/2014/03/15/guzzle-4-rc/ -* For information on changes and upgrading, see: - https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 -* Added `GuzzleHttp\batch()` as a convenience function for sending requests in - parallel without needing to write asynchronous code. -* Restructured how events are added to `GuzzleHttp\ClientInterface::sendAll()`. - You can now pass a callable or an array of associative arrays where each - associative array contains the "fn", "priority", and "once" keys. - -## 4.0.0.rc-2 - 2014-03-25 - -* Removed `getConfig()` and `setConfig()` from clients to avoid confusion - around whether things like base_url, message_factory, etc. should be able to - be retrieved or modified. -* Added `getDefaultOption()` and `setDefaultOption()` to ClientInterface -* functions.php functions were renamed using snake_case to match PHP idioms -* Added support for `HTTP_PROXY`, `HTTPS_PROXY`, and - `GUZZLE_CURL_SELECT_TIMEOUT` environment variables -* Added the ability to specify custom `sendAll()` event priorities -* Added the ability to specify custom stream context options to the stream - adapter. -* Added a functions.php function for `get_path()` and `set_path()` -* CurlAdapter and MultiAdapter now use a callable to generate curl resources -* MockAdapter now properly reads a body and emits a `headers` event -* Updated Url class to check if a scheme and host are set before adding ":" - and "//". This allows empty Url (e.g., "") to be serialized as "". -* Parsing invalid XML no longer emits warnings -* Curl classes now properly throw AdapterExceptions -* Various performance optimizations -* Streams are created with the faster `Stream\create()` function -* Marked deprecation_proxy() as internal -* Test server is now a collection of static methods on a class - -## 4.0.0-rc.1 - 2014-03-15 - -* See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 - -## 3.8.1 - 2014-01-28 - -* Bug: Always using GET requests when redirecting from a 303 response -* Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in - `Guzzle\Http\ClientInterface::setSslVerification()` -* Bug: RedirectPlugin now uses strict RFC 3986 compliance when combining a base URL with a relative URL -* Bug: The body of a request can now be set to `"0"` -* Sending PHP stream requests no longer forces `HTTP/1.0` -* Adding more information to ExceptionCollection exceptions so that users have more context, including a stack trace of - each sub-exception -* Updated the `$ref` attribute in service descriptions to merge over any existing parameters of a schema (rather than - clobbering everything). -* Merging URLs will now use the query string object from the relative URL (thus allowing custom query aggregators) -* Query strings are now parsed in a way that they do no convert empty keys with no value to have a dangling `=`. - For example `foo&bar=baz` is now correctly parsed and recognized as `foo&bar=baz` rather than `foo=&bar=baz`. -* Now properly escaping the regular expression delimiter when matching Cookie domains. -* Network access is now disabled when loading XML documents - -## 3.8.0 - 2013-12-05 - -* Added the ability to define a POST name for a file -* JSON response parsing now properly walks additionalProperties -* cURL error code 18 is now retried automatically in the BackoffPlugin -* Fixed a cURL error when URLs contain fragments -* Fixed an issue in the BackoffPlugin retry event where it was trying to access all exceptions as if they were - CurlExceptions -* CURLOPT_PROGRESS function fix for PHP 5.5 (69fcc1e) -* Added the ability for Guzzle to work with older versions of cURL that do not support `CURLOPT_TIMEOUT_MS` -* Fixed a bug that was encountered when parsing empty header parameters -* UriTemplate now has a `setRegex()` method to match the docs -* The `debug` request parameter now checks if it is truthy rather than if it exists -* Setting the `debug` request parameter to true shows verbose cURL output instead of using the LogPlugin -* Added the ability to combine URLs using strict RFC 3986 compliance -* Command objects can now return the validation errors encountered by the command -* Various fixes to cache revalidation (#437 and 29797e5) -* Various fixes to the AsyncPlugin -* Cleaned up build scripts - -## 3.7.4 - 2013-10-02 - -* Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430) -* Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp - (see https://github.com/aws/aws-sdk-php/issues/147) -* Bug fix: Cleaned up and fixed URL dot segment removal to properly resolve internal dots -* Minimum PHP version is now properly specified as 5.3.3 (up from 5.3.2) (#420) -* Updated the bundled cacert.pem (#419) -* OauthPlugin now supports adding authentication to headers or query string (#425) - -## 3.7.3 - 2013-09-08 - -* Added the ability to get the exception associated with a request/command when using `MultiTransferException` and - `CommandTransferException`. -* Setting `additionalParameters` of a response to false is now honored when parsing responses with a service description -* Schemas are only injected into response models when explicitly configured. -* No longer guessing Content-Type based on the path of a request. Content-Type is now only guessed based on the path of - an EntityBody. -* Bug fix: ChunkedIterator can now properly chunk a \Traversable as well as an \Iterator. -* Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`. -* Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody() -* Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin -* Bug fix: Visiting XML attributes first before visiting XML children when serializing requests -* Bug fix: Properly parsing headers that contain commas contained in quotes -* Bug fix: mimetype guessing based on a filename is now case-insensitive - -## 3.7.2 - 2013-08-02 - -* Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander - See https://github.com/guzzle/guzzle/issues/371 -* Bug fix: Cookie domains are now matched correctly according to RFC 6265 - See https://github.com/guzzle/guzzle/issues/377 -* Bug fix: GET parameters are now used when calculating an OAuth signature -* Bug fix: Fixed an issue with cache revalidation where the If-None-Match header was being double quoted -* `Guzzle\Common\AbstractHasDispatcher::dispatch()` now returns the event that was dispatched -* `Guzzle\Http\QueryString::factory()` now guesses the most appropriate query aggregator to used based on the input. - See https://github.com/guzzle/guzzle/issues/379 -* Added a way to add custom domain objects to service description parsing using the `operation.parse_class` event. See - https://github.com/guzzle/guzzle/pull/380 -* cURL multi cleanup and optimizations - -## 3.7.1 - 2013-07-05 - -* Bug fix: Setting default options on a client now works -* Bug fix: Setting options on HEAD requests now works. See #352 -* Bug fix: Moving stream factory before send event to before building the stream. See #353 -* Bug fix: Cookies no longer match on IP addresses per RFC 6265 -* Bug fix: Correctly parsing header parameters that are in `<>` and quotes -* Added `cert` and `ssl_key` as request options -* `Host` header can now diverge from the host part of a URL if the header is set manually -* `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter -* OAuth parameters are only added via the plugin if they aren't already set -* Exceptions are now thrown when a URL cannot be parsed -* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails -* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin - -## 3.7.0 - 2013-06-10 - -* See UPGRADING.md for more information on how to upgrade. -* Requests now support the ability to specify an array of $options when creating a request to more easily modify a - request. You can pass a 'request.options' configuration setting to a client to apply default request options to - every request created by a client (e.g. default query string variables, headers, curl options, etc.). -* Added a static facade class that allows you to use Guzzle with static methods and mount the class to `\Guzzle`. - See `Guzzle\Http\StaticClient::mount`. -* Added `command.request_options` to `Guzzle\Service\Command\AbstractCommand` to pass request options to requests - created by a command (e.g. custom headers, query string variables, timeout settings, etc.). -* Stream size in `Guzzle\Stream\PhpStreamRequestFactory` will now be set if Content-Length is returned in the - headers of a response -* Added `Guzzle\Common\Collection::setPath($path, $value)` to set a value into an array using a nested key - (e.g. `$collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];`) -* ServiceBuilders now support storing and retrieving arbitrary data -* CachePlugin can now purge all resources for a given URI -* CachePlugin can automatically purge matching cached items when a non-idempotent request is sent to a resource -* CachePlugin now uses the Vary header to determine if a resource is a cache hit -* `Guzzle\Http\Message\Response` now implements `\Serializable` -* Added `Guzzle\Cache\CacheAdapterFactory::fromCache()` to more easily create cache adapters -* `Guzzle\Service\ClientInterface::execute()` now accepts an array, single command, or Traversable -* Fixed a bug in `Guzzle\Http\Message\Header\Link::addLink()` -* Better handling of calculating the size of a stream in `Guzzle\Stream\Stream` using fstat() and caching the size -* `Guzzle\Common\Exception\ExceptionCollection` now creates a more readable exception message -* Fixing BC break: Added back the MonologLogAdapter implementation rather than extending from PsrLog so that older - Symfony users can still use the old version of Monolog. -* Fixing BC break: Added the implementation back in for `Guzzle\Http\Message\AbstractMessage::getTokenizedHeader()`. - Now triggering an E_USER_DEPRECATED warning when used. Use `$message->getHeader()->parseParams()`. -* Several performance improvements to `Guzzle\Common\Collection` -* Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`: - createRequest, head, delete, put, patch, post, options, prepareRequest -* Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()` -* Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface` -* Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to - `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a - resource, string, or EntityBody into the $options parameter to specify the download location of the response. -* Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a - default `array()` -* Added `Guzzle\Stream\StreamInterface::isRepeatable` -* Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use - $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or - $client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`. -* Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers')`. -* Removed `Guzzle\Http\ClientInterface::expandTemplate()` -* Removed `Guzzle\Http\ClientInterface::setRequestFactory()` -* Removed `Guzzle\Http\ClientInterface::getCurlMulti()` -* Removed `Guzzle\Http\Message\RequestInterface::canCache` -* Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect` -* Removed `Guzzle\Http\Message\RequestInterface::isRedirect` -* Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods. -* You can now enable E_USER_DEPRECATED warnings to see if you are using a deprecated method by setting - `Guzzle\Common\Version::$emitWarnings` to true. -* Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use - `$request->getResponseBody()->isRepeatable()` instead. -* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use - `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. -* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use - `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. -* Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead. -* Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead. -* Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated -* Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. - These will work through Guzzle 4.0 -* Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params]. -* Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client. -* Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`. -* Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. -* Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8. -* Marked `Guzzle\Common\Collection::inject()` as deprecated. -* Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');` -* CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a - CacheStorageInterface. These two objects and interface will be removed in a future version. -* Always setting X-cache headers on cached responses -* Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin -* `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface - $request, Response $response);` -* `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);` -* `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);` -* Added `CacheStorageInterface::purge($url)` -* `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin - $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache, - CanCacheStrategyInterface $canCache = null)` -* Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)` - -## 3.6.0 - 2013-05-29 - -* ServiceDescription now implements ToArrayInterface -* Added command.hidden_params to blacklist certain headers from being treated as additionalParameters -* Guzzle can now correctly parse incomplete URLs -* Mixed casing of headers are now forced to be a single consistent casing across all values for that header. -* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution -* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader(). -* Specific header implementations can be created for complex headers. When a message creates a header, it uses a - HeaderFactory which can map specific headers to specific header classes. There is now a Link header and - CacheControl header implementation. -* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate -* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti() -* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in - Guzzle\Http\Curl\RequestMediator -* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string. -* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface -* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders() -* Removed Guzzle\Parser\ParserRegister::get(). Use getParser() -* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser(). -* All response header helper functions return a string rather than mixing Header objects and strings inconsistently -* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle - directly via interfaces -* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist - but are a no-op until removed. -* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a - `Guzzle\Service\Command\ArrayCommandInterface`. -* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response - on a request while the request is still being transferred -* The ability to case-insensitively search for header values -* Guzzle\Http\Message\Header::hasExactHeader -* Guzzle\Http\Message\Header::raw. Use getAll() -* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object - instead. -* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess -* Added the ability to cast Model objects to a string to view debug information. - -## 3.5.0 - 2013-05-13 - -* Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times -* Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove - itself from the EventDispatcher) -* Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values -* Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too -* Bug: Fixed an undefined index error when parsing nested JSON responses with a sentAs parameter that reference a - non-existent key -* Bug: All __call() method arguments are now required (helps with mocking frameworks) -* Deprecating Response::getRequest() and now using a shallow clone of a request object to remove a circular reference - to help with refcount based garbage collection of resources created by sending a request -* Deprecating ZF1 cache and log adapters. These will be removed in the next major version. -* Deprecating `Response::getPreviousResponse()` (method signature still exists, but it's deprecated). Use the - HistoryPlugin for a history. -* Added a `responseBody` alias for the `response_body` location -* Refactored internals to no longer rely on Response::getRequest() -* HistoryPlugin can now be cast to a string -* HistoryPlugin now logs transactions rather than requests and responses to more accurately keep track of the requests - and responses that are sent over the wire -* Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects - -## 3.4.3 - 2013-04-30 - -* Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response -* Added a check to re-extract the temp cacert bundle from the phar before sending each request - -## 3.4.2 - 2013-04-29 - -* Bug fix: Stream objects now work correctly with "a" and "a+" modes -* Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present -* Bug fix: AsyncPlugin no longer forces HEAD requests -* Bug fix: DateTime timezones are now properly handled when using the service description schema formatter -* Bug fix: CachePlugin now properly handles stale-if-error directives when a request to the origin server fails -* Setting a response on a request will write to the custom request body from the response body if one is specified -* LogPlugin now writes to php://output when STDERR is undefined -* Added the ability to set multiple POST files for the same key in a single call -* application/x-www-form-urlencoded POSTs now use the utf-8 charset by default -* Added the ability to queue CurlExceptions to the MockPlugin -* Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send) -* Configuration loading now allows remote files - -## 3.4.1 - 2013-04-16 - -* Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti - handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost. -* Exceptions are now properly grouped when sending requests in parallel -* Redirects are now properly aggregated when a multi transaction fails -* Redirects now set the response on the original object even in the event of a failure -* Bug fix: Model names are now properly set even when using $refs -* Added support for PHP 5.5's CurlFile to prevent warnings with the deprecated @ syntax -* Added support for oauth_callback in OAuth signatures -* Added support for oauth_verifier in OAuth signatures -* Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection - -## 3.4.0 - 2013-04-11 - -* Bug fix: URLs are now resolved correctly based on http://tools.ietf.org/html/rfc3986#section-5.2. #289 -* Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289 -* Bug fix: Parsing a query string with a single PHP array value will now result in an array. #263 -* Bug fix: Better normalization of the User-Agent header to prevent duplicate headers. #264. -* Bug fix: Added `number` type to service descriptions. -* Bug fix: empty parameters are removed from an OAuth signature -* Bug fix: Revalidating a cache entry prefers the Last-Modified over the Date header -* Bug fix: Fixed "array to string" error when validating a union of types in a service description -* Bug fix: Removed code that attempted to determine the size of a stream when data is written to the stream -* Bug fix: Not including an `oauth_token` if the value is null in the OauthPlugin. -* Bug fix: Now correctly aggregating successful requests and failed requests in CurlMulti when a redirect occurs. -* The new default CURLOPT_TIMEOUT setting has been increased to 150 seconds so that Guzzle works on poor connections. -* Added a feature to EntityEnclosingRequest::setBody() that will automatically set the Content-Type of the request if - the Content-Type can be determined based on the entity body or the path of the request. -* Added the ability to overwrite configuration settings in a client when grabbing a throwaway client from a builder. -* Added support for a PSR-3 LogAdapter. -* Added a `command.after_prepare` event -* Added `oauth_callback` parameter to the OauthPlugin -* Added the ability to create a custom stream class when using a stream factory -* Added a CachingEntityBody decorator -* Added support for `additionalParameters` in service descriptions to define how custom parameters are serialized. -* The bundled SSL certificate is now provided in the phar file and extracted when running Guzzle from a phar. -* You can now send any EntityEnclosingRequest with POST fields or POST files and cURL will handle creating bodies -* POST requests using a custom entity body are now treated exactly like PUT requests but with a custom cURL method. This - means that the redirect behavior of POST requests with custom bodies will not be the same as POST requests that use - POST fields or files (the latter is only used when emulating a form POST in the browser). -* Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest - -## 3.3.1 - 2013-03-10 - -* Added the ability to create PHP streaming responses from HTTP requests -* Bug fix: Running any filters when parsing response headers with service descriptions -* Bug fix: OauthPlugin fixes to allow for multi-dimensional array signing, and sorting parameters before signing -* Bug fix: Removed the adding of default empty arrays and false Booleans to responses in order to be consistent across - response location visitors. -* Bug fix: Removed the possibility of creating configuration files with circular dependencies -* RequestFactory::create() now uses the key of a POST file when setting the POST file name -* Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set - -## 3.3.0 - 2013-03-03 - -* A large number of performance optimizations have been made -* Bug fix: Added 'wb' as a valid write mode for streams -* Bug fix: `Guzzle\Http\Message\Response::json()` now allows scalar values to be returned -* Bug fix: Fixed bug in `Guzzle\Http\Message\Response` where wrapping quotes were stripped from `getEtag()` -* BC: Removed `Guzzle\Http\Utils` class -* BC: Setting a service description on a client will no longer modify the client's command factories. -* BC: Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using - the 'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io' -* BC: `Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getSteamType()` are no longer converted to - lowercase -* Operation parameter objects are now lazy loaded internally -* Added ErrorResponsePlugin that can throw errors for responses defined in service description operations' errorResponses -* Added support for instantiating responseType=class responseClass classes. Classes must implement - `Guzzle\Service\Command\ResponseClassInterface` -* Added support for additionalProperties for top-level parameters in responseType=model responseClasses. These - additional properties also support locations and can be used to parse JSON responses where the outermost part of the - JSON is an array -* Added support for nested renaming of JSON models (rename sentAs to name) -* CachePlugin - * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error - * Debug headers can now added to cached response in the CachePlugin - -## 3.2.0 - 2013-02-14 - -* CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients. -* URLs with no path no longer contain a "/" by default -* Guzzle\Http\QueryString does no longer manages the leading "?". This is now handled in Guzzle\Http\Url. -* BadResponseException no longer includes the full request and response message -* Adding setData() to Guzzle\Service\Description\ServiceDescriptionInterface -* Adding getResponseBody() to Guzzle\Http\Message\RequestInterface -* Various updates to classes to use ServiceDescriptionInterface type hints rather than ServiceDescription -* Header values can now be normalized into distinct values when multiple headers are combined with a comma separated list -* xmlEncoding can now be customized for the XML declaration of a XML service description operation -* Guzzle\Http\QueryString now uses Guzzle\Http\QueryAggregator\QueryAggregatorInterface objects to add custom value - aggregation and no longer uses callbacks -* The URL encoding implementation of Guzzle\Http\QueryString can now be customized -* Bug fix: Filters were not always invoked for array service description parameters -* Bug fix: Redirects now use a target response body rather than a temporary response body -* Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded -* Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives - -## 3.1.2 - 2013-01-27 - -* Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the - response body. For example, the XmlVisitor now parses the XML response into an array in the before() method. -* Fixed an issue where cURL would not automatically decompress responses when the Accept-Encoding header was sent -* CURLOPT_SSL_VERIFYHOST is never set to 1 because it is deprecated (see 5e0ff2ef20f839e19d1eeb298f90ba3598784444) -* Fixed a bug where redirect responses were not chained correctly using getPreviousResponse() -* Setting default headers on a client after setting the user-agent will not erase the user-agent setting - -## 3.1.1 - 2013-01-20 - -* Adding wildcard support to Guzzle\Common\Collection::getPath() -* Adding alias support to ServiceBuilder configs -* Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface - -## 3.1.0 - 2013-01-12 - -* BC: CurlException now extends from RequestException rather than BadResponseException -* BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse() -* Added getData to ServiceDescriptionInterface -* Added context array to RequestInterface::setState() -* Bug: Removing hard dependency on the BackoffPlugin from Guzzle\Http -* Bug: Adding required content-type when JSON request visitor adds JSON to a command -* Bug: Fixing the serialization of a service description with custom data -* Made it easier to deal with exceptions thrown when transferring commands or requests in parallel by providing - an array of successful and failed responses -* Moved getPath from Guzzle\Service\Resource\Model to Guzzle\Common\Collection -* Added Guzzle\Http\IoEmittingEntityBody -* Moved command filtration from validators to location visitors -* Added `extends` attributes to service description parameters -* Added getModels to ServiceDescriptionInterface - -## 3.0.7 - 2012-12-19 - -* Fixing phar detection when forcing a cacert to system if null or true -* Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()` -* Cleaning up `Guzzle\Common\Collection::inject` method -* Adding a response_body location to service descriptions - -## 3.0.6 - 2012-12-09 - -* CurlMulti performance improvements -* Adding setErrorResponses() to Operation -* composer.json tweaks - -## 3.0.5 - 2012-11-18 - -* Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin -* Bug: Response body can now be a string containing "0" -* Bug: Using Guzzle inside of a phar uses system by default but now allows for a custom cacert -* Bug: QueryString::fromString now properly parses query string parameters that contain equal signs -* Added support for XML attributes in service description responses -* DefaultRequestSerializer now supports array URI parameter values for URI template expansion -* Added better mimetype guessing to requests and post files - -## 3.0.4 - 2012-11-11 - -* Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value -* Bug: Cookies can now be added that have a name, domain, or value set to "0" -* Bug: Using the system cacert bundle when using the Phar -* Added json and xml methods to Response to make it easier to parse JSON and XML response data into data structures -* Enhanced cookie jar de-duplication -* Added the ability to enable strict cookie jars that throw exceptions when invalid cookies are added -* Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies -* Added the ability to create any sort of hash for a stream rather than just an MD5 hash - -## 3.0.3 - 2012-11-04 - -* Implementing redirects in PHP rather than cURL -* Added PECL URI template extension and using as default parser if available -* Bug: Fixed Content-Length parsing of Response factory -* Adding rewind() method to entity bodies and streams. Allows for custom rewinding of non-repeatable streams. -* Adding ToArrayInterface throughout library -* Fixing OauthPlugin to create unique nonce values per request - -## 3.0.2 - 2012-10-25 - -* Magic methods are enabled by default on clients -* Magic methods return the result of a command -* Service clients no longer require a base_url option in the factory -* Bug: Fixed an issue with URI templates where null template variables were being expanded - -## 3.0.1 - 2012-10-22 - -* Models can now be used like regular collection objects by calling filter, map, etc. -* Models no longer require a Parameter structure or initial data in the constructor -* Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator` - -## 3.0.0 - 2012-10-15 - -* Rewrote service description format to be based on Swagger - * Now based on JSON schema - * Added nested input structures and nested response models - * Support for JSON and XML input and output models - * Renamed `commands` to `operations` - * Removed dot class notation - * Removed custom types -* Broke the project into smaller top-level namespaces to be more component friendly -* Removed support for XML configs and descriptions. Use arrays or JSON files. -* Removed the Validation component and Inspector -* Moved all cookie code to Guzzle\Plugin\Cookie -* Magic methods on a Guzzle\Service\Client now return the command un-executed. -* Calling getResult() or getResponse() on a command will lazily execute the command if needed. -* Now shipping with cURL's CA certs and using it by default -* Added previousResponse() method to response objects -* No longer sending Accept and Accept-Encoding headers on every request -* Only sending an Expect header by default when a payload is greater than 1MB -* Added/moved client options: - * curl.blacklist to curl.option.blacklist - * Added ssl.certificate_authority -* Added a Guzzle\Iterator component -* Moved plugins from Guzzle\Http\Plugin to Guzzle\Plugin -* Added a more robust backoff retry strategy (replaced the ExponentialBackoffPlugin) -* Added a more robust caching plugin -* Added setBody to response objects -* Updating LogPlugin to use a more flexible MessageFormatter -* Added a completely revamped build process -* Cleaning up Collection class and removing default values from the get method -* Fixed ZF2 cache adapters - -## 2.8.8 - 2012-10-15 - -* Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did - -## 2.8.7 - 2012-09-30 - -* Bug: Fixed config file aliases for JSON includes -* Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests -* Bug: Removing the path to a file when sending a Content-Disposition header on a POST upload -* Bug: Hardening request and response parsing to account for missing parts -* Bug: Fixed PEAR packaging -* Bug: Fixed Request::getInfo -* Bug: Fixed cases where CURLM_CALL_MULTI_PERFORM return codes were causing curl transactions to fail -* Adding the ability for the namespace Iterator factory to look in multiple directories -* Added more getters/setters/removers from service descriptions -* Added the ability to remove POST fields from OAuth signatures -* OAuth plugin now supports 2-legged OAuth - -## 2.8.6 - 2012-09-05 - -* Added the ability to modify and build service descriptions -* Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command -* Added a `json` parameter location -* Now allowing dot notation for classes in the CacheAdapterFactory -* Using the union of two arrays rather than an array_merge when extending service builder services and service params -* Ensuring that a service is a string before doing strpos() checks on it when substituting services for references - in service builder config files. -* Services defined in two different config files that include one another will by default replace the previously - defined service, but you can now create services that extend themselves and merge their settings over the previous -* The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like - '_default' with a default JSON configuration file. - -## 2.8.5 - 2012-08-29 - -* Bug: Suppressed empty arrays from URI templates -* Bug: Added the missing $options argument from ServiceDescription::factory to enable caching -* Added support for HTTP responses that do not contain a reason phrase in the start-line -* AbstractCommand commands are now invokable -* Added a way to get the data used when signing an Oauth request before a request is sent - -## 2.8.4 - 2012-08-15 - -* Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin -* Added the ability to transfer entity bodies as a string rather than streamed. This gets around curl error 65. Set `body_as_string` in a request's curl options to enable. -* Added a StreamInterface, EntityBodyInterface, and added ftell() to Guzzle\Common\Stream -* Added an AbstractEntityBodyDecorator and a ReadLimitEntityBody decorator to transfer only a subset of a decorated stream -* Stream and EntityBody objects will now return the file position to the previous position after a read required operation (e.g. getContentMd5()) -* Added additional response status codes -* Removed SSL information from the default User-Agent header -* DELETE requests can now send an entity body -* Added an EventDispatcher to the ExponentialBackoffPlugin and added an ExponentialBackoffLogger to log backoff retries -* Added the ability of the MockPlugin to consume mocked request bodies -* LogPlugin now exposes request and response objects in the extras array - -## 2.8.3 - 2012-07-30 - -* Bug: Fixed a case where empty POST requests were sent as GET requests -* Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body -* Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new -* Added multiple inheritance to service description commands -* Added an ApiCommandInterface and added `getParamNames()` and `hasParam()` -* Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything -* Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles - -## 2.8.2 - 2012-07-24 - -* Bug: Query string values set to 0 are no longer dropped from the query string -* Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()` -* Bug: `+` is now treated as an encoded space when parsing query strings -* QueryString and Collection performance improvements -* Allowing dot notation for class paths in filters attribute of a service descriptions - -## 2.8.1 - 2012-07-16 - -* Loosening Event Dispatcher dependency -* POST redirects can now be customized using CURLOPT_POSTREDIR - -## 2.8.0 - 2012-07-15 - -* BC: Guzzle\Http\Query - * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl) - * Changed isEncodingValues() and isEncodingFields() to isUrlEncoding() - * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool) - * Changed the aggregation functions of QueryString to be static methods - * Can now use fromString() with querystrings that have a leading ? -* cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters -* Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body -* Cookies are no longer URL decoded by default -* Bug: URI template variables set to null are no longer expanded - -## 2.7.2 - 2012-07-02 - -* BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser. -* BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty() -* CachePlugin now allows for a custom request parameter function to check if a request can be cached -* Bug fix: CachePlugin now only caches GET and HEAD requests by default -* Bug fix: Using header glue when transferring headers over the wire -* Allowing deeply nested arrays for composite variables in URI templates -* Batch divisors can now return iterators or arrays - -## 2.7.1 - 2012-06-26 - -* Minor patch to update version number in UA string -* Updating build process - -## 2.7.0 - 2012-06-25 - -* BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes. -* BC: Removed magic setX methods from commands -* BC: Magic methods mapped to service description commands are now inflected in the command factory rather than the client __call() method -* Verbose cURL options are no longer enabled by default. Set curl.debug to true on a client to enable. -* Bug: Now allowing colons in a response start-line (e.g. HTTP/1.1 503 Service Unavailable: Back-end server is at capacity) -* Guzzle\Service\Resource\ResourceIteratorApplyBatched now internally uses the Guzzle\Common\Batch namespace -* Added Guzzle\Service\Plugin namespace and a PluginCollectionPlugin -* Added the ability to set POST fields and files in a service description -* Guzzle\Http\EntityBody::factory() now accepts objects with a __toString() method -* Adding a command.before_prepare event to clients -* Added BatchClosureTransfer and BatchClosureDivisor -* BatchTransferException now includes references to the batch divisor and transfer strategies -* Fixed some tests so that they pass more reliably -* Added Guzzle\Common\Log\ArrayLogAdapter - -## 2.6.6 - 2012-06-10 - -* BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin -* BC: Removing Guzzle\Service\Command\CommandSet -* Adding generic batching system (replaces the batch queue plugin and command set) -* Updating ZF cache and log adapters and now using ZF's composer repository -* Bug: Setting the name of each ApiParam when creating through an ApiCommand -* Adding result_type, result_doc, deprecated, and doc_url to service descriptions -* Bug: Changed the default cookie header casing back to 'Cookie' - -## 2.6.5 - 2012-06-03 - -* BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource() -* BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from -* BC: Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie data -* BC: Renaming methods in the CookieJarInterface -* Moving almost all cookie logic out of the CookiePlugin and into the Cookie or CookieJar implementations -* Making the default glue for HTTP headers ';' instead of ',' -* Adding a removeValue to Guzzle\Http\Message\Header -* Adding getCookies() to request interface. -* Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber() - -## 2.6.4 - 2012-05-30 - -* BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class. -* BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand -* Bug: Fixing magic method command calls on clients -* Bug: Email constraint only validates strings -* Bug: Aggregate POST fields when POST files are present in curl handle -* Bug: Fixing default User-Agent header -* Bug: Only appending or prepending parameters in commands if they are specified -* Bug: Not requiring response reason phrases or status codes to match a predefined list of codes -* Allowing the use of dot notation for class namespaces when using instance_of constraint -* Added any_match validation constraint -* Added an AsyncPlugin -* Passing request object to the calculateWait method of the ExponentialBackoffPlugin -* Allowing the result of a command object to be changed -* Parsing location and type sub values when instantiating a service description rather than over and over at runtime - -## 2.6.3 - 2012-05-23 - -* [BC] Guzzle\Common\FromConfigInterface no longer requires any config options. -* [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields. -* You can now use an array of data when creating PUT request bodies in the request factory. -* Removing the requirement that HTTPS requests needed a Cache-Control: public directive to be cacheable. -* [Http] Adding support for Content-Type in multipart POST uploads per upload -* [Http] Added support for uploading multiple files using the same name (foo[0], foo[1]) -* Adding more POST data operations for easier manipulation of POST data. -* You can now set empty POST fields. -* The body of a request is only shown on EntityEnclosingRequest objects that do not use POST files. -* Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate. -* CS updates - -## 2.6.2 - 2012-05-19 - -* [Http] Better handling of nested scope requests in CurlMulti. Requests are now always prepares in the send() method rather than the addRequest() method. - -## 2.6.1 - 2012-05-19 - -* [BC] Removing 'path' support in service descriptions. Use 'uri'. -* [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache. -* [BC] Removing Guzzle\Common\NullObject. Use https://github.com/mtdowling/NullObject if you need it. -* [BC] Removing Guzzle\Common\XmlElement. -* All commands, both dynamic and concrete, have ApiCommand objects. -* Adding a fix for CurlMulti so that if all of the connections encounter some sort of curl error, then the loop exits. -* Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored. -* Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible. - -## 2.6.0 - 2012-05-15 - -* [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder -* [BC] Executing a Command returns the result of the command rather than the command -* [BC] Moving all HTTP parsing logic to Guzzle\Http\Parsers. Allows for faster C implementations if needed. -* [BC] Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args. -* [BC] Moving ResourceIterator* to Guzzle\Service\Resource -* [BC] Completely refactored ResourceIterators to iterate over a cloned command object -* [BC] Moved Guzzle\Http\UriTemplate to Guzzle\Http\Parser\UriTemplate\UriTemplate -* [BC] Guzzle\Guzzle is now deprecated -* Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject -* Adding Guzzle\Version class to give version information about Guzzle -* Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and getHttpDate() -* Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data -* ServiceDescription and ServiceBuilder are now cacheable using similar configs -* Changing the format of XML and JSON service builder configs. Backwards compatible. -* Cleaned up Cookie parsing -* Trimming the default Guzzle User-Agent header -* Adding a setOnComplete() method to Commands that is called when a command completes -* Keeping track of requests that were mocked in the MockPlugin -* Fixed a caching bug in the CacheAdapterFactory -* Inspector objects can be injected into a Command object -* Refactoring a lot of code and tests to be case insensitive when dealing with headers -* Adding Guzzle\Http\Message\HeaderComparison for easy comparison of HTTP headers using a DSL -* Adding the ability to set global option overrides to service builder configs -* Adding the ability to include other service builder config files from within XML and JSON files -* Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method. - -## 2.5.0 - 2012-05-08 - -* Major performance improvements -* [BC] Simplifying Guzzle\Common\Collection. Please check to see if you are using features that are now deprecated. -* [BC] Using a custom validation system that allows a flyweight implementation for much faster validation. No longer using Symfony2 Validation component. -* [BC] No longer supporting "{{ }}" for injecting into command or UriTemplates. Use "{}" -* Added the ability to passed parameters to all requests created by a client -* Added callback functionality to the ExponentialBackoffPlugin -* Using microtime in ExponentialBackoffPlugin to allow more granular backoff strategies. -* Rewinding request stream bodies when retrying requests -* Exception is thrown when JSON response body cannot be decoded -* Added configurable magic method calls to clients and commands. This is off by default. -* Fixed a defect that added a hash to every parsed URL part -* Fixed duplicate none generation for OauthPlugin. -* Emitting an event each time a client is generated by a ServiceBuilder -* Using an ApiParams object instead of a Collection for parameters of an ApiCommand -* cache.* request parameters should be renamed to params.cache.* -* Added the ability to set arbitrary curl options on requests (disable_wire, progress, etc.). See CurlHandle. -* Added the ability to disable type validation of service descriptions -* ServiceDescriptions and ServiceBuilders are now Serializable diff --git a/vendor/guzzlehttp/guzzle/LICENSE b/vendor/guzzlehttp/guzzle/LICENSE deleted file mode 100644 index ea7f07c5..00000000 --- a/vendor/guzzlehttp/guzzle/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011-2016 Michael Dowling, https://github.com/mtdowling - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/guzzlehttp/guzzle/README.md b/vendor/guzzlehttp/guzzle/README.md deleted file mode 100644 index 2f614d6f..00000000 --- a/vendor/guzzlehttp/guzzle/README.md +++ /dev/null @@ -1,89 +0,0 @@ -Guzzle, PHP HTTP client -======================= - -[![Build Status](https://travis-ci.org/guzzle/guzzle.svg?branch=master)](https://travis-ci.org/guzzle/guzzle) - -Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and -trivial to integrate with web services. - -- Simple interface for building query strings, POST requests, streaming large - uploads, streaming large downloads, using HTTP cookies, uploading JSON data, - etc... -- Can send both synchronous and asynchronous requests using the same interface. -- Uses PSR-7 interfaces for requests, responses, and streams. This allows you - to utilize other PSR-7 compatible libraries with Guzzle. -- Abstracts away the underlying HTTP transport, allowing you to write - environment and transport agnostic code; i.e., no hard dependency on cURL, - PHP streams, sockets, or non-blocking event loops. -- Middleware system allows you to augment and compose client behavior. - -```php -$client = new \GuzzleHttp\Client(); -$res = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle'); -echo $res->getStatusCode(); -// 200 -echo $res->getHeaderLine('content-type'); -// 'application/json; charset=utf8' -echo $res->getBody(); -// '{"id": 1420053, "name": "guzzle", ...}' - -// Send an asynchronous request. -$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org'); -$promise = $client->sendAsync($request)->then(function ($response) { - echo 'I completed! ' . $response->getBody(); -}); -$promise->wait(); -``` - -## Help and docs - -- [Documentation](http://guzzlephp.org/) -- [Stack Overflow](http://stackoverflow.com/questions/tagged/guzzle) -- [Gitter](https://gitter.im/guzzle/guzzle) - - -## Installing Guzzle - -The recommended way to install Guzzle is through -[Composer](http://getcomposer.org). - -```bash -# Install Composer -curl -sS https://getcomposer.org/installer | php -``` - -Next, run the Composer command to install the latest stable version of Guzzle: - -```bash -php composer.phar require guzzlehttp/guzzle -``` - -After installing, you need to require Composer's autoloader: - -```php -require 'vendor/autoload.php'; -``` - -You can then later update Guzzle using composer: - - ```bash -composer.phar update - ``` - - -## Version Guidance - -| Version | Status | Packagist | Namespace | Repo | Docs | PSR-7 | PHP Version | -|---------|------------|---------------------|--------------|---------------------|---------------------|-------|-------------| -| 3.x | EOL | `guzzle/guzzle` | `Guzzle` | [v3][guzzle-3-repo] | [v3][guzzle-3-docs] | No | >= 5.3.3 | -| 4.x | EOL | `guzzlehttp/guzzle` | `GuzzleHttp` | [v4][guzzle-4-repo] | N/A | No | >= 5.4 | -| 5.x | Maintained | `guzzlehttp/guzzle` | `GuzzleHttp` | [v5][guzzle-5-repo] | [v5][guzzle-5-docs] | No | >= 5.4 | -| 6.x | Latest | `guzzlehttp/guzzle` | `GuzzleHttp` | [v6][guzzle-6-repo] | [v6][guzzle-6-docs] | Yes | >= 5.5 | - -[guzzle-3-repo]: https://github.com/guzzle/guzzle3 -[guzzle-4-repo]: https://github.com/guzzle/guzzle/tree/4.x -[guzzle-5-repo]: https://github.com/guzzle/guzzle/tree/5.3 -[guzzle-6-repo]: https://github.com/guzzle/guzzle -[guzzle-3-docs]: http://guzzle3.readthedocs.org/en/latest/ -[guzzle-5-docs]: http://guzzle.readthedocs.org/en/5.3/ -[guzzle-6-docs]: http://guzzle.readthedocs.org/en/latest/ diff --git a/vendor/guzzlehttp/guzzle/UPGRADING.md b/vendor/guzzlehttp/guzzle/UPGRADING.md deleted file mode 100644 index 91d1dcc9..00000000 --- a/vendor/guzzlehttp/guzzle/UPGRADING.md +++ /dev/null @@ -1,1203 +0,0 @@ -Guzzle Upgrade Guide -==================== - -5.0 to 6.0 ----------- - -Guzzle now uses [PSR-7](http://www.php-fig.org/psr/psr-7/) for HTTP messages. -Due to the fact that these messages are immutable, this prompted a refactoring -of Guzzle to use a middleware based system rather than an event system. Any -HTTP message interaction (e.g., `GuzzleHttp\Message\Request`) need to be -updated to work with the new immutable PSR-7 request and response objects. Any -event listeners or subscribers need to be updated to become middleware -functions that wrap handlers (or are injected into a -`GuzzleHttp\HandlerStack`). - -- Removed `GuzzleHttp\BatchResults` -- Removed `GuzzleHttp\Collection` -- Removed `GuzzleHttp\HasDataTrait` -- Removed `GuzzleHttp\ToArrayInterface` -- The `guzzlehttp/streams` dependency has been removed. Stream functionality - is now present in the `GuzzleHttp\Psr7` namespace provided by the - `guzzlehttp/psr7` package. -- Guzzle no longer uses ReactPHP promises and now uses the - `guzzlehttp/promises` library. We use a custom promise library for three - significant reasons: - 1. React promises (at the time of writing this) are recursive. Promise - chaining and promise resolution will eventually blow the stack. Guzzle - promises are not recursive as they use a sort of trampolining technique. - Note: there has been movement in the React project to modify promises to - no longer utilize recursion. - 2. Guzzle needs to have the ability to synchronously block on a promise to - wait for a result. Guzzle promises allows this functionality (and does - not require the use of recursion). - 3. Because we need to be able to wait on a result, doing so using React - promises requires wrapping react promises with RingPHP futures. This - overhead is no longer needed, reducing stack sizes, reducing complexity, - and improving performance. -- `GuzzleHttp\Mimetypes` has been moved to a function in - `GuzzleHttp\Psr7\mimetype_from_extension` and - `GuzzleHttp\Psr7\mimetype_from_filename`. -- `GuzzleHttp\Query` and `GuzzleHttp\QueryParser` have been removed. Query - strings must now be passed into request objects as strings, or provided to - the `query` request option when creating requests with clients. The `query` - option uses PHP's `http_build_query` to convert an array to a string. If you - need a different serialization technique, you will need to pass the query - string in as a string. There are a couple helper functions that will make - working with query strings easier: `GuzzleHttp\Psr7\parse_query` and - `GuzzleHttp\Psr7\build_query`. -- Guzzle no longer has a dependency on RingPHP. Due to the use of a middleware - system based on PSR-7, using RingPHP and it's middleware system as well adds - more complexity than the benefits it provides. All HTTP handlers that were - present in RingPHP have been modified to work directly with PSR-7 messages - and placed in the `GuzzleHttp\Handler` namespace. This significantly reduces - complexity in Guzzle, removes a dependency, and improves performance. RingPHP - will be maintained for Guzzle 5 support, but will no longer be a part of - Guzzle 6. -- As Guzzle now uses a middleware based systems the event system and RingPHP - integration has been removed. Note: while the event system has been removed, - it is possible to add your own type of event system that is powered by the - middleware system. - - Removed the `Event` namespace. - - Removed the `Subscriber` namespace. - - Removed `Transaction` class - - Removed `RequestFsm` - - Removed `RingBridge` - - `GuzzleHttp\Subscriber\Cookie` is now provided by - `GuzzleHttp\Middleware::cookies` - - `GuzzleHttp\Subscriber\HttpError` is now provided by - `GuzzleHttp\Middleware::httpError` - - `GuzzleHttp\Subscriber\History` is now provided by - `GuzzleHttp\Middleware::history` - - `GuzzleHttp\Subscriber\Mock` is now provided by - `GuzzleHttp\Handler\MockHandler` - - `GuzzleHttp\Subscriber\Prepare` is now provided by - `GuzzleHttp\PrepareBodyMiddleware` - - `GuzzleHttp\Subscriber\Redirect` is now provided by - `GuzzleHttp\RedirectMiddleware` -- Guzzle now uses `Psr\Http\Message\UriInterface` (implements in - `GuzzleHttp\Psr7\Uri`) for URI support. `GuzzleHttp\Url` is now gone. -- Static functions in `GuzzleHttp\Utils` have been moved to namespaced - functions under the `GuzzleHttp` namespace. This requires either a Composer - based autoloader or you to include functions.php. -- `GuzzleHttp\ClientInterface::getDefaultOption` has been renamed to - `GuzzleHttp\ClientInterface::getConfig`. -- `GuzzleHttp\ClientInterface::setDefaultOption` has been removed. -- The `json` and `xml` methods of response objects has been removed. With the - migration to strictly adhering to PSR-7 as the interface for Guzzle messages, - adding methods to message interfaces would actually require Guzzle messages - to extend from PSR-7 messages rather then work with them directly. - -## Migrating to middleware - -The change to PSR-7 unfortunately required significant refactoring to Guzzle -due to the fact that PSR-7 messages are immutable. Guzzle 5 relied on an event -system from plugins. The event system relied on mutability of HTTP messages and -side effects in order to work. With immutable messages, you have to change your -workflow to become more about either returning a value (e.g., functional -middlewares) or setting a value on an object. Guzzle v6 has chosen the -functional middleware approach. - -Instead of using the event system to listen for things like the `before` event, -you now create a stack based middleware function that intercepts a request on -the way in and the promise of the response on the way out. This is a much -simpler and more predictable approach than the event system and works nicely -with PSR-7 middleware. Due to the use of promises, the middleware system is -also asynchronous. - -v5: - -```php -use GuzzleHttp\Event\BeforeEvent; -$client = new GuzzleHttp\Client(); -// Get the emitter and listen to the before event. -$client->getEmitter()->on('before', function (BeforeEvent $e) { - // Guzzle v5 events relied on mutation - $e->getRequest()->setHeader('X-Foo', 'Bar'); -}); -``` - -v6: - -In v6, you can modify the request before it is sent using the `mapRequest` -middleware. The idiomatic way in v6 to modify the request/response lifecycle is -to setup a handler middleware stack up front and inject the handler into a -client. - -```php -use GuzzleHttp\Middleware; -// Create a handler stack that has all of the default middlewares attached -$handler = GuzzleHttp\HandlerStack::create(); -// Push the handler onto the handler stack -$handler->push(Middleware::mapRequest(function (RequestInterface $request) { - // Notice that we have to return a request object - return $request->withHeader('X-Foo', 'Bar'); -})); -// Inject the handler into the client -$client = new GuzzleHttp\Client(['handler' => $handler]); -``` - -## POST Requests - -This version added the [`form_params`](http://guzzle.readthedocs.org/en/latest/request-options.html#form_params) -and `multipart` request options. `form_params` is an associative array of -strings or array of strings and is used to serialize an -`application/x-www-form-urlencoded` POST request. The -[`multipart`](http://guzzle.readthedocs.org/en/latest/request-options.html#multipart) -option is now used to send a multipart/form-data POST request. - -`GuzzleHttp\Post\PostFile` has been removed. Use the `multipart` option to add -POST files to a multipart/form-data request. - -The `body` option no longer accepts an array to send POST requests. Please use -`multipart` or `form_params` instead. - -The `base_url` option has been renamed to `base_uri`. - -4.x to 5.0 ----------- - -## Rewritten Adapter Layer - -Guzzle now uses [RingPHP](http://ringphp.readthedocs.org/en/latest) to send -HTTP requests. The `adapter` option in a `GuzzleHttp\Client` constructor -is still supported, but it has now been renamed to `handler`. Instead of -passing a `GuzzleHttp\Adapter\AdapterInterface`, you must now pass a PHP -`callable` that follows the RingPHP specification. - -## Removed Fluent Interfaces - -[Fluent interfaces were removed](http://ocramius.github.io/blog/fluent-interfaces-are-evil) -from the following classes: - -- `GuzzleHttp\Collection` -- `GuzzleHttp\Url` -- `GuzzleHttp\Query` -- `GuzzleHttp\Post\PostBody` -- `GuzzleHttp\Cookie\SetCookie` - -## Removed functions.php - -Removed "functions.php", so that Guzzle is truly PSR-4 compliant. The following -functions can be used as replacements. - -- `GuzzleHttp\json_decode` -> `GuzzleHttp\Utils::jsonDecode` -- `GuzzleHttp\get_path` -> `GuzzleHttp\Utils::getPath` -- `GuzzleHttp\Utils::setPath` -> `GuzzleHttp\set_path` -- `GuzzleHttp\Pool::batch` -> `GuzzleHttp\batch`. This function is, however, - deprecated in favor of using `GuzzleHttp\Pool::batch()`. - -The "procedural" global client has been removed with no replacement (e.g., -`GuzzleHttp\get()`, `GuzzleHttp\post()`, etc.). Use a `GuzzleHttp\Client` -object as a replacement. - -## `throwImmediately` has been removed - -The concept of "throwImmediately" has been removed from exceptions and error -events. This control mechanism was used to stop a transfer of concurrent -requests from completing. This can now be handled by throwing the exception or -by cancelling a pool of requests or each outstanding future request -individually. - -## headers event has been removed - -Removed the "headers" event. This event was only useful for changing the -body a response once the headers of the response were known. You can implement -a similar behavior in a number of ways. One example might be to use a -FnStream that has access to the transaction being sent. For example, when the -first byte is written, you could check if the response headers match your -expectations, and if so, change the actual stream body that is being -written to. - -## Updates to HTTP Messages - -Removed the `asArray` parameter from -`GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header -value as an array, then use the newly added `getHeaderAsArray()` method of -`MessageInterface`. This change makes the Guzzle interfaces compatible with -the PSR-7 interfaces. - -3.x to 4.0 ----------- - -## Overarching changes: - -- Now requires PHP 5.4 or greater. -- No longer requires cURL to send requests. -- Guzzle no longer wraps every exception it throws. Only exceptions that are - recoverable are now wrapped by Guzzle. -- Various namespaces have been removed or renamed. -- No longer requiring the Symfony EventDispatcher. A custom event dispatcher - based on the Symfony EventDispatcher is - now utilized in `GuzzleHttp\Event\EmitterInterface` (resulting in significant - speed and functionality improvements). - -Changes per Guzzle 3.x namespace are described below. - -## Batch - -The `Guzzle\Batch` namespace has been removed. This is best left to -third-parties to implement on top of Guzzle's core HTTP library. - -## Cache - -The `Guzzle\Cache` namespace has been removed. (Todo: No suitable replacement -has been implemented yet, but hoping to utilize a PSR cache interface). - -## Common - -- Removed all of the wrapped exceptions. It's better to use the standard PHP - library for unrecoverable exceptions. -- `FromConfigInterface` has been removed. -- `Guzzle\Common\Version` has been removed. The VERSION constant can be found - at `GuzzleHttp\ClientInterface::VERSION`. - -### Collection - -- `getAll` has been removed. Use `toArray` to convert a collection to an array. -- `inject` has been removed. -- `keySearch` has been removed. -- `getPath` no longer supports wildcard expressions. Use something better like - JMESPath for this. -- `setPath` now supports appending to an existing array via the `[]` notation. - -### Events - -Guzzle no longer requires Symfony's EventDispatcher component. Guzzle now uses -`GuzzleHttp\Event\Emitter`. - -- `Symfony\Component\EventDispatcher\EventDispatcherInterface` is replaced by - `GuzzleHttp\Event\EmitterInterface`. -- `Symfony\Component\EventDispatcher\EventDispatcher` is replaced by - `GuzzleHttp\Event\Emitter`. -- `Symfony\Component\EventDispatcher\Event` is replaced by - `GuzzleHttp\Event\Event`, and Guzzle now has an EventInterface in - `GuzzleHttp\Event\EventInterface`. -- `AbstractHasDispatcher` has moved to a trait, `HasEmitterTrait`, and - `HasDispatcherInterface` has moved to `HasEmitterInterface`. Retrieving the - event emitter of a request, client, etc. now uses the `getEmitter` method - rather than the `getDispatcher` method. - -#### Emitter - -- Use the `once()` method to add a listener that automatically removes itself - the first time it is invoked. -- Use the `listeners()` method to retrieve a list of event listeners rather than - the `getListeners()` method. -- Use `emit()` instead of `dispatch()` to emit an event from an emitter. -- Use `attach()` instead of `addSubscriber()` and `detach()` instead of - `removeSubscriber()`. - -```php -$mock = new Mock(); -// 3.x -$request->getEventDispatcher()->addSubscriber($mock); -$request->getEventDispatcher()->removeSubscriber($mock); -// 4.x -$request->getEmitter()->attach($mock); -$request->getEmitter()->detach($mock); -``` - -Use the `on()` method to add a listener rather than the `addListener()` method. - -```php -// 3.x -$request->getEventDispatcher()->addListener('foo', function (Event $event) { /* ... */ } ); -// 4.x -$request->getEmitter()->on('foo', function (Event $event, $name) { /* ... */ } ); -``` - -## Http - -### General changes - -- The cacert.pem certificate has been moved to `src/cacert.pem`. -- Added the concept of adapters that are used to transfer requests over the - wire. -- Simplified the event system. -- Sending requests in parallel is still possible, but batching is no longer a - concept of the HTTP layer. Instead, you must use the `complete` and `error` - events to asynchronously manage parallel request transfers. -- `Guzzle\Http\Url` has moved to `GuzzleHttp\Url`. -- `Guzzle\Http\QueryString` has moved to `GuzzleHttp\Query`. -- QueryAggregators have been rewritten so that they are simply callable - functions. -- `GuzzleHttp\StaticClient` has been removed. Use the functions provided in - `functions.php` for an easy to use static client instance. -- Exceptions in `GuzzleHttp\Exception` have been updated to all extend from - `GuzzleHttp\Exception\TransferException`. - -### Client - -Calling methods like `get()`, `post()`, `head()`, etc. no longer create and -return a request, but rather creates a request, sends the request, and returns -the response. - -```php -// 3.0 -$request = $client->get('/'); -$response = $request->send(); - -// 4.0 -$response = $client->get('/'); - -// or, to mirror the previous behavior -$request = $client->createRequest('GET', '/'); -$response = $client->send($request); -``` - -`GuzzleHttp\ClientInterface` has changed. - -- The `send` method no longer accepts more than one request. Use `sendAll` to - send multiple requests in parallel. -- `setUserAgent()` has been removed. Use a default request option instead. You - could, for example, do something like: - `$client->setConfig('defaults/headers/User-Agent', 'Foo/Bar ' . $client::getDefaultUserAgent())`. -- `setSslVerification()` has been removed. Use default request options instead, - like `$client->setConfig('defaults/verify', true)`. - -`GuzzleHttp\Client` has changed. - -- The constructor now accepts only an associative array. You can include a - `base_url` string or array to use a URI template as the base URL of a client. - You can also specify a `defaults` key that is an associative array of default - request options. You can pass an `adapter` to use a custom adapter, - `batch_adapter` to use a custom adapter for sending requests in parallel, or - a `message_factory` to change the factory used to create HTTP requests and - responses. -- The client no longer emits a `client.create_request` event. -- Creating requests with a client no longer automatically utilize a URI - template. You must pass an array into a creational method (e.g., - `createRequest`, `get`, `put`, etc.) in order to expand a URI template. - -### Messages - -Messages no longer have references to their counterparts (i.e., a request no -longer has a reference to it's response, and a response no loger has a -reference to its request). This association is now managed through a -`GuzzleHttp\Adapter\TransactionInterface` object. You can get references to -these transaction objects using request events that are emitted over the -lifecycle of a request. - -#### Requests with a body - -- `GuzzleHttp\Message\EntityEnclosingRequest` and - `GuzzleHttp\Message\EntityEnclosingRequestInterface` have been removed. The - separation between requests that contain a body and requests that do not - contain a body has been removed, and now `GuzzleHttp\Message\RequestInterface` - handles both use cases. -- Any method that previously accepts a `GuzzleHttp\Response` object now accept a - `GuzzleHttp\Message\ResponseInterface`. -- `GuzzleHttp\Message\RequestFactoryInterface` has been renamed to - `GuzzleHttp\Message\MessageFactoryInterface`. This interface is used to create - both requests and responses and is implemented in - `GuzzleHttp\Message\MessageFactory`. -- POST field and file methods have been removed from the request object. You - must now use the methods made available to `GuzzleHttp\Post\PostBodyInterface` - to control the format of a POST body. Requests that are created using a - standard `GuzzleHttp\Message\MessageFactoryInterface` will automatically use - a `GuzzleHttp\Post\PostBody` body if the body was passed as an array or if - the method is POST and no body is provided. - -```php -$request = $client->createRequest('POST', '/'); -$request->getBody()->setField('foo', 'bar'); -$request->getBody()->addFile(new PostFile('file_key', fopen('/path/to/content', 'r'))); -``` - -#### Headers - -- `GuzzleHttp\Message\Header` has been removed. Header values are now simply - represented by an array of values or as a string. Header values are returned - as a string by default when retrieving a header value from a message. You can - pass an optional argument of `true` to retrieve a header value as an array - of strings instead of a single concatenated string. -- `GuzzleHttp\PostFile` and `GuzzleHttp\PostFileInterface` have been moved to - `GuzzleHttp\Post`. This interface has been simplified and now allows the - addition of arbitrary headers. -- Custom headers like `GuzzleHttp\Message\Header\Link` have been removed. Most - of the custom headers are now handled separately in specific - subscribers/plugins, and `GuzzleHttp\Message\HeaderValues::parseParams()` has - been updated to properly handle headers that contain parameters (like the - `Link` header). - -#### Responses - -- `GuzzleHttp\Message\Response::getInfo()` and - `GuzzleHttp\Message\Response::setInfo()` have been removed. Use the event - system to retrieve this type of information. -- `GuzzleHttp\Message\Response::getRawHeaders()` has been removed. -- `GuzzleHttp\Message\Response::getMessage()` has been removed. -- `GuzzleHttp\Message\Response::calculateAge()` and other cache specific - methods have moved to the CacheSubscriber. -- Header specific helper functions like `getContentMd5()` have been removed. - Just use `getHeader('Content-MD5')` instead. -- `GuzzleHttp\Message\Response::setRequest()` and - `GuzzleHttp\Message\Response::getRequest()` have been removed. Use the event - system to work with request and response objects as a transaction. -- `GuzzleHttp\Message\Response::getRedirectCount()` has been removed. Use the - Redirect subscriber instead. -- `GuzzleHttp\Message\Response::isSuccessful()` and other related methods have - been removed. Use `getStatusCode()` instead. - -#### Streaming responses - -Streaming requests can now be created by a client directly, returning a -`GuzzleHttp\Message\ResponseInterface` object that contains a body stream -referencing an open PHP HTTP stream. - -```php -// 3.0 -use Guzzle\Stream\PhpStreamRequestFactory; -$request = $client->get('/'); -$factory = new PhpStreamRequestFactory(); -$stream = $factory->fromRequest($request); -$data = $stream->read(1024); - -// 4.0 -$response = $client->get('/', ['stream' => true]); -// Read some data off of the stream in the response body -$data = $response->getBody()->read(1024); -``` - -#### Redirects - -The `configureRedirects()` method has been removed in favor of a -`allow_redirects` request option. - -```php -// Standard redirects with a default of a max of 5 redirects -$request = $client->createRequest('GET', '/', ['allow_redirects' => true]); - -// Strict redirects with a custom number of redirects -$request = $client->createRequest('GET', '/', [ - 'allow_redirects' => ['max' => 5, 'strict' => true] -]); -``` - -#### EntityBody - -EntityBody interfaces and classes have been removed or moved to -`GuzzleHttp\Stream`. All classes and interfaces that once required -`GuzzleHttp\EntityBodyInterface` now require -`GuzzleHttp\Stream\StreamInterface`. Creating a new body for a request no -longer uses `GuzzleHttp\EntityBody::factory` but now uses -`GuzzleHttp\Stream\Stream::factory` or even better: -`GuzzleHttp\Stream\create()`. - -- `Guzzle\Http\EntityBodyInterface` is now `GuzzleHttp\Stream\StreamInterface` -- `Guzzle\Http\EntityBody` is now `GuzzleHttp\Stream\Stream` -- `Guzzle\Http\CachingEntityBody` is now `GuzzleHttp\Stream\CachingStream` -- `Guzzle\Http\ReadLimitEntityBody` is now `GuzzleHttp\Stream\LimitStream` -- `Guzzle\Http\IoEmittyinEntityBody` has been removed. - -#### Request lifecycle events - -Requests previously submitted a large number of requests. The number of events -emitted over the lifecycle of a request has been significantly reduced to make -it easier to understand how to extend the behavior of a request. All events -emitted during the lifecycle of a request now emit a custom -`GuzzleHttp\Event\EventInterface` object that contains context providing -methods and a way in which to modify the transaction at that specific point in -time (e.g., intercept the request and set a response on the transaction). - -- `request.before_send` has been renamed to `before` and now emits a - `GuzzleHttp\Event\BeforeEvent` -- `request.complete` has been renamed to `complete` and now emits a - `GuzzleHttp\Event\CompleteEvent`. -- `request.sent` has been removed. Use `complete`. -- `request.success` has been removed. Use `complete`. -- `error` is now an event that emits a `GuzzleHttp\Event\ErrorEvent`. -- `request.exception` has been removed. Use `error`. -- `request.receive.status_line` has been removed. -- `curl.callback.progress` has been removed. Use a custom `StreamInterface` to - maintain a status update. -- `curl.callback.write` has been removed. Use a custom `StreamInterface` to - intercept writes. -- `curl.callback.read` has been removed. Use a custom `StreamInterface` to - intercept reads. - -`headers` is a new event that is emitted after the response headers of a -request have been received before the body of the response is downloaded. This -event emits a `GuzzleHttp\Event\HeadersEvent`. - -You can intercept a request and inject a response using the `intercept()` event -of a `GuzzleHttp\Event\BeforeEvent`, `GuzzleHttp\Event\CompleteEvent`, and -`GuzzleHttp\Event\ErrorEvent` event. - -See: http://docs.guzzlephp.org/en/latest/events.html - -## Inflection - -The `Guzzle\Inflection` namespace has been removed. This is not a core concern -of Guzzle. - -## Iterator - -The `Guzzle\Iterator` namespace has been removed. - -- `Guzzle\Iterator\AppendIterator`, `Guzzle\Iterator\ChunkedIterator`, and - `Guzzle\Iterator\MethodProxyIterator` are nice, but not a core requirement of - Guzzle itself. -- `Guzzle\Iterator\FilterIterator` is no longer needed because an equivalent - class is shipped with PHP 5.4. -- `Guzzle\Iterator\MapIterator` is not really needed when using PHP 5.5 because - it's easier to just wrap an iterator in a generator that maps values. - -For a replacement of these iterators, see https://github.com/nikic/iter - -## Log - -The LogPlugin has moved to https://github.com/guzzle/log-subscriber. The -`Guzzle\Log` namespace has been removed. Guzzle now relies on -`Psr\Log\LoggerInterface` for all logging. The MessageFormatter class has been -moved to `GuzzleHttp\Subscriber\Log\Formatter`. - -## Parser - -The `Guzzle\Parser` namespace has been removed. This was previously used to -make it possible to plug in custom parsers for cookies, messages, URI -templates, and URLs; however, this level of complexity is not needed in Guzzle -so it has been removed. - -- Cookie: Cookie parsing logic has been moved to - `GuzzleHttp\Cookie\SetCookie::fromString`. -- Message: Message parsing logic for both requests and responses has been moved - to `GuzzleHttp\Message\MessageFactory::fromMessage`. Message parsing is only - used in debugging or deserializing messages, so it doesn't make sense for - Guzzle as a library to add this level of complexity to parsing messages. -- UriTemplate: URI template parsing has been moved to - `GuzzleHttp\UriTemplate`. The Guzzle library will automatically use the PECL - URI template library if it is installed. -- Url: URL parsing is now performed in `GuzzleHttp\Url::fromString` (previously - it was `Guzzle\Http\Url::factory()`). If custom URL parsing is necessary, - then developers are free to subclass `GuzzleHttp\Url`. - -## Plugin - -The `Guzzle\Plugin` namespace has been renamed to `GuzzleHttp\Subscriber`. -Several plugins are shipping with the core Guzzle library under this namespace. - -- `GuzzleHttp\Subscriber\Cookie`: Replaces the old CookiePlugin. Cookie jar - code has moved to `GuzzleHttp\Cookie`. -- `GuzzleHttp\Subscriber\History`: Replaces the old HistoryPlugin. -- `GuzzleHttp\Subscriber\HttpError`: Throws errors when a bad HTTP response is - received. -- `GuzzleHttp\Subscriber\Mock`: Replaces the old MockPlugin. -- `GuzzleHttp\Subscriber\Prepare`: Prepares the body of a request just before - sending. This subscriber is attached to all requests by default. -- `GuzzleHttp\Subscriber\Redirect`: Replaces the RedirectPlugin. - -The following plugins have been removed (third-parties are free to re-implement -these if needed): - -- `GuzzleHttp\Plugin\Async` has been removed. -- `GuzzleHttp\Plugin\CurlAuth` has been removed. -- `GuzzleHttp\Plugin\ErrorResponse\ErrorResponsePlugin` has been removed. This - functionality should instead be implemented with event listeners that occur - after normal response parsing occurs in the guzzle/command package. - -The following plugins are not part of the core Guzzle package, but are provided -in separate repositories: - -- `Guzzle\Http\Plugin\BackoffPlugin` has been rewritten to be much simpler - to build custom retry policies using simple functions rather than various - chained classes. See: https://github.com/guzzle/retry-subscriber -- `Guzzle\Http\Plugin\Cache\CachePlugin` has moved to - https://github.com/guzzle/cache-subscriber -- `Guzzle\Http\Plugin\Log\LogPlugin` has moved to - https://github.com/guzzle/log-subscriber -- `Guzzle\Http\Plugin\Md5\Md5Plugin` has moved to - https://github.com/guzzle/message-integrity-subscriber -- `Guzzle\Http\Plugin\Mock\MockPlugin` has moved to - `GuzzleHttp\Subscriber\MockSubscriber`. -- `Guzzle\Http\Plugin\Oauth\OauthPlugin` has moved to - https://github.com/guzzle/oauth-subscriber - -## Service - -The service description layer of Guzzle has moved into two separate packages: - -- http://github.com/guzzle/command Provides a high level abstraction over web - services by representing web service operations using commands. -- http://github.com/guzzle/guzzle-services Provides an implementation of - guzzle/command that provides request serialization and response parsing using - Guzzle service descriptions. - -## Stream - -Stream have moved to a separate package available at -https://github.com/guzzle/streams. - -`Guzzle\Stream\StreamInterface` has been given a large update to cleanly take -on the responsibilities of `Guzzle\Http\EntityBody` and -`Guzzle\Http\EntityBodyInterface` now that they have been removed. The number -of methods implemented by the `StreamInterface` has been drastically reduced to -allow developers to more easily extend and decorate stream behavior. - -## Removed methods from StreamInterface - -- `getStream` and `setStream` have been removed to better encapsulate streams. -- `getMetadata` and `setMetadata` have been removed in favor of - `GuzzleHttp\Stream\MetadataStreamInterface`. -- `getWrapper`, `getWrapperData`, `getStreamType`, and `getUri` have all been - removed. This data is accessible when - using streams that implement `GuzzleHttp\Stream\MetadataStreamInterface`. -- `rewind` has been removed. Use `seek(0)` for a similar behavior. - -## Renamed methods - -- `detachStream` has been renamed to `detach`. -- `feof` has been renamed to `eof`. -- `ftell` has been renamed to `tell`. -- `readLine` has moved from an instance method to a static class method of - `GuzzleHttp\Stream\Stream`. - -## Metadata streams - -`GuzzleHttp\Stream\MetadataStreamInterface` has been added to denote streams -that contain additional metadata accessible via `getMetadata()`. -`GuzzleHttp\Stream\StreamInterface::getMetadata` and -`GuzzleHttp\Stream\StreamInterface::setMetadata` have been removed. - -## StreamRequestFactory - -The entire concept of the StreamRequestFactory has been removed. The way this -was used in Guzzle 3 broke the actual interface of sending streaming requests -(instead of getting back a Response, you got a StreamInterface). Streaming -PHP requests are now implemented through the `GuzzleHttp\Adapter\StreamAdapter`. - -3.6 to 3.7 ----------- - -### Deprecations - -- You can now enable E_USER_DEPRECATED warnings to see if you are using any deprecated methods.: - -```php -\Guzzle\Common\Version::$emitWarnings = true; -``` - -The following APIs and options have been marked as deprecated: - -- Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use `$request->getResponseBody()->isRepeatable()` instead. -- Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. -- Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. -- Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead. -- Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead. -- Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated -- Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client. -- Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8. -- Marked `Guzzle\Common\Collection::inject()` as deprecated. -- Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use - `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest|NTLM|Any'));` or - `$client->setDefaultOption('auth', array('user', 'pass', 'Basic|Digest|NTLM|Any'));` - -3.7 introduces `request.options` as a parameter for a client configuration and as an optional argument to all creational -request methods. When paired with a client's configuration settings, these options allow you to specify default settings -for various aspects of a request. Because these options make other previous configuration options redundant, several -configuration options and methods of a client and AbstractCommand have been deprecated. - -- Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use `$client->getDefaultOption('headers')`. -- Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use `$client->setDefaultOption('headers/{header_name}', 'value')`. -- Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use `$client->setDefaultOption('params/{param_name}', 'value')` -- Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. These will work through Guzzle 4.0 - - $command = $client->getCommand('foo', array( - 'command.headers' => array('Test' => '123'), - 'command.response_body' => '/path/to/file' - )); - - // Should be changed to: - - $command = $client->getCommand('foo', array( - 'command.request_options' => array( - 'headers' => array('Test' => '123'), - 'save_as' => '/path/to/file' - ) - )); - -### Interface changes - -Additions and changes (you will need to update any implementations or subclasses you may have created): - -- Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`: - createRequest, head, delete, put, patch, post, options, prepareRequest -- Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()` -- Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface` -- Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to - `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a - resource, string, or EntityBody into the $options parameter to specify the download location of the response. -- Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a - default `array()` -- Added `Guzzle\Stream\StreamInterface::isRepeatable` -- Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods. - -The following methods were removed from interfaces. All of these methods are still available in the concrete classes -that implement them, but you should update your code to use alternative methods: - -- Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use - `$client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or - `$client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))` or - `$client->setDefaultOption('headers/{header_name}', 'value')`. or - `$client->setDefaultOption('headers', array('header_name' => 'value'))`. -- Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use `$client->getConfig()->getPath('request.options/headers')`. -- Removed `Guzzle\Http\ClientInterface::expandTemplate()`. This is an implementation detail. -- Removed `Guzzle\Http\ClientInterface::setRequestFactory()`. This is an implementation detail. -- Removed `Guzzle\Http\ClientInterface::getCurlMulti()`. This is a very specific implementation detail. -- Removed `Guzzle\Http\Message\RequestInterface::canCache`. Use the CachePlugin. -- Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect`. Use the HistoryPlugin. -- Removed `Guzzle\Http\Message\RequestInterface::isRedirect`. Use the HistoryPlugin. - -### Cache plugin breaking changes - -- CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a - CacheStorageInterface. These two objects and interface will be removed in a future version. -- Always setting X-cache headers on cached responses -- Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin -- `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface - $request, Response $response);` -- `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);` -- `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);` -- Added `CacheStorageInterface::purge($url)` -- `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin - $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache, - CanCacheStrategyInterface $canCache = null)` -- Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)` - -3.5 to 3.6 ----------- - -* Mixed casing of headers are now forced to be a single consistent casing across all values for that header. -* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution -* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader(). - For example, setHeader() first removes the header using unset on a HeaderCollection and then calls addHeader(). - Keeping the Host header and URL host in sync is now handled by overriding the addHeader method in Request. -* Specific header implementations can be created for complex headers. When a message creates a header, it uses a - HeaderFactory which can map specific headers to specific header classes. There is now a Link header and - CacheControl header implementation. -* Moved getLinks() from Response to just be used on a Link header object. - -If you previously relied on Guzzle\Http\Message\Header::raw(), then you will need to update your code to use the -HeaderInterface (e.g. toArray(), getAll(), etc.). - -### Interface changes - -* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate -* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti() -* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in - Guzzle\Http\Curl\RequestMediator -* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string. -* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface -* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders() - -### Removed deprecated functions - -* Removed Guzzle\Parser\ParserRegister::get(). Use getParser() -* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser(). - -### Deprecations - -* The ability to case-insensitively search for header values -* Guzzle\Http\Message\Header::hasExactHeader -* Guzzle\Http\Message\Header::raw. Use getAll() -* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object - instead. - -### Other changes - -* All response header helper functions return a string rather than mixing Header objects and strings inconsistently -* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle - directly via interfaces -* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist - but are a no-op until removed. -* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a - `Guzzle\Service\Command\ArrayCommandInterface`. -* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response - on a request while the request is still being transferred -* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess - -3.3 to 3.4 ----------- - -Base URLs of a client now follow the rules of http://tools.ietf.org/html/rfc3986#section-5.2.2 when merging URLs. - -3.2 to 3.3 ----------- - -### Response::getEtag() quote stripping removed - -`Guzzle\Http\Message\Response::getEtag()` no longer strips quotes around the ETag response header - -### Removed `Guzzle\Http\Utils` - -The `Guzzle\Http\Utils` class was removed. This class was only used for testing. - -### Stream wrapper and type - -`Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getStreamType()` are no longer converted to lowercase. - -### curl.emit_io became emit_io - -Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using the -'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io' - -3.1 to 3.2 ----------- - -### CurlMulti is no longer reused globally - -Before 3.2, the same CurlMulti object was reused globally for each client. This can cause issue where plugins added -to a single client can pollute requests dispatched from other clients. - -If you still wish to reuse the same CurlMulti object with each client, then you can add a listener to the -ServiceBuilder's `service_builder.create_client` event to inject a custom CurlMulti object into each client as it is -created. - -```php -$multi = new Guzzle\Http\Curl\CurlMulti(); -$builder = Guzzle\Service\Builder\ServiceBuilder::factory('/path/to/config.json'); -$builder->addListener('service_builder.create_client', function ($event) use ($multi) { - $event['client']->setCurlMulti($multi); -} -}); -``` - -### No default path - -URLs no longer have a default path value of '/' if no path was specified. - -Before: - -```php -$request = $client->get('http://www.foo.com'); -echo $request->getUrl(); -// >> http://www.foo.com/ -``` - -After: - -```php -$request = $client->get('http://www.foo.com'); -echo $request->getUrl(); -// >> http://www.foo.com -``` - -### Less verbose BadResponseException - -The exception message for `Guzzle\Http\Exception\BadResponseException` no longer contains the full HTTP request and -response information. You can, however, get access to the request and response object by calling `getRequest()` or -`getResponse()` on the exception object. - -### Query parameter aggregation - -Multi-valued query parameters are no longer aggregated using a callback function. `Guzzle\Http\Query` now has a -setAggregator() method that accepts a `Guzzle\Http\QueryAggregator\QueryAggregatorInterface` object. This object is -responsible for handling the aggregation of multi-valued query string variables into a flattened hash. - -2.8 to 3.x ----------- - -### Guzzle\Service\Inspector - -Change `\Guzzle\Service\Inspector::fromConfig` to `\Guzzle\Common\Collection::fromConfig` - -**Before** - -```php -use Guzzle\Service\Inspector; - -class YourClient extends \Guzzle\Service\Client -{ - public static function factory($config = array()) - { - $default = array(); - $required = array('base_url', 'username', 'api_key'); - $config = Inspector::fromConfig($config, $default, $required); - - $client = new self( - $config->get('base_url'), - $config->get('username'), - $config->get('api_key') - ); - $client->setConfig($config); - - $client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'client.json')); - - return $client; - } -``` - -**After** - -```php -use Guzzle\Common\Collection; - -class YourClient extends \Guzzle\Service\Client -{ - public static function factory($config = array()) - { - $default = array(); - $required = array('base_url', 'username', 'api_key'); - $config = Collection::fromConfig($config, $default, $required); - - $client = new self( - $config->get('base_url'), - $config->get('username'), - $config->get('api_key') - ); - $client->setConfig($config); - - $client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'client.json')); - - return $client; - } -``` - -### Convert XML Service Descriptions to JSON - -**Before** - -```xml - - - - - - Get a list of groups - - - Uses a search query to get a list of groups - - - - Create a group - - - - - Delete a group by ID - - - - - - - Update a group - - - - - - -``` - -**After** - -```json -{ - "name": "Zendesk REST API v2", - "apiVersion": "2012-12-31", - "description":"Provides access to Zendesk views, groups, tickets, ticket fields, and users", - "operations": { - "list_groups": { - "httpMethod":"GET", - "uri": "groups.json", - "summary": "Get a list of groups" - }, - "search_groups":{ - "httpMethod":"GET", - "uri": "search.json?query=\"{query} type:group\"", - "summary": "Uses a search query to get a list of groups", - "parameters":{ - "query":{ - "location": "uri", - "description":"Zendesk Search Query", - "type": "string", - "required": true - } - } - }, - "create_group": { - "httpMethod":"POST", - "uri": "groups.json", - "summary": "Create a group", - "parameters":{ - "data": { - "type": "array", - "location": "body", - "description":"Group JSON", - "filters": "json_encode", - "required": true - }, - "Content-Type":{ - "type": "string", - "location":"header", - "static": "application/json" - } - } - }, - "delete_group": { - "httpMethod":"DELETE", - "uri": "groups/{id}.json", - "summary": "Delete a group", - "parameters":{ - "id":{ - "location": "uri", - "description":"Group to delete by ID", - "type": "integer", - "required": true - } - } - }, - "get_group": { - "httpMethod":"GET", - "uri": "groups/{id}.json", - "summary": "Get a ticket", - "parameters":{ - "id":{ - "location": "uri", - "description":"Group to get by ID", - "type": "integer", - "required": true - } - } - }, - "update_group": { - "httpMethod":"PUT", - "uri": "groups/{id}.json", - "summary": "Update a group", - "parameters":{ - "id": { - "location": "uri", - "description":"Group to update by ID", - "type": "integer", - "required": true - }, - "data": { - "type": "array", - "location": "body", - "description":"Group JSON", - "filters": "json_encode", - "required": true - }, - "Content-Type":{ - "type": "string", - "location":"header", - "static": "application/json" - } - } - } -} -``` - -### Guzzle\Service\Description\ServiceDescription - -Commands are now called Operations - -**Before** - -```php -use Guzzle\Service\Description\ServiceDescription; - -$sd = new ServiceDescription(); -$sd->getCommands(); // @returns ApiCommandInterface[] -$sd->hasCommand($name); -$sd->getCommand($name); // @returns ApiCommandInterface|null -$sd->addCommand($command); // @param ApiCommandInterface $command -``` - -**After** - -```php -use Guzzle\Service\Description\ServiceDescription; - -$sd = new ServiceDescription(); -$sd->getOperations(); // @returns OperationInterface[] -$sd->hasOperation($name); -$sd->getOperation($name); // @returns OperationInterface|null -$sd->addOperation($operation); // @param OperationInterface $operation -``` - -### Guzzle\Common\Inflection\Inflector - -Namespace is now `Guzzle\Inflection\Inflector` - -### Guzzle\Http\Plugin - -Namespace is now `Guzzle\Plugin`. Many other changes occur within this namespace and are detailed in their own sections below. - -### Guzzle\Http\Plugin\LogPlugin and Guzzle\Common\Log - -Now `Guzzle\Plugin\Log\LogPlugin` and `Guzzle\Log` respectively. - -**Before** - -```php -use Guzzle\Common\Log\ClosureLogAdapter; -use Guzzle\Http\Plugin\LogPlugin; - -/** @var \Guzzle\Http\Client */ -$client; - -// $verbosity is an integer indicating desired message verbosity level -$client->addSubscriber(new LogPlugin(new ClosureLogAdapter(function($m) { echo $m; }, $verbosity = LogPlugin::LOG_VERBOSE); -``` - -**After** - -```php -use Guzzle\Log\ClosureLogAdapter; -use Guzzle\Log\MessageFormatter; -use Guzzle\Plugin\Log\LogPlugin; - -/** @var \Guzzle\Http\Client */ -$client; - -// $format is a string indicating desired message format -- @see MessageFormatter -$client->addSubscriber(new LogPlugin(new ClosureLogAdapter(function($m) { echo $m; }, $format = MessageFormatter::DEBUG_FORMAT); -``` - -### Guzzle\Http\Plugin\CurlAuthPlugin - -Now `Guzzle\Plugin\CurlAuth\CurlAuthPlugin`. - -### Guzzle\Http\Plugin\ExponentialBackoffPlugin - -Now `Guzzle\Plugin\Backoff\BackoffPlugin`, and other changes. - -**Before** - -```php -use Guzzle\Http\Plugin\ExponentialBackoffPlugin; - -$backoffPlugin = new ExponentialBackoffPlugin($maxRetries, array_merge( - ExponentialBackoffPlugin::getDefaultFailureCodes(), array(429) - )); - -$client->addSubscriber($backoffPlugin); -``` - -**After** - -```php -use Guzzle\Plugin\Backoff\BackoffPlugin; -use Guzzle\Plugin\Backoff\HttpBackoffStrategy; - -// Use convenient factory method instead -- see implementation for ideas of what -// you can do with chaining backoff strategies -$backoffPlugin = BackoffPlugin::getExponentialBackoff($maxRetries, array_merge( - HttpBackoffStrategy::getDefaultFailureCodes(), array(429) - )); -$client->addSubscriber($backoffPlugin); -``` - -### Known Issues - -#### [BUG] Accept-Encoding header behavior changed unintentionally. - -(See #217) (Fixed in 09daeb8c666fb44499a0646d655a8ae36456575e) - -In version 2.8 setting the `Accept-Encoding` header would set the CURLOPT_ENCODING option, which permitted cURL to -properly handle gzip/deflate compressed responses from the server. In versions affected by this bug this does not happen. -See issue #217 for a workaround, or use a version containing the fix. diff --git a/vendor/guzzlehttp/guzzle/composer.json b/vendor/guzzlehttp/guzzle/composer.json deleted file mode 100644 index 65687a58..00000000 --- a/vendor/guzzlehttp/guzzle/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "guzzlehttp/guzzle", - "type": "library", - "description": "Guzzle is a PHP HTTP client library", - "keywords": ["framework", "http", "rest", "web service", "curl", "client", "HTTP client"], - "homepage": "http://guzzlephp.org/", - "license": "MIT", - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "require": { - "php": ">=5.5", - "guzzlehttp/psr7": "^1.4", - "guzzlehttp/promises": "^1.0" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", - "psr/log": "^1.0" - }, - "autoload": { - "files": ["src/functions_include.php"], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "GuzzleHttp\\Tests\\": "tests/" - } - }, - "suggest": { - "psr/log": "Required for using the Log middleware" - }, - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Client.php b/vendor/guzzlehttp/guzzle/src/Client.php deleted file mode 100644 index de4df8a5..00000000 --- a/vendor/guzzlehttp/guzzle/src/Client.php +++ /dev/null @@ -1,414 +0,0 @@ - 'http://www.foo.com/1.0/', - * 'timeout' => 0, - * 'allow_redirects' => false, - * 'proxy' => '192.168.16.1:10' - * ]); - * - * Client configuration settings include the following options: - * - * - handler: (callable) Function that transfers HTTP requests over the - * wire. The function is called with a Psr7\Http\Message\RequestInterface - * and array of transfer options, and must return a - * GuzzleHttp\Promise\PromiseInterface that is fulfilled with a - * Psr7\Http\Message\ResponseInterface on success. "handler" is a - * constructor only option that cannot be overridden in per/request - * options. If no handler is provided, a default handler will be created - * that enables all of the request options below by attaching all of the - * default middleware to the handler. - * - base_uri: (string|UriInterface) Base URI of the client that is merged - * into relative URIs. Can be a string or instance of UriInterface. - * - **: any request option - * - * @param array $config Client configuration settings. - * - * @see \GuzzleHttp\RequestOptions for a list of available request options. - */ - public function __construct(array $config = []) - { - if (!isset($config['handler'])) { - $config['handler'] = HandlerStack::create(); - } elseif (!is_callable($config['handler'])) { - throw new \InvalidArgumentException('handler must be a callable'); - } - - // Convert the base_uri to a UriInterface - if (isset($config['base_uri'])) { - $config['base_uri'] = Psr7\uri_for($config['base_uri']); - } - - $this->configureDefaults($config); - } - - public function __call($method, $args) - { - if (count($args) < 1) { - throw new \InvalidArgumentException('Magic request methods require a URI and optional options array'); - } - - $uri = $args[0]; - $opts = isset($args[1]) ? $args[1] : []; - - return substr($method, -5) === 'Async' - ? $this->requestAsync(substr($method, 0, -5), $uri, $opts) - : $this->request($method, $uri, $opts); - } - - public function sendAsync(RequestInterface $request, array $options = []) - { - // Merge the base URI into the request URI if needed. - $options = $this->prepareDefaults($options); - - return $this->transfer( - $request->withUri($this->buildUri($request->getUri(), $options), $request->hasHeader('Host')), - $options - ); - } - - public function send(RequestInterface $request, array $options = []) - { - $options[RequestOptions::SYNCHRONOUS] = true; - return $this->sendAsync($request, $options)->wait(); - } - - public function requestAsync($method, $uri = '', array $options = []) - { - $options = $this->prepareDefaults($options); - // Remove request modifying parameter because it can be done up-front. - $headers = isset($options['headers']) ? $options['headers'] : []; - $body = isset($options['body']) ? $options['body'] : null; - $version = isset($options['version']) ? $options['version'] : '1.1'; - // Merge the URI into the base URI. - $uri = $this->buildUri($uri, $options); - if (is_array($body)) { - $this->invalidBody(); - } - $request = new Psr7\Request($method, $uri, $headers, $body, $version); - // Remove the option so that they are not doubly-applied. - unset($options['headers'], $options['body'], $options['version']); - - return $this->transfer($request, $options); - } - - public function request($method, $uri = '', array $options = []) - { - $options[RequestOptions::SYNCHRONOUS] = true; - return $this->requestAsync($method, $uri, $options)->wait(); - } - - public function getConfig($option = null) - { - return $option === null - ? $this->config - : (isset($this->config[$option]) ? $this->config[$option] : null); - } - - private function buildUri($uri, array $config) - { - // for BC we accept null which would otherwise fail in uri_for - $uri = Psr7\uri_for($uri === null ? '' : $uri); - - if (isset($config['base_uri'])) { - $uri = Psr7\UriResolver::resolve(Psr7\uri_for($config['base_uri']), $uri); - } - - return $uri->getScheme() === '' && $uri->getHost() !== '' ? $uri->withScheme('http') : $uri; - } - - /** - * Configures the default options for a client. - * - * @param array $config - */ - private function configureDefaults(array $config) - { - $defaults = [ - 'allow_redirects' => RedirectMiddleware::$defaultSettings, - 'http_errors' => true, - 'decode_content' => true, - 'verify' => true, - 'cookies' => false - ]; - - // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set. - - // We can only trust the HTTP_PROXY environment variable in a CLI - // process due to the fact that PHP has no reliable mechanism to - // get environment variables that start with "HTTP_". - if (php_sapi_name() == 'cli' && getenv('HTTP_PROXY')) { - $defaults['proxy']['http'] = getenv('HTTP_PROXY'); - } - - if ($proxy = getenv('HTTPS_PROXY')) { - $defaults['proxy']['https'] = $proxy; - } - - if ($noProxy = getenv('NO_PROXY')) { - $cleanedNoProxy = str_replace(' ', '', $noProxy); - $defaults['proxy']['no'] = explode(',', $cleanedNoProxy); - } - - $this->config = $config + $defaults; - - if (!empty($config['cookies']) && $config['cookies'] === true) { - $this->config['cookies'] = new CookieJar(); - } - - // Add the default user-agent header. - if (!isset($this->config['headers'])) { - $this->config['headers'] = ['User-Agent' => default_user_agent()]; - } else { - // Add the User-Agent header if one was not already set. - foreach (array_keys($this->config['headers']) as $name) { - if (strtolower($name) === 'user-agent') { - return; - } - } - $this->config['headers']['User-Agent'] = default_user_agent(); - } - } - - /** - * Merges default options into the array. - * - * @param array $options Options to modify by reference - * - * @return array - */ - private function prepareDefaults($options) - { - $defaults = $this->config; - - if (!empty($defaults['headers'])) { - // Default headers are only added if they are not present. - $defaults['_conditional'] = $defaults['headers']; - unset($defaults['headers']); - } - - // Special handling for headers is required as they are added as - // conditional headers and as headers passed to a request ctor. - if (array_key_exists('headers', $options)) { - // Allows default headers to be unset. - if ($options['headers'] === null) { - $defaults['_conditional'] = null; - unset($options['headers']); - } elseif (!is_array($options['headers'])) { - throw new \InvalidArgumentException('headers must be an array'); - } - } - - // Shallow merge defaults underneath options. - $result = $options + $defaults; - - // Remove null values. - foreach ($result as $k => $v) { - if ($v === null) { - unset($result[$k]); - } - } - - return $result; - } - - /** - * Transfers the given request and applies request options. - * - * The URI of the request is not modified and the request options are used - * as-is without merging in default options. - * - * @param RequestInterface $request - * @param array $options - * - * @return Promise\PromiseInterface - */ - private function transfer(RequestInterface $request, array $options) - { - // save_to -> sink - if (isset($options['save_to'])) { - $options['sink'] = $options['save_to']; - unset($options['save_to']); - } - - // exceptions -> http_errors - if (isset($options['exceptions'])) { - $options['http_errors'] = $options['exceptions']; - unset($options['exceptions']); - } - - $request = $this->applyOptions($request, $options); - $handler = $options['handler']; - - try { - return Promise\promise_for($handler($request, $options)); - } catch (\Exception $e) { - return Promise\rejection_for($e); - } - } - - /** - * Applies the array of request options to a request. - * - * @param RequestInterface $request - * @param array $options - * - * @return RequestInterface - */ - private function applyOptions(RequestInterface $request, array &$options) - { - $modify = []; - - if (isset($options['form_params'])) { - if (isset($options['multipart'])) { - throw new \InvalidArgumentException('You cannot use ' - . 'form_params and multipart at the same time. Use the ' - . 'form_params option if you want to send application/' - . 'x-www-form-urlencoded requests, and the multipart ' - . 'option to send multipart/form-data requests.'); - } - $options['body'] = http_build_query($options['form_params'], '', '&'); - unset($options['form_params']); - $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded'; - } - - if (isset($options['multipart'])) { - $options['body'] = new Psr7\MultipartStream($options['multipart']); - unset($options['multipart']); - } - - if (isset($options['json'])) { - $options['body'] = \GuzzleHttp\json_encode($options['json']); - unset($options['json']); - $options['_conditional']['Content-Type'] = 'application/json'; - } - - if (!empty($options['decode_content']) - && $options['decode_content'] !== true - ) { - $modify['set_headers']['Accept-Encoding'] = $options['decode_content']; - } - - if (isset($options['headers'])) { - if (isset($modify['set_headers'])) { - $modify['set_headers'] = $options['headers'] + $modify['set_headers']; - } else { - $modify['set_headers'] = $options['headers']; - } - unset($options['headers']); - } - - if (isset($options['body'])) { - if (is_array($options['body'])) { - $this->invalidBody(); - } - $modify['body'] = Psr7\stream_for($options['body']); - unset($options['body']); - } - - if (!empty($options['auth']) && is_array($options['auth'])) { - $value = $options['auth']; - $type = isset($value[2]) ? strtolower($value[2]) : 'basic'; - switch ($type) { - case 'basic': - $modify['set_headers']['Authorization'] = 'Basic ' - . base64_encode("$value[0]:$value[1]"); - break; - case 'digest': - // @todo: Do not rely on curl - $options['curl'][CURLOPT_HTTPAUTH] = CURLAUTH_DIGEST; - $options['curl'][CURLOPT_USERPWD] = "$value[0]:$value[1]"; - break; - case 'ntlm': - $options['curl'][CURLOPT_HTTPAUTH] = CURLAUTH_NTLM; - $options['curl'][CURLOPT_USERPWD] = "$value[0]:$value[1]"; - break; - } - } - - if (isset($options['query'])) { - $value = $options['query']; - if (is_array($value)) { - $value = http_build_query($value, null, '&', PHP_QUERY_RFC3986); - } - if (!is_string($value)) { - throw new \InvalidArgumentException('query must be a string or array'); - } - $modify['query'] = $value; - unset($options['query']); - } - - // Ensure that sink is not an invalid value. - if (isset($options['sink'])) { - // TODO: Add more sink validation? - if (is_bool($options['sink'])) { - throw new \InvalidArgumentException('sink must not be a boolean'); - } - } - - $request = Psr7\modify_request($request, $modify); - if ($request->getBody() instanceof Psr7\MultipartStream) { - // Use a multipart/form-data POST if a Content-Type is not set. - $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' - . $request->getBody()->getBoundary(); - } - - // Merge in conditional headers if they are not present. - if (isset($options['_conditional'])) { - // Build up the changes so it's in a single clone of the message. - $modify = []; - foreach ($options['_conditional'] as $k => $v) { - if (!$request->hasHeader($k)) { - $modify['set_headers'][$k] = $v; - } - } - $request = Psr7\modify_request($request, $modify); - // Don't pass this internal value along to middleware/handlers. - unset($options['_conditional']); - } - - return $request; - } - - private function invalidBody() - { - throw new \InvalidArgumentException('Passing in the "body" request ' - . 'option as an array to send a POST request has been deprecated. ' - . 'Please use the "form_params" request option to send a ' - . 'application/x-www-form-urlencoded request, or the "multipart" ' - . 'request option to send a multipart/form-data request.'); - } -} diff --git a/vendor/guzzlehttp/guzzle/src/ClientInterface.php b/vendor/guzzlehttp/guzzle/src/ClientInterface.php deleted file mode 100644 index 5a67b66b..00000000 --- a/vendor/guzzlehttp/guzzle/src/ClientInterface.php +++ /dev/null @@ -1,84 +0,0 @@ -strictMode = $strictMode; - - foreach ($cookieArray as $cookie) { - if (!($cookie instanceof SetCookie)) { - $cookie = new SetCookie($cookie); - } - $this->setCookie($cookie); - } - } - - /** - * Create a new Cookie jar from an associative array and domain. - * - * @param array $cookies Cookies to create the jar from - * @param string $domain Domain to set the cookies to - * - * @return self - */ - public static function fromArray(array $cookies, $domain) - { - $cookieJar = new self(); - foreach ($cookies as $name => $value) { - $cookieJar->setCookie(new SetCookie([ - 'Domain' => $domain, - 'Name' => $name, - 'Value' => $value, - 'Discard' => true - ])); - } - - return $cookieJar; - } - - /** - * @deprecated - */ - public static function getCookieValue($value) - { - return $value; - } - - /** - * Evaluate if this cookie should be persisted to storage - * that survives between requests. - * - * @param SetCookie $cookie Being evaluated. - * @param bool $allowSessionCookies If we should persist session cookies - * @return bool - */ - public static function shouldPersist( - SetCookie $cookie, - $allowSessionCookies = false - ) { - if ($cookie->getExpires() || $allowSessionCookies) { - if (!$cookie->getDiscard()) { - return true; - } - } - - return false; - } - - /** - * Finds and returns the cookie based on the name - * - * @param string $name cookie name to search for - * @return SetCookie|null cookie that was found or null if not found - */ - public function getCookieByName($name) - { - // don't allow a null name - if($name === null) { - return null; - } - foreach($this->cookies as $cookie) { - if($cookie->getName() !== null && strcasecmp($cookie->getName(), $name) === 0) { - return $cookie; - } - } - } - - public function toArray() - { - return array_map(function (SetCookie $cookie) { - return $cookie->toArray(); - }, $this->getIterator()->getArrayCopy()); - } - - public function clear($domain = null, $path = null, $name = null) - { - if (!$domain) { - $this->cookies = []; - return; - } elseif (!$path) { - $this->cookies = array_filter( - $this->cookies, - function (SetCookie $cookie) use ($path, $domain) { - return !$cookie->matchesDomain($domain); - } - ); - } elseif (!$name) { - $this->cookies = array_filter( - $this->cookies, - function (SetCookie $cookie) use ($path, $domain) { - return !($cookie->matchesPath($path) && - $cookie->matchesDomain($domain)); - } - ); - } else { - $this->cookies = array_filter( - $this->cookies, - function (SetCookie $cookie) use ($path, $domain, $name) { - return !($cookie->getName() == $name && - $cookie->matchesPath($path) && - $cookie->matchesDomain($domain)); - } - ); - } - } - - public function clearSessionCookies() - { - $this->cookies = array_filter( - $this->cookies, - function (SetCookie $cookie) { - return !$cookie->getDiscard() && $cookie->getExpires(); - } - ); - } - - public function setCookie(SetCookie $cookie) - { - // If the name string is empty (but not 0), ignore the set-cookie - // string entirely. - $name = $cookie->getName(); - if (!$name && $name !== '0') { - return false; - } - - // Only allow cookies with set and valid domain, name, value - $result = $cookie->validate(); - if ($result !== true) { - if ($this->strictMode) { - throw new \RuntimeException('Invalid cookie: ' . $result); - } else { - $this->removeCookieIfEmpty($cookie); - return false; - } - } - - // Resolve conflicts with previously set cookies - foreach ($this->cookies as $i => $c) { - - // Two cookies are identical, when their path, and domain are - // identical. - if ($c->getPath() != $cookie->getPath() || - $c->getDomain() != $cookie->getDomain() || - $c->getName() != $cookie->getName() - ) { - continue; - } - - // The previously set cookie is a discard cookie and this one is - // not so allow the new cookie to be set - if (!$cookie->getDiscard() && $c->getDiscard()) { - unset($this->cookies[$i]); - continue; - } - - // If the new cookie's expiration is further into the future, then - // replace the old cookie - if ($cookie->getExpires() > $c->getExpires()) { - unset($this->cookies[$i]); - continue; - } - - // If the value has changed, we better change it - if ($cookie->getValue() !== $c->getValue()) { - unset($this->cookies[$i]); - continue; - } - - // The cookie exists, so no need to continue - return false; - } - - $this->cookies[] = $cookie; - - return true; - } - - public function count() - { - return count($this->cookies); - } - - public function getIterator() - { - return new \ArrayIterator(array_values($this->cookies)); - } - - public function extractCookies( - RequestInterface $request, - ResponseInterface $response - ) { - if ($cookieHeader = $response->getHeader('Set-Cookie')) { - foreach ($cookieHeader as $cookie) { - $sc = SetCookie::fromString($cookie); - if (!$sc->getDomain()) { - $sc->setDomain($request->getUri()->getHost()); - } - if (0 !== strpos($sc->getPath(), '/')) { - $sc->setPath($this->getCookiePathFromRequest($request)); - } - $this->setCookie($sc); - } - } - } - - /** - * Computes cookie path following RFC 6265 section 5.1.4 - * - * @link https://tools.ietf.org/html/rfc6265#section-5.1.4 - * - * @param RequestInterface $request - * @return string - */ - private function getCookiePathFromRequest(RequestInterface $request) - { - $uriPath = $request->getUri()->getPath(); - if ('' === $uriPath) { - return '/'; - } - if (0 !== strpos($uriPath, '/')) { - return '/'; - } - if ('/' === $uriPath) { - return '/'; - } - if (0 === $lastSlashPos = strrpos($uriPath, '/')) { - return '/'; - } - - return substr($uriPath, 0, $lastSlashPos); - } - - public function withCookieHeader(RequestInterface $request) - { - $values = []; - $uri = $request->getUri(); - $scheme = $uri->getScheme(); - $host = $uri->getHost(); - $path = $uri->getPath() ?: '/'; - - foreach ($this->cookies as $cookie) { - if ($cookie->matchesPath($path) && - $cookie->matchesDomain($host) && - !$cookie->isExpired() && - (!$cookie->getSecure() || $scheme === 'https') - ) { - $values[] = $cookie->getName() . '=' - . $cookie->getValue(); - } - } - - return $values - ? $request->withHeader('Cookie', implode('; ', $values)) - : $request; - } - - /** - * If a cookie already exists and the server asks to set it again with a - * null value, the cookie must be deleted. - * - * @param SetCookie $cookie - */ - private function removeCookieIfEmpty(SetCookie $cookie) - { - $cookieValue = $cookie->getValue(); - if ($cookieValue === null || $cookieValue === '') { - $this->clear( - $cookie->getDomain(), - $cookie->getPath(), - $cookie->getName() - ); - } - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php b/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php deleted file mode 100644 index 2cf298a8..00000000 --- a/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php +++ /dev/null @@ -1,84 +0,0 @@ -filename = $cookieFile; - $this->storeSessionCookies = $storeSessionCookies; - - if (file_exists($cookieFile)) { - $this->load($cookieFile); - } - } - - /** - * Saves the file when shutting down - */ - public function __destruct() - { - $this->save($this->filename); - } - - /** - * Saves the cookies to a file. - * - * @param string $filename File to save - * @throws \RuntimeException if the file cannot be found or created - */ - public function save($filename) - { - $json = []; - foreach ($this as $cookie) { - /** @var SetCookie $cookie */ - if (CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) { - $json[] = $cookie->toArray(); - } - } - - $jsonStr = \GuzzleHttp\json_encode($json); - if (false === file_put_contents($filename, $jsonStr)) { - throw new \RuntimeException("Unable to save file {$filename}"); - } - } - - /** - * Load cookies from a JSON formatted file. - * - * Old cookies are kept unless overwritten by newly loaded ones. - * - * @param string $filename Cookie file to load. - * @throws \RuntimeException if the file cannot be loaded. - */ - public function load($filename) - { - $json = file_get_contents($filename); - if (false === $json) { - throw new \RuntimeException("Unable to load file {$filename}"); - } elseif ($json === '') { - return; - } - - $data = \GuzzleHttp\json_decode($json, true); - if (is_array($data)) { - foreach (json_decode($json, true) as $cookie) { - $this->setCookie(new SetCookie($cookie)); - } - } elseif (strlen($data)) { - throw new \RuntimeException("Invalid cookie file: {$filename}"); - } - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php b/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php deleted file mode 100644 index e4bfafd4..00000000 --- a/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php +++ /dev/null @@ -1,71 +0,0 @@ -sessionKey = $sessionKey; - $this->storeSessionCookies = $storeSessionCookies; - $this->load(); - } - - /** - * Saves cookies to session when shutting down - */ - public function __destruct() - { - $this->save(); - } - - /** - * Save cookies to the client session - */ - public function save() - { - $json = []; - foreach ($this as $cookie) { - /** @var SetCookie $cookie */ - if (CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) { - $json[] = $cookie->toArray(); - } - } - - $_SESSION[$this->sessionKey] = json_encode($json); - } - - /** - * Load the contents of the client session into the data array - */ - protected function load() - { - if (!isset($_SESSION[$this->sessionKey])) { - return; - } - $data = json_decode($_SESSION[$this->sessionKey], true); - if (is_array($data)) { - foreach ($data as $cookie) { - $this->setCookie(new SetCookie($cookie)); - } - } elseif (strlen($data)) { - throw new \RuntimeException("Invalid cookie data"); - } - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php b/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php deleted file mode 100644 index c911e2a3..00000000 --- a/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php +++ /dev/null @@ -1,404 +0,0 @@ - null, - 'Value' => null, - 'Domain' => null, - 'Path' => '/', - 'Max-Age' => null, - 'Expires' => null, - 'Secure' => false, - 'Discard' => false, - 'HttpOnly' => false - ]; - - /** @var array Cookie data */ - private $data; - - /** - * Create a new SetCookie object from a string - * - * @param string $cookie Set-Cookie header string - * - * @return self - */ - public static function fromString($cookie) - { - // Create the default return array - $data = self::$defaults; - // Explode the cookie string using a series of semicolons - $pieces = array_filter(array_map('trim', explode(';', $cookie))); - // The name of the cookie (first kvp) must include an equal sign. - if (empty($pieces) || !strpos($pieces[0], '=')) { - return new self($data); - } - - // Add the cookie pieces into the parsed data array - foreach ($pieces as $part) { - - $cookieParts = explode('=', $part, 2); - $key = trim($cookieParts[0]); - $value = isset($cookieParts[1]) - ? trim($cookieParts[1], " \n\r\t\0\x0B") - : true; - - // Only check for non-cookies when cookies have been found - if (empty($data['Name'])) { - $data['Name'] = $key; - $data['Value'] = $value; - } else { - foreach (array_keys(self::$defaults) as $search) { - if (!strcasecmp($search, $key)) { - $data[$search] = $value; - continue 2; - } - } - $data[$key] = $value; - } - } - - return new self($data); - } - - /** - * @param array $data Array of cookie data provided by a Cookie parser - */ - public function __construct(array $data = []) - { - $this->data = array_replace(self::$defaults, $data); - // Extract the Expires value and turn it into a UNIX timestamp if needed - if (!$this->getExpires() && $this->getMaxAge()) { - // Calculate the Expires date - $this->setExpires(time() + $this->getMaxAge()); - } elseif ($this->getExpires() && !is_numeric($this->getExpires())) { - $this->setExpires($this->getExpires()); - } - } - - public function __toString() - { - $str = $this->data['Name'] . '=' . $this->data['Value'] . '; '; - foreach ($this->data as $k => $v) { - if ($k !== 'Name' && $k !== 'Value' && $v !== null && $v !== false) { - if ($k === 'Expires') { - $str .= 'Expires=' . gmdate('D, d M Y H:i:s \G\M\T', $v) . '; '; - } else { - $str .= ($v === true ? $k : "{$k}={$v}") . '; '; - } - } - } - - return rtrim($str, '; '); - } - - public function toArray() - { - return $this->data; - } - - /** - * Get the cookie name - * - * @return string - */ - public function getName() - { - return $this->data['Name']; - } - - /** - * Set the cookie name - * - * @param string $name Cookie name - */ - public function setName($name) - { - $this->data['Name'] = $name; - } - - /** - * Get the cookie value - * - * @return string - */ - public function getValue() - { - return $this->data['Value']; - } - - /** - * Set the cookie value - * - * @param string $value Cookie value - */ - public function setValue($value) - { - $this->data['Value'] = $value; - } - - /** - * Get the domain - * - * @return string|null - */ - public function getDomain() - { - return $this->data['Domain']; - } - - /** - * Set the domain of the cookie - * - * @param string $domain - */ - public function setDomain($domain) - { - $this->data['Domain'] = $domain; - } - - /** - * Get the path - * - * @return string - */ - public function getPath() - { - return $this->data['Path']; - } - - /** - * Set the path of the cookie - * - * @param string $path Path of the cookie - */ - public function setPath($path) - { - $this->data['Path'] = $path; - } - - /** - * Maximum lifetime of the cookie in seconds - * - * @return int|null - */ - public function getMaxAge() - { - return $this->data['Max-Age']; - } - - /** - * Set the max-age of the cookie - * - * @param int $maxAge Max age of the cookie in seconds - */ - public function setMaxAge($maxAge) - { - $this->data['Max-Age'] = $maxAge; - } - - /** - * The UNIX timestamp when the cookie Expires - * - * @return mixed - */ - public function getExpires() - { - return $this->data['Expires']; - } - - /** - * Set the unix timestamp for which the cookie will expire - * - * @param int $timestamp Unix timestamp - */ - public function setExpires($timestamp) - { - $this->data['Expires'] = is_numeric($timestamp) - ? (int) $timestamp - : strtotime($timestamp); - } - - /** - * Get whether or not this is a secure cookie - * - * @return null|bool - */ - public function getSecure() - { - return $this->data['Secure']; - } - - /** - * Set whether or not the cookie is secure - * - * @param bool $secure Set to true or false if secure - */ - public function setSecure($secure) - { - $this->data['Secure'] = $secure; - } - - /** - * Get whether or not this is a session cookie - * - * @return null|bool - */ - public function getDiscard() - { - return $this->data['Discard']; - } - - /** - * Set whether or not this is a session cookie - * - * @param bool $discard Set to true or false if this is a session cookie - */ - public function setDiscard($discard) - { - $this->data['Discard'] = $discard; - } - - /** - * Get whether or not this is an HTTP only cookie - * - * @return bool - */ - public function getHttpOnly() - { - return $this->data['HttpOnly']; - } - - /** - * Set whether or not this is an HTTP only cookie - * - * @param bool $httpOnly Set to true or false if this is HTTP only - */ - public function setHttpOnly($httpOnly) - { - $this->data['HttpOnly'] = $httpOnly; - } - - /** - * Check if the cookie matches a path value. - * - * A request-path path-matches a given cookie-path if at least one of - * the following conditions holds: - * - * - The cookie-path and the request-path are identical. - * - The cookie-path is a prefix of the request-path, and the last - * character of the cookie-path is %x2F ("/"). - * - The cookie-path is a prefix of the request-path, and the first - * character of the request-path that is not included in the cookie- - * path is a %x2F ("/") character. - * - * @param string $requestPath Path to check against - * - * @return bool - */ - public function matchesPath($requestPath) - { - $cookiePath = $this->getPath(); - - // Match on exact matches or when path is the default empty "/" - if ($cookiePath === '/' || $cookiePath == $requestPath) { - return true; - } - - // Ensure that the cookie-path is a prefix of the request path. - if (0 !== strpos($requestPath, $cookiePath)) { - return false; - } - - // Match if the last character of the cookie-path is "/" - if (substr($cookiePath, -1, 1) === '/') { - return true; - } - - // Match if the first character not included in cookie path is "/" - return substr($requestPath, strlen($cookiePath), 1) === '/'; - } - - /** - * Check if the cookie matches a domain value - * - * @param string $domain Domain to check against - * - * @return bool - */ - public function matchesDomain($domain) - { - // Remove the leading '.' as per spec in RFC 6265. - // http://tools.ietf.org/html/rfc6265#section-5.2.3 - $cookieDomain = ltrim($this->getDomain(), '.'); - - // Domain not set or exact match. - if (!$cookieDomain || !strcasecmp($domain, $cookieDomain)) { - return true; - } - - // Matching the subdomain according to RFC 6265. - // http://tools.ietf.org/html/rfc6265#section-5.1.3 - if (filter_var($domain, FILTER_VALIDATE_IP)) { - return false; - } - - return (bool) preg_match('/\.' . preg_quote($cookieDomain) . '$/', $domain); - } - - /** - * Check if the cookie is expired - * - * @return bool - */ - public function isExpired() - { - return $this->getExpires() && time() > $this->getExpires(); - } - - /** - * Check if the cookie is valid according to RFC 6265 - * - * @return bool|string Returns true if valid or an error message if invalid - */ - public function validate() - { - // Names must not be empty, but can be 0 - $name = $this->getName(); - if (empty($name) && !is_numeric($name)) { - return 'The cookie name must not be empty'; - } - - // Check if any of the invalid characters are present in the cookie name - if (preg_match( - '/[\x00-\x20\x22\x28-\x29\x2c\x2f\x3a-\x40\x5c\x7b\x7d\x7f]/', - $name) - ) { - return 'Cookie name must not contain invalid characters: ASCII ' - . 'Control characters (0-31;127), space, tab and the ' - . 'following characters: ()<>@,;:\"/?={}'; - } - - // Value must not be empty, but can be 0 - $value = $this->getValue(); - if (empty($value) && !is_numeric($value)) { - return 'The cookie value must not be empty'; - } - - // Domains must not be empty, but can be 0 - // A "0" is not a valid internet domain, but may be used as server name - // in a private network. - $domain = $this->getDomain(); - if (empty($domain) && !is_numeric($domain)) { - return 'The cookie domain must not be empty'; - } - - return true; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php b/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php deleted file mode 100644 index 427d896f..00000000 --- a/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php +++ /dev/null @@ -1,27 +0,0 @@ -getStatusCode() - : 0; - parent::__construct($message, $code, $previous); - $this->request = $request; - $this->response = $response; - $this->handlerContext = $handlerContext; - } - - /** - * Wrap non-RequestExceptions with a RequestException - * - * @param RequestInterface $request - * @param \Exception $e - * - * @return RequestException - */ - public static function wrapException(RequestInterface $request, \Exception $e) - { - return $e instanceof RequestException - ? $e - : new RequestException($e->getMessage(), $request, null, $e); - } - - /** - * Factory method to create a new exception with a normalized error message - * - * @param RequestInterface $request Request - * @param ResponseInterface $response Response received - * @param \Exception $previous Previous exception - * @param array $ctx Optional handler context. - * - * @return self - */ - public static function create( - RequestInterface $request, - ResponseInterface $response = null, - \Exception $previous = null, - array $ctx = [] - ) { - if (!$response) { - return new self( - 'Error completing request', - $request, - null, - $previous, - $ctx - ); - } - - $level = (int) floor($response->getStatusCode() / 100); - if ($level === 4) { - $label = 'Client error'; - $className = ClientException::class; - } elseif ($level === 5) { - $label = 'Server error'; - $className = ServerException::class; - } else { - $label = 'Unsuccessful request'; - $className = __CLASS__; - } - - $uri = $request->getUri(); - $uri = static::obfuscateUri($uri); - - // Client Error: `GET /` resulted in a `404 Not Found` response: - // ... (truncated) - $message = sprintf( - '%s: `%s %s` resulted in a `%s %s` response', - $label, - $request->getMethod(), - $uri, - $response->getStatusCode(), - $response->getReasonPhrase() - ); - - $summary = static::getResponseBodySummary($response); - - if ($summary !== null) { - $message .= ":\n{$summary}\n"; - } - - return new $className($message, $request, $response, $previous, $ctx); - } - - /** - * Get a short summary of the response - * - * Will return `null` if the response is not printable. - * - * @param ResponseInterface $response - * - * @return string|null - */ - public static function getResponseBodySummary(ResponseInterface $response) - { - $body = $response->getBody(); - - if (!$body->isSeekable()) { - return null; - } - - $size = $body->getSize(); - - if ($size === 0) { - return null; - } - - $summary = $body->read(120); - $body->rewind(); - - if ($size > 120) { - $summary .= ' (truncated...)'; - } - - // Matches any printable character, including unicode characters: - // letters, marks, numbers, punctuation, spacing, and separators. - if (preg_match('/[^\pL\pM\pN\pP\pS\pZ\n\r\t]/', $summary)) { - return null; - } - - return $summary; - } - - /** - * Obfuscates URI if there is an username and a password present - * - * @param UriInterface $uri - * - * @return UriInterface - */ - private static function obfuscateUri($uri) - { - $userInfo = $uri->getUserInfo(); - - if (false !== ($pos = strpos($userInfo, ':'))) { - return $uri->withUserInfo(substr($userInfo, 0, $pos), '***'); - } - - return $uri; - } - - /** - * Get the request that caused the exception - * - * @return RequestInterface - */ - public function getRequest() - { - return $this->request; - } - - /** - * Get the associated response - * - * @return ResponseInterface|null - */ - public function getResponse() - { - return $this->response; - } - - /** - * Check if a response was received - * - * @return bool - */ - public function hasResponse() - { - return $this->response !== null; - } - - /** - * Get contextual information about the error from the underlying handler. - * - * The contents of this array will vary depending on which handler you are - * using. It may also be just an empty array. Relying on this data will - * couple you to a specific handler, but can give more debug information - * when needed. - * - * @return array - */ - public function getHandlerContext() - { - return $this->handlerContext; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Exception/SeekException.php b/vendor/guzzlehttp/guzzle/src/Exception/SeekException.php deleted file mode 100644 index a77c2892..00000000 --- a/vendor/guzzlehttp/guzzle/src/Exception/SeekException.php +++ /dev/null @@ -1,27 +0,0 @@ -stream = $stream; - $msg = $msg ?: 'Could not seek the stream to position ' . $pos; - parent::__construct($msg); - } - - /** - * @return StreamInterface - */ - public function getStream() - { - return $this->stream; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php b/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php deleted file mode 100644 index 7cdd3408..00000000 --- a/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php +++ /dev/null @@ -1,7 +0,0 @@ -maxHandles = $maxHandles; - } - - public function create(RequestInterface $request, array $options) - { - if (isset($options['curl']['body_as_string'])) { - $options['_body_as_string'] = $options['curl']['body_as_string']; - unset($options['curl']['body_as_string']); - } - - $easy = new EasyHandle; - $easy->request = $request; - $easy->options = $options; - $conf = $this->getDefaultConf($easy); - $this->applyMethod($easy, $conf); - $this->applyHandlerOptions($easy, $conf); - $this->applyHeaders($easy, $conf); - unset($conf['_headers']); - - // Add handler options from the request configuration options - if (isset($options['curl'])) { - $conf = array_replace($conf, $options['curl']); - } - - $conf[CURLOPT_HEADERFUNCTION] = $this->createHeaderFn($easy); - $easy->handle = $this->handles - ? array_pop($this->handles) - : curl_init(); - curl_setopt_array($easy->handle, $conf); - - return $easy; - } - - public function release(EasyHandle $easy) - { - $resource = $easy->handle; - unset($easy->handle); - - if (count($this->handles) >= $this->maxHandles) { - curl_close($resource); - } else { - // Remove all callback functions as they can hold onto references - // and are not cleaned up by curl_reset. Using curl_setopt_array - // does not work for some reason, so removing each one - // individually. - curl_setopt($resource, CURLOPT_HEADERFUNCTION, null); - curl_setopt($resource, CURLOPT_READFUNCTION, null); - curl_setopt($resource, CURLOPT_WRITEFUNCTION, null); - curl_setopt($resource, CURLOPT_PROGRESSFUNCTION, null); - curl_reset($resource); - $this->handles[] = $resource; - } - } - - /** - * Completes a cURL transaction, either returning a response promise or a - * rejected promise. - * - * @param callable $handler - * @param EasyHandle $easy - * @param CurlFactoryInterface $factory Dictates how the handle is released - * - * @return \GuzzleHttp\Promise\PromiseInterface - */ - public static function finish( - callable $handler, - EasyHandle $easy, - CurlFactoryInterface $factory - ) { - if (isset($easy->options['on_stats'])) { - self::invokeStats($easy); - } - - if (!$easy->response || $easy->errno) { - return self::finishError($handler, $easy, $factory); - } - - // Return the response if it is present and there is no error. - $factory->release($easy); - - // Rewind the body of the response if possible. - $body = $easy->response->getBody(); - if ($body->isSeekable()) { - $body->rewind(); - } - - return new FulfilledPromise($easy->response); - } - - private static function invokeStats(EasyHandle $easy) - { - $curlStats = curl_getinfo($easy->handle); - $stats = new TransferStats( - $easy->request, - $easy->response, - $curlStats['total_time'], - $easy->errno, - $curlStats - ); - call_user_func($easy->options['on_stats'], $stats); - } - - private static function finishError( - callable $handler, - EasyHandle $easy, - CurlFactoryInterface $factory - ) { - // Get error information and release the handle to the factory. - $ctx = [ - 'errno' => $easy->errno, - 'error' => curl_error($easy->handle), - ] + curl_getinfo($easy->handle); - $factory->release($easy); - - // Retry when nothing is present or when curl failed to rewind. - if (empty($easy->options['_err_message']) - && (!$easy->errno || $easy->errno == 65) - ) { - return self::retryFailedRewind($handler, $easy, $ctx); - } - - return self::createRejection($easy, $ctx); - } - - private static function createRejection(EasyHandle $easy, array $ctx) - { - static $connectionErrors = [ - CURLE_OPERATION_TIMEOUTED => true, - CURLE_COULDNT_RESOLVE_HOST => true, - CURLE_COULDNT_CONNECT => true, - CURLE_SSL_CONNECT_ERROR => true, - CURLE_GOT_NOTHING => true, - ]; - - // If an exception was encountered during the onHeaders event, then - // return a rejected promise that wraps that exception. - if ($easy->onHeadersException) { - return \GuzzleHttp\Promise\rejection_for( - new RequestException( - 'An error was encountered during the on_headers event', - $easy->request, - $easy->response, - $easy->onHeadersException, - $ctx - ) - ); - } - - $message = sprintf( - 'cURL error %s: %s (%s)', - $ctx['errno'], - $ctx['error'], - 'see http://curl.haxx.se/libcurl/c/libcurl-errors.html' - ); - - // Create a connection exception if it was a specific error code. - $error = isset($connectionErrors[$easy->errno]) - ? new ConnectException($message, $easy->request, null, $ctx) - : new RequestException($message, $easy->request, $easy->response, null, $ctx); - - return \GuzzleHttp\Promise\rejection_for($error); - } - - private function getDefaultConf(EasyHandle $easy) - { - $conf = [ - '_headers' => $easy->request->getHeaders(), - CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), - CURLOPT_URL => (string) $easy->request->getUri()->withFragment(''), - CURLOPT_RETURNTRANSFER => false, - CURLOPT_HEADER => false, - CURLOPT_CONNECTTIMEOUT => 150, - ]; - - if (defined('CURLOPT_PROTOCOLS')) { - $conf[CURLOPT_PROTOCOLS] = CURLPROTO_HTTP | CURLPROTO_HTTPS; - } - - $version = $easy->request->getProtocolVersion(); - if ($version == 1.1) { - $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_1; - } elseif ($version == 2.0) { - $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2_0; - } else { - $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0; - } - - return $conf; - } - - private function applyMethod(EasyHandle $easy, array &$conf) - { - $body = $easy->request->getBody(); - $size = $body->getSize(); - - if ($size === null || $size > 0) { - $this->applyBody($easy->request, $easy->options, $conf); - return; - } - - $method = $easy->request->getMethod(); - if ($method === 'PUT' || $method === 'POST') { - // See http://tools.ietf.org/html/rfc7230#section-3.3.2 - if (!$easy->request->hasHeader('Content-Length')) { - $conf[CURLOPT_HTTPHEADER][] = 'Content-Length: 0'; - } - } elseif ($method === 'HEAD') { - $conf[CURLOPT_NOBODY] = true; - unset( - $conf[CURLOPT_WRITEFUNCTION], - $conf[CURLOPT_READFUNCTION], - $conf[CURLOPT_FILE], - $conf[CURLOPT_INFILE] - ); - } - } - - private function applyBody(RequestInterface $request, array $options, array &$conf) - { - $size = $request->hasHeader('Content-Length') - ? (int) $request->getHeaderLine('Content-Length') - : null; - - // Send the body as a string if the size is less than 1MB OR if the - // [curl][body_as_string] request value is set. - if (($size !== null && $size < 1000000) || - !empty($options['_body_as_string']) - ) { - $conf[CURLOPT_POSTFIELDS] = (string) $request->getBody(); - // Don't duplicate the Content-Length header - $this->removeHeader('Content-Length', $conf); - $this->removeHeader('Transfer-Encoding', $conf); - } else { - $conf[CURLOPT_UPLOAD] = true; - if ($size !== null) { - $conf[CURLOPT_INFILESIZE] = $size; - $this->removeHeader('Content-Length', $conf); - } - $body = $request->getBody(); - if ($body->isSeekable()) { - $body->rewind(); - } - $conf[CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use ($body) { - return $body->read($length); - }; - } - - // If the Expect header is not present, prevent curl from adding it - if (!$request->hasHeader('Expect')) { - $conf[CURLOPT_HTTPHEADER][] = 'Expect:'; - } - - // cURL sometimes adds a content-type by default. Prevent this. - if (!$request->hasHeader('Content-Type')) { - $conf[CURLOPT_HTTPHEADER][] = 'Content-Type:'; - } - } - - private function applyHeaders(EasyHandle $easy, array &$conf) - { - foreach ($conf['_headers'] as $name => $values) { - foreach ($values as $value) { - $conf[CURLOPT_HTTPHEADER][] = "$name: $value"; - } - } - - // Remove the Accept header if one was not set - if (!$easy->request->hasHeader('Accept')) { - $conf[CURLOPT_HTTPHEADER][] = 'Accept:'; - } - } - - /** - * Remove a header from the options array. - * - * @param string $name Case-insensitive header to remove - * @param array $options Array of options to modify - */ - private function removeHeader($name, array &$options) - { - foreach (array_keys($options['_headers']) as $key) { - if (!strcasecmp($key, $name)) { - unset($options['_headers'][$key]); - return; - } - } - } - - private function applyHandlerOptions(EasyHandle $easy, array &$conf) - { - $options = $easy->options; - if (isset($options['verify'])) { - if ($options['verify'] === false) { - unset($conf[CURLOPT_CAINFO]); - $conf[CURLOPT_SSL_VERIFYHOST] = 0; - $conf[CURLOPT_SSL_VERIFYPEER] = false; - } else { - $conf[CURLOPT_SSL_VERIFYHOST] = 2; - $conf[CURLOPT_SSL_VERIFYPEER] = true; - if (is_string($options['verify'])) { - // Throw an error if the file/folder/link path is not valid or doesn't exist. - if (!file_exists($options['verify'])) { - throw new \InvalidArgumentException( - "SSL CA bundle not found: {$options['verify']}" - ); - } - // If it's a directory or a link to a directory use CURLOPT_CAPATH. - // If not, it's probably a file, or a link to a file, so use CURLOPT_CAINFO. - if (is_dir($options['verify']) || - (is_link($options['verify']) && is_dir(readlink($options['verify'])))) { - $conf[CURLOPT_CAPATH] = $options['verify']; - } else { - $conf[CURLOPT_CAINFO] = $options['verify']; - } - } - } - } - - if (!empty($options['decode_content'])) { - $accept = $easy->request->getHeaderLine('Accept-Encoding'); - if ($accept) { - $conf[CURLOPT_ENCODING] = $accept; - } else { - $conf[CURLOPT_ENCODING] = ''; - // Don't let curl send the header over the wire - $conf[CURLOPT_HTTPHEADER][] = 'Accept-Encoding:'; - } - } - - if (isset($options['sink'])) { - $sink = $options['sink']; - if (!is_string($sink)) { - $sink = \GuzzleHttp\Psr7\stream_for($sink); - } elseif (!is_dir(dirname($sink))) { - // Ensure that the directory exists before failing in curl. - throw new \RuntimeException(sprintf( - 'Directory %s does not exist for sink value of %s', - dirname($sink), - $sink - )); - } else { - $sink = new LazyOpenStream($sink, 'w+'); - } - $easy->sink = $sink; - $conf[CURLOPT_WRITEFUNCTION] = function ($ch, $write) use ($sink) { - return $sink->write($write); - }; - } else { - // Use a default temp stream if no sink was set. - $conf[CURLOPT_FILE] = fopen('php://temp', 'w+'); - $easy->sink = Psr7\stream_for($conf[CURLOPT_FILE]); - } - $timeoutRequiresNoSignal = false; - if (isset($options['timeout'])) { - $timeoutRequiresNoSignal |= $options['timeout'] < 1; - $conf[CURLOPT_TIMEOUT_MS] = $options['timeout'] * 1000; - } - - // CURL default value is CURL_IPRESOLVE_WHATEVER - if (isset($options['force_ip_resolve'])) { - if ('v4' === $options['force_ip_resolve']) { - $conf[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4; - } else if ('v6' === $options['force_ip_resolve']) { - $conf[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V6; - } - } - - if (isset($options['connect_timeout'])) { - $timeoutRequiresNoSignal |= $options['connect_timeout'] < 1; - $conf[CURLOPT_CONNECTTIMEOUT_MS] = $options['connect_timeout'] * 1000; - } - - if ($timeoutRequiresNoSignal && strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') { - $conf[CURLOPT_NOSIGNAL] = true; - } - - if (isset($options['proxy'])) { - if (!is_array($options['proxy'])) { - $conf[CURLOPT_PROXY] = $options['proxy']; - } else { - $scheme = $easy->request->getUri()->getScheme(); - if (isset($options['proxy'][$scheme])) { - $host = $easy->request->getUri()->getHost(); - if (!isset($options['proxy']['no']) || - !\GuzzleHttp\is_host_in_noproxy($host, $options['proxy']['no']) - ) { - $conf[CURLOPT_PROXY] = $options['proxy'][$scheme]; - } - } - } - } - - if (isset($options['cert'])) { - $cert = $options['cert']; - if (is_array($cert)) { - $conf[CURLOPT_SSLCERTPASSWD] = $cert[1]; - $cert = $cert[0]; - } - if (!file_exists($cert)) { - throw new \InvalidArgumentException( - "SSL certificate not found: {$cert}" - ); - } - $conf[CURLOPT_SSLCERT] = $cert; - } - - if (isset($options['ssl_key'])) { - $sslKey = $options['ssl_key']; - if (is_array($sslKey)) { - $conf[CURLOPT_SSLKEYPASSWD] = $sslKey[1]; - $sslKey = $sslKey[0]; - } - if (!file_exists($sslKey)) { - throw new \InvalidArgumentException( - "SSL private key not found: {$sslKey}" - ); - } - $conf[CURLOPT_SSLKEY] = $sslKey; - } - - if (isset($options['progress'])) { - $progress = $options['progress']; - if (!is_callable($progress)) { - throw new \InvalidArgumentException( - 'progress client option must be callable' - ); - } - $conf[CURLOPT_NOPROGRESS] = false; - $conf[CURLOPT_PROGRESSFUNCTION] = function () use ($progress) { - $args = func_get_args(); - // PHP 5.5 pushed the handle onto the start of the args - if (is_resource($args[0])) { - array_shift($args); - } - call_user_func_array($progress, $args); - }; - } - - if (!empty($options['debug'])) { - $conf[CURLOPT_STDERR] = \GuzzleHttp\debug_resource($options['debug']); - $conf[CURLOPT_VERBOSE] = true; - } - } - - /** - * This function ensures that a response was set on a transaction. If one - * was not set, then the request is retried if possible. This error - * typically means you are sending a payload, curl encountered a - * "Connection died, retrying a fresh connect" error, tried to rewind the - * stream, and then encountered a "necessary data rewind wasn't possible" - * error, causing the request to be sent through curl_multi_info_read() - * without an error status. - */ - private static function retryFailedRewind( - callable $handler, - EasyHandle $easy, - array $ctx - ) { - try { - // Only rewind if the body has been read from. - $body = $easy->request->getBody(); - if ($body->tell() > 0) { - $body->rewind(); - } - } catch (\RuntimeException $e) { - $ctx['error'] = 'The connection unexpectedly failed without ' - . 'providing an error. The request would have been retried, ' - . 'but attempting to rewind the request body failed. ' - . 'Exception: ' . $e; - return self::createRejection($easy, $ctx); - } - - // Retry no more than 3 times before giving up. - if (!isset($easy->options['_curl_retries'])) { - $easy->options['_curl_retries'] = 1; - } elseif ($easy->options['_curl_retries'] == 2) { - $ctx['error'] = 'The cURL request was retried 3 times ' - . 'and did not succeed. The most likely reason for the failure ' - . 'is that cURL was unable to rewind the body of the request ' - . 'and subsequent retries resulted in the same error. Turn on ' - . 'the debug option to see what went wrong. See ' - . 'https://bugs.php.net/bug.php?id=47204 for more information.'; - return self::createRejection($easy, $ctx); - } else { - $easy->options['_curl_retries']++; - } - - return $handler($easy->request, $easy->options); - } - - private function createHeaderFn(EasyHandle $easy) - { - if (isset($easy->options['on_headers'])) { - $onHeaders = $easy->options['on_headers']; - - if (!is_callable($onHeaders)) { - throw new \InvalidArgumentException('on_headers must be callable'); - } - } else { - $onHeaders = null; - } - - return function ($ch, $h) use ( - $onHeaders, - $easy, - &$startingResponse - ) { - $value = trim($h); - if ($value === '') { - $startingResponse = true; - $easy->createResponse(); - if ($onHeaders !== null) { - try { - $onHeaders($easy->response); - } catch (\Exception $e) { - // Associate the exception with the handle and trigger - // a curl header write error by returning 0. - $easy->onHeadersException = $e; - return -1; - } - } - } elseif ($startingResponse) { - $startingResponse = false; - $easy->headers = [$value]; - } else { - $easy->headers[] = $value; - } - return strlen($h); - }; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php b/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php deleted file mode 100644 index b0fc2368..00000000 --- a/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php +++ /dev/null @@ -1,27 +0,0 @@ -factory = isset($options['handle_factory']) - ? $options['handle_factory'] - : new CurlFactory(3); - } - - public function __invoke(RequestInterface $request, array $options) - { - if (isset($options['delay'])) { - usleep($options['delay'] * 1000); - } - - $easy = $this->factory->create($request, $options); - curl_exec($easy->handle); - $easy->errno = curl_errno($easy->handle); - - return CurlFactory::finish($this, $easy, $this->factory); - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php b/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php deleted file mode 100644 index 945d06ee..00000000 --- a/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php +++ /dev/null @@ -1,197 +0,0 @@ -factory = isset($options['handle_factory']) - ? $options['handle_factory'] : new CurlFactory(50); - $this->selectTimeout = isset($options['select_timeout']) - ? $options['select_timeout'] : 1; - } - - public function __get($name) - { - if ($name === '_mh') { - return $this->_mh = curl_multi_init(); - } - - throw new \BadMethodCallException(); - } - - public function __destruct() - { - if (isset($this->_mh)) { - curl_multi_close($this->_mh); - unset($this->_mh); - } - } - - public function __invoke(RequestInterface $request, array $options) - { - $easy = $this->factory->create($request, $options); - $id = (int) $easy->handle; - - $promise = new Promise( - [$this, 'execute'], - function () use ($id) { return $this->cancel($id); } - ); - - $this->addRequest(['easy' => $easy, 'deferred' => $promise]); - - return $promise; - } - - /** - * Ticks the curl event loop. - */ - public function tick() - { - // Add any delayed handles if needed. - if ($this->delays) { - $currentTime = microtime(true); - foreach ($this->delays as $id => $delay) { - if ($currentTime >= $delay) { - unset($this->delays[$id]); - curl_multi_add_handle( - $this->_mh, - $this->handles[$id]['easy']->handle - ); - } - } - } - - // Step through the task queue which may add additional requests. - P\queue()->run(); - - if ($this->active && - curl_multi_select($this->_mh, $this->selectTimeout) === -1 - ) { - // Perform a usleep if a select returns -1. - // See: https://bugs.php.net/bug.php?id=61141 - usleep(250); - } - - while (curl_multi_exec($this->_mh, $this->active) === CURLM_CALL_MULTI_PERFORM); - - $this->processMessages(); - } - - /** - * Runs until all outstanding connections have completed. - */ - public function execute() - { - $queue = P\queue(); - - while ($this->handles || !$queue->isEmpty()) { - // If there are no transfers, then sleep for the next delay - if (!$this->active && $this->delays) { - usleep($this->timeToNext()); - } - $this->tick(); - } - } - - private function addRequest(array $entry) - { - $easy = $entry['easy']; - $id = (int) $easy->handle; - $this->handles[$id] = $entry; - if (empty($easy->options['delay'])) { - curl_multi_add_handle($this->_mh, $easy->handle); - } else { - $this->delays[$id] = microtime(true) + ($easy->options['delay'] / 1000); - } - } - - /** - * Cancels a handle from sending and removes references to it. - * - * @param int $id Handle ID to cancel and remove. - * - * @return bool True on success, false on failure. - */ - private function cancel($id) - { - // Cannot cancel if it has been processed. - if (!isset($this->handles[$id])) { - return false; - } - - $handle = $this->handles[$id]['easy']->handle; - unset($this->delays[$id], $this->handles[$id]); - curl_multi_remove_handle($this->_mh, $handle); - curl_close($handle); - - return true; - } - - private function processMessages() - { - while ($done = curl_multi_info_read($this->_mh)) { - $id = (int) $done['handle']; - curl_multi_remove_handle($this->_mh, $done['handle']); - - if (!isset($this->handles[$id])) { - // Probably was cancelled. - continue; - } - - $entry = $this->handles[$id]; - unset($this->handles[$id], $this->delays[$id]); - $entry['easy']->errno = $done['result']; - $entry['deferred']->resolve( - CurlFactory::finish( - $this, - $entry['easy'], - $this->factory - ) - ); - } - } - - private function timeToNext() - { - $currentTime = microtime(true); - $nextTime = PHP_INT_MAX; - foreach ($this->delays as $time) { - if ($time < $nextTime) { - $nextTime = $time; - } - } - - return max(0, $nextTime - $currentTime) * 1000000; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php b/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php deleted file mode 100644 index 7754e911..00000000 --- a/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php +++ /dev/null @@ -1,92 +0,0 @@ -headers)) { - throw new \RuntimeException('No headers have been received'); - } - - // HTTP-version SP status-code SP reason-phrase - $startLine = explode(' ', array_shift($this->headers), 3); - $headers = \GuzzleHttp\headers_from_lines($this->headers); - $normalizedKeys = \GuzzleHttp\normalize_header_keys($headers); - - if (!empty($this->options['decode_content']) - && isset($normalizedKeys['content-encoding']) - ) { - $headers['x-encoded-content-encoding'] - = $headers[$normalizedKeys['content-encoding']]; - unset($headers[$normalizedKeys['content-encoding']]); - if (isset($normalizedKeys['content-length'])) { - $headers['x-encoded-content-length'] - = $headers[$normalizedKeys['content-length']]; - - $bodyLength = (int) $this->sink->getSize(); - if ($bodyLength) { - $headers[$normalizedKeys['content-length']] = $bodyLength; - } else { - unset($headers[$normalizedKeys['content-length']]); - } - } - } - - // Attach a response to the easy handle with the parsed headers. - $this->response = new Response( - $startLine[1], - $headers, - $this->sink, - substr($startLine[0], 5), - isset($startLine[2]) ? (string) $startLine[2] : null - ); - } - - public function __get($name) - { - $msg = $name === 'handle' - ? 'The EasyHandle has been released' - : 'Invalid property: ' . $name; - throw new \BadMethodCallException($msg); - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php b/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php deleted file mode 100644 index d892061c..00000000 --- a/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php +++ /dev/null @@ -1,189 +0,0 @@ -onFulfilled = $onFulfilled; - $this->onRejected = $onRejected; - - if ($queue) { - call_user_func_array([$this, 'append'], $queue); - } - } - - public function __invoke(RequestInterface $request, array $options) - { - if (!$this->queue) { - throw new \OutOfBoundsException('Mock queue is empty'); - } - - if (isset($options['delay'])) { - usleep($options['delay'] * 1000); - } - - $this->lastRequest = $request; - $this->lastOptions = $options; - $response = array_shift($this->queue); - - if (isset($options['on_headers'])) { - if (!is_callable($options['on_headers'])) { - throw new \InvalidArgumentException('on_headers must be callable'); - } - try { - $options['on_headers']($response); - } catch (\Exception $e) { - $msg = 'An error was encountered during the on_headers event'; - $response = new RequestException($msg, $request, $response, $e); - } - } - - if (is_callable($response)) { - $response = call_user_func($response, $request, $options); - } - - $response = $response instanceof \Exception - ? \GuzzleHttp\Promise\rejection_for($response) - : \GuzzleHttp\Promise\promise_for($response); - - return $response->then( - function ($value) use ($request, $options) { - $this->invokeStats($request, $options, $value); - if ($this->onFulfilled) { - call_user_func($this->onFulfilled, $value); - } - if (isset($options['sink'])) { - $contents = (string) $value->getBody(); - $sink = $options['sink']; - - if (is_resource($sink)) { - fwrite($sink, $contents); - } elseif (is_string($sink)) { - file_put_contents($sink, $contents); - } elseif ($sink instanceof \Psr\Http\Message\StreamInterface) { - $sink->write($contents); - } - } - - return $value; - }, - function ($reason) use ($request, $options) { - $this->invokeStats($request, $options, null, $reason); - if ($this->onRejected) { - call_user_func($this->onRejected, $reason); - } - return \GuzzleHttp\Promise\rejection_for($reason); - } - ); - } - - /** - * Adds one or more variadic requests, exceptions, callables, or promises - * to the queue. - */ - public function append() - { - foreach (func_get_args() as $value) { - if ($value instanceof ResponseInterface - || $value instanceof \Exception - || $value instanceof PromiseInterface - || is_callable($value) - ) { - $this->queue[] = $value; - } else { - throw new \InvalidArgumentException('Expected a response or ' - . 'exception. Found ' . \GuzzleHttp\describe_type($value)); - } - } - } - - /** - * Get the last received request. - * - * @return RequestInterface - */ - public function getLastRequest() - { - return $this->lastRequest; - } - - /** - * Get the last received request options. - * - * @return array - */ - public function getLastOptions() - { - return $this->lastOptions; - } - - /** - * Returns the number of remaining items in the queue. - * - * @return int - */ - public function count() - { - return count($this->queue); - } - - private function invokeStats( - RequestInterface $request, - array $options, - ResponseInterface $response = null, - $reason = null - ) { - if (isset($options['on_stats'])) { - $stats = new TransferStats($request, $response, 0, $reason); - call_user_func($options['on_stats'], $stats); - } - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php b/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php deleted file mode 100644 index f8b00be0..00000000 --- a/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php +++ /dev/null @@ -1,55 +0,0 @@ -withoutHeader('Expect'); - - // Append a content-length header if body size is zero to match - // cURL's behavior. - if (0 === $request->getBody()->getSize()) { - $request = $request->withHeader('Content-Length', 0); - } - - return $this->createResponse( - $request, - $options, - $this->createStream($request, $options), - $startTime - ); - } catch (\InvalidArgumentException $e) { - throw $e; - } catch (\Exception $e) { - // Determine if the error was a networking error. - $message = $e->getMessage(); - // This list can probably get more comprehensive. - if (strpos($message, 'getaddrinfo') // DNS lookup failed - || strpos($message, 'Connection refused') - || strpos($message, "couldn't connect to host") // error on HHVM - ) { - $e = new ConnectException($e->getMessage(), $request, $e); - } - $e = RequestException::wrapException($request, $e); - $this->invokeStats($options, $request, $startTime, null, $e); - - return \GuzzleHttp\Promise\rejection_for($e); - } - } - - private function invokeStats( - array $options, - RequestInterface $request, - $startTime, - ResponseInterface $response = null, - $error = null - ) { - if (isset($options['on_stats'])) { - $stats = new TransferStats( - $request, - $response, - microtime(true) - $startTime, - $error, - [] - ); - call_user_func($options['on_stats'], $stats); - } - } - - private function createResponse( - RequestInterface $request, - array $options, - $stream, - $startTime - ) { - $hdrs = $this->lastHeaders; - $this->lastHeaders = []; - $parts = explode(' ', array_shift($hdrs), 3); - $ver = explode('/', $parts[0])[1]; - $status = $parts[1]; - $reason = isset($parts[2]) ? $parts[2] : null; - $headers = \GuzzleHttp\headers_from_lines($hdrs); - list ($stream, $headers) = $this->checkDecode($options, $headers, $stream); - $stream = Psr7\stream_for($stream); - $sink = $stream; - - if (strcasecmp('HEAD', $request->getMethod())) { - $sink = $this->createSink($stream, $options); - } - - $response = new Psr7\Response($status, $headers, $sink, $ver, $reason); - - if (isset($options['on_headers'])) { - try { - $options['on_headers']($response); - } catch (\Exception $e) { - $msg = 'An error was encountered during the on_headers event'; - $ex = new RequestException($msg, $request, $response, $e); - return \GuzzleHttp\Promise\rejection_for($ex); - } - } - - // Do not drain when the request is a HEAD request because they have - // no body. - if ($sink !== $stream) { - $this->drain( - $stream, - $sink, - $response->getHeaderLine('Content-Length') - ); - } - - $this->invokeStats($options, $request, $startTime, $response, null); - - return new FulfilledPromise($response); - } - - private function createSink(StreamInterface $stream, array $options) - { - if (!empty($options['stream'])) { - return $stream; - } - - $sink = isset($options['sink']) - ? $options['sink'] - : fopen('php://temp', 'r+'); - - return is_string($sink) - ? new Psr7\LazyOpenStream($sink, 'w+') - : Psr7\stream_for($sink); - } - - private function checkDecode(array $options, array $headers, $stream) - { - // Automatically decode responses when instructed. - if (!empty($options['decode_content'])) { - $normalizedKeys = \GuzzleHttp\normalize_header_keys($headers); - if (isset($normalizedKeys['content-encoding'])) { - $encoding = $headers[$normalizedKeys['content-encoding']]; - if ($encoding[0] === 'gzip' || $encoding[0] === 'deflate') { - $stream = new Psr7\InflateStream( - Psr7\stream_for($stream) - ); - $headers['x-encoded-content-encoding'] - = $headers[$normalizedKeys['content-encoding']]; - // Remove content-encoding header - unset($headers[$normalizedKeys['content-encoding']]); - // Fix content-length header - if (isset($normalizedKeys['content-length'])) { - $headers['x-encoded-content-length'] - = $headers[$normalizedKeys['content-length']]; - - $length = (int) $stream->getSize(); - if ($length === 0) { - unset($headers[$normalizedKeys['content-length']]); - } else { - $headers[$normalizedKeys['content-length']] = [$length]; - } - } - } - } - } - - return [$stream, $headers]; - } - - /** - * Drains the source stream into the "sink" client option. - * - * @param StreamInterface $source - * @param StreamInterface $sink - * @param string $contentLength Header specifying the amount of - * data to read. - * - * @return StreamInterface - * @throws \RuntimeException when the sink option is invalid. - */ - private function drain( - StreamInterface $source, - StreamInterface $sink, - $contentLength - ) { - // If a content-length header is provided, then stop reading once - // that number of bytes has been read. This can prevent infinitely - // reading from a stream when dealing with servers that do not honor - // Connection: Close headers. - Psr7\copy_to_stream( - $source, - $sink, - (strlen($contentLength) > 0 && (int) $contentLength > 0) ? (int) $contentLength : -1 - ); - - $sink->seek(0); - $source->close(); - - return $sink; - } - - /** - * Create a resource and check to ensure it was created successfully - * - * @param callable $callback Callable that returns stream resource - * - * @return resource - * @throws \RuntimeException on error - */ - private function createResource(callable $callback) - { - $errors = null; - set_error_handler(function ($_, $msg, $file, $line) use (&$errors) { - $errors[] = [ - 'message' => $msg, - 'file' => $file, - 'line' => $line - ]; - return true; - }); - - $resource = $callback(); - restore_error_handler(); - - if (!$resource) { - $message = 'Error creating resource: '; - foreach ($errors as $err) { - foreach ($err as $key => $value) { - $message .= "[$key] $value" . PHP_EOL; - } - } - throw new \RuntimeException(trim($message)); - } - - return $resource; - } - - private function createStream(RequestInterface $request, array $options) - { - static $methods; - if (!$methods) { - $methods = array_flip(get_class_methods(__CLASS__)); - } - - // HTTP/1.1 streams using the PHP stream wrapper require a - // Connection: close header - if ($request->getProtocolVersion() == '1.1' - && !$request->hasHeader('Connection') - ) { - $request = $request->withHeader('Connection', 'close'); - } - - // Ensure SSL is verified by default - if (!isset($options['verify'])) { - $options['verify'] = true; - } - - $params = []; - $context = $this->getDefaultContext($request, $options); - - if (isset($options['on_headers']) && !is_callable($options['on_headers'])) { - throw new \InvalidArgumentException('on_headers must be callable'); - } - - if (!empty($options)) { - foreach ($options as $key => $value) { - $method = "add_{$key}"; - if (isset($methods[$method])) { - $this->{$method}($request, $context, $value, $params); - } - } - } - - if (isset($options['stream_context'])) { - if (!is_array($options['stream_context'])) { - throw new \InvalidArgumentException('stream_context must be an array'); - } - $context = array_replace_recursive( - $context, - $options['stream_context'] - ); - } - - // Microsoft NTLM authentication only supported with curl handler - if (isset($options['auth']) - && is_array($options['auth']) - && isset($options['auth'][2]) - && 'ntlm' == $options['auth'][2] - ) { - - throw new \InvalidArgumentException('Microsoft NTLM authentication only supported with curl handler'); - } - - $uri = $this->resolveHost($request, $options); - - $context = $this->createResource( - function () use ($context, $params) { - return stream_context_create($context, $params); - } - ); - - return $this->createResource( - function () use ($uri, &$http_response_header, $context, $options) { - $resource = fopen((string) $uri, 'r', null, $context); - $this->lastHeaders = $http_response_header; - - if (isset($options['read_timeout'])) { - $readTimeout = $options['read_timeout']; - $sec = (int) $readTimeout; - $usec = ($readTimeout - $sec) * 100000; - stream_set_timeout($resource, $sec, $usec); - } - - return $resource; - } - ); - } - - private function resolveHost(RequestInterface $request, array $options) - { - $uri = $request->getUri(); - - if (isset($options['force_ip_resolve']) && !filter_var($uri->getHost(), FILTER_VALIDATE_IP)) { - if ('v4' === $options['force_ip_resolve']) { - $records = dns_get_record($uri->getHost(), DNS_A); - if (!isset($records[0]['ip'])) { - throw new ConnectException(sprintf("Could not resolve IPv4 address for host '%s'", $uri->getHost()), $request); - } - $uri = $uri->withHost($records[0]['ip']); - } elseif ('v6' === $options['force_ip_resolve']) { - $records = dns_get_record($uri->getHost(), DNS_AAAA); - if (!isset($records[0]['ipv6'])) { - throw new ConnectException(sprintf("Could not resolve IPv6 address for host '%s'", $uri->getHost()), $request); - } - $uri = $uri->withHost('[' . $records[0]['ipv6'] . ']'); - } - } - - return $uri; - } - - private function getDefaultContext(RequestInterface $request) - { - $headers = ''; - foreach ($request->getHeaders() as $name => $value) { - foreach ($value as $val) { - $headers .= "$name: $val\r\n"; - } - } - - $context = [ - 'http' => [ - 'method' => $request->getMethod(), - 'header' => $headers, - 'protocol_version' => $request->getProtocolVersion(), - 'ignore_errors' => true, - 'follow_location' => 0, - ], - ]; - - $body = (string) $request->getBody(); - - if (!empty($body)) { - $context['http']['content'] = $body; - // Prevent the HTTP handler from adding a Content-Type header. - if (!$request->hasHeader('Content-Type')) { - $context['http']['header'] .= "Content-Type:\r\n"; - } - } - - $context['http']['header'] = rtrim($context['http']['header']); - - return $context; - } - - private function add_proxy(RequestInterface $request, &$options, $value, &$params) - { - if (!is_array($value)) { - $options['http']['proxy'] = $value; - } else { - $scheme = $request->getUri()->getScheme(); - if (isset($value[$scheme])) { - if (!isset($value['no']) - || !\GuzzleHttp\is_host_in_noproxy( - $request->getUri()->getHost(), - $value['no'] - ) - ) { - $options['http']['proxy'] = $value[$scheme]; - } - } - } - } - - private function add_timeout(RequestInterface $request, &$options, $value, &$params) - { - if ($value > 0) { - $options['http']['timeout'] = $value; - } - } - - private function add_verify(RequestInterface $request, &$options, $value, &$params) - { - if ($value === true) { - // PHP 5.6 or greater will find the system cert by default. When - // < 5.6, use the Guzzle bundled cacert. - if (PHP_VERSION_ID < 50600) { - $options['ssl']['cafile'] = \GuzzleHttp\default_ca_bundle(); - } - } elseif (is_string($value)) { - $options['ssl']['cafile'] = $value; - if (!file_exists($value)) { - throw new \RuntimeException("SSL CA bundle not found: $value"); - } - } elseif ($value === false) { - $options['ssl']['verify_peer'] = false; - $options['ssl']['verify_peer_name'] = false; - return; - } else { - throw new \InvalidArgumentException('Invalid verify request option'); - } - - $options['ssl']['verify_peer'] = true; - $options['ssl']['verify_peer_name'] = true; - $options['ssl']['allow_self_signed'] = false; - } - - private function add_cert(RequestInterface $request, &$options, $value, &$params) - { - if (is_array($value)) { - $options['ssl']['passphrase'] = $value[1]; - $value = $value[0]; - } - - if (!file_exists($value)) { - throw new \RuntimeException("SSL certificate not found: {$value}"); - } - - $options['ssl']['local_cert'] = $value; - } - - private function add_progress(RequestInterface $request, &$options, $value, &$params) - { - $this->addNotification( - $params, - function ($code, $a, $b, $c, $transferred, $total) use ($value) { - if ($code == STREAM_NOTIFY_PROGRESS) { - $value($total, $transferred, null, null); - } - } - ); - } - - private function add_debug(RequestInterface $request, &$options, $value, &$params) - { - if ($value === false) { - return; - } - - static $map = [ - STREAM_NOTIFY_CONNECT => 'CONNECT', - STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED', - STREAM_NOTIFY_AUTH_RESULT => 'AUTH_RESULT', - STREAM_NOTIFY_MIME_TYPE_IS => 'MIME_TYPE_IS', - STREAM_NOTIFY_FILE_SIZE_IS => 'FILE_SIZE_IS', - STREAM_NOTIFY_REDIRECTED => 'REDIRECTED', - STREAM_NOTIFY_PROGRESS => 'PROGRESS', - STREAM_NOTIFY_FAILURE => 'FAILURE', - STREAM_NOTIFY_COMPLETED => 'COMPLETED', - STREAM_NOTIFY_RESOLVE => 'RESOLVE', - ]; - static $args = ['severity', 'message', 'message_code', - 'bytes_transferred', 'bytes_max']; - - $value = \GuzzleHttp\debug_resource($value); - $ident = $request->getMethod() . ' ' . $request->getUri()->withFragment(''); - $this->addNotification( - $params, - function () use ($ident, $value, $map, $args) { - $passed = func_get_args(); - $code = array_shift($passed); - fprintf($value, '<%s> [%s] ', $ident, $map[$code]); - foreach (array_filter($passed) as $i => $v) { - fwrite($value, $args[$i] . ': "' . $v . '" '); - } - fwrite($value, "\n"); - } - ); - } - - private function addNotification(array &$params, callable $notify) - { - // Wrap the existing function if needed. - if (!isset($params['notification'])) { - $params['notification'] = $notify; - } else { - $params['notification'] = $this->callArray([ - $params['notification'], - $notify - ]); - } - } - - private function callArray(array $functions) - { - return function () use ($functions) { - $args = func_get_args(); - foreach ($functions as $fn) { - call_user_func_array($fn, $args); - } - }; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/HandlerStack.php b/vendor/guzzlehttp/guzzle/src/HandlerStack.php deleted file mode 100644 index a72e38a5..00000000 --- a/vendor/guzzlehttp/guzzle/src/HandlerStack.php +++ /dev/null @@ -1,273 +0,0 @@ -push(Middleware::httpErrors(), 'http_errors'); - $stack->push(Middleware::redirect(), 'allow_redirects'); - $stack->push(Middleware::cookies(), 'cookies'); - $stack->push(Middleware::prepareBody(), 'prepare_body'); - - return $stack; - } - - /** - * @param callable $handler Underlying HTTP handler. - */ - public function __construct(callable $handler = null) - { - $this->handler = $handler; - } - - /** - * Invokes the handler stack as a composed handler - * - * @param RequestInterface $request - * @param array $options - */ - public function __invoke(RequestInterface $request, array $options) - { - $handler = $this->resolve(); - - return $handler($request, $options); - } - - /** - * Dumps a string representation of the stack. - * - * @return string - */ - public function __toString() - { - $depth = 0; - $stack = []; - if ($this->handler) { - $stack[] = "0) Handler: " . $this->debugCallable($this->handler); - } - - $result = ''; - foreach (array_reverse($this->stack) as $tuple) { - $depth++; - $str = "{$depth}) Name: '{$tuple[1]}', "; - $str .= "Function: " . $this->debugCallable($tuple[0]); - $result = "> {$str}\n{$result}"; - $stack[] = $str; - } - - foreach (array_keys($stack) as $k) { - $result .= "< {$stack[$k]}\n"; - } - - return $result; - } - - /** - * Set the HTTP handler that actually returns a promise. - * - * @param callable $handler Accepts a request and array of options and - * returns a Promise. - */ - public function setHandler(callable $handler) - { - $this->handler = $handler; - $this->cached = null; - } - - /** - * Returns true if the builder has a handler. - * - * @return bool - */ - public function hasHandler() - { - return (bool) $this->handler; - } - - /** - * Unshift a middleware to the bottom of the stack. - * - * @param callable $middleware Middleware function - * @param string $name Name to register for this middleware. - */ - public function unshift(callable $middleware, $name = null) - { - array_unshift($this->stack, [$middleware, $name]); - $this->cached = null; - } - - /** - * Push a middleware to the top of the stack. - * - * @param callable $middleware Middleware function - * @param string $name Name to register for this middleware. - */ - public function push(callable $middleware, $name = '') - { - $this->stack[] = [$middleware, $name]; - $this->cached = null; - } - - /** - * Add a middleware before another middleware by name. - * - * @param string $findName Middleware to find - * @param callable $middleware Middleware function - * @param string $withName Name to register for this middleware. - */ - public function before($findName, callable $middleware, $withName = '') - { - $this->splice($findName, $withName, $middleware, true); - } - - /** - * Add a middleware after another middleware by name. - * - * @param string $findName Middleware to find - * @param callable $middleware Middleware function - * @param string $withName Name to register for this middleware. - */ - public function after($findName, callable $middleware, $withName = '') - { - $this->splice($findName, $withName, $middleware, false); - } - - /** - * Remove a middleware by instance or name from the stack. - * - * @param callable|string $remove Middleware to remove by instance or name. - */ - public function remove($remove) - { - $this->cached = null; - $idx = is_callable($remove) ? 0 : 1; - $this->stack = array_values(array_filter( - $this->stack, - function ($tuple) use ($idx, $remove) { - return $tuple[$idx] !== $remove; - } - )); - } - - /** - * Compose the middleware and handler into a single callable function. - * - * @return callable - */ - public function resolve() - { - if (!$this->cached) { - if (!($prev = $this->handler)) { - throw new \LogicException('No handler has been specified'); - } - - foreach (array_reverse($this->stack) as $fn) { - $prev = $fn[0]($prev); - } - - $this->cached = $prev; - } - - return $this->cached; - } - - /** - * @param $name - * @return int - */ - private function findByName($name) - { - foreach ($this->stack as $k => $v) { - if ($v[1] === $name) { - return $k; - } - } - - throw new \InvalidArgumentException("Middleware not found: $name"); - } - - /** - * Splices a function into the middleware list at a specific position. - * - * @param $findName - * @param $withName - * @param callable $middleware - * @param $before - */ - private function splice($findName, $withName, callable $middleware, $before) - { - $this->cached = null; - $idx = $this->findByName($findName); - $tuple = [$middleware, $withName]; - - if ($before) { - if ($idx === 0) { - array_unshift($this->stack, $tuple); - } else { - $replacement = [$tuple, $this->stack[$idx]]; - array_splice($this->stack, $idx, 1, $replacement); - } - } elseif ($idx === count($this->stack) - 1) { - $this->stack[] = $tuple; - } else { - $replacement = [$this->stack[$idx], $tuple]; - array_splice($this->stack, $idx, 1, $replacement); - } - } - - /** - * Provides a debug string for a given callable. - * - * @param array|callable $fn Function to write as a string. - * - * @return string - */ - private function debugCallable($fn) - { - if (is_string($fn)) { - return "callable({$fn})"; - } - - if (is_array($fn)) { - return is_string($fn[0]) - ? "callable({$fn[0]}::{$fn[1]})" - : "callable(['" . get_class($fn[0]) . "', '{$fn[1]}'])"; - } - - return 'callable(' . spl_object_hash($fn) . ')'; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/MessageFormatter.php b/vendor/guzzlehttp/guzzle/src/MessageFormatter.php deleted file mode 100644 index 6b090a97..00000000 --- a/vendor/guzzlehttp/guzzle/src/MessageFormatter.php +++ /dev/null @@ -1,182 +0,0 @@ ->>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}"; - const SHORT = '[{ts}] "{method} {target} HTTP/{version}" {code}'; - - /** @var string Template used to format log messages */ - private $template; - - /** - * @param string $template Log message template - */ - public function __construct($template = self::CLF) - { - $this->template = $template ?: self::CLF; - } - - /** - * Returns a formatted message string. - * - * @param RequestInterface $request Request that was sent - * @param ResponseInterface $response Response that was received - * @param \Exception $error Exception that was received - * - * @return string - */ - public function format( - RequestInterface $request, - ResponseInterface $response = null, - \Exception $error = null - ) { - $cache = []; - - return preg_replace_callback( - '/{\s*([A-Za-z_\-\.0-9]+)\s*}/', - function (array $matches) use ($request, $response, $error, &$cache) { - - if (isset($cache[$matches[1]])) { - return $cache[$matches[1]]; - } - - $result = ''; - switch ($matches[1]) { - case 'request': - $result = Psr7\str($request); - break; - case 'response': - $result = $response ? Psr7\str($response) : ''; - break; - case 'req_headers': - $result = trim($request->getMethod() - . ' ' . $request->getRequestTarget()) - . ' HTTP/' . $request->getProtocolVersion() . "\r\n" - . $this->headers($request); - break; - case 'res_headers': - $result = $response ? - sprintf( - 'HTTP/%s %d %s', - $response->getProtocolVersion(), - $response->getStatusCode(), - $response->getReasonPhrase() - ) . "\r\n" . $this->headers($response) - : 'NULL'; - break; - case 'req_body': - $result = $request->getBody(); - break; - case 'res_body': - $result = $response ? $response->getBody() : 'NULL'; - break; - case 'ts': - case 'date_iso_8601': - $result = gmdate('c'); - break; - case 'date_common_log': - $result = date('d/M/Y:H:i:s O'); - break; - case 'method': - $result = $request->getMethod(); - break; - case 'version': - $result = $request->getProtocolVersion(); - break; - case 'uri': - case 'url': - $result = $request->getUri(); - break; - case 'target': - $result = $request->getRequestTarget(); - break; - case 'req_version': - $result = $request->getProtocolVersion(); - break; - case 'res_version': - $result = $response - ? $response->getProtocolVersion() - : 'NULL'; - break; - case 'host': - $result = $request->getHeaderLine('Host'); - break; - case 'hostname': - $result = gethostname(); - break; - case 'code': - $result = $response ? $response->getStatusCode() : 'NULL'; - break; - case 'phrase': - $result = $response ? $response->getReasonPhrase() : 'NULL'; - break; - case 'error': - $result = $error ? $error->getMessage() : 'NULL'; - break; - default: - // handle prefixed dynamic headers - if (strpos($matches[1], 'req_header_') === 0) { - $result = $request->getHeaderLine(substr($matches[1], 11)); - } elseif (strpos($matches[1], 'res_header_') === 0) { - $result = $response - ? $response->getHeaderLine(substr($matches[1], 11)) - : 'NULL'; - } - } - - $cache[$matches[1]] = $result; - return $result; - }, - $this->template - ); - } - - private function headers(MessageInterface $message) - { - $result = ''; - foreach ($message->getHeaders() as $name => $values) { - $result .= $name . ': ' . implode(', ', $values) . "\r\n"; - } - - return trim($result); - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Middleware.php b/vendor/guzzlehttp/guzzle/src/Middleware.php deleted file mode 100644 index 9d79bd26..00000000 --- a/vendor/guzzlehttp/guzzle/src/Middleware.php +++ /dev/null @@ -1,254 +0,0 @@ -withCookieHeader($request); - return $handler($request, $options) - ->then(function ($response) use ($cookieJar, $request) { - $cookieJar->extractCookies($request, $response); - return $response; - } - ); - }; - }; - } - - /** - * Middleware that throws exceptions for 4xx or 5xx responses when the - * "http_error" request option is set to true. - * - * @return callable Returns a function that accepts the next handler. - */ - public static function httpErrors() - { - return function (callable $handler) { - return function ($request, array $options) use ($handler) { - if (empty($options['http_errors'])) { - return $handler($request, $options); - } - return $handler($request, $options)->then( - function (ResponseInterface $response) use ($request, $handler) { - $code = $response->getStatusCode(); - if ($code < 400) { - return $response; - } - throw RequestException::create($request, $response); - } - ); - }; - }; - } - - /** - * Middleware that pushes history data to an ArrayAccess container. - * - * @param array $container Container to hold the history (by reference). - * - * @return callable Returns a function that accepts the next handler. - * @throws \InvalidArgumentException if container is not an array or ArrayAccess. - */ - public static function history(&$container) - { - if (!is_array($container) && !$container instanceof \ArrayAccess) { - throw new \InvalidArgumentException('history container must be an array or object implementing ArrayAccess'); - } - - return function (callable $handler) use (&$container) { - return function ($request, array $options) use ($handler, &$container) { - return $handler($request, $options)->then( - function ($value) use ($request, &$container, $options) { - $container[] = [ - 'request' => $request, - 'response' => $value, - 'error' => null, - 'options' => $options - ]; - return $value; - }, - function ($reason) use ($request, &$container, $options) { - $container[] = [ - 'request' => $request, - 'response' => null, - 'error' => $reason, - 'options' => $options - ]; - return \GuzzleHttp\Promise\rejection_for($reason); - } - ); - }; - }; - } - - /** - * Middleware that invokes a callback before and after sending a request. - * - * The provided listener cannot modify or alter the response. It simply - * "taps" into the chain to be notified before returning the promise. The - * before listener accepts a request and options array, and the after - * listener accepts a request, options array, and response promise. - * - * @param callable $before Function to invoke before forwarding the request. - * @param callable $after Function invoked after forwarding. - * - * @return callable Returns a function that accepts the next handler. - */ - public static function tap(callable $before = null, callable $after = null) - { - return function (callable $handler) use ($before, $after) { - return function ($request, array $options) use ($handler, $before, $after) { - if ($before) { - $before($request, $options); - } - $response = $handler($request, $options); - if ($after) { - $after($request, $options, $response); - } - return $response; - }; - }; - } - - /** - * Middleware that handles request redirects. - * - * @return callable Returns a function that accepts the next handler. - */ - public static function redirect() - { - return function (callable $handler) { - return new RedirectMiddleware($handler); - }; - } - - /** - * Middleware that retries requests based on the boolean result of - * invoking the provided "decider" function. - * - * If no delay function is provided, a simple implementation of exponential - * backoff will be utilized. - * - * @param callable $decider Function that accepts the number of retries, - * a request, [response], and [exception] and - * returns true if the request is to be retried. - * @param callable $delay Function that accepts the number of retries and - * returns the number of milliseconds to delay. - * - * @return callable Returns a function that accepts the next handler. - */ - public static function retry(callable $decider, callable $delay = null) - { - return function (callable $handler) use ($decider, $delay) { - return new RetryMiddleware($decider, $handler, $delay); - }; - } - - /** - * Middleware that logs requests, responses, and errors using a message - * formatter. - * - * @param LoggerInterface $logger Logs messages. - * @param MessageFormatter $formatter Formatter used to create message strings. - * @param string $logLevel Level at which to log requests. - * - * @return callable Returns a function that accepts the next handler. - */ - public static function log(LoggerInterface $logger, MessageFormatter $formatter, $logLevel = LogLevel::INFO) - { - return function (callable $handler) use ($logger, $formatter, $logLevel) { - return function ($request, array $options) use ($handler, $logger, $formatter, $logLevel) { - return $handler($request, $options)->then( - function ($response) use ($logger, $request, $formatter, $logLevel) { - $message = $formatter->format($request, $response); - $logger->log($logLevel, $message); - return $response; - }, - function ($reason) use ($logger, $request, $formatter) { - $response = $reason instanceof RequestException - ? $reason->getResponse() - : null; - $message = $formatter->format($request, $response, $reason); - $logger->notice($message); - return \GuzzleHttp\Promise\rejection_for($reason); - } - ); - }; - }; - } - - /** - * This middleware adds a default content-type if possible, a default - * content-length or transfer-encoding header, and the expect header. - * - * @return callable - */ - public static function prepareBody() - { - return function (callable $handler) { - return new PrepareBodyMiddleware($handler); - }; - } - - /** - * Middleware that applies a map function to the request before passing to - * the next handler. - * - * @param callable $fn Function that accepts a RequestInterface and returns - * a RequestInterface. - * @return callable - */ - public static function mapRequest(callable $fn) - { - return function (callable $handler) use ($fn) { - return function ($request, array $options) use ($handler, $fn) { - return $handler($fn($request), $options); - }; - }; - } - - /** - * Middleware that applies a map function to the resolved promise's - * response. - * - * @param callable $fn Function that accepts a ResponseInterface and - * returns a ResponseInterface. - * @return callable - */ - public static function mapResponse(callable $fn) - { - return function (callable $handler) use ($fn) { - return function ($request, array $options) use ($handler, $fn) { - return $handler($request, $options)->then($fn); - }; - }; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/Pool.php b/vendor/guzzlehttp/guzzle/src/Pool.php deleted file mode 100644 index 8f1be33c..00000000 --- a/vendor/guzzlehttp/guzzle/src/Pool.php +++ /dev/null @@ -1,123 +0,0 @@ - $rfn) { - if ($rfn instanceof RequestInterface) { - yield $key => $client->sendAsync($rfn, $opts); - } elseif (is_callable($rfn)) { - yield $key => $rfn($opts); - } else { - throw new \InvalidArgumentException('Each value yielded by ' - . 'the iterator must be a Psr7\Http\Message\RequestInterface ' - . 'or a callable that returns a promise that fulfills ' - . 'with a Psr7\Message\Http\ResponseInterface object.'); - } - } - }; - - $this->each = new EachPromise($requests(), $config); - } - - public function promise() - { - return $this->each->promise(); - } - - /** - * Sends multiple requests concurrently and returns an array of responses - * and exceptions that uses the same ordering as the provided requests. - * - * IMPORTANT: This method keeps every request and response in memory, and - * as such, is NOT recommended when sending a large number or an - * indeterminate number of requests concurrently. - * - * @param ClientInterface $client Client used to send the requests - * @param array|\Iterator $requests Requests to send concurrently. - * @param array $options Passes through the options available in - * {@see GuzzleHttp\Pool::__construct} - * - * @return array Returns an array containing the response or an exception - * in the same order that the requests were sent. - * @throws \InvalidArgumentException if the event format is incorrect. - */ - public static function batch( - ClientInterface $client, - $requests, - array $options = [] - ) { - $res = []; - self::cmpCallback($options, 'fulfilled', $res); - self::cmpCallback($options, 'rejected', $res); - $pool = new static($client, $requests, $options); - $pool->promise()->wait(); - ksort($res); - - return $res; - } - - private static function cmpCallback(array &$options, $name, array &$results) - { - if (!isset($options[$name])) { - $options[$name] = function ($v, $k) use (&$results) { - $results[$k] = $v; - }; - } else { - $currentFn = $options[$name]; - $options[$name] = function ($v, $k) use (&$results, $currentFn) { - $currentFn($v, $k); - $results[$k] = $v; - }; - } - } -} diff --git a/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php b/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php deleted file mode 100644 index 2eb95f9b..00000000 --- a/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php +++ /dev/null @@ -1,106 +0,0 @@ -nextHandler = $nextHandler; - } - - /** - * @param RequestInterface $request - * @param array $options - * - * @return PromiseInterface - */ - public function __invoke(RequestInterface $request, array $options) - { - $fn = $this->nextHandler; - - // Don't do anything if the request has no body. - if ($request->getBody()->getSize() === 0) { - return $fn($request, $options); - } - - $modify = []; - - // Add a default content-type if possible. - if (!$request->hasHeader('Content-Type')) { - if ($uri = $request->getBody()->getMetadata('uri')) { - if ($type = Psr7\mimetype_from_filename($uri)) { - $modify['set_headers']['Content-Type'] = $type; - } - } - } - - // Add a default content-length or transfer-encoding header. - if (!$request->hasHeader('Content-Length') - && !$request->hasHeader('Transfer-Encoding') - ) { - $size = $request->getBody()->getSize(); - if ($size !== null) { - $modify['set_headers']['Content-Length'] = $size; - } else { - $modify['set_headers']['Transfer-Encoding'] = 'chunked'; - } - } - - // Add the expect header if needed. - $this->addExpectHeader($request, $options, $modify); - - return $fn(Psr7\modify_request($request, $modify), $options); - } - - private function addExpectHeader( - RequestInterface $request, - array $options, - array &$modify - ) { - // Determine if the Expect header should be used - if ($request->hasHeader('Expect')) { - return; - } - - $expect = isset($options['expect']) ? $options['expect'] : null; - - // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0 - if ($expect === false || $request->getProtocolVersion() < 1.1) { - return; - } - - // The expect header is unconditionally enabled - if ($expect === true) { - $modify['set_headers']['Expect'] = '100-Continue'; - return; - } - - // By default, send the expect header when the payload is > 1mb - if ($expect === null) { - $expect = 1048576; - } - - // Always add if the body cannot be rewound, the size cannot be - // determined, or the size is greater than the cutoff threshold - $body = $request->getBody(); - $size = $body->getSize(); - - if ($size === null || $size >= (int) $expect || !$body->isSeekable()) { - $modify['set_headers']['Expect'] = '100-Continue'; - } - } -} diff --git a/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php b/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php deleted file mode 100644 index 131b7717..00000000 --- a/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php +++ /dev/null @@ -1,237 +0,0 @@ - 5, - 'protocols' => ['http', 'https'], - 'strict' => false, - 'referer' => false, - 'track_redirects' => false, - ]; - - /** @var callable */ - private $nextHandler; - - /** - * @param callable $nextHandler Next handler to invoke. - */ - public function __construct(callable $nextHandler) - { - $this->nextHandler = $nextHandler; - } - - /** - * @param RequestInterface $request - * @param array $options - * - * @return PromiseInterface - */ - public function __invoke(RequestInterface $request, array $options) - { - $fn = $this->nextHandler; - - if (empty($options['allow_redirects'])) { - return $fn($request, $options); - } - - if ($options['allow_redirects'] === true) { - $options['allow_redirects'] = self::$defaultSettings; - } elseif (!is_array($options['allow_redirects'])) { - throw new \InvalidArgumentException('allow_redirects must be true, false, or array'); - } else { - // Merge the default settings with the provided settings - $options['allow_redirects'] += self::$defaultSettings; - } - - if (empty($options['allow_redirects']['max'])) { - return $fn($request, $options); - } - - return $fn($request, $options) - ->then(function (ResponseInterface $response) use ($request, $options) { - return $this->checkRedirect($request, $options, $response); - }); - } - - /** - * @param RequestInterface $request - * @param array $options - * @param ResponseInterface|PromiseInterface $response - * - * @return ResponseInterface|PromiseInterface - */ - public function checkRedirect( - RequestInterface $request, - array $options, - ResponseInterface $response - ) { - if (substr($response->getStatusCode(), 0, 1) != '3' - || !$response->hasHeader('Location') - ) { - return $response; - } - - $this->guardMax($request, $options); - $nextRequest = $this->modifyRequest($request, $options, $response); - - if (isset($options['allow_redirects']['on_redirect'])) { - call_user_func( - $options['allow_redirects']['on_redirect'], - $request, - $response, - $nextRequest->getUri() - ); - } - - /** @var PromiseInterface|ResponseInterface $promise */ - $promise = $this($nextRequest, $options); - - // Add headers to be able to track history of redirects. - if (!empty($options['allow_redirects']['track_redirects'])) { - return $this->withTracking( - $promise, - (string) $nextRequest->getUri(), - $response->getStatusCode() - ); - } - - return $promise; - } - - private function withTracking(PromiseInterface $promise, $uri, $statusCode) - { - return $promise->then( - function (ResponseInterface $response) use ($uri, $statusCode) { - // Note that we are pushing to the front of the list as this - // would be an earlier response than what is currently present - // in the history header. - $historyHeader = $response->getHeader(self::HISTORY_HEADER); - $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER); - array_unshift($historyHeader, $uri); - array_unshift($statusHeader, $statusCode); - return $response->withHeader(self::HISTORY_HEADER, $historyHeader) - ->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader); - } - ); - } - - private function guardMax(RequestInterface $request, array &$options) - { - $current = isset($options['__redirect_count']) - ? $options['__redirect_count'] - : 0; - $options['__redirect_count'] = $current + 1; - $max = $options['allow_redirects']['max']; - - if ($options['__redirect_count'] > $max) { - throw new TooManyRedirectsException( - "Will not follow more than {$max} redirects", - $request - ); - } - } - - /** - * @param RequestInterface $request - * @param array $options - * @param ResponseInterface $response - * - * @return RequestInterface - */ - public function modifyRequest( - RequestInterface $request, - array $options, - ResponseInterface $response - ) { - // Request modifications to apply. - $modify = []; - $protocols = $options['allow_redirects']['protocols']; - - // Use a GET request if this is an entity enclosing request and we are - // not forcing RFC compliance, but rather emulating what all browsers - // would do. - $statusCode = $response->getStatusCode(); - if ($statusCode == 303 || - ($statusCode <= 302 && $request->getBody() && !$options['allow_redirects']['strict']) - ) { - $modify['method'] = 'GET'; - $modify['body'] = ''; - } - - $modify['uri'] = $this->redirectUri($request, $response, $protocols); - Psr7\rewind_body($request); - - // Add the Referer header if it is told to do so and only - // add the header if we are not redirecting from https to http. - if ($options['allow_redirects']['referer'] - && $modify['uri']->getScheme() === $request->getUri()->getScheme() - ) { - $uri = $request->getUri()->withUserInfo('', ''); - $modify['set_headers']['Referer'] = (string) $uri; - } else { - $modify['remove_headers'][] = 'Referer'; - } - - // Remove Authorization header if host is different. - if ($request->getUri()->getHost() !== $modify['uri']->getHost()) { - $modify['remove_headers'][] = 'Authorization'; - } - - return Psr7\modify_request($request, $modify); - } - - /** - * Set the appropriate URL on the request based on the location header - * - * @param RequestInterface $request - * @param ResponseInterface $response - * @param array $protocols - * - * @return UriInterface - */ - private function redirectUri( - RequestInterface $request, - ResponseInterface $response, - array $protocols - ) { - $location = Psr7\UriResolver::resolve( - $request->getUri(), - new Psr7\Uri($response->getHeaderLine('Location')) - ); - - // Ensure that the redirect URI is allowed based on the protocols. - if (!in_array($location->getScheme(), $protocols)) { - throw new BadResponseException( - sprintf( - 'Redirect URI, %s, does not use one of the allowed redirect protocols: %s', - $location, - implode(', ', $protocols) - ), - $request, - $response - ); - } - - return $location; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/RequestOptions.php b/vendor/guzzlehttp/guzzle/src/RequestOptions.php deleted file mode 100644 index c6aacfb1..00000000 --- a/vendor/guzzlehttp/guzzle/src/RequestOptions.php +++ /dev/null @@ -1,255 +0,0 @@ -decider = $decider; - $this->nextHandler = $nextHandler; - $this->delay = $delay ?: __CLASS__ . '::exponentialDelay'; - } - - /** - * Default exponential backoff delay function. - * - * @param $retries - * - * @return int - */ - public static function exponentialDelay($retries) - { - return (int) pow(2, $retries - 1); - } - - /** - * @param RequestInterface $request - * @param array $options - * - * @return PromiseInterface - */ - public function __invoke(RequestInterface $request, array $options) - { - if (!isset($options['retries'])) { - $options['retries'] = 0; - } - - $fn = $this->nextHandler; - return $fn($request, $options) - ->then( - $this->onFulfilled($request, $options), - $this->onRejected($request, $options) - ); - } - - private function onFulfilled(RequestInterface $req, array $options) - { - return function ($value) use ($req, $options) { - if (!call_user_func( - $this->decider, - $options['retries'], - $req, - $value, - null - )) { - return $value; - } - return $this->doRetry($req, $options, $value); - }; - } - - private function onRejected(RequestInterface $req, array $options) - { - return function ($reason) use ($req, $options) { - if (!call_user_func( - $this->decider, - $options['retries'], - $req, - null, - $reason - )) { - return \GuzzleHttp\Promise\rejection_for($reason); - } - return $this->doRetry($req, $options); - }; - } - - private function doRetry(RequestInterface $request, array $options, ResponseInterface $response = null) - { - $options['delay'] = call_user_func($this->delay, ++$options['retries'], $response); - - return $this($request, $options); - } -} diff --git a/vendor/guzzlehttp/guzzle/src/TransferStats.php b/vendor/guzzlehttp/guzzle/src/TransferStats.php deleted file mode 100644 index 15f717e1..00000000 --- a/vendor/guzzlehttp/guzzle/src/TransferStats.php +++ /dev/null @@ -1,126 +0,0 @@ -request = $request; - $this->response = $response; - $this->transferTime = $transferTime; - $this->handlerErrorData = $handlerErrorData; - $this->handlerStats = $handlerStats; - } - - /** - * @return RequestInterface - */ - public function getRequest() - { - return $this->request; - } - - /** - * Returns the response that was received (if any). - * - * @return ResponseInterface|null - */ - public function getResponse() - { - return $this->response; - } - - /** - * Returns true if a response was received. - * - * @return bool - */ - public function hasResponse() - { - return $this->response !== null; - } - - /** - * Gets handler specific error data. - * - * This might be an exception, a integer representing an error code, or - * anything else. Relying on this value assumes that you know what handler - * you are using. - * - * @return mixed - */ - public function getHandlerErrorData() - { - return $this->handlerErrorData; - } - - /** - * Get the effective URI the request was sent to. - * - * @return UriInterface - */ - public function getEffectiveUri() - { - return $this->request->getUri(); - } - - /** - * Get the estimated time the request was being transferred by the handler. - * - * @return float Time in seconds. - */ - public function getTransferTime() - { - return $this->transferTime; - } - - /** - * Gets an array of all of the handler specific transfer data. - * - * @return array - */ - public function getHandlerStats() - { - return $this->handlerStats; - } - - /** - * Get a specific handler statistic from the handler by name. - * - * @param string $stat Handler specific transfer stat to retrieve. - * - * @return mixed|null - */ - public function getHandlerStat($stat) - { - return isset($this->handlerStats[$stat]) - ? $this->handlerStats[$stat] - : null; - } -} diff --git a/vendor/guzzlehttp/guzzle/src/UriTemplate.php b/vendor/guzzlehttp/guzzle/src/UriTemplate.php deleted file mode 100644 index 0b1623ec..00000000 --- a/vendor/guzzlehttp/guzzle/src/UriTemplate.php +++ /dev/null @@ -1,241 +0,0 @@ - ['prefix' => '', 'joiner' => ',', 'query' => false], - '+' => ['prefix' => '', 'joiner' => ',', 'query' => false], - '#' => ['prefix' => '#', 'joiner' => ',', 'query' => false], - '.' => ['prefix' => '.', 'joiner' => '.', 'query' => false], - '/' => ['prefix' => '/', 'joiner' => '/', 'query' => false], - ';' => ['prefix' => ';', 'joiner' => ';', 'query' => true], - '?' => ['prefix' => '?', 'joiner' => '&', 'query' => true], - '&' => ['prefix' => '&', 'joiner' => '&', 'query' => true] - ]; - - /** @var array Delimiters */ - private static $delims = [':', '/', '?', '#', '[', ']', '@', '!', '$', - '&', '\'', '(', ')', '*', '+', ',', ';', '=']; - - /** @var array Percent encoded delimiters */ - private static $delimsPct = ['%3A', '%2F', '%3F', '%23', '%5B', '%5D', - '%40', '%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', - '%3B', '%3D']; - - public function expand($template, array $variables) - { - if (false === strpos($template, '{')) { - return $template; - } - - $this->template = $template; - $this->variables = $variables; - - return preg_replace_callback( - '/\{([^\}]+)\}/', - [$this, 'expandMatch'], - $this->template - ); - } - - /** - * Parse an expression into parts - * - * @param string $expression Expression to parse - * - * @return array Returns an associative array of parts - */ - private function parseExpression($expression) - { - $result = []; - - if (isset(self::$operatorHash[$expression[0]])) { - $result['operator'] = $expression[0]; - $expression = substr($expression, 1); - } else { - $result['operator'] = ''; - } - - foreach (explode(',', $expression) as $value) { - $value = trim($value); - $varspec = []; - if ($colonPos = strpos($value, ':')) { - $varspec['value'] = substr($value, 0, $colonPos); - $varspec['modifier'] = ':'; - $varspec['position'] = (int) substr($value, $colonPos + 1); - } elseif (substr($value, -1) === '*') { - $varspec['modifier'] = '*'; - $varspec['value'] = substr($value, 0, -1); - } else { - $varspec['value'] = (string) $value; - $varspec['modifier'] = ''; - } - $result['values'][] = $varspec; - } - - return $result; - } - - /** - * Process an expansion - * - * @param array $matches Matches met in the preg_replace_callback - * - * @return string Returns the replacement string - */ - private function expandMatch(array $matches) - { - static $rfc1738to3986 = ['+' => '%20', '%7e' => '~']; - - $replacements = []; - $parsed = self::parseExpression($matches[1]); - $prefix = self::$operatorHash[$parsed['operator']]['prefix']; - $joiner = self::$operatorHash[$parsed['operator']]['joiner']; - $useQuery = self::$operatorHash[$parsed['operator']]['query']; - - foreach ($parsed['values'] as $value) { - - if (!isset($this->variables[$value['value']])) { - continue; - } - - $variable = $this->variables[$value['value']]; - $actuallyUseQuery = $useQuery; - $expanded = ''; - - if (is_array($variable)) { - - $isAssoc = $this->isAssoc($variable); - $kvp = []; - foreach ($variable as $key => $var) { - - if ($isAssoc) { - $key = rawurlencode($key); - $isNestedArray = is_array($var); - } else { - $isNestedArray = false; - } - - if (!$isNestedArray) { - $var = rawurlencode($var); - if ($parsed['operator'] === '+' || - $parsed['operator'] === '#' - ) { - $var = $this->decodeReserved($var); - } - } - - if ($value['modifier'] === '*') { - if ($isAssoc) { - if ($isNestedArray) { - // Nested arrays must allow for deeply nested - // structures. - $var = strtr( - http_build_query([$key => $var]), - $rfc1738to3986 - ); - } else { - $var = $key . '=' . $var; - } - } elseif ($key > 0 && $actuallyUseQuery) { - $var = $value['value'] . '=' . $var; - } - } - - $kvp[$key] = $var; - } - - if (empty($variable)) { - $actuallyUseQuery = false; - } elseif ($value['modifier'] === '*') { - $expanded = implode($joiner, $kvp); - if ($isAssoc) { - // Don't prepend the value name when using the explode - // modifier with an associative array. - $actuallyUseQuery = false; - } - } else { - if ($isAssoc) { - // When an associative array is encountered and the - // explode modifier is not set, then the result must be - // a comma separated list of keys followed by their - // respective values. - foreach ($kvp as $k => &$v) { - $v = $k . ',' . $v; - } - } - $expanded = implode(',', $kvp); - } - - } else { - if ($value['modifier'] === ':') { - $variable = substr($variable, 0, $value['position']); - } - $expanded = rawurlencode($variable); - if ($parsed['operator'] === '+' || $parsed['operator'] === '#') { - $expanded = $this->decodeReserved($expanded); - } - } - - if ($actuallyUseQuery) { - if (!$expanded && $joiner !== '&') { - $expanded = $value['value']; - } else { - $expanded = $value['value'] . '=' . $expanded; - } - } - - $replacements[] = $expanded; - } - - $ret = implode($joiner, $replacements); - if ($ret && $prefix) { - return $prefix . $ret; - } - - return $ret; - } - - /** - * Determines if an array is associative. - * - * This makes the assumption that input arrays are sequences or hashes. - * This assumption is a tradeoff for accuracy in favor of speed, but it - * should work in almost every case where input is supplied for a URI - * template. - * - * @param array $array Array to check - * - * @return bool - */ - private function isAssoc(array $array) - { - return $array && array_keys($array)[0] !== 0; - } - - /** - * Removes percent encoding on reserved characters (used with + and # - * modifiers). - * - * @param string $string String to fix - * - * @return string - */ - private function decodeReserved($string) - { - return str_replace(self::$delimsPct, self::$delims, $string); - } -} diff --git a/vendor/guzzlehttp/guzzle/src/functions.php b/vendor/guzzlehttp/guzzle/src/functions.php deleted file mode 100644 index 59e212ed..00000000 --- a/vendor/guzzlehttp/guzzle/src/functions.php +++ /dev/null @@ -1,331 +0,0 @@ -expand($template, $variables); -} - -/** - * Debug function used to describe the provided value type and class. - * - * @param mixed $input - * - * @return string Returns a string containing the type of the variable and - * if a class is provided, the class name. - */ -function describe_type($input) -{ - switch (gettype($input)) { - case 'object': - return 'object(' . get_class($input) . ')'; - case 'array': - return 'array(' . count($input) . ')'; - default: - ob_start(); - var_dump($input); - // normalize float vs double - return str_replace('double(', 'float(', rtrim(ob_get_clean())); - } -} - -/** - * Parses an array of header lines into an associative array of headers. - * - * @param array $lines Header lines array of strings in the following - * format: "Name: Value" - * @return array - */ -function headers_from_lines($lines) -{ - $headers = []; - - foreach ($lines as $line) { - $parts = explode(':', $line, 2); - $headers[trim($parts[0])][] = isset($parts[1]) - ? trim($parts[1]) - : null; - } - - return $headers; -} - -/** - * Returns a debug stream based on the provided variable. - * - * @param mixed $value Optional value - * - * @return resource - */ -function debug_resource($value = null) -{ - if (is_resource($value)) { - return $value; - } elseif (defined('STDOUT')) { - return STDOUT; - } - - return fopen('php://output', 'w'); -} - -/** - * Chooses and creates a default handler to use based on the environment. - * - * The returned handler is not wrapped by any default middlewares. - * - * @throws \RuntimeException if no viable Handler is available. - * @return callable Returns the best handler for the given system. - */ -function choose_handler() -{ - $handler = null; - if (function_exists('curl_multi_exec') && function_exists('curl_exec')) { - $handler = Proxy::wrapSync(new CurlMultiHandler(), new CurlHandler()); - } elseif (function_exists('curl_exec')) { - $handler = new CurlHandler(); - } elseif (function_exists('curl_multi_exec')) { - $handler = new CurlMultiHandler(); - } - - if (ini_get('allow_url_fopen')) { - $handler = $handler - ? Proxy::wrapStreaming($handler, new StreamHandler()) - : new StreamHandler(); - } elseif (!$handler) { - throw new \RuntimeException('GuzzleHttp requires cURL, the ' - . 'allow_url_fopen ini setting, or a custom HTTP handler.'); - } - - return $handler; -} - -/** - * Get the default User-Agent string to use with Guzzle - * - * @return string - */ -function default_user_agent() -{ - static $defaultAgent = ''; - - if (!$defaultAgent) { - $defaultAgent = 'GuzzleHttp/' . Client::VERSION; - if (extension_loaded('curl') && function_exists('curl_version')) { - $defaultAgent .= ' curl/' . \curl_version()['version']; - } - $defaultAgent .= ' PHP/' . PHP_VERSION; - } - - return $defaultAgent; -} - -/** - * Returns the default cacert bundle for the current system. - * - * First, the openssl.cafile and curl.cainfo php.ini settings are checked. - * If those settings are not configured, then the common locations for - * bundles found on Red Hat, CentOS, Fedora, Ubuntu, Debian, FreeBSD, OS X - * and Windows are checked. If any of these file locations are found on - * disk, they will be utilized. - * - * Note: the result of this function is cached for subsequent calls. - * - * @return string - * @throws \RuntimeException if no bundle can be found. - */ -function default_ca_bundle() -{ - static $cached = null; - static $cafiles = [ - // Red Hat, CentOS, Fedora (provided by the ca-certificates package) - '/etc/pki/tls/certs/ca-bundle.crt', - // Ubuntu, Debian (provided by the ca-certificates package) - '/etc/ssl/certs/ca-certificates.crt', - // FreeBSD (provided by the ca_root_nss package) - '/usr/local/share/certs/ca-root-nss.crt', - // SLES 12 (provided by the ca-certificates package) - '/var/lib/ca-certificates/ca-bundle.pem', - // OS X provided by homebrew (using the default path) - '/usr/local/etc/openssl/cert.pem', - // Google app engine - '/etc/ca-certificates.crt', - // Windows? - 'C:\\windows\\system32\\curl-ca-bundle.crt', - 'C:\\windows\\curl-ca-bundle.crt', - ]; - - if ($cached) { - return $cached; - } - - if ($ca = ini_get('openssl.cafile')) { - return $cached = $ca; - } - - if ($ca = ini_get('curl.cainfo')) { - return $cached = $ca; - } - - foreach ($cafiles as $filename) { - if (file_exists($filename)) { - return $cached = $filename; - } - } - - throw new \RuntimeException(<<< EOT -No system CA bundle could be found in any of the the common system locations. -PHP versions earlier than 5.6 are not properly configured to use the system's -CA bundle by default. In order to verify peer certificates, you will need to -supply the path on disk to a certificate bundle to the 'verify' request -option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not -need a specific certificate bundle, then Mozilla provides a commonly used CA -bundle which can be downloaded here (provided by the maintainer of cURL): -https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt. Once -you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP -ini setting to point to the path to the file, allowing you to omit the 'verify' -request option. See http://curl.haxx.se/docs/sslcerts.html for more -information. -EOT - ); -} - -/** - * Creates an associative array of lowercase header names to the actual - * header casing. - * - * @param array $headers - * - * @return array - */ -function normalize_header_keys(array $headers) -{ - $result = []; - foreach (array_keys($headers) as $key) { - $result[strtolower($key)] = $key; - } - - return $result; -} - -/** - * Returns true if the provided host matches any of the no proxy areas. - * - * This method will strip a port from the host if it is present. Each pattern - * can be matched with an exact match (e.g., "foo.com" == "foo.com") or a - * partial match: (e.g., "foo.com" == "baz.foo.com" and ".foo.com" == - * "baz.foo.com", but ".foo.com" != "foo.com"). - * - * Areas are matched in the following cases: - * 1. "*" (without quotes) always matches any hosts. - * 2. An exact match. - * 3. The area starts with "." and the area is the last part of the host. e.g. - * '.mit.edu' will match any host that ends with '.mit.edu'. - * - * @param string $host Host to check against the patterns. - * @param array $noProxyArray An array of host patterns. - * - * @return bool - */ -function is_host_in_noproxy($host, array $noProxyArray) -{ - if (strlen($host) === 0) { - throw new \InvalidArgumentException('Empty host provided'); - } - - // Strip port if present. - if (strpos($host, ':')) { - $host = explode($host, ':', 2)[0]; - } - - foreach ($noProxyArray as $area) { - // Always match on wildcards. - if ($area === '*') { - return true; - } elseif (empty($area)) { - // Don't match on empty values. - continue; - } elseif ($area === $host) { - // Exact matches. - return true; - } else { - // Special match if the area when prefixed with ".". Remove any - // existing leading "." and add a new leading ".". - $area = '.' . ltrim($area, '.'); - if (substr($host, -(strlen($area))) === $area) { - return true; - } - } - } - - return false; -} - -/** - * Wrapper for json_decode that throws when an error occurs. - * - * @param string $json JSON data to parse - * @param bool $assoc When true, returned objects will be converted - * into associative arrays. - * @param int $depth User specified recursion depth. - * @param int $options Bitmask of JSON decode options. - * - * @return mixed - * @throws \InvalidArgumentException if the JSON cannot be decoded. - * @link http://www.php.net/manual/en/function.json-decode.php - */ -function json_decode($json, $assoc = false, $depth = 512, $options = 0) -{ - $data = \json_decode($json, $assoc, $depth, $options); - if (JSON_ERROR_NONE !== json_last_error()) { - throw new \InvalidArgumentException( - 'json_decode error: ' . json_last_error_msg()); - } - - return $data; -} - -/** - * Wrapper for JSON encoding that throws when an error occurs. - * - * @param mixed $value The value being encoded - * @param int $options JSON encode option bitmask - * @param int $depth Set the maximum depth. Must be greater than zero. - * - * @return string - * @throws \InvalidArgumentException if the JSON cannot be encoded. - * @link http://www.php.net/manual/en/function.json-encode.php - */ -function json_encode($value, $options = 0, $depth = 512) -{ - $json = \json_encode($value, $options, $depth); - if (JSON_ERROR_NONE !== json_last_error()) { - throw new \InvalidArgumentException( - 'json_encode error: ' . json_last_error_msg()); - } - - return $json; -} diff --git a/vendor/guzzlehttp/guzzle/src/functions_include.php b/vendor/guzzlehttp/guzzle/src/functions_include.php deleted file mode 100644 index a93393ac..00000000 --- a/vendor/guzzlehttp/guzzle/src/functions_include.php +++ /dev/null @@ -1,6 +0,0 @@ - - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/guzzlehttp/promises/Makefile b/vendor/guzzlehttp/promises/Makefile deleted file mode 100644 index 8d5b3ef9..00000000 --- a/vendor/guzzlehttp/promises/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -all: clean test - -test: - vendor/bin/phpunit - -coverage: - vendor/bin/phpunit --coverage-html=artifacts/coverage - -view-coverage: - open artifacts/coverage/index.html - -clean: - rm -rf artifacts/* diff --git a/vendor/guzzlehttp/promises/README.md b/vendor/guzzlehttp/promises/README.md deleted file mode 100644 index 7b607e28..00000000 --- a/vendor/guzzlehttp/promises/README.md +++ /dev/null @@ -1,504 +0,0 @@ -# Guzzle Promises - -[Promises/A+](https://promisesaplus.com/) implementation that handles promise -chaining and resolution iteratively, allowing for "infinite" promise chaining -while keeping the stack size constant. Read [this blog post](https://blog.domenic.me/youre-missing-the-point-of-promises/) -for a general introduction to promises. - -- [Features](#features) -- [Quick start](#quick-start) -- [Synchronous wait](#synchronous-wait) -- [Cancellation](#cancellation) -- [API](#api) - - [Promise](#promise) - - [FulfilledPromise](#fulfilledpromise) - - [RejectedPromise](#rejectedpromise) -- [Promise interop](#promise-interop) -- [Implementation notes](#implementation-notes) - - -# Features - -- [Promises/A+](https://promisesaplus.com/) implementation. -- Promise resolution and chaining is handled iteratively, allowing for - "infinite" promise chaining. -- Promises have a synchronous `wait` method. -- Promises can be cancelled. -- Works with any object that has a `then` function. -- C# style async/await coroutine promises using - `GuzzleHttp\Promise\coroutine()`. - - -# Quick start - -A *promise* represents the eventual result of an asynchronous operation. The -primary way of interacting with a promise is through its `then` method, which -registers callbacks to receive either a promise's eventual value or the reason -why the promise cannot be fulfilled. - - -## Callbacks - -Callbacks are registered with the `then` method by providing an optional -`$onFulfilled` followed by an optional `$onRejected` function. - - -```php -use GuzzleHttp\Promise\Promise; - -$promise = new Promise(); -$promise->then( - // $onFulfilled - function ($value) { - echo 'The promise was fulfilled.'; - }, - // $onRejected - function ($reason) { - echo 'The promise was rejected.'; - } -); -``` - -*Resolving* a promise means that you either fulfill a promise with a *value* or -reject a promise with a *reason*. Resolving a promises triggers callbacks -registered with the promises's `then` method. These callbacks are triggered -only once and in the order in which they were added. - - -## Resolving a promise - -Promises are fulfilled using the `resolve($value)` method. Resolving a promise -with any value other than a `GuzzleHttp\Promise\RejectedPromise` will trigger -all of the onFulfilled callbacks (resolving a promise with a rejected promise -will reject the promise and trigger the `$onRejected` callbacks). - -```php -use GuzzleHttp\Promise\Promise; - -$promise = new Promise(); -$promise - ->then(function ($value) { - // Return a value and don't break the chain - return "Hello, " . $value; - }) - // This then is executed after the first then and receives the value - // returned from the first then. - ->then(function ($value) { - echo $value; - }); - -// Resolving the promise triggers the $onFulfilled callbacks and outputs -// "Hello, reader". -$promise->resolve('reader.'); -``` - - -## Promise forwarding - -Promises can be chained one after the other. Each then in the chain is a new -promise. The return value of a promise is what's forwarded to the next -promise in the chain. Returning a promise in a `then` callback will cause the -subsequent promises in the chain to only be fulfilled when the returned promise -has been fulfilled. The next promise in the chain will be invoked with the -resolved value of the promise. - -```php -use GuzzleHttp\Promise\Promise; - -$promise = new Promise(); -$nextPromise = new Promise(); - -$promise - ->then(function ($value) use ($nextPromise) { - echo $value; - return $nextPromise; - }) - ->then(function ($value) { - echo $value; - }); - -// Triggers the first callback and outputs "A" -$promise->resolve('A'); -// Triggers the second callback and outputs "B" -$nextPromise->resolve('B'); -``` - -## Promise rejection - -When a promise is rejected, the `$onRejected` callbacks are invoked with the -rejection reason. - -```php -use GuzzleHttp\Promise\Promise; - -$promise = new Promise(); -$promise->then(null, function ($reason) { - echo $reason; -}); - -$promise->reject('Error!'); -// Outputs "Error!" -``` - -## Rejection forwarding - -If an exception is thrown in an `$onRejected` callback, subsequent -`$onRejected` callbacks are invoked with the thrown exception as the reason. - -```php -use GuzzleHttp\Promise\Promise; - -$promise = new Promise(); -$promise->then(null, function ($reason) { - throw new \Exception($reason); -})->then(null, function ($reason) { - assert($reason->getMessage() === 'Error!'); -}); - -$promise->reject('Error!'); -``` - -You can also forward a rejection down the promise chain by returning a -`GuzzleHttp\Promise\RejectedPromise` in either an `$onFulfilled` or -`$onRejected` callback. - -```php -use GuzzleHttp\Promise\Promise; -use GuzzleHttp\Promise\RejectedPromise; - -$promise = new Promise(); -$promise->then(null, function ($reason) { - return new RejectedPromise($reason); -})->then(null, function ($reason) { - assert($reason === 'Error!'); -}); - -$promise->reject('Error!'); -``` - -If an exception is not thrown in a `$onRejected` callback and the callback -does not return a rejected promise, downstream `$onFulfilled` callbacks are -invoked using the value returned from the `$onRejected` callback. - -```php -use GuzzleHttp\Promise\Promise; -use GuzzleHttp\Promise\RejectedPromise; - -$promise = new Promise(); -$promise - ->then(null, function ($reason) { - return "It's ok"; - }) - ->then(function ($value) { - assert($value === "It's ok"); - }); - -$promise->reject('Error!'); -``` - -# Synchronous wait - -You can synchronously force promises to complete using a promise's `wait` -method. When creating a promise, you can provide a wait function that is used -to synchronously force a promise to complete. When a wait function is invoked -it is expected to deliver a value to the promise or reject the promise. If the -wait function does not deliver a value, then an exception is thrown. The wait -function provided to a promise constructor is invoked when the `wait` function -of the promise is called. - -```php -$promise = new Promise(function () use (&$promise) { - $promise->resolve('foo'); -}); - -// Calling wait will return the value of the promise. -echo $promise->wait(); // outputs "foo" -``` - -If an exception is encountered while invoking the wait function of a promise, -the promise is rejected with the exception and the exception is thrown. - -```php -$promise = new Promise(function () use (&$promise) { - throw new \Exception('foo'); -}); - -$promise->wait(); // throws the exception. -``` - -Calling `wait` on a promise that has been fulfilled will not trigger the wait -function. It will simply return the previously resolved value. - -```php -$promise = new Promise(function () { die('this is not called!'); }); -$promise->resolve('foo'); -echo $promise->wait(); // outputs "foo" -``` - -Calling `wait` on a promise that has been rejected will throw an exception. If -the rejection reason is an instance of `\Exception` the reason is thrown. -Otherwise, a `GuzzleHttp\Promise\RejectionException` is thrown and the reason -can be obtained by calling the `getReason` method of the exception. - -```php -$promise = new Promise(); -$promise->reject('foo'); -$promise->wait(); -``` - -> PHP Fatal error: Uncaught exception 'GuzzleHttp\Promise\RejectionException' with message 'The promise was rejected with value: foo' - - -## Unwrapping a promise - -When synchronously waiting on a promise, you are joining the state of the -promise into the current state of execution (i.e., return the value of the -promise if it was fulfilled or throw an exception if it was rejected). This is -called "unwrapping" the promise. Waiting on a promise will by default unwrap -the promise state. - -You can force a promise to resolve and *not* unwrap the state of the promise -by passing `false` to the first argument of the `wait` function: - -```php -$promise = new Promise(); -$promise->reject('foo'); -// This will not throw an exception. It simply ensures the promise has -// been resolved. -$promise->wait(false); -``` - -When unwrapping a promise, the resolved value of the promise will be waited -upon until the unwrapped value is not a promise. This means that if you resolve -promise A with a promise B and unwrap promise A, the value returned by the -wait function will be the value delivered to promise B. - -**Note**: when you do not unwrap the promise, no value is returned. - - -# Cancellation - -You can cancel a promise that has not yet been fulfilled using the `cancel()` -method of a promise. When creating a promise you can provide an optional -cancel function that when invoked cancels the action of computing a resolution -of the promise. - - -# API - - -## Promise - -When creating a promise object, you can provide an optional `$waitFn` and -`$cancelFn`. `$waitFn` is a function that is invoked with no arguments and is -expected to resolve the promise. `$cancelFn` is a function with no arguments -that is expected to cancel the computation of a promise. It is invoked when the -`cancel()` method of a promise is called. - -```php -use GuzzleHttp\Promise\Promise; - -$promise = new Promise( - function () use (&$promise) { - $promise->resolve('waited'); - }, - function () { - // do something that will cancel the promise computation (e.g., close - // a socket, cancel a database query, etc...) - } -); - -assert('waited' === $promise->wait()); -``` - -A promise has the following methods: - -- `then(callable $onFulfilled, callable $onRejected) : PromiseInterface` - - Appends fulfillment and rejection handlers to the promise, and returns a new promise resolving to the return value of the called handler. - -- `otherwise(callable $onRejected) : PromiseInterface` - - Appends a rejection handler callback to the promise, and returns a new promise resolving to the return value of the callback if it is called, or to its original fulfillment value if the promise is instead fulfilled. - -- `wait($unwrap = true) : mixed` - - Synchronously waits on the promise to complete. - - `$unwrap` controls whether or not the value of the promise is returned for a - fulfilled promise or if an exception is thrown if the promise is rejected. - This is set to `true` by default. - -- `cancel()` - - Attempts to cancel the promise if possible. The promise being cancelled and - the parent most ancestor that has not yet been resolved will also be - cancelled. Any promises waiting on the cancelled promise to resolve will also - be cancelled. - -- `getState() : string` - - Returns the state of the promise. One of `pending`, `fulfilled`, or - `rejected`. - -- `resolve($value)` - - Fulfills the promise with the given `$value`. - -- `reject($reason)` - - Rejects the promise with the given `$reason`. - - -## FulfilledPromise - -A fulfilled promise can be created to represent a promise that has been -fulfilled. - -```php -use GuzzleHttp\Promise\FulfilledPromise; - -$promise = new FulfilledPromise('value'); - -// Fulfilled callbacks are immediately invoked. -$promise->then(function ($value) { - echo $value; -}); -``` - - -## RejectedPromise - -A rejected promise can be created to represent a promise that has been -rejected. - -```php -use GuzzleHttp\Promise\RejectedPromise; - -$promise = new RejectedPromise('Error'); - -// Rejected callbacks are immediately invoked. -$promise->then(null, function ($reason) { - echo $reason; -}); -``` - - -# Promise interop - -This library works with foreign promises that have a `then` method. This means -you can use Guzzle promises with [React promises](https://github.com/reactphp/promise) -for example. When a foreign promise is returned inside of a then method -callback, promise resolution will occur recursively. - -```php -// Create a React promise -$deferred = new React\Promise\Deferred(); -$reactPromise = $deferred->promise(); - -// Create a Guzzle promise that is fulfilled with a React promise. -$guzzlePromise = new \GuzzleHttp\Promise\Promise(); -$guzzlePromise->then(function ($value) use ($reactPromise) { - // Do something something with the value... - // Return the React promise - return $reactPromise; -}); -``` - -Please note that wait and cancel chaining is no longer possible when forwarding -a foreign promise. You will need to wrap a third-party promise with a Guzzle -promise in order to utilize wait and cancel functions with foreign promises. - - -## Event Loop Integration - -In order to keep the stack size constant, Guzzle promises are resolved -asynchronously using a task queue. When waiting on promises synchronously, the -task queue will be automatically run to ensure that the blocking promise and -any forwarded promises are resolved. When using promises asynchronously in an -event loop, you will need to run the task queue on each tick of the loop. If -you do not run the task queue, then promises will not be resolved. - -You can run the task queue using the `run()` method of the global task queue -instance. - -```php -// Get the global task queue -$queue = \GuzzleHttp\Promise\queue(); -$queue->run(); -``` - -For example, you could use Guzzle promises with React using a periodic timer: - -```php -$loop = React\EventLoop\Factory::create(); -$loop->addPeriodicTimer(0, [$queue, 'run']); -``` - -*TODO*: Perhaps adding a `futureTick()` on each tick would be faster? - - -# Implementation notes - - -## Promise resolution and chaining is handled iteratively - -By shuffling pending handlers from one owner to another, promises are -resolved iteratively, allowing for "infinite" then chaining. - -```php -then(function ($v) { - // The stack size remains constant (a good thing) - echo xdebug_get_stack_depth() . ', '; - return $v + 1; - }); -} - -$parent->resolve(0); -var_dump($p->wait()); // int(1000) - -``` - -When a promise is fulfilled or rejected with a non-promise value, the promise -then takes ownership of the handlers of each child promise and delivers values -down the chain without using recursion. - -When a promise is resolved with another promise, the original promise transfers -all of its pending handlers to the new promise. When the new promise is -eventually resolved, all of the pending handlers are delivered the forwarded -value. - - -## A promise is the deferred. - -Some promise libraries implement promises using a deferred object to represent -a computation and a promise object to represent the delivery of the result of -the computation. This is a nice separation of computation and delivery because -consumers of the promise cannot modify the value that will be eventually -delivered. - -One side effect of being able to implement promise resolution and chaining -iteratively is that you need to be able for one promise to reach into the state -of another promise to shuffle around ownership of handlers. In order to achieve -this without making the handlers of a promise publicly mutable, a promise is -also the deferred value, allowing promises of the same parent class to reach -into and modify the private properties of promises of the same type. While this -does allow consumers of the value to modify the resolution or rejection of the -deferred, it is a small price to pay for keeping the stack size constant. - -```php -$promise = new Promise(); -$promise->then(function ($value) { echo $value; }); -// The promise is the deferred value, so you can deliver a value to it. -$promise->resolve('foo'); -// prints "foo" -``` diff --git a/vendor/guzzlehttp/promises/composer.json b/vendor/guzzlehttp/promises/composer.json deleted file mode 100644 index ec41a61e..00000000 --- a/vendor/guzzlehttp/promises/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "guzzlehttp/promises", - "description": "Guzzle promises library", - "keywords": ["promise"], - "license": "MIT", - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "require": { - "php": ">=5.5.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0" - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": ["src/functions_include.php"] - }, - "scripts": { - "test": "vendor/bin/phpunit", - "test-ci": "vendor/bin/phpunit --coverage-text" - }, - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - } -} diff --git a/vendor/guzzlehttp/promises/src/AggregateException.php b/vendor/guzzlehttp/promises/src/AggregateException.php deleted file mode 100644 index 6a5690c3..00000000 --- a/vendor/guzzlehttp/promises/src/AggregateException.php +++ /dev/null @@ -1,16 +0,0 @@ -then(function ($v) { echo $v; }); - * - * @param callable $generatorFn Generator function to wrap into a promise. - * - * @return Promise - * @link https://github.com/petkaantonov/bluebird/blob/master/API.md#generators inspiration - */ -final class Coroutine implements PromiseInterface -{ - /** - * @var PromiseInterface|null - */ - private $currentPromise; - - /** - * @var Generator - */ - private $generator; - - /** - * @var Promise - */ - private $result; - - public function __construct(callable $generatorFn) - { - $this->generator = $generatorFn(); - $this->result = new Promise(function () { - while (isset($this->currentPromise)) { - $this->currentPromise->wait(); - } - }); - $this->nextCoroutine($this->generator->current()); - } - - public function then( - callable $onFulfilled = null, - callable $onRejected = null - ) { - return $this->result->then($onFulfilled, $onRejected); - } - - public function otherwise(callable $onRejected) - { - return $this->result->otherwise($onRejected); - } - - public function wait($unwrap = true) - { - return $this->result->wait($unwrap); - } - - public function getState() - { - return $this->result->getState(); - } - - public function resolve($value) - { - $this->result->resolve($value); - } - - public function reject($reason) - { - $this->result->reject($reason); - } - - public function cancel() - { - $this->currentPromise->cancel(); - $this->result->cancel(); - } - - private function nextCoroutine($yielded) - { - $this->currentPromise = promise_for($yielded) - ->then([$this, '_handleSuccess'], [$this, '_handleFailure']); - } - - /** - * @internal - */ - public function _handleSuccess($value) - { - unset($this->currentPromise); - try { - $next = $this->generator->send($value); - if ($this->generator->valid()) { - $this->nextCoroutine($next); - } else { - $this->result->resolve($value); - } - } catch (Exception $exception) { - $this->result->reject($exception); - } catch (Throwable $throwable) { - $this->result->reject($throwable); - } - } - - /** - * @internal - */ - public function _handleFailure($reason) - { - unset($this->currentPromise); - try { - $nextYield = $this->generator->throw(exception_for($reason)); - // The throw was caught, so keep iterating on the coroutine - $this->nextCoroutine($nextYield); - } catch (Exception $exception) { - $this->result->reject($exception); - } catch (Throwable $throwable) { - $this->result->reject($throwable); - } - } -} diff --git a/vendor/guzzlehttp/promises/src/EachPromise.php b/vendor/guzzlehttp/promises/src/EachPromise.php deleted file mode 100644 index d0ddf603..00000000 --- a/vendor/guzzlehttp/promises/src/EachPromise.php +++ /dev/null @@ -1,229 +0,0 @@ -iterable = iter_for($iterable); - - if (isset($config['concurrency'])) { - $this->concurrency = $config['concurrency']; - } - - if (isset($config['fulfilled'])) { - $this->onFulfilled = $config['fulfilled']; - } - - if (isset($config['rejected'])) { - $this->onRejected = $config['rejected']; - } - } - - public function promise() - { - if ($this->aggregate) { - return $this->aggregate; - } - - try { - $this->createPromise(); - $this->iterable->rewind(); - $this->refillPending(); - } catch (\Throwable $e) { - $this->aggregate->reject($e); - } catch (\Exception $e) { - $this->aggregate->reject($e); - } - - return $this->aggregate; - } - - private function createPromise() - { - $this->mutex = false; - $this->aggregate = new Promise(function () { - reset($this->pending); - if (empty($this->pending) && !$this->iterable->valid()) { - $this->aggregate->resolve(null); - return; - } - - // Consume a potentially fluctuating list of promises while - // ensuring that indexes are maintained (precluding array_shift). - while ($promise = current($this->pending)) { - next($this->pending); - $promise->wait(); - if ($this->aggregate->getState() !== PromiseInterface::PENDING) { - return; - } - } - }); - - // Clear the references when the promise is resolved. - $clearFn = function () { - $this->iterable = $this->concurrency = $this->pending = null; - $this->onFulfilled = $this->onRejected = null; - }; - - $this->aggregate->then($clearFn, $clearFn); - } - - private function refillPending() - { - if (!$this->concurrency) { - // Add all pending promises. - while ($this->addPending() && $this->advanceIterator()); - return; - } - - // Add only up to N pending promises. - $concurrency = is_callable($this->concurrency) - ? call_user_func($this->concurrency, count($this->pending)) - : $this->concurrency; - $concurrency = max($concurrency - count($this->pending), 0); - // Concurrency may be set to 0 to disallow new promises. - if (!$concurrency) { - return; - } - // Add the first pending promise. - $this->addPending(); - // Note this is special handling for concurrency=1 so that we do - // not advance the iterator after adding the first promise. This - // helps work around issues with generators that might not have the - // next value to yield until promise callbacks are called. - while (--$concurrency - && $this->advanceIterator() - && $this->addPending()); - } - - private function addPending() - { - if (!$this->iterable || !$this->iterable->valid()) { - return false; - } - - $promise = promise_for($this->iterable->current()); - $idx = $this->iterable->key(); - - $this->pending[$idx] = $promise->then( - function ($value) use ($idx) { - if ($this->onFulfilled) { - call_user_func( - $this->onFulfilled, $value, $idx, $this->aggregate - ); - } - $this->step($idx); - }, - function ($reason) use ($idx) { - if ($this->onRejected) { - call_user_func( - $this->onRejected, $reason, $idx, $this->aggregate - ); - } - $this->step($idx); - } - ); - - return true; - } - - private function advanceIterator() - { - // Place a lock on the iterator so that we ensure to not recurse, - // preventing fatal generator errors. - if ($this->mutex) { - return false; - } - - $this->mutex = true; - - try { - $this->iterable->next(); - $this->mutex = false; - return true; - } catch (\Throwable $e) { - $this->aggregate->reject($e); - $this->mutex = false; - return false; - } catch (\Exception $e) { - $this->aggregate->reject($e); - $this->mutex = false; - return false; - } - } - - private function step($idx) - { - // If the promise was already resolved, then ignore this step. - if ($this->aggregate->getState() !== PromiseInterface::PENDING) { - return; - } - - unset($this->pending[$idx]); - - // Only refill pending promises if we are not locked, preventing the - // EachPromise to recursively invoke the provided iterator, which - // cause a fatal error: "Cannot resume an already running generator" - if ($this->advanceIterator() && !$this->checkIfFinished()) { - // Add more pending promises if possible. - $this->refillPending(); - } - } - - private function checkIfFinished() - { - if (!$this->pending && !$this->iterable->valid()) { - // Resolve the promise if there's nothing left to do. - $this->aggregate->resolve(null); - return true; - } - - return false; - } -} diff --git a/vendor/guzzlehttp/promises/src/FulfilledPromise.php b/vendor/guzzlehttp/promises/src/FulfilledPromise.php deleted file mode 100644 index dbbeeb9f..00000000 --- a/vendor/guzzlehttp/promises/src/FulfilledPromise.php +++ /dev/null @@ -1,82 +0,0 @@ -value = $value; - } - - public function then( - callable $onFulfilled = null, - callable $onRejected = null - ) { - // Return itself if there is no onFulfilled function. - if (!$onFulfilled) { - return $this; - } - - $queue = queue(); - $p = new Promise([$queue, 'run']); - $value = $this->value; - $queue->add(static function () use ($p, $value, $onFulfilled) { - if ($p->getState() === self::PENDING) { - try { - $p->resolve($onFulfilled($value)); - } catch (\Throwable $e) { - $p->reject($e); - } catch (\Exception $e) { - $p->reject($e); - } - } - }); - - return $p; - } - - public function otherwise(callable $onRejected) - { - return $this->then(null, $onRejected); - } - - public function wait($unwrap = true, $defaultDelivery = null) - { - return $unwrap ? $this->value : null; - } - - public function getState() - { - return self::FULFILLED; - } - - public function resolve($value) - { - if ($value !== $this->value) { - throw new \LogicException("Cannot resolve a fulfilled promise"); - } - } - - public function reject($reason) - { - throw new \LogicException("Cannot reject a fulfilled promise"); - } - - public function cancel() - { - // pass - } -} diff --git a/vendor/guzzlehttp/promises/src/Promise.php b/vendor/guzzlehttp/promises/src/Promise.php deleted file mode 100644 index 844ada07..00000000 --- a/vendor/guzzlehttp/promises/src/Promise.php +++ /dev/null @@ -1,280 +0,0 @@ -waitFn = $waitFn; - $this->cancelFn = $cancelFn; - } - - public function then( - callable $onFulfilled = null, - callable $onRejected = null - ) { - if ($this->state === self::PENDING) { - $p = new Promise(null, [$this, 'cancel']); - $this->handlers[] = [$p, $onFulfilled, $onRejected]; - $p->waitList = $this->waitList; - $p->waitList[] = $this; - return $p; - } - - // Return a fulfilled promise and immediately invoke any callbacks. - if ($this->state === self::FULFILLED) { - return $onFulfilled - ? promise_for($this->result)->then($onFulfilled) - : promise_for($this->result); - } - - // It's either cancelled or rejected, so return a rejected promise - // and immediately invoke any callbacks. - $rejection = rejection_for($this->result); - return $onRejected ? $rejection->then(null, $onRejected) : $rejection; - } - - public function otherwise(callable $onRejected) - { - return $this->then(null, $onRejected); - } - - public function wait($unwrap = true) - { - $this->waitIfPending(); - - $inner = $this->result instanceof PromiseInterface - ? $this->result->wait($unwrap) - : $this->result; - - if ($unwrap) { - if ($this->result instanceof PromiseInterface - || $this->state === self::FULFILLED - ) { - return $inner; - } else { - // It's rejected so "unwrap" and throw an exception. - throw exception_for($inner); - } - } - } - - public function getState() - { - return $this->state; - } - - public function cancel() - { - if ($this->state !== self::PENDING) { - return; - } - - $this->waitFn = $this->waitList = null; - - if ($this->cancelFn) { - $fn = $this->cancelFn; - $this->cancelFn = null; - try { - $fn(); - } catch (\Throwable $e) { - $this->reject($e); - } catch (\Exception $e) { - $this->reject($e); - } - } - - // Reject the promise only if it wasn't rejected in a then callback. - if ($this->state === self::PENDING) { - $this->reject(new CancellationException('Promise has been cancelled')); - } - } - - public function resolve($value) - { - $this->settle(self::FULFILLED, $value); - } - - public function reject($reason) - { - $this->settle(self::REJECTED, $reason); - } - - private function settle($state, $value) - { - if ($this->state !== self::PENDING) { - // Ignore calls with the same resolution. - if ($state === $this->state && $value === $this->result) { - return; - } - throw $this->state === $state - ? new \LogicException("The promise is already {$state}.") - : new \LogicException("Cannot change a {$this->state} promise to {$state}"); - } - - if ($value === $this) { - throw new \LogicException('Cannot fulfill or reject a promise with itself'); - } - - // Clear out the state of the promise but stash the handlers. - $this->state = $state; - $this->result = $value; - $handlers = $this->handlers; - $this->handlers = null; - $this->waitList = $this->waitFn = null; - $this->cancelFn = null; - - if (!$handlers) { - return; - } - - // If the value was not a settled promise or a thenable, then resolve - // it in the task queue using the correct ID. - if (!method_exists($value, 'then')) { - $id = $state === self::FULFILLED ? 1 : 2; - // It's a success, so resolve the handlers in the queue. - queue()->add(static function () use ($id, $value, $handlers) { - foreach ($handlers as $handler) { - self::callHandler($id, $value, $handler); - } - }); - } elseif ($value instanceof Promise - && $value->getState() === self::PENDING - ) { - // We can just merge our handlers onto the next promise. - $value->handlers = array_merge($value->handlers, $handlers); - } else { - // Resolve the handlers when the forwarded promise is resolved. - $value->then( - static function ($value) use ($handlers) { - foreach ($handlers as $handler) { - self::callHandler(1, $value, $handler); - } - }, - static function ($reason) use ($handlers) { - foreach ($handlers as $handler) { - self::callHandler(2, $reason, $handler); - } - } - ); - } - } - - /** - * Call a stack of handlers using a specific callback index and value. - * - * @param int $index 1 (resolve) or 2 (reject). - * @param mixed $value Value to pass to the callback. - * @param array $handler Array of handler data (promise and callbacks). - * - * @return array Returns the next group to resolve. - */ - private static function callHandler($index, $value, array $handler) - { - /** @var PromiseInterface $promise */ - $promise = $handler[0]; - - // The promise may have been cancelled or resolved before placing - // this thunk in the queue. - if ($promise->getState() !== self::PENDING) { - return; - } - - try { - if (isset($handler[$index])) { - $promise->resolve($handler[$index]($value)); - } elseif ($index === 1) { - // Forward resolution values as-is. - $promise->resolve($value); - } else { - // Forward rejections down the chain. - $promise->reject($value); - } - } catch (\Throwable $reason) { - $promise->reject($reason); - } catch (\Exception $reason) { - $promise->reject($reason); - } - } - - private function waitIfPending() - { - if ($this->state !== self::PENDING) { - return; - } elseif ($this->waitFn) { - $this->invokeWaitFn(); - } elseif ($this->waitList) { - $this->invokeWaitList(); - } else { - // If there's not wait function, then reject the promise. - $this->reject('Cannot wait on a promise that has ' - . 'no internal wait function. You must provide a wait ' - . 'function when constructing the promise to be able to ' - . 'wait on a promise.'); - } - - queue()->run(); - - if ($this->state === self::PENDING) { - $this->reject('Invoking the wait callback did not resolve the promise'); - } - } - - private function invokeWaitFn() - { - try { - $wfn = $this->waitFn; - $this->waitFn = null; - $wfn(true); - } catch (\Exception $reason) { - if ($this->state === self::PENDING) { - // The promise has not been resolved yet, so reject the promise - // with the exception. - $this->reject($reason); - } else { - // The promise was already resolved, so there's a problem in - // the application. - throw $reason; - } - } - } - - private function invokeWaitList() - { - $waitList = $this->waitList; - $this->waitList = null; - - foreach ($waitList as $result) { - while (true) { - $result->waitIfPending(); - - if ($result->result instanceof Promise) { - $result = $result->result; - } else { - if ($result->result instanceof PromiseInterface) { - $result->result->wait(false); - } - break; - } - } - } - } -} diff --git a/vendor/guzzlehttp/promises/src/PromiseInterface.php b/vendor/guzzlehttp/promises/src/PromiseInterface.php deleted file mode 100644 index 8f5f4b99..00000000 --- a/vendor/guzzlehttp/promises/src/PromiseInterface.php +++ /dev/null @@ -1,93 +0,0 @@ -reason = $reason; - } - - public function then( - callable $onFulfilled = null, - callable $onRejected = null - ) { - // If there's no onRejected callback then just return self. - if (!$onRejected) { - return $this; - } - - $queue = queue(); - $reason = $this->reason; - $p = new Promise([$queue, 'run']); - $queue->add(static function () use ($p, $reason, $onRejected) { - if ($p->getState() === self::PENDING) { - try { - // Return a resolved promise if onRejected does not throw. - $p->resolve($onRejected($reason)); - } catch (\Throwable $e) { - // onRejected threw, so return a rejected promise. - $p->reject($e); - } catch (\Exception $e) { - // onRejected threw, so return a rejected promise. - $p->reject($e); - } - } - }); - - return $p; - } - - public function otherwise(callable $onRejected) - { - return $this->then(null, $onRejected); - } - - public function wait($unwrap = true, $defaultDelivery = null) - { - if ($unwrap) { - throw exception_for($this->reason); - } - } - - public function getState() - { - return self::REJECTED; - } - - public function resolve($value) - { - throw new \LogicException("Cannot resolve a rejected promise"); - } - - public function reject($reason) - { - if ($reason !== $this->reason) { - throw new \LogicException("Cannot reject a rejected promise"); - } - } - - public function cancel() - { - // pass - } -} diff --git a/vendor/guzzlehttp/promises/src/RejectionException.php b/vendor/guzzlehttp/promises/src/RejectionException.php deleted file mode 100644 index 07c1136d..00000000 --- a/vendor/guzzlehttp/promises/src/RejectionException.php +++ /dev/null @@ -1,47 +0,0 @@ -reason = $reason; - - $message = 'The promise was rejected'; - - if ($description) { - $message .= ' with reason: ' . $description; - } elseif (is_string($reason) - || (is_object($reason) && method_exists($reason, '__toString')) - ) { - $message .= ' with reason: ' . $this->reason; - } elseif ($reason instanceof \JsonSerializable) { - $message .= ' with reason: ' - . json_encode($this->reason, JSON_PRETTY_PRINT); - } - - parent::__construct($message); - } - - /** - * Returns the rejection reason. - * - * @return mixed - */ - public function getReason() - { - return $this->reason; - } -} diff --git a/vendor/guzzlehttp/promises/src/TaskQueue.php b/vendor/guzzlehttp/promises/src/TaskQueue.php deleted file mode 100644 index 6e8a2a08..00000000 --- a/vendor/guzzlehttp/promises/src/TaskQueue.php +++ /dev/null @@ -1,66 +0,0 @@ -run(); - */ -class TaskQueue implements TaskQueueInterface -{ - private $enableShutdown = true; - private $queue = []; - - public function __construct($withShutdown = true) - { - if ($withShutdown) { - register_shutdown_function(function () { - if ($this->enableShutdown) { - // Only run the tasks if an E_ERROR didn't occur. - $err = error_get_last(); - if (!$err || ($err['type'] ^ E_ERROR)) { - $this->run(); - } - } - }); - } - } - - public function isEmpty() - { - return !$this->queue; - } - - public function add(callable $task) - { - $this->queue[] = $task; - } - - public function run() - { - /** @var callable $task */ - while ($task = array_shift($this->queue)) { - $task(); - } - } - - /** - * The task queue will be run and exhausted by default when the process - * exits IFF the exit is not the result of a PHP E_ERROR error. - * - * You can disable running the automatic shutdown of the queue by calling - * this function. If you disable the task queue shutdown process, then you - * MUST either run the task queue (as a result of running your event loop - * or manually using the run() method) or wait on each outstanding promise. - * - * Note: This shutdown will occur before any destructors are triggered. - */ - public function disableShutdown() - { - $this->enableShutdown = false; - } -} diff --git a/vendor/guzzlehttp/promises/src/TaskQueueInterface.php b/vendor/guzzlehttp/promises/src/TaskQueueInterface.php deleted file mode 100644 index ac8306e1..00000000 --- a/vendor/guzzlehttp/promises/src/TaskQueueInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * while ($eventLoop->isRunning()) { - * GuzzleHttp\Promise\queue()->run(); - * } - * - * - * @param TaskQueueInterface $assign Optionally specify a new queue instance. - * - * @return TaskQueueInterface - */ -function queue(TaskQueueInterface $assign = null) -{ - static $queue; - - if ($assign) { - $queue = $assign; - } elseif (!$queue) { - $queue = new TaskQueue(); - } - - return $queue; -} - -/** - * Adds a function to run in the task queue when it is next `run()` and returns - * a promise that is fulfilled or rejected with the result. - * - * @param callable $task Task function to run. - * - * @return PromiseInterface - */ -function task(callable $task) -{ - $queue = queue(); - $promise = new Promise([$queue, 'run']); - $queue->add(function () use ($task, $promise) { - try { - $promise->resolve($task()); - } catch (\Throwable $e) { - $promise->reject($e); - } catch (\Exception $e) { - $promise->reject($e); - } - }); - - return $promise; -} - -/** - * Creates a promise for a value if the value is not a promise. - * - * @param mixed $value Promise or value. - * - * @return PromiseInterface - */ -function promise_for($value) -{ - if ($value instanceof PromiseInterface) { - return $value; - } - - // Return a Guzzle promise that shadows the given promise. - if (method_exists($value, 'then')) { - $wfn = method_exists($value, 'wait') ? [$value, 'wait'] : null; - $cfn = method_exists($value, 'cancel') ? [$value, 'cancel'] : null; - $promise = new Promise($wfn, $cfn); - $value->then([$promise, 'resolve'], [$promise, 'reject']); - return $promise; - } - - return new FulfilledPromise($value); -} - -/** - * Creates a rejected promise for a reason if the reason is not a promise. If - * the provided reason is a promise, then it is returned as-is. - * - * @param mixed $reason Promise or reason. - * - * @return PromiseInterface - */ -function rejection_for($reason) -{ - if ($reason instanceof PromiseInterface) { - return $reason; - } - - return new RejectedPromise($reason); -} - -/** - * Create an exception for a rejected promise value. - * - * @param mixed $reason - * - * @return \Exception|\Throwable - */ -function exception_for($reason) -{ - return $reason instanceof \Exception || $reason instanceof \Throwable - ? $reason - : new RejectionException($reason); -} - -/** - * Returns an iterator for the given value. - * - * @param mixed $value - * - * @return \Iterator - */ -function iter_for($value) -{ - if ($value instanceof \Iterator) { - return $value; - } elseif (is_array($value)) { - return new \ArrayIterator($value); - } else { - return new \ArrayIterator([$value]); - } -} - -/** - * Synchronously waits on a promise to resolve and returns an inspection state - * array. - * - * Returns a state associative array containing a "state" key mapping to a - * valid promise state. If the state of the promise is "fulfilled", the array - * will contain a "value" key mapping to the fulfilled value of the promise. If - * the promise is rejected, the array will contain a "reason" key mapping to - * the rejection reason of the promise. - * - * @param PromiseInterface $promise Promise or value. - * - * @return array - */ -function inspect(PromiseInterface $promise) -{ - try { - return [ - 'state' => PromiseInterface::FULFILLED, - 'value' => $promise->wait() - ]; - } catch (RejectionException $e) { - return ['state' => PromiseInterface::REJECTED, 'reason' => $e->getReason()]; - } catch (\Throwable $e) { - return ['state' => PromiseInterface::REJECTED, 'reason' => $e]; - } catch (\Exception $e) { - return ['state' => PromiseInterface::REJECTED, 'reason' => $e]; - } -} - -/** - * Waits on all of the provided promises, but does not unwrap rejected promises - * as thrown exception. - * - * Returns an array of inspection state arrays. - * - * @param PromiseInterface[] $promises Traversable of promises to wait upon. - * - * @return array - * @see GuzzleHttp\Promise\inspect for the inspection state array format. - */ -function inspect_all($promises) -{ - $results = []; - foreach ($promises as $key => $promise) { - $results[$key] = inspect($promise); - } - - return $results; -} - -/** - * Waits on all of the provided promises and returns the fulfilled values. - * - * Returns an array that contains the value of each promise (in the same order - * the promises were provided). An exception is thrown if any of the promises - * are rejected. - * - * @param mixed $promises Iterable of PromiseInterface objects to wait on. - * - * @return array - * @throws \Exception on error - * @throws \Throwable on error in PHP >=7 - */ -function unwrap($promises) -{ - $results = []; - foreach ($promises as $key => $promise) { - $results[$key] = $promise->wait(); - } - - return $results; -} - -/** - * Given an array of promises, return a promise that is fulfilled when all the - * items in the array are fulfilled. - * - * The promise's fulfillment value is an array with fulfillment values at - * respective positions to the original array. If any promise in the array - * rejects, the returned promise is rejected with the rejection reason. - * - * @param mixed $promises Promises or values. - * - * @return PromiseInterface - */ -function all($promises) -{ - $results = []; - return each( - $promises, - function ($value, $idx) use (&$results) { - $results[$idx] = $value; - }, - function ($reason, $idx, Promise $aggregate) { - $aggregate->reject($reason); - } - )->then(function () use (&$results) { - ksort($results); - return $results; - }); -} - -/** - * Initiate a competitive race between multiple promises or values (values will - * become immediately fulfilled promises). - * - * When count amount of promises have been fulfilled, the returned promise is - * fulfilled with an array that contains the fulfillment values of the winners - * in order of resolution. - * - * This prommise is rejected with a {@see GuzzleHttp\Promise\AggregateException} - * if the number of fulfilled promises is less than the desired $count. - * - * @param int $count Total number of promises. - * @param mixed $promises Promises or values. - * - * @return PromiseInterface - */ -function some($count, $promises) -{ - $results = []; - $rejections = []; - - return each( - $promises, - function ($value, $idx, PromiseInterface $p) use (&$results, $count) { - if ($p->getState() !== PromiseInterface::PENDING) { - return; - } - $results[$idx] = $value; - if (count($results) >= $count) { - $p->resolve(null); - } - }, - function ($reason) use (&$rejections) { - $rejections[] = $reason; - } - )->then( - function () use (&$results, &$rejections, $count) { - if (count($results) !== $count) { - throw new AggregateException( - 'Not enough promises to fulfill count', - $rejections - ); - } - ksort($results); - return array_values($results); - } - ); -} - -/** - * Like some(), with 1 as count. However, if the promise fulfills, the - * fulfillment value is not an array of 1 but the value directly. - * - * @param mixed $promises Promises or values. - * - * @return PromiseInterface - */ -function any($promises) -{ - return some(1, $promises)->then(function ($values) { return $values[0]; }); -} - -/** - * Returns a promise that is fulfilled when all of the provided promises have - * been fulfilled or rejected. - * - * The returned promise is fulfilled with an array of inspection state arrays. - * - * @param mixed $promises Promises or values. - * - * @return PromiseInterface - * @see GuzzleHttp\Promise\inspect for the inspection state array format. - */ -function settle($promises) -{ - $results = []; - - return each( - $promises, - function ($value, $idx) use (&$results) { - $results[$idx] = ['state' => PromiseInterface::FULFILLED, 'value' => $value]; - }, - function ($reason, $idx) use (&$results) { - $results[$idx] = ['state' => PromiseInterface::REJECTED, 'reason' => $reason]; - } - )->then(function () use (&$results) { - ksort($results); - return $results; - }); -} - -/** - * Given an iterator that yields promises or values, returns a promise that is - * fulfilled with a null value when the iterator has been consumed or the - * aggregate promise has been fulfilled or rejected. - * - * $onFulfilled is a function that accepts the fulfilled value, iterator - * index, and the aggregate promise. The callback can invoke any necessary side - * effects and choose to resolve or reject the aggregate promise if needed. - * - * $onRejected is a function that accepts the rejection reason, iterator - * index, and the aggregate promise. The callback can invoke any necessary side - * effects and choose to resolve or reject the aggregate promise if needed. - * - * @param mixed $iterable Iterator or array to iterate over. - * @param callable $onFulfilled - * @param callable $onRejected - * - * @return PromiseInterface - */ -function each( - $iterable, - callable $onFulfilled = null, - callable $onRejected = null -) { - return (new EachPromise($iterable, [ - 'fulfilled' => $onFulfilled, - 'rejected' => $onRejected - ]))->promise(); -} - -/** - * Like each, but only allows a certain number of outstanding promises at any - * given time. - * - * $concurrency may be an integer or a function that accepts the number of - * pending promises and returns a numeric concurrency limit value to allow for - * dynamic a concurrency size. - * - * @param mixed $iterable - * @param int|callable $concurrency - * @param callable $onFulfilled - * @param callable $onRejected - * - * @return PromiseInterface - */ -function each_limit( - $iterable, - $concurrency, - callable $onFulfilled = null, - callable $onRejected = null -) { - return (new EachPromise($iterable, [ - 'fulfilled' => $onFulfilled, - 'rejected' => $onRejected, - 'concurrency' => $concurrency - ]))->promise(); -} - -/** - * Like each_limit, but ensures that no promise in the given $iterable argument - * is rejected. If any promise is rejected, then the aggregate promise is - * rejected with the encountered rejection. - * - * @param mixed $iterable - * @param int|callable $concurrency - * @param callable $onFulfilled - * - * @return PromiseInterface - */ -function each_limit_all( - $iterable, - $concurrency, - callable $onFulfilled = null -) { - return each_limit( - $iterable, - $concurrency, - $onFulfilled, - function ($reason, $idx, PromiseInterface $aggregate) { - $aggregate->reject($reason); - } - ); -} - -/** - * Returns true if a promise is fulfilled. - * - * @param PromiseInterface $promise - * - * @return bool - */ -function is_fulfilled(PromiseInterface $promise) -{ - return $promise->getState() === PromiseInterface::FULFILLED; -} - -/** - * Returns true if a promise is rejected. - * - * @param PromiseInterface $promise - * - * @return bool - */ -function is_rejected(PromiseInterface $promise) -{ - return $promise->getState() === PromiseInterface::REJECTED; -} - -/** - * Returns true if a promise is fulfilled or rejected. - * - * @param PromiseInterface $promise - * - * @return bool - */ -function is_settled(PromiseInterface $promise) -{ - return $promise->getState() !== PromiseInterface::PENDING; -} - -/** - * @see Coroutine - * - * @param callable $generatorFn - * - * @return PromiseInterface - */ -function coroutine(callable $generatorFn) -{ - return new Coroutine($generatorFn); -} diff --git a/vendor/guzzlehttp/promises/src/functions_include.php b/vendor/guzzlehttp/promises/src/functions_include.php deleted file mode 100644 index 34cd1710..00000000 --- a/vendor/guzzlehttp/promises/src/functions_include.php +++ /dev/null @@ -1,6 +0,0 @@ -withPath('foo')->withHost('example.com')` will throw an exception - because the path of a URI with an authority must start with a slash "/" or be empty - - `(new Uri())->withScheme('http')` will return `'http://localhost'` -* Fix compatibility of URIs with `file` scheme and empty host. -* Added common URI utility methods based on RFC 3986 (see documentation in the readme): - - `Uri::isDefaultPort` - - `Uri::isAbsolute` - - `Uri::isNetworkPathReference` - - `Uri::isAbsolutePathReference` - - `Uri::isRelativePathReference` - - `Uri::isSameDocumentReference` - - `Uri::composeComponents` - - `UriNormalizer::normalize` - - `UriNormalizer::isEquivalent` - - `UriResolver::relativize` -* Deprecated `Uri::resolve` in favor of `UriResolver::resolve` -* Deprecated `Uri::removeDotSegments` in favor of `UriResolver::removeDotSegments` - -## 1.3.1 - 2016-06-25 - -* Fix `Uri::__toString` for network path references, e.g. `//example.org`. -* Fix missing lowercase normalization for host. -* Fix handling of URI components in case they are `'0'` in a lot of places, - e.g. as a user info password. -* Fix `Uri::withAddedHeader` to correctly merge headers with different case. -* Fix trimming of header values in `Uri::withAddedHeader`. Header values may - be surrounded by whitespace which should be ignored according to RFC 7230 - Section 3.2.4. This does not apply to header names. -* Fix `Uri::withAddedHeader` with an array of header values. -* Fix `Uri::resolve` when base path has no slash and handling of fragment. -* Fix handling of encoding in `Uri::with(out)QueryValue` so one can pass the - key/value both in encoded as well as decoded form to those methods. This is - consistent with withPath, withQuery etc. -* Fix `ServerRequest::withoutAttribute` when attribute value is null. - -## 1.3.0 - 2016-04-13 - -* Added remaining interfaces needed for full PSR7 compatibility - (ServerRequestInterface, UploadedFileInterface, etc.). -* Added support for stream_for from scalars. -* Can now extend Uri. -* Fixed a bug in validating request methods by making it more permissive. - -## 1.2.3 - 2016-02-18 - -* Fixed support in `GuzzleHttp\Psr7\CachingStream` for seeking forward on remote - streams, which can sometimes return fewer bytes than requested with `fread`. -* Fixed handling of gzipped responses with FNAME headers. - -## 1.2.2 - 2016-01-22 - -* Added support for URIs without any authority. -* Added support for HTTP 451 'Unavailable For Legal Reasons.' -* Added support for using '0' as a filename. -* Added support for including non-standard ports in Host headers. - -## 1.2.1 - 2015-11-02 - -* Now supporting negative offsets when seeking to SEEK_END. - -## 1.2.0 - 2015-08-15 - -* Body as `"0"` is now properly added to a response. -* Now allowing forward seeking in CachingStream. -* Now properly parsing HTTP requests that contain proxy targets in - `parse_request`. -* functions.php is now conditionally required. -* user-info is no longer dropped when resolving URIs. - -## 1.1.0 - 2015-06-24 - -* URIs can now be relative. -* `multipart/form-data` headers are now overridden case-insensitively. -* URI paths no longer encode the following characters because they are allowed - in URIs: "(", ")", "*", "!", "'" -* A port is no longer added to a URI when the scheme is missing and no port is - present. - -## 1.0.0 - 2015-05-19 - -Initial release. - -Currently unsupported: - -- `Psr\Http\Message\ServerRequestInterface` -- `Psr\Http\Message\UploadedFileInterface` diff --git a/vendor/guzzlehttp/psr7/LICENSE b/vendor/guzzlehttp/psr7/LICENSE deleted file mode 100644 index 581d95f9..00000000 --- a/vendor/guzzlehttp/psr7/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015 Michael Dowling, https://github.com/mtdowling - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/guzzlehttp/psr7/README.md b/vendor/guzzlehttp/psr7/README.md deleted file mode 100644 index 16499358..00000000 --- a/vendor/guzzlehttp/psr7/README.md +++ /dev/null @@ -1,739 +0,0 @@ -# PSR-7 Message Implementation - -This repository contains a full [PSR-7](http://www.php-fig.org/psr/psr-7/) -message implementation, several stream decorators, and some helpful -functionality like query string parsing. - - -[![Build Status](https://travis-ci.org/guzzle/psr7.svg?branch=master)](https://travis-ci.org/guzzle/psr7) - - -# Stream implementation - -This package comes with a number of stream implementations and stream -decorators. - - -## AppendStream - -`GuzzleHttp\Psr7\AppendStream` - -Reads from multiple streams, one after the other. - -```php -use GuzzleHttp\Psr7; - -$a = Psr7\stream_for('abc, '); -$b = Psr7\stream_for('123.'); -$composed = new Psr7\AppendStream([$a, $b]); - -$composed->addStream(Psr7\stream_for(' Above all listen to me')); - -echo $composed; // abc, 123. Above all listen to me. -``` - - -## BufferStream - -`GuzzleHttp\Psr7\BufferStream` - -Provides a buffer stream that can be written to fill a buffer, and read -from to remove bytes from the buffer. - -This stream returns a "hwm" metadata value that tells upstream consumers -what the configured high water mark of the stream is, or the maximum -preferred size of the buffer. - -```php -use GuzzleHttp\Psr7; - -// When more than 1024 bytes are in the buffer, it will begin returning -// false to writes. This is an indication that writers should slow down. -$buffer = new Psr7\BufferStream(1024); -``` - - -## CachingStream - -The CachingStream is used to allow seeking over previously read bytes on -non-seekable streams. This can be useful when transferring a non-seekable -entity body fails due to needing to rewind the stream (for example, resulting -from a redirect). Data that is read from the remote stream will be buffered in -a PHP temp stream so that previously read bytes are cached first in memory, -then on disk. - -```php -use GuzzleHttp\Psr7; - -$original = Psr7\stream_for(fopen('http://www.google.com', 'r')); -$stream = new Psr7\CachingStream($original); - -$stream->read(1024); -echo $stream->tell(); -// 1024 - -$stream->seek(0); -echo $stream->tell(); -// 0 -``` - - -## DroppingStream - -`GuzzleHttp\Psr7\DroppingStream` - -Stream decorator that begins dropping data once the size of the underlying -stream becomes too full. - -```php -use GuzzleHttp\Psr7; - -// Create an empty stream -$stream = Psr7\stream_for(); - -// Start dropping data when the stream has more than 10 bytes -$dropping = new Psr7\DroppingStream($stream, 10); - -$dropping->write('01234567890123456789'); -echo $stream; // 0123456789 -``` - - -## FnStream - -`GuzzleHttp\Psr7\FnStream` - -Compose stream implementations based on a hash of functions. - -Allows for easy testing and extension of a provided stream without needing -to create a concrete class for a simple extension point. - -```php - -use GuzzleHttp\Psr7; - -$stream = Psr7\stream_for('hi'); -$fnStream = Psr7\FnStream::decorate($stream, [ - 'rewind' => function () use ($stream) { - echo 'About to rewind - '; - $stream->rewind(); - echo 'rewound!'; - } -]); - -$fnStream->rewind(); -// Outputs: About to rewind - rewound! -``` - - -## InflateStream - -`GuzzleHttp\Psr7\InflateStream` - -Uses PHP's zlib.inflate filter to inflate deflate or gzipped content. - -This stream decorator skips the first 10 bytes of the given stream to remove -the gzip header, converts the provided stream to a PHP stream resource, -then appends the zlib.inflate filter. The stream is then converted back -to a Guzzle stream resource to be used as a Guzzle stream. - - -## LazyOpenStream - -`GuzzleHttp\Psr7\LazyOpenStream` - -Lazily reads or writes to a file that is opened only after an IO operation -take place on the stream. - -```php -use GuzzleHttp\Psr7; - -$stream = new Psr7\LazyOpenStream('/path/to/file', 'r'); -// The file has not yet been opened... - -echo $stream->read(10); -// The file is opened and read from only when needed. -``` - - -## LimitStream - -`GuzzleHttp\Psr7\LimitStream` - -LimitStream can be used to read a subset or slice of an existing stream object. -This can be useful for breaking a large file into smaller pieces to be sent in -chunks (e.g. Amazon S3's multipart upload API). - -```php -use GuzzleHttp\Psr7; - -$original = Psr7\stream_for(fopen('/tmp/test.txt', 'r+')); -echo $original->getSize(); -// >>> 1048576 - -// Limit the size of the body to 1024 bytes and start reading from byte 2048 -$stream = new Psr7\LimitStream($original, 1024, 2048); -echo $stream->getSize(); -// >>> 1024 -echo $stream->tell(); -// >>> 0 -``` - - -## MultipartStream - -`GuzzleHttp\Psr7\MultipartStream` - -Stream that when read returns bytes for a streaming multipart or -multipart/form-data stream. - - -## NoSeekStream - -`GuzzleHttp\Psr7\NoSeekStream` - -NoSeekStream wraps a stream and does not allow seeking. - -```php -use GuzzleHttp\Psr7; - -$original = Psr7\stream_for('foo'); -$noSeek = new Psr7\NoSeekStream($original); - -echo $noSeek->read(3); -// foo -var_export($noSeek->isSeekable()); -// false -$noSeek->seek(0); -var_export($noSeek->read(3)); -// NULL -``` - - -## PumpStream - -`GuzzleHttp\Psr7\PumpStream` - -Provides a read only stream that pumps data from a PHP callable. - -When invoking the provided callable, the PumpStream will pass the amount of -data requested to read to the callable. The callable can choose to ignore -this value and return fewer or more bytes than requested. Any extra data -returned by the provided callable is buffered internally until drained using -the read() function of the PumpStream. The provided callable MUST return -false when there is no more data to read. - - -## Implementing stream decorators - -Creating a stream decorator is very easy thanks to the -`GuzzleHttp\Psr7\StreamDecoratorTrait`. This trait provides methods that -implement `Psr\Http\Message\StreamInterface` by proxying to an underlying -stream. Just `use` the `StreamDecoratorTrait` and implement your custom -methods. - -For example, let's say we wanted to call a specific function each time the last -byte is read from a stream. This could be implemented by overriding the -`read()` method. - -```php -use Psr\Http\Message\StreamInterface; -use GuzzleHttp\Psr7\StreamDecoratorTrait; - -class EofCallbackStream implements StreamInterface -{ - use StreamDecoratorTrait; - - private $callback; - - public function __construct(StreamInterface $stream, callable $cb) - { - $this->stream = $stream; - $this->callback = $cb; - } - - public function read($length) - { - $result = $this->stream->read($length); - - // Invoke the callback when EOF is hit. - if ($this->eof()) { - call_user_func($this->callback); - } - - return $result; - } -} -``` - -This decorator could be added to any existing stream and used like so: - -```php -use GuzzleHttp\Psr7; - -$original = Psr7\stream_for('foo'); - -$eofStream = new EofCallbackStream($original, function () { - echo 'EOF!'; -}); - -$eofStream->read(2); -$eofStream->read(1); -// echoes "EOF!" -$eofStream->seek(0); -$eofStream->read(3); -// echoes "EOF!" -``` - - -## PHP StreamWrapper - -You can use the `GuzzleHttp\Psr7\StreamWrapper` class if you need to use a -PSR-7 stream as a PHP stream resource. - -Use the `GuzzleHttp\Psr7\StreamWrapper::getResource()` method to create a PHP -stream from a PSR-7 stream. - -```php -use GuzzleHttp\Psr7\StreamWrapper; - -$stream = GuzzleHttp\Psr7\stream_for('hello!'); -$resource = StreamWrapper::getResource($stream); -echo fread($resource, 6); // outputs hello! -``` - - -# Function API - -There are various functions available under the `GuzzleHttp\Psr7` namespace. - - -## `function str` - -`function str(MessageInterface $message)` - -Returns the string representation of an HTTP message. - -```php -$request = new GuzzleHttp\Psr7\Request('GET', 'http://example.com'); -echo GuzzleHttp\Psr7\str($request); -``` - - -## `function uri_for` - -`function uri_for($uri)` - -This function accepts a string or `Psr\Http\Message\UriInterface` and returns a -UriInterface for the given value. If the value is already a `UriInterface`, it -is returned as-is. - -```php -$uri = GuzzleHttp\Psr7\uri_for('http://example.com'); -assert($uri === GuzzleHttp\Psr7\uri_for($uri)); -``` - - -## `function stream_for` - -`function stream_for($resource = '', array $options = [])` - -Create a new stream based on the input type. - -Options is an associative array that can contain the following keys: - -* - metadata: Array of custom metadata. -* - size: Size of the stream. - -This method accepts the following `$resource` types: - -- `Psr\Http\Message\StreamInterface`: Returns the value as-is. -- `string`: Creates a stream object that uses the given string as the contents. -- `resource`: Creates a stream object that wraps the given PHP stream resource. -- `Iterator`: If the provided value implements `Iterator`, then a read-only - stream object will be created that wraps the given iterable. Each time the - stream is read from, data from the iterator will fill a buffer and will be - continuously called until the buffer is equal to the requested read size. - Subsequent read calls will first read from the buffer and then call `next` - on the underlying iterator until it is exhausted. -- `object` with `__toString()`: If the object has the `__toString()` method, - the object will be cast to a string and then a stream will be returned that - uses the string value. -- `NULL`: When `null` is passed, an empty stream object is returned. -- `callable` When a callable is passed, a read-only stream object will be - created that invokes the given callable. The callable is invoked with the - number of suggested bytes to read. The callable can return any number of - bytes, but MUST return `false` when there is no more data to return. The - stream object that wraps the callable will invoke the callable until the - number of requested bytes are available. Any additional bytes will be - buffered and used in subsequent reads. - -```php -$stream = GuzzleHttp\Psr7\stream_for('foo'); -$stream = GuzzleHttp\Psr7\stream_for(fopen('/path/to/file', 'r')); - -$generator function ($bytes) { - for ($i = 0; $i < $bytes; $i++) { - yield ' '; - } -} - -$stream = GuzzleHttp\Psr7\stream_for($generator(100)); -``` - - -## `function parse_header` - -`function parse_header($header)` - -Parse an array of header values containing ";" separated data into an array of -associative arrays representing the header key value pair data of the header. -When a parameter does not contain a value, but just contains a key, this -function will inject a key with a '' string value. - - -## `function normalize_header` - -`function normalize_header($header)` - -Converts an array of header values that may contain comma separated headers -into an array of headers with no comma separated values. - - -## `function modify_request` - -`function modify_request(RequestInterface $request, array $changes)` - -Clone and modify a request with the given changes. This method is useful for -reducing the number of clones needed to mutate a message. - -The changes can be one of: - -- method: (string) Changes the HTTP method. -- set_headers: (array) Sets the given headers. -- remove_headers: (array) Remove the given headers. -- body: (mixed) Sets the given body. -- uri: (UriInterface) Set the URI. -- query: (string) Set the query string value of the URI. -- version: (string) Set the protocol version. - - -## `function rewind_body` - -`function rewind_body(MessageInterface $message)` - -Attempts to rewind a message body and throws an exception on failure. The body -of the message will only be rewound if a call to `tell()` returns a value other -than `0`. - - -## `function try_fopen` - -`function try_fopen($filename, $mode)` - -Safely opens a PHP stream resource using a filename. - -When fopen fails, PHP normally raises a warning. This function adds an error -handler that checks for errors and throws an exception instead. - - -## `function copy_to_string` - -`function copy_to_string(StreamInterface $stream, $maxLen = -1)` - -Copy the contents of a stream into a string until the given number of bytes -have been read. - - -## `function copy_to_stream` - -`function copy_to_stream(StreamInterface $source, StreamInterface $dest, $maxLen = -1)` - -Copy the contents of a stream into another stream until the given number of -bytes have been read. - - -## `function hash` - -`function hash(StreamInterface $stream, $algo, $rawOutput = false)` - -Calculate a hash of a Stream. This method reads the entire stream to calculate -a rolling hash (based on PHP's hash_init functions). - - -## `function readline` - -`function readline(StreamInterface $stream, $maxLength = null)` - -Read a line from the stream up to the maximum allowed buffer length. - - -## `function parse_request` - -`function parse_request($message)` - -Parses a request message string into a request object. - - -## `function parse_response` - -`function parse_response($message)` - -Parses a response message string into a response object. - - -## `function parse_query` - -`function parse_query($str, $urlEncoding = true)` - -Parse a query string into an associative array. - -If multiple values are found for the same key, the value of that key value pair -will become an array. This function does not parse nested PHP style arrays into -an associative array (e.g., `foo[a]=1&foo[b]=2` will be parsed into -`['foo[a]' => '1', 'foo[b]' => '2']`). - - -## `function build_query` - -`function build_query(array $params, $encoding = PHP_QUERY_RFC3986)` - -Build a query string from an array of key value pairs. - -This function can use the return value of parse_query() to build a query string. -This function does not modify the provided keys when an array is encountered -(like http_build_query would). - - -## `function mimetype_from_filename` - -`function mimetype_from_filename($filename)` - -Determines the mimetype of a file by looking at its extension. - - -## `function mimetype_from_extension` - -`function mimetype_from_extension($extension)` - -Maps a file extensions to a mimetype. - - -# Additional URI Methods - -Aside from the standard `Psr\Http\Message\UriInterface` implementation in form of the `GuzzleHttp\Psr7\Uri` class, -this library also provides additional functionality when working with URIs as static methods. - -## URI Types - -An instance of `Psr\Http\Message\UriInterface` can either be an absolute URI or a relative reference. -An absolute URI has a scheme. A relative reference is used to express a URI relative to another URI, -the base URI. Relative references can be divided into several forms according to -[RFC 3986 Section 4.2](https://tools.ietf.org/html/rfc3986#section-4.2): - -- network-path references, e.g. `//example.com/path` -- absolute-path references, e.g. `/path` -- relative-path references, e.g. `subpath` - -The following methods can be used to identify the type of the URI. - -### `GuzzleHttp\Psr7\Uri::isAbsolute` - -`public static function isAbsolute(UriInterface $uri): bool` - -Whether the URI is absolute, i.e. it has a scheme. - -### `GuzzleHttp\Psr7\Uri::isNetworkPathReference` - -`public static function isNetworkPathReference(UriInterface $uri): bool` - -Whether the URI is a network-path reference. A relative reference that begins with two slash characters is -termed an network-path reference. - -### `GuzzleHttp\Psr7\Uri::isAbsolutePathReference` - -`public static function isAbsolutePathReference(UriInterface $uri): bool` - -Whether the URI is a absolute-path reference. A relative reference that begins with a single slash character is -termed an absolute-path reference. - -### `GuzzleHttp\Psr7\Uri::isRelativePathReference` - -`public static function isRelativePathReference(UriInterface $uri): bool` - -Whether the URI is a relative-path reference. A relative reference that does not begin with a slash character is -termed a relative-path reference. - -### `GuzzleHttp\Psr7\Uri::isSameDocumentReference` - -`public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null): bool` - -Whether the URI is a same-document reference. A same-document reference refers to a URI that is, aside from its -fragment component, identical to the base URI. When no base URI is given, only an empty URI reference -(apart from its fragment) is considered a same-document reference. - -## URI Components - -Additional methods to work with URI components. - -### `GuzzleHttp\Psr7\Uri::isDefaultPort` - -`public static function isDefaultPort(UriInterface $uri): bool` - -Whether the URI has the default port of the current scheme. `Psr\Http\Message\UriInterface::getPort` may return null -or the standard port. This method can be used independently of the implementation. - -### `GuzzleHttp\Psr7\Uri::composeComponents` - -`public static function composeComponents($scheme, $authority, $path, $query, $fragment): string` - -Composes a URI reference string from its various components according to -[RFC 3986 Section 5.3](https://tools.ietf.org/html/rfc3986#section-5.3). Usually this method does not need to be called -manually but instead is used indirectly via `Psr\Http\Message\UriInterface::__toString`. - -### `GuzzleHttp\Psr7\Uri::fromParts` - -`public static function fromParts(array $parts): UriInterface` - -Creates a URI from a hash of [`parse_url`](http://php.net/manual/en/function.parse-url.php) components. - - -### `GuzzleHttp\Psr7\Uri::withQueryValue` - -`public static function withQueryValue(UriInterface $uri, $key, $value): UriInterface` - -Creates a new URI with a specific query string value. Any existing query string values that exactly match the -provided key are removed and replaced with the given key value pair. A value of null will set the query string -key without a value, e.g. "key" instead of "key=value". - - -### `GuzzleHttp\Psr7\Uri::withoutQueryValue` - -`public static function withoutQueryValue(UriInterface $uri, $key): UriInterface` - -Creates a new URI with a specific query string value removed. Any existing query string values that exactly match the -provided key are removed. - -## Reference Resolution - -`GuzzleHttp\Psr7\UriResolver` provides methods to resolve a URI reference in the context of a base URI according -to [RFC 3986 Section 5](https://tools.ietf.org/html/rfc3986#section-5). This is for example also what web browsers -do when resolving a link in a website based on the current request URI. - -### `GuzzleHttp\Psr7\UriResolver::resolve` - -`public static function resolve(UriInterface $base, UriInterface $rel): UriInterface` - -Converts the relative URI into a new URI that is resolved against the base URI. - -### `GuzzleHttp\Psr7\UriResolver::removeDotSegments` - -`public static function removeDotSegments(string $path): string` - -Removes dot segments from a path and returns the new path according to -[RFC 3986 Section 5.2.4](https://tools.ietf.org/html/rfc3986#section-5.2.4). - -### `GuzzleHttp\Psr7\UriResolver::relativize` - -`public static function relativize(UriInterface $base, UriInterface $target): UriInterface` - -Returns the target URI as a relative reference from the base URI. This method is the counterpart to resolve(): - -```php -(string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target)) -``` - -One use-case is to use the current request URI as base URI and then generate relative links in your documents -to reduce the document size or offer self-contained downloadable document archives. - -```php -$base = new Uri('http://example.com/a/b/'); -echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. -echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. -echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. -echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'. -``` - -## Normalization and Comparison - -`GuzzleHttp\Psr7\UriNormalizer` provides methods to normalize and compare URIs according to -[RFC 3986 Section 6](https://tools.ietf.org/html/rfc3986#section-6). - -### `GuzzleHttp\Psr7\UriNormalizer::normalize` - -`public static function normalize(UriInterface $uri, $flags = self::PRESERVING_NORMALIZATIONS): UriInterface` - -Returns a normalized URI. The scheme and host component are already normalized to lowercase per PSR-7 UriInterface. -This methods adds additional normalizations that can be configured with the `$flags` parameter which is a bitmask -of normalizations to apply. The following normalizations are available: - -- `UriNormalizer::PRESERVING_NORMALIZATIONS` - - Default normalizations which only include the ones that preserve semantics. - -- `UriNormalizer::CAPITALIZE_PERCENT_ENCODING` - - All letters within a percent-encoding triplet (e.g., "%3A") are case-insensitive, and should be capitalized. - - Example: `http://example.org/a%c2%b1b` → `http://example.org/a%C2%B1b` - -- `UriNormalizer::DECODE_UNRESERVED_CHARACTERS` - - Decodes percent-encoded octets of unreserved characters. For consistency, percent-encoded octets in the ranges of - ALPHA (%41–%5A and %61–%7A), DIGIT (%30–%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should - not be created by URI producers and, when found in a URI, should be decoded to their corresponding unreserved - characters by URI normalizers. - - Example: `http://example.org/%7Eusern%61me/` → `http://example.org/~username/` - -- `UriNormalizer::CONVERT_EMPTY_PATH` - - Converts the empty path to "/" for http and https URIs. - - Example: `http://example.org` → `http://example.org/` - -- `UriNormalizer::REMOVE_DEFAULT_HOST` - - Removes the default host of the given URI scheme from the URI. Only the "file" scheme defines the default host - "localhost". All of `file:/myfile`, `file:///myfile`, and `file://localhost/myfile` are equivalent according to - RFC 3986. - - Example: `file://localhost/myfile` → `file:///myfile` - -- `UriNormalizer::REMOVE_DEFAULT_PORT` - - Removes the default port of the given URI scheme from the URI. - - Example: `http://example.org:80/` → `http://example.org/` - -- `UriNormalizer::REMOVE_DOT_SEGMENTS` - - Removes unnecessary dot-segments. Dot-segments in relative-path references are not removed as it would - change the semantics of the URI reference. - - Example: `http://example.org/../a/b/../c/./d.html` → `http://example.org/a/c/d.html` - -- `UriNormalizer::REMOVE_DUPLICATE_SLASHES` - - Paths which include two or more adjacent slashes are converted to one. Webservers usually ignore duplicate slashes - and treat those URIs equivalent. But in theory those URIs do not need to be equivalent. So this normalization - may change the semantics. Encoded slashes (%2F) are not removed. - - Example: `http://example.org//foo///bar.html` → `http://example.org/foo/bar.html` - -- `UriNormalizer::SORT_QUERY_PARAMETERS` - - Sort query parameters with their values in alphabetical order. However, the order of parameters in a URI may be - significant (this is not defined by the standard). So this normalization is not safe and may change the semantics - of the URI. - - Example: `?lang=en&article=fred` → `?article=fred&lang=en` - -### `GuzzleHttp\Psr7\UriNormalizer::isEquivalent` - -`public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS): bool` - -Whether two URIs can be considered equivalent. Both URIs are normalized automatically before comparison with the given -`$normalizations` bitmask. The method also accepts relative URI references and returns true when they are equivalent. -This of course assumes they will be resolved against the same base URI. If this is not the case, determination of -equivalence or difference of relative references does not mean anything. diff --git a/vendor/guzzlehttp/psr7/composer.json b/vendor/guzzlehttp/psr7/composer.json deleted file mode 100644 index b1c5a90b..00000000 --- a/vendor/guzzlehttp/psr7/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "guzzlehttp/psr7", - "type": "library", - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": ["request", "response", "message", "stream", "http", "uri", "url"], - "license": "MIT", - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" - } - ], - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": ["src/functions_include.php"] - }, - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - } -} diff --git a/vendor/guzzlehttp/psr7/src/AppendStream.php b/vendor/guzzlehttp/psr7/src/AppendStream.php deleted file mode 100644 index 23039fd7..00000000 --- a/vendor/guzzlehttp/psr7/src/AppendStream.php +++ /dev/null @@ -1,233 +0,0 @@ -addStream($stream); - } - } - - public function __toString() - { - try { - $this->rewind(); - return $this->getContents(); - } catch (\Exception $e) { - return ''; - } - } - - /** - * Add a stream to the AppendStream - * - * @param StreamInterface $stream Stream to append. Must be readable. - * - * @throws \InvalidArgumentException if the stream is not readable - */ - public function addStream(StreamInterface $stream) - { - if (!$stream->isReadable()) { - throw new \InvalidArgumentException('Each stream must be readable'); - } - - // The stream is only seekable if all streams are seekable - if (!$stream->isSeekable()) { - $this->seekable = false; - } - - $this->streams[] = $stream; - } - - public function getContents() - { - return copy_to_string($this); - } - - /** - * Closes each attached stream. - * - * {@inheritdoc} - */ - public function close() - { - $this->pos = $this->current = 0; - - foreach ($this->streams as $stream) { - $stream->close(); - } - - $this->streams = []; - } - - /** - * Detaches each attached stream - * - * {@inheritdoc} - */ - public function detach() - { - $this->close(); - $this->detached = true; - } - - public function tell() - { - return $this->pos; - } - - /** - * Tries to calculate the size by adding the size of each stream. - * - * If any of the streams do not return a valid number, then the size of the - * append stream cannot be determined and null is returned. - * - * {@inheritdoc} - */ - public function getSize() - { - $size = 0; - - foreach ($this->streams as $stream) { - $s = $stream->getSize(); - if ($s === null) { - return null; - } - $size += $s; - } - - return $size; - } - - public function eof() - { - return !$this->streams || - ($this->current >= count($this->streams) - 1 && - $this->streams[$this->current]->eof()); - } - - public function rewind() - { - $this->seek(0); - } - - /** - * Attempts to seek to the given position. Only supports SEEK_SET. - * - * {@inheritdoc} - */ - public function seek($offset, $whence = SEEK_SET) - { - if (!$this->seekable) { - throw new \RuntimeException('This AppendStream is not seekable'); - } elseif ($whence !== SEEK_SET) { - throw new \RuntimeException('The AppendStream can only seek with SEEK_SET'); - } - - $this->pos = $this->current = 0; - - // Rewind each stream - foreach ($this->streams as $i => $stream) { - try { - $stream->rewind(); - } catch (\Exception $e) { - throw new \RuntimeException('Unable to seek stream ' - . $i . ' of the AppendStream', 0, $e); - } - } - - // Seek to the actual position by reading from each stream - while ($this->pos < $offset && !$this->eof()) { - $result = $this->read(min(8096, $offset - $this->pos)); - if ($result === '') { - break; - } - } - } - - /** - * Reads from all of the appended streams until the length is met or EOF. - * - * {@inheritdoc} - */ - public function read($length) - { - $buffer = ''; - $total = count($this->streams) - 1; - $remaining = $length; - $progressToNext = false; - - while ($remaining > 0) { - - // Progress to the next stream if needed. - if ($progressToNext || $this->streams[$this->current]->eof()) { - $progressToNext = false; - if ($this->current === $total) { - break; - } - $this->current++; - } - - $result = $this->streams[$this->current]->read($remaining); - - // Using a loose comparison here to match on '', false, and null - if ($result == null) { - $progressToNext = true; - continue; - } - - $buffer .= $result; - $remaining = $length - strlen($buffer); - } - - $this->pos += strlen($buffer); - - return $buffer; - } - - public function isReadable() - { - return true; - } - - public function isWritable() - { - return false; - } - - public function isSeekable() - { - return $this->seekable; - } - - public function write($string) - { - throw new \RuntimeException('Cannot write to an AppendStream'); - } - - public function getMetadata($key = null) - { - return $key ? null : []; - } -} diff --git a/vendor/guzzlehttp/psr7/src/BufferStream.php b/vendor/guzzlehttp/psr7/src/BufferStream.php deleted file mode 100644 index af4d4c22..00000000 --- a/vendor/guzzlehttp/psr7/src/BufferStream.php +++ /dev/null @@ -1,137 +0,0 @@ -hwm = $hwm; - } - - public function __toString() - { - return $this->getContents(); - } - - public function getContents() - { - $buffer = $this->buffer; - $this->buffer = ''; - - return $buffer; - } - - public function close() - { - $this->buffer = ''; - } - - public function detach() - { - $this->close(); - } - - public function getSize() - { - return strlen($this->buffer); - } - - public function isReadable() - { - return true; - } - - public function isWritable() - { - return true; - } - - public function isSeekable() - { - return false; - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - throw new \RuntimeException('Cannot seek a BufferStream'); - } - - public function eof() - { - return strlen($this->buffer) === 0; - } - - public function tell() - { - throw new \RuntimeException('Cannot determine the position of a BufferStream'); - } - - /** - * Reads data from the buffer. - */ - public function read($length) - { - $currentLength = strlen($this->buffer); - - if ($length >= $currentLength) { - // No need to slice the buffer because we don't have enough data. - $result = $this->buffer; - $this->buffer = ''; - } else { - // Slice up the result to provide a subset of the buffer. - $result = substr($this->buffer, 0, $length); - $this->buffer = substr($this->buffer, $length); - } - - return $result; - } - - /** - * Writes data to the buffer. - */ - public function write($string) - { - $this->buffer .= $string; - - // TODO: What should happen here? - if (strlen($this->buffer) >= $this->hwm) { - return false; - } - - return strlen($string); - } - - public function getMetadata($key = null) - { - if ($key == 'hwm') { - return $this->hwm; - } - - return $key ? null : []; - } -} diff --git a/vendor/guzzlehttp/psr7/src/CachingStream.php b/vendor/guzzlehttp/psr7/src/CachingStream.php deleted file mode 100644 index ed68f086..00000000 --- a/vendor/guzzlehttp/psr7/src/CachingStream.php +++ /dev/null @@ -1,138 +0,0 @@ -remoteStream = $stream; - $this->stream = $target ?: new Stream(fopen('php://temp', 'r+')); - } - - public function getSize() - { - return max($this->stream->getSize(), $this->remoteStream->getSize()); - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - if ($whence == SEEK_SET) { - $byte = $offset; - } elseif ($whence == SEEK_CUR) { - $byte = $offset + $this->tell(); - } elseif ($whence == SEEK_END) { - $size = $this->remoteStream->getSize(); - if ($size === null) { - $size = $this->cacheEntireStream(); - } - $byte = $size + $offset; - } else { - throw new \InvalidArgumentException('Invalid whence'); - } - - $diff = $byte - $this->stream->getSize(); - - if ($diff > 0) { - // Read the remoteStream until we have read in at least the amount - // of bytes requested, or we reach the end of the file. - while ($diff > 0 && !$this->remoteStream->eof()) { - $this->read($diff); - $diff = $byte - $this->stream->getSize(); - } - } else { - // We can just do a normal seek since we've already seen this byte. - $this->stream->seek($byte); - } - } - - public function read($length) - { - // Perform a regular read on any previously read data from the buffer - $data = $this->stream->read($length); - $remaining = $length - strlen($data); - - // More data was requested so read from the remote stream - if ($remaining) { - // If data was written to the buffer in a position that would have - // been filled from the remote stream, then we must skip bytes on - // the remote stream to emulate overwriting bytes from that - // position. This mimics the behavior of other PHP stream wrappers. - $remoteData = $this->remoteStream->read( - $remaining + $this->skipReadBytes - ); - - if ($this->skipReadBytes) { - $len = strlen($remoteData); - $remoteData = substr($remoteData, $this->skipReadBytes); - $this->skipReadBytes = max(0, $this->skipReadBytes - $len); - } - - $data .= $remoteData; - $this->stream->write($remoteData); - } - - return $data; - } - - public function write($string) - { - // When appending to the end of the currently read stream, you'll want - // to skip bytes from being read from the remote stream to emulate - // other stream wrappers. Basically replacing bytes of data of a fixed - // length. - $overflow = (strlen($string) + $this->tell()) - $this->remoteStream->tell(); - if ($overflow > 0) { - $this->skipReadBytes += $overflow; - } - - return $this->stream->write($string); - } - - public function eof() - { - return $this->stream->eof() && $this->remoteStream->eof(); - } - - /** - * Close both the remote stream and buffer stream - */ - public function close() - { - $this->remoteStream->close() && $this->stream->close(); - } - - private function cacheEntireStream() - { - $target = new FnStream(['write' => 'strlen']); - copy_to_stream($this, $target); - - return $this->tell(); - } -} diff --git a/vendor/guzzlehttp/psr7/src/DroppingStream.php b/vendor/guzzlehttp/psr7/src/DroppingStream.php deleted file mode 100644 index 8935c80d..00000000 --- a/vendor/guzzlehttp/psr7/src/DroppingStream.php +++ /dev/null @@ -1,42 +0,0 @@ -stream = $stream; - $this->maxLength = $maxLength; - } - - public function write($string) - { - $diff = $this->maxLength - $this->stream->getSize(); - - // Begin returning 0 when the underlying stream is too large. - if ($diff <= 0) { - return 0; - } - - // Write the stream or a subset of the stream if needed. - if (strlen($string) < $diff) { - return $this->stream->write($string); - } - - return $this->stream->write(substr($string, 0, $diff)); - } -} diff --git a/vendor/guzzlehttp/psr7/src/FnStream.php b/vendor/guzzlehttp/psr7/src/FnStream.php deleted file mode 100644 index cc9b4453..00000000 --- a/vendor/guzzlehttp/psr7/src/FnStream.php +++ /dev/null @@ -1,149 +0,0 @@ -methods = $methods; - - // Create the functions on the class - foreach ($methods as $name => $fn) { - $this->{'_fn_' . $name} = $fn; - } - } - - /** - * Lazily determine which methods are not implemented. - * @throws \BadMethodCallException - */ - public function __get($name) - { - throw new \BadMethodCallException(str_replace('_fn_', '', $name) - . '() is not implemented in the FnStream'); - } - - /** - * The close method is called on the underlying stream only if possible. - */ - public function __destruct() - { - if (isset($this->_fn_close)) { - call_user_func($this->_fn_close); - } - } - - /** - * Adds custom functionality to an underlying stream by intercepting - * specific method calls. - * - * @param StreamInterface $stream Stream to decorate - * @param array $methods Hash of method name to a closure - * - * @return FnStream - */ - public static function decorate(StreamInterface $stream, array $methods) - { - // If any of the required methods were not provided, then simply - // proxy to the decorated stream. - foreach (array_diff(self::$slots, array_keys($methods)) as $diff) { - $methods[$diff] = [$stream, $diff]; - } - - return new self($methods); - } - - public function __toString() - { - return call_user_func($this->_fn___toString); - } - - public function close() - { - return call_user_func($this->_fn_close); - } - - public function detach() - { - return call_user_func($this->_fn_detach); - } - - public function getSize() - { - return call_user_func($this->_fn_getSize); - } - - public function tell() - { - return call_user_func($this->_fn_tell); - } - - public function eof() - { - return call_user_func($this->_fn_eof); - } - - public function isSeekable() - { - return call_user_func($this->_fn_isSeekable); - } - - public function rewind() - { - call_user_func($this->_fn_rewind); - } - - public function seek($offset, $whence = SEEK_SET) - { - call_user_func($this->_fn_seek, $offset, $whence); - } - - public function isWritable() - { - return call_user_func($this->_fn_isWritable); - } - - public function write($string) - { - return call_user_func($this->_fn_write, $string); - } - - public function isReadable() - { - return call_user_func($this->_fn_isReadable); - } - - public function read($length) - { - return call_user_func($this->_fn_read, $length); - } - - public function getContents() - { - return call_user_func($this->_fn_getContents); - } - - public function getMetadata($key = null) - { - return call_user_func($this->_fn_getMetadata, $key); - } -} diff --git a/vendor/guzzlehttp/psr7/src/InflateStream.php b/vendor/guzzlehttp/psr7/src/InflateStream.php deleted file mode 100644 index 0051d3fe..00000000 --- a/vendor/guzzlehttp/psr7/src/InflateStream.php +++ /dev/null @@ -1,52 +0,0 @@ -read(10); - $filenameHeaderLength = $this->getLengthOfPossibleFilenameHeader($stream, $header); - // Skip the header, that is 10 + length of filename + 1 (nil) bytes - $stream = new LimitStream($stream, -1, 10 + $filenameHeaderLength); - $resource = StreamWrapper::getResource($stream); - stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ); - $this->stream = new Stream($resource); - } - - /** - * @param StreamInterface $stream - * @param $header - * @return int - */ - private function getLengthOfPossibleFilenameHeader(StreamInterface $stream, $header) - { - $filename_header_length = 0; - - if (substr(bin2hex($header), 6, 2) === '08') { - // we have a filename, read until nil - $filename_header_length = 1; - while ($stream->read(1) !== chr(0)) { - $filename_header_length++; - } - } - - return $filename_header_length; - } -} diff --git a/vendor/guzzlehttp/psr7/src/LazyOpenStream.php b/vendor/guzzlehttp/psr7/src/LazyOpenStream.php deleted file mode 100644 index 02cec3af..00000000 --- a/vendor/guzzlehttp/psr7/src/LazyOpenStream.php +++ /dev/null @@ -1,39 +0,0 @@ -filename = $filename; - $this->mode = $mode; - } - - /** - * Creates the underlying stream lazily when required. - * - * @return StreamInterface - */ - protected function createStream() - { - return stream_for(try_fopen($this->filename, $this->mode)); - } -} diff --git a/vendor/guzzlehttp/psr7/src/LimitStream.php b/vendor/guzzlehttp/psr7/src/LimitStream.php deleted file mode 100644 index 3c13d4f4..00000000 --- a/vendor/guzzlehttp/psr7/src/LimitStream.php +++ /dev/null @@ -1,155 +0,0 @@ -stream = $stream; - $this->setLimit($limit); - $this->setOffset($offset); - } - - public function eof() - { - // Always return true if the underlying stream is EOF - if ($this->stream->eof()) { - return true; - } - - // No limit and the underlying stream is not at EOF - if ($this->limit == -1) { - return false; - } - - return $this->stream->tell() >= $this->offset + $this->limit; - } - - /** - * Returns the size of the limited subset of data - * {@inheritdoc} - */ - public function getSize() - { - if (null === ($length = $this->stream->getSize())) { - return null; - } elseif ($this->limit == -1) { - return $length - $this->offset; - } else { - return min($this->limit, $length - $this->offset); - } - } - - /** - * Allow for a bounded seek on the read limited stream - * {@inheritdoc} - */ - public function seek($offset, $whence = SEEK_SET) - { - if ($whence !== SEEK_SET || $offset < 0) { - throw new \RuntimeException(sprintf( - 'Cannot seek to offset % with whence %s', - $offset, - $whence - )); - } - - $offset += $this->offset; - - if ($this->limit !== -1) { - if ($offset > $this->offset + $this->limit) { - $offset = $this->offset + $this->limit; - } - } - - $this->stream->seek($offset); - } - - /** - * Give a relative tell() - * {@inheritdoc} - */ - public function tell() - { - return $this->stream->tell() - $this->offset; - } - - /** - * Set the offset to start limiting from - * - * @param int $offset Offset to seek to and begin byte limiting from - * - * @throws \RuntimeException if the stream cannot be seeked. - */ - public function setOffset($offset) - { - $current = $this->stream->tell(); - - if ($current !== $offset) { - // If the stream cannot seek to the offset position, then read to it - if ($this->stream->isSeekable()) { - $this->stream->seek($offset); - } elseif ($current > $offset) { - throw new \RuntimeException("Could not seek to stream offset $offset"); - } else { - $this->stream->read($offset - $current); - } - } - - $this->offset = $offset; - } - - /** - * Set the limit of bytes that the decorator allows to be read from the - * stream. - * - * @param int $limit Number of bytes to allow to be read from the stream. - * Use -1 for no limit. - */ - public function setLimit($limit) - { - $this->limit = $limit; - } - - public function read($length) - { - if ($this->limit == -1) { - return $this->stream->read($length); - } - - // Check if the current position is less than the total allowed - // bytes + original offset - $remaining = ($this->offset + $this->limit) - $this->stream->tell(); - if ($remaining > 0) { - // Only return the amount of requested data, ensuring that the byte - // limit is not exceeded - return $this->stream->read(min($remaining, $length)); - } - - return ''; - } -} diff --git a/vendor/guzzlehttp/psr7/src/MessageTrait.php b/vendor/guzzlehttp/psr7/src/MessageTrait.php deleted file mode 100644 index 1e4da649..00000000 --- a/vendor/guzzlehttp/psr7/src/MessageTrait.php +++ /dev/null @@ -1,183 +0,0 @@ - array of values */ - private $headers = []; - - /** @var array Map of lowercase header name => original name at registration */ - private $headerNames = []; - - /** @var string */ - private $protocol = '1.1'; - - /** @var StreamInterface */ - private $stream; - - public function getProtocolVersion() - { - return $this->protocol; - } - - public function withProtocolVersion($version) - { - if ($this->protocol === $version) { - return $this; - } - - $new = clone $this; - $new->protocol = $version; - return $new; - } - - public function getHeaders() - { - return $this->headers; - } - - public function hasHeader($header) - { - return isset($this->headerNames[strtolower($header)]); - } - - public function getHeader($header) - { - $header = strtolower($header); - - if (!isset($this->headerNames[$header])) { - return []; - } - - $header = $this->headerNames[$header]; - - return $this->headers[$header]; - } - - public function getHeaderLine($header) - { - return implode(', ', $this->getHeader($header)); - } - - public function withHeader($header, $value) - { - if (!is_array($value)) { - $value = [$value]; - } - - $value = $this->trimHeaderValues($value); - $normalized = strtolower($header); - - $new = clone $this; - if (isset($new->headerNames[$normalized])) { - unset($new->headers[$new->headerNames[$normalized]]); - } - $new->headerNames[$normalized] = $header; - $new->headers[$header] = $value; - - return $new; - } - - public function withAddedHeader($header, $value) - { - if (!is_array($value)) { - $value = [$value]; - } - - $value = $this->trimHeaderValues($value); - $normalized = strtolower($header); - - $new = clone $this; - if (isset($new->headerNames[$normalized])) { - $header = $this->headerNames[$normalized]; - $new->headers[$header] = array_merge($this->headers[$header], $value); - } else { - $new->headerNames[$normalized] = $header; - $new->headers[$header] = $value; - } - - return $new; - } - - public function withoutHeader($header) - { - $normalized = strtolower($header); - - if (!isset($this->headerNames[$normalized])) { - return $this; - } - - $header = $this->headerNames[$normalized]; - - $new = clone $this; - unset($new->headers[$header], $new->headerNames[$normalized]); - - return $new; - } - - public function getBody() - { - if (!$this->stream) { - $this->stream = stream_for(''); - } - - return $this->stream; - } - - public function withBody(StreamInterface $body) - { - if ($body === $this->stream) { - return $this; - } - - $new = clone $this; - $new->stream = $body; - return $new; - } - - private function setHeaders(array $headers) - { - $this->headerNames = $this->headers = []; - foreach ($headers as $header => $value) { - if (!is_array($value)) { - $value = [$value]; - } - - $value = $this->trimHeaderValues($value); - $normalized = strtolower($header); - if (isset($this->headerNames[$normalized])) { - $header = $this->headerNames[$normalized]; - $this->headers[$header] = array_merge($this->headers[$header], $value); - } else { - $this->headerNames[$normalized] = $header; - $this->headers[$header] = $value; - } - } - } - - /** - * Trims whitespace from the header values. - * - * Spaces and tabs ought to be excluded by parsers when extracting the field value from a header field. - * - * header-field = field-name ":" OWS field-value OWS - * OWS = *( SP / HTAB ) - * - * @param string[] $values Header values - * - * @return string[] Trimmed header values - * - * @see https://tools.ietf.org/html/rfc7230#section-3.2.4 - */ - private function trimHeaderValues(array $values) - { - return array_map(function ($value) { - return trim($value, " \t"); - }, $values); - } -} diff --git a/vendor/guzzlehttp/psr7/src/MultipartStream.php b/vendor/guzzlehttp/psr7/src/MultipartStream.php deleted file mode 100644 index c0fd584f..00000000 --- a/vendor/guzzlehttp/psr7/src/MultipartStream.php +++ /dev/null @@ -1,153 +0,0 @@ -boundary = $boundary ?: sha1(uniqid('', true)); - $this->stream = $this->createStream($elements); - } - - /** - * Get the boundary - * - * @return string - */ - public function getBoundary() - { - return $this->boundary; - } - - public function isWritable() - { - return false; - } - - /** - * Get the headers needed before transferring the content of a POST file - */ - private function getHeaders(array $headers) - { - $str = ''; - foreach ($headers as $key => $value) { - $str .= "{$key}: {$value}\r\n"; - } - - return "--{$this->boundary}\r\n" . trim($str) . "\r\n\r\n"; - } - - /** - * Create the aggregate stream that will be used to upload the POST data - */ - protected function createStream(array $elements) - { - $stream = new AppendStream(); - - foreach ($elements as $element) { - $this->addElement($stream, $element); - } - - // Add the trailing boundary with CRLF - $stream->addStream(stream_for("--{$this->boundary}--\r\n")); - - return $stream; - } - - private function addElement(AppendStream $stream, array $element) - { - foreach (['contents', 'name'] as $key) { - if (!array_key_exists($key, $element)) { - throw new \InvalidArgumentException("A '{$key}' key is required"); - } - } - - $element['contents'] = stream_for($element['contents']); - - if (empty($element['filename'])) { - $uri = $element['contents']->getMetadata('uri'); - if (substr($uri, 0, 6) !== 'php://') { - $element['filename'] = $uri; - } - } - - list($body, $headers) = $this->createElement( - $element['name'], - $element['contents'], - isset($element['filename']) ? $element['filename'] : null, - isset($element['headers']) ? $element['headers'] : [] - ); - - $stream->addStream(stream_for($this->getHeaders($headers))); - $stream->addStream($body); - $stream->addStream(stream_for("\r\n")); - } - - /** - * @return array - */ - private function createElement($name, StreamInterface $stream, $filename, array $headers) - { - // Set a default content-disposition header if one was no provided - $disposition = $this->getHeader($headers, 'content-disposition'); - if (!$disposition) { - $headers['Content-Disposition'] = ($filename === '0' || $filename) - ? sprintf('form-data; name="%s"; filename="%s"', - $name, - basename($filename)) - : "form-data; name=\"{$name}\""; - } - - // Set a default content-length header if one was no provided - $length = $this->getHeader($headers, 'content-length'); - if (!$length) { - if ($length = $stream->getSize()) { - $headers['Content-Length'] = (string) $length; - } - } - - // Set a default Content-Type if one was not supplied - $type = $this->getHeader($headers, 'content-type'); - if (!$type && ($filename === '0' || $filename)) { - if ($type = mimetype_from_filename($filename)) { - $headers['Content-Type'] = $type; - } - } - - return [$stream, $headers]; - } - - private function getHeader(array $headers, $key) - { - $lowercaseHeader = strtolower($key); - foreach ($headers as $k => $v) { - if (strtolower($k) === $lowercaseHeader) { - return $v; - } - } - - return null; - } -} diff --git a/vendor/guzzlehttp/psr7/src/NoSeekStream.php b/vendor/guzzlehttp/psr7/src/NoSeekStream.php deleted file mode 100644 index 23322180..00000000 --- a/vendor/guzzlehttp/psr7/src/NoSeekStream.php +++ /dev/null @@ -1,22 +0,0 @@ -source = $source; - $this->size = isset($options['size']) ? $options['size'] : null; - $this->metadata = isset($options['metadata']) ? $options['metadata'] : []; - $this->buffer = new BufferStream(); - } - - public function __toString() - { - try { - return copy_to_string($this); - } catch (\Exception $e) { - return ''; - } - } - - public function close() - { - $this->detach(); - } - - public function detach() - { - $this->tellPos = false; - $this->source = null; - } - - public function getSize() - { - return $this->size; - } - - public function tell() - { - return $this->tellPos; - } - - public function eof() - { - return !$this->source; - } - - public function isSeekable() - { - return false; - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - throw new \RuntimeException('Cannot seek a PumpStream'); - } - - public function isWritable() - { - return false; - } - - public function write($string) - { - throw new \RuntimeException('Cannot write to a PumpStream'); - } - - public function isReadable() - { - return true; - } - - public function read($length) - { - $data = $this->buffer->read($length); - $readLen = strlen($data); - $this->tellPos += $readLen; - $remaining = $length - $readLen; - - if ($remaining) { - $this->pump($remaining); - $data .= $this->buffer->read($remaining); - $this->tellPos += strlen($data) - $readLen; - } - - return $data; - } - - public function getContents() - { - $result = ''; - while (!$this->eof()) { - $result .= $this->read(1000000); - } - - return $result; - } - - public function getMetadata($key = null) - { - if (!$key) { - return $this->metadata; - } - - return isset($this->metadata[$key]) ? $this->metadata[$key] : null; - } - - private function pump($length) - { - if ($this->source) { - do { - $data = call_user_func($this->source, $length); - if ($data === false || $data === null) { - $this->source = null; - return; - } - $this->buffer->write($data); - $length -= strlen($data); - } while ($length > 0); - } - } -} diff --git a/vendor/guzzlehttp/psr7/src/Request.php b/vendor/guzzlehttp/psr7/src/Request.php deleted file mode 100644 index 08285484..00000000 --- a/vendor/guzzlehttp/psr7/src/Request.php +++ /dev/null @@ -1,142 +0,0 @@ -method = strtoupper($method); - $this->uri = $uri; - $this->setHeaders($headers); - $this->protocol = $version; - - if (!$this->hasHeader('Host')) { - $this->updateHostFromUri(); - } - - if ($body !== '' && $body !== null) { - $this->stream = stream_for($body); - } - } - - public function getRequestTarget() - { - if ($this->requestTarget !== null) { - return $this->requestTarget; - } - - $target = $this->uri->getPath(); - if ($target == '') { - $target = '/'; - } - if ($this->uri->getQuery() != '') { - $target .= '?' . $this->uri->getQuery(); - } - - return $target; - } - - public function withRequestTarget($requestTarget) - { - if (preg_match('#\s#', $requestTarget)) { - throw new InvalidArgumentException( - 'Invalid request target provided; cannot contain whitespace' - ); - } - - $new = clone $this; - $new->requestTarget = $requestTarget; - return $new; - } - - public function getMethod() - { - return $this->method; - } - - public function withMethod($method) - { - $new = clone $this; - $new->method = strtoupper($method); - return $new; - } - - public function getUri() - { - return $this->uri; - } - - public function withUri(UriInterface $uri, $preserveHost = false) - { - if ($uri === $this->uri) { - return $this; - } - - $new = clone $this; - $new->uri = $uri; - - if (!$preserveHost) { - $new->updateHostFromUri(); - } - - return $new; - } - - private function updateHostFromUri() - { - $host = $this->uri->getHost(); - - if ($host == '') { - return; - } - - if (($port = $this->uri->getPort()) !== null) { - $host .= ':' . $port; - } - - if (isset($this->headerNames['host'])) { - $header = $this->headerNames['host']; - } else { - $header = 'Host'; - $this->headerNames['host'] = 'Host'; - } - // Ensure Host is the first header. - // See: http://tools.ietf.org/html/rfc7230#section-5.4 - $this->headers = [$header => [$host]] + $this->headers; - } -} diff --git a/vendor/guzzlehttp/psr7/src/Response.php b/vendor/guzzlehttp/psr7/src/Response.php deleted file mode 100644 index 2830c6c9..00000000 --- a/vendor/guzzlehttp/psr7/src/Response.php +++ /dev/null @@ -1,132 +0,0 @@ - 'Continue', - 101 => 'Switching Protocols', - 102 => 'Processing', - 200 => 'OK', - 201 => 'Created', - 202 => 'Accepted', - 203 => 'Non-Authoritative Information', - 204 => 'No Content', - 205 => 'Reset Content', - 206 => 'Partial Content', - 207 => 'Multi-status', - 208 => 'Already Reported', - 300 => 'Multiple Choices', - 301 => 'Moved Permanently', - 302 => 'Found', - 303 => 'See Other', - 304 => 'Not Modified', - 305 => 'Use Proxy', - 306 => 'Switch Proxy', - 307 => 'Temporary Redirect', - 400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Time-out', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Large', - 415 => 'Unsupported Media Type', - 416 => 'Requested range not satisfiable', - 417 => 'Expectation Failed', - 418 => 'I\'m a teapot', - 422 => 'Unprocessable Entity', - 423 => 'Locked', - 424 => 'Failed Dependency', - 425 => 'Unordered Collection', - 426 => 'Upgrade Required', - 428 => 'Precondition Required', - 429 => 'Too Many Requests', - 431 => 'Request Header Fields Too Large', - 451 => 'Unavailable For Legal Reasons', - 500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Time-out', - 505 => 'HTTP Version not supported', - 506 => 'Variant Also Negotiates', - 507 => 'Insufficient Storage', - 508 => 'Loop Detected', - 511 => 'Network Authentication Required', - ]; - - /** @var string */ - private $reasonPhrase = ''; - - /** @var int */ - private $statusCode = 200; - - /** - * @param int $status Status code - * @param array $headers Response headers - * @param string|null|resource|StreamInterface $body Response body - * @param string $version Protocol version - * @param string|null $reason Reason phrase (when empty a default will be used based on the status code) - */ - public function __construct( - $status = 200, - array $headers = [], - $body = null, - $version = '1.1', - $reason = null - ) { - $this->statusCode = (int) $status; - - if ($body !== '' && $body !== null) { - $this->stream = stream_for($body); - } - - $this->setHeaders($headers); - if ($reason == '' && isset(self::$phrases[$this->statusCode])) { - $this->reasonPhrase = self::$phrases[$this->statusCode]; - } else { - $this->reasonPhrase = (string) $reason; - } - - $this->protocol = $version; - } - - public function getStatusCode() - { - return $this->statusCode; - } - - public function getReasonPhrase() - { - return $this->reasonPhrase; - } - - public function withStatus($code, $reasonPhrase = '') - { - $new = clone $this; - $new->statusCode = (int) $code; - if ($reasonPhrase == '' && isset(self::$phrases[$new->statusCode])) { - $reasonPhrase = self::$phrases[$new->statusCode]; - } - $new->reasonPhrase = $reasonPhrase; - return $new; - } -} diff --git a/vendor/guzzlehttp/psr7/src/ServerRequest.php b/vendor/guzzlehttp/psr7/src/ServerRequest.php deleted file mode 100644 index 575aab84..00000000 --- a/vendor/guzzlehttp/psr7/src/ServerRequest.php +++ /dev/null @@ -1,358 +0,0 @@ -serverParams = $serverParams; - - parent::__construct($method, $uri, $headers, $body, $version); - } - - /** - * Return an UploadedFile instance array. - * - * @param array $files A array which respect $_FILES structure - * @throws InvalidArgumentException for unrecognized values - * @return array - */ - public static function normalizeFiles(array $files) - { - $normalized = []; - - foreach ($files as $key => $value) { - if ($value instanceof UploadedFileInterface) { - $normalized[$key] = $value; - } elseif (is_array($value) && isset($value['tmp_name'])) { - $normalized[$key] = self::createUploadedFileFromSpec($value); - } elseif (is_array($value)) { - $normalized[$key] = self::normalizeFiles($value); - continue; - } else { - throw new InvalidArgumentException('Invalid value in files specification'); - } - } - - return $normalized; - } - - /** - * Create and return an UploadedFile instance from a $_FILES specification. - * - * If the specification represents an array of values, this method will - * delegate to normalizeNestedFileSpec() and return that return value. - * - * @param array $value $_FILES struct - * @return array|UploadedFileInterface - */ - private static function createUploadedFileFromSpec(array $value) - { - if (is_array($value['tmp_name'])) { - return self::normalizeNestedFileSpec($value); - } - - return new UploadedFile( - $value['tmp_name'], - (int) $value['size'], - (int) $value['error'], - $value['name'], - $value['type'] - ); - } - - /** - * Normalize an array of file specifications. - * - * Loops through all nested files and returns a normalized array of - * UploadedFileInterface instances. - * - * @param array $files - * @return UploadedFileInterface[] - */ - private static function normalizeNestedFileSpec(array $files = []) - { - $normalizedFiles = []; - - foreach (array_keys($files['tmp_name']) as $key) { - $spec = [ - 'tmp_name' => $files['tmp_name'][$key], - 'size' => $files['size'][$key], - 'error' => $files['error'][$key], - 'name' => $files['name'][$key], - 'type' => $files['type'][$key], - ]; - $normalizedFiles[$key] = self::createUploadedFileFromSpec($spec); - } - - return $normalizedFiles; - } - - /** - * Return a ServerRequest populated with superglobals: - * $_GET - * $_POST - * $_COOKIE - * $_FILES - * $_SERVER - * - * @return ServerRequestInterface - */ - public static function fromGlobals() - { - $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET'; - $headers = function_exists('getallheaders') ? getallheaders() : []; - $uri = self::getUriFromGlobals(); - $body = new LazyOpenStream('php://input', 'r+'); - $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? str_replace('HTTP/', '', $_SERVER['SERVER_PROTOCOL']) : '1.1'; - - $serverRequest = new ServerRequest($method, $uri, $headers, $body, $protocol, $_SERVER); - - return $serverRequest - ->withCookieParams($_COOKIE) - ->withQueryParams($_GET) - ->withParsedBody($_POST) - ->withUploadedFiles(self::normalizeFiles($_FILES)); - } - - /** - * Get a Uri populated with values from $_SERVER. - * - * @return UriInterface - */ - public static function getUriFromGlobals() { - $uri = new Uri(''); - - $uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http'); - - $hasPort = false; - if (isset($_SERVER['HTTP_HOST'])) { - $hostHeaderParts = explode(':', $_SERVER['HTTP_HOST']); - $uri = $uri->withHost($hostHeaderParts[0]); - if (isset($hostHeaderParts[1])) { - $hasPort = true; - $uri = $uri->withPort($hostHeaderParts[1]); - } - } elseif (isset($_SERVER['SERVER_NAME'])) { - $uri = $uri->withHost($_SERVER['SERVER_NAME']); - } elseif (isset($_SERVER['SERVER_ADDR'])) { - $uri = $uri->withHost($_SERVER['SERVER_ADDR']); - } - - if (!$hasPort && isset($_SERVER['SERVER_PORT'])) { - $uri = $uri->withPort($_SERVER['SERVER_PORT']); - } - - $hasQuery = false; - if (isset($_SERVER['REQUEST_URI'])) { - $requestUriParts = explode('?', $_SERVER['REQUEST_URI']); - $uri = $uri->withPath($requestUriParts[0]); - if (isset($requestUriParts[1])) { - $hasQuery = true; - $uri = $uri->withQuery($requestUriParts[1]); - } - } - - if (!$hasQuery && isset($_SERVER['QUERY_STRING'])) { - $uri = $uri->withQuery($_SERVER['QUERY_STRING']); - } - - return $uri; - } - - - /** - * {@inheritdoc} - */ - public function getServerParams() - { - return $this->serverParams; - } - - /** - * {@inheritdoc} - */ - public function getUploadedFiles() - { - return $this->uploadedFiles; - } - - /** - * {@inheritdoc} - */ - public function withUploadedFiles(array $uploadedFiles) - { - $new = clone $this; - $new->uploadedFiles = $uploadedFiles; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function getCookieParams() - { - return $this->cookieParams; - } - - /** - * {@inheritdoc} - */ - public function withCookieParams(array $cookies) - { - $new = clone $this; - $new->cookieParams = $cookies; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function getQueryParams() - { - return $this->queryParams; - } - - /** - * {@inheritdoc} - */ - public function withQueryParams(array $query) - { - $new = clone $this; - $new->queryParams = $query; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function getParsedBody() - { - return $this->parsedBody; - } - - /** - * {@inheritdoc} - */ - public function withParsedBody($data) - { - $new = clone $this; - $new->parsedBody = $data; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function getAttributes() - { - return $this->attributes; - } - - /** - * {@inheritdoc} - */ - public function getAttribute($attribute, $default = null) - { - if (false === array_key_exists($attribute, $this->attributes)) { - return $default; - } - - return $this->attributes[$attribute]; - } - - /** - * {@inheritdoc} - */ - public function withAttribute($attribute, $value) - { - $new = clone $this; - $new->attributes[$attribute] = $value; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function withoutAttribute($attribute) - { - if (false === array_key_exists($attribute, $this->attributes)) { - return $this; - } - - $new = clone $this; - unset($new->attributes[$attribute]); - - return $new; - } -} diff --git a/vendor/guzzlehttp/psr7/src/Stream.php b/vendor/guzzlehttp/psr7/src/Stream.php deleted file mode 100644 index e3366287..00000000 --- a/vendor/guzzlehttp/psr7/src/Stream.php +++ /dev/null @@ -1,257 +0,0 @@ - [ - 'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true, - 'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true, - 'c+b' => true, 'rt' => true, 'w+t' => true, 'r+t' => true, - 'x+t' => true, 'c+t' => true, 'a+' => true - ], - 'write' => [ - 'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true, - 'c+' => true, 'wb' => true, 'w+b' => true, 'r+b' => true, - 'x+b' => true, 'c+b' => true, 'w+t' => true, 'r+t' => true, - 'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true - ] - ]; - - /** - * This constructor accepts an associative array of options. - * - * - size: (int) If a read stream would otherwise have an indeterminate - * size, but the size is known due to foreknowledge, then you can - * provide that size, in bytes. - * - metadata: (array) Any additional metadata to return when the metadata - * of the stream is accessed. - * - * @param resource $stream Stream resource to wrap. - * @param array $options Associative array of options. - * - * @throws \InvalidArgumentException if the stream is not a stream resource - */ - public function __construct($stream, $options = []) - { - if (!is_resource($stream)) { - throw new \InvalidArgumentException('Stream must be a resource'); - } - - if (isset($options['size'])) { - $this->size = $options['size']; - } - - $this->customMetadata = isset($options['metadata']) - ? $options['metadata'] - : []; - - $this->stream = $stream; - $meta = stream_get_meta_data($this->stream); - $this->seekable = $meta['seekable']; - $this->readable = isset(self::$readWriteHash['read'][$meta['mode']]); - $this->writable = isset(self::$readWriteHash['write'][$meta['mode']]); - $this->uri = $this->getMetadata('uri'); - } - - public function __get($name) - { - if ($name == 'stream') { - throw new \RuntimeException('The stream is detached'); - } - - throw new \BadMethodCallException('No value for ' . $name); - } - - /** - * Closes the stream when the destructed - */ - public function __destruct() - { - $this->close(); - } - - public function __toString() - { - try { - $this->seek(0); - return (string) stream_get_contents($this->stream); - } catch (\Exception $e) { - return ''; - } - } - - public function getContents() - { - $contents = stream_get_contents($this->stream); - - if ($contents === false) { - throw new \RuntimeException('Unable to read stream contents'); - } - - return $contents; - } - - public function close() - { - if (isset($this->stream)) { - if (is_resource($this->stream)) { - fclose($this->stream); - } - $this->detach(); - } - } - - public function detach() - { - if (!isset($this->stream)) { - return null; - } - - $result = $this->stream; - unset($this->stream); - $this->size = $this->uri = null; - $this->readable = $this->writable = $this->seekable = false; - - return $result; - } - - public function getSize() - { - if ($this->size !== null) { - return $this->size; - } - - if (!isset($this->stream)) { - return null; - } - - // Clear the stat cache if the stream has a URI - if ($this->uri) { - clearstatcache(true, $this->uri); - } - - $stats = fstat($this->stream); - if (isset($stats['size'])) { - $this->size = $stats['size']; - return $this->size; - } - - return null; - } - - public function isReadable() - { - return $this->readable; - } - - public function isWritable() - { - return $this->writable; - } - - public function isSeekable() - { - return $this->seekable; - } - - public function eof() - { - return !$this->stream || feof($this->stream); - } - - public function tell() - { - $result = ftell($this->stream); - - if ($result === false) { - throw new \RuntimeException('Unable to determine stream position'); - } - - return $result; - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - if (!$this->seekable) { - throw new \RuntimeException('Stream is not seekable'); - } elseif (fseek($this->stream, $offset, $whence) === -1) { - throw new \RuntimeException('Unable to seek to stream position ' - . $offset . ' with whence ' . var_export($whence, true)); - } - } - - public function read($length) - { - if (!$this->readable) { - throw new \RuntimeException('Cannot read from non-readable stream'); - } - if ($length < 0) { - throw new \RuntimeException('Length parameter cannot be negative'); - } - - if (0 === $length) { - return ''; - } - - $string = fread($this->stream, $length); - if (false === $string) { - throw new \RuntimeException('Unable to read from stream'); - } - - return $string; - } - - public function write($string) - { - if (!$this->writable) { - throw new \RuntimeException('Cannot write to a non-writable stream'); - } - - // We can't know the size after writing anything - $this->size = null; - $result = fwrite($this->stream, $string); - - if ($result === false) { - throw new \RuntimeException('Unable to write to stream'); - } - - return $result; - } - - public function getMetadata($key = null) - { - if (!isset($this->stream)) { - return $key ? null : []; - } elseif (!$key) { - return $this->customMetadata + stream_get_meta_data($this->stream); - } elseif (isset($this->customMetadata[$key])) { - return $this->customMetadata[$key]; - } - - $meta = stream_get_meta_data($this->stream); - - return isset($meta[$key]) ? $meta[$key] : null; - } -} diff --git a/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php b/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php deleted file mode 100644 index daec6f52..00000000 --- a/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php +++ /dev/null @@ -1,149 +0,0 @@ -stream = $stream; - } - - /** - * Magic method used to create a new stream if streams are not added in - * the constructor of a decorator (e.g., LazyOpenStream). - * - * @param string $name Name of the property (allows "stream" only). - * - * @return StreamInterface - */ - public function __get($name) - { - if ($name == 'stream') { - $this->stream = $this->createStream(); - return $this->stream; - } - - throw new \UnexpectedValueException("$name not found on class"); - } - - public function __toString() - { - try { - if ($this->isSeekable()) { - $this->seek(0); - } - return $this->getContents(); - } catch (\Exception $e) { - // Really, PHP? https://bugs.php.net/bug.php?id=53648 - trigger_error('StreamDecorator::__toString exception: ' - . (string) $e, E_USER_ERROR); - return ''; - } - } - - public function getContents() - { - return copy_to_string($this); - } - - /** - * Allow decorators to implement custom methods - * - * @param string $method Missing method name - * @param array $args Method arguments - * - * @return mixed - */ - public function __call($method, array $args) - { - $result = call_user_func_array([$this->stream, $method], $args); - - // Always return the wrapped object if the result is a return $this - return $result === $this->stream ? $this : $result; - } - - public function close() - { - $this->stream->close(); - } - - public function getMetadata($key = null) - { - return $this->stream->getMetadata($key); - } - - public function detach() - { - return $this->stream->detach(); - } - - public function getSize() - { - return $this->stream->getSize(); - } - - public function eof() - { - return $this->stream->eof(); - } - - public function tell() - { - return $this->stream->tell(); - } - - public function isReadable() - { - return $this->stream->isReadable(); - } - - public function isWritable() - { - return $this->stream->isWritable(); - } - - public function isSeekable() - { - return $this->stream->isSeekable(); - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - $this->stream->seek($offset, $whence); - } - - public function read($length) - { - return $this->stream->read($length); - } - - public function write($string) - { - return $this->stream->write($string); - } - - /** - * Implement in subclasses to dynamically create streams when requested. - * - * @return StreamInterface - * @throws \BadMethodCallException - */ - protected function createStream() - { - throw new \BadMethodCallException('Not implemented'); - } -} diff --git a/vendor/guzzlehttp/psr7/src/StreamWrapper.php b/vendor/guzzlehttp/psr7/src/StreamWrapper.php deleted file mode 100644 index cf7b2232..00000000 --- a/vendor/guzzlehttp/psr7/src/StreamWrapper.php +++ /dev/null @@ -1,121 +0,0 @@ -isReadable()) { - $mode = $stream->isWritable() ? 'r+' : 'r'; - } elseif ($stream->isWritable()) { - $mode = 'w'; - } else { - throw new \InvalidArgumentException('The stream must be readable, ' - . 'writable, or both.'); - } - - return fopen('guzzle://stream', $mode, null, stream_context_create([ - 'guzzle' => ['stream' => $stream] - ])); - } - - /** - * Registers the stream wrapper if needed - */ - public static function register() - { - if (!in_array('guzzle', stream_get_wrappers())) { - stream_wrapper_register('guzzle', __CLASS__); - } - } - - public function stream_open($path, $mode, $options, &$opened_path) - { - $options = stream_context_get_options($this->context); - - if (!isset($options['guzzle']['stream'])) { - return false; - } - - $this->mode = $mode; - $this->stream = $options['guzzle']['stream']; - - return true; - } - - public function stream_read($count) - { - return $this->stream->read($count); - } - - public function stream_write($data) - { - return (int) $this->stream->write($data); - } - - public function stream_tell() - { - return $this->stream->tell(); - } - - public function stream_eof() - { - return $this->stream->eof(); - } - - public function stream_seek($offset, $whence) - { - $this->stream->seek($offset, $whence); - - return true; - } - - public function stream_stat() - { - static $modeMap = [ - 'r' => 33060, - 'r+' => 33206, - 'w' => 33188 - ]; - - return [ - 'dev' => 0, - 'ino' => 0, - 'mode' => $modeMap[$this->mode], - 'nlink' => 0, - 'uid' => 0, - 'gid' => 0, - 'rdev' => 0, - 'size' => $this->stream->getSize() ?: 0, - 'atime' => 0, - 'mtime' => 0, - 'ctime' => 0, - 'blksize' => 0, - 'blocks' => 0 - ]; - } -} diff --git a/vendor/guzzlehttp/psr7/src/UploadedFile.php b/vendor/guzzlehttp/psr7/src/UploadedFile.php deleted file mode 100644 index e62bd5c8..00000000 --- a/vendor/guzzlehttp/psr7/src/UploadedFile.php +++ /dev/null @@ -1,316 +0,0 @@ -setError($errorStatus); - $this->setSize($size); - $this->setClientFilename($clientFilename); - $this->setClientMediaType($clientMediaType); - - if ($this->isOk()) { - $this->setStreamOrFile($streamOrFile); - } - } - - /** - * Depending on the value set file or stream variable - * - * @param mixed $streamOrFile - * @throws InvalidArgumentException - */ - private function setStreamOrFile($streamOrFile) - { - if (is_string($streamOrFile)) { - $this->file = $streamOrFile; - } elseif (is_resource($streamOrFile)) { - $this->stream = new Stream($streamOrFile); - } elseif ($streamOrFile instanceof StreamInterface) { - $this->stream = $streamOrFile; - } else { - throw new InvalidArgumentException( - 'Invalid stream or file provided for UploadedFile' - ); - } - } - - /** - * @param int $error - * @throws InvalidArgumentException - */ - private function setError($error) - { - if (false === is_int($error)) { - throw new InvalidArgumentException( - 'Upload file error status must be an integer' - ); - } - - if (false === in_array($error, UploadedFile::$errors)) { - throw new InvalidArgumentException( - 'Invalid error status for UploadedFile' - ); - } - - $this->error = $error; - } - - /** - * @param int $size - * @throws InvalidArgumentException - */ - private function setSize($size) - { - if (false === is_int($size)) { - throw new InvalidArgumentException( - 'Upload file size must be an integer' - ); - } - - $this->size = $size; - } - - /** - * @param mixed $param - * @return boolean - */ - private function isStringOrNull($param) - { - return in_array(gettype($param), ['string', 'NULL']); - } - - /** - * @param mixed $param - * @return boolean - */ - private function isStringNotEmpty($param) - { - return is_string($param) && false === empty($param); - } - - /** - * @param string|null $clientFilename - * @throws InvalidArgumentException - */ - private function setClientFilename($clientFilename) - { - if (false === $this->isStringOrNull($clientFilename)) { - throw new InvalidArgumentException( - 'Upload file client filename must be a string or null' - ); - } - - $this->clientFilename = $clientFilename; - } - - /** - * @param string|null $clientMediaType - * @throws InvalidArgumentException - */ - private function setClientMediaType($clientMediaType) - { - if (false === $this->isStringOrNull($clientMediaType)) { - throw new InvalidArgumentException( - 'Upload file client media type must be a string or null' - ); - } - - $this->clientMediaType = $clientMediaType; - } - - /** - * Return true if there is no upload error - * - * @return boolean - */ - private function isOk() - { - return $this->error === UPLOAD_ERR_OK; - } - - /** - * @return boolean - */ - public function isMoved() - { - return $this->moved; - } - - /** - * @throws RuntimeException if is moved or not ok - */ - private function validateActive() - { - if (false === $this->isOk()) { - throw new RuntimeException('Cannot retrieve stream due to upload error'); - } - - if ($this->isMoved()) { - throw new RuntimeException('Cannot retrieve stream after it has already been moved'); - } - } - - /** - * {@inheritdoc} - * @throws RuntimeException if the upload was not successful. - */ - public function getStream() - { - $this->validateActive(); - - if ($this->stream instanceof StreamInterface) { - return $this->stream; - } - - return new LazyOpenStream($this->file, 'r+'); - } - - /** - * {@inheritdoc} - * - * @see http://php.net/is_uploaded_file - * @see http://php.net/move_uploaded_file - * @param string $targetPath Path to which to move the uploaded file. - * @throws RuntimeException if the upload was not successful. - * @throws InvalidArgumentException if the $path specified is invalid. - * @throws RuntimeException on any error during the move operation, or on - * the second or subsequent call to the method. - */ - public function moveTo($targetPath) - { - $this->validateActive(); - - if (false === $this->isStringNotEmpty($targetPath)) { - throw new InvalidArgumentException( - 'Invalid path provided for move operation; must be a non-empty string' - ); - } - - if ($this->file) { - $this->moved = php_sapi_name() == 'cli' - ? rename($this->file, $targetPath) - : move_uploaded_file($this->file, $targetPath); - } else { - copy_to_stream( - $this->getStream(), - new LazyOpenStream($targetPath, 'w') - ); - - $this->moved = true; - } - - if (false === $this->moved) { - throw new RuntimeException( - sprintf('Uploaded file could not be moved to %s', $targetPath) - ); - } - } - - /** - * {@inheritdoc} - * - * @return int|null The file size in bytes or null if unknown. - */ - public function getSize() - { - return $this->size; - } - - /** - * {@inheritdoc} - * - * @see http://php.net/manual/en/features.file-upload.errors.php - * @return int One of PHP's UPLOAD_ERR_XXX constants. - */ - public function getError() - { - return $this->error; - } - - /** - * {@inheritdoc} - * - * @return string|null The filename sent by the client or null if none - * was provided. - */ - public function getClientFilename() - { - return $this->clientFilename; - } - - /** - * {@inheritdoc} - */ - public function getClientMediaType() - { - return $this->clientMediaType; - } -} diff --git a/vendor/guzzlehttp/psr7/src/Uri.php b/vendor/guzzlehttp/psr7/src/Uri.php deleted file mode 100644 index f46c1db9..00000000 --- a/vendor/guzzlehttp/psr7/src/Uri.php +++ /dev/null @@ -1,702 +0,0 @@ - 80, - 'https' => 443, - 'ftp' => 21, - 'gopher' => 70, - 'nntp' => 119, - 'news' => 119, - 'telnet' => 23, - 'tn3270' => 23, - 'imap' => 143, - 'pop' => 110, - 'ldap' => 389, - ]; - - private static $charUnreserved = 'a-zA-Z0-9_\-\.~'; - private static $charSubDelims = '!\$&\'\(\)\*\+,;='; - private static $replaceQuery = ['=' => '%3D', '&' => '%26']; - - /** @var string Uri scheme. */ - private $scheme = ''; - - /** @var string Uri user info. */ - private $userInfo = ''; - - /** @var string Uri host. */ - private $host = ''; - - /** @var int|null Uri port. */ - private $port; - - /** @var string Uri path. */ - private $path = ''; - - /** @var string Uri query string. */ - private $query = ''; - - /** @var string Uri fragment. */ - private $fragment = ''; - - /** - * @param string $uri URI to parse - */ - public function __construct($uri = '') - { - // weak type check to also accept null until we can add scalar type hints - if ($uri != '') { - $parts = parse_url($uri); - if ($parts === false) { - throw new \InvalidArgumentException("Unable to parse URI: $uri"); - } - $this->applyParts($parts); - } - } - - public function __toString() - { - return self::composeComponents( - $this->scheme, - $this->getAuthority(), - $this->path, - $this->query, - $this->fragment - ); - } - - /** - * Composes a URI reference string from its various components. - * - * Usually this method does not need to be called manually but instead is used indirectly via - * `Psr\Http\Message\UriInterface::__toString`. - * - * PSR-7 UriInterface treats an empty component the same as a missing component as - * getQuery(), getFragment() etc. always return a string. This explains the slight - * difference to RFC 3986 Section 5.3. - * - * Another adjustment is that the authority separator is added even when the authority is missing/empty - * for the "file" scheme. This is because PHP stream functions like `file_get_contents` only work with - * `file:///myfile` but not with `file:/myfile` although they are equivalent according to RFC 3986. But - * `file:///` is the more common syntax for the file scheme anyway (Chrome for example redirects to - * that format). - * - * @param string $scheme - * @param string $authority - * @param string $path - * @param string $query - * @param string $fragment - * - * @return string - * - * @link https://tools.ietf.org/html/rfc3986#section-5.3 - */ - public static function composeComponents($scheme, $authority, $path, $query, $fragment) - { - $uri = ''; - - // weak type checks to also accept null until we can add scalar type hints - if ($scheme != '') { - $uri .= $scheme . ':'; - } - - if ($authority != ''|| $scheme === 'file') { - $uri .= '//' . $authority; - } - - $uri .= $path; - - if ($query != '') { - $uri .= '?' . $query; - } - - if ($fragment != '') { - $uri .= '#' . $fragment; - } - - return $uri; - } - - /** - * Whether the URI has the default port of the current scheme. - * - * `Psr\Http\Message\UriInterface::getPort` may return null or the standard port. This method can be used - * independently of the implementation. - * - * @param UriInterface $uri - * - * @return bool - */ - public static function isDefaultPort(UriInterface $uri) - { - return $uri->getPort() === null - || (isset(self::$defaultPorts[$uri->getScheme()]) && $uri->getPort() === self::$defaultPorts[$uri->getScheme()]); - } - - /** - * Whether the URI is absolute, i.e. it has a scheme. - * - * An instance of UriInterface can either be an absolute URI or a relative reference. This method returns true - * if it is the former. An absolute URI has a scheme. A relative reference is used to express a URI relative - * to another URI, the base URI. Relative references can be divided into several forms: - * - network-path references, e.g. '//example.com/path' - * - absolute-path references, e.g. '/path' - * - relative-path references, e.g. 'subpath' - * - * @param UriInterface $uri - * - * @return bool - * @see Uri::isNetworkPathReference - * @see Uri::isAbsolutePathReference - * @see Uri::isRelativePathReference - * @link https://tools.ietf.org/html/rfc3986#section-4 - */ - public static function isAbsolute(UriInterface $uri) - { - return $uri->getScheme() !== ''; - } - - /** - * Whether the URI is a network-path reference. - * - * A relative reference that begins with two slash characters is termed an network-path reference. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isNetworkPathReference(UriInterface $uri) - { - return $uri->getScheme() === '' && $uri->getAuthority() !== ''; - } - - /** - * Whether the URI is a absolute-path reference. - * - * A relative reference that begins with a single slash character is termed an absolute-path reference. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isAbsolutePathReference(UriInterface $uri) - { - return $uri->getScheme() === '' - && $uri->getAuthority() === '' - && isset($uri->getPath()[0]) - && $uri->getPath()[0] === '/'; - } - - /** - * Whether the URI is a relative-path reference. - * - * A relative reference that does not begin with a slash character is termed a relative-path reference. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isRelativePathReference(UriInterface $uri) - { - return $uri->getScheme() === '' - && $uri->getAuthority() === '' - && (!isset($uri->getPath()[0]) || $uri->getPath()[0] !== '/'); - } - - /** - * Whether the URI is a same-document reference. - * - * A same-document reference refers to a URI that is, aside from its fragment - * component, identical to the base URI. When no base URI is given, only an empty - * URI reference (apart from its fragment) is considered a same-document reference. - * - * @param UriInterface $uri The URI to check - * @param UriInterface|null $base An optional base URI to compare against - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.4 - */ - public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null) - { - if ($base !== null) { - $uri = UriResolver::resolve($base, $uri); - - return ($uri->getScheme() === $base->getScheme()) - && ($uri->getAuthority() === $base->getAuthority()) - && ($uri->getPath() === $base->getPath()) - && ($uri->getQuery() === $base->getQuery()); - } - - return $uri->getScheme() === '' && $uri->getAuthority() === '' && $uri->getPath() === '' && $uri->getQuery() === ''; - } - - /** - * Removes dot segments from a path and returns the new path. - * - * @param string $path - * - * @return string - * - * @deprecated since version 1.4. Use UriResolver::removeDotSegments instead. - * @see UriResolver::removeDotSegments - */ - public static function removeDotSegments($path) - { - return UriResolver::removeDotSegments($path); - } - - /** - * Converts the relative URI into a new URI that is resolved against the base URI. - * - * @param UriInterface $base Base URI - * @param string|UriInterface $rel Relative URI - * - * @return UriInterface - * - * @deprecated since version 1.4. Use UriResolver::resolve instead. - * @see UriResolver::resolve - */ - public static function resolve(UriInterface $base, $rel) - { - if (!($rel instanceof UriInterface)) { - $rel = new self($rel); - } - - return UriResolver::resolve($base, $rel); - } - - /** - * Creates a new URI with a specific query string value removed. - * - * Any existing query string values that exactly match the provided key are - * removed. - * - * @param UriInterface $uri URI to use as a base. - * @param string $key Query string key to remove. - * - * @return UriInterface - */ - public static function withoutQueryValue(UriInterface $uri, $key) - { - $current = $uri->getQuery(); - if ($current === '') { - return $uri; - } - - $decodedKey = rawurldecode($key); - $result = array_filter(explode('&', $current), function ($part) use ($decodedKey) { - return rawurldecode(explode('=', $part)[0]) !== $decodedKey; - }); - - return $uri->withQuery(implode('&', $result)); - } - - /** - * Creates a new URI with a specific query string value. - * - * Any existing query string values that exactly match the provided key are - * removed and replaced with the given key value pair. - * - * A value of null will set the query string key without a value, e.g. "key" - * instead of "key=value". - * - * @param UriInterface $uri URI to use as a base. - * @param string $key Key to set. - * @param string|null $value Value to set - * - * @return UriInterface - */ - public static function withQueryValue(UriInterface $uri, $key, $value) - { - $current = $uri->getQuery(); - - if ($current === '') { - $result = []; - } else { - $decodedKey = rawurldecode($key); - $result = array_filter(explode('&', $current), function ($part) use ($decodedKey) { - return rawurldecode(explode('=', $part)[0]) !== $decodedKey; - }); - } - - // Query string separators ("=", "&") within the key or value need to be encoded - // (while preventing double-encoding) before setting the query string. All other - // chars that need percent-encoding will be encoded by withQuery(). - $key = strtr($key, self::$replaceQuery); - - if ($value !== null) { - $result[] = $key . '=' . strtr($value, self::$replaceQuery); - } else { - $result[] = $key; - } - - return $uri->withQuery(implode('&', $result)); - } - - /** - * Creates a URI from a hash of `parse_url` components. - * - * @param array $parts - * - * @return UriInterface - * @link http://php.net/manual/en/function.parse-url.php - * - * @throws \InvalidArgumentException If the components do not form a valid URI. - */ - public static function fromParts(array $parts) - { - $uri = new self(); - $uri->applyParts($parts); - $uri->validateState(); - - return $uri; - } - - public function getScheme() - { - return $this->scheme; - } - - public function getAuthority() - { - $authority = $this->host; - if ($this->userInfo !== '') { - $authority = $this->userInfo . '@' . $authority; - } - - if ($this->port !== null) { - $authority .= ':' . $this->port; - } - - return $authority; - } - - public function getUserInfo() - { - return $this->userInfo; - } - - public function getHost() - { - return $this->host; - } - - public function getPort() - { - return $this->port; - } - - public function getPath() - { - return $this->path; - } - - public function getQuery() - { - return $this->query; - } - - public function getFragment() - { - return $this->fragment; - } - - public function withScheme($scheme) - { - $scheme = $this->filterScheme($scheme); - - if ($this->scheme === $scheme) { - return $this; - } - - $new = clone $this; - $new->scheme = $scheme; - $new->removeDefaultPort(); - $new->validateState(); - - return $new; - } - - public function withUserInfo($user, $password = null) - { - $info = $user; - if ($password != '') { - $info .= ':' . $password; - } - - if ($this->userInfo === $info) { - return $this; - } - - $new = clone $this; - $new->userInfo = $info; - $new->validateState(); - - return $new; - } - - public function withHost($host) - { - $host = $this->filterHost($host); - - if ($this->host === $host) { - return $this; - } - - $new = clone $this; - $new->host = $host; - $new->validateState(); - - return $new; - } - - public function withPort($port) - { - $port = $this->filterPort($port); - - if ($this->port === $port) { - return $this; - } - - $new = clone $this; - $new->port = $port; - $new->removeDefaultPort(); - $new->validateState(); - - return $new; - } - - public function withPath($path) - { - $path = $this->filterPath($path); - - if ($this->path === $path) { - return $this; - } - - $new = clone $this; - $new->path = $path; - $new->validateState(); - - return $new; - } - - public function withQuery($query) - { - $query = $this->filterQueryAndFragment($query); - - if ($this->query === $query) { - return $this; - } - - $new = clone $this; - $new->query = $query; - - return $new; - } - - public function withFragment($fragment) - { - $fragment = $this->filterQueryAndFragment($fragment); - - if ($this->fragment === $fragment) { - return $this; - } - - $new = clone $this; - $new->fragment = $fragment; - - return $new; - } - - /** - * Apply parse_url parts to a URI. - * - * @param array $parts Array of parse_url parts to apply. - */ - private function applyParts(array $parts) - { - $this->scheme = isset($parts['scheme']) - ? $this->filterScheme($parts['scheme']) - : ''; - $this->userInfo = isset($parts['user']) ? $parts['user'] : ''; - $this->host = isset($parts['host']) - ? $this->filterHost($parts['host']) - : ''; - $this->port = isset($parts['port']) - ? $this->filterPort($parts['port']) - : null; - $this->path = isset($parts['path']) - ? $this->filterPath($parts['path']) - : ''; - $this->query = isset($parts['query']) - ? $this->filterQueryAndFragment($parts['query']) - : ''; - $this->fragment = isset($parts['fragment']) - ? $this->filterQueryAndFragment($parts['fragment']) - : ''; - if (isset($parts['pass'])) { - $this->userInfo .= ':' . $parts['pass']; - } - - $this->removeDefaultPort(); - } - - /** - * @param string $scheme - * - * @return string - * - * @throws \InvalidArgumentException If the scheme is invalid. - */ - private function filterScheme($scheme) - { - if (!is_string($scheme)) { - throw new \InvalidArgumentException('Scheme must be a string'); - } - - return strtolower($scheme); - } - - /** - * @param string $host - * - * @return string - * - * @throws \InvalidArgumentException If the host is invalid. - */ - private function filterHost($host) - { - if (!is_string($host)) { - throw new \InvalidArgumentException('Host must be a string'); - } - - return strtolower($host); - } - - /** - * @param int|null $port - * - * @return int|null - * - * @throws \InvalidArgumentException If the port is invalid. - */ - private function filterPort($port) - { - if ($port === null) { - return null; - } - - $port = (int) $port; - if (1 > $port || 0xffff < $port) { - throw new \InvalidArgumentException( - sprintf('Invalid port: %d. Must be between 1 and 65535', $port) - ); - } - - return $port; - } - - private function removeDefaultPort() - { - if ($this->port !== null && self::isDefaultPort($this)) { - $this->port = null; - } - } - - /** - * Filters the path of a URI - * - * @param string $path - * - * @return string - * - * @throws \InvalidArgumentException If the path is invalid. - */ - private function filterPath($path) - { - if (!is_string($path)) { - throw new \InvalidArgumentException('Path must be a string'); - } - - return preg_replace_callback( - '/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\/]++|%(?![A-Fa-f0-9]{2}))/', - [$this, 'rawurlencodeMatchZero'], - $path - ); - } - - /** - * Filters the query string or fragment of a URI. - * - * @param string $str - * - * @return string - * - * @throws \InvalidArgumentException If the query or fragment is invalid. - */ - private function filterQueryAndFragment($str) - { - if (!is_string($str)) { - throw new \InvalidArgumentException('Query and fragment must be a string'); - } - - return preg_replace_callback( - '/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\/\?]++|%(?![A-Fa-f0-9]{2}))/', - [$this, 'rawurlencodeMatchZero'], - $str - ); - } - - private function rawurlencodeMatchZero(array $match) - { - return rawurlencode($match[0]); - } - - private function validateState() - { - if ($this->host === '' && ($this->scheme === 'http' || $this->scheme === 'https')) { - $this->host = self::HTTP_DEFAULT_HOST; - } - - if ($this->getAuthority() === '') { - if (0 === strpos($this->path, '//')) { - throw new \InvalidArgumentException('The path of a URI without an authority must not start with two slashes "//"'); - } - if ($this->scheme === '' && false !== strpos(explode('/', $this->path, 2)[0], ':')) { - throw new \InvalidArgumentException('A relative URI must not have a path beginning with a segment containing a colon'); - } - } elseif (isset($this->path[0]) && $this->path[0] !== '/') { - @trigger_error( - 'The path of a URI with an authority must start with a slash "/" or be empty. Automagically fixing the URI ' . - 'by adding a leading slash to the path is deprecated since version 1.4 and will throw an exception instead.', - E_USER_DEPRECATED - ); - $this->path = '/'. $this->path; - //throw new \InvalidArgumentException('The path of a URI with an authority must start with a slash "/" or be empty'); - } - } -} diff --git a/vendor/guzzlehttp/psr7/src/UriNormalizer.php b/vendor/guzzlehttp/psr7/src/UriNormalizer.php deleted file mode 100644 index 384c29e5..00000000 --- a/vendor/guzzlehttp/psr7/src/UriNormalizer.php +++ /dev/null @@ -1,216 +0,0 @@ -getPath() === '' && - ($uri->getScheme() === 'http' || $uri->getScheme() === 'https') - ) { - $uri = $uri->withPath('/'); - } - - if ($flags & self::REMOVE_DEFAULT_HOST && $uri->getScheme() === 'file' && $uri->getHost() === 'localhost') { - $uri = $uri->withHost(''); - } - - if ($flags & self::REMOVE_DEFAULT_PORT && $uri->getPort() !== null && Uri::isDefaultPort($uri)) { - $uri = $uri->withPort(null); - } - - if ($flags & self::REMOVE_DOT_SEGMENTS && !Uri::isRelativePathReference($uri)) { - $uri = $uri->withPath(UriResolver::removeDotSegments($uri->getPath())); - } - - if ($flags & self::REMOVE_DUPLICATE_SLASHES) { - $uri = $uri->withPath(preg_replace('#//++#', '/', $uri->getPath())); - } - - if ($flags & self::SORT_QUERY_PARAMETERS && $uri->getQuery() !== '') { - $queryKeyValues = explode('&', $uri->getQuery()); - sort($queryKeyValues); - $uri = $uri->withQuery(implode('&', $queryKeyValues)); - } - - return $uri; - } - - /** - * Whether two URIs can be considered equivalent. - * - * Both URIs are normalized automatically before comparison with the given $normalizations bitmask. The method also - * accepts relative URI references and returns true when they are equivalent. This of course assumes they will be - * resolved against the same base URI. If this is not the case, determination of equivalence or difference of - * relative references does not mean anything. - * - * @param UriInterface $uri1 An URI to compare - * @param UriInterface $uri2 An URI to compare - * @param int $normalizations A bitmask of normalizations to apply, see constants - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-6.1 - */ - public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS) - { - return (string) self::normalize($uri1, $normalizations) === (string) self::normalize($uri2, $normalizations); - } - - private static function capitalizePercentEncoding(UriInterface $uri) - { - $regex = '/(?:%[A-Fa-f0-9]{2})++/'; - - $callback = function (array $match) { - return strtoupper($match[0]); - }; - - return - $uri->withPath( - preg_replace_callback($regex, $callback, $uri->getPath()) - )->withQuery( - preg_replace_callback($regex, $callback, $uri->getQuery()) - ); - } - - private static function decodeUnreservedCharacters(UriInterface $uri) - { - $regex = '/%(?:2D|2E|5F|7E|3[0-9]|[46][1-9A-F]|[57][0-9A])/i'; - - $callback = function (array $match) { - return rawurldecode($match[0]); - }; - - return - $uri->withPath( - preg_replace_callback($regex, $callback, $uri->getPath()) - )->withQuery( - preg_replace_callback($regex, $callback, $uri->getQuery()) - ); - } - - private function __construct() - { - // cannot be instantiated - } -} diff --git a/vendor/guzzlehttp/psr7/src/UriResolver.php b/vendor/guzzlehttp/psr7/src/UriResolver.php deleted file mode 100644 index c1cb8a27..00000000 --- a/vendor/guzzlehttp/psr7/src/UriResolver.php +++ /dev/null @@ -1,219 +0,0 @@ -getScheme() != '') { - return $rel->withPath(self::removeDotSegments($rel->getPath())); - } - - if ($rel->getAuthority() != '') { - $targetAuthority = $rel->getAuthority(); - $targetPath = self::removeDotSegments($rel->getPath()); - $targetQuery = $rel->getQuery(); - } else { - $targetAuthority = $base->getAuthority(); - if ($rel->getPath() === '') { - $targetPath = $base->getPath(); - $targetQuery = $rel->getQuery() != '' ? $rel->getQuery() : $base->getQuery(); - } else { - if ($rel->getPath()[0] === '/') { - $targetPath = $rel->getPath(); - } else { - if ($targetAuthority != '' && $base->getPath() === '') { - $targetPath = '/' . $rel->getPath(); - } else { - $lastSlashPos = strrpos($base->getPath(), '/'); - if ($lastSlashPos === false) { - $targetPath = $rel->getPath(); - } else { - $targetPath = substr($base->getPath(), 0, $lastSlashPos + 1) . $rel->getPath(); - } - } - } - $targetPath = self::removeDotSegments($targetPath); - $targetQuery = $rel->getQuery(); - } - } - - return new Uri(Uri::composeComponents( - $base->getScheme(), - $targetAuthority, - $targetPath, - $targetQuery, - $rel->getFragment() - )); - } - - /** - * Returns the target URI as a relative reference from the base URI. - * - * This method is the counterpart to resolve(): - * - * (string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target)) - * - * One use-case is to use the current request URI as base URI and then generate relative links in your documents - * to reduce the document size or offer self-contained downloadable document archives. - * - * $base = new Uri('http://example.com/a/b/'); - * echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. - * echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. - * echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. - * echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'. - * - * This method also accepts a target that is already relative and will try to relativize it further. Only a - * relative-path reference will be returned as-is. - * - * echo UriResolver::relativize($base, new Uri('/a/b/c')); // prints 'c' as well - * - * @param UriInterface $base Base URI - * @param UriInterface $target Target URI - * - * @return UriInterface The relative URI reference - */ - public static function relativize(UriInterface $base, UriInterface $target) - { - if ($target->getScheme() !== '' && - ($base->getScheme() !== $target->getScheme() || $target->getAuthority() === '' && $base->getAuthority() !== '') - ) { - return $target; - } - - if (Uri::isRelativePathReference($target)) { - // As the target is already highly relative we return it as-is. It would be possible to resolve - // the target with `$target = self::resolve($base, $target);` and then try make it more relative - // by removing a duplicate query. But let's not do that automatically. - return $target; - } - - if ($target->getAuthority() !== '' && $base->getAuthority() !== $target->getAuthority()) { - return $target->withScheme(''); - } - - // We must remove the path before removing the authority because if the path starts with two slashes, the URI - // would turn invalid. And we also cannot set a relative path before removing the authority, as that is also - // invalid. - $emptyPathUri = $target->withScheme('')->withPath('')->withUserInfo('')->withPort(null)->withHost(''); - - if ($base->getPath() !== $target->getPath()) { - return $emptyPathUri->withPath(self::getRelativePath($base, $target)); - } - - if ($base->getQuery() === $target->getQuery()) { - // Only the target fragment is left. And it must be returned even if base and target fragment are the same. - return $emptyPathUri->withQuery(''); - } - - // If the base URI has a query but the target has none, we cannot return an empty path reference as it would - // inherit the base query component when resolving. - if ($target->getQuery() === '') { - $segments = explode('/', $target->getPath()); - $lastSegment = end($segments); - - return $emptyPathUri->withPath($lastSegment === '' ? './' : $lastSegment); - } - - return $emptyPathUri; - } - - private static function getRelativePath(UriInterface $base, UriInterface $target) - { - $sourceSegments = explode('/', $base->getPath()); - $targetSegments = explode('/', $target->getPath()); - array_pop($sourceSegments); - $targetLastSegment = array_pop($targetSegments); - foreach ($sourceSegments as $i => $segment) { - if (isset($targetSegments[$i]) && $segment === $targetSegments[$i]) { - unset($sourceSegments[$i], $targetSegments[$i]); - } else { - break; - } - } - $targetSegments[] = $targetLastSegment; - $relativePath = str_repeat('../', count($sourceSegments)) . implode('/', $targetSegments); - - // A reference to am empty last segment or an empty first sub-segment must be prefixed with "./". - // This also applies to a segment with a colon character (e.g., "file:colon") that cannot be used - // as the first segment of a relative-path reference, as it would be mistaken for a scheme name. - if ('' === $relativePath || false !== strpos(explode('/', $relativePath, 2)[0], ':')) { - $relativePath = "./$relativePath"; - } elseif ('/' === $relativePath[0]) { - if ($base->getAuthority() != '' && $base->getPath() === '') { - // In this case an extra slash is added by resolve() automatically. So we must not add one here. - $relativePath = ".$relativePath"; - } else { - $relativePath = "./$relativePath"; - } - } - - return $relativePath; - } - - private function __construct() - { - // cannot be instantiated - } -} diff --git a/vendor/guzzlehttp/psr7/src/functions.php b/vendor/guzzlehttp/psr7/src/functions.php deleted file mode 100644 index e40348d6..00000000 --- a/vendor/guzzlehttp/psr7/src/functions.php +++ /dev/null @@ -1,828 +0,0 @@ -getMethod() . ' ' - . $message->getRequestTarget()) - . ' HTTP/' . $message->getProtocolVersion(); - if (!$message->hasHeader('host')) { - $msg .= "\r\nHost: " . $message->getUri()->getHost(); - } - } elseif ($message instanceof ResponseInterface) { - $msg = 'HTTP/' . $message->getProtocolVersion() . ' ' - . $message->getStatusCode() . ' ' - . $message->getReasonPhrase(); - } else { - throw new \InvalidArgumentException('Unknown message type'); - } - - foreach ($message->getHeaders() as $name => $values) { - $msg .= "\r\n{$name}: " . implode(', ', $values); - } - - return "{$msg}\r\n\r\n" . $message->getBody(); -} - -/** - * Returns a UriInterface for the given value. - * - * This function accepts a string or {@see Psr\Http\Message\UriInterface} and - * returns a UriInterface for the given value. If the value is already a - * `UriInterface`, it is returned as-is. - * - * @param string|UriInterface $uri - * - * @return UriInterface - * @throws \InvalidArgumentException - */ -function uri_for($uri) -{ - if ($uri instanceof UriInterface) { - return $uri; - } elseif (is_string($uri)) { - return new Uri($uri); - } - - throw new \InvalidArgumentException('URI must be a string or UriInterface'); -} - -/** - * Create a new stream based on the input type. - * - * Options is an associative array that can contain the following keys: - * - metadata: Array of custom metadata. - * - size: Size of the stream. - * - * @param resource|string|null|int|float|bool|StreamInterface|callable $resource Entity body data - * @param array $options Additional options - * - * @return Stream - * @throws \InvalidArgumentException if the $resource arg is not valid. - */ -function stream_for($resource = '', array $options = []) -{ - if (is_scalar($resource)) { - $stream = fopen('php://temp', 'r+'); - if ($resource !== '') { - fwrite($stream, $resource); - fseek($stream, 0); - } - return new Stream($stream, $options); - } - - switch (gettype($resource)) { - case 'resource': - return new Stream($resource, $options); - case 'object': - if ($resource instanceof StreamInterface) { - return $resource; - } elseif ($resource instanceof \Iterator) { - return new PumpStream(function () use ($resource) { - if (!$resource->valid()) { - return false; - } - $result = $resource->current(); - $resource->next(); - return $result; - }, $options); - } elseif (method_exists($resource, '__toString')) { - return stream_for((string) $resource, $options); - } - break; - case 'NULL': - return new Stream(fopen('php://temp', 'r+'), $options); - } - - if (is_callable($resource)) { - return new PumpStream($resource, $options); - } - - throw new \InvalidArgumentException('Invalid resource type: ' . gettype($resource)); -} - -/** - * Parse an array of header values containing ";" separated data into an - * array of associative arrays representing the header key value pair - * data of the header. When a parameter does not contain a value, but just - * contains a key, this function will inject a key with a '' string value. - * - * @param string|array $header Header to parse into components. - * - * @return array Returns the parsed header values. - */ -function parse_header($header) -{ - static $trimmed = "\"' \n\t\r"; - $params = $matches = []; - - foreach (normalize_header($header) as $val) { - $part = []; - foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) { - if (preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) { - $m = $matches[0]; - if (isset($m[1])) { - $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed); - } else { - $part[] = trim($m[0], $trimmed); - } - } - } - if ($part) { - $params[] = $part; - } - } - - return $params; -} - -/** - * Converts an array of header values that may contain comma separated - * headers into an array of headers with no comma separated values. - * - * @param string|array $header Header to normalize. - * - * @return array Returns the normalized header field values. - */ -function normalize_header($header) -{ - if (!is_array($header)) { - return array_map('trim', explode(',', $header)); - } - - $result = []; - foreach ($header as $value) { - foreach ((array) $value as $v) { - if (strpos($v, ',') === false) { - $result[] = $v; - continue; - } - foreach (preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $v) as $vv) { - $result[] = trim($vv); - } - } - } - - return $result; -} - -/** - * Clone and modify a request with the given changes. - * - * The changes can be one of: - * - method: (string) Changes the HTTP method. - * - set_headers: (array) Sets the given headers. - * - remove_headers: (array) Remove the given headers. - * - body: (mixed) Sets the given body. - * - uri: (UriInterface) Set the URI. - * - query: (string) Set the query string value of the URI. - * - version: (string) Set the protocol version. - * - * @param RequestInterface $request Request to clone and modify. - * @param array $changes Changes to apply. - * - * @return RequestInterface - */ -function modify_request(RequestInterface $request, array $changes) -{ - if (!$changes) { - return $request; - } - - $headers = $request->getHeaders(); - - if (!isset($changes['uri'])) { - $uri = $request->getUri(); - } else { - // Remove the host header if one is on the URI - if ($host = $changes['uri']->getHost()) { - $changes['set_headers']['Host'] = $host; - - if ($port = $changes['uri']->getPort()) { - $standardPorts = ['http' => 80, 'https' => 443]; - $scheme = $changes['uri']->getScheme(); - if (isset($standardPorts[$scheme]) && $port != $standardPorts[$scheme]) { - $changes['set_headers']['Host'] .= ':'.$port; - } - } - } - $uri = $changes['uri']; - } - - if (!empty($changes['remove_headers'])) { - $headers = _caseless_remove($changes['remove_headers'], $headers); - } - - if (!empty($changes['set_headers'])) { - $headers = _caseless_remove(array_keys($changes['set_headers']), $headers); - $headers = $changes['set_headers'] + $headers; - } - - if (isset($changes['query'])) { - $uri = $uri->withQuery($changes['query']); - } - - if ($request instanceof ServerRequestInterface) { - return new ServerRequest( - isset($changes['method']) ? $changes['method'] : $request->getMethod(), - $uri, - $headers, - isset($changes['body']) ? $changes['body'] : $request->getBody(), - isset($changes['version']) - ? $changes['version'] - : $request->getProtocolVersion(), - $request->getServerParams() - ); - } - - return new Request( - isset($changes['method']) ? $changes['method'] : $request->getMethod(), - $uri, - $headers, - isset($changes['body']) ? $changes['body'] : $request->getBody(), - isset($changes['version']) - ? $changes['version'] - : $request->getProtocolVersion() - ); -} - -/** - * Attempts to rewind a message body and throws an exception on failure. - * - * The body of the message will only be rewound if a call to `tell()` returns a - * value other than `0`. - * - * @param MessageInterface $message Message to rewind - * - * @throws \RuntimeException - */ -function rewind_body(MessageInterface $message) -{ - $body = $message->getBody(); - - if ($body->tell()) { - $body->rewind(); - } -} - -/** - * Safely opens a PHP stream resource using a filename. - * - * When fopen fails, PHP normally raises a warning. This function adds an - * error handler that checks for errors and throws an exception instead. - * - * @param string $filename File to open - * @param string $mode Mode used to open the file - * - * @return resource - * @throws \RuntimeException if the file cannot be opened - */ -function try_fopen($filename, $mode) -{ - $ex = null; - set_error_handler(function () use ($filename, $mode, &$ex) { - $ex = new \RuntimeException(sprintf( - 'Unable to open %s using mode %s: %s', - $filename, - $mode, - func_get_args()[1] - )); - }); - - $handle = fopen($filename, $mode); - restore_error_handler(); - - if ($ex) { - /** @var $ex \RuntimeException */ - throw $ex; - } - - return $handle; -} - -/** - * Copy the contents of a stream into a string until the given number of - * bytes have been read. - * - * @param StreamInterface $stream Stream to read - * @param int $maxLen Maximum number of bytes to read. Pass -1 - * to read the entire stream. - * @return string - * @throws \RuntimeException on error. - */ -function copy_to_string(StreamInterface $stream, $maxLen = -1) -{ - $buffer = ''; - - if ($maxLen === -1) { - while (!$stream->eof()) { - $buf = $stream->read(1048576); - // Using a loose equality here to match on '' and false. - if ($buf == null) { - break; - } - $buffer .= $buf; - } - return $buffer; - } - - $len = 0; - while (!$stream->eof() && $len < $maxLen) { - $buf = $stream->read($maxLen - $len); - // Using a loose equality here to match on '' and false. - if ($buf == null) { - break; - } - $buffer .= $buf; - $len = strlen($buffer); - } - - return $buffer; -} - -/** - * Copy the contents of a stream into another stream until the given number - * of bytes have been read. - * - * @param StreamInterface $source Stream to read from - * @param StreamInterface $dest Stream to write to - * @param int $maxLen Maximum number of bytes to read. Pass -1 - * to read the entire stream. - * - * @throws \RuntimeException on error. - */ -function copy_to_stream( - StreamInterface $source, - StreamInterface $dest, - $maxLen = -1 -) { - $bufferSize = 8192; - - if ($maxLen === -1) { - while (!$source->eof()) { - if (!$dest->write($source->read($bufferSize))) { - break; - } - } - } else { - $remaining = $maxLen; - while ($remaining > 0 && !$source->eof()) { - $buf = $source->read(min($bufferSize, $remaining)); - $len = strlen($buf); - if (!$len) { - break; - } - $remaining -= $len; - $dest->write($buf); - } - } -} - -/** - * Calculate a hash of a Stream - * - * @param StreamInterface $stream Stream to calculate the hash for - * @param string $algo Hash algorithm (e.g. md5, crc32, etc) - * @param bool $rawOutput Whether or not to use raw output - * - * @return string Returns the hash of the stream - * @throws \RuntimeException on error. - */ -function hash( - StreamInterface $stream, - $algo, - $rawOutput = false -) { - $pos = $stream->tell(); - - if ($pos > 0) { - $stream->rewind(); - } - - $ctx = hash_init($algo); - while (!$stream->eof()) { - hash_update($ctx, $stream->read(1048576)); - } - - $out = hash_final($ctx, (bool) $rawOutput); - $stream->seek($pos); - - return $out; -} - -/** - * Read a line from the stream up to the maximum allowed buffer length - * - * @param StreamInterface $stream Stream to read from - * @param int $maxLength Maximum buffer length - * - * @return string|bool - */ -function readline(StreamInterface $stream, $maxLength = null) -{ - $buffer = ''; - $size = 0; - - while (!$stream->eof()) { - // Using a loose equality here to match on '' and false. - if (null == ($byte = $stream->read(1))) { - return $buffer; - } - $buffer .= $byte; - // Break when a new line is found or the max length - 1 is reached - if ($byte === "\n" || ++$size === $maxLength - 1) { - break; - } - } - - return $buffer; -} - -/** - * Parses a request message string into a request object. - * - * @param string $message Request message string. - * - * @return Request - */ -function parse_request($message) -{ - $data = _parse_message($message); - $matches = []; - if (!preg_match('/^[\S]+\s+([a-zA-Z]+:\/\/|\/).*/', $data['start-line'], $matches)) { - throw new \InvalidArgumentException('Invalid request string'); - } - $parts = explode(' ', $data['start-line'], 3); - $version = isset($parts[2]) ? explode('/', $parts[2])[1] : '1.1'; - - $request = new Request( - $parts[0], - $matches[1] === '/' ? _parse_request_uri($parts[1], $data['headers']) : $parts[1], - $data['headers'], - $data['body'], - $version - ); - - return $matches[1] === '/' ? $request : $request->withRequestTarget($parts[1]); -} - -/** - * Parses a response message string into a response object. - * - * @param string $message Response message string. - * - * @return Response - */ -function parse_response($message) -{ - $data = _parse_message($message); - // According to https://tools.ietf.org/html/rfc7230#section-3.1.2 the space - // between status-code and reason-phrase is required. But browsers accept - // responses without space and reason as well. - if (!preg_match('/^HTTP\/.* [0-9]{3}( .*|$)/', $data['start-line'])) { - throw new \InvalidArgumentException('Invalid response string'); - } - $parts = explode(' ', $data['start-line'], 3); - - return new Response( - $parts[1], - $data['headers'], - $data['body'], - explode('/', $parts[0])[1], - isset($parts[2]) ? $parts[2] : null - ); -} - -/** - * Parse a query string into an associative array. - * - * If multiple values are found for the same key, the value of that key - * value pair will become an array. This function does not parse nested - * PHP style arrays into an associative array (e.g., foo[a]=1&foo[b]=2 will - * be parsed into ['foo[a]' => '1', 'foo[b]' => '2']). - * - * @param string $str Query string to parse - * @param bool|string $urlEncoding How the query string is encoded - * - * @return array - */ -function parse_query($str, $urlEncoding = true) -{ - $result = []; - - if ($str === '') { - return $result; - } - - if ($urlEncoding === true) { - $decoder = function ($value) { - return rawurldecode(str_replace('+', ' ', $value)); - }; - } elseif ($urlEncoding == PHP_QUERY_RFC3986) { - $decoder = 'rawurldecode'; - } elseif ($urlEncoding == PHP_QUERY_RFC1738) { - $decoder = 'urldecode'; - } else { - $decoder = function ($str) { return $str; }; - } - - foreach (explode('&', $str) as $kvp) { - $parts = explode('=', $kvp, 2); - $key = $decoder($parts[0]); - $value = isset($parts[1]) ? $decoder($parts[1]) : null; - if (!isset($result[$key])) { - $result[$key] = $value; - } else { - if (!is_array($result[$key])) { - $result[$key] = [$result[$key]]; - } - $result[$key][] = $value; - } - } - - return $result; -} - -/** - * Build a query string from an array of key value pairs. - * - * This function can use the return value of parse_query() to build a query - * string. This function does not modify the provided keys when an array is - * encountered (like http_build_query would). - * - * @param array $params Query string parameters. - * @param int|false $encoding Set to false to not encode, PHP_QUERY_RFC3986 - * to encode using RFC3986, or PHP_QUERY_RFC1738 - * to encode using RFC1738. - * @return string - */ -function build_query(array $params, $encoding = PHP_QUERY_RFC3986) -{ - if (!$params) { - return ''; - } - - if ($encoding === false) { - $encoder = function ($str) { return $str; }; - } elseif ($encoding === PHP_QUERY_RFC3986) { - $encoder = 'rawurlencode'; - } elseif ($encoding === PHP_QUERY_RFC1738) { - $encoder = 'urlencode'; - } else { - throw new \InvalidArgumentException('Invalid type'); - } - - $qs = ''; - foreach ($params as $k => $v) { - $k = $encoder($k); - if (!is_array($v)) { - $qs .= $k; - if ($v !== null) { - $qs .= '=' . $encoder($v); - } - $qs .= '&'; - } else { - foreach ($v as $vv) { - $qs .= $k; - if ($vv !== null) { - $qs .= '=' . $encoder($vv); - } - $qs .= '&'; - } - } - } - - return $qs ? (string) substr($qs, 0, -1) : ''; -} - -/** - * Determines the mimetype of a file by looking at its extension. - * - * @param $filename - * - * @return null|string - */ -function mimetype_from_filename($filename) -{ - return mimetype_from_extension(pathinfo($filename, PATHINFO_EXTENSION)); -} - -/** - * Maps a file extensions to a mimetype. - * - * @param $extension string The file extension. - * - * @return string|null - * @link http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types - */ -function mimetype_from_extension($extension) -{ - static $mimetypes = [ - '7z' => 'application/x-7z-compressed', - 'aac' => 'audio/x-aac', - 'ai' => 'application/postscript', - 'aif' => 'audio/x-aiff', - 'asc' => 'text/plain', - 'asf' => 'video/x-ms-asf', - 'atom' => 'application/atom+xml', - 'avi' => 'video/x-msvideo', - 'bmp' => 'image/bmp', - 'bz2' => 'application/x-bzip2', - 'cer' => 'application/pkix-cert', - 'crl' => 'application/pkix-crl', - 'crt' => 'application/x-x509-ca-cert', - 'css' => 'text/css', - 'csv' => 'text/csv', - 'cu' => 'application/cu-seeme', - 'deb' => 'application/x-debian-package', - 'doc' => 'application/msword', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dvi' => 'application/x-dvi', - 'eot' => 'application/vnd.ms-fontobject', - 'eps' => 'application/postscript', - 'epub' => 'application/epub+zip', - 'etx' => 'text/x-setext', - 'flac' => 'audio/flac', - 'flv' => 'video/x-flv', - 'gif' => 'image/gif', - 'gz' => 'application/gzip', - 'htm' => 'text/html', - 'html' => 'text/html', - 'ico' => 'image/x-icon', - 'ics' => 'text/calendar', - 'ini' => 'text/plain', - 'iso' => 'application/x-iso9660-image', - 'jar' => 'application/java-archive', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'js' => 'text/javascript', - 'json' => 'application/json', - 'latex' => 'application/x-latex', - 'log' => 'text/plain', - 'm4a' => 'audio/mp4', - 'm4v' => 'video/mp4', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mov' => 'video/quicktime', - 'mp3' => 'audio/mpeg', - 'mp4' => 'video/mp4', - 'mp4a' => 'audio/mp4', - 'mp4v' => 'video/mp4', - 'mpe' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpg4' => 'video/mp4', - 'oga' => 'audio/ogg', - 'ogg' => 'audio/ogg', - 'ogv' => 'video/ogg', - 'ogx' => 'application/ogg', - 'pbm' => 'image/x-portable-bitmap', - 'pdf' => 'application/pdf', - 'pgm' => 'image/x-portable-graymap', - 'png' => 'image/png', - 'pnm' => 'image/x-portable-anymap', - 'ppm' => 'image/x-portable-pixmap', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'ps' => 'application/postscript', - 'qt' => 'video/quicktime', - 'rar' => 'application/x-rar-compressed', - 'ras' => 'image/x-cmu-raster', - 'rss' => 'application/rss+xml', - 'rtf' => 'application/rtf', - 'sgm' => 'text/sgml', - 'sgml' => 'text/sgml', - 'svg' => 'image/svg+xml', - 'swf' => 'application/x-shockwave-flash', - 'tar' => 'application/x-tar', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'torrent' => 'application/x-bittorrent', - 'ttf' => 'application/x-font-ttf', - 'txt' => 'text/plain', - 'wav' => 'audio/x-wav', - 'webm' => 'video/webm', - 'wma' => 'audio/x-ms-wma', - 'wmv' => 'video/x-ms-wmv', - 'woff' => 'application/x-font-woff', - 'wsdl' => 'application/wsdl+xml', - 'xbm' => 'image/x-xbitmap', - 'xls' => 'application/vnd.ms-excel', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xml' => 'application/xml', - 'xpm' => 'image/x-xpixmap', - 'xwd' => 'image/x-xwindowdump', - 'yaml' => 'text/yaml', - 'yml' => 'text/yaml', - 'zip' => 'application/zip', - ]; - - $extension = strtolower($extension); - - return isset($mimetypes[$extension]) - ? $mimetypes[$extension] - : null; -} - -/** - * Parses an HTTP message into an associative array. - * - * The array contains the "start-line" key containing the start line of - * the message, "headers" key containing an associative array of header - * array values, and a "body" key containing the body of the message. - * - * @param string $message HTTP request or response to parse. - * - * @return array - * @internal - */ -function _parse_message($message) -{ - if (!$message) { - throw new \InvalidArgumentException('Invalid message'); - } - - // Iterate over each line in the message, accounting for line endings - $lines = preg_split('/(\\r?\\n)/', $message, -1, PREG_SPLIT_DELIM_CAPTURE); - $result = ['start-line' => array_shift($lines), 'headers' => [], 'body' => '']; - array_shift($lines); - - for ($i = 0, $totalLines = count($lines); $i < $totalLines; $i += 2) { - $line = $lines[$i]; - // If two line breaks were encountered, then this is the end of body - if (empty($line)) { - if ($i < $totalLines - 1) { - $result['body'] = implode('', array_slice($lines, $i + 2)); - } - break; - } - if (strpos($line, ':')) { - $parts = explode(':', $line, 2); - $key = trim($parts[0]); - $value = isset($parts[1]) ? trim($parts[1]) : ''; - $result['headers'][$key][] = $value; - } - } - - return $result; -} - -/** - * Constructs a URI for an HTTP request message. - * - * @param string $path Path from the start-line - * @param array $headers Array of headers (each value an array). - * - * @return string - * @internal - */ -function _parse_request_uri($path, array $headers) -{ - $hostKey = array_filter(array_keys($headers), function ($k) { - return strtolower($k) === 'host'; - }); - - // If no host is found, then a full URI cannot be constructed. - if (!$hostKey) { - return $path; - } - - $host = $headers[reset($hostKey)][0]; - $scheme = substr($host, -4) === ':443' ? 'https' : 'http'; - - return $scheme . '://' . $host . '/' . ltrim($path, '/'); -} - -/** @internal */ -function _caseless_remove($keys, array $data) -{ - $result = []; - - foreach ($keys as &$key) { - $key = strtolower($key); - } - - foreach ($data as $k => $v) { - if (!in_array(strtolower($k), $keys)) { - $result[$k] = $v; - } - } - - return $result; -} diff --git a/vendor/guzzlehttp/psr7/src/functions_include.php b/vendor/guzzlehttp/psr7/src/functions_include.php deleted file mode 100644 index 96a4a83a..00000000 --- a/vendor/guzzlehttp/psr7/src/functions_include.php +++ /dev/null @@ -1,6 +0,0 @@ -ignoringCase()); - -* Fixed Hamcrest_Core_IsInstanceOf to return false for native types. - -* Moved string-based matchers to Hamcrest_Text package. - StringContains, StringEndsWith, StringStartsWith, and SubstringMatcher - -* Hamcrest.php and Hamcrest_Matchers.php are now built from @factory doctags. - Added @factory doctag to every static factory method. - -* Hamcrest_Matchers and Hamcrest.php now import each matcher as-needed - and Hamcrest.php calls the matchers directly instead of Hamcrest_Matchers. - - -== Version 0.3.0: Released Jul 26 2010 == - -* Added running count to Hamcrest_MatcherAssert with methods to get and reset it. - This can be used by unit testing frameworks for reporting. - -* Added Hamcrest_Core_HasToString to assert return value of toString() or __toString(). - - assertThat($anObject, hasToString('foo')); - -* Added Hamcrest_Type_IsScalar to assert is_scalar(). - Matches values of type bool, int, float, double, and string. - - assertThat($count, scalarValue()); - assertThat('foo', scalarValue()); - -* Added Hamcrest_Collection package. - - - IsEmptyTraversable - - IsTraversableWithSize - - assertThat($iterator, emptyTraversable()); - assertThat($iterator, traversableWithSize(5)); - -* Added Hamcrest_Xml_HasXPath to assert XPath expressions or the content of nodes in an XML/HTML DOM. - - assertThat($dom, hasXPath('books/book/title')); - assertThat($dom, hasXPath('books/book[contains(title, "Alice")]', 3)); - assertThat($dom, hasXPath('books/book/title', 'Alice in Wonderland')); - assertThat($dom, hasXPath('count(books/book)', greaterThan(10))); - -* Added aliases to match the Java API. - - hasEntry() -> hasKeyValuePair() - hasValue() -> hasItemInArray() - contains() -> arrayContaining() - containsInAnyOrder() -> arrayContainingInAnyOrder() - -* Added optional subtype to Hamcrest_TypeSafeMatcher to enforce object class or resource type. - -* Hamcrest_TypeSafeDiagnosingMatcher now extends Hamcrest_TypeSafeMatcher. - - -== Version 0.2.0: Released Jul 14 2010 == - -Issues Fixed: 109, 111, 114, 115 - -* Description::appendValues() and appendValueList() accept Iterator and IteratorAggregate. [111] - BaseDescription::appendValue() handles IteratorAggregate. - -* assertThat() accepts a single boolean parameter and - wraps any non-Matcher third parameter with equalTo(). - -* Removed null return value from assertThat(). [114] - -* Fixed wrong variable name in contains(). [109] - -* Added Hamcrest_Core_IsSet to assert isset(). - - assertThat(array('foo' => 'bar'), set('foo')); - assertThat(array('foo' => 'bar'), notSet('bar')); - -* Added Hamcrest_Core_IsTypeOf to assert built-in types with gettype(). [115] - Types: array, boolean, double, integer, null, object, resource, and string. - Note that gettype() returns "double" for float values. - - assertThat($count, typeOf('integer')); - assertThat(3.14159, typeOf('double')); - assertThat(array('foo', 'bar'), typeOf('array')); - assertThat(new stdClass(), typeOf('object')); - -* Added type-specific matchers in new Hamcrest_Type package. - - - IsArray - - IsBoolean - - IsDouble (includes float values) - - IsInteger - - IsObject - - IsResource - - IsString - - assertThat($count, integerValue()); - assertThat(3.14159, floatValue()); - assertThat('foo', stringValue()); - -* Added Hamcrest_Type_IsNumeric to assert is_numeric(). - Matches values of type int and float/double or strings that are formatted as numbers. - - assertThat(5, numericValue()); - assertThat('-5e+3', numericValue()); - -* Added Hamcrest_Type_IsCallable to assert is_callable(). - - assertThat('preg_match', callable()); - assertThat(array('SomeClass', 'SomeMethod'), callable()); - assertThat(array($object, 'SomeMethod'), callable()); - assertThat($object, callable()); - assertThat(function ($x, $y) { return $x + $y; }, callable()); - -* Added Hamcrest_Text_MatchesPattern for regex matching with preg_match(). - - assertThat('foobar', matchesPattern('/o+b/')); - -* Added aliases: - - atLeast() for greaterThanOrEqualTo() - - atMost() for lessThanOrEqualTo() - - -== Version 0.1.0: Released Jul 7 2010 == - -* Created PEAR package - -* Core matchers - diff --git a/vendor/hamcrest/hamcrest-php/LICENSE.txt b/vendor/hamcrest/hamcrest-php/LICENSE.txt deleted file mode 100644 index 91cd329a..00000000 --- a/vendor/hamcrest/hamcrest-php/LICENSE.txt +++ /dev/null @@ -1,27 +0,0 @@ -BSD License - -Copyright (c) 2000-2014, www.hamcrest.org -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of -conditions and the following disclaimer. Redistributions in binary form must reproduce -the above copyright notice, this list of conditions and the following disclaimer in -the documentation and/or other materials provided with the distribution. - -Neither the name of Hamcrest nor the names of its contributors may be used to endorse -or promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY -WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/vendor/hamcrest/hamcrest-php/README.md b/vendor/hamcrest/hamcrest-php/README.md deleted file mode 100644 index 0b07c71e..00000000 --- a/vendor/hamcrest/hamcrest-php/README.md +++ /dev/null @@ -1,53 +0,0 @@ -This is the PHP port of Hamcrest Matchers -========================================= - -[![Build Status](https://travis-ci.org/hamcrest/hamcrest-php.png?branch=master)](https://travis-ci.org/hamcrest/hamcrest-php) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/?branch=master) -[![Code Coverage](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/?branch=master) - -Hamcrest is a matching library originally written for Java, but -subsequently ported to many other languages. hamcrest-php is the -official PHP port of Hamcrest and essentially follows a literal -translation of the original Java API for Hamcrest, with a few -Exceptions, mostly down to PHP language barriers: - - 1. `instanceOf($theClass)` is actually `anInstanceOf($theClass)` - - 2. `both(containsString('a'))->and(containsString('b'))` - is actually `both(containsString('a'))->andAlso(containsString('b'))` - - 3. `either(containsString('a'))->or(containsString('b'))` - is actually `either(containsString('a'))->orElse(containsString('b'))` - - 4. Unless it would be non-semantic for a matcher to do so, hamcrest-php - allows dynamic typing for it's input, in "the PHP way". Exception are - where semantics surrounding the type itself would suggest otherwise, - such as stringContains() and greaterThan(). - - 5. Several official matchers have not been ported because they don't - make sense or don't apply in PHP: - - - `typeCompatibleWith($theClass)` - - `eventFrom($source)` - - `hasProperty($name)` ** - - `samePropertyValuesAs($obj)` ** - - 6. When most of the collections matchers are finally ported, PHP-specific - aliases will probably be created due to a difference in naming - conventions between Java's Arrays, Collections, Sets and Maps compared - with PHP's Arrays. - ---- -** [Unless we consider POPO's (Plain Old PHP Objects) akin to JavaBeans] - - The POPO thing is a joke. Java devs coin the term POJO's (Plain Old - Java Objects). - - -Usage ------ - -Hamcrest matchers are easy to use as: - -```php -Hamcrest_MatcherAssert::assertThat('a', Hamcrest_Matchers::equalToIgnoringCase('A')); -``` diff --git a/vendor/hamcrest/hamcrest-php/TODO.txt b/vendor/hamcrest/hamcrest-php/TODO.txt deleted file mode 100644 index 92e1190d..00000000 --- a/vendor/hamcrest/hamcrest-php/TODO.txt +++ /dev/null @@ -1,22 +0,0 @@ -Still TODO Before Complete for PHP ----------------------------------- - -Port: - - - Hamcrest_Collection_* - - IsCollectionWithSize - - IsEmptyCollection - - IsIn - - IsTraversableContainingInAnyOrder - - IsTraversableContainingInOrder - - IsMapContaining (aliases) - -Aliasing/Deprecation (questionable): - - - Find and fix any factory methods that start with "is". - -Namespaces: - - - Investigate adding PHP 5.3+ namespace support in a way that still permits - use in PHP 5.2. - - Other than a parallel codebase, I don't see how this could be possible. diff --git a/vendor/hamcrest/hamcrest-php/composer.json b/vendor/hamcrest/hamcrest-php/composer.json deleted file mode 100644 index 5349f5fd..00000000 --- a/vendor/hamcrest/hamcrest-php/composer.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "hamcrest/hamcrest-php", - "type": "library", - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": ["test"], - "license": "BSD", - "authors": [ - ], - - "autoload": { - "classmap": ["hamcrest"] - }, - "autoload-dev": { - "classmap": ["tests", "generator"] - }, - - "require": { - "php": "^5.3|^7.0" - }, - - "require-dev": { - "satooshi/php-coveralls": "^1.0", - "phpunit/php-file-iterator": "1.3.3", - "phpunit/phpunit": "~4.0" - }, - - "replace": { - "kodova/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "cordoval/hamcrest-php": "*" - }, - - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/composer.lock b/vendor/hamcrest/hamcrest-php/composer.lock deleted file mode 100644 index 0581a4ed..00000000 --- a/vendor/hamcrest/hamcrest-php/composer.lock +++ /dev/null @@ -1,1493 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "hash": "52d9e3c2e238bdc2aab7f6e1d322e31d", - "content-hash": "ed113672807f01f40b4d9809b102dc31", - "packages": [], - "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", - "shasum": "" - }, - "require": { - "php": ">=5.3,<8.0-DEV" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2015-06-14 21:17:01" - }, - { - "name": "guzzle/guzzle", - "version": "v3.9.3", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle3.git", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", - "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" - }, - "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." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.9-dev" - } - }, - "autoload": { - "psr-0": { - "Guzzle": "src/", - "Guzzle\\Tests": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Guzzle Community", - "homepage": "https://github.com/guzzle/guzzle/contributors" - } - ], - "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "time": "2015-03-18 18:23:50" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8", - "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "dflydev/markdown": "~1.0", - "erusev/parsedown": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "time": "2015-02-03 12:10:50" - }, - { - "name": "phpspec/prophecy", - "version": "v1.5.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7", - "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "phpdocumentor/reflection-docblock": "~2.0", - "sebastian/comparator": "~1.1" - }, - "require-dev": { - "phpspec/phpspec": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2015-08-13 10:07:40" - }, - { - "name": "phpunit/php-code-coverage", - "version": "2.2.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "~1.3", - "sebastian/environment": "^1.3.2", - "sebastian/version": "~1.0" - }, - "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "~4" - }, - "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.2.1", - "ext-xmlwriter": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2015-10-06 15:47:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.3.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "16a78140ed2fc01b945cfa539665fadc6a038029" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/16a78140ed2fc01b945cfa539665fadc6a038029", - "reference": "16a78140ed2fc01b945cfa539665fadc6a038029", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "File/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "http://www.phpunit.de/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2012-10-11 11:44:38" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21 13:50:34" - }, - { - "name": "phpunit/php-timer", - "version": "1.0.7", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b", - "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2015-06-21 08:01:12" - }, - { - "name": "phpunit/php-token-stream", - "version": "1.4.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2015-09-15 10:49:45" - }, - { - "name": "phpunit/phpunit", - "version": "4.5.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "d6429b0995b24a2d9dfe5587ee3a7071c1161af4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d6429b0995b24a2d9dfe5587ee3a7071c1161af4", - "reference": "d6429b0995b24a2d9dfe5587ee3a7071c1161af4", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.3.3", - "phpspec/prophecy": "~1.3,>=1.3.1", - "phpunit/php-code-coverage": "~2.0,>=2.0.11", - "phpunit/php-file-iterator": "~1.3.2", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "~1.0.2", - "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.1", - "sebastian/diff": "~1.1", - "sebastian/environment": "~1.2", - "sebastian/exporter": "~1.2", - "sebastian/global-state": "~1.0", - "sebastian/version": "~1.0", - "symfony/yaml": "~2.0" - }, - "suggest": { - "phpunit/php-invoker": "~1.1" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.5.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2015-03-29 09:24:05" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "2.3.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2", - "sebastian/exporter": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "time": "2015-10-02 06:51:40" - }, - { - "name": "psr/log", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", - "shasum": "" - }, - "type": "library", - "autoload": { - "psr-0": { - "Psr\\Log\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2012-12-21 11:40:51" - }, - { - "name": "satooshi/php-coveralls", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/satooshi/php-coveralls.git", - "reference": "3edbdbdb4f4cfab5cb9ce83655ff81432f2221a6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/3edbdbdb4f4cfab5cb9ce83655ff81432f2221a6", - "reference": "3edbdbdb4f4cfab5cb9ce83655ff81432f2221a6", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-simplexml": "*", - "guzzle/guzzle": "^2.8|^3.0", - "php": ">=5.3.3", - "psr/log": "^1.0", - "symfony/config": "^2.4|^3.0", - "symfony/console": "^2.1|^3.0", - "symfony/stopwatch": "^2.2|^3.0", - "symfony/yaml": "^2.1|^3.0" - }, - "suggest": { - "symfony/http-kernel": "Allows Symfony integration" - }, - "bin": [ - "bin/coveralls" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.8-dev" - } - }, - "autoload": { - "psr-4": { - "Satooshi\\": "src/Satooshi/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kitamura Satoshi", - "email": "with.no.parachute@gmail.com", - "homepage": "https://www.facebook.com/satooshi.jp" - } - ], - "description": "PHP client library for Coveralls API", - "homepage": "https://github.com/satooshi/php-coveralls", - "keywords": [ - "ci", - "coverage", - "github", - "test" - ], - "time": "2015-12-28 09:07:32" - }, - { - "name": "sebastian/comparator", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2015-07-26 15:48:44" - }, - { - "name": "sebastian/diff", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2015-12-08 07:14:41" - }, - { - "name": "sebastian/environment", - "version": "1.3.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "6e7133793a8e5a5714a551a8324337374be209df" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6e7133793a8e5a5714a551a8324337374be209df", - "reference": "6e7133793a8e5a5714a551a8324337374be209df", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2015-12-02 08:37:27" - }, - { - "name": "sebastian/exporter", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2015-06-21 07:55:53" - }, - { - "name": "sebastian/global-state", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2015-10-12 03:26:01" - }, - { - "name": "sebastian/recursion-context", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "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" - }, - { - "name": "sebastian/version", - "version": "1.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "shasum": "" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-06-21 13:59:46" - }, - { - "name": "symfony/config", - "version": "v2.8.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "17d4b2e64ce1c6ba7caa040f14469b3c44d7f7d2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/17d4b2e64ce1c6ba7caa040f14469b3c44d7f7d2", - "reference": "17d4b2e64ce1c6ba7caa040f14469b3c44d7f7d2", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/filesystem": "~2.3|~3.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2015-12-26 13:37:56" - }, - { - "name": "symfony/console", - "version": "v2.8.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "2e06a5ccb19dcf9b89f1c6a677a39a8df773635a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/2e06a5ccb19dcf9b89f1c6a677a39a8df773635a", - "reference": "2e06a5ccb19dcf9b89f1c6a677a39a8df773635a", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1|~3.0.0", - "symfony/process": "~2.1|~3.0.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2015-12-22 10:25:57" - }, - { - "name": "symfony/event-dispatcher", - "version": "v2.8.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5eb815363c0388e83247e7e9853e5dbc14999cc", - "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.0,>=2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.6|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2015-10-30 20:15:42" - }, - { - "name": "symfony/filesystem", - "version": "v2.8.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "a7ad724530a764d70c168d321ac226ba3d2f10fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/a7ad724530a764d70c168d321ac226ba3d2f10fc", - "reference": "a7ad724530a764d70c168d321ac226ba3d2f10fc", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2015-12-22 10:25:57" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/49ff736bd5d41f45240cec77b44967d76e0c3d25", - "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2015-11-20 09:19:13" - }, - { - "name": "symfony/stopwatch", - "version": "v2.8.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "5f1e2ebd1044da542d2b9510527836e8be92b1cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5f1e2ebd1044da542d2b9510527836e8be92b1cb", - "reference": "5f1e2ebd1044da542d2b9510527836e8be92b1cb", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Stopwatch Component", - "homepage": "https://symfony.com", - "time": "2015-10-30 20:15:42" - }, - { - "name": "symfony/yaml", - "version": "v2.8.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "ac84cbb98b68a6abbc9f5149eb96ccc7b07b8966" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ac84cbb98b68a6abbc9f5149eb96ccc7b07b8966", - "reference": "ac84cbb98b68a6abbc9f5149eb96ccc7b07b8966", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2015-12-26 13:37:56" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">=5.3.2" - }, - "platform-dev": [] -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryCall.php b/vendor/hamcrest/hamcrest-php/generator/FactoryCall.php deleted file mode 100644 index 83965b2a..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryCall.php +++ /dev/null @@ -1,41 +0,0 @@ -method = $method; - $this->name = $name; - } - - public function getMethod() - { - return $this->method; - } - - public function getName() - { - return $this->name; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryClass.php b/vendor/hamcrest/hamcrest-php/generator/FactoryClass.php deleted file mode 100644 index 0c6bf78d..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryClass.php +++ /dev/null @@ -1,72 +0,0 @@ -file = $file; - $this->reflector = $class; - $this->extractFactoryMethods(); - } - - public function extractFactoryMethods() - { - $this->methods = array(); - foreach ($this->getPublicStaticMethods() as $method) { - if ($method->isFactory()) { -// echo $this->getName() . '::' . $method->getName() . ' : ' . count($method->getCalls()) . PHP_EOL; - $this->methods[] = $method; - } - } - } - - public function getPublicStaticMethods() - { - $methods = array(); - foreach ($this->reflector->getMethods(ReflectionMethod::IS_STATIC) as $method) { - if ($method->isPublic() && $method->getDeclaringClass() == $this->reflector) { - $methods[] = new FactoryMethod($this, $method); - } - } - return $methods; - } - - public function getFile() - { - return $this->file; - } - - public function getName() - { - return $this->reflector->name; - } - - public function isFactory() - { - return !empty($this->methods); - } - - public function getMethods() - { - return $this->methods; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryFile.php b/vendor/hamcrest/hamcrest-php/generator/FactoryFile.php deleted file mode 100644 index ac3d6c7d..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryFile.php +++ /dev/null @@ -1,122 +0,0 @@ -file = $file; - $this->indent = $indent; - } - - abstract public function addCall(FactoryCall $call); - - abstract public function build(); - - public function addFileHeader() - { - $this->code = ''; - $this->addPart('file_header'); - } - - public function addPart($name) - { - $this->addCode($this->readPart($name)); - } - - public function addCode($code) - { - $this->code .= $code; - } - - public function readPart($name) - { - return file_get_contents(__DIR__ . "/parts/$name.txt"); - } - - public function generateFactoryCall(FactoryCall $call) - { - $method = $call->getMethod(); - $code = $method->getComment($this->indent) . PHP_EOL; - $code .= $this->generateDeclaration($call->getName(), $method); - // $code .= $this->generateImport($method); - $code .= $this->generateCall($method); - $code .= $this->generateClosing(); - return $code; - } - - public function generateDeclaration($name, FactoryMethod $method) - { - $code = $this->indent . $this->getDeclarationModifiers() - . 'function ' . $name . '(' - . $this->generateDeclarationArguments($method) - . ')' . PHP_EOL . $this->indent . '{' . PHP_EOL; - return $code; - } - - public function getDeclarationModifiers() - { - return ''; - } - - public function generateDeclarationArguments(FactoryMethod $method) - { - if ($method->acceptsVariableArguments()) { - return '/* args... */'; - } else { - return $method->getParameterDeclarations(); - } - } - - public function generateImport(FactoryMethod $method) - { - return $this->indent . self::INDENT . "require_once '" . $method->getClass()->getFile() . "';" . PHP_EOL; - } - - public function generateCall(FactoryMethod $method) - { - $code = ''; - if ($method->acceptsVariableArguments()) { - $code .= $this->indent . self::INDENT . '$args = func_get_args();' . PHP_EOL; - } - - $code .= $this->indent . self::INDENT . 'return '; - if ($method->acceptsVariableArguments()) { - $code .= 'call_user_func_array(array(\'' - . '\\' . $method->getClassName() . '\', \'' - . $method->getName() . '\'), $args);' . PHP_EOL; - } else { - $code .= '\\' . $method->getClassName() . '::' - . $method->getName() . '(' - . $method->getParameterInvocations() . ');' . PHP_EOL; - } - - return $code; - } - - public function generateClosing() - { - return $this->indent . '}' . PHP_EOL; - } - - public function write() - { - file_put_contents($this->file, $this->code); - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php b/vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php deleted file mode 100644 index 37f80b6e..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php +++ /dev/null @@ -1,115 +0,0 @@ -path = $path; - $this->factoryFiles = array(); - } - - public function addFactoryFile(FactoryFile $factoryFile) - { - $this->factoryFiles[] = $factoryFile; - } - - public function generate() - { - $classes = $this->getClassesWithFactoryMethods(); - foreach ($classes as $class) { - foreach ($class->getMethods() as $method) { - foreach ($method->getCalls() as $call) { - foreach ($this->factoryFiles as $file) { - $file->addCall($call); - } - } - } - } - } - - public function write() - { - foreach ($this->factoryFiles as $file) { - $file->build(); - $file->write(); - } - } - - public function getClassesWithFactoryMethods() - { - $classes = array(); - $files = $this->getSortedFiles(); - foreach ($files as $file) { - $class = $this->getFactoryClass($file); - if ($class !== null) { - $classes[] = $class; - } - } - - return $classes; - } - - public function getSortedFiles() - { - $iter = \File_Iterator_Factory::getFileIterator($this->path, '.php'); - $files = array(); - foreach ($iter as $file) { - $files[] = $file; - } - sort($files, SORT_STRING); - - return $files; - } - - public function getFactoryClass($file) - { - $name = $this->getFactoryClassName($file); - if ($name !== null) { - require_once $file; - - if (class_exists($name)) { - $class = new FactoryClass(substr($file, strpos($file, 'Hamcrest/')), new ReflectionClass($name)); - if ($class->isFactory()) { - return $class; - } - } - } - - return null; - } - - public function getFactoryClassName($file) - { - $content = file_get_contents($file); - if (preg_match('/namespace\s+(.+);/', $content, $namespace) - && preg_match('/\n\s*class\s+(\w+)\s+extends\b/', $content, $className) - && preg_match('/@factory\b/', $content) - ) { - return $namespace[1] . '\\' . $className[1]; - } - - return null; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php b/vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php deleted file mode 100644 index 44f8dc51..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php +++ /dev/null @@ -1,231 +0,0 @@ -class = $class; - $this->reflector = $reflector; - $this->extractCommentWithoutLeadingShashesAndStars(); - $this->extractFactoryNamesFromComment(); - $this->extractParameters(); - } - - public function extractCommentWithoutLeadingShashesAndStars() - { - $this->comment = explode("\n", $this->reflector->getDocComment()); - foreach ($this->comment as &$line) { - $line = preg_replace('#^\s*(/\\*+|\\*+/|\\*)\s?#', '', $line); - } - $this->trimLeadingBlankLinesFromComment(); - $this->trimTrailingBlankLinesFromComment(); - } - - public function trimLeadingBlankLinesFromComment() - { - while (count($this->comment) > 0) { - $line = array_shift($this->comment); - if (trim($line) != '') { - array_unshift($this->comment, $line); - break; - } - } - } - - public function trimTrailingBlankLinesFromComment() - { - while (count($this->comment) > 0) { - $line = array_pop($this->comment); - if (trim($line) != '') { - array_push($this->comment, $line); - break; - } - } - } - - public function extractFactoryNamesFromComment() - { - $this->calls = array(); - for ($i = 0; $i < count($this->comment); $i++) { - if ($this->extractFactoryNamesFromLine($this->comment[$i])) { - unset($this->comment[$i]); - } - } - $this->trimTrailingBlankLinesFromComment(); - } - - public function extractFactoryNamesFromLine($line) - { - if (preg_match('/^\s*@factory(\s+(.+))?$/', $line, $match)) { - $this->createCalls( - $this->extractFactoryNamesFromAnnotation( - isset($match[2]) ? trim($match[2]) : null - ) - ); - return true; - } - return false; - } - - public function extractFactoryNamesFromAnnotation($value) - { - $primaryName = $this->reflector->getName(); - if (empty($value)) { - return array($primaryName); - } - preg_match_all('/(\.{3}|-|[a-zA-Z_][a-zA-Z_0-9]*)/', $value, $match); - $names = $match[0]; - if (in_array('...', $names)) { - $this->isVarArgs = true; - } - if (!in_array('-', $names) && !in_array($primaryName, $names)) { - array_unshift($names, $primaryName); - } - return $names; - } - - public function createCalls(array $names) - { - $names = array_unique($names); - foreach ($names as $name) { - if ($name != '-' && $name != '...') { - $this->calls[] = new FactoryCall($this, $name); - } - } - } - - public function extractParameters() - { - $this->parameters = array(); - if (!$this->isVarArgs) { - foreach ($this->reflector->getParameters() as $parameter) { - $this->parameters[] = new FactoryParameter($this, $parameter); - } - } - } - - public function getParameterDeclarations() - { - if ($this->isVarArgs || !$this->hasParameters()) { - return ''; - } - $params = array(); - foreach ($this->parameters as /** @var $parameter FactoryParameter */ - $parameter) { - $params[] = $parameter->getDeclaration(); - } - return implode(', ', $params); - } - - public function getParameterInvocations() - { - if ($this->isVarArgs) { - return ''; - } - $params = array(); - foreach ($this->parameters as $parameter) { - $params[] = $parameter->getInvocation(); - } - return implode(', ', $params); - } - - - public function getClass() - { - return $this->class; - } - - public function getClassName() - { - return $this->class->getName(); - } - - public function getName() - { - return $this->reflector->name; - } - - public function isFactory() - { - return count($this->calls) > 0; - } - - public function getCalls() - { - return $this->calls; - } - - public function acceptsVariableArguments() - { - return $this->isVarArgs; - } - - public function hasParameters() - { - return !empty($this->parameters); - } - - public function getParameters() - { - return $this->parameters; - } - - public function getFullName() - { - return $this->getClassName() . '::' . $this->getName(); - } - - public function getCommentText() - { - return implode(PHP_EOL, $this->comment); - } - - public function getComment($indent = '') - { - $comment = $indent . '/**'; - foreach ($this->comment as $line) { - $comment .= PHP_EOL . rtrim($indent . ' * ' . $line); - } - $comment .= PHP_EOL . $indent . ' */'; - return $comment; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php b/vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php deleted file mode 100644 index 93a76b38..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php +++ /dev/null @@ -1,69 +0,0 @@ -method = $method; - $this->reflector = $reflector; - } - - public function getDeclaration() - { - if ($this->reflector->isArray()) { - $code = 'array '; - } else { - $class = $this->reflector->getClass(); - if ($class !== null) { - $code = '\\' . $class->name . ' '; - } else { - $code = ''; - } - } - $code .= '$' . $this->reflector->name; - if ($this->reflector->isOptional()) { - $default = $this->reflector->getDefaultValue(); - if (is_null($default)) { - $default = 'null'; - } elseif (is_bool($default)) { - $default = $default ? 'true' : 'false'; - } elseif (is_string($default)) { - $default = "'" . $default . "'"; - } elseif (is_numeric($default)) { - $default = strval($default); - } elseif (is_array($default)) { - $default = 'array()'; - } else { - echo 'Warning: unknown default type for ' . $this->getMethod()->getFullName() . PHP_EOL; - var_dump($default); - $default = 'null'; - } - $code .= ' = ' . $default; - } - return $code; - } - - public function getInvocation() - { - return '$' . $this->reflector->name; - } - - public function getMethod() - { - return $this->method; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php b/vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php deleted file mode 100644 index 5ee1b69f..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php +++ /dev/null @@ -1,42 +0,0 @@ -functions = ''; - } - - public function addCall(FactoryCall $call) - { - $this->functions .= PHP_EOL . $this->generateFactoryCall($call); - } - - public function build() - { - $this->addFileHeader(); - $this->addPart('functions_imports'); - $this->addPart('functions_header'); - $this->addCode($this->functions); - $this->addPart('functions_footer'); - } - - public function generateFactoryCall(FactoryCall $call) - { - $code = "if (!function_exists('{$call->getName()}')) {"; - $code.= parent::generateFactoryCall($call); - $code.= "}\n"; - - return $code; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php b/vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php deleted file mode 100644 index 44cec02f..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php +++ /dev/null @@ -1,38 +0,0 @@ -methods = ''; - } - - public function addCall(FactoryCall $call) - { - $this->methods .= PHP_EOL . $this->generateFactoryCall($call); - } - - public function getDeclarationModifiers() - { - return 'public static '; - } - - public function build() - { - $this->addFileHeader(); - $this->addPart('matchers_imports'); - $this->addPart('matchers_header'); - $this->addCode($this->methods); - $this->addPart('matchers_footer'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt b/vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt deleted file mode 100644 index 7b352e44..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt +++ /dev/null @@ -1,7 +0,0 @@ - - * //With an identifier - * assertThat("assertion identifier", $apple->flavour(), equalTo("tasty")); - * //Without an identifier - * assertThat($apple->flavour(), equalTo("tasty")); - * //Evaluating a boolean expression - * assertThat("some error", $a > $b); - * - */ - function assertThat() - { - $args = func_get_args(); - call_user_func_array( - array('Hamcrest\MatcherAssert', 'assertThat'), - $args - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt b/vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt b/vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt deleted file mode 100644 index 5c34318c..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt +++ /dev/null @@ -1 +0,0 @@ -} diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt b/vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt deleted file mode 100644 index 4f8bb2b7..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt +++ /dev/null @@ -1,7 +0,0 @@ - - -/** - * A series of static factories for all hamcrest matchers. - */ -class Matchers -{ diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt b/vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt deleted file mode 100644 index 7dd68495..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt +++ /dev/null @@ -1,2 +0,0 @@ - -namespace Hamcrest; \ No newline at end of file diff --git a/vendor/hamcrest/hamcrest-php/generator/run.php b/vendor/hamcrest/hamcrest-php/generator/run.php deleted file mode 100644 index 924d752f..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/run.php +++ /dev/null @@ -1,37 +0,0 @@ -addFactoryFile(new StaticMethodFile(STATIC_MATCHERS_FILE)); -$generator->addFactoryFile(new GlobalFunctionFile(GLOBAL_FUNCTIONS_FILE)); -$generator->generate(); -$generator->write(); diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php deleted file mode 100644 index 8a719eb3..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php +++ /dev/null @@ -1,805 +0,0 @@ - - * //With an identifier - * assertThat("assertion identifier", $apple->flavour(), equalTo("tasty")); - * //Without an identifier - * assertThat($apple->flavour(), equalTo("tasty")); - * //Evaluating a boolean expression - * assertThat("some error", $a > $b); - * - */ - function assertThat() - { - $args = func_get_args(); - call_user_func_array( - array('Hamcrest\MatcherAssert', 'assertThat'), - $args - ); - } -} - -if (!function_exists('anArray')) { /** - * Evaluates to true only if each $matcher[$i] is satisfied by $array[$i]. - */ - function anArray(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArray', 'anArray'), $args); - } -} - -if (!function_exists('hasItemInArray')) { /** - * Evaluates to true if any item in an array satisfies the given matcher. - * - * @param mixed $item as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContaining - */ - function hasItemInArray($item) - { - return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item); - } -} - -if (!function_exists('hasValue')) { /** - * Evaluates to true if any item in an array satisfies the given matcher. - * - * @param mixed $item as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContaining - */ - function hasValue($item) - { - return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item); - } -} - -if (!function_exists('arrayContainingInAnyOrder')) { /** - * An array with elements that match the given matchers. - */ - function arrayContainingInAnyOrder(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args); - } -} - -if (!function_exists('containsInAnyOrder')) { /** - * An array with elements that match the given matchers. - */ - function containsInAnyOrder(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args); - } -} - -if (!function_exists('arrayContaining')) { /** - * An array with elements that match the given matchers in the same order. - */ - function arrayContaining(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args); - } -} - -if (!function_exists('contains')) { /** - * An array with elements that match the given matchers in the same order. - */ - function contains(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args); - } -} - -if (!function_exists('hasKeyInArray')) { /** - * Evaluates to true if any key in an array matches the given matcher. - * - * @param mixed $key as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContainingKey - */ - function hasKeyInArray($key) - { - return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key); - } -} - -if (!function_exists('hasKey')) { /** - * Evaluates to true if any key in an array matches the given matcher. - * - * @param mixed $key as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContainingKey - */ - function hasKey($key) - { - return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key); - } -} - -if (!function_exists('hasKeyValuePair')) { /** - * Test if an array has both an key and value in parity with each other. - */ - function hasKeyValuePair($key, $value) - { - return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value); - } -} - -if (!function_exists('hasEntry')) { /** - * Test if an array has both an key and value in parity with each other. - */ - function hasEntry($key, $value) - { - return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value); - } -} - -if (!function_exists('arrayWithSize')) { /** - * Does array size satisfy a given matcher? - * - * @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayWithSize - */ - function arrayWithSize($size) - { - return \Hamcrest\Arrays\IsArrayWithSize::arrayWithSize($size); - } -} - -if (!function_exists('emptyArray')) { /** - * Matches an empty array. - */ - function emptyArray() - { - return \Hamcrest\Arrays\IsArrayWithSize::emptyArray(); - } -} - -if (!function_exists('nonEmptyArray')) { /** - * Matches an empty array. - */ - function nonEmptyArray() - { - return \Hamcrest\Arrays\IsArrayWithSize::nonEmptyArray(); - } -} - -if (!function_exists('emptyTraversable')) { /** - * Returns true if traversable is empty. - */ - function emptyTraversable() - { - return \Hamcrest\Collection\IsEmptyTraversable::emptyTraversable(); - } -} - -if (!function_exists('nonEmptyTraversable')) { /** - * Returns true if traversable is not empty. - */ - function nonEmptyTraversable() - { - return \Hamcrest\Collection\IsEmptyTraversable::nonEmptyTraversable(); - } -} - -if (!function_exists('traversableWithSize')) { /** - * Does traversable size satisfy a given matcher? - */ - function traversableWithSize($size) - { - return \Hamcrest\Collection\IsTraversableWithSize::traversableWithSize($size); - } -} - -if (!function_exists('allOf')) { /** - * Evaluates to true only if ALL of the passed in matchers evaluate to true. - */ - function allOf(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\AllOf', 'allOf'), $args); - } -} - -if (!function_exists('anyOf')) { /** - * Evaluates to true if ANY of the passed in matchers evaluate to true. - */ - function anyOf(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'anyOf'), $args); - } -} - -if (!function_exists('noneOf')) { /** - * Evaluates to false if ANY of the passed in matchers evaluate to true. - */ - function noneOf(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'noneOf'), $args); - } -} - -if (!function_exists('both')) { /** - * This is useful for fluently combining matchers that must both pass. - * For example: - *
-     *   assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
-     * 
- */ - function both(\Hamcrest\Matcher $matcher) - { - return \Hamcrest\Core\CombinableMatcher::both($matcher); - } -} - -if (!function_exists('either')) { /** - * This is useful for fluently combining matchers where either may pass, - * for example: - *
-     *   assertThat($string, either(containsString("a"))->orElse(containsString("b")));
-     * 
- */ - function either(\Hamcrest\Matcher $matcher) - { - return \Hamcrest\Core\CombinableMatcher::either($matcher); - } -} - -if (!function_exists('describedAs')) { /** - * Wraps an existing matcher and overrides the description when it fails. - */ - function describedAs(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\DescribedAs', 'describedAs'), $args); - } -} - -if (!function_exists('everyItem')) { /** - * @param Matcher $itemMatcher - * A matcher to apply to every element in an array. - * - * @return \Hamcrest\Core\Every - * Evaluates to TRUE for a collection in which every item matches $itemMatcher - */ - function everyItem(\Hamcrest\Matcher $itemMatcher) - { - return \Hamcrest\Core\Every::everyItem($itemMatcher); - } -} - -if (!function_exists('hasToString')) { /** - * Does array size satisfy a given matcher? - */ - function hasToString($matcher) - { - return \Hamcrest\Core\HasToString::hasToString($matcher); - } -} - -if (!function_exists('is')) { /** - * Decorates another Matcher, retaining the behavior but allowing tests - * to be slightly more expressive. - * - * For example: assertThat($cheese, equalTo($smelly)) - * vs. assertThat($cheese, is(equalTo($smelly))) - */ - function is($value) - { - return \Hamcrest\Core\Is::is($value); - } -} - -if (!function_exists('anything')) { /** - * This matcher always evaluates to true. - * - * @param string $description A meaningful string used when describing itself. - * - * @return \Hamcrest\Core\IsAnything - */ - function anything($description = 'ANYTHING') - { - return \Hamcrest\Core\IsAnything::anything($description); - } -} - -if (!function_exists('hasItem')) { /** - * Test if the value is an array containing this matcher. - * - * Example: - *
-     * assertThat(array('a', 'b'), hasItem(equalTo('b')));
-     * //Convenience defaults to equalTo()
-     * assertThat(array('a', 'b'), hasItem('b'));
-     * 
- */ - function hasItem(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItem'), $args); - } -} - -if (!function_exists('hasItems')) { /** - * Test if the value is an array containing elements that match all of these - * matchers. - * - * Example: - *
-     * assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
-     * 
- */ - function hasItems(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItems'), $args); - } -} - -if (!function_exists('equalTo')) { /** - * Is the value equal to another value, as tested by the use of the "==" - * comparison operator? - */ - function equalTo($item) - { - return \Hamcrest\Core\IsEqual::equalTo($item); - } -} - -if (!function_exists('identicalTo')) { /** - * Tests of the value is identical to $value as tested by the "===" operator. - */ - function identicalTo($value) - { - return \Hamcrest\Core\IsIdentical::identicalTo($value); - } -} - -if (!function_exists('anInstanceOf')) { /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - */ - function anInstanceOf($theClass) - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass); - } -} - -if (!function_exists('any')) { /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - */ - function any($theClass) - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass); - } -} - -if (!function_exists('not')) { /** - * Matches if value does not match $value. - */ - function not($value) - { - return \Hamcrest\Core\IsNot::not($value); - } -} - -if (!function_exists('nullValue')) { /** - * Matches if value is null. - */ - function nullValue() - { - return \Hamcrest\Core\IsNull::nullValue(); - } -} - -if (!function_exists('notNullValue')) { /** - * Matches if value is not null. - */ - function notNullValue() - { - return \Hamcrest\Core\IsNull::notNullValue(); - } -} - -if (!function_exists('sameInstance')) { /** - * Creates a new instance of IsSame. - * - * @param mixed $object - * The predicate evaluates to true only when the argument is - * this object. - * - * @return \Hamcrest\Core\IsSame - */ - function sameInstance($object) - { - return \Hamcrest\Core\IsSame::sameInstance($object); - } -} - -if (!function_exists('typeOf')) { /** - * Is the value a particular built-in type? - */ - function typeOf($theType) - { - return \Hamcrest\Core\IsTypeOf::typeOf($theType); - } -} - -if (!function_exists('set')) { /** - * Matches if value (class, object, or array) has named $property. - */ - function set($property) - { - return \Hamcrest\Core\Set::set($property); - } -} - -if (!function_exists('notSet')) { /** - * Matches if value (class, object, or array) does not have named $property. - */ - function notSet($property) - { - return \Hamcrest\Core\Set::notSet($property); - } -} - -if (!function_exists('closeTo')) { /** - * Matches if value is a number equal to $value within some range of - * acceptable error $delta. - */ - function closeTo($value, $delta) - { - return \Hamcrest\Number\IsCloseTo::closeTo($value, $delta); - } -} - -if (!function_exists('comparesEqualTo')) { /** - * The value is not > $value, nor < $value. - */ - function comparesEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::comparesEqualTo($value); - } -} - -if (!function_exists('greaterThan')) { /** - * The value is > $value. - */ - function greaterThan($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThan($value); - } -} - -if (!function_exists('greaterThanOrEqualTo')) { /** - * The value is >= $value. - */ - function greaterThanOrEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value); - } -} - -if (!function_exists('atLeast')) { /** - * The value is >= $value. - */ - function atLeast($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value); - } -} - -if (!function_exists('lessThan')) { /** - * The value is < $value. - */ - function lessThan($value) - { - return \Hamcrest\Number\OrderingComparison::lessThan($value); - } -} - -if (!function_exists('lessThanOrEqualTo')) { /** - * The value is <= $value. - */ - function lessThanOrEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value); - } -} - -if (!function_exists('atMost')) { /** - * The value is <= $value. - */ - function atMost($value) - { - return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value); - } -} - -if (!function_exists('isEmptyString')) { /** - * Matches if value is a zero-length string. - */ - function isEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyString(); - } -} - -if (!function_exists('emptyString')) { /** - * Matches if value is a zero-length string. - */ - function emptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyString(); - } -} - -if (!function_exists('isEmptyOrNullString')) { /** - * Matches if value is null or a zero-length string. - */ - function isEmptyOrNullString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString(); - } -} - -if (!function_exists('nullOrEmptyString')) { /** - * Matches if value is null or a zero-length string. - */ - function nullOrEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString(); - } -} - -if (!function_exists('isNonEmptyString')) { /** - * Matches if value is a non-zero-length string. - */ - function isNonEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isNonEmptyString(); - } -} - -if (!function_exists('nonEmptyString')) { /** - * Matches if value is a non-zero-length string. - */ - function nonEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isNonEmptyString(); - } -} - -if (!function_exists('equalToIgnoringCase')) { /** - * Matches if value is a string equal to $string, regardless of the case. - */ - function equalToIgnoringCase($string) - { - return \Hamcrest\Text\IsEqualIgnoringCase::equalToIgnoringCase($string); - } -} - -if (!function_exists('equalToIgnoringWhiteSpace')) { /** - * Matches if value is a string equal to $string, regardless of whitespace. - */ - function equalToIgnoringWhiteSpace($string) - { - return \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace($string); - } -} - -if (!function_exists('matchesPattern')) { /** - * Matches if value is a string that matches regular expression $pattern. - */ - function matchesPattern($pattern) - { - return \Hamcrest\Text\MatchesPattern::matchesPattern($pattern); - } -} - -if (!function_exists('containsString')) { /** - * Matches if value is a string that contains $substring. - */ - function containsString($substring) - { - return \Hamcrest\Text\StringContains::containsString($substring); - } -} - -if (!function_exists('containsStringIgnoringCase')) { /** - * Matches if value is a string that contains $substring regardless of the case. - */ - function containsStringIgnoringCase($substring) - { - return \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase($substring); - } -} - -if (!function_exists('stringContainsInOrder')) { /** - * Matches if value contains $substrings in a constrained order. - */ - function stringContainsInOrder(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Text\StringContainsInOrder', 'stringContainsInOrder'), $args); - } -} - -if (!function_exists('endsWith')) { /** - * Matches if value is a string that ends with $substring. - */ - function endsWith($substring) - { - return \Hamcrest\Text\StringEndsWith::endsWith($substring); - } -} - -if (!function_exists('startsWith')) { /** - * Matches if value is a string that starts with $substring. - */ - function startsWith($substring) - { - return \Hamcrest\Text\StringStartsWith::startsWith($substring); - } -} - -if (!function_exists('arrayValue')) { /** - * Is the value an array? - */ - function arrayValue() - { - return \Hamcrest\Type\IsArray::arrayValue(); - } -} - -if (!function_exists('booleanValue')) { /** - * Is the value a boolean? - */ - function booleanValue() - { - return \Hamcrest\Type\IsBoolean::booleanValue(); - } -} - -if (!function_exists('boolValue')) { /** - * Is the value a boolean? - */ - function boolValue() - { - return \Hamcrest\Type\IsBoolean::booleanValue(); - } -} - -if (!function_exists('callableValue')) { /** - * Is the value callable? - */ - function callableValue() - { - return \Hamcrest\Type\IsCallable::callableValue(); - } -} - -if (!function_exists('doubleValue')) { /** - * Is the value a float/double? - */ - function doubleValue() - { - return \Hamcrest\Type\IsDouble::doubleValue(); - } -} - -if (!function_exists('floatValue')) { /** - * Is the value a float/double? - */ - function floatValue() - { - return \Hamcrest\Type\IsDouble::doubleValue(); - } -} - -if (!function_exists('integerValue')) { /** - * Is the value an integer? - */ - function integerValue() - { - return \Hamcrest\Type\IsInteger::integerValue(); - } -} - -if (!function_exists('intValue')) { /** - * Is the value an integer? - */ - function intValue() - { - return \Hamcrest\Type\IsInteger::integerValue(); - } -} - -if (!function_exists('numericValue')) { /** - * Is the value a numeric? - */ - function numericValue() - { - return \Hamcrest\Type\IsNumeric::numericValue(); - } -} - -if (!function_exists('objectValue')) { /** - * Is the value an object? - */ - function objectValue() - { - return \Hamcrest\Type\IsObject::objectValue(); - } -} - -if (!function_exists('anObject')) { /** - * Is the value an object? - */ - function anObject() - { - return \Hamcrest\Type\IsObject::objectValue(); - } -} - -if (!function_exists('resourceValue')) { /** - * Is the value a resource? - */ - function resourceValue() - { - return \Hamcrest\Type\IsResource::resourceValue(); - } -} - -if (!function_exists('scalarValue')) { /** - * Is the value a scalar (boolean, integer, double, or string)? - */ - function scalarValue() - { - return \Hamcrest\Type\IsScalar::scalarValue(); - } -} - -if (!function_exists('stringValue')) { /** - * Is the value a string? - */ - function stringValue() - { - return \Hamcrest\Type\IsString::stringValue(); - } -} - -if (!function_exists('hasXPath')) { /** - * Wraps $matcher with {@link Hamcrest\Core\IsEqual) - * if it's not a matcher and the XPath in count() - * if it's an integer. - */ - function hasXPath($xpath, $matcher = null) - { - return \Hamcrest\Xml\HasXPath::hasXPath($xpath, $matcher); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php deleted file mode 100644 index 9ea56970..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php +++ /dev/null @@ -1,118 +0,0 @@ -_elementMatchers = $elementMatchers; - } - - protected function matchesSafely($array) - { - if (array_keys($array) != array_keys($this->_elementMatchers)) { - return false; - } - - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_elementMatchers as $k => $matcher) { - if (!$matcher->matches($array[$k])) { - return false; - } - } - - return true; - } - - protected function describeMismatchSafely($actual, Description $mismatchDescription) - { - if (count($actual) != count($this->_elementMatchers)) { - $mismatchDescription->appendText('array length was ' . count($actual)); - - return; - } elseif (array_keys($actual) != array_keys($this->_elementMatchers)) { - $mismatchDescription->appendText('array keys were ') - ->appendValueList( - $this->descriptionStart(), - $this->descriptionSeparator(), - $this->descriptionEnd(), - array_keys($actual) - ) - ; - - return; - } - - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_elementMatchers as $k => $matcher) { - if (!$matcher->matches($actual[$k])) { - $mismatchDescription->appendText('element ')->appendValue($k) - ->appendText(' was ')->appendValue($actual[$k]); - - return; - } - } - } - - public function describeTo(Description $description) - { - $description->appendList( - $this->descriptionStart(), - $this->descriptionSeparator(), - $this->descriptionEnd(), - $this->_elementMatchers - ); - } - - /** - * Evaluates to true only if each $matcher[$i] is satisfied by $array[$i]. - * - * @factory ... - */ - public static function anArray(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } - - // -- Protected Methods - - protected function descriptionStart() - { - return '['; - } - - protected function descriptionSeparator() - { - return ', '; - } - - protected function descriptionEnd() - { - return ']'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php deleted file mode 100644 index 0e4a1eda..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php +++ /dev/null @@ -1,63 +0,0 @@ -_elementMatcher = $elementMatcher; - } - - protected function matchesSafely($array) - { - foreach ($array as $element) { - if ($this->_elementMatcher->matches($element)) { - return true; - } - } - - return false; - } - - protected function describeMismatchSafely($array, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendValue($array); - } - - public function describeTo(Description $description) - { - $description - ->appendText('an array containing ') - ->appendDescriptionOf($this->_elementMatcher) - ; - } - - /** - * Evaluates to true if any item in an array satisfies the given matcher. - * - * @param mixed $item as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContaining - * @factory hasValue - */ - public static function hasItemInArray($item) - { - return new self(Util::wrapValueWithIsEqual($item)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php deleted file mode 100644 index 9009026b..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php +++ /dev/null @@ -1,59 +0,0 @@ -_elementMatchers = $elementMatchers; - } - - protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription) - { - $matching = new MatchingOnce($this->_elementMatchers, $mismatchDescription); - - foreach ($array as $element) { - if (!$matching->matches($element)) { - return false; - } - } - - return $matching->isFinished($array); - } - - public function describeTo(Description $description) - { - $description->appendList('[', ', ', ']', $this->_elementMatchers) - ->appendText(' in any order') - ; - } - - /** - * An array with elements that match the given matchers. - * - * @factory containsInAnyOrder ... - */ - public static function arrayContainingInAnyOrder(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php deleted file mode 100644 index 61157404..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php +++ /dev/null @@ -1,57 +0,0 @@ -_elementMatchers = $elementMatchers; - } - - protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription) - { - $series = new SeriesMatchingOnce($this->_elementMatchers, $mismatchDescription); - - foreach ($array as $element) { - if (!$series->matches($element)) { - return false; - } - } - - return $series->isFinished(); - } - - public function describeTo(Description $description) - { - $description->appendList('[', ', ', ']', $this->_elementMatchers); - } - - /** - * An array with elements that match the given matchers in the same order. - * - * @factory contains ... - */ - public static function arrayContaining(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php deleted file mode 100644 index 523477e7..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php +++ /dev/null @@ -1,75 +0,0 @@ -_keyMatcher = $keyMatcher; - } - - protected function matchesSafely($array) - { - foreach ($array as $key => $element) { - if ($this->_keyMatcher->matches($key)) { - return true; - } - } - - return false; - } - - protected function describeMismatchSafely($array, Description $mismatchDescription) - { - //Not using appendValueList() so that keys can be shown - $mismatchDescription->appendText('array was ') - ->appendText('[') - ; - $loop = false; - foreach ($array as $key => $value) { - if ($loop) { - $mismatchDescription->appendText(', '); - } - $mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value); - $loop = true; - } - $mismatchDescription->appendText(']'); - } - - public function describeTo(Description $description) - { - $description - ->appendText('array with key ') - ->appendDescriptionOf($this->_keyMatcher) - ; - } - - /** - * Evaluates to true if any key in an array matches the given matcher. - * - * @param mixed $key as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContainingKey - * @factory hasKey - */ - public static function hasKeyInArray($key) - { - return new self(Util::wrapValueWithIsEqual($key)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php deleted file mode 100644 index 9ac3eba8..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php +++ /dev/null @@ -1,80 +0,0 @@ -_keyMatcher = $keyMatcher; - $this->_valueMatcher = $valueMatcher; - } - - protected function matchesSafely($array) - { - foreach ($array as $key => $value) { - if ($this->_keyMatcher->matches($key) && $this->_valueMatcher->matches($value)) { - return true; - } - } - - return false; - } - - protected function describeMismatchSafely($array, Description $mismatchDescription) - { - //Not using appendValueList() so that keys can be shown - $mismatchDescription->appendText('array was ') - ->appendText('[') - ; - $loop = false; - foreach ($array as $key => $value) { - if ($loop) { - $mismatchDescription->appendText(', '); - } - $mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value); - $loop = true; - } - $mismatchDescription->appendText(']'); - } - - public function describeTo(Description $description) - { - $description->appendText('array containing [') - ->appendDescriptionOf($this->_keyMatcher) - ->appendText(' => ') - ->appendDescriptionOf($this->_valueMatcher) - ->appendText(']') - ; - } - - /** - * Test if an array has both an key and value in parity with each other. - * - * @factory hasEntry - */ - public static function hasKeyValuePair($key, $value) - { - return new self( - Util::wrapValueWithIsEqual($key), - Util::wrapValueWithIsEqual($value) - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php deleted file mode 100644 index 074375ce..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php +++ /dev/null @@ -1,73 +0,0 @@ -_elementMatchers = $elementMatchers; - $this->_mismatchDescription = $mismatchDescription; - } - - public function matches($item) - { - return $this->_isNotSurplus($item) && $this->_isMatched($item); - } - - public function isFinished($items) - { - if (empty($this->_elementMatchers)) { - return true; - } - - $this->_mismatchDescription - ->appendText('No item matches: ')->appendList('', ', ', '', $this->_elementMatchers) - ->appendText(' in ')->appendValueList('[', ', ', ']', $items) - ; - - return false; - } - - // -- Private Methods - - private function _isNotSurplus($item) - { - if (empty($this->_elementMatchers)) { - $this->_mismatchDescription->appendText('Not matched: ')->appendValue($item); - - return false; - } - - return true; - } - - private function _isMatched($item) - { - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_elementMatchers as $i => $matcher) { - if ($matcher->matches($item)) { - unset($this->_elementMatchers[$i]); - - return true; - } - } - - $this->_mismatchDescription->appendText('Not matched: ')->appendValue($item); - - return false; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php deleted file mode 100644 index 12a912d8..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php +++ /dev/null @@ -1,75 +0,0 @@ -_elementMatchers = $elementMatchers; - $this->_keys = array_keys($elementMatchers); - $this->_mismatchDescription = $mismatchDescription; - } - - public function matches($item) - { - return $this->_isNotSurplus($item) && $this->_isMatched($item); - } - - public function isFinished() - { - if (!empty($this->_elementMatchers)) { - $nextMatcher = current($this->_elementMatchers); - $this->_mismatchDescription->appendText('No item matched: ')->appendDescriptionOf($nextMatcher); - - return false; - } - - return true; - } - - // -- Private Methods - - private function _isNotSurplus($item) - { - if (empty($this->_elementMatchers)) { - $this->_mismatchDescription->appendText('Not matched: ')->appendValue($item); - - return false; - } - - return true; - } - - private function _isMatched($item) - { - $this->_nextMatchKey = array_shift($this->_keys); - $nextMatcher = array_shift($this->_elementMatchers); - - if (!$nextMatcher->matches($item)) { - $this->_describeMismatch($nextMatcher, $item); - - return false; - } - - return true; - } - - private function _describeMismatch(Matcher $matcher, $item) - { - $this->_mismatchDescription->appendText('item with key ' . $this->_nextMatchKey . ': '); - $matcher->describeMismatch($item, $this->_mismatchDescription); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php deleted file mode 100644 index 3a2a0e7c..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php +++ /dev/null @@ -1,10 +0,0 @@ -append($text); - - return $this; - } - - public function appendDescriptionOf(SelfDescribing $value) - { - $value->describeTo($this); - - return $this; - } - - public function appendValue($value) - { - if (is_null($value)) { - $this->append('null'); - } elseif (is_string($value)) { - $this->_toPhpSyntax($value); - } elseif (is_float($value)) { - $this->append('<'); - $this->append($value); - $this->append('F>'); - } elseif (is_bool($value)) { - $this->append('<'); - $this->append($value ? 'true' : 'false'); - $this->append('>'); - } elseif (is_array($value) || $value instanceof \Iterator || $value instanceof \IteratorAggregate) { - $this->appendValueList('[', ', ', ']', $value); - } elseif (is_object($value) && !method_exists($value, '__toString')) { - $this->append('<'); - $this->append(get_class($value)); - $this->append('>'); - } else { - $this->append('<'); - $this->append($value); - $this->append('>'); - } - - return $this; - } - - public function appendValueList($start, $separator, $end, $values) - { - $list = array(); - foreach ($values as $v) { - $list[] = new SelfDescribingValue($v); - } - - $this->appendList($start, $separator, $end, $list); - - return $this; - } - - public function appendList($start, $separator, $end, $values) - { - $this->append($start); - - $separate = false; - - foreach ($values as $value) { - /*if (!($value instanceof Hamcrest\SelfDescribing)) { - $value = new Hamcrest\Internal\SelfDescribingValue($value); - }*/ - - if ($separate) { - $this->append($separator); - } - - $this->appendDescriptionOf($value); - - $separate = true; - } - - $this->append($end); - - return $this; - } - - // -- Protected Methods - - /** - * Append the String $str to the description. - */ - abstract protected function append($str); - - // -- Private Methods - - private function _toPhpSyntax($value) - { - $str = '"'; - for ($i = 0, $len = strlen($value); $i < $len; ++$i) { - switch ($value[$i]) { - case '"': - $str .= '\\"'; - break; - - case "\t": - $str .= '\\t'; - break; - - case "\r": - $str .= '\\r'; - break; - - case "\n": - $str .= '\\n'; - break; - - default: - $str .= $value[$i]; - } - } - $str .= '"'; - $this->append($str); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php deleted file mode 100644 index 286db3e1..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php +++ /dev/null @@ -1,25 +0,0 @@ -appendText('was ')->appendValue($item); - } - - public function __toString() - { - return StringDescription::toString($this); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php deleted file mode 100644 index 8ab58ea5..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php +++ /dev/null @@ -1,71 +0,0 @@ -_empty = $empty; - } - - public function matches($item) - { - if (!$item instanceof \Traversable) { - return false; - } - - foreach ($item as $value) { - return !$this->_empty; - } - - return $this->_empty; - } - - public function describeTo(Description $description) - { - $description->appendText($this->_empty ? 'an empty traversable' : 'a non-empty traversable'); - } - - /** - * Returns true if traversable is empty. - * - * @factory - */ - public static function emptyTraversable() - { - if (!self::$_INSTANCE) { - self::$_INSTANCE = new self; - } - - return self::$_INSTANCE; - } - - /** - * Returns true if traversable is not empty. - * - * @factory - */ - public static function nonEmptyTraversable() - { - if (!self::$_NOT_INSTANCE) { - self::$_NOT_INSTANCE = new self(false); - } - - return self::$_NOT_INSTANCE; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php deleted file mode 100644 index c95edc5c..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php +++ /dev/null @@ -1,47 +0,0 @@ -false. - */ -class AllOf extends DiagnosingMatcher -{ - - private $_matchers; - - public function __construct(array $matchers) - { - Util::checkAllAreMatchers($matchers); - - $this->_matchers = $matchers; - } - - public function matchesWithDiagnosticDescription($item, Description $mismatchDescription) - { - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_matchers as $matcher) { - if (!$matcher->matches($item)) { - $mismatchDescription->appendDescriptionOf($matcher)->appendText(' '); - $matcher->describeMismatch($item, $mismatchDescription); - - return false; - } - } - - return true; - } - - public function describeTo(Description $description) - { - $description->appendList('(', ' and ', ')', $this->_matchers); - } - - /** - * Evaluates to true only if ALL of the passed in matchers evaluate to true. - * - * @factory ... - */ - public static function allOf(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php deleted file mode 100644 index 4504279f..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php +++ /dev/null @@ -1,58 +0,0 @@ -true. - */ -class AnyOf extends ShortcutCombination -{ - - public function __construct(array $matchers) - { - parent::__construct($matchers); - } - - public function matches($item) - { - return $this->matchesWithShortcut($item, true); - } - - public function describeTo(Description $description) - { - $this->describeToWithOperator($description, 'or'); - } - - /** - * Evaluates to true if ANY of the passed in matchers evaluate to true. - * - * @factory ... - */ - public static function anyOf(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } - - /** - * Evaluates to false if ANY of the passed in matchers evaluate to true. - * - * @factory ... - */ - public static function noneOf(/* args... */) - { - $args = func_get_args(); - - return IsNot::not( - new self(Util::createMatcherArray($args)) - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php deleted file mode 100644 index e3b4aa78..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php +++ /dev/null @@ -1,78 +0,0 @@ -_matcher = $matcher; - } - - public function matches($item) - { - return $this->_matcher->matches($item); - } - - public function describeTo(Description $description) - { - $description->appendDescriptionOf($this->_matcher); - } - - /** Diversion from Hamcrest-Java... Logical "and" not permitted */ - public function andAlso(Matcher $other) - { - return new self(new AllOf($this->_templatedListWith($other))); - } - - /** Diversion from Hamcrest-Java... Logical "or" not permitted */ - public function orElse(Matcher $other) - { - return new self(new AnyOf($this->_templatedListWith($other))); - } - - /** - * This is useful for fluently combining matchers that must both pass. - * For example: - *
-     *   assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
-     * 
- * - * @factory - */ - public static function both(Matcher $matcher) - { - return new self($matcher); - } - - /** - * This is useful for fluently combining matchers where either may pass, - * for example: - *
-     *   assertThat($string, either(containsString("a"))->orElse(containsString("b")));
-     * 
- * - * @factory - */ - public static function either(Matcher $matcher) - { - return new self($matcher); - } - - // -- Private Methods - - private function _templatedListWith(Matcher $other) - { - return array($this->_matcher, $other); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php deleted file mode 100644 index 5b2583fa..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php +++ /dev/null @@ -1,68 +0,0 @@ -_descriptionTemplate = $descriptionTemplate; - $this->_matcher = $matcher; - $this->_values = $values; - } - - public function matches($item) - { - return $this->_matcher->matches($item); - } - - public function describeTo(Description $description) - { - $textStart = 0; - while (preg_match(self::ARG_PATTERN, $this->_descriptionTemplate, $matches, PREG_OFFSET_CAPTURE, $textStart)) { - $text = $matches[0][0]; - $index = $matches[1][0]; - $offset = $matches[0][1]; - - $description->appendText(substr($this->_descriptionTemplate, $textStart, $offset - $textStart)); - $description->appendValue($this->_values[$index]); - - $textStart = $offset + strlen($text); - } - - if ($textStart < strlen($this->_descriptionTemplate)) { - $description->appendText(substr($this->_descriptionTemplate, $textStart)); - } - } - - /** - * Wraps an existing matcher and overrides the description when it fails. - * - * @factory ... - */ - public static function describedAs(/* $description, Hamcrest\Matcher $matcher, $values... */) - { - $args = func_get_args(); - $description = array_shift($args); - $matcher = array_shift($args); - $values = $args; - - return new self($description, $matcher, $values); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php deleted file mode 100644 index d686f8da..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php +++ /dev/null @@ -1,56 +0,0 @@ -_matcher = $matcher; - } - - protected function matchesSafelyWithDiagnosticDescription($items, Description $mismatchDescription) - { - foreach ($items as $item) { - if (!$this->_matcher->matches($item)) { - $mismatchDescription->appendText('an item '); - $this->_matcher->describeMismatch($item, $mismatchDescription); - - return false; - } - } - - return true; - } - - public function describeTo(Description $description) - { - $description->appendText('every item is ')->appendDescriptionOf($this->_matcher); - } - - /** - * @param Matcher $itemMatcher - * A matcher to apply to every element in an array. - * - * @return \Hamcrest\Core\Every - * Evaluates to TRUE for a collection in which every item matches $itemMatcher - * - * @factory - */ - public static function everyItem(Matcher $itemMatcher) - { - return new self($itemMatcher); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php deleted file mode 100644 index 45bd9102..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php +++ /dev/null @@ -1,56 +0,0 @@ -toString(); - } - - return (string) $actual; - } - - /** - * Does array size satisfy a given matcher? - * - * @factory - */ - public static function hasToString($matcher) - { - return new self(Util::wrapValueWithIsEqual($matcher)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php deleted file mode 100644 index 41266dc1..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php +++ /dev/null @@ -1,57 +0,0 @@ -_matcher = $matcher; - } - - public function matches($arg) - { - return $this->_matcher->matches($arg); - } - - public function describeTo(Description $description) - { - $description->appendText('is ')->appendDescriptionOf($this->_matcher); - } - - public function describeMismatch($item, Description $mismatchDescription) - { - $this->_matcher->describeMismatch($item, $mismatchDescription); - } - - /** - * Decorates another Matcher, retaining the behavior but allowing tests - * to be slightly more expressive. - * - * For example: assertThat($cheese, equalTo($smelly)) - * vs. assertThat($cheese, is(equalTo($smelly))) - * - * @factory - */ - public static function is($value) - { - return new self(Util::wrapValueWithIsEqual($value)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php deleted file mode 100644 index f20e6c0d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php +++ /dev/null @@ -1,45 +0,0 @@ -true. - */ -class IsAnything extends BaseMatcher -{ - - private $_message; - - public function __construct($message = 'ANYTHING') - { - $this->_message = $message; - } - - public function matches($item) - { - return true; - } - - public function describeTo(Description $description) - { - $description->appendText($this->_message); - } - - /** - * This matcher always evaluates to true. - * - * @param string $description A meaningful string used when describing itself. - * - * @return \Hamcrest\Core\IsAnything - * @factory - */ - public static function anything($description = 'ANYTHING') - { - return new self($description); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php deleted file mode 100644 index 5e60426d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php +++ /dev/null @@ -1,93 +0,0 @@ -_elementMatcher = $elementMatcher; - } - - protected function matchesSafely($items) - { - foreach ($items as $item) { - if ($this->_elementMatcher->matches($item)) { - return true; - } - } - - return false; - } - - protected function describeMismatchSafely($items, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendValue($items); - } - - public function describeTo(Description $description) - { - $description - ->appendText('a collection containing ') - ->appendDescriptionOf($this->_elementMatcher) - ; - } - - /** - * Test if the value is an array containing this matcher. - * - * Example: - *
-     * assertThat(array('a', 'b'), hasItem(equalTo('b')));
-     * //Convenience defaults to equalTo()
-     * assertThat(array('a', 'b'), hasItem('b'));
-     * 
- * - * @factory ... - */ - public static function hasItem() - { - $args = func_get_args(); - $firstArg = array_shift($args); - - return new self(Util::wrapValueWithIsEqual($firstArg)); - } - - /** - * Test if the value is an array containing elements that match all of these - * matchers. - * - * Example: - *
-     * assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
-     * 
- * - * @factory ... - */ - public static function hasItems(/* args... */) - { - $args = func_get_args(); - $matchers = array(); - - foreach ($args as $arg) { - $matchers[] = self::hasItem($arg); - } - - return AllOf::allOf($matchers); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php deleted file mode 100644 index 523fba0b..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php +++ /dev/null @@ -1,44 +0,0 @@ -_item = $item; - } - - public function matches($arg) - { - return (($arg == $this->_item) && ($this->_item == $arg)); - } - - public function describeTo(Description $description) - { - $description->appendValue($this->_item); - } - - /** - * Is the value equal to another value, as tested by the use of the "==" - * comparison operator? - * - * @factory - */ - public static function equalTo($item) - { - return new self($item); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php deleted file mode 100644 index 28f7b36e..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php +++ /dev/null @@ -1,38 +0,0 @@ -_value = $value; - } - - public function describeTo(Description $description) - { - $description->appendValue($this->_value); - } - - /** - * Tests of the value is identical to $value as tested by the "===" operator. - * - * @factory - */ - public static function identicalTo($value) - { - return new self($value); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php deleted file mode 100644 index 7a5c92a6..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php +++ /dev/null @@ -1,67 +0,0 @@ -_theClass = $theClass; - } - - protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription) - { - if (!is_object($item)) { - $mismatchDescription->appendText('was ')->appendValue($item); - - return false; - } - - if (!($item instanceof $this->_theClass)) { - $mismatchDescription->appendText('[' . get_class($item) . '] ') - ->appendValue($item); - - return false; - } - - return true; - } - - public function describeTo(Description $description) - { - $description->appendText('an instance of ') - ->appendText($this->_theClass) - ; - } - - /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - * - * @factory any - */ - public static function anInstanceOf($theClass) - { - return new self($theClass); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php deleted file mode 100644 index 167f0d06..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php +++ /dev/null @@ -1,44 +0,0 @@ -_matcher = $matcher; - } - - public function matches($arg) - { - return !$this->_matcher->matches($arg); - } - - public function describeTo(Description $description) - { - $description->appendText('not ')->appendDescriptionOf($this->_matcher); - } - - /** - * Matches if value does not match $value. - * - * @factory - */ - public static function not($value) - { - return new self(Util::wrapValueWithIsEqual($value)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php deleted file mode 100644 index 91a454c1..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php +++ /dev/null @@ -1,56 +0,0 @@ -appendText('null'); - } - - /** - * Matches if value is null. - * - * @factory - */ - public static function nullValue() - { - if (!self::$_INSTANCE) { - self::$_INSTANCE = new self(); - } - - return self::$_INSTANCE; - } - - /** - * Matches if value is not null. - * - * @factory - */ - public static function notNullValue() - { - if (!self::$_NOT_INSTANCE) { - self::$_NOT_INSTANCE = IsNot::not(self::nullValue()); - } - - return self::$_NOT_INSTANCE; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php deleted file mode 100644 index 81078705..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php +++ /dev/null @@ -1,51 +0,0 @@ -_object = $object; - } - - public function matches($object) - { - return ($object === $this->_object) && ($this->_object === $object); - } - - public function describeTo(Description $description) - { - $description->appendText('sameInstance(') - ->appendValue($this->_object) - ->appendText(')') - ; - } - - /** - * Creates a new instance of IsSame. - * - * @param mixed $object - * The predicate evaluates to true only when the argument is - * this object. - * - * @return \Hamcrest\Core\IsSame - * @factory - */ - public static function sameInstance($object) - { - return new self($object); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php deleted file mode 100644 index d24f0f94..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php +++ /dev/null @@ -1,71 +0,0 @@ -_theType = strtolower($theType); - } - - public function matches($item) - { - return strtolower(gettype($item)) == $this->_theType; - } - - public function describeTo(Description $description) - { - $description->appendText(self::getTypeDescription($this->_theType)); - } - - public function describeMismatch($item, Description $description) - { - if ($item === null) { - $description->appendText('was null'); - } else { - $description->appendText('was ') - ->appendText(self::getTypeDescription(strtolower(gettype($item)))) - ->appendText(' ') - ->appendValue($item) - ; - } - } - - public static function getTypeDescription($type) - { - if ($type == 'null') { - return 'null'; - } - - return (strpos('aeiou', substr($type, 0, 1)) === false ? 'a ' : 'an ') - . $type; - } - - /** - * Is the value a particular built-in type? - * - * @factory - */ - public static function typeOf($theType) - { - return new self($theType); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php deleted file mode 100644 index cdc45d53..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php +++ /dev/null @@ -1,95 +0,0 @@ - - * assertThat(array('a', 'b'), set('b')); - * assertThat($foo, set('bar')); - * assertThat('Server', notSet('defaultPort')); - * - * - * @todo Replace $property with a matcher and iterate all property names. - */ -class Set extends BaseMatcher -{ - - private $_property; - private $_not; - - public function __construct($property, $not = false) - { - $this->_property = $property; - $this->_not = $not; - } - - public function matches($item) - { - if ($item === null) { - return false; - } - $property = $this->_property; - if (is_array($item)) { - $result = isset($item[$property]); - } elseif (is_object($item)) { - $result = isset($item->$property); - } elseif (is_string($item)) { - $result = isset($item::$$property); - } else { - throw new \InvalidArgumentException('Must pass an object, array, or class name'); - } - - return $this->_not ? !$result : $result; - } - - public function describeTo(Description $description) - { - $description->appendText($this->_not ? 'unset property ' : 'set property ')->appendText($this->_property); - } - - public function describeMismatch($item, Description $description) - { - $value = ''; - if (!$this->_not) { - $description->appendText('was not set'); - } else { - $property = $this->_property; - if (is_array($item)) { - $value = $item[$property]; - } elseif (is_object($item)) { - $value = $item->$property; - } elseif (is_string($item)) { - $value = $item::$$property; - } - parent::describeMismatch($value, $description); - } - } - - /** - * Matches if value (class, object, or array) has named $property. - * - * @factory - */ - public static function set($property) - { - return new self($property); - } - - /** - * Matches if value (class, object, or array) does not have named $property. - * - * @factory - */ - public static function notSet($property) - { - return new self($property, true); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php deleted file mode 100644 index d93db74f..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ - private $_matchers; - - public function __construct(array $matchers) - { - Util::checkAllAreMatchers($matchers); - - $this->_matchers = $matchers; - } - - protected function matchesWithShortcut($item, $shortcut) - { - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_matchers as $matcher) { - if ($matcher->matches($item) == $shortcut) { - return $shortcut; - } - } - - return !$shortcut; - } - - public function describeToWithOperator(Description $description, $operator) - { - $description->appendList('(', ' ' . $operator . ' ', ')', $this->_matchers); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php deleted file mode 100644 index 9a482dbf..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php +++ /dev/null @@ -1,70 +0,0 @@ -matchesWithDiagnosticDescription($item, new NullDescription()); - } - - public function describeMismatch($item, Description $mismatchDescription) - { - $this->matchesWithDiagnosticDescription($item, $mismatchDescription); - } - - abstract protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription); -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php deleted file mode 100644 index 59f6cc73..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php +++ /dev/null @@ -1,67 +0,0 @@ -featureValueOf() in a subclass to pull out the feature to be - * matched against. - */ -abstract class FeatureMatcher extends TypeSafeDiagnosingMatcher -{ - - private $_subMatcher; - private $_featureDescription; - private $_featureName; - - /** - * Constructor. - * - * @param string $type - * @param string $subtype - * @param \Hamcrest\Matcher $subMatcher The matcher to apply to the feature - * @param string $featureDescription Descriptive text to use in describeTo - * @param string $featureName Identifying text for mismatch message - */ - public function __construct($type, $subtype, Matcher $subMatcher, $featureDescription, $featureName) - { - parent::__construct($type, $subtype); - - $this->_subMatcher = $subMatcher; - $this->_featureDescription = $featureDescription; - $this->_featureName = $featureName; - } - - /** - * Implement this to extract the interesting feature. - * - * @param mixed $actual the target object - * - * @return mixed the feature to be matched - */ - abstract protected function featureValueOf($actual); - - public function matchesSafelyWithDiagnosticDescription($actual, Description $mismatchDescription) - { - $featureValue = $this->featureValueOf($actual); - - if (!$this->_subMatcher->matches($featureValue)) { - $mismatchDescription->appendText($this->_featureName) - ->appendText(' was ')->appendValue($featureValue); - - return false; - } - - return true; - } - - final public function describeTo(Description $description) - { - $description->appendText($this->_featureDescription)->appendText(' ') - ->appendDescriptionOf($this->_subMatcher) - ; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php deleted file mode 100644 index 995da71d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php +++ /dev/null @@ -1,27 +0,0 @@ -_value = $value; - } - - public function describeTo(Description $description) - { - $description->appendValue($this->_value); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php deleted file mode 100644 index e5dcf093..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php +++ /dev/null @@ -1,50 +0,0 @@ - - * Matcher implementations should NOT directly implement this interface. - * Instead, extend the {@link Hamcrest\BaseMatcher} abstract class, - * which will ensure that the Matcher API can grow to support - * new features and remain compatible with all Matcher implementations. - *

- * For easy access to common Matcher implementations, use the static factory - * methods in {@link Hamcrest\CoreMatchers}. - * - * @see Hamcrest\CoreMatchers - * @see Hamcrest\BaseMatcher - */ -interface Matcher extends SelfDescribing -{ - - /** - * Evaluates the matcher for argument $item. - * - * @param mixed $item the object against which the matcher is evaluated. - * - * @return boolean true if $item matches, - * otherwise false. - * - * @see Hamcrest\BaseMatcher - */ - public function matches($item); - - /** - * Generate a description of why the matcher has not accepted the item. - * The description will be part of a larger description of why a matching - * failed, so it should be concise. - * This method assumes that matches($item) is false, but - * will not check this. - * - * @param mixed $item The item that the Matcher has rejected. - * @param Description $description - * @return - */ - public function describeMismatch($item, Description $description); -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php deleted file mode 100644 index d546dbee..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php +++ /dev/null @@ -1,118 +0,0 @@ - - * // With an identifier - * assertThat("apple flavour", $apple->flavour(), equalTo("tasty")); - * // Without an identifier - * assertThat($apple->flavour(), equalTo("tasty")); - * // Evaluating a boolean expression - * assertThat("some error", $a > $b); - * assertThat($a > $b); - * - */ - public static function assertThat(/* $args ... */) - { - $args = func_get_args(); - switch (count($args)) { - case 1: - self::$_count++; - if (!$args[0]) { - throw new AssertionError(); - } - break; - - case 2: - self::$_count++; - if ($args[1] instanceof Matcher) { - self::doAssert('', $args[0], $args[1]); - } elseif (!$args[1]) { - throw new AssertionError($args[0]); - } - break; - - case 3: - self::$_count++; - self::doAssert( - $args[0], - $args[1], - Util::wrapValueWithIsEqual($args[2]) - ); - break; - - default: - throw new \InvalidArgumentException('assertThat() requires one to three arguments'); - } - } - - /** - * Returns the number of assertions performed. - * - * @return int - */ - public static function getCount() - { - return self::$_count; - } - - /** - * Resets the number of assertions performed to zero. - */ - public static function resetCount() - { - self::$_count = 0; - } - - /** - * Performs the actual assertion logic. - * - * If $matcher doesn't match $actual, - * throws a {@link Hamcrest\AssertionError} with a description - * of the failure along with the optional $identifier. - * - * @param string $identifier added to the message upon failure - * @param mixed $actual value to compare against $matcher - * @param \Hamcrest\Matcher $matcher applied to $actual - * @throws AssertionError - */ - private static function doAssert($identifier, $actual, Matcher $matcher) - { - if (!$matcher->matches($actual)) { - $description = new StringDescription(); - if (!empty($identifier)) { - $description->appendText($identifier . PHP_EOL); - } - $description->appendText('Expected: ') - ->appendDescriptionOf($matcher) - ->appendText(PHP_EOL . ' but: '); - - $matcher->describeMismatch($actual, $description); - - throw new AssertionError((string) $description); - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php deleted file mode 100644 index 23232e45..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php +++ /dev/null @@ -1,713 +0,0 @@ - - * assertThat($string, both(containsString("a"))->andAlso(containsString("b"))); - * - */ - public static function both(\Hamcrest\Matcher $matcher) - { - return \Hamcrest\Core\CombinableMatcher::both($matcher); - } - - /** - * This is useful for fluently combining matchers where either may pass, - * for example: - *

-     *   assertThat($string, either(containsString("a"))->orElse(containsString("b")));
-     * 
- */ - public static function either(\Hamcrest\Matcher $matcher) - { - return \Hamcrest\Core\CombinableMatcher::either($matcher); - } - - /** - * Wraps an existing matcher and overrides the description when it fails. - */ - public static function describedAs(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\DescribedAs', 'describedAs'), $args); - } - - /** - * @param Matcher $itemMatcher - * A matcher to apply to every element in an array. - * - * @return \Hamcrest\Core\Every - * Evaluates to TRUE for a collection in which every item matches $itemMatcher - */ - public static function everyItem(\Hamcrest\Matcher $itemMatcher) - { - return \Hamcrest\Core\Every::everyItem($itemMatcher); - } - - /** - * Does array size satisfy a given matcher? - */ - public static function hasToString($matcher) - { - return \Hamcrest\Core\HasToString::hasToString($matcher); - } - - /** - * Decorates another Matcher, retaining the behavior but allowing tests - * to be slightly more expressive. - * - * For example: assertThat($cheese, equalTo($smelly)) - * vs. assertThat($cheese, is(equalTo($smelly))) - */ - public static function is($value) - { - return \Hamcrest\Core\Is::is($value); - } - - /** - * This matcher always evaluates to true. - * - * @param string $description A meaningful string used when describing itself. - * - * @return \Hamcrest\Core\IsAnything - */ - public static function anything($description = 'ANYTHING') - { - return \Hamcrest\Core\IsAnything::anything($description); - } - - /** - * Test if the value is an array containing this matcher. - * - * Example: - *
-     * assertThat(array('a', 'b'), hasItem(equalTo('b')));
-     * //Convenience defaults to equalTo()
-     * assertThat(array('a', 'b'), hasItem('b'));
-     * 
- */ - public static function hasItem(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItem'), $args); - } - - /** - * Test if the value is an array containing elements that match all of these - * matchers. - * - * Example: - *
-     * assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
-     * 
- */ - public static function hasItems(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItems'), $args); - } - - /** - * Is the value equal to another value, as tested by the use of the "==" - * comparison operator? - */ - public static function equalTo($item) - { - return \Hamcrest\Core\IsEqual::equalTo($item); - } - - /** - * Tests of the value is identical to $value as tested by the "===" operator. - */ - public static function identicalTo($value) - { - return \Hamcrest\Core\IsIdentical::identicalTo($value); - } - - /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - */ - public static function anInstanceOf($theClass) - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass); - } - - /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - */ - public static function any($theClass) - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass); - } - - /** - * Matches if value does not match $value. - */ - public static function not($value) - { - return \Hamcrest\Core\IsNot::not($value); - } - - /** - * Matches if value is null. - */ - public static function nullValue() - { - return \Hamcrest\Core\IsNull::nullValue(); - } - - /** - * Matches if value is not null. - */ - public static function notNullValue() - { - return \Hamcrest\Core\IsNull::notNullValue(); - } - - /** - * Creates a new instance of IsSame. - * - * @param mixed $object - * The predicate evaluates to true only when the argument is - * this object. - * - * @return \Hamcrest\Core\IsSame - */ - public static function sameInstance($object) - { - return \Hamcrest\Core\IsSame::sameInstance($object); - } - - /** - * Is the value a particular built-in type? - */ - public static function typeOf($theType) - { - return \Hamcrest\Core\IsTypeOf::typeOf($theType); - } - - /** - * Matches if value (class, object, or array) has named $property. - */ - public static function set($property) - { - return \Hamcrest\Core\Set::set($property); - } - - /** - * Matches if value (class, object, or array) does not have named $property. - */ - public static function notSet($property) - { - return \Hamcrest\Core\Set::notSet($property); - } - - /** - * Matches if value is a number equal to $value within some range of - * acceptable error $delta. - */ - public static function closeTo($value, $delta) - { - return \Hamcrest\Number\IsCloseTo::closeTo($value, $delta); - } - - /** - * The value is not > $value, nor < $value. - */ - public static function comparesEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::comparesEqualTo($value); - } - - /** - * The value is > $value. - */ - public static function greaterThan($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThan($value); - } - - /** - * The value is >= $value. - */ - public static function greaterThanOrEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value); - } - - /** - * The value is >= $value. - */ - public static function atLeast($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value); - } - - /** - * The value is < $value. - */ - public static function lessThan($value) - { - return \Hamcrest\Number\OrderingComparison::lessThan($value); - } - - /** - * The value is <= $value. - */ - public static function lessThanOrEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value); - } - - /** - * The value is <= $value. - */ - public static function atMost($value) - { - return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value); - } - - /** - * Matches if value is a zero-length string. - */ - public static function isEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyString(); - } - - /** - * Matches if value is a zero-length string. - */ - public static function emptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyString(); - } - - /** - * Matches if value is null or a zero-length string. - */ - public static function isEmptyOrNullString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString(); - } - - /** - * Matches if value is null or a zero-length string. - */ - public static function nullOrEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString(); - } - - /** - * Matches if value is a non-zero-length string. - */ - public static function isNonEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isNonEmptyString(); - } - - /** - * Matches if value is a non-zero-length string. - */ - public static function nonEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isNonEmptyString(); - } - - /** - * Matches if value is a string equal to $string, regardless of the case. - */ - public static function equalToIgnoringCase($string) - { - return \Hamcrest\Text\IsEqualIgnoringCase::equalToIgnoringCase($string); - } - - /** - * Matches if value is a string equal to $string, regardless of whitespace. - */ - public static function equalToIgnoringWhiteSpace($string) - { - return \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace($string); - } - - /** - * Matches if value is a string that matches regular expression $pattern. - */ - public static function matchesPattern($pattern) - { - return \Hamcrest\Text\MatchesPattern::matchesPattern($pattern); - } - - /** - * Matches if value is a string that contains $substring. - */ - public static function containsString($substring) - { - return \Hamcrest\Text\StringContains::containsString($substring); - } - - /** - * Matches if value is a string that contains $substring regardless of the case. - */ - public static function containsStringIgnoringCase($substring) - { - return \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase($substring); - } - - /** - * Matches if value contains $substrings in a constrained order. - */ - public static function stringContainsInOrder(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Text\StringContainsInOrder', 'stringContainsInOrder'), $args); - } - - /** - * Matches if value is a string that ends with $substring. - */ - public static function endsWith($substring) - { - return \Hamcrest\Text\StringEndsWith::endsWith($substring); - } - - /** - * Matches if value is a string that starts with $substring. - */ - public static function startsWith($substring) - { - return \Hamcrest\Text\StringStartsWith::startsWith($substring); - } - - /** - * Is the value an array? - */ - public static function arrayValue() - { - return \Hamcrest\Type\IsArray::arrayValue(); - } - - /** - * Is the value a boolean? - */ - public static function booleanValue() - { - return \Hamcrest\Type\IsBoolean::booleanValue(); - } - - /** - * Is the value a boolean? - */ - public static function boolValue() - { - return \Hamcrest\Type\IsBoolean::booleanValue(); - } - - /** - * Is the value callable? - */ - public static function callableValue() - { - return \Hamcrest\Type\IsCallable::callableValue(); - } - - /** - * Is the value a float/double? - */ - public static function doubleValue() - { - return \Hamcrest\Type\IsDouble::doubleValue(); - } - - /** - * Is the value a float/double? - */ - public static function floatValue() - { - return \Hamcrest\Type\IsDouble::doubleValue(); - } - - /** - * Is the value an integer? - */ - public static function integerValue() - { - return \Hamcrest\Type\IsInteger::integerValue(); - } - - /** - * Is the value an integer? - */ - public static function intValue() - { - return \Hamcrest\Type\IsInteger::integerValue(); - } - - /** - * Is the value a numeric? - */ - public static function numericValue() - { - return \Hamcrest\Type\IsNumeric::numericValue(); - } - - /** - * Is the value an object? - */ - public static function objectValue() - { - return \Hamcrest\Type\IsObject::objectValue(); - } - - /** - * Is the value an object? - */ - public static function anObject() - { - return \Hamcrest\Type\IsObject::objectValue(); - } - - /** - * Is the value a resource? - */ - public static function resourceValue() - { - return \Hamcrest\Type\IsResource::resourceValue(); - } - - /** - * Is the value a scalar (boolean, integer, double, or string)? - */ - public static function scalarValue() - { - return \Hamcrest\Type\IsScalar::scalarValue(); - } - - /** - * Is the value a string? - */ - public static function stringValue() - { - return \Hamcrest\Type\IsString::stringValue(); - } - - /** - * Wraps $matcher with {@link Hamcrest\Core\IsEqual) - * if it's not a matcher and the XPath in count() - * if it's an integer. - */ - public static function hasXPath($xpath, $matcher = null) - { - return \Hamcrest\Xml\HasXPath::hasXPath($xpath, $matcher); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php deleted file mode 100644 index aae8e461..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php +++ /dev/null @@ -1,43 +0,0 @@ -_value = $value; - $this->_delta = $delta; - } - - protected function matchesSafely($item) - { - return $this->_actualDelta($item) <= 0.0; - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendValue($item) - ->appendText(' differed by ') - ->appendValue($this->_actualDelta($item)) - ; - } - - public function describeTo(Description $description) - { - $description->appendText('a numeric value within ') - ->appendValue($this->_delta) - ->appendText(' of ') - ->appendValue($this->_value) - ; - } - - /** - * Matches if value is a number equal to $value within some range of - * acceptable error $delta. - * - * @factory - */ - public static function closeTo($value, $delta) - { - return new self($value, $delta); - } - - // -- Private Methods - - private function _actualDelta($item) - { - return (abs(($item - $this->_value)) - $this->_delta); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php deleted file mode 100644 index 369d0cfa..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php +++ /dev/null @@ -1,132 +0,0 @@ -_value = $value; - $this->_minCompare = $minCompare; - $this->_maxCompare = $maxCompare; - } - - protected function matchesSafely($other) - { - $compare = $this->_compare($this->_value, $other); - - return ($this->_minCompare <= $compare) && ($compare <= $this->_maxCompare); - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription - ->appendValue($item)->appendText(' was ') - ->appendText($this->_comparison($this->_compare($this->_value, $item))) - ->appendText(' ')->appendValue($this->_value) - ; - } - - public function describeTo(Description $description) - { - $description->appendText('a value ') - ->appendText($this->_comparison($this->_minCompare)) - ; - if ($this->_minCompare != $this->_maxCompare) { - $description->appendText(' or ') - ->appendText($this->_comparison($this->_maxCompare)) - ; - } - $description->appendText(' ')->appendValue($this->_value); - } - - /** - * The value is not > $value, nor < $value. - * - * @factory - */ - public static function comparesEqualTo($value) - { - return new self($value, 0, 0); - } - - /** - * The value is > $value. - * - * @factory - */ - public static function greaterThan($value) - { - return new self($value, -1, -1); - } - - /** - * The value is >= $value. - * - * @factory atLeast - */ - public static function greaterThanOrEqualTo($value) - { - return new self($value, -1, 0); - } - - /** - * The value is < $value. - * - * @factory - */ - public static function lessThan($value) - { - return new self($value, 1, 1); - } - - /** - * The value is <= $value. - * - * @factory atMost - */ - public static function lessThanOrEqualTo($value) - { - return new self($value, 0, 1); - } - - // -- Private Methods - - private function _compare($left, $right) - { - $a = $left; - $b = $right; - - if ($a < $b) { - return -1; - } elseif ($a == $b) { - return 0; - } else { - return 1; - } - } - - private function _comparison($compare) - { - if ($compare > 0) { - return 'less than'; - } elseif ($compare == 0) { - return 'equal to'; - } else { - return 'greater than'; - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php deleted file mode 100644 index 872fdf9c..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php +++ /dev/null @@ -1,23 +0,0 @@ -_out = (string) $out; - } - - public function __toString() - { - return $this->_out; - } - - /** - * Return the description of a {@link Hamcrest\SelfDescribing} object as a - * String. - * - * @param \Hamcrest\SelfDescribing $selfDescribing - * The object to be described. - * - * @return string - * The description of the object. - */ - public static function toString(SelfDescribing $selfDescribing) - { - $self = new self(); - - return (string) $self->appendDescriptionOf($selfDescribing); - } - - /** - * Alias for {@link toString()}. - */ - public static function asString(SelfDescribing $selfDescribing) - { - return self::toString($selfDescribing); - } - - // -- Protected Methods - - protected function append($str) - { - $this->_out .= $str; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php deleted file mode 100644 index 2ae61b96..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php +++ /dev/null @@ -1,85 +0,0 @@ -_empty = $empty; - } - - public function matches($item) - { - return $this->_empty - ? ($item === '') - : is_string($item) && $item !== ''; - } - - public function describeTo(Description $description) - { - $description->appendText($this->_empty ? 'an empty string' : 'a non-empty string'); - } - - /** - * Matches if value is a zero-length string. - * - * @factory emptyString - */ - public static function isEmptyString() - { - if (!self::$_INSTANCE) { - self::$_INSTANCE = new self(true); - } - - return self::$_INSTANCE; - } - - /** - * Matches if value is null or a zero-length string. - * - * @factory nullOrEmptyString - */ - public static function isEmptyOrNullString() - { - if (!self::$_NULL_OR_EMPTY_INSTANCE) { - self::$_NULL_OR_EMPTY_INSTANCE = AnyOf::anyOf( - IsNull::nullvalue(), - self::isEmptyString() - ); - } - - return self::$_NULL_OR_EMPTY_INSTANCE; - } - - /** - * Matches if value is a non-zero-length string. - * - * @factory nonEmptyString - */ - public static function isNonEmptyString() - { - if (!self::$_NOT_INSTANCE) { - self::$_NOT_INSTANCE = new self(false); - } - - return self::$_NOT_INSTANCE; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php deleted file mode 100644 index 3836a8c3..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php +++ /dev/null @@ -1,52 +0,0 @@ -_string = $string; - } - - protected function matchesSafely($item) - { - return strtolower($this->_string) === strtolower($item); - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendText($item); - } - - public function describeTo(Description $description) - { - $description->appendText('equalToIgnoringCase(') - ->appendValue($this->_string) - ->appendText(')') - ; - } - - /** - * Matches if value is a string equal to $string, regardless of the case. - * - * @factory - */ - public static function equalToIgnoringCase($string) - { - return new self($string); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php deleted file mode 100644 index 853692b0..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php +++ /dev/null @@ -1,66 +0,0 @@ -_string = $string; - } - - protected function matchesSafely($item) - { - return (strtolower($this->_stripSpace($item)) - === strtolower($this->_stripSpace($this->_string))); - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendText($item); - } - - public function describeTo(Description $description) - { - $description->appendText('equalToIgnoringWhiteSpace(') - ->appendValue($this->_string) - ->appendText(')') - ; - } - - /** - * Matches if value is a string equal to $string, regardless of whitespace. - * - * @factory - */ - public static function equalToIgnoringWhiteSpace($string) - { - return new self($string); - } - - // -- Private Methods - - private function _stripSpace($string) - { - $parts = preg_split("/[\r\n\t ]+/", $string); - foreach ($parts as $i => $part) { - $parts[$i] = trim($part, " \r\n\t"); - } - - return trim(implode(' ', $parts), " \r\n\t"); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php deleted file mode 100644 index fa0d68ee..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php +++ /dev/null @@ -1,40 +0,0 @@ -_substring, (string) $item) >= 1; - } - - protected function relationship() - { - return 'matching'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php deleted file mode 100644 index b92786b6..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php +++ /dev/null @@ -1,45 +0,0 @@ -_substring); - } - - /** - * Matches if value is a string that contains $substring. - * - * @factory - */ - public static function containsString($substring) - { - return new self($substring); - } - - // -- Protected Methods - - protected function evalSubstringOf($item) - { - return (false !== strpos((string) $item, $this->_substring)); - } - - protected function relationship() - { - return 'containing'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php deleted file mode 100644 index 69f37c25..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php +++ /dev/null @@ -1,40 +0,0 @@ -_substring)); - } - - protected function relationship() - { - return 'containing in any case'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php deleted file mode 100644 index e75de65d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php +++ /dev/null @@ -1,66 +0,0 @@ -_substrings = $substrings; - } - - protected function matchesSafely($item) - { - $fromIndex = 0; - - foreach ($this->_substrings as $substring) { - if (false === $fromIndex = strpos($item, $substring, $fromIndex)) { - return false; - } - } - - return true; - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendText($item); - } - - public function describeTo(Description $description) - { - $description->appendText('a string containing ') - ->appendValueList('', ', ', '', $this->_substrings) - ->appendText(' in order') - ; - } - - /** - * Matches if value contains $substrings in a constrained order. - * - * @factory ... - */ - public static function stringContainsInOrder(/* args... */) - { - $args = func_get_args(); - - if (isset($args[0]) && is_array($args[0])) { - $args = $args[0]; - } - - return new self($args); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php deleted file mode 100644 index f802ee4d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php +++ /dev/null @@ -1,40 +0,0 @@ -_substring))) === $this->_substring); - } - - protected function relationship() - { - return 'ending with'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php deleted file mode 100644 index 79c95656..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php +++ /dev/null @@ -1,40 +0,0 @@ -_substring)) === $this->_substring); - } - - protected function relationship() - { - return 'starting with'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php deleted file mode 100644 index e560ad62..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php +++ /dev/null @@ -1,45 +0,0 @@ -_substring = $substring; - } - - protected function matchesSafely($item) - { - return $this->evalSubstringOf($item); - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendText('was "')->appendText($item)->appendText('"'); - } - - public function describeTo(Description $description) - { - $description->appendText('a string ') - ->appendText($this->relationship()) - ->appendText(' ') - ->appendValue($this->_substring) - ; - } - - abstract protected function evalSubstringOf($string); - - abstract protected function relationship(); -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php deleted file mode 100644 index 9179102f..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php +++ /dev/null @@ -1,32 +0,0 @@ -isHexadecimal($item)) { - return true; - } - - return is_numeric($item); - } - - /** - * Return if the string passed is a valid hexadecimal number. - * This check is necessary because PHP 7 doesn't recognize hexadecimal string as numeric anymore. - * - * @param mixed $item - * @return boolean - */ - private function isHexadecimal($item) - { - if (is_string($item) && preg_match('/^0x(.*)$/', $item, $matches)) { - return ctype_xdigit($matches[1]); - } - - return false; - } - - /** - * Is the value a numeric? - * - * @factory - */ - public static function numericValue() - { - return new self; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php deleted file mode 100644 index 65918fcf..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php +++ /dev/null @@ -1,32 +0,0 @@ -matchesSafelyWithDiagnosticDescription($item, new NullDescription()); - } - - final public function describeMismatchSafely($item, Description $mismatchDescription) - { - $this->matchesSafelyWithDiagnosticDescription($item, $mismatchDescription); - } - - // -- Protected Methods - - /** - * Subclasses should implement these. The item will already have been checked for - * the specific type. - */ - abstract protected function matchesSafelyWithDiagnosticDescription($item, Description $mismatchDescription); -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php deleted file mode 100644 index 56e299a9..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php +++ /dev/null @@ -1,107 +0,0 @@ -_expectedType = $expectedType; - $this->_expectedSubtype = $expectedSubtype; - } - - final public function matches($item) - { - return $this->_isSafeType($item) && $this->matchesSafely($item); - } - - final public function describeMismatch($item, Description $mismatchDescription) - { - if (!$this->_isSafeType($item)) { - parent::describeMismatch($item, $mismatchDescription); - } else { - $this->describeMismatchSafely($item, $mismatchDescription); - } - } - - // -- Protected Methods - - /** - * The item will already have been checked for the specific type and subtype. - */ - abstract protected function matchesSafely($item); - - /** - * The item will already have been checked for the specific type and subtype. - */ - abstract protected function describeMismatchSafely($item, Description $mismatchDescription); - - // -- Private Methods - - private function _isSafeType($value) - { - switch ($this->_expectedType) { - - case self::TYPE_ANY: - return true; - - case self::TYPE_STRING: - return is_string($value) || is_numeric($value); - - case self::TYPE_NUMERIC: - return is_numeric($value) || is_string($value); - - case self::TYPE_ARRAY: - return is_array($value); - - case self::TYPE_OBJECT: - return is_object($value) - && ($this->_expectedSubtype === null - || $value instanceof $this->_expectedSubtype); - - case self::TYPE_RESOURCE: - return is_resource($value) - && ($this->_expectedSubtype === null - || get_resource_type($value) == $this->_expectedSubtype); - - case self::TYPE_BOOLEAN: - return true; - - default: - return true; - - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php deleted file mode 100644 index 169b0366..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php +++ /dev/null @@ -1,76 +0,0 @@ - all items are - */ - public static function createMatcherArray(array $items) - { - //Extract single array item - if (count($items) == 1 && is_array($items[0])) { - $items = $items[0]; - } - - //Replace non-matchers - foreach ($items as &$item) { - if (!($item instanceof Matcher)) { - $item = Core\IsEqual::equalTo($item); - } - } - - return $items; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php deleted file mode 100644 index d9764e45..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php +++ /dev/null @@ -1,195 +0,0 @@ -_xpath = $xpath; - $this->_matcher = $matcher; - } - - /** - * Matches if the XPath matches against the DOM node and the matcher. - * - * @param string|\DOMNode $actual - * @param Description $mismatchDescription - * @return bool - */ - protected function matchesWithDiagnosticDescription($actual, Description $mismatchDescription) - { - if (is_string($actual)) { - $actual = $this->createDocument($actual); - } elseif (!$actual instanceof \DOMNode) { - $mismatchDescription->appendText('was ')->appendValue($actual); - - return false; - } - $result = $this->evaluate($actual); - if ($result instanceof \DOMNodeList) { - return $this->matchesContent($result, $mismatchDescription); - } else { - return $this->matchesExpression($result, $mismatchDescription); - } - } - - /** - * Creates and returns a DOMDocument from the given - * XML or HTML string. - * - * @param string $text - * @return \DOMDocument built from $text - * @throws \InvalidArgumentException if the document is not valid - */ - protected function createDocument($text) - { - $document = new \DOMDocument(); - if (preg_match('/^\s*<\?xml/', $text)) { - if (!@$document->loadXML($text)) { - throw new \InvalidArgumentException('Must pass a valid XML document'); - } - } else { - if (!@$document->loadHTML($text)) { - throw new \InvalidArgumentException('Must pass a valid HTML or XHTML document'); - } - } - - return $document; - } - - /** - * Applies the configured XPath to the DOM node and returns either - * the result if it's an expression or the node list if it's a query. - * - * @param \DOMNode $node context from which to issue query - * @return mixed result of expression or DOMNodeList from query - */ - protected function evaluate(\DOMNode $node) - { - if ($node instanceof \DOMDocument) { - $xpathDocument = new \DOMXPath($node); - - return $xpathDocument->evaluate($this->_xpath); - } else { - $xpathDocument = new \DOMXPath($node->ownerDocument); - - return $xpathDocument->evaluate($this->_xpath, $node); - } - } - - /** - * Matches if the list of nodes is not empty and the content of at least - * one node matches the configured matcher, if supplied. - * - * @param \DOMNodeList $nodes selected by the XPath query - * @param Description $mismatchDescription - * @return bool - */ - protected function matchesContent(\DOMNodeList $nodes, Description $mismatchDescription) - { - if ($nodes->length == 0) { - $mismatchDescription->appendText('XPath returned no results'); - } elseif ($this->_matcher === null) { - return true; - } else { - foreach ($nodes as $node) { - if ($this->_matcher->matches($node->textContent)) { - return true; - } - } - $content = array(); - foreach ($nodes as $node) { - $content[] = $node->textContent; - } - $mismatchDescription->appendText('XPath returned ') - ->appendValue($content); - } - - return false; - } - - /** - * Matches if the result of the XPath expression matches the configured - * matcher or evaluates to true if there is none. - * - * @param mixed $result result of the XPath expression - * @param Description $mismatchDescription - * @return bool - */ - protected function matchesExpression($result, Description $mismatchDescription) - { - if ($this->_matcher === null) { - if ($result) { - return true; - } - $mismatchDescription->appendText('XPath expression result was ') - ->appendValue($result); - } else { - if ($this->_matcher->matches($result)) { - return true; - } - $mismatchDescription->appendText('XPath expression result '); - $this->_matcher->describeMismatch($result, $mismatchDescription); - } - - return false; - } - - public function describeTo(Description $description) - { - $description->appendText('XML or HTML document with XPath "') - ->appendText($this->_xpath) - ->appendText('"'); - if ($this->_matcher !== null) { - $description->appendText(' '); - $this->_matcher->describeTo($description); - } - } - - /** - * Wraps $matcher with {@link Hamcrest\Core\IsEqual) - * if it's not a matcher and the XPath in count() - * if it's an integer. - * - * @factory - */ - public static function hasXPath($xpath, $matcher = null) - { - if ($matcher === null || $matcher instanceof Matcher) { - return new self($xpath, $matcher); - } elseif (is_int($matcher) && strpos($xpath, 'count(') !== 0) { - $xpath = 'count(' . $xpath . ')'; - } - - return new self($xpath, IsEqual::equalTo($matcher)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php deleted file mode 100644 index 6c52c0e5..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php +++ /dev/null @@ -1,66 +0,0 @@ -assertTrue($matcher->matches($arg), $message); - } - - public function assertDoesNotMatch(\Hamcrest\Matcher $matcher, $arg, $message) - { - $this->assertFalse($matcher->matches($arg), $message); - } - - public function assertDescription($expected, \Hamcrest\Matcher $matcher) - { - $description = new \Hamcrest\StringDescription(); - $description->appendDescriptionOf($matcher); - $this->assertEquals($expected, (string) $description, 'Expected description'); - } - - public function assertMismatchDescription($expected, \Hamcrest\Matcher $matcher, $arg) - { - $description = new \Hamcrest\StringDescription(); - $this->assertFalse( - $matcher->matches($arg), - 'Precondtion: Matcher should not match item' - ); - $matcher->describeMismatch($arg, $description); - $this->assertEquals( - $expected, - (string) $description, - 'Expected mismatch description' - ); - } - - public function testIsNullSafe() - { - //Should not generate any notices - $this->createMatcher()->matches(null); - $this->createMatcher()->describeMismatch( - null, - new \Hamcrest\NullDescription() - ); - } - - public function testCopesWithUnknownTypes() - { - //Should not generate any notices - $this->createMatcher()->matches(new UnknownType()); - $this->createMatcher()->describeMismatch( - new UnknownType(), - new NullDescription() - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php deleted file mode 100644 index 45d9f138..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php +++ /dev/null @@ -1,54 +0,0 @@ -assertDescription('[<1>, <2>] in any order', containsInAnyOrder(array(1, 2))); - } - - public function testMatchesItemsInAnyOrder() - { - $this->assertMatches(containsInAnyOrder(array(1, 2, 3)), array(1, 2, 3), 'in order'); - $this->assertMatches(containsInAnyOrder(array(1, 2, 3)), array(3, 2, 1), 'out of order'); - $this->assertMatches(containsInAnyOrder(array(1)), array(1), 'single'); - } - - public function testAppliesMatchersInAnyOrder() - { - $this->assertMatches( - containsInAnyOrder(array(1, 2, 3)), - array(1, 2, 3), - 'in order' - ); - $this->assertMatches( - containsInAnyOrder(array(1, 2, 3)), - array(3, 2, 1), - 'out of order' - ); - $this->assertMatches( - containsInAnyOrder(array(1)), - array(1), - 'single' - ); - } - - public function testMismatchesItemsInAnyOrder() - { - $matcher = containsInAnyOrder(array(1, 2, 3)); - - $this->assertMismatchDescription('was null', $matcher, null); - $this->assertMismatchDescription('No item matches: <1>, <2>, <3> in []', $matcher, array()); - $this->assertMismatchDescription('No item matches: <2>, <3> in [<1>]', $matcher, array(1)); - $this->assertMismatchDescription('Not matched: <4>', $matcher, array(4, 3, 2, 1)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php deleted file mode 100644 index 1868343f..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php +++ /dev/null @@ -1,44 +0,0 @@ -assertDescription('[<1>, <2>]', arrayContaining(array(1, 2))); - } - - public function testMatchesItemsInOrder() - { - $this->assertMatches(arrayContaining(array(1, 2, 3)), array(1, 2, 3), 'in order'); - $this->assertMatches(arrayContaining(array(1)), array(1), 'single'); - } - - public function testAppliesMatchersInOrder() - { - $this->assertMatches( - arrayContaining(array(1, 2, 3)), - array(1, 2, 3), - 'in order' - ); - $this->assertMatches(arrayContaining(array(1)), array(1), 'single'); - } - - public function testMismatchesItemsInAnyOrder() - { - $matcher = arrayContaining(array(1, 2, 3)); - $this->assertMismatchDescription('was null', $matcher, null); - $this->assertMismatchDescription('No item matched: <1>', $matcher, array()); - $this->assertMismatchDescription('No item matched: <2>', $matcher, array(1)); - $this->assertMismatchDescription('item with key 0: was <4>', $matcher, array(4, 3, 2, 1)); - $this->assertMismatchDescription('item with key 2: was <4>', $matcher, array(1, 2, 4)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php deleted file mode 100644 index 31770d8d..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php +++ /dev/null @@ -1,62 +0,0 @@ -1); - - $this->assertMatches(hasKey('a'), $array, 'Matches single key'); - } - - public function testMatchesArrayContainingKey() - { - $array = array('a'=>1, 'b'=>2, 'c'=>3); - - $this->assertMatches(hasKey('a'), $array, 'Matches a'); - $this->assertMatches(hasKey('c'), $array, 'Matches c'); - } - - public function testMatchesArrayContainingKeyWithIntegerKeys() - { - $array = array(1=>'A', 2=>'B'); - - assertThat($array, hasKey(1)); - } - - public function testMatchesArrayContainingKeyWithNumberKeys() - { - $array = array(1=>'A', 2=>'B'); - - assertThat($array, hasKey(1)); - - // very ugly version! - assertThat($array, IsArrayContainingKey::hasKeyInArray(2)); - } - - public function testHasReadableDescription() - { - $this->assertDescription('array with key "a"', hasKey('a')); - } - - public function testDoesNotMatchEmptyArray() - { - $this->assertMismatchDescription('array was []', hasKey('Foo'), array()); - } - - public function testDoesNotMatchArrayMissingKey() - { - $array = array('a'=>1, 'b'=>2, 'c'=>3); - - $this->assertMismatchDescription('array was ["a" => <1>, "b" => <2>, "c" => <3>]', hasKey('d'), $array); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php deleted file mode 100644 index a415f9f7..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php +++ /dev/null @@ -1,36 +0,0 @@ -1, 'b'=>2); - - $this->assertMatches(hasKeyValuePair(equalTo('a'), equalTo(1)), $array, 'matcherA'); - $this->assertMatches(hasKeyValuePair(equalTo('b'), equalTo(2)), $array, 'matcherB'); - $this->assertMismatchDescription( - 'array was ["a" => <1>, "b" => <2>]', - hasKeyValuePair(equalTo('c'), equalTo(3)), - $array - ); - } - - public function testDoesNotMatchNull() - { - $this->assertMismatchDescription('was null', hasKeyValuePair(anything(), anything()), null); - } - - public function testHasReadableDescription() - { - $this->assertDescription('array containing ["a" => <2>]', hasKeyValuePair(equalTo('a'), equalTo(2))); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php deleted file mode 100644 index 8d5bd810..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php +++ /dev/null @@ -1,50 +0,0 @@ -assertMatches( - hasItemInArray('a'), - array('a', 'b', 'c'), - "should matches array that contains 'a'" - ); - } - - public function testDoesNotMatchAnArrayThatDoesntContainAnElementMatchingTheGivenMatcher() - { - $this->assertDoesNotMatch( - hasItemInArray('a'), - array('b', 'c'), - "should not matches array that doesn't contain 'a'" - ); - $this->assertDoesNotMatch( - hasItemInArray('a'), - array(), - 'should not match empty array' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - hasItemInArray('a'), - null, - 'should not match null' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('an array containing "a"', hasItemInArray('a')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayTest.php deleted file mode 100644 index e4db53e7..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayTest.php +++ /dev/null @@ -1,89 +0,0 @@ -assertMatches( - anArray(array(equalTo('a'), equalTo('b'), equalTo('c'))), - array('a', 'b', 'c'), - 'should match array with matching elements' - ); - } - - public function testDoesNotMatchAnArrayWhenElementsDoNotMatch() - { - $this->assertDoesNotMatch( - anArray(array(equalTo('a'), equalTo('b'))), - array('b', 'c'), - 'should not match array with different elements' - ); - } - - public function testDoesNotMatchAnArrayOfDifferentSize() - { - $this->assertDoesNotMatch( - anArray(array(equalTo('a'), equalTo('b'))), - array('a', 'b', 'c'), - 'should not match larger array' - ); - $this->assertDoesNotMatch( - anArray(array(equalTo('a'), equalTo('b'))), - array('a'), - 'should not match smaller array' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - anArray(array(equalTo('a'))), - null, - 'should not match null' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - '["a", "b"]', - anArray(array(equalTo('a'), equalTo('b'))) - ); - } - - public function testHasAReadableMismatchDescriptionWhenKeysDontMatch() - { - $this->assertMismatchDescription( - 'array keys were [<1>, <2>]', - anArray(array(equalTo('a'), equalTo('b'))), - array(1 => 'a', 2 => 'b') - ); - } - - public function testSupportsMatchesAssociativeArrays() - { - $this->assertMatches( - anArray(array('x'=>equalTo('a'), 'y'=>equalTo('b'), 'z'=>equalTo('c'))), - array('x'=>'a', 'y'=>'b', 'z'=>'c'), - 'should match associative array with matching elements' - ); - } - - public function testDoesNotMatchAnAssociativeArrayWhenKeysDoNotMatch() - { - $this->assertDoesNotMatch( - anArray(array('x'=>equalTo('a'), 'y'=>equalTo('b'))), - array('x'=>'b', 'z'=>'c'), - 'should not match array with different keys' - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayWithSizeTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayWithSizeTest.php deleted file mode 100644 index 8413c896..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayWithSizeTest.php +++ /dev/null @@ -1,37 +0,0 @@ -assertMatches(arrayWithSize(equalTo(3)), array(1, 2, 3), 'correct size'); - $this->assertDoesNotMatch(arrayWithSize(equalTo(2)), array(1, 2, 3), 'incorrect size'); - } - - public function testProvidesConvenientShortcutForArrayWithSizeEqualTo() - { - $this->assertMatches(arrayWithSize(3), array(1, 2, 3), 'correct size'); - $this->assertDoesNotMatch(arrayWithSize(2), array(1, 2, 3), 'incorrect size'); - } - - public function testEmptyArray() - { - $this->assertMatches(emptyArray(), array(), 'correct size'); - $this->assertDoesNotMatch(emptyArray(), array(1), 'incorrect size'); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('an array with size <3>', arrayWithSize(equalTo(3))); - $this->assertDescription('an empty array', emptyArray()); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/BaseMatcherTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/BaseMatcherTest.php deleted file mode 100644 index 833e2c3e..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/BaseMatcherTest.php +++ /dev/null @@ -1,23 +0,0 @@ -appendText('SOME DESCRIPTION'); - } - - public function testDescribesItselfWithToStringMethod() - { - $someMatcher = new \Hamcrest\SomeMatcher(); - $this->assertEquals('SOME DESCRIPTION', (string) $someMatcher); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsEmptyTraversableTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsEmptyTraversableTest.php deleted file mode 100644 index 2f15fb49..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsEmptyTraversableTest.php +++ /dev/null @@ -1,77 +0,0 @@ -assertMatches( - emptyTraversable(), - new \ArrayObject(array()), - 'an empty traversable' - ); - } - - public function testEmptyMatcherDoesNotMatchWhenNotEmpty() - { - $this->assertDoesNotMatch( - emptyTraversable(), - new \ArrayObject(array(1, 2, 3)), - 'a non-empty traversable' - ); - } - - public function testEmptyMatcherDoesNotMatchNull() - { - $this->assertDoesNotMatch( - emptyTraversable(), - null, - 'should not match null' - ); - } - - public function testEmptyMatcherHasAReadableDescription() - { - $this->assertDescription('an empty traversable', emptyTraversable()); - } - - public function testNonEmptyDoesNotMatchNull() - { - $this->assertDoesNotMatch( - nonEmptyTraversable(), - null, - 'should not match null' - ); - } - - public function testNonEmptyDoesNotMatchWhenEmpty() - { - $this->assertDoesNotMatch( - nonEmptyTraversable(), - new \ArrayObject(array()), - 'an empty traversable' - ); - } - - public function testNonEmptyMatchesWhenNotEmpty() - { - $this->assertMatches( - nonEmptyTraversable(), - new \ArrayObject(array(1, 2, 3)), - 'a non-empty traversable' - ); - } - - public function testNonEmptyNonEmptyMatcherHasAReadableDescription() - { - $this->assertDescription('a non-empty traversable', nonEmptyTraversable()); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsTraversableWithSizeTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsTraversableWithSizeTest.php deleted file mode 100644 index c1c67a7a..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsTraversableWithSizeTest.php +++ /dev/null @@ -1,57 +0,0 @@ -assertMatches( - traversableWithSize(equalTo(3)), - new \ArrayObject(array(1, 2, 3)), - 'correct size' - ); - } - - public function testDoesNotMatchWhenSizeIsIncorrect() - { - $this->assertDoesNotMatch( - traversableWithSize(equalTo(2)), - new \ArrayObject(array(1, 2, 3)), - 'incorrect size' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - traversableWithSize(3), - null, - 'should not match null' - ); - } - - public function testProvidesConvenientShortcutForTraversableWithSizeEqualTo() - { - $this->assertMatches( - traversableWithSize(3), - new \ArrayObject(array(1, 2, 3)), - 'correct size' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'a traversable with size <3>', - traversableWithSize(equalTo(3)) - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AllOfTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AllOfTest.php deleted file mode 100644 index 86b8c277..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AllOfTest.php +++ /dev/null @@ -1,56 +0,0 @@ -assertDescription( - '("good" and "bad" and "ugly")', - allOf('good', 'bad', 'ugly') - ); - } - - public function testMismatchDescriptionDescribesFirstFailingMatch() - { - $this->assertMismatchDescription( - '"good" was "bad"', - allOf('bad', 'good'), - 'bad' - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AnyOfTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AnyOfTest.php deleted file mode 100644 index 3d62b935..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AnyOfTest.php +++ /dev/null @@ -1,79 +0,0 @@ -assertDescription( - '("good" or "bad" or "ugly")', - anyOf('good', 'bad', 'ugly') - ); - } - - public function testNoneOfEvaluatesToTheLogicalDisjunctionOfTwoOtherMatchers() - { - assertThat('good', not(noneOf('bad', 'good'))); - assertThat('good', not(noneOf('good', 'good'))); - assertThat('good', not(noneOf('good', 'bad'))); - - assertThat('good', noneOf('bad', startsWith('b'))); - } - - public function testNoneOfEvaluatesToTheLogicalDisjunctionOfManyOtherMatchers() - { - assertThat('good', not(noneOf('bad', 'good', 'bad', 'bad', 'bad'))); - assertThat('good', noneOf('bad', 'bad', 'bad', 'bad', 'bad')); - } - - public function testNoneOfSupportsMixedTypes() - { - $combined = noneOf( - equalTo(new \Hamcrest\Core\SampleBaseClass('good')), - equalTo(new \Hamcrest\Core\SampleBaseClass('ugly')), - equalTo(new \Hamcrest\Core\SampleSubClass('good')) - ); - - assertThat(new \Hamcrest\Core\SampleSubClass('bad'), $combined); - } - - public function testNoneOfHasAReadableDescription() - { - $this->assertDescription( - 'not ("good" or "bad" or "ugly")', - noneOf('good', 'bad', 'ugly') - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/CombinableMatcherTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/CombinableMatcherTest.php deleted file mode 100644 index 4c226149..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/CombinableMatcherTest.php +++ /dev/null @@ -1,59 +0,0 @@ -_either_3_or_4 = \Hamcrest\Core\CombinableMatcher::either(equalTo(3))->orElse(equalTo(4)); - $this->_not_3_and_not_4 = \Hamcrest\Core\CombinableMatcher::both(not(equalTo(3)))->andAlso(not(equalTo(4))); - } - - protected function createMatcher() - { - return \Hamcrest\Core\CombinableMatcher::either(equalTo('irrelevant'))->orElse(equalTo('ignored')); - } - - public function testBothAcceptsAndRejects() - { - assertThat(2, $this->_not_3_and_not_4); - assertThat(3, not($this->_not_3_and_not_4)); - } - - public function testAcceptsAndRejectsThreeAnds() - { - $tripleAnd = $this->_not_3_and_not_4->andAlso(equalTo(2)); - assertThat(2, $tripleAnd); - assertThat(3, not($tripleAnd)); - } - - public function testBothDescribesItself() - { - $this->assertEquals('(not <3> and not <4>)', (string) $this->_not_3_and_not_4); - $this->assertMismatchDescription('was <3>', $this->_not_3_and_not_4, 3); - } - - public function testEitherAcceptsAndRejects() - { - assertThat(3, $this->_either_3_or_4); - assertThat(6, not($this->_either_3_or_4)); - } - - public function testAcceptsAndRejectsThreeOrs() - { - $orTriple = $this->_either_3_or_4->orElse(greaterThan(10)); - - assertThat(11, $orTriple); - assertThat(9, not($orTriple)); - } - - public function testEitherDescribesItself() - { - $this->assertEquals('(<3> or <4>)', (string) $this->_either_3_or_4); - $this->assertMismatchDescription('was <6>', $this->_either_3_or_4, 6); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/DescribedAsTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/DescribedAsTest.php deleted file mode 100644 index 673ab41e..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/DescribedAsTest.php +++ /dev/null @@ -1,36 +0,0 @@ -assertDescription('m1 description', $m1); - $this->assertDescription('m2 description', $m2); - } - - public function testAppendsValuesToDescription() - { - $m = describedAs('value 1 = %0, value 2 = %1', anything(), 33, 97); - - $this->assertDescription('value 1 = <33>, value 2 = <97>', $m); - } - - public function testDelegatesMatchingToAnotherMatcher() - { - $m1 = describedAs('irrelevant', anything()); - $m2 = describedAs('irrelevant', not(anything())); - - $this->assertTrue($m1->matches(new \stdClass())); - $this->assertFalse($m2->matches('hi')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/EveryTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/EveryTest.php deleted file mode 100644 index 5eb153c5..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/EveryTest.php +++ /dev/null @@ -1,30 +0,0 @@ -assertEquals('every item is a string containing "a"', (string) $each); - - $this->assertMismatchDescription('an item was "BbB"', $each, array('BbB')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/HasToStringTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/HasToStringTest.php deleted file mode 100644 index e2e136dc..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/HasToStringTest.php +++ /dev/null @@ -1,108 +0,0 @@ -assertMatches( - hasToString(equalTo('php')), - new \Hamcrest\Core\PhpForm(), - 'correct __toString' - ); - $this->assertMatches( - hasToString(equalTo('java')), - new \Hamcrest\Core\JavaForm(), - 'correct toString' - ); - } - - public function testPicksJavaOverPhpToString() - { - $this->assertMatches( - hasToString(equalTo('java')), - new \Hamcrest\Core\BothForms(), - 'correct toString' - ); - } - - public function testDoesNotMatchWhenToStringDoesNotMatch() - { - $this->assertDoesNotMatch( - hasToString(equalTo('mismatch')), - new \Hamcrest\Core\PhpForm(), - 'incorrect __toString' - ); - $this->assertDoesNotMatch( - hasToString(equalTo('mismatch')), - new \Hamcrest\Core\JavaForm(), - 'incorrect toString' - ); - $this->assertDoesNotMatch( - hasToString(equalTo('mismatch')), - new \Hamcrest\Core\BothForms(), - 'incorrect __toString' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - hasToString(equalTo('a')), - null, - 'should not match null' - ); - } - - public function testProvidesConvenientShortcutForTraversableWithSizeEqualTo() - { - $this->assertMatches( - hasToString(equalTo('php')), - new \Hamcrest\Core\PhpForm(), - 'correct __toString' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'an object with toString() "php"', - hasToString(equalTo('php')) - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsAnythingTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsAnythingTest.php deleted file mode 100644 index f68032e5..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsAnythingTest.php +++ /dev/null @@ -1,29 +0,0 @@ -assertDescription('ANYTHING', anything()); - } - - public function testCanOverrideDescription() - { - $description = 'description'; - $this->assertDescription($description, anything($description)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php deleted file mode 100644 index a3929b54..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php +++ /dev/null @@ -1,91 +0,0 @@ -assertMatches( - $itemMatcher, - array('a', 'b', 'c'), - "should match list that contains 'a'" - ); - } - - public function testDoesNotMatchCollectionThatDoesntContainAnElementMatchingTheGivenMatcher() - { - $matcher1 = hasItem(equalTo('a')); - $this->assertDoesNotMatch( - $matcher1, - array('b', 'c'), - "should not match list that doesn't contain 'a'" - ); - - $matcher2 = hasItem(equalTo('a')); - $this->assertDoesNotMatch( - $matcher2, - array(), - 'should not match the empty list' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - hasItem(equalTo('a')), - null, - 'should not match null' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('a collection containing "a"', hasItem(equalTo('a'))); - } - - public function testMatchesAllItemsInCollection() - { - $matcher1 = hasItems(equalTo('a'), equalTo('b'), equalTo('c')); - $this->assertMatches( - $matcher1, - array('a', 'b', 'c'), - 'should match list containing all items' - ); - - $matcher2 = hasItems('a', 'b', 'c'); - $this->assertMatches( - $matcher2, - array('a', 'b', 'c'), - 'should match list containing all items (without matchers)' - ); - - $matcher3 = hasItems(equalTo('a'), equalTo('b'), equalTo('c')); - $this->assertMatches( - $matcher3, - array('c', 'b', 'a'), - 'should match list containing all items in any order' - ); - - $matcher4 = hasItems(equalTo('a'), equalTo('b'), equalTo('c')); - $this->assertMatches( - $matcher4, - array('e', 'c', 'b', 'a', 'd'), - 'should match list containing all items plus others' - ); - - $matcher5 = hasItems(equalTo('a'), equalTo('b'), equalTo('c')); - $this->assertDoesNotMatch( - $matcher5, - array('e', 'c', 'b', 'd'), // 'a' missing - 'should not match list unless it contains all items' - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsEqualTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsEqualTest.php deleted file mode 100644 index 73e3ff07..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsEqualTest.php +++ /dev/null @@ -1,102 +0,0 @@ -_arg = $arg; - } - - public function __toString() - { - return $this->_arg; - } -} - -class IsEqualTest extends \Hamcrest\AbstractMatcherTest -{ - - protected function createMatcher() - { - return \Hamcrest\Core\IsEqual::equalTo('irrelevant'); - } - - public function testComparesObjectsUsingEqualityOperator() - { - assertThat("hi", equalTo("hi")); - assertThat("bye", not(equalTo("hi"))); - - assertThat(1, equalTo(1)); - assertThat(1, not(equalTo(2))); - - assertThat("2", equalTo(2)); - } - - public function testCanCompareNullValues() - { - assertThat(null, equalTo(null)); - - assertThat(null, not(equalTo('hi'))); - assertThat('hi', not(equalTo(null))); - } - - public function testComparesTheElementsOfAnArray() - { - $s1 = array('a', 'b'); - $s2 = array('a', 'b'); - $s3 = array('c', 'd'); - $s4 = array('a', 'b', 'c', 'd'); - - assertThat($s1, equalTo($s1)); - assertThat($s2, equalTo($s1)); - assertThat($s3, not(equalTo($s1))); - assertThat($s4, not(equalTo($s1))); - } - - public function testComparesTheElementsOfAnArrayOfPrimitiveTypes() - { - $i1 = array(1, 2); - $i2 = array(1, 2); - $i3 = array(3, 4); - $i4 = array(1, 2, 3, 4); - - assertThat($i1, equalTo($i1)); - assertThat($i2, equalTo($i1)); - assertThat($i3, not(equalTo($i1))); - assertThat($i4, not(equalTo($i1))); - } - - public function testRecursivelyTestsElementsOfArrays() - { - $i1 = array(array(1, 2), array(3, 4)); - $i2 = array(array(1, 2), array(3, 4)); - $i3 = array(array(5, 6), array(7, 8)); - $i4 = array(array(1, 2, 3, 4), array(3, 4)); - - assertThat($i1, equalTo($i1)); - assertThat($i2, equalTo($i1)); - assertThat($i3, not(equalTo($i1))); - assertThat($i4, not(equalTo($i1))); - } - - public function testIncludesTheResultOfCallingToStringOnItsArgumentInTheDescription() - { - $argumentDescription = 'ARGUMENT DESCRIPTION'; - $argument = new \Hamcrest\Core\DummyToStringClass($argumentDescription); - $this->assertDescription('<' . $argumentDescription . '>', equalTo($argument)); - } - - public function testReturnsAnObviousDescriptionIfCreatedWithANestedMatcherByMistake() - { - $innerMatcher = equalTo('NestedMatcher'); - $this->assertDescription('<' . (string) $innerMatcher . '>', equalTo($innerMatcher)); - } - - public function testReturnsGoodDescriptionIfCreatedWithNullReference() - { - $this->assertDescription('null', equalTo(null)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsIdenticalTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsIdenticalTest.php deleted file mode 100644 index 9cc27946..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsIdenticalTest.php +++ /dev/null @@ -1,30 +0,0 @@ -assertDescription('"ARG"', identicalTo('ARG')); - } - - public function testReturnsReadableDescriptionFromToStringWhenInitialisedWithNull() - { - $this->assertDescription('null', identicalTo(null)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsInstanceOfTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsInstanceOfTest.php deleted file mode 100644 index 7a5f095a..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsInstanceOfTest.php +++ /dev/null @@ -1,51 +0,0 @@ -_baseClassInstance = new \Hamcrest\Core\SampleBaseClass('good'); - $this->_subClassInstance = new \Hamcrest\Core\SampleSubClass('good'); - } - - protected function createMatcher() - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf('stdClass'); - } - - public function testEvaluatesToTrueIfArgumentIsInstanceOfASpecificClass() - { - assertThat($this->_baseClassInstance, anInstanceOf('Hamcrest\Core\SampleBaseClass')); - assertThat($this->_subClassInstance, anInstanceOf('Hamcrest\Core\SampleSubClass')); - assertThat(null, not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat(new \stdClass(), not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - } - - public function testEvaluatesToFalseIfArgumentIsNotAnObject() - { - assertThat(null, not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat(false, not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat(5, not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat('foo', not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat(array(1, 2, 3), not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('an instance of stdClass', anInstanceOf('stdClass')); - } - - public function testDecribesActualClassInMismatchMessage() - { - $this->assertMismatchDescription( - '[Hamcrest\Core\SampleBaseClass] ', - anInstanceOf('Hamcrest\Core\SampleSubClass'), - $this->_baseClassInstance - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNotTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNotTest.php deleted file mode 100644 index 09d4a652..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNotTest.php +++ /dev/null @@ -1,31 +0,0 @@ -assertMatches(not(equalTo('A')), 'B', 'should match'); - $this->assertDoesNotMatch(not(equalTo('B')), 'B', 'should not match'); - } - - public function testProvidesConvenientShortcutForNotEqualTo() - { - $this->assertMatches(not('A'), 'B', 'should match'); - $this->assertMatches(not('B'), 'A', 'should match'); - $this->assertDoesNotMatch(not('A'), 'A', 'should not match'); - $this->assertDoesNotMatch(not('B'), 'B', 'should not match'); - } - - public function testUsesDescriptionOfNegatedMatcherWithPrefix() - { - $this->assertDescription('not a value greater than <2>', not(greaterThan(2))); - $this->assertDescription('not "A"', not('A')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNullTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNullTest.php deleted file mode 100644 index bfa42554..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNullTest.php +++ /dev/null @@ -1,20 +0,0 @@ -assertDescription('sameInstance("ARG")', sameInstance('ARG')); - } - - public function testReturnsReadableDescriptionFromToStringWhenInitialisedWithNull() - { - $this->assertDescription('sameInstance(null)', sameInstance(null)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTest.php deleted file mode 100644 index bbd848b9..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTest.php +++ /dev/null @@ -1,33 +0,0 @@ -assertMatches(is(equalTo(true)), true, 'should match'); - $this->assertMatches(is(equalTo(false)), false, 'should match'); - $this->assertDoesNotMatch(is(equalTo(true)), false, 'should not match'); - $this->assertDoesNotMatch(is(equalTo(false)), true, 'should not match'); - } - - public function testGeneratesIsPrefixInDescription() - { - $this->assertDescription('is ', is(equalTo(true))); - } - - public function testProvidesConvenientShortcutForIsEqualTo() - { - $this->assertMatches(is('A'), 'A', 'should match'); - $this->assertMatches(is('B'), 'B', 'should match'); - $this->assertDoesNotMatch(is('A'), 'B', 'should not match'); - $this->assertDoesNotMatch(is('B'), 'A', 'should not match'); - $this->assertDescription('is "A"', is('A')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTypeOfTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTypeOfTest.php deleted file mode 100644 index 3f48dea7..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTypeOfTest.php +++ /dev/null @@ -1,45 +0,0 @@ -assertDescription('a double', typeOf('double')); - $this->assertDescription('an integer', typeOf('integer')); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', typeOf('boolean'), null); - $this->assertMismatchDescription('was an integer <5>', typeOf('float'), 5); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleBaseClass.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleBaseClass.php deleted file mode 100644 index c953e7cd..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleBaseClass.php +++ /dev/null @@ -1,18 +0,0 @@ -_arg = $arg; - } - - public function __toString() - { - return $this->_arg; - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleSubClass.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleSubClass.php deleted file mode 100644 index 822f1b64..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleSubClass.php +++ /dev/null @@ -1,6 +0,0 @@ -_instanceProperty); - } - - protected function createMatcher() - { - return \Hamcrest\Core\Set::set('property_name'); - } - - public function testEvaluatesToTrueIfArrayPropertyIsSet() - { - assertThat(array('foo' => 'bar'), set('foo')); - } - - public function testNegatedEvaluatesToFalseIfArrayPropertyIsSet() - { - assertThat(array('foo' => 'bar'), not(notSet('foo'))); - } - - public function testEvaluatesToTrueIfClassPropertyIsSet() - { - self::$_classProperty = 'bar'; - assertThat('Hamcrest\Core\SetTest', set('_classProperty')); - } - - public function testNegatedEvaluatesToFalseIfClassPropertyIsSet() - { - self::$_classProperty = 'bar'; - assertThat('Hamcrest\Core\SetTest', not(notSet('_classProperty'))); - } - - public function testEvaluatesToTrueIfObjectPropertyIsSet() - { - $this->_instanceProperty = 'bar'; - assertThat($this, set('_instanceProperty')); - } - - public function testNegatedEvaluatesToFalseIfObjectPropertyIsSet() - { - $this->_instanceProperty = 'bar'; - assertThat($this, not(notSet('_instanceProperty'))); - } - - public function testEvaluatesToFalseIfArrayPropertyIsNotSet() - { - assertThat(array('foo' => 'bar'), not(set('baz'))); - } - - public function testNegatedEvaluatesToTrueIfArrayPropertyIsNotSet() - { - assertThat(array('foo' => 'bar'), notSet('baz')); - } - - public function testEvaluatesToFalseIfClassPropertyIsNotSet() - { - assertThat('Hamcrest\Core\SetTest', not(set('_classProperty'))); - } - - public function testNegatedEvaluatesToTrueIfClassPropertyIsNotSet() - { - assertThat('Hamcrest\Core\SetTest', notSet('_classProperty')); - } - - public function testEvaluatesToFalseIfObjectPropertyIsNotSet() - { - assertThat($this, not(set('_instanceProperty'))); - } - - public function testNegatedEvaluatesToTrueIfObjectPropertyIsNotSet() - { - assertThat($this, notSet('_instanceProperty')); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('set property foo', set('foo')); - $this->assertDescription('unset property bar', notSet('bar')); - } - - public function testDecribesPropertySettingInMismatchMessage() - { - $this->assertMismatchDescription( - 'was not set', - set('bar'), - array('foo' => 'bar') - ); - $this->assertMismatchDescription( - 'was "bar"', - notSet('foo'), - array('foo' => 'bar') - ); - self::$_classProperty = 'bar'; - $this->assertMismatchDescription( - 'was "bar"', - notSet('_classProperty'), - 'Hamcrest\Core\SetTest' - ); - $this->_instanceProperty = 'bar'; - $this->assertMismatchDescription( - 'was "bar"', - notSet('_instanceProperty'), - $this - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/FeatureMatcherTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/FeatureMatcherTest.php deleted file mode 100644 index 7543294a..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/FeatureMatcherTest.php +++ /dev/null @@ -1,73 +0,0 @@ -_result = $result; - } - public function getResult() - { - return $this->_result; - } -} - -/* Test-specific subclass only */ -class ResultMatcher extends \Hamcrest\FeatureMatcher -{ - public function __construct() - { - parent::__construct(self::TYPE_ANY, null, equalTo('bar'), 'Thingy with result', 'result'); - } - public function featureValueOf($actual) - { - if ($actual instanceof \Hamcrest\Thingy) { - return $actual->getResult(); - } - } -} - -class FeatureMatcherTest extends \Hamcrest\AbstractMatcherTest -{ - - private $_resultMatcher; - - public function setUp() - { - $this->_resultMatcher = $this->_resultMatcher(); - } - - protected function createMatcher() - { - return $this->_resultMatcher(); - } - - public function testMatchesPartOfAnObject() - { - $this->assertMatches($this->_resultMatcher, new \Hamcrest\Thingy('bar'), 'feature'); - $this->assertDescription('Thingy with result "bar"', $this->_resultMatcher); - } - - public function testMismatchesPartOfAnObject() - { - $this->assertMismatchDescription( - 'result was "foo"', - $this->_resultMatcher, - new \Hamcrest\Thingy('foo') - ); - } - - public function testDoesNotGenerateNoticesForNull() - { - $this->assertMismatchDescription('result was null', $this->_resultMatcher, null); - } - - // -- Creation Methods - - private function _resultMatcher() - { - return new \Hamcrest\ResultMatcher(); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/MatcherAssertTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/MatcherAssertTest.php deleted file mode 100644 index 21837121..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/MatcherAssertTest.php +++ /dev/null @@ -1,190 +0,0 @@ -getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(null); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(''); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(0); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(0.0); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(array()); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - self::assertEquals(6, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithIdentifierAndTrueArgPasses() - { - \Hamcrest\MatcherAssert::assertThat('identifier', true); - \Hamcrest\MatcherAssert::assertThat('identifier', 'non-empty'); - \Hamcrest\MatcherAssert::assertThat('identifier', 1); - \Hamcrest\MatcherAssert::assertThat('identifier', 3.14159); - \Hamcrest\MatcherAssert::assertThat('identifier', array(true)); - self::assertEquals(5, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithIdentifierAndFalseArgFails() - { - try { - \Hamcrest\MatcherAssert::assertThat('identifier', false); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', null); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', ''); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', 0); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', 0.0); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', array()); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - self::assertEquals(6, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithActualValueAndMatcherArgsThatMatchPasses() - { - \Hamcrest\MatcherAssert::assertThat(true, is(true)); - self::assertEquals(1, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithActualValueAndMatcherArgsThatDontMatchFails() - { - $expected = 'expected'; - $actual = 'actual'; - - $expectedMessage = - 'Expected: "expected"' . PHP_EOL . - ' but: was "actual"'; - - try { - \Hamcrest\MatcherAssert::assertThat($actual, equalTo($expected)); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals($expectedMessage, $ex->getMessage()); - self::assertEquals(1, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - } - - public function testAssertThatWithIdentifierAndActualValueAndMatcherArgsThatMatchPasses() - { - \Hamcrest\MatcherAssert::assertThat('identifier', true, is(true)); - self::assertEquals(1, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithIdentifierAndActualValueAndMatcherArgsThatDontMatchFails() - { - $expected = 'expected'; - $actual = 'actual'; - - $expectedMessage = - 'identifier' . PHP_EOL . - 'Expected: "expected"' . PHP_EOL . - ' but: was "actual"'; - - try { - \Hamcrest\MatcherAssert::assertThat('identifier', $actual, equalTo($expected)); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals($expectedMessage, $ex->getMessage()); - self::assertEquals(1, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - } - - public function testAssertThatWithNoArgsThrowsErrorAndDoesntIncrementCount() - { - try { - \Hamcrest\MatcherAssert::assertThat(); - self::fail('expected invalid argument exception'); - } catch (\InvalidArgumentException $ex) { - self::assertEquals(0, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - } - - public function testAssertThatWithFourArgsThrowsErrorAndDoesntIncrementCount() - { - try { - \Hamcrest\MatcherAssert::assertThat(1, 2, 3, 4); - self::fail('expected invalid argument exception'); - } catch (\InvalidArgumentException $ex) { - self::assertEquals(0, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/IsCloseToTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/IsCloseToTest.php deleted file mode 100644 index 987d5526..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/IsCloseToTest.php +++ /dev/null @@ -1,27 +0,0 @@ -assertTrue($p->matches(1.0)); - $this->assertTrue($p->matches(0.5)); - $this->assertTrue($p->matches(1.5)); - - $this->assertDoesNotMatch($p, 2.0, 'too large'); - $this->assertMismatchDescription('<2F> differed by <0.5F>', $p, 2.0); - $this->assertDoesNotMatch($p, 0.0, 'number too small'); - $this->assertMismatchDescription('<0F> differed by <0.5F>', $p, 0.0); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/OrderingComparisonTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/OrderingComparisonTest.php deleted file mode 100644 index a4c94d37..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/OrderingComparisonTest.php +++ /dev/null @@ -1,41 +0,0 @@ -_text = $text; - } - - public function describeTo(\Hamcrest\Description $description) - { - $description->appendText($this->_text); - } -} - -class StringDescriptionTest extends \PhpUnit_Framework_TestCase -{ - - private $_description; - - public function setUp() - { - $this->_description = new \Hamcrest\StringDescription(); - } - - public function testAppendTextAppendsTextInformation() - { - $this->_description->appendText('foo')->appendText('bar'); - $this->assertEquals('foobar', (string) $this->_description); - } - - public function testAppendValueCanAppendTextTypes() - { - $this->_description->appendValue('foo'); - $this->assertEquals('"foo"', (string) $this->_description); - } - - public function testSpecialCharactersAreEscapedForStringTypes() - { - $this->_description->appendValue("foo\\bar\"zip\r\n"); - $this->assertEquals('"foo\\bar\\"zip\r\n"', (string) $this->_description); - } - - public function testIntegerValuesCanBeAppended() - { - $this->_description->appendValue(42); - $this->assertEquals('<42>', (string) $this->_description); - } - - public function testFloatValuesCanBeAppended() - { - $this->_description->appendValue(42.78); - $this->assertEquals('<42.78F>', (string) $this->_description); - } - - public function testNullValuesCanBeAppended() - { - $this->_description->appendValue(null); - $this->assertEquals('null', (string) $this->_description); - } - - public function testArraysCanBeAppended() - { - $this->_description->appendValue(array('foo', 42.78)); - $this->assertEquals('["foo", <42.78F>]', (string) $this->_description); - } - - public function testObjectsCanBeAppended() - { - $this->_description->appendValue(new \stdClass()); - $this->assertEquals('', (string) $this->_description); - } - - public function testBooleanValuesCanBeAppended() - { - $this->_description->appendValue(false); - $this->assertEquals('', (string) $this->_description); - } - - public function testListsOfvaluesCanBeAppended() - { - $this->_description->appendValue(array('foo', 42.78)); - $this->assertEquals('["foo", <42.78F>]', (string) $this->_description); - } - - public function testIterableOfvaluesCanBeAppended() - { - $items = new \ArrayObject(array('foo', 42.78)); - $this->_description->appendValue($items); - $this->assertEquals('["foo", <42.78F>]', (string) $this->_description); - } - - public function testIteratorOfvaluesCanBeAppended() - { - $items = new \ArrayObject(array('foo', 42.78)); - $this->_description->appendValue($items->getIterator()); - $this->assertEquals('["foo", <42.78F>]', (string) $this->_description); - } - - public function testListsOfvaluesCanBeAppendedManually() - { - $this->_description->appendValueList('@start@', '@sep@ ', '@end@', array('foo', 42.78)); - $this->assertEquals('@start@"foo"@sep@ <42.78F>@end@', (string) $this->_description); - } - - public function testIterableOfvaluesCanBeAppendedManually() - { - $items = new \ArrayObject(array('foo', 42.78)); - $this->_description->appendValueList('@start@', '@sep@ ', '@end@', $items); - $this->assertEquals('@start@"foo"@sep@ <42.78F>@end@', (string) $this->_description); - } - - public function testIteratorOfvaluesCanBeAppendedManually() - { - $items = new \ArrayObject(array('foo', 42.78)); - $this->_description->appendValueList('@start@', '@sep@ ', '@end@', $items->getIterator()); - $this->assertEquals('@start@"foo"@sep@ <42.78F>@end@', (string) $this->_description); - } - - public function testSelfDescribingObjectsCanBeAppended() - { - $this->_description - ->appendDescriptionOf(new \Hamcrest\SampleSelfDescriber('foo')) - ->appendDescriptionOf(new \Hamcrest\SampleSelfDescriber('bar')) - ; - $this->assertEquals('foobar', (string) $this->_description); - } - - public function testSelfDescribingObjectsCanBeAppendedAsLists() - { - $this->_description->appendList('@start@', '@sep@ ', '@end@', array( - new \Hamcrest\SampleSelfDescriber('foo'), - new \Hamcrest\SampleSelfDescriber('bar') - )); - $this->assertEquals('@start@foo@sep@ bar@end@', (string) $this->_description); - } - - public function testSelfDescribingObjectsCanBeAppendedAsIteratedLists() - { - $items = new \ArrayObject(array( - new \Hamcrest\SampleSelfDescriber('foo'), - new \Hamcrest\SampleSelfDescriber('bar') - )); - $this->_description->appendList('@start@', '@sep@ ', '@end@', $items); - $this->assertEquals('@start@foo@sep@ bar@end@', (string) $this->_description); - } - - public function testSelfDescribingObjectsCanBeAppendedAsIterators() - { - $items = new \ArrayObject(array( - new \Hamcrest\SampleSelfDescriber('foo'), - new \Hamcrest\SampleSelfDescriber('bar') - )); - $this->_description->appendList('@start@', '@sep@ ', '@end@', $items->getIterator()); - $this->assertEquals('@start@foo@sep@ bar@end@', (string) $this->_description); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEmptyStringTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEmptyStringTest.php deleted file mode 100644 index 8d5c56be..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEmptyStringTest.php +++ /dev/null @@ -1,86 +0,0 @@ -assertDoesNotMatch(emptyString(), null, 'null'); - } - - public function testEmptyDoesNotMatchZero() - { - $this->assertDoesNotMatch(emptyString(), 0, 'zero'); - } - - public function testEmptyDoesNotMatchFalse() - { - $this->assertDoesNotMatch(emptyString(), false, 'false'); - } - - public function testEmptyDoesNotMatchEmptyArray() - { - $this->assertDoesNotMatch(emptyString(), array(), 'empty array'); - } - - public function testEmptyMatchesEmptyString() - { - $this->assertMatches(emptyString(), '', 'empty string'); - } - - public function testEmptyDoesNotMatchNonEmptyString() - { - $this->assertDoesNotMatch(emptyString(), 'foo', 'non-empty string'); - } - - public function testEmptyHasAReadableDescription() - { - $this->assertDescription('an empty string', emptyString()); - } - - public function testEmptyOrNullMatchesNull() - { - $this->assertMatches(nullOrEmptyString(), null, 'null'); - } - - public function testEmptyOrNullMatchesEmptyString() - { - $this->assertMatches(nullOrEmptyString(), '', 'empty string'); - } - - public function testEmptyOrNullDoesNotMatchNonEmptyString() - { - $this->assertDoesNotMatch(nullOrEmptyString(), 'foo', 'non-empty string'); - } - - public function testEmptyOrNullHasAReadableDescription() - { - $this->assertDescription('(null or an empty string)', nullOrEmptyString()); - } - - public function testNonEmptyDoesNotMatchNull() - { - $this->assertDoesNotMatch(nonEmptyString(), null, 'null'); - } - - public function testNonEmptyDoesNotMatchEmptyString() - { - $this->assertDoesNotMatch(nonEmptyString(), '', 'empty string'); - } - - public function testNonEmptyMatchesNonEmptyString() - { - $this->assertMatches(nonEmptyString(), 'foo', 'non-empty string'); - } - - public function testNonEmptyHasAReadableDescription() - { - $this->assertDescription('a non-empty string', nonEmptyString()); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringCaseTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringCaseTest.php deleted file mode 100644 index 0539fd5c..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringCaseTest.php +++ /dev/null @@ -1,40 +0,0 @@ -assertDescription( - 'equalToIgnoringCase("heLLo")', - equalToIgnoringCase('heLLo') - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringWhiteSpaceTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringWhiteSpaceTest.php deleted file mode 100644 index 6c2304f4..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringWhiteSpaceTest.php +++ /dev/null @@ -1,51 +0,0 @@ -_matcher = \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace( - "Hello World how\n are we? " - ); - } - - protected function createMatcher() - { - return $this->_matcher; - } - - public function testPassesIfWordsAreSameButWhitespaceDiffers() - { - assertThat('Hello World how are we?', $this->_matcher); - assertThat(" Hello \rWorld \t how are\nwe?", $this->_matcher); - } - - public function testFailsIfTextOtherThanWhitespaceDiffers() - { - assertThat('Hello PLANET how are we?', not($this->_matcher)); - assertThat('Hello World how are we', not($this->_matcher)); - } - - public function testFailsIfWhitespaceIsAddedOrRemovedInMidWord() - { - assertThat('HelloWorld how are we?', not($this->_matcher)); - assertThat('Hello Wo rld how are we?', not($this->_matcher)); - } - - public function testFailsIfMatchingAgainstNull() - { - assertThat(null, not($this->_matcher)); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - "equalToIgnoringWhiteSpace(\"Hello World how\\n are we? \")", - $this->_matcher - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/MatchesPatternTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/MatchesPatternTest.php deleted file mode 100644 index 4891598f..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/MatchesPatternTest.php +++ /dev/null @@ -1,30 +0,0 @@ -assertDescription('a string matching "pattern"', matchesPattern('pattern')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsIgnoringCaseTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsIgnoringCaseTest.php deleted file mode 100644 index 3b5b08e3..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsIgnoringCaseTest.php +++ /dev/null @@ -1,80 +0,0 @@ -_stringContains = \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase( - strtolower(self::EXCERPT) - ); - } - - protected function createMatcher() - { - return $this->_stringContains; - } - - public function testEvaluatesToTrueIfArgumentContainsSpecifiedSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT . 'END'), - 'should be true if excerpt at beginning' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . self::EXCERPT), - 'should be true if excerpt at end' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . self::EXCERPT . 'END'), - 'should be true if excerpt in middle' - ); - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT . self::EXCERPT), - 'should be true if excerpt is repeated' - ); - - $this->assertFalse( - $this->_stringContains->matches('Something else'), - 'should not be true if excerpt is not in string' - ); - $this->assertFalse( - $this->_stringContains->matches(substr(self::EXCERPT, 1)), - 'should not be true if part of excerpt is in string' - ); - } - - public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT), - 'should be true if excerpt is entire string' - ); - } - - public function testEvaluatesToTrueIfArgumentContainsExactSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(strtolower(self::EXCERPT)), - 'should be false if excerpt is entire string ignoring case' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . strtolower(self::EXCERPT) . 'END'), - 'should be false if excerpt is contained in string ignoring case' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'a string containing in any case "' - . strtolower(self::EXCERPT) . '"', - $this->_stringContains - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsInOrderTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsInOrderTest.php deleted file mode 100644 index 0be70629..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsInOrderTest.php +++ /dev/null @@ -1,42 +0,0 @@ -_m = \Hamcrest\Text\StringContainsInOrder::stringContainsInOrder(array('a', 'b', 'c')); - } - - protected function createMatcher() - { - return $this->_m; - } - - public function testMatchesOnlyIfStringContainsGivenSubstringsInTheSameOrder() - { - $this->assertMatches($this->_m, 'abc', 'substrings in order'); - $this->assertMatches($this->_m, '1a2b3c4', 'substrings separated'); - - $this->assertDoesNotMatch($this->_m, 'cab', 'substrings out of order'); - $this->assertDoesNotMatch($this->_m, 'xyz', 'no substrings in string'); - $this->assertDoesNotMatch($this->_m, 'ac', 'substring missing'); - $this->assertDoesNotMatch($this->_m, '', 'empty string'); - } - - public function testAcceptsVariableArguments() - { - $this->assertMatches(stringContainsInOrder('a', 'b', 'c'), 'abc', 'substrings as variable arguments'); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'a string containing "a", "b", "c" in order', - $this->_m - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsTest.php deleted file mode 100644 index 203fd918..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsTest.php +++ /dev/null @@ -1,86 +0,0 @@ -_stringContains = \Hamcrest\Text\StringContains::containsString(self::EXCERPT); - } - - protected function createMatcher() - { - return $this->_stringContains; - } - - public function testEvaluatesToTrueIfArgumentContainsSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT . 'END'), - 'should be true if excerpt at beginning' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . self::EXCERPT), - 'should be true if excerpt at end' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . self::EXCERPT . 'END'), - 'should be true if excerpt in middle' - ); - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT . self::EXCERPT), - 'should be true if excerpt is repeated' - ); - - $this->assertFalse( - $this->_stringContains->matches('Something else'), - 'should not be true if excerpt is not in string' - ); - $this->assertFalse( - $this->_stringContains->matches(substr(self::EXCERPT, 1)), - 'should not be true if part of excerpt is in string' - ); - } - - public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT), - 'should be true if excerpt is entire string' - ); - } - - public function testEvaluatesToFalseIfArgumentContainsSubstringIgnoringCase() - { - $this->assertFalse( - $this->_stringContains->matches(strtolower(self::EXCERPT)), - 'should be false if excerpt is entire string ignoring case' - ); - $this->assertFalse( - $this->_stringContains->matches('START' . strtolower(self::EXCERPT) . 'END'), - 'should be false if excerpt is contained in string ignoring case' - ); - } - - public function testIgnoringCaseReturnsCorrectMatcher() - { - $this->assertTrue( - $this->_stringContains->ignoringCase()->matches('EXceRpT'), - 'should be true if excerpt is entire string ignoring case' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'a string containing "' - . self::EXCERPT . '"', - $this->_stringContains - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringEndsWithTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringEndsWithTest.php deleted file mode 100644 index fffa3c9c..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringEndsWithTest.php +++ /dev/null @@ -1,62 +0,0 @@ -_stringEndsWith = \Hamcrest\Text\StringEndsWith::endsWith(self::EXCERPT); - } - - protected function createMatcher() - { - return $this->_stringEndsWith; - } - - public function testEvaluatesToTrueIfArgumentContainsSpecifiedSubstring() - { - $this->assertFalse( - $this->_stringEndsWith->matches(self::EXCERPT . 'END'), - 'should be false if excerpt at beginning' - ); - $this->assertTrue( - $this->_stringEndsWith->matches('START' . self::EXCERPT), - 'should be true if excerpt at end' - ); - $this->assertFalse( - $this->_stringEndsWith->matches('START' . self::EXCERPT . 'END'), - 'should be false if excerpt in middle' - ); - $this->assertTrue( - $this->_stringEndsWith->matches(self::EXCERPT . self::EXCERPT), - 'should be true if excerpt is at end and repeated' - ); - - $this->assertFalse( - $this->_stringEndsWith->matches('Something else'), - 'should be false if excerpt is not in string' - ); - $this->assertFalse( - $this->_stringEndsWith->matches(substr(self::EXCERPT, 0, strlen(self::EXCERPT) - 2)), - 'should be false if part of excerpt is at end of string' - ); - } - - public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() - { - $this->assertTrue( - $this->_stringEndsWith->matches(self::EXCERPT), - 'should be true if excerpt is entire string' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('a string ending with "EXCERPT"', $this->_stringEndsWith); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringStartsWithTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringStartsWithTest.php deleted file mode 100644 index fc3761bd..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringStartsWithTest.php +++ /dev/null @@ -1,62 +0,0 @@ -_stringStartsWith = \Hamcrest\Text\StringStartsWith::startsWith(self::EXCERPT); - } - - protected function createMatcher() - { - return $this->_stringStartsWith; - } - - public function testEvaluatesToTrueIfArgumentContainsSpecifiedSubstring() - { - $this->assertTrue( - $this->_stringStartsWith->matches(self::EXCERPT . 'END'), - 'should be true if excerpt at beginning' - ); - $this->assertFalse( - $this->_stringStartsWith->matches('START' . self::EXCERPT), - 'should be false if excerpt at end' - ); - $this->assertFalse( - $this->_stringStartsWith->matches('START' . self::EXCERPT . 'END'), - 'should be false if excerpt in middle' - ); - $this->assertTrue( - $this->_stringStartsWith->matches(self::EXCERPT . self::EXCERPT), - 'should be true if excerpt is at beginning and repeated' - ); - - $this->assertFalse( - $this->_stringStartsWith->matches('Something else'), - 'should be false if excerpt is not in string' - ); - $this->assertFalse( - $this->_stringStartsWith->matches(substr(self::EXCERPT, 1)), - 'should be false if part of excerpt is at start of string' - ); - } - - public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() - { - $this->assertTrue( - $this->_stringStartsWith->matches(self::EXCERPT), - 'should be true if excerpt is entire string' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('a string starting with "EXCERPT"', $this->_stringStartsWith); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsArrayTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsArrayTest.php deleted file mode 100644 index d13c24d2..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsArrayTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertDescription('an array', arrayValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', arrayValue(), null); - $this->assertMismatchDescription('was a string "foo"', arrayValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsBooleanTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsBooleanTest.php deleted file mode 100644 index 24309fc0..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsBooleanTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertDescription('a boolean', booleanValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', booleanValue(), null); - $this->assertMismatchDescription('was a string "foo"', booleanValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsCallableTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsCallableTest.php deleted file mode 100644 index 5098e21b..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsCallableTest.php +++ /dev/null @@ -1,103 +0,0 @@ -=')) { - $this->markTestSkipped('Closures require php 5.3'); - } - eval('assertThat(function () {}, callableValue());'); - } - - public function testEvaluatesToTrueIfArgumentImplementsInvoke() - { - if (!version_compare(PHP_VERSION, '5.3', '>=')) { - $this->markTestSkipped('Magic method __invoke() requires php 5.3'); - } - assertThat($this, callableValue()); - } - - public function testEvaluatesToFalseIfArgumentIsInvalidFunctionName() - { - if (function_exists('not_a_Hamcrest_function')) { - $this->markTestSkipped('Function "not_a_Hamcrest_function" must not exist'); - } - - assertThat('not_a_Hamcrest_function', not(callableValue())); - } - - public function testEvaluatesToFalseIfArgumentIsInvalidStaticMethodCallback() - { - assertThat( - array('Hamcrest\Type\IsCallableTest', 'noMethod'), - not(callableValue()) - ); - } - - public function testEvaluatesToFalseIfArgumentIsInvalidInstanceMethodCallback() - { - assertThat(array($this, 'noMethod'), not(callableValue())); - } - - public function testEvaluatesToFalseIfArgumentDoesntImplementInvoke() - { - assertThat(new \stdClass(), not(callableValue())); - } - - public function testEvaluatesToFalseIfArgumentDoesntMatchType() - { - assertThat(false, not(callableValue())); - assertThat(5.2, not(callableValue())); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('a callable', callableValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription( - 'was a string "invalid-function"', - callableValue(), - 'invalid-function' - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsDoubleTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsDoubleTest.php deleted file mode 100644 index 85c2a963..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsDoubleTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertDescription('a double', doubleValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', doubleValue(), null); - $this->assertMismatchDescription('was a string "foo"', doubleValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsIntegerTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsIntegerTest.php deleted file mode 100644 index ce5a51a9..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsIntegerTest.php +++ /dev/null @@ -1,36 +0,0 @@ -assertDescription('an integer', integerValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', integerValue(), null); - $this->assertMismatchDescription('was a string "foo"', integerValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsNumericTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsNumericTest.php deleted file mode 100644 index 1fd83efe..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsNumericTest.php +++ /dev/null @@ -1,53 +0,0 @@ -assertDescription('a number', numericValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', numericValue(), null); - $this->assertMismatchDescription('was a string "foo"', numericValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsObjectTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsObjectTest.php deleted file mode 100644 index a3b617c2..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsObjectTest.php +++ /dev/null @@ -1,34 +0,0 @@ -assertDescription('an object', objectValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', objectValue(), null); - $this->assertMismatchDescription('was a string "foo"', objectValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsResourceTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsResourceTest.php deleted file mode 100644 index d6ea5348..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsResourceTest.php +++ /dev/null @@ -1,34 +0,0 @@ -assertDescription('a resource', resourceValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', resourceValue(), null); - $this->assertMismatchDescription('was a string "foo"', resourceValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsScalarTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsScalarTest.php deleted file mode 100644 index 72a188d6..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsScalarTest.php +++ /dev/null @@ -1,39 +0,0 @@ -assertDescription('a scalar', scalarValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', scalarValue(), null); - $this->assertMismatchDescription('was an array ["foo"]', scalarValue(), array('foo')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsStringTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsStringTest.php deleted file mode 100644 index 557d5913..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsStringTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertDescription('a string', stringValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', stringValue(), null); - $this->assertMismatchDescription('was a double <5.2F>', stringValue(), 5.2); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/UtilTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/UtilTest.php deleted file mode 100644 index 0c2cd043..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/UtilTest.php +++ /dev/null @@ -1,80 +0,0 @@ -assertSame($matcher, $newMatcher); - } - - public function testWrapValueWithIsEqualWrapsPrimitive() - { - $matcher = \Hamcrest\Util::wrapValueWithIsEqual('foo'); - $this->assertInstanceOf('Hamcrest\Core\IsEqual', $matcher); - $this->assertTrue($matcher->matches('foo')); - } - - public function testCheckAllAreMatchersAcceptsMatchers() - { - \Hamcrest\Util::checkAllAreMatchers(array( - new \Hamcrest\Text\MatchesPattern('/fo+/'), - new \Hamcrest\Core\IsEqual('foo'), - )); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testCheckAllAreMatchersFailsForPrimitive() - { - \Hamcrest\Util::checkAllAreMatchers(array( - new \Hamcrest\Text\MatchesPattern('/fo+/'), - 'foo', - )); - } - - private function callAndAssertCreateMatcherArray($items) - { - $matchers = \Hamcrest\Util::createMatcherArray($items); - $this->assertInternalType('array', $matchers); - $this->assertSameSize($items, $matchers); - foreach ($matchers as $matcher) { - $this->assertInstanceOf('\Hamcrest\Matcher', $matcher); - } - - return $matchers; - } - - public function testCreateMatcherArrayLeavesMatchersUntouched() - { - $matcher = new \Hamcrest\Text\MatchesPattern('/fo+/'); - $items = array($matcher); - $matchers = $this->callAndAssertCreateMatcherArray($items); - $this->assertSame($matcher, $matchers[0]); - } - - public function testCreateMatcherArrayWrapsPrimitiveWithIsEqualMatcher() - { - $matchers = $this->callAndAssertCreateMatcherArray(array('foo')); - $this->assertInstanceOf('Hamcrest\Core\IsEqual', $matchers[0]); - $this->assertTrue($matchers[0]->matches('foo')); - } - - public function testCreateMatcherArrayDoesntModifyOriginalArray() - { - $items = array('foo'); - $this->callAndAssertCreateMatcherArray($items); - $this->assertSame('foo', $items[0]); - } - - public function testCreateMatcherArrayUnwrapsSingleArrayElement() - { - $matchers = $this->callAndAssertCreateMatcherArray(array(array('foo'))); - $this->assertInstanceOf('Hamcrest\Core\IsEqual', $matchers[0]); - $this->assertTrue($matchers[0]->matches('foo')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Xml/HasXPathTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Xml/HasXPathTest.php deleted file mode 100644 index 67748871..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Xml/HasXPathTest.php +++ /dev/null @@ -1,198 +0,0 @@ - - - - alice - Alice Frankel - admin - - - bob - Bob Frankel - user - - - charlie - Charlie Chan - user - - -XML; - self::$doc = new \DOMDocument(); - self::$doc->loadXML(self::$xml); - - self::$html = << - - Home Page - - -

Heading

-

Some text

- - -HTML; - } - - protected function createMatcher() - { - return \Hamcrest\Xml\HasXPath::hasXPath('/users/user'); - } - - public function testMatchesWhenXPathIsFound() - { - assertThat('one match', self::$doc, hasXPath('user[id = "bob"]')); - assertThat('two matches', self::$doc, hasXPath('user[role = "user"]')); - } - - public function testDoesNotMatchWhenXPathIsNotFound() - { - assertThat( - 'no match', - self::$doc, - not(hasXPath('user[contains(id, "frank")]')) - ); - } - - public function testMatchesWhenExpressionWithoutMatcherEvaluatesToTrue() - { - assertThat( - 'one match', - self::$doc, - hasXPath('count(user[id = "bob"])') - ); - } - - public function testDoesNotMatchWhenExpressionWithoutMatcherEvaluatesToFalse() - { - assertThat( - 'no matches', - self::$doc, - not(hasXPath('count(user[id = "frank"])')) - ); - } - - public function testMatchesWhenExpressionIsEqual() - { - assertThat( - 'one match', - self::$doc, - hasXPath('count(user[id = "bob"])', 1) - ); - assertThat( - 'two matches', - self::$doc, - hasXPath('count(user[role = "user"])', 2) - ); - } - - public function testDoesNotMatchWhenExpressionIsNotEqual() - { - assertThat( - 'no match', - self::$doc, - not(hasXPath('count(user[id = "frank"])', 2)) - ); - assertThat( - 'one match', - self::$doc, - not(hasXPath('count(user[role = "admin"])', 2)) - ); - } - - public function testMatchesWhenContentMatches() - { - assertThat( - 'one match', - self::$doc, - hasXPath('user/name', containsString('ice')) - ); - assertThat( - 'two matches', - self::$doc, - hasXPath('user/role', equalTo('user')) - ); - } - - public function testDoesNotMatchWhenContentDoesNotMatch() - { - assertThat( - 'no match', - self::$doc, - not(hasXPath('user/name', containsString('Bobby'))) - ); - assertThat( - 'no matches', - self::$doc, - not(hasXPath('user/role', equalTo('owner'))) - ); - } - - public function testProvidesConvenientShortcutForHasXPathEqualTo() - { - assertThat('matches', self::$doc, hasXPath('count(user)', 3)); - assertThat('matches', self::$doc, hasXPath('user[2]/id', 'bob')); - } - - public function testProvidesConvenientShortcutForHasXPathCountEqualTo() - { - assertThat('matches', self::$doc, hasXPath('user[id = "charlie"]', 1)); - } - - public function testMatchesAcceptsXmlString() - { - assertThat('accepts XML string', self::$xml, hasXPath('user')); - } - - public function testMatchesAcceptsHtmlString() - { - assertThat('accepts HTML string', self::$html, hasXPath('body/h1', 'Heading')); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'XML or HTML document with XPath "/users/user"', - hasXPath('/users/user') - ); - $this->assertDescription( - 'XML or HTML document with XPath "count(/users/user)" <2>', - hasXPath('/users/user', 2) - ); - $this->assertDescription( - 'XML or HTML document with XPath "/users/user/name"' - . ' a string starting with "Alice"', - hasXPath('/users/user/name', startsWith('Alice')) - ); - } - - public function testHasAReadableMismatchDescription() - { - $this->assertMismatchDescription( - 'XPath returned no results', - hasXPath('/users/name'), - self::$doc - ); - $this->assertMismatchDescription( - 'XPath expression result was <3F>', - hasXPath('/users/user', 2), - self::$doc - ); - $this->assertMismatchDescription( - 'XPath returned ["alice", "bob", "charlie"]', - hasXPath('/users/user/id', 'Frank'), - self::$doc - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/bootstrap.php b/vendor/hamcrest/hamcrest-php/tests/bootstrap.php deleted file mode 100644 index bc4958d1..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/bootstrap.php +++ /dev/null @@ -1,11 +0,0 @@ - - - - . - - - - - - ../hamcrest - - - diff --git a/vendor/jakub-onderka/php-console-color/.gitignore b/vendor/jakub-onderka/php-console-color/.gitignore deleted file mode 100644 index 05ab16b8..00000000 --- a/vendor/jakub-onderka/php-console-color/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -build -vendor -composer.lock diff --git a/vendor/jakub-onderka/php-console-color/.travis.yml b/vendor/jakub-onderka/php-console-color/.travis.yml deleted file mode 100644 index 4671dca5..00000000 --- a/vendor/jakub-onderka/php-console-color/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: php - -php: - - 5.3.3 - - 5.4 - - 5.5 - -before_script: - - composer self-update - - composer install --no-interaction --prefer-source --dev - -script: - - ant phplint - - ant phpcs - - ant phpunit \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/build.xml b/vendor/jakub-onderka/php-console-color/build.xml deleted file mode 100644 index bb4ba66d..00000000 --- a/vendor/jakub-onderka/php-console-color/build.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/composer.json b/vendor/jakub-onderka/php-console-color/composer.json deleted file mode 100644 index 0721abca..00000000 --- a/vendor/jakub-onderka/php-console-color/composer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "jakub-onderka/php-console-color", - "license": "BSD-2-Clause", - "version": "0.1", - "authors": [ - { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com" - } - ], - "autoload": { - "psr-0": {"JakubOnderka\\PhpConsoleColor": "src/"} - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "3.7.*", - "jakub-onderka/php-parallel-lint": "0.*", - "jakub-onderka/php-var-dump-check": "0.*", - "squizlabs/php_codesniffer": "1.*", - "jakub-onderka/php-code-style": "1.0" - } -} \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/example.php b/vendor/jakub-onderka/php-console-color/example.php deleted file mode 100644 index 5e698a24..00000000 --- a/vendor/jakub-onderka/php-console-color/example.php +++ /dev/null @@ -1,38 +0,0 @@ -isSupported() ? 'Yes' : 'No') . "\n"; -echo "256 colors are supported: " . ($consoleColor->are256ColorsSupported() ? 'Yes' : 'No') . "\n\n"; - -if ($consoleColor->isSupported()) { - foreach ($consoleColor->getPossibleStyles() as $style) { - echo $consoleColor->apply($style, $style) . "\n"; - } -} - -echo "\n"; - -if ($consoleColor->are256ColorsSupported()) { - echo "Foreground colors:\n"; - for ($i = 1; $i <= 255; $i++) { - echo $consoleColor->apply("color_$i", str_pad($i, 6, ' ', STR_PAD_BOTH)); - - if ($i % 15 === 0) { - echo "\n"; - } - } - - echo "\nBackground colors:\n"; - - for ($i = 1; $i <= 255; $i++) { - echo $consoleColor->apply("bg_color_$i", str_pad($i, 6, ' ', STR_PAD_BOTH)); - - if ($i % 15 === 0) { - echo "\n"; - } - } - - echo "\n"; -} diff --git a/vendor/jakub-onderka/php-console-color/phpunit.xml b/vendor/jakub-onderka/php-console-color/phpunit.xml deleted file mode 100644 index 74011d9d..00000000 --- a/vendor/jakub-onderka/php-console-color/phpunit.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - tests/* - - - - - - - vendor - - - \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php b/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php deleted file mode 100644 index c367a765..00000000 --- a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php +++ /dev/null @@ -1,280 +0,0 @@ - null, - 'bold' => '1', - 'dark' => '2', - 'italic' => '3', - 'underline' => '4', - 'blink' => '5', - 'reverse' => '7', - 'concealed' => '8', - - 'default' => '39', - 'black' => '30', - 'red' => '31', - 'green' => '32', - 'yellow' => '33', - 'blue' => '34', - 'magenta' => '35', - 'cyan' => '36', - 'light_gray' => '37', - - 'dark_gray' => '90', - 'light_red' => '91', - 'light_green' => '92', - 'light_yellow' => '93', - 'light_blue' => '94', - 'light_magenta' => '95', - 'light_cyan' => '96', - 'white' => '97', - - 'bg_default' => '49', - 'bg_black' => '40', - 'bg_red' => '41', - 'bg_green' => '42', - 'bg_yellow' => '43', - 'bg_blue' => '44', - 'bg_magenta' => '45', - 'bg_cyan' => '46', - 'bg_light_gray' => '47', - - 'bg_dark_gray' => '100', - 'bg_light_red' => '101', - 'bg_light_green' => '102', - 'bg_light_yellow' => '103', - 'bg_light_blue' => '104', - 'bg_light_magenta' => '105', - 'bg_light_cyan' => '106', - 'bg_white' => '107', - ); - - /** @var array */ - private $themes = array(); - - public function __construct() - { - $this->isSupported = $this->isSupported(); - } - - /** - * @param string|array $style - * @param string $text - * @return string - * @throws InvalidStyleException - * @throws \InvalidArgumentException - */ - public function apply($style, $text) - { - if (!$this->isStyleForced() && !$this->isSupported()) { - return $text; - } - - if (is_string($style)) { - $style = array($style); - } - if (!is_array($style)) { - throw new \InvalidArgumentException("Style must be string or array."); - } - - $sequences = array(); - - foreach ($style as $s) { - if (isset($this->themes[$s])) { - $sequences = array_merge($sequences, $this->themeSequence($s)); - } else if ($this->isValidStyle($s)) { - $sequences[] = $this->styleSequence($s); - } else { - throw new InvalidStyleException($s); - } - } - - $sequences = array_filter($sequences, function ($val) { - return $val !== null; - }); - - if (empty($sequences)) { - return $text; - } - - return $this->escSequence(implode(';', $sequences)) . $text . $this->escSequence(self::RESET_STYLE); - } - - /** - * @param bool $forceStyle - */ - public function setForceStyle($forceStyle) - { - $this->forceStyle = (bool) $forceStyle; - } - - /** - * @return bool - */ - public function isStyleForced() - { - return $this->forceStyle; - } - - /** - * @param array $themes - * @throws InvalidStyleException - * @throws \InvalidArgumentException - */ - public function setThemes(array $themes) - { - $this->themes = array(); - foreach ($themes as $name => $styles) { - $this->addTheme($name, $styles); - } - } - - /** - * @param string $name - * @param array|string $styles - * @throws \InvalidArgumentException - * @throws InvalidStyleException - */ - public function addTheme($name, $styles) - { - if (is_string($styles)) { - $styles = array($styles); - } - if (!is_array($styles)) { - throw new \InvalidArgumentException("Style must be string or array."); - } - - foreach ($styles as $style) { - if (!$this->isValidStyle($style)) { - throw new InvalidStyleException($style); - } - } - - $this->themes[$name] = $styles; - } - - /** - * @return array - */ - public function getThemes() - { - return $this->themes; - } - - /** - * @param string $name - * @return bool - */ - public function hasTheme($name) - { - return isset($this->themes[$name]); - } - - /** - * @param string $name - */ - public function removeTheme($name) - { - unset($this->themes[$name]); - } - - /** - * @return bool - */ - public function isSupported() - { - if (DIRECTORY_SEPARATOR === '\\') { - return getenv('ANSICON') !== false || getenv('ConEmuANSI') === 'ON'; - } - - return function_exists('posix_isatty') && @posix_isatty(STDOUT); - } - - /** - * @return bool - */ - public function are256ColorsSupported() - { - return DIRECTORY_SEPARATOR === '/' && strpos(getenv('TERM'), '256color') !== false; - } - - /** - * @return array - */ - public function getPossibleStyles() - { - return array_keys($this->styles); - } - - /** - * @param string $name - * @return string - * @throws InvalidStyleException - */ - private function themeSequence($name) - { - $sequences = array(); - foreach ($this->themes[$name] as $style) { - $sequences[] = $this->styleSequence($style); - } - return $sequences; - } - - /** - * @param string $style - * @return string - * @throws InvalidStyleException - */ - private function styleSequence($style) - { - if (array_key_exists($style, $this->styles)) { - return $this->styles[$style]; - } - - if (!$this->are256ColorsSupported()) { - return null; - } - - preg_match(self::COLOR256_REGEXP, $style, $matches); - - $type = $matches[1] === 'bg_' ? self::BACKGROUND : self::FOREGROUND; - $value = $matches[2]; - - return "$type;5;$value"; - } - - /** - * @param string $style - * @return bool - */ - private function isValidStyle($style) - { - return array_key_exists($style, $this->styles) || preg_match(self::COLOR256_REGEXP, $style); - } - - /** - * @param string|int $value - * @return string - */ - private function escSequence($value) - { - return "\033[{$value}m"; - } -} \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php b/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php deleted file mode 100644 index 6f1586f6..00000000 --- a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php +++ /dev/null @@ -1,10 +0,0 @@ -isSupportedForce = $isSupported; - } - - public function isSupported() - { - return $this->isSupportedForce; - } - - public function setAre256ColorsSupported($are256ColorsSupported) - { - $this->are256ColorsSupportedForce = $are256ColorsSupported; - } - - public function are256ColorsSupported() - { - return $this->are256ColorsSupportedForce; - } -} - -class ConsoleColorTest extends \PHPUnit_Framework_TestCase -{ - /** @var ConsoleColorWithForceSupport */ - private $uut; - - protected function setUp() - { - $this->uut = new ConsoleColorWithForceSupport(); - } - - public function testNone() - { - $output = $this->uut->apply('none', 'text'); - $this->assertEquals("text", $output); - } - - public function testBold() - { - $output = $this->uut->apply('bold', 'text'); - $this->assertEquals("\033[1mtext\033[0m", $output); - } - - public function testBoldColorsAreNotSupported() - { - $this->uut->setIsSupported(false); - - $output = $this->uut->apply('bold', 'text'); - $this->assertEquals("text", $output); - } - - public function testBoldColorsAreNotSupportedButAreForced() - { - $this->uut->setIsSupported(false); - $this->uut->setForceStyle(true); - - $output = $this->uut->apply('bold', 'text'); - $this->assertEquals("\033[1mtext\033[0m", $output); - } - - public function testDark() - { - $output = $this->uut->apply('dark', 'text'); - $this->assertEquals("\033[2mtext\033[0m", $output); - } - - public function testBoldAndDark() - { - $output = $this->uut->apply(array('bold', 'dark'), 'text'); - $this->assertEquals("\033[1;2mtext\033[0m", $output); - } - - public function test256ColorForeground() - { - $output = $this->uut->apply('color_255', 'text'); - $this->assertEquals("\033[38;5;255mtext\033[0m", $output); - } - - public function test256ColorWithoutSupport() - { - $this->uut->setAre256ColorsSupported(false); - - $output = $this->uut->apply('color_255', 'text'); - $this->assertEquals("text", $output); - } - - public function test256ColorBackground() - { - $output = $this->uut->apply('bg_color_255', 'text'); - $this->assertEquals("\033[48;5;255mtext\033[0m", $output); - } - - public function test256ColorForegroundAndBackground() - { - $output = $this->uut->apply(array('color_200', 'bg_color_255'), 'text'); - $this->assertEquals("\033[38;5;200;48;5;255mtext\033[0m", $output); - } - - public function testSetOwnTheme() - { - $this->uut->setThemes(array('bold_dark' => array('bold', 'dark'))); - $output = $this->uut->apply(array('bold_dark'), 'text'); - $this->assertEquals("\033[1;2mtext\033[0m", $output); - } - - public function testAddOwnTheme() - { - $this->uut->addTheme('bold_own', 'bold'); - $output = $this->uut->apply(array('bold_own'), 'text'); - $this->assertEquals("\033[1mtext\033[0m", $output); - } - - public function testAddOwnThemeArray() - { - $this->uut->addTheme('bold_dark', array('bold', 'dark')); - $output = $this->uut->apply(array('bold_dark'), 'text'); - $this->assertEquals("\033[1;2mtext\033[0m", $output); - } - - public function testOwnWithStyle() - { - $this->uut->addTheme('bold_dark', array('bold', 'dark')); - $output = $this->uut->apply(array('bold_dark', 'italic'), 'text'); - $this->assertEquals("\033[1;2;3mtext\033[0m", $output); - } - - public function testHasAndRemoveTheme() - { - $this->assertFalse($this->uut->hasTheme('bold_dark')); - - $this->uut->addTheme('bold_dark', array('bold', 'dark')); - $this->assertTrue($this->uut->hasTheme('bold_dark')); - - $this->uut->removeTheme('bold_dark'); - $this->assertFalse($this->uut->hasTheme('bold_dark')); - } - - public function testApplyInvalidArgument() - { - $this->setExpectedException('\InvalidArgumentException'); - $this->uut->apply(new stdClass(), 'text'); - } - - public function testApplyInvalidStyleName() - { - $this->setExpectedException('\JakubOnderka\PhpConsoleColor\InvalidStyleException'); - $this->uut->apply('invalid', 'text'); - } - - public function testApplyInvalid256Color() - { - $this->setExpectedException('\JakubOnderka\PhpConsoleColor\InvalidStyleException'); - $this->uut->apply('color_2134', 'text'); - } - - public function testThemeInvalidStyle() - { - $this->setExpectedException('\JakubOnderka\PhpConsoleColor\InvalidStyleException'); - $this->uut->addTheme('invalid', array('invalid')); - } - - public function testForceStyle() - { - $this->assertFalse($this->uut->isStyleForced()); - $this->uut->setForceStyle(true); - $this->assertTrue($this->uut->isStyleForced()); - } - - public function testGetPossibleStyles() - { - $this->assertInternalType('array', $this->uut->getPossibleStyles()); - $this->assertNotEmpty($this->uut->getPossibleStyles()); - } -} - diff --git a/vendor/jakub-onderka/php-console-color/tests/bootstrap.php b/vendor/jakub-onderka/php-console-color/tests/bootstrap.php deleted file mode 100644 index 7500417e..00000000 --- a/vendor/jakub-onderka/php-console-color/tests/bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ -getWholeFile($fileContent); -``` - ------- - -[![Build Status](https://travis-ci.org/JakubOnderka/PHP-Console-Highlighter.svg?branch=master)](https://travis-ci.org/JakubOnderka/PHP-Console-Highlighter) diff --git a/vendor/jakub-onderka/php-console-highlighter/build.xml b/vendor/jakub-onderka/php-console-highlighter/build.xml deleted file mode 100644 index d656ea9d..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/build.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/composer.json b/vendor/jakub-onderka/php-console-highlighter/composer.json deleted file mode 100644 index bd2f47a2..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/composer.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "jakub-onderka/php-console-highlighter", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Jakub Onderka", - "email": "acci@acci.cz", - "homepage": "http://www.acci.cz/" - } - ], - "autoload": { - "psr-0": {"JakubOnderka\\PhpConsoleHighlighter": "src/"} - }, - "require": { - "php": ">=5.3.0", - "jakub-onderka/php-console-color": "~0.1" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "jakub-onderka/php-parallel-lint": "~0.5", - "jakub-onderka/php-var-dump-check": "~0.1", - "squizlabs/php_codesniffer": "~1.5", - "jakub-onderka/php-code-style": "~1.0" - } -} diff --git a/vendor/jakub-onderka/php-console-highlighter/examples/snippet.php b/vendor/jakub-onderka/php-console-highlighter/examples/snippet.php deleted file mode 100644 index 1bf6ac3b..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/examples/snippet.php +++ /dev/null @@ -1,10 +0,0 @@ -getCodeSnippet($fileContent, 3); \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php b/vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php deleted file mode 100644 index 2a023d80..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php +++ /dev/null @@ -1,10 +0,0 @@ -getWholeFile($fileContent); \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php b/vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php deleted file mode 100644 index f9178f2d..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php +++ /dev/null @@ -1,10 +0,0 @@ -getWholeFileWithLineNumbers($fileContent); \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/phpunit.xml b/vendor/jakub-onderka/php-console-highlighter/phpunit.xml deleted file mode 100644 index 74011d9d..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/phpunit.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - tests/* - - - - - - - vendor - - - \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php b/vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php deleted file mode 100644 index b908e931..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php +++ /dev/null @@ -1,267 +0,0 @@ - 'red', - self::TOKEN_COMMENT => 'yellow', - self::TOKEN_KEYWORD => 'green', - self::TOKEN_DEFAULT => 'default', - self::TOKEN_HTML => 'cyan', - - self::ACTUAL_LINE_MARK => 'red', - self::LINE_NUMBER => 'dark_gray', - ); - - /** - * @param ConsoleColor $color - */ - public function __construct(ConsoleColor $color) - { - $this->color = $color; - - foreach ($this->defaultTheme as $name => $styles) { - if (!$this->color->hasTheme($name)) { - $this->color->addTheme($name, $styles); - } - } - } - - /** - * @param string $source - * @param int $lineNumber - * @param int $linesBefore - * @param int $linesAfter - * @return string - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - * @throws \InvalidArgumentException - */ - public function getCodeSnippet($source, $lineNumber, $linesBefore = 2, $linesAfter = 2) - { - $tokenLines = $this->getHighlightedLines($source); - - $offset = $lineNumber - $linesBefore - 1; - $offset = max($offset, 0); - $length = $linesAfter + $linesBefore + 1; - $tokenLines = array_slice($tokenLines, $offset, $length, $preserveKeys = true); - - $lines = $this->colorLines($tokenLines); - - return $this->lineNumbers($lines, $lineNumber); - } - - /** - * @param string $source - * @return string - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - * @throws \InvalidArgumentException - */ - public function getWholeFile($source) - { - $tokenLines = $this->getHighlightedLines($source); - $lines = $this->colorLines($tokenLines); - return implode(PHP_EOL, $lines); - } - - /** - * @param string $source - * @return string - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - * @throws \InvalidArgumentException - */ - public function getWholeFileWithLineNumbers($source) - { - $tokenLines = $this->getHighlightedLines($source); - $lines = $this->colorLines($tokenLines); - return $this->lineNumbers($lines); - } - - /** - * @param string $source - * @return array - */ - private function getHighlightedLines($source) - { - $source = str_replace(array("\r\n", "\r"), "\n", $source); - $tokens = $this->tokenize($source); - return $this->splitToLines($tokens); - } - - /** - * @param string $source - * @return array - */ - private function tokenize($source) - { - $tokens = token_get_all($source); - - $output = array(); - $currentType = null; - $buffer = ''; - - foreach ($tokens as $token) { - if (is_array($token)) { - switch ($token[0]) { - case T_INLINE_HTML: - $newType = self::TOKEN_HTML; - break; - - case T_COMMENT: - case T_DOC_COMMENT: - $newType = self::TOKEN_COMMENT; - break; - - case T_ENCAPSED_AND_WHITESPACE: - case T_CONSTANT_ENCAPSED_STRING: - $newType = self::TOKEN_STRING; - break; - - case T_WHITESPACE: - break; - - case T_OPEN_TAG: - case T_OPEN_TAG_WITH_ECHO: - case T_CLOSE_TAG: - case T_STRING: - case T_VARIABLE: - - // Constants - case T_DIR: - case T_FILE: - case T_METHOD_C: - case T_DNUMBER: - case T_LNUMBER: - case T_NS_C: - case T_LINE: - case T_CLASS_C: - case T_FUNC_C: - //case T_TRAIT_C: - $newType = self::TOKEN_DEFAULT; - break; - - default: - // Compatibility with PHP 5.3 - if (defined('T_TRAIT_C') && $token[0] === T_TRAIT_C) { - $newType = self::TOKEN_DEFAULT; - } else { - $newType = self::TOKEN_KEYWORD; - } - } - } else { - $newType = $token === '"' ? self::TOKEN_STRING : self::TOKEN_KEYWORD; - } - - if ($currentType === null) { - $currentType = $newType; - } - - if ($currentType != $newType) { - $output[] = array($currentType, $buffer); - $buffer = ''; - $currentType = $newType; - } - - $buffer .= is_array($token) ? $token[1] : $token; - } - - if (isset($newType)) { - $output[] = array($newType, $buffer); - } - - return $output; - } - - /** - * @param array $tokens - * @return array - */ - private function splitToLines(array $tokens) - { - $lines = array(); - - $line = array(); - foreach ($tokens as $token) { - foreach (explode("\n", $token[1]) as $count => $tokenLine) { - if ($count > 0) { - $lines[] = $line; - $line = array(); - } - - if ($tokenLine === '') { - continue; - } - - $line[] = array($token[0], $tokenLine); - } - } - - $lines[] = $line; - - return $lines; - } - - /** - * @param array $tokenLines - * @return array - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - * @throws \InvalidArgumentException - */ - private function colorLines(array $tokenLines) - { - $lines = array(); - foreach ($tokenLines as $lineCount => $tokenLine) { - $line = ''; - foreach ($tokenLine as $token) { - list($tokenType, $tokenValue) = $token; - if ($this->color->hasTheme($tokenType)) { - $line .= $this->color->apply($tokenType, $tokenValue); - } else { - $line .= $tokenValue; - } - } - $lines[$lineCount] = $line; - } - - return $lines; - } - - /** - * @param array $lines - * @param null|int $markLine - * @return string - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - */ - private function lineNumbers(array $lines, $markLine = null) - { - end($lines); - $lineStrlen = strlen(key($lines) + 1); - - $snippet = ''; - foreach ($lines as $i => $line) { - if ($markLine !== null) { - $snippet .= ($markLine === $i + 1 ? $this->color->apply(self::ACTUAL_LINE_MARK, ' > ') : ' '); - } - - $snippet .= $this->color->apply(self::LINE_NUMBER, str_pad($i + 1, $lineStrlen, ' ', STR_PAD_LEFT) . '| '); - $snippet .= $line . PHP_EOL; - } - - return $snippet; - } -} \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php b/vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php deleted file mode 100644 index 269d03da..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php +++ /dev/null @@ -1,263 +0,0 @@ -getMock('\JakubOnderka\PhpConsoleColor\ConsoleColor'); - - $mock->expects($this->any()) - ->method('apply') - ->will($this->returnCallback(function ($style, $text) { - return "<$style>$text"; - })); - - $mock->expects($this->any()) - ->method('hasTheme') - ->will($this->returnValue(true)); - - return $mock; - } - - protected function setUp() - { - $this->uut = new Highlighter($this->getConsoleColorMock()); - } - - protected function compare($original, $expected) - { - $output = $this->uut->getWholeFile($original); - $this->assertEquals($expected, $output); - } - - public function testVariable() - { - $this->compare( - << -echo \$a; -EOL - ); - } - - public function testInteger() - { - $this->compare( - << -echo 43; -EOL - ); - } - - public function testFloat() - { - $this->compare( - << -echo 43.3; -EOL - ); - } - - public function testHex() - { - $this->compare( - << -echo 0x43; -EOL - ); - } - - public function testBasicFunction() - { - $this->compare( - << -function plus(\$a, \$b) { - return \$a + \$b; -} -EOL - ); - } - - public function testStringNormal() - { - $this->compare( - << -echo 'Ahoj světe'; -EOL - ); - } - - public function testStringDouble() - { - $this->compare( - << -echo "Ahoj světe"; -EOL - ); - } - - public function testInstanceof() - { - $this->compare( - << -\$a instanceof stdClass; -EOL - ); - } - - /* - * Constants - */ - public function testConstant() - { - $constants = array( - '__FILE__', - '__LINE__', - '__CLASS__', - '__FUNCTION__', - '__METHOD__', - '__TRAIT__', - '__DIR__', - '__NAMESPACE__' - ); - - foreach ($constants as $constant) { - $this->compare( - << -$constant; -EOL - ); - } - } - - /* - * Comments - */ - public function testComment() - { - $this->compare( - << -/* Ahoj */ -EOL - ); - } - - public function testDocComment() - { - $this->compare( - << -/** Ahoj */ -EOL - ); - } - - public function testInlineComment() - { - $this->compare( - << -// Ahoj -EOL - ); - } - - public function testHashComment() - { - $this->compare( - << -# Ahoj -EOL - ); - } - - public function testEmpty() - { - $this->compare( - '' - , - '' - ); - } -} \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php b/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php deleted file mode 100644 index 7500417e..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ -

- -

-Build Status -Total Downloads -Latest Stable Version -License -

- -## About Laravel - -> **Note:** This repository contains the core code of the Laravel framework. If you want to build an application using Laravel 5, visit the main [Laravel repository](https://github.com/laravel/laravel). - -Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as: - -- [Simple, fast routing engine](https://laravel.com/docs/routing). -- [Powerful dependency injection container](https://laravel.com/docs/container). -- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. -- Database agnostic [schema migrations](https://laravel.com/docs/migrations). -- [Robust background job processing](https://laravel.com/docs/queues). -- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). - -Laravel is accessible, yet powerful, providing tools needed for large, robust applications. A superb combination of simplicity, elegance, and innovation gives you a complete toolset required to build any application with which you are tasked - -## Learning Laravel - -Laravel has the most extensive and thorough documentation and video tutorial library of any modern web application framework. The [Laravel documentation](https://laravel.com/docs) is in-depth and complete, making it a breeze to get started learning the framework. - -If you're not in the mood to read, [Laracasts](https://laracasts.com) contains over 1100 video tutorials covering a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library. - -## Contributing - -Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](http://laravel.com/docs/contributions). - -## Code of Conduct - -In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](CODE_OF_CONDUCT.md). - -## Security Vulnerabilities - -If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. - -## License - -The Laravel framework is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT). diff --git a/vendor/laravel/framework/composer.json b/vendor/laravel/framework/composer.json deleted file mode 100644 index cac60300..00000000 --- a/vendor/laravel/framework/composer.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "name": "laravel/framework", - "description": "The Laravel Framework.", - "keywords": ["framework", "laravel"], - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "ext-mbstring": "*", - "ext-openssl": "*", - "doctrine/inflector": "~1.1", - "erusev/parsedown": "~1.6", - "league/flysystem": "~1.0", - "monolog/monolog": "~1.12", - "mtdowling/cron-expression": "~1.0", - "nesbot/carbon": "~1.20", - "psr/container": "~1.0", - "psr/simple-cache": "^1.0", - "ramsey/uuid": "~3.0", - "swiftmailer/swiftmailer": "~6.0", - "symfony/console": "~3.3", - "symfony/debug": "~3.3", - "symfony/finder": "~3.3", - "symfony/http-foundation": "~3.3", - "symfony/http-kernel": "~3.3", - "symfony/process": "~3.3", - "symfony/routing": "~3.3", - "symfony/var-dumper": "~3.3", - "tijsverkoyen/css-to-inline-styles": "~2.2", - "vlucas/phpdotenv": "~2.2" - }, - "replace": { - "illuminate/auth": "self.version", - "illuminate/broadcasting": "self.version", - "illuminate/bus": "self.version", - "illuminate/cache": "self.version", - "illuminate/config": "self.version", - "illuminate/console": "self.version", - "illuminate/container": "self.version", - "illuminate/contracts": "self.version", - "illuminate/cookie": "self.version", - "illuminate/database": "self.version", - "illuminate/encryption": "self.version", - "illuminate/events": "self.version", - "illuminate/filesystem": "self.version", - "illuminate/hashing": "self.version", - "illuminate/http": "self.version", - "illuminate/log": "self.version", - "illuminate/mail": "self.version", - "illuminate/notifications": "self.version", - "illuminate/pagination": "self.version", - "illuminate/pipeline": "self.version", - "illuminate/queue": "self.version", - "illuminate/redis": "self.version", - "illuminate/routing": "self.version", - "illuminate/session": "self.version", - "illuminate/support": "self.version", - "illuminate/translation": "self.version", - "illuminate/validation": "self.version", - "illuminate/view": "self.version", - "tightenco/collect": "self.version" - }, - "require-dev": { - "aws/aws-sdk-php": "~3.0", - "doctrine/dbal": "~2.5", - "filp/whoops": "^2.1.4", - "mockery/mockery": "~1.0", - "orchestra/testbench-core": "3.5.*", - "pda/pheanstalk": "~3.0", - "phpunit/phpunit": "~6.0", - "predis/predis": "^1.1.1", - "symfony/css-selector": "~3.3", - "symfony/dom-crawler": "~3.3" - }, - "autoload": { - "files": [ - "src/Illuminate/Foundation/helpers.php", - "src/Illuminate/Support/helpers.php" - ], - "psr-4": { - "Illuminate\\": "src/Illuminate/" - } - }, - "autoload-dev": { - "files": [ - "tests/Database/stubs/MigrationCreatorFakeMigration.php" - ], - "psr-4": { - "Illuminate\\Tests\\": "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", - "laravel/tinker": "Required to use the tinker console command (~1.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", - "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", - "league/flysystem-cached-adapter": "Required to use Flysystem caching (~1.0).", - "nexmo/client": "Required to use the Nexmo transport (~1.0).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", - "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).", - "symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.3).", - "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.3).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php b/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php deleted file mode 100644 index dc0753e2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php +++ /dev/null @@ -1,10 +0,0 @@ -policies = $policies; - $this->container = $container; - $this->abilities = $abilities; - $this->userResolver = $userResolver; - $this->afterCallbacks = $afterCallbacks; - $this->beforeCallbacks = $beforeCallbacks; - } - - /** - * Determine if a given ability has been defined. - * - * @param string|array $ability - * @return bool - */ - public function has($ability) - { - $abilities = is_array($ability) ? $ability : func_get_args(); - - foreach ($abilities as $ability) { - if (! isset($this->abilities[$ability])) { - return false; - } - } - - return true; - } - - /** - * Define a new ability. - * - * @param string $ability - * @param callable|string $callback - * @return $this - * - * @throws \InvalidArgumentException - */ - public function define($ability, $callback) - { - if (is_callable($callback)) { - $this->abilities[$ability] = $callback; - } elseif (is_string($callback) && Str::contains($callback, '@')) { - $this->abilities[$ability] = $this->buildAbilityCallback($ability, $callback); - } else { - throw new InvalidArgumentException("Callback must be a callable or a 'Class@method' string."); - } - - return $this; - } - - /** - * Define abilities for a resource. - * - * @param string $name - * @param string $class - * @param array $abilities - * @return $this - */ - public function resource($name, $class, array $abilities = null) - { - $abilities = $abilities ?: [ - 'view' => 'view', - 'create' => 'create', - 'update' => 'update', - 'delete' => 'delete', - ]; - - foreach ($abilities as $ability => $method) { - $this->define($name.'.'.$ability, $class.'@'.$method); - } - - return $this; - } - - /** - * Create the ability callback for a callback string. - * - * @param string $ability - * @param string $callback - * @return \Closure - */ - protected function buildAbilityCallback($ability, $callback) - { - return function () use ($ability, $callback) { - list($class, $method) = Str::parseCallback($callback); - - $policy = $this->resolvePolicy($class); - - $arguments = func_get_args(); - - $user = array_shift($arguments); - - $result = $this->callPolicyBefore( - $policy, $user, $ability, $arguments - ); - - if (! is_null($result)) { - return $result; - } - - return $policy->{$method}(...func_get_args()); - }; - } - - /** - * Define a policy class for a given class type. - * - * @param string $class - * @param string $policy - * @return $this - */ - public function policy($class, $policy) - { - $this->policies[$class] = $policy; - - return $this; - } - - /** - * Register a callback to run before all Gate checks. - * - * @param callable $callback - * @return $this - */ - public function before(callable $callback) - { - $this->beforeCallbacks[] = $callback; - - return $this; - } - - /** - * Register a callback to run after all Gate checks. - * - * @param callable $callback - * @return $this - */ - public function after(callable $callback) - { - $this->afterCallbacks[] = $callback; - - return $this; - } - - /** - * Determine if the given ability should be granted for the current user. - * - * @param string $ability - * @param array|mixed $arguments - * @return bool - */ - public function allows($ability, $arguments = []) - { - return $this->check($ability, $arguments); - } - - /** - * Determine if the given ability should be denied for the current user. - * - * @param string $ability - * @param array|mixed $arguments - * @return bool - */ - public function denies($ability, $arguments = []) - { - return ! $this->allows($ability, $arguments); - } - - /** - * Determine if all of the given abilities should be granted for the current user. - * - * @param iterable|string $abilities - * @param array|mixed $arguments - * @return bool - */ - public function check($abilities, $arguments = []) - { - return collect($abilities)->every(function ($ability) use ($arguments) { - try { - return (bool) $this->raw($ability, $arguments); - } catch (AuthorizationException $e) { - return false; - } - }); - } - - /** - * Determine if any one of the given abilities should be granted for the current user. - * - * @param iterable|string $abilities - * @param array|mixed $arguments - * @return bool - */ - public function any($abilities, $arguments = []) - { - return collect($abilities)->contains(function ($ability) use ($arguments) { - return $this->check($ability, $arguments); - }); - } - - /** - * Determine if the given ability should be granted for the current user. - * - * @param string $ability - * @param array|mixed $arguments - * @return \Illuminate\Auth\Access\Response - * - * @throws \Illuminate\Auth\Access\AuthorizationException - */ - public function authorize($ability, $arguments = []) - { - $result = $this->raw($ability, $arguments); - - if ($result instanceof Response) { - return $result; - } - - return $result ? $this->allow() : $this->deny(); - } - - /** - * Get the raw result from the authorization callback. - * - * @param string $ability - * @param array|mixed $arguments - * @return mixed - */ - protected function raw($ability, $arguments = []) - { - if (! $user = $this->resolveUser()) { - return false; - } - - $arguments = Arr::wrap($arguments); - - // First we will call the "before" callbacks for the Gate. If any of these give - // back a non-null response, we will immediately return that result in order - // to let the developers override all checks for some authorization cases. - $result = $this->callBeforeCallbacks( - $user, $ability, $arguments - ); - - if (is_null($result)) { - $result = $this->callAuthCallback($user, $ability, $arguments); - } - - // After calling the authorization callback, we will call the "after" callbacks - // that are registered with the Gate, which allows a developer to do logging - // if that is required for this application. Then we'll return the result. - $this->callAfterCallbacks( - $user, $ability, $arguments, $result - ); - - return $result; - } - - /** - * Resolve and call the appropriate authorization callback. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @return bool - */ - protected function callAuthCallback($user, $ability, array $arguments) - { - $callback = $this->resolveAuthCallback($user, $ability, $arguments); - - return $callback($user, ...$arguments); - } - - /** - * Call all of the before callbacks and return if a result is given. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @return bool|null - */ - protected function callBeforeCallbacks($user, $ability, array $arguments) - { - $arguments = array_merge([$user, $ability], [$arguments]); - - foreach ($this->beforeCallbacks as $before) { - if (! is_null($result = $before(...$arguments))) { - return $result; - } - } - } - - /** - * Call all of the after callbacks with check result. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @param bool $result - * @return void - */ - protected function callAfterCallbacks($user, $ability, array $arguments, $result) - { - $arguments = array_merge([$user, $ability, $result], [$arguments]); - - foreach ($this->afterCallbacks as $after) { - $after(...$arguments); - } - } - - /** - * Resolve the callable for the given ability and arguments. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @return callable - */ - protected function resolveAuthCallback($user, $ability, array $arguments) - { - if (isset($arguments[0]) && - ! is_null($policy = $this->getPolicyFor($arguments[0])) && - $callback = $this->resolvePolicyCallback($user, $ability, $arguments, $policy)) { - return $callback; - } - - if (isset($this->abilities[$ability])) { - return $this->abilities[$ability]; - } - - return function () { - return false; - }; - } - - /** - * Get a policy instance for a given class. - * - * @param object|string $class - * @return mixed - */ - public function getPolicyFor($class) - { - if (is_object($class)) { - $class = get_class($class); - } - - if (! is_string($class)) { - return; - } - - if (isset($this->policies[$class])) { - return $this->resolvePolicy($this->policies[$class]); - } - - foreach ($this->policies as $expected => $policy) { - if (is_subclass_of($class, $expected)) { - return $this->resolvePolicy($policy); - } - } - } - - /** - * Build a policy class instance of the given type. - * - * @param object|string $class - * @return mixed - */ - public function resolvePolicy($class) - { - return $this->container->make($class); - } - - /** - * Resolve the callback for a policy check. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @param mixed $policy - * @return bool|callable - */ - protected function resolvePolicyCallback($user, $ability, array $arguments, $policy) - { - if (! is_callable([$policy, $this->formatAbilityToMethod($ability)])) { - return false; - } - - return function () use ($user, $ability, $arguments, $policy) { - // This callback will be responsible for calling the policy's before method and - // running this policy method if necessary. This is used to when objects are - // mapped to policy objects in the user's configurations or on this class. - $result = $this->callPolicyBefore( - $policy, $user, $ability, $arguments - ); - - // When we receive a non-null result from this before method, we will return it - // as the "final" results. This will allow developers to override the checks - // in this policy to return the result for all rules defined in the class. - if (! is_null($result)) { - return $result; - } - - $ability = $this->formatAbilityToMethod($ability); - - // If this first argument is a string, that means they are passing a class name - // to the policy. We will remove the first argument from this argument array - // because this policy already knows what type of models it can authorize. - if (isset($arguments[0]) && is_string($arguments[0])) { - array_shift($arguments); - } - - return is_callable([$policy, $ability]) - ? $policy->{$ability}($user, ...$arguments) - : false; - }; - } - - /** - * Call the "before" method on the given policy, if applicable. - * - * @param mixed $policy - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @return mixed - */ - protected function callPolicyBefore($policy, $user, $ability, $arguments) - { - if (method_exists($policy, 'before')) { - return $policy->before($user, $ability, ...$arguments); - } - } - - /** - * Format the policy ability into a method name. - * - * @param string $ability - * @return string - */ - protected function formatAbilityToMethod($ability) - { - return strpos($ability, '-') !== false ? Str::camel($ability) : $ability; - } - - /** - * Get a gate instance for the given user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user - * @return static - */ - public function forUser($user) - { - $callback = function () use ($user) { - return $user; - }; - - return new static( - $this->container, $callback, $this->abilities, - $this->policies, $this->beforeCallbacks, $this->afterCallbacks - ); - } - - /** - * Resolve the user from the user resolver. - * - * @return mixed - */ - protected function resolveUser() - { - return call_user_func($this->userResolver); - } - - /** - * Get all of the defined abilities. - * - * @return array - */ - public function abilities() - { - return $this->abilities; - } - - /** - * Get all of the defined policies. - * - * @return array - */ - public function policies() - { - return $this->policies; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php b/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php deleted file mode 100644 index 1a597bb9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php +++ /dev/null @@ -1,30 +0,0 @@ -message = $message; - } - - /** - * Get the response message. - * - * @return string|null - */ - public function message() - { - return $this->message; - } - - /** - * Get the string representation of the message. - * - * @return string - */ - public function __toString() - { - return $this->message(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php b/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php deleted file mode 100755 index 49825fae..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php +++ /dev/null @@ -1,294 +0,0 @@ -app = $app; - - $this->userResolver = function ($guard = null) { - return $this->guard($guard)->user(); - }; - } - - /** - * Attempt to get the guard from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard - */ - public function guard($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return $this->guards[$name] ?? $this->guards[$name] = $this->resolve($name); - } - - /** - * Resolve the given guard. - * - * @param string $name - * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Auth guard [{$name}] is not defined."); - } - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($name, $config); - } - - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (method_exists($this, $driverMethod)) { - return $this->{$driverMethod}($name, $config); - } - - throw new InvalidArgumentException("Auth guard driver [{$name}] is not defined."); - } - - /** - * Call a custom driver creator. - * - * @param string $name - * @param array $config - * @return mixed - */ - protected function callCustomCreator($name, array $config) - { - return $this->customCreators[$config['driver']]($this->app, $name, $config); - } - - /** - * Create a session based authentication guard. - * - * @param string $name - * @param array $config - * @return \Illuminate\Auth\SessionGuard - */ - public function createSessionDriver($name, $config) - { - $provider = $this->createUserProvider($config['provider'] ?? null); - - $guard = new SessionGuard($name, $provider, $this->app['session.store']); - - // When using the remember me functionality of the authentication services we - // will need to be set the encryption instance of the guard, which allows - // secure, encrypted cookie values to get generated for those cookies. - if (method_exists($guard, 'setCookieJar')) { - $guard->setCookieJar($this->app['cookie']); - } - - if (method_exists($guard, 'setDispatcher')) { - $guard->setDispatcher($this->app['events']); - } - - if (method_exists($guard, 'setRequest')) { - $guard->setRequest($this->app->refresh('request', $guard, 'setRequest')); - } - - return $guard; - } - - /** - * Create a token based authentication guard. - * - * @param string $name - * @param array $config - * @return \Illuminate\Auth\TokenGuard - */ - public function createTokenDriver($name, $config) - { - // The token guard implements a basic API token based guard implementation - // that takes an API token field from the request and matches it to the - // user in the database or another persistence layer where users are. - $guard = new TokenGuard( - $this->createUserProvider($config['provider'] ?? null), - $this->app['request'] - ); - - $this->app->refresh('request', $guard, 'setRequest'); - - return $guard; - } - - /** - * Get the guard configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["auth.guards.{$name}"]; - } - - /** - * Get the default authentication driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['auth.defaults.guard']; - } - - /** - * Set the default guard driver the factory should serve. - * - * @param string $name - * @return void - */ - public function shouldUse($name) - { - $name = $name ?: $this->getDefaultDriver(); - - $this->setDefaultDriver($name); - - $this->userResolver = function ($name = null) { - return $this->guard($name)->user(); - }; - } - - /** - * Set the default authentication driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['auth.defaults.guard'] = $name; - } - - /** - * Register a new callback based request guard. - * - * @param string $driver - * @param callable $callback - * @return $this - */ - public function viaRequest($driver, callable $callback) - { - return $this->extend($driver, function () use ($callback) { - $guard = new RequestGuard($callback, $this->app['request'], $this->createUserProvider()); - - $this->app->refresh('request', $guard, 'setRequest'); - - return $guard; - }); - } - - /** - * Get the user resolver callback. - * - * @return \Closure - */ - public function userResolver() - { - return $this->userResolver; - } - - /** - * Set the callback to be used to resolve users. - * - * @param \Closure $userResolver - * @return $this - */ - public function resolveUsersUsing(Closure $userResolver) - { - $this->userResolver = $userResolver; - - return $this; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback; - - return $this; - } - - /** - * Register a custom provider creator Closure. - * - * @param string $name - * @param \Closure $callback - * @return $this - */ - public function provider($name, Closure $callback) - { - $this->customProviderCreators[$name] = $callback; - - return $this; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->guard()->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php deleted file mode 100755 index 2820beb4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php +++ /dev/null @@ -1,90 +0,0 @@ -registerAuthenticator(); - - $this->registerUserResolver(); - - $this->registerAccessGate(); - - $this->registerRequestRebindHandler(); - } - - /** - * Register the authenticator services. - * - * @return void - */ - protected function registerAuthenticator() - { - $this->app->singleton('auth', function ($app) { - // Once the authentication service has actually been requested by the developer - // we will set a variable in the application indicating such. This helps us - // know that we need to set any queued cookies in the after event later. - $app['auth.loaded'] = true; - - return new AuthManager($app); - }); - - $this->app->singleton('auth.driver', function ($app) { - return $app['auth']->guard(); - }); - } - - /** - * Register a resolver for the authenticated user. - * - * @return void - */ - protected function registerUserResolver() - { - $this->app->bind( - AuthenticatableContract::class, function ($app) { - return call_user_func($app['auth']->userResolver()); - } - ); - } - - /** - * Register the access gate service. - * - * @return void - */ - protected function registerAccessGate() - { - $this->app->singleton(GateContract::class, function ($app) { - return new Gate($app, function () use ($app) { - return call_user_func($app['auth']->userResolver()); - }); - }); - } - - /** - * Register a resolver for the authenticated user. - * - * @return void - */ - protected function registerRequestRebindHandler() - { - $this->app->rebinding('request', function ($app, $request) { - $request->setUserResolver(function ($guard = null) use ($app) { - return call_user_func($app['auth']->userResolver(), $guard); - }); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php b/vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php deleted file mode 100644 index d7578a3d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php +++ /dev/null @@ -1,78 +0,0 @@ -getKeyName(); - } - - /** - * Get the unique identifier for the user. - * - * @return mixed - */ - public function getAuthIdentifier() - { - return $this->{$this->getAuthIdentifierName()}; - } - - /** - * Get the password for the user. - * - * @return string - */ - public function getAuthPassword() - { - return $this->password; - } - - /** - * Get the token value for the "remember me" session. - * - * @return string|null - */ - public function getRememberToken() - { - if (! empty($this->getRememberTokenName())) { - return (string) $this->{$this->getRememberTokenName()}; - } - } - - /** - * Set the token value for the "remember me" session. - * - * @param string $value - * @return void - */ - public function setRememberToken($value) - { - if (! empty($this->getRememberTokenName())) { - $this->{$this->getRememberTokenName()} = $value; - } - } - - /** - * Get the column name for the "remember me" token. - * - * @return string - */ - public function getRememberTokenName() - { - return $this->rememberTokenName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php b/vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php deleted file mode 100644 index 3445b23a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php +++ /dev/null @@ -1,39 +0,0 @@ -guards = $guards; - } - - /** - * Get the guards that were checked. - * - * @return array - */ - public function guards() - { - return $this->guards; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php deleted file mode 100644 index 52041fa3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php +++ /dev/null @@ -1,119 +0,0 @@ - 'auth/login.blade.php', - 'auth/register.stub' => 'auth/register.blade.php', - 'auth/passwords/email.stub' => 'auth/passwords/email.blade.php', - 'auth/passwords/reset.stub' => 'auth/passwords/reset.blade.php', - 'layouts/app.stub' => 'layouts/app.blade.php', - 'home.stub' => 'home.blade.php', - ]; - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->createDirectories(); - - $this->exportViews(); - - if (! $this->option('views')) { - file_put_contents( - app_path('Http/Controllers/HomeController.php'), - $this->compileControllerStub() - ); - - file_put_contents( - base_path('routes/web.php'), - file_get_contents(__DIR__.'/stubs/make/routes.stub'), - FILE_APPEND - ); - } - - $this->info('Authentication scaffolding generated successfully.'); - } - - /** - * Create the directories for the files. - * - * @return void - */ - protected function createDirectories() - { - if (! is_dir($directory = resource_path('views/layouts'))) { - mkdir($directory, 0755, true); - } - - if (! is_dir($directory = resource_path('views/auth/passwords'))) { - mkdir($directory, 0755, true); - } - } - - /** - * Export the authentication views. - * - * @return void - */ - protected function exportViews() - { - foreach ($this->views as $key => $value) { - if (file_exists($view = resource_path('views/'.$value)) && ! $this->option('force')) { - if (! $this->confirm("The [{$value}] view already exists. Do you want to replace it?")) { - continue; - } - } - - copy( - __DIR__.'/stubs/make/views/'.$key, - $view - ); - } - } - - /** - * Compiles the HomeController stub. - * - * @return string - */ - protected function compileControllerStub() - { - return str_replace( - '{{namespace}}', - $this->getAppNamespace(), - file_get_contents(__DIR__.'/stubs/make/controllers/HomeController.stub') - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php b/vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php deleted file mode 100644 index 57c3bd50..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php +++ /dev/null @@ -1,34 +0,0 @@ -laravel['auth.password']->broker($this->argument('name'))->getRepository()->deleteExpired(); - - $this->info('Expired reset tokens cleared!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub deleted file mode 100644 index 8e0007ad..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub +++ /dev/null @@ -1,28 +0,0 @@ -middleware('auth'); - } - - /** - * Show the application dashboard. - * - * @return \Illuminate\Http\Response - */ - public function index() - { - return view('home'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub deleted file mode 100644 index 2c37ded9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub +++ /dev/null @@ -1,4 +0,0 @@ - -Auth::routes(); - -Route::get('/home', 'HomeController@index')->name('home'); diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub deleted file mode 100644 index 07924ce6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub +++ /dev/null @@ -1,69 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
Login
- -
-
- {{ csrf_field() }} - -
- - -
- - - @if ($errors->has('email')) - - {{ $errors->first('email') }} - - @endif -
-
- -
- - -
- - - @if ($errors->has('password')) - - {{ $errors->first('password') }} - - @endif -
-
- -
-
-
- -
-
-
- -
-
- - - - Forgot Your Password? - -
-
-
-
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub deleted file mode 100644 index ad38245b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub +++ /dev/null @@ -1,47 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
Reset Password
- -
- @if (session('status')) -
- {{ session('status') }} -
- @endif - -
- {{ csrf_field() }} - -
- - -
- - - @if ($errors->has('email')) - - {{ $errors->first('email') }} - - @endif -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub deleted file mode 100644 index 84ec0101..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub +++ /dev/null @@ -1,70 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
Reset Password
- -
-
- {{ csrf_field() }} - - - -
- - -
- - - @if ($errors->has('email')) - - {{ $errors->first('email') }} - - @endif -
-
- -
- - -
- - - @if ($errors->has('password')) - - {{ $errors->first('password') }} - - @endif -
-
- -
- -
- - - @if ($errors->has('password_confirmation')) - - {{ $errors->first('password_confirmation') }} - - @endif -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub deleted file mode 100644 index 38eef838..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub +++ /dev/null @@ -1,77 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
Register
- -
-
- {{ csrf_field() }} - -
- - -
- - - @if ($errors->has('name')) - - {{ $errors->first('name') }} - - @endif -
-
- -
- - -
- - - @if ($errors->has('email')) - - {{ $errors->first('email') }} - - @endif -
-
- -
- - -
- - - @if ($errors->has('password')) - - {{ $errors->first('password') }} - - @endif -
-
- -
- - -
- -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub deleted file mode 100644 index d8437bf8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub +++ /dev/null @@ -1,23 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
Dashboard
- -
- @if (session('status')) -
- {{ session('status') }} -
- @endif - - You are logged in! -
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub deleted file mode 100644 index 8846226f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - {{ config('app.name', 'Laravel') }} - - - - - -
- - - @yield('content') -
- - - - - diff --git a/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php b/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php deleted file mode 100644 index 46416b5e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php +++ /dev/null @@ -1,94 +0,0 @@ -getProviderConfiguration($provider))) { - return; - } - - if (isset($this->customProviderCreators[$driver = ($config['driver'] ?? null)])) { - return call_user_func( - $this->customProviderCreators[$driver], $this->app, $config - ); - } - - switch ($driver) { - case 'database': - return $this->createDatabaseProvider($config); - case 'eloquent': - return $this->createEloquentProvider($config); - default: - throw new InvalidArgumentException( - "Authentication user provider [{$driver}] is not defined." - ); - } - } - - /** - * Get the user provider configuration. - * - * @param string|null $provider - * @return array|null - */ - protected function getProviderConfiguration($provider) - { - if ($provider = $provider ?: $this->getDefaultUserProvider()) { - return $this->app['config']['auth.providers.'.$provider]; - } - } - - /** - * Create an instance of the database user provider. - * - * @param array $config - * @return \Illuminate\Auth\DatabaseUserProvider - */ - protected function createDatabaseProvider($config) - { - $connection = $this->app['db']->connection(); - - return new DatabaseUserProvider($connection, $this->app['hash'], $config['table']); - } - - /** - * Create an instance of the Eloquent user provider. - * - * @param array $config - * @return \Illuminate\Auth\EloquentUserProvider - */ - protected function createEloquentProvider($config) - { - return new EloquentUserProvider($this->app['hash'], $config['model']); - } - - /** - * Get the default user provider name. - * - * @return string - */ - public function getDefaultUserProvider() - { - return $this->app['config']['auth.defaults.provider']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php deleted file mode 100755 index d69cfc62..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php +++ /dev/null @@ -1,152 +0,0 @@ -conn = $conn; - $this->table = $table; - $this->hasher = $hasher; - } - - /** - * Retrieve a user by their unique identifier. - * - * @param mixed $identifier - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveById($identifier) - { - $user = $this->conn->table($this->table)->find($identifier); - - return $this->getGenericUser($user); - } - - /** - * Retrieve a user by their unique identifier and "remember me" token. - * - * @param mixed $identifier - * @param string $token - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveByToken($identifier, $token) - { - $user = $this->getGenericUser( - $this->conn->table($this->table)->find($identifier) - ); - - return $user && $user->getRememberToken() && hash_equals($user->getRememberToken(), $token) - ? $user : null; - } - - /** - * Update the "remember me" token for the given user in storage. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $token - * @return void - */ - public function updateRememberToken(UserContract $user, $token) - { - $this->conn->table($this->table) - ->where($user->getAuthIdentifierName(), $user->getAuthIdentifier()) - ->update([$user->getRememberTokenName() => $token]); - } - - /** - * Retrieve a user by the given credentials. - * - * @param array $credentials - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveByCredentials(array $credentials) - { - if (empty($credentials) || - (count($credentials) === 1 && - array_key_exists('password', $credentials))) { - return; - } - - // First we will add each credential element to the query as a where clause. - // Then we can execute the query and, if we found a user, return it in a - // generic "user" object that will be utilized by the Guard instances. - $query = $this->conn->table($this->table); - - foreach ($credentials as $key => $value) { - if (! Str::contains($key, 'password')) { - $query->where($key, $value); - } - } - - // Now we are ready to execute the query to see if we have an user matching - // the given credentials. If not, we will just return nulls and indicate - // that there are no matching users for these given credential arrays. - $user = $query->first(); - - return $this->getGenericUser($user); - } - - /** - * Get the generic user. - * - * @param mixed $user - * @return \Illuminate\Auth\GenericUser|null - */ - protected function getGenericUser($user) - { - if (! is_null($user)) { - return new GenericUser((array) $user); - } - } - - /** - * Validate a user against the given credentials. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param array $credentials - * @return bool - */ - public function validateCredentials(UserContract $user, array $credentials) - { - return $this->hasher->check( - $credentials['password'], $user->getAuthPassword() - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php deleted file mode 100755 index 1630ebe9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php +++ /dev/null @@ -1,195 +0,0 @@ -model = $model; - $this->hasher = $hasher; - } - - /** - * Retrieve a user by their unique identifier. - * - * @param mixed $identifier - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveById($identifier) - { - $model = $this->createModel(); - - return $model->newQuery() - ->where($model->getAuthIdentifierName(), $identifier) - ->first(); - } - - /** - * Retrieve a user by their unique identifier and "remember me" token. - * - * @param mixed $identifier - * @param string $token - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveByToken($identifier, $token) - { - $model = $this->createModel(); - - $model = $model->where($model->getAuthIdentifierName(), $identifier)->first(); - - if (! $model) { - return null; - } - - $rememberToken = $model->getRememberToken(); - - return $rememberToken && hash_equals($rememberToken, $token) ? $model : null; - } - - /** - * Update the "remember me" token for the given user in storage. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $token - * @return void - */ - public function updateRememberToken(UserContract $user, $token) - { - $user->setRememberToken($token); - - $timestamps = $user->timestamps; - - $user->timestamps = false; - - $user->save(); - - $user->timestamps = $timestamps; - } - - /** - * Retrieve a user by the given credentials. - * - * @param array $credentials - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveByCredentials(array $credentials) - { - if (empty($credentials) || - (count($credentials) === 1 && - array_key_exists('password', $credentials))) { - return; - } - - // First we will add each credential element to the query as a where clause. - // Then we can execute the query and, if we found a user, return it in a - // Eloquent User "model" that will be utilized by the Guard instances. - $query = $this->createModel()->newQuery(); - - foreach ($credentials as $key => $value) { - if (! Str::contains($key, 'password')) { - $query->where($key, $value); - } - } - - return $query->first(); - } - - /** - * Validate a user against the given credentials. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param array $credentials - * @return bool - */ - public function validateCredentials(UserContract $user, array $credentials) - { - $plain = $credentials['password']; - - return $this->hasher->check($plain, $user->getAuthPassword()); - } - - /** - * Create a new instance of the model. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function createModel() - { - $class = '\\'.ltrim($this->model, '\\'); - - return new $class; - } - - /** - * Gets the hasher implementation. - * - * @return \Illuminate\Contracts\Hashing\Hasher - */ - public function getHasher() - { - return $this->hasher; - } - - /** - * Sets the hasher implementation. - * - * @param \Illuminate\Contracts\Hashing\Hasher $hasher - * @return $this - */ - public function setHasher(HasherContract $hasher) - { - $this->hasher = $hasher; - - return $this; - } - - /** - * Gets the name of the Eloquent user model. - * - * @return string - */ - public function getModel() - { - return $this->model; - } - - /** - * Sets the name of the Eloquent user model. - * - * @param string $model - * @return $this - */ - public function setModel($model) - { - $this->model = $model; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php deleted file mode 100644 index 8353021f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php +++ /dev/null @@ -1,33 +0,0 @@ -remember = $remember; - $this->credentials = $credentials; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php deleted file mode 100644 index f33c198d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php +++ /dev/null @@ -1,28 +0,0 @@ -user = $user; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php deleted file mode 100644 index 31e999c9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php +++ /dev/null @@ -1,33 +0,0 @@ -user = $user; - $this->credentials = $credentials; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php deleted file mode 100644 index 347943fe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php +++ /dev/null @@ -1,26 +0,0 @@ -request = $request; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php deleted file mode 100644 index 88167459..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php +++ /dev/null @@ -1,37 +0,0 @@ -user = $user; - $this->remember = $remember; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php deleted file mode 100644 index ea788e71..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php +++ /dev/null @@ -1,28 +0,0 @@ -user = $user; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php deleted file mode 100644 index f57b3c94..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php +++ /dev/null @@ -1,28 +0,0 @@ -user = $user; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php deleted file mode 100644 index f84058cf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php +++ /dev/null @@ -1,28 +0,0 @@ -user = $user; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php b/vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php deleted file mode 100755 index b6880c0c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php +++ /dev/null @@ -1,134 +0,0 @@ -attributes = $attributes; - } - - /** - * Get the name of the unique identifier for the user. - * - * @return string - */ - public function getAuthIdentifierName() - { - return 'id'; - } - - /** - * Get the unique identifier for the user. - * - * @return mixed - */ - public function getAuthIdentifier() - { - $name = $this->getAuthIdentifierName(); - - return $this->attributes[$name]; - } - - /** - * Get the password for the user. - * - * @return string - */ - public function getAuthPassword() - { - return $this->attributes['password']; - } - - /** - * Get the "remember me" token value. - * - * @return string - */ - public function getRememberToken() - { - return $this->attributes[$this->getRememberTokenName()]; - } - - /** - * Set the "remember me" token value. - * - * @param string $value - * @return void - */ - public function setRememberToken($value) - { - $this->attributes[$this->getRememberTokenName()] = $value; - } - - /** - * Get the column name for the "remember me" token. - * - * @return string - */ - public function getRememberTokenName() - { - return 'remember_token'; - } - - /** - * Dynamically access the user's attributes. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->attributes[$key]; - } - - /** - * Dynamically set an attribute on the user. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this->attributes[$key] = $value; - } - - /** - * Dynamically check if a value is set on the user. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return isset($this->attributes[$key]); - } - - /** - * Dynamically unset a value on the user. - * - * @param string $key - * @return void - */ - public function __unset($key) - { - unset($this->attributes[$key]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php b/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php deleted file mode 100644 index 9a682c3d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php +++ /dev/null @@ -1,108 +0,0 @@ -user())) { - return $user; - } - - throw new AuthenticationException; - } - - /** - * Determine if the current user is authenticated. - * - * @return bool - */ - public function check() - { - return ! is_null($this->user()); - } - - /** - * Determine if the current user is a guest. - * - * @return bool - */ - public function guest() - { - return ! $this->check(); - } - - /** - * Get the ID for the currently authenticated user. - * - * @return int|null - */ - public function id() - { - if ($this->user()) { - return $this->user()->getAuthIdentifier(); - } - } - - /** - * Set the current user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return $this - */ - public function setUser(AuthenticatableContract $user) - { - $this->user = $user; - - return $this; - } - - /** - * Get the user provider used by the guard. - * - * @return \Illuminate\Contracts\Auth\UserProvider - */ - public function getProvider() - { - return $this->provider; - } - - /** - * Set the user provider used by the guard. - * - * @param \Illuminate\Contracts\Auth\UserProvider $provider - * @return void - */ - public function setProvider(UserProvider $provider) - { - $this->provider = $provider; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php b/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php deleted file mode 100644 index 21ea4b22..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php +++ /dev/null @@ -1,68 +0,0 @@ -auth = $auth; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param string[] ...$guards - * @return mixed - * - * @throws \Illuminate\Auth\AuthenticationException - */ - public function handle($request, Closure $next, ...$guards) - { - $this->authenticate($guards); - - return $next($request); - } - - /** - * Determine if the user is logged in to any of the given guards. - * - * @param array $guards - * @return void - * - * @throws \Illuminate\Auth\AuthenticationException - */ - protected function authenticate(array $guards) - { - if (empty($guards)) { - return $this->auth->authenticate(); - } - - foreach ($guards as $guard) { - if ($this->auth->guard($guard)->check()) { - return $this->auth->shouldUse($guard); - } - } - - throw new AuthenticationException('Unauthenticated.', $guards); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php b/vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php deleted file mode 100644 index 71f8be87..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php +++ /dev/null @@ -1,40 +0,0 @@ -auth = $auth; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param string|null $guard - * @return mixed - */ - public function handle($request, Closure $next, $guard = null) - { - return $this->auth->guard($guard)->basic() ?: $next($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php b/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php deleted file mode 100644 index 45d523b5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php +++ /dev/null @@ -1,100 +0,0 @@ -auth = $auth; - $this->gate = $gate; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param string $ability - * @param array|null $models - * @return mixed - * - * @throws \Illuminate\Auth\AuthenticationException - * @throws \Illuminate\Auth\Access\AuthorizationException - */ - public function handle($request, Closure $next, $ability, ...$models) - { - $this->auth->authenticate(); - - $this->gate->authorize($ability, $this->getGateArguments($request, $models)); - - return $next($request); - } - - /** - * Get the arguments parameter for the gate. - * - * @param \Illuminate\Http\Request $request - * @param array|null $models - * @return array|string|\Illuminate\Database\Eloquent\Model - */ - protected function getGateArguments($request, $models) - { - if (is_null($models)) { - return []; - } - - return collect($models)->map(function ($model) use ($request) { - return $model instanceof Model ? $model : $this->getModel($request, $model); - })->all(); - } - - /** - * Get the model to authorize. - * - * @param \Illuminate\Http\Request $request - * @param string $model - * @return \Illuminate\Database\Eloquent\Model|string - */ - protected function getModel($request, $model) - { - return $this->isClassName($model) ? $model : $request->route($model); - } - - /** - * Checks if the given string looks like a fully qualified class name. - * - * @param string $value - * @return bool - */ - protected function isClassName($value) - { - return strpos($value, '\\') !== false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php b/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php deleted file mode 100644 index cd1ca866..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php +++ /dev/null @@ -1,52 +0,0 @@ -token = $token; - } - - /** - * Get the notification's channels. - * - * @param mixed $notifiable - * @return array|string - */ - public function via($notifiable) - { - return ['mail']; - } - - /** - * Build the mail representation of the notification. - * - * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage - */ - public function toMail($notifiable) - { - return (new MailMessage) - ->line('You are receiving this email because we received a password reset request for your account.') - ->action('Reset Password', url(config('app.url').route('password.reset', $this->token, false))) - ->line('If you did not request a password reset, no further action is required.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php deleted file mode 100644 index 918a288f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php +++ /dev/null @@ -1,29 +0,0 @@ -email; - } - - /** - * Send the password reset notification. - * - * @param string $token - * @return void - */ - public function sendPasswordResetNotification($token) - { - $this->notify(new ResetPasswordNotification($token)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php deleted file mode 100755 index c4701759..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php +++ /dev/null @@ -1,204 +0,0 @@ -table = $table; - $this->hasher = $hasher; - $this->hashKey = $hashKey; - $this->expires = $expires * 60; - $this->connection = $connection; - } - - /** - * Create a new token record. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return string - */ - public function create(CanResetPasswordContract $user) - { - $email = $user->getEmailForPasswordReset(); - - $this->deleteExisting($user); - - // We will create a new, random token for the user so that we can e-mail them - // a safe link to the password reset form. Then we will insert a record in - // the database so that we can verify the token within the actual reset. - $token = $this->createNewToken(); - - $this->getTable()->insert($this->getPayload($email, $token)); - - return $token; - } - - /** - * Delete all existing reset tokens from the database. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return int - */ - protected function deleteExisting(CanResetPasswordContract $user) - { - return $this->getTable()->where('email', $user->getEmailForPasswordReset())->delete(); - } - - /** - * Build the record payload for the table. - * - * @param string $email - * @param string $token - * @return array - */ - protected function getPayload($email, $token) - { - return ['email' => $email, 'token' => $this->hasher->make($token), 'created_at' => new Carbon]; - } - - /** - * Determine if a token record exists and is valid. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @param string $token - * @return bool - */ - public function exists(CanResetPasswordContract $user, $token) - { - $record = (array) $this->getTable()->where( - 'email', $user->getEmailForPasswordReset() - )->first(); - - return $record && - ! $this->tokenExpired($record['created_at']) && - $this->hasher->check($token, $record['token']); - } - - /** - * Determine if the token has expired. - * - * @param string $createdAt - * @return bool - */ - protected function tokenExpired($createdAt) - { - return Carbon::parse($createdAt)->addSeconds($this->expires)->isPast(); - } - - /** - * Delete a token record by user. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return void - */ - public function delete(CanResetPasswordContract $user) - { - $this->deleteExisting($user); - } - - /** - * Delete expired tokens. - * - * @return void - */ - public function deleteExpired() - { - $expiredAt = Carbon::now()->subSeconds($this->expires); - - $this->getTable()->where('created_at', '<', $expiredAt)->delete(); - } - - /** - * Create a new token for the user. - * - * @return string - */ - public function createNewToken() - { - return hash_hmac('sha256', Str::random(40), $this->hashKey); - } - - /** - * Get the database connection instance. - * - * @return \Illuminate\Database\ConnectionInterface - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Begin a new database query against the table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function getTable() - { - return $this->connection->table($this->table); - } - - /** - * Get the hasher instance. - * - * @return \Illuminate\Contracts\Hashing\Hasher - */ - public function getHasher() - { - return $this->hasher; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php deleted file mode 100755 index 07d046fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php +++ /dev/null @@ -1,242 +0,0 @@ -users = $users; - $this->tokens = $tokens; - } - - /** - * Send a password reset link to a user. - * - * @param array $credentials - * @return string - */ - public function sendResetLink(array $credentials) - { - // First we will check to see if we found a user at the given credentials and - // if we did not we will redirect back to this current URI with a piece of - // "flash" data in the session to indicate to the developers the errors. - $user = $this->getUser($credentials); - - if (is_null($user)) { - return static::INVALID_USER; - } - - // Once we have the reset token, we are ready to send the message out to this - // user with a link to reset their password. We will then redirect back to - // the current URI having nothing set in the session to indicate errors. - $user->sendPasswordResetNotification( - $this->tokens->create($user) - ); - - return static::RESET_LINK_SENT; - } - - /** - * Reset the password for the given token. - * - * @param array $credentials - * @param \Closure $callback - * @return mixed - */ - public function reset(array $credentials, Closure $callback) - { - // If the responses from the validate method is not a user instance, we will - // assume that it is a redirect and simply return it from this method and - // the user is properly redirected having an error message on the post. - $user = $this->validateReset($credentials); - - if (! $user instanceof CanResetPasswordContract) { - return $user; - } - - $password = $credentials['password']; - - // Once the reset has been validated, we'll call the given callback with the - // new password. This gives the user an opportunity to store the password - // in their persistent storage. Then we'll delete the token and return. - $callback($user, $password); - - $this->tokens->delete($user); - - return static::PASSWORD_RESET; - } - - /** - * Validate a password reset for the given credentials. - * - * @param array $credentials - * @return \Illuminate\Contracts\Auth\CanResetPassword|string - */ - protected function validateReset(array $credentials) - { - if (is_null($user = $this->getUser($credentials))) { - return static::INVALID_USER; - } - - if (! $this->validateNewPassword($credentials)) { - return static::INVALID_PASSWORD; - } - - if (! $this->tokens->exists($user, $credentials['token'])) { - return static::INVALID_TOKEN; - } - - return $user; - } - - /** - * Set a custom password validator. - * - * @param \Closure $callback - * @return void - */ - public function validator(Closure $callback) - { - $this->passwordValidator = $callback; - } - - /** - * Determine if the passwords match for the request. - * - * @param array $credentials - * @return bool - */ - public function validateNewPassword(array $credentials) - { - if (isset($this->passwordValidator)) { - list($password, $confirm) = [ - $credentials['password'], - $credentials['password_confirmation'], - ]; - - return call_user_func( - $this->passwordValidator, $credentials - ) && $password === $confirm; - } - - return $this->validatePasswordWithDefaults($credentials); - } - - /** - * Determine if the passwords are valid for the request. - * - * @param array $credentials - * @return bool - */ - protected function validatePasswordWithDefaults(array $credentials) - { - list($password, $confirm) = [ - $credentials['password'], - $credentials['password_confirmation'], - ]; - - return $password === $confirm && mb_strlen($password) >= 6; - } - - /** - * Get the user for the given credentials. - * - * @param array $credentials - * @return \Illuminate\Contracts\Auth\CanResetPassword|null - * - * @throws \UnexpectedValueException - */ - public function getUser(array $credentials) - { - $credentials = Arr::except($credentials, ['token']); - - $user = $this->users->retrieveByCredentials($credentials); - - if ($user && ! $user instanceof CanResetPasswordContract) { - throw new UnexpectedValueException('User must implement CanResetPassword interface.'); - } - - return $user; - } - - /** - * Create a new password reset token for the given user. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return string - */ - public function createToken(CanResetPasswordContract $user) - { - return $this->tokens->create($user); - } - - /** - * Delete password reset tokens of the given user. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return void - */ - public function deleteToken(CanResetPasswordContract $user) - { - $this->tokens->delete($user); - } - - /** - * Validate the given password reset token. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @param string $token - * @return bool - */ - public function tokenExists(CanResetPasswordContract $user, $token) - { - return $this->tokens->exists($user, $token); - } - - /** - * Get the password reset token repository implementation. - * - * @return \Illuminate\Auth\Passwords\TokenRepositoryInterface - */ - public function getRepository() - { - return $this->tokens; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php deleted file mode 100644 index 8c21e111..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php +++ /dev/null @@ -1,147 +0,0 @@ -app = $app; - } - - /** - * Attempt to get the broker from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Auth\PasswordBroker - */ - public function broker($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return isset($this->brokers[$name]) - ? $this->brokers[$name] - : $this->brokers[$name] = $this->resolve($name); - } - - /** - * Resolve the given broker. - * - * @param string $name - * @return \Illuminate\Contracts\Auth\PasswordBroker - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Password resetter [{$name}] is not defined."); - } - - // The password broker uses a token repository to validate tokens and send user - // password e-mails, as well as validating that password reset process as an - // aggregate service of sorts providing a convenient interface for resets. - return new PasswordBroker( - $this->createTokenRepository($config), - $this->app['auth']->createUserProvider($config['provider'] ?? null) - ); - } - - /** - * Create a token repository instance based on the given configuration. - * - * @param array $config - * @return \Illuminate\Auth\Passwords\TokenRepositoryInterface - */ - protected function createTokenRepository(array $config) - { - $key = $this->app['config']['app.key']; - - if (Str::startsWith($key, 'base64:')) { - $key = base64_decode(substr($key, 7)); - } - - $connection = $config['connection'] ?? null; - - return new DatabaseTokenRepository( - $this->app['db']->connection($connection), - $this->app['hash'], - $config['table'], - $key, - $config['expire'] - ); - } - - /** - * Get the password broker configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["auth.passwords.{$name}"]; - } - - /** - * Get the default password broker name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['auth.defaults.passwords']; - } - - /** - * Set the default password broker name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['auth.defaults.passwords'] = $name; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->broker()->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php deleted file mode 100755 index 165ecaf9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php +++ /dev/null @@ -1,51 +0,0 @@ -registerPasswordBroker(); - } - - /** - * Register the password broker instance. - * - * @return void - */ - protected function registerPasswordBroker() - { - $this->app->singleton('auth.password', function ($app) { - return new PasswordBrokerManager($app); - }); - - $this->app->bind('auth.password.broker', function ($app) { - return $app->make('auth.password')->broker(); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['auth.password', 'auth.password.broker']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php deleted file mode 100755 index dcd06e8d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php +++ /dev/null @@ -1,40 +0,0 @@ -recaller = $recaller; - } - - /** - * Get the user ID from the recaller. - * - * @return string - */ - public function id() - { - return explode('|', $this->recaller, 3)[0]; - } - - /** - * Get the "remember token" token from the recaller. - * - * @return string - */ - public function token() - { - return explode('|', $this->recaller, 3)[1]; - } - - /** - * Get the password from the recaller. - * - * @return string - */ - public function hash() - { - return explode('|', $this->recaller, 3)[2]; - } - - /** - * Determine if the recaller is valid. - * - * @return bool - */ - public function valid() - { - return $this->properString() && $this->hasAllSegments(); - } - - /** - * Determine if the recaller is an invalid string. - * - * @return bool - */ - protected function properString() - { - return is_string($this->recaller) && Str::contains($this->recaller, '|'); - } - - /** - * Determine if the recaller has all segments. - * - * @return bool - */ - protected function hasAllSegments() - { - $segments = explode('|', $this->recaller); - - return count($segments) == 3 && trim($segments[0]) !== '' && trim($segments[1]) !== ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php b/vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php deleted file mode 100644 index 2adc2cc3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php +++ /dev/null @@ -1,87 +0,0 @@ -request = $request; - $this->callback = $callback; - $this->provider = $provider; - } - - /** - * Get the currently authenticated user. - * - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function user() - { - // If we've already retrieved the user for the current request we can just - // return it back immediately. We do not want to fetch the user data on - // every call to this method because that would be tremendously slow. - if (! is_null($this->user)) { - return $this->user; - } - - return $this->user = call_user_func( - $this->callback, $this->request, $this->getProvider() - ); - } - - /** - * Validate a user's credentials. - * - * @param array $credentials - * @return bool - */ - public function validate(array $credentials = []) - { - return ! is_null((new static( - $this->callback, $credentials['request'], $this->getProvider() - ))->user()); - } - - /** - * Set the current request instance. - * - * @param \Illuminate\Http\Request $request - * @return $this - */ - public function setRequest(Request $request) - { - $this->request = $request; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php b/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php deleted file mode 100644 index 2e40c473..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php +++ /dev/null @@ -1,753 +0,0 @@ -name = $name; - $this->session = $session; - $this->request = $request; - $this->provider = $provider; - } - - /** - * Get the currently authenticated user. - * - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function user() - { - if ($this->loggedOut) { - return; - } - - // If we've already retrieved the user for the current request we can just - // return it back immediately. We do not want to fetch the user data on - // every call to this method because that would be tremendously slow. - if (! is_null($this->user)) { - return $this->user; - } - - $id = $this->session->get($this->getName()); - - // First we will try to load the user using the identifier in the session if - // one exists. Otherwise we will check for a "remember me" cookie in this - // request, and if one exists, attempt to retrieve the user using that. - if (! is_null($id)) { - if ($this->user = $this->provider->retrieveById($id)) { - $this->fireAuthenticatedEvent($this->user); - } - } - - // If the user is null, but we decrypt a "recaller" cookie we can attempt to - // pull the user data on that cookie which serves as a remember cookie on - // the application. Once we have a user we can return it to the caller. - $recaller = $this->recaller(); - - if (is_null($this->user) && ! is_null($recaller)) { - $this->user = $this->userFromRecaller($recaller); - - if ($this->user) { - $this->updateSession($this->user->getAuthIdentifier()); - - $this->fireLoginEvent($this->user, true); - } - } - - return $this->user; - } - - /** - * Pull a user from the repository by its "remember me" cookie token. - * - * @param \Illuminate\Auth\Recaller $recaller - * @return mixed - */ - protected function userFromRecaller($recaller) - { - if (! $recaller->valid() || $this->recallAttempted) { - return; - } - - // If the user is null, but we decrypt a "recaller" cookie we can attempt to - // pull the user data on that cookie which serves as a remember cookie on - // the application. Once we have a user we can return it to the caller. - $this->recallAttempted = true; - - $this->viaRemember = ! is_null($user = $this->provider->retrieveByToken( - $recaller->id(), $recaller->token() - )); - - return $user; - } - - /** - * Get the decrypted recaller cookie for the request. - * - * @return \Illuminate\Auth\Recaller|null - */ - protected function recaller() - { - if (is_null($this->request)) { - return; - } - - if ($recaller = $this->request->cookies->get($this->getRecallerName())) { - return new Recaller($recaller); - } - } - - /** - * Get the ID for the currently authenticated user. - * - * @return int|null - */ - public function id() - { - if ($this->loggedOut) { - return; - } - - return $this->user() - ? $this->user()->getAuthIdentifier() - : $this->session->get($this->getName()); - } - - /** - * Log a user into the application without sessions or cookies. - * - * @param array $credentials - * @return bool - */ - public function once(array $credentials = []) - { - $this->fireAttemptEvent($credentials); - - if ($this->validate($credentials)) { - $this->setUser($this->lastAttempted); - - return true; - } - - return false; - } - - /** - * Log the given user ID into the application without sessions or cookies. - * - * @param mixed $id - * @return \Illuminate\Contracts\Auth\Authenticatable|false - */ - public function onceUsingId($id) - { - if (! is_null($user = $this->provider->retrieveById($id))) { - $this->setUser($user); - - return $user; - } - - return false; - } - - /** - * Validate a user's credentials. - * - * @param array $credentials - * @return bool - */ - public function validate(array $credentials = []) - { - $this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials); - - return $this->hasValidCredentials($user, $credentials); - } - - /** - * Attempt to authenticate using HTTP Basic Auth. - * - * @param string $field - * @param array $extraConditions - * @return \Symfony\Component\HttpFoundation\Response|null - */ - public function basic($field = 'email', $extraConditions = []) - { - if ($this->check()) { - return; - } - - // If a username is set on the HTTP basic request, we will return out without - // interrupting the request lifecycle. Otherwise, we'll need to generate a - // request indicating that the given credentials were invalid for login. - if ($this->attemptBasic($this->getRequest(), $field, $extraConditions)) { - return; - } - - return $this->failedBasicResponse(); - } - - /** - * Perform a stateless HTTP Basic login attempt. - * - * @param string $field - * @param array $extraConditions - * @return \Symfony\Component\HttpFoundation\Response|null - */ - public function onceBasic($field = 'email', $extraConditions = []) - { - $credentials = $this->basicCredentials($this->getRequest(), $field); - - if (! $this->once(array_merge($credentials, $extraConditions))) { - return $this->failedBasicResponse(); - } - } - - /** - * Attempt to authenticate using basic authentication. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param string $field - * @param array $extraConditions - * @return bool - */ - protected function attemptBasic(Request $request, $field, $extraConditions = []) - { - if (! $request->getUser()) { - return false; - } - - return $this->attempt(array_merge( - $this->basicCredentials($request, $field), $extraConditions - )); - } - - /** - * Get the credential array for a HTTP Basic request. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param string $field - * @return array - */ - protected function basicCredentials(Request $request, $field) - { - return [$field => $request->getUser(), 'password' => $request->getPassword()]; - } - - /** - * Get the response for basic authentication. - * - * @return void - * @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException - */ - protected function failedBasicResponse() - { - throw new UnauthorizedHttpException('Basic', 'Invalid credentials.'); - } - - /** - * Attempt to authenticate a user using the given credentials. - * - * @param array $credentials - * @param bool $remember - * @return bool - */ - public function attempt(array $credentials = [], $remember = false) - { - $this->fireAttemptEvent($credentials, $remember); - - $this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials); - - // If an implementation of UserInterface was returned, we'll ask the provider - // to validate the user against the given credentials, and if they are in - // fact valid we'll log the users into the application and return true. - if ($this->hasValidCredentials($user, $credentials)) { - $this->login($user, $remember); - - return true; - } - - // If the authentication attempt fails we will fire an event so that the user - // may be notified of any suspicious attempts to access their account from - // an unrecognized user. A developer may listen to this event as needed. - $this->fireFailedEvent($user, $credentials); - - return false; - } - - /** - * Determine if the user matches the credentials. - * - * @param mixed $user - * @param array $credentials - * @return bool - */ - protected function hasValidCredentials($user, $credentials) - { - return ! is_null($user) && $this->provider->validateCredentials($user, $credentials); - } - - /** - * Log the given user ID into the application. - * - * @param mixed $id - * @param bool $remember - * @return \Illuminate\Contracts\Auth\Authenticatable|false - */ - public function loginUsingId($id, $remember = false) - { - if (! is_null($user = $this->provider->retrieveById($id))) { - $this->login($user, $remember); - - return $user; - } - - return false; - } - - /** - * Log a user into the application. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param bool $remember - * @return void - */ - public function login(AuthenticatableContract $user, $remember = false) - { - $this->updateSession($user->getAuthIdentifier()); - - // If the user should be permanently "remembered" by the application we will - // queue a permanent cookie that contains the encrypted copy of the user - // identifier. We will then decrypt this later to retrieve the users. - if ($remember) { - $this->ensureRememberTokenIsSet($user); - - $this->queueRecallerCookie($user); - } - - // If we have an event dispatcher instance set we will fire an event so that - // any listeners will hook into the authentication events and run actions - // based on the login and logout events fired from the guard instances. - $this->fireLoginEvent($user, $remember); - - $this->setUser($user); - } - - /** - * Update the session with the given ID. - * - * @param string $id - * @return void - */ - protected function updateSession($id) - { - $this->session->put($this->getName(), $id); - - $this->session->migrate(true); - } - - /** - * Create a new "remember me" token for the user if one doesn't already exist. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return void - */ - protected function ensureRememberTokenIsSet(AuthenticatableContract $user) - { - if (empty($user->getRememberToken())) { - $this->cycleRememberToken($user); - } - } - - /** - * Queue the recaller cookie into the cookie jar. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return void - */ - protected function queueRecallerCookie(AuthenticatableContract $user) - { - $this->getCookieJar()->queue($this->createRecaller( - $user->getAuthIdentifier().'|'.$user->getRememberToken().'|'.$user->getAuthPassword() - )); - } - - /** - * Create a "remember me" cookie for a given ID. - * - * @param string $value - * @return \Symfony\Component\HttpFoundation\Cookie - */ - protected function createRecaller($value) - { - return $this->getCookieJar()->forever($this->getRecallerName(), $value); - } - - /** - * Log the user out of the application. - * - * @return void - */ - public function logout() - { - $user = $this->user(); - - // If we have an event dispatcher instance, we can fire off the logout event - // so any further processing can be done. This allows the developer to be - // listening for anytime a user signs out of this application manually. - $this->clearUserDataFromStorage(); - - if (! is_null($this->user)) { - $this->cycleRememberToken($user); - } - - if (isset($this->events)) { - $this->events->dispatch(new Events\Logout($user)); - } - - // Once we have fired the logout event we will clear the users out of memory - // so they are no longer available as the user is no longer considered as - // being signed into this application and should not be available here. - $this->user = null; - - $this->loggedOut = true; - } - - /** - * Remove the user data from the session and cookies. - * - * @return void - */ - protected function clearUserDataFromStorage() - { - $this->session->remove($this->getName()); - - if (! is_null($this->recaller())) { - $this->getCookieJar()->queue($this->getCookieJar() - ->forget($this->getRecallerName())); - } - } - - /** - * Refresh the "remember me" token for the user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return void - */ - protected function cycleRememberToken(AuthenticatableContract $user) - { - $user->setRememberToken($token = Str::random(60)); - - $this->provider->updateRememberToken($user, $token); - } - - /** - * Register an authentication attempt event listener. - * - * @param mixed $callback - * @return void - */ - public function attempting($callback) - { - if (isset($this->events)) { - $this->events->listen(Events\Attempting::class, $callback); - } - } - - /** - * Fire the attempt event with the arguments. - * - * @param array $credentials - * @param bool $remember - * @return void - */ - protected function fireAttemptEvent(array $credentials, $remember = false) - { - if (isset($this->events)) { - $this->events->dispatch(new Events\Attempting( - $credentials, $remember - )); - } - } - - /** - * Fire the login event if the dispatcher is set. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param bool $remember - * @return void - */ - protected function fireLoginEvent($user, $remember = false) - { - if (isset($this->events)) { - $this->events->dispatch(new Events\Login($user, $remember)); - } - } - - /** - * Fire the authenticated event if the dispatcher is set. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return void - */ - protected function fireAuthenticatedEvent($user) - { - if (isset($this->events)) { - $this->events->dispatch(new Events\Authenticated($user)); - } - } - - /** - * Fire the failed authentication attempt event with the given arguments. - * - * @param \Illuminate\Contracts\Auth\Authenticatable|null $user - * @param array $credentials - * @return void - */ - protected function fireFailedEvent($user, array $credentials) - { - if (isset($this->events)) { - $this->events->dispatch(new Events\Failed($user, $credentials)); - } - } - - /** - * Get the last user we attempted to authenticate. - * - * @return \Illuminate\Contracts\Auth\Authenticatable - */ - public function getLastAttempted() - { - return $this->lastAttempted; - } - - /** - * Get a unique identifier for the auth session value. - * - * @return string - */ - public function getName() - { - return 'login_'.$this->name.'_'.sha1(static::class); - } - - /** - * Get the name of the cookie used to store the "recaller". - * - * @return string - */ - public function getRecallerName() - { - return 'remember_'.$this->name.'_'.sha1(static::class); - } - - /** - * Determine if the user was authenticated via "remember me" cookie. - * - * @return bool - */ - public function viaRemember() - { - return $this->viaRemember; - } - - /** - * Get the cookie creator instance used by the guard. - * - * @return \Illuminate\Contracts\Cookie\QueueingFactory - * - * @throws \RuntimeException - */ - public function getCookieJar() - { - if (! isset($this->cookie)) { - throw new RuntimeException('Cookie jar has not been set.'); - } - - return $this->cookie; - } - - /** - * Set the cookie creator instance used by the guard. - * - * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookie - * @return void - */ - public function setCookieJar(CookieJar $cookie) - { - $this->cookie = $cookie; - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public function getDispatcher() - { - return $this->events; - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function setDispatcher(Dispatcher $events) - { - $this->events = $events; - } - - /** - * Get the session store used by the guard. - * - * @return \Illuminate\Contracts\Session\Session - */ - public function getSession() - { - return $this->session; - } - - /** - * Return the currently cached user. - * - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function getUser() - { - return $this->user; - } - - /** - * Set the current user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return $this - */ - public function setUser(AuthenticatableContract $user) - { - $this->user = $user; - - $this->loggedOut = false; - - $this->fireAuthenticatedEvent($user); - - return $this; - } - - /** - * Get the current request instance. - * - * @return \Symfony\Component\HttpFoundation\Request - */ - public function getRequest() - { - return $this->request ?: Request::createFromGlobals(); - } - - /** - * Set the current request instance. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @return $this - */ - public function setRequest(Request $request) - { - $this->request = $request; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php b/vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php deleted file mode 100644 index dec39f43..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php +++ /dev/null @@ -1,133 +0,0 @@ -request = $request; - $this->provider = $provider; - $this->inputKey = 'api_token'; - $this->storageKey = 'api_token'; - } - - /** - * Get the currently authenticated user. - * - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function user() - { - // If we've already retrieved the user for the current request we can just - // return it back immediately. We do not want to fetch the user data on - // every call to this method because that would be tremendously slow. - if (! is_null($this->user)) { - return $this->user; - } - - $user = null; - - $token = $this->getTokenForRequest(); - - if (! empty($token)) { - $user = $this->provider->retrieveByCredentials( - [$this->storageKey => $token] - ); - } - - return $this->user = $user; - } - - /** - * Get the token for the current request. - * - * @return string - */ - public function getTokenForRequest() - { - $token = $this->request->query($this->inputKey); - - if (empty($token)) { - $token = $this->request->input($this->inputKey); - } - - if (empty($token)) { - $token = $this->request->bearerToken(); - } - - if (empty($token)) { - $token = $this->request->getPassword(); - } - - return $token; - } - - /** - * Validate a user's credentials. - * - * @param array $credentials - * @return bool - */ - public function validate(array $credentials = []) - { - if (empty($credentials[$this->inputKey])) { - return false; - } - - $credentials = [$this->storageKey => $credentials[$this->inputKey]]; - - if ($this->provider->retrieveByCredentials($credentials)) { - return true; - } - - return false; - } - - /** - * Set the current request instance. - * - * @param \Illuminate\Http\Request $request - * @return $this - */ - public function setRequest(Request $request) - { - $this->request = $request; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/composer.json b/vendor/laravel/framework/src/Illuminate/Auth/composer.json deleted file mode 100644 index f3a41d95..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "illuminate/auth", - "description": "The Illuminate Auth package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/http": "5.5.*", - "illuminate/queue": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Auth\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "illuminate/console": "Required to use the auth:clear-resets command (5.5.*).", - "illuminate/queue": "Required to fire login / logout events (5.5.*).", - "illuminate/session": "Required to use the session based guard (5.5.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php deleted file mode 100644 index f71c9237..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php +++ /dev/null @@ -1,21 +0,0 @@ -event = $event; - } - - /** - * Handle the queued job. - * - * @param \Illuminate\Contracts\Broadcasting\Broadcaster $broadcaster - * @return void - */ - public function handle(Broadcaster $broadcaster) - { - $name = method_exists($this->event, 'broadcastAs') - ? $this->event->broadcastAs() : get_class($this->event); - - $broadcaster->broadcast( - Arr::wrap($this->event->broadcastOn()), $name, - $this->getPayloadFromEvent($this->event) - ); - } - - /** - * Get the payload for the given event. - * - * @param mixed $event - * @return array - */ - protected function getPayloadFromEvent($event) - { - if (method_exists($event, 'broadcastWith')) { - return array_merge( - $event->broadcastWith(), ['socket' => data_get($event, 'socket')] - ); - } - - $payload = []; - - foreach ((new ReflectionClass($event))->getProperties(ReflectionProperty::IS_PUBLIC) as $property) { - $payload[$property->getName()] = $this->formatProperty($property->getValue($event)); - } - - unset($payload['broadcastQueue']); - - return $payload; - } - - /** - * Format the given value for a property. - * - * @param mixed $value - * @return mixed - */ - protected function formatProperty($value) - { - if ($value instanceof Arrayable) { - return $value->toArray(); - } - - return $value; - } - - /** - * Get the display name for the queued job. - * - * @return string - */ - public function displayName() - { - return get_class($this->event); - } - - /** - * Prepare the instance for cloning. - * - * @return void - */ - public function __clone() - { - $this->event = clone $this->event; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php deleted file mode 100644 index 8fd55f7c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php +++ /dev/null @@ -1,10 +0,0 @@ -app = $app; - } - - /** - * Register the routes for handling broadcast authentication and sockets. - * - * @param array|null $attributes - * @return void - */ - public function routes(array $attributes = null) - { - if ($this->app->routesAreCached()) { - return; - } - - $attributes = $attributes ?: ['middleware' => ['web']]; - - $this->app['router']->group($attributes, function ($router) { - $router->post('/broadcasting/auth', '\\'.BroadcastController::class.'@authenticate'); - }); - } - - /** - * Get the socket ID for the given request. - * - * @param \Illuminate\Http\Request|null $request - * @return string|null - */ - public function socket($request = null) - { - if (! $request && ! $this->app->bound('request')) { - return; - } - - $request = $request ?: $this->app['request']; - - return $request->header('X-Socket-ID'); - } - - /** - * Begin broadcasting an event. - * - * @param mixed|null $event - * @return \Illuminate\Broadcasting\PendingBroadcast|void - */ - public function event($event = null) - { - return new PendingBroadcast($this->app->make('events'), $event); - } - - /** - * Queue the given event for broadcast. - * - * @param mixed $event - * @return void - */ - public function queue($event) - { - $connection = $event instanceof ShouldBroadcastNow ? 'sync' : null; - - if (is_null($connection) && isset($event->connection)) { - $connection = $event->connection; - } - - $queue = null; - - if (method_exists($event, 'broadcastQueue')) { - $queue = $event->broadcastQueue(); - } elseif (isset($event->broadcastQueue)) { - $queue = $event->broadcastQueue; - } elseif (isset($event->queue)) { - $queue = $event->queue; - } - - $this->app->make('queue')->connection($connection)->pushOn( - $queue, new BroadcastEvent(clone $event) - ); - } - - /** - * Get a driver instance. - * - * @param string $driver - * @return mixed - */ - public function connection($driver = null) - { - return $this->driver($driver); - } - - /** - * Get a driver instance. - * - * @param string $name - * @return mixed - */ - public function driver($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return $this->drivers[$name] = $this->get($name); - } - - /** - * Attempt to get the connection from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function get($name) - { - return $this->drivers[$name] ?? $this->resolve($name); - } - - /** - * Resolve the given store. - * - * @param string $name - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Broadcaster [{$name}] is not defined."); - } - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($config); - } - - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (! method_exists($this, $driverMethod)) { - throw new InvalidArgumentException("Driver [{$config['driver']}] is not supported."); - } - - return $this->{$driverMethod}($config); - } - - /** - * Call a custom driver creator. - * - * @param array $config - * @return mixed - */ - protected function callCustomCreator(array $config) - { - return $this->customCreators[$config['driver']]($this->app, $config); - } - - /** - * Create an instance of the driver. - * - * @param array $config - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function createPusherDriver(array $config) - { - return new PusherBroadcaster( - new Pusher($config['key'], $config['secret'], - $config['app_id'], $config['options'] ?? []) - ); - } - - /** - * Create an instance of the driver. - * - * @param array $config - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function createRedisDriver(array $config) - { - return new RedisBroadcaster( - $this->app->make('redis'), $config['connection'] ?? null - ); - } - - /** - * Create an instance of the driver. - * - * @param array $config - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function createLogDriver(array $config) - { - return new LogBroadcaster( - $this->app->make(LoggerInterface::class) - ); - } - - /** - * Create an instance of the driver. - * - * @param array $config - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function createNullDriver(array $config) - { - return new NullBroadcaster; - } - - /** - * Get the connection configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["broadcasting.connections.{$name}"]; - } - - /** - * Get the default driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['broadcasting.default']; - } - - /** - * Set the default driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['broadcasting.default'] = $name; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback; - - return $this; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->driver()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php deleted file mode 100644 index adf88a6f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php +++ /dev/null @@ -1,51 +0,0 @@ -app->singleton(BroadcastManager::class, function ($app) { - return new BroadcastManager($app); - }); - - $this->app->singleton(BroadcasterContract::class, function ($app) { - return $app->make(BroadcastManager::class)->connection(); - }); - - $this->app->alias( - BroadcastManager::class, BroadcastingFactory::class - ); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - BroadcastManager::class, - BroadcastingFactory::class, - BroadcasterContract::class, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php deleted file mode 100644 index e5fd8fd9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php +++ /dev/null @@ -1,204 +0,0 @@ -channels[$channel] = $callback; - - return $this; - } - - /** - * Authenticate the incoming request for a given channel. - * - * @param \Illuminate\Http\Request $request - * @param string $channel - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - protected function verifyUserCanAccessChannel($request, $channel) - { - foreach ($this->channels as $pattern => $callback) { - if (! Str::is(preg_replace('/\{(.*?)\}/', '*', $pattern), $channel)) { - continue; - } - - $parameters = $this->extractAuthParameters($pattern, $channel, $callback); - - if ($result = $callback($request->user(), ...$parameters)) { - return $this->validAuthenticationResponse($request, $result); - } - } - - throw new AccessDeniedHttpException; - } - - /** - * Extract the parameters from the given pattern and channel. - * - * @param string $pattern - * @param string $channel - * @param callable $callback - * @return array - */ - protected function extractAuthParameters($pattern, $channel, $callback) - { - $callbackParameters = (new ReflectionFunction($callback))->getParameters(); - - return collect($this->extractChannelKeys($pattern, $channel))->reject(function ($value, $key) { - return is_numeric($key); - })->map(function ($value, $key) use ($callbackParameters) { - return $this->resolveBinding($key, $value, $callbackParameters); - })->values()->all(); - } - - /** - * Extract the channel keys from the incoming channel name. - * - * @param string $pattern - * @param string $channel - * @return array - */ - protected function extractChannelKeys($pattern, $channel) - { - preg_match('/^'.preg_replace('/\{(.*?)\}/', '(?<$1>[^\.]+)', $pattern).'/', $channel, $keys); - - return $keys; - } - - /** - * Resolve the given parameter binding. - * - * @param string $key - * @param string $value - * @param array $callbackParameters - * @return mixed - */ - protected function resolveBinding($key, $value, $callbackParameters) - { - $newValue = $this->resolveExplicitBindingIfPossible($key, $value); - - return $newValue === $value ? $this->resolveImplicitBindingIfPossible( - $key, $value, $callbackParameters - ) : $newValue; - } - - /** - * Resolve an explicit parameter binding if applicable. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function resolveExplicitBindingIfPossible($key, $value) - { - $binder = $this->binder(); - - if ($binder && $binder->getBindingCallback($key)) { - return call_user_func($binder->getBindingCallback($key), $value); - } - - return $value; - } - - /** - * Resolve an implicit parameter binding if applicable. - * - * @param string $key - * @param mixed $value - * @param array $callbackParameters - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - protected function resolveImplicitBindingIfPossible($key, $value, $callbackParameters) - { - foreach ($callbackParameters as $parameter) { - if (! $this->isImplicitlyBindable($key, $parameter)) { - continue; - } - - $instance = $parameter->getClass()->newInstance(); - - if (! $model = $instance->resolveRouteBinding($value)) { - throw new AccessDeniedHttpException; - } - - return $model; - } - - return $value; - } - - /** - * Determine if a given key and parameter is implicitly bindable. - * - * @param string $key - * @param \ReflectionParameter $parameter - * @return bool - */ - protected function isImplicitlyBindable($key, $parameter) - { - return $parameter->name === $key && $parameter->getClass() && - $parameter->getClass()->isSubclassOf(UrlRoutable::class); - } - - /** - * Format the channel array into an array of strings. - * - * @param array $channels - * @return array - */ - protected function formatChannels(array $channels) - { - return array_map(function ($channel) { - return (string) $channel; - }, $channels); - } - - /** - * Get the model binding registrar instance. - * - * @return \Illuminate\Contracts\Routing\BindingRegistrar - */ - protected function binder() - { - if (! $this->bindingRegistrar) { - $this->bindingRegistrar = Container::getInstance()->bound(BindingRegistrar::class) - ? Container::getInstance()->make(BindingRegistrar::class) : null; - } - - return $this->bindingRegistrar; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php deleted file mode 100644 index 50877dc9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php +++ /dev/null @@ -1,54 +0,0 @@ -logger = $logger; - } - - /** - * {@inheritdoc} - */ - public function auth($request) - { - // - } - - /** - * {@inheritdoc} - */ - public function validAuthenticationResponse($request, $result) - { - // - } - - /** - * {@inheritdoc} - */ - public function broadcast(array $channels, $event, array $payload = []) - { - $channels = implode(', ', $this->formatChannels($channels)); - - $payload = json_encode($payload, JSON_PRETTY_PRINT); - - $this->logger->info('Broadcasting ['.$event.'] on channels ['.$channels.'] with payload:'.PHP_EOL.$payload); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php deleted file mode 100644 index 6205c90c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php +++ /dev/null @@ -1,30 +0,0 @@ -pusher = $pusher; - } - - /** - * Authenticate the incoming request for a given channel. - * - * @param \Illuminate\Http\Request $request - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - public function auth($request) - { - if (Str::startsWith($request->channel_name, ['private-', 'presence-']) && - ! $request->user()) { - throw new AccessDeniedHttpException; - } - - $channelName = Str::startsWith($request->channel_name, 'private-') - ? Str::replaceFirst('private-', '', $request->channel_name) - : Str::replaceFirst('presence-', '', $request->channel_name); - - return parent::verifyUserCanAccessChannel( - $request, $channelName - ); - } - - /** - * Return the valid authentication response. - * - * @param \Illuminate\Http\Request $request - * @param mixed $result - * @return mixed - */ - public function validAuthenticationResponse($request, $result) - { - if (Str::startsWith($request->channel_name, 'private')) { - return $this->decodePusherResponse( - $this->pusher->socket_auth($request->channel_name, $request->socket_id) - ); - } - - return $this->decodePusherResponse( - $this->pusher->presence_auth( - $request->channel_name, $request->socket_id, $request->user()->getAuthIdentifier(), $result) - ); - } - - /** - * Decode the given Pusher response. - * - * @param mixed $response - * @return array - */ - protected function decodePusherResponse($response) - { - return json_decode($response, true); - } - - /** - * Broadcast the given event. - * - * @param array $channels - * @param string $event - * @param array $payload - * @return void - */ - public function broadcast(array $channels, $event, array $payload = []) - { - $socket = Arr::pull($payload, 'socket'); - - $response = $this->pusher->trigger( - $this->formatChannels($channels), $event, $payload, $socket, true - ); - - if ((is_array($response) && $response['status'] >= 200 && $response['status'] <= 299) - || $response === true) { - return; - } - - throw new BroadcastException( - is_bool($response) ? 'Failed to connect to Pusher.' : $response['body'] - ); - } - - /** - * Get the Pusher SDK instance. - * - * @return \Pusher\Pusher - */ - public function getPusher() - { - return $this->pusher; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php deleted file mode 100644 index 1a89bebf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php +++ /dev/null @@ -1,103 +0,0 @@ -redis = $redis; - $this->connection = $connection; - } - - /** - * Authenticate the incoming request for a given channel. - * - * @param \Illuminate\Http\Request $request - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - public function auth($request) - { - if (Str::startsWith($request->channel_name, ['private-', 'presence-']) && - ! $request->user()) { - throw new AccessDeniedHttpException; - } - - $channelName = Str::startsWith($request->channel_name, 'private-') - ? Str::replaceFirst('private-', '', $request->channel_name) - : Str::replaceFirst('presence-', '', $request->channel_name); - - return parent::verifyUserCanAccessChannel( - $request, $channelName - ); - } - - /** - * Return the valid authentication response. - * - * @param \Illuminate\Http\Request $request - * @param mixed $result - * @return mixed - */ - public function validAuthenticationResponse($request, $result) - { - if (is_bool($result)) { - return json_encode($result); - } - - return json_encode(['channel_data' => [ - 'user_id' => $request->user()->getAuthIdentifier(), - 'user_info' => $result, - ]]); - } - - /** - * Broadcast the given event. - * - * @param array $channels - * @param string $event - * @param array $payload - * @return void - */ - public function broadcast(array $channels, $event, array $payload = []) - { - $connection = $this->redis->connection($this->connection); - - $payload = json_encode([ - 'event' => $event, - 'data' => $payload, - 'socket' => Arr::pull($payload, 'socket'), - ]); - - foreach ($this->formatChannels($channels) as $channel) { - $connection->publish($channel, $payload); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php deleted file mode 100644 index 798d6026..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php +++ /dev/null @@ -1,34 +0,0 @@ -name = $name; - } - - /** - * Convert the channel instance to a string. - * - * @return string - */ - public function __toString() - { - return $this->name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php deleted file mode 100644 index 6be0791a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php +++ /dev/null @@ -1,39 +0,0 @@ -socket = Broadcast::socket(); - - return $this; - } - - /** - * Broadcast the event to everyone. - * - * @return $this - */ - public function broadcastToEveryone() - { - $this->socket = null; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php deleted file mode 100644 index b7550290..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php +++ /dev/null @@ -1,59 +0,0 @@ -event = $event; - $this->events = $events; - } - - /** - * Broadcast the event to everyone except the current user. - * - * @return $this - */ - public function toOthers() - { - if (method_exists($this->event, 'dontBroadcastToCurrentUser')) { - $this->event->dontBroadcastToCurrentUser(); - } - - return $this; - } - - /** - * Handle the object's destruction. - * - * @return void - */ - public function __destruct() - { - $this->events->dispatch($this->event); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php deleted file mode 100644 index 22de12d3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php +++ /dev/null @@ -1,17 +0,0 @@ -=7.0", - "psr/log": "~1.0", - "illuminate/bus": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/queue": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Broadcasting\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php deleted file mode 100644 index ade4a77a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php +++ /dev/null @@ -1,54 +0,0 @@ -app->singleton(Dispatcher::class, function ($app) { - return new Dispatcher($app, function ($connection = null) use ($app) { - return $app[QueueFactoryContract::class]->connection($connection); - }); - }); - - $this->app->alias( - Dispatcher::class, DispatcherContract::class - ); - - $this->app->alias( - Dispatcher::class, QueueingDispatcherContract::class - ); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - Dispatcher::class, - DispatcherContract::class, - QueueingDispatcherContract::class, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php b/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php deleted file mode 100644 index 1a7b9a40..00000000 --- a/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php +++ /dev/null @@ -1,212 +0,0 @@ -container = $container; - $this->queueResolver = $queueResolver; - $this->pipeline = new Pipeline($container); - } - - /** - * Dispatch a command to its appropriate handler. - * - * @param mixed $command - * @return mixed - */ - public function dispatch($command) - { - if ($this->queueResolver && $this->commandShouldBeQueued($command)) { - return $this->dispatchToQueue($command); - } - - return $this->dispatchNow($command); - } - - /** - * Dispatch a command to its appropriate handler in the current process. - * - * @param mixed $command - * @param mixed $handler - * @return mixed - */ - public function dispatchNow($command, $handler = null) - { - if ($handler || $handler = $this->getCommandHandler($command)) { - $callback = function ($command) use ($handler) { - return $handler->handle($command); - }; - } else { - $callback = function ($command) { - return $this->container->call([$command, 'handle']); - }; - } - - return $this->pipeline->send($command)->through($this->pipes)->then($callback); - } - - /** - * Determine if the given command has a handler. - * - * @param mixed $command - * @return bool - */ - public function hasCommandHandler($command) - { - return array_key_exists(get_class($command), $this->handlers); - } - - /** - * Retrieve the handler for a command. - * - * @param mixed $command - * @return bool|mixed - */ - public function getCommandHandler($command) - { - if ($this->hasCommandHandler($command)) { - return $this->container->make($this->handlers[get_class($command)]); - } - - return false; - } - - /** - * Determine if the given command should be queued. - * - * @param mixed $command - * @return bool - */ - protected function commandShouldBeQueued($command) - { - return $command instanceof ShouldQueue; - } - - /** - * Dispatch a command to its appropriate handler behind a queue. - * - * @param mixed $command - * @return mixed - * - * @throws \RuntimeException - */ - public function dispatchToQueue($command) - { - $connection = $command->connection ?? null; - - $queue = call_user_func($this->queueResolver, $connection); - - if (! $queue instanceof Queue) { - throw new RuntimeException('Queue resolver did not return a Queue implementation.'); - } - - if (method_exists($command, 'queue')) { - return $command->queue($queue, $command); - } - - return $this->pushCommandToQueue($queue, $command); - } - - /** - * Push the command onto the given queue instance. - * - * @param \Illuminate\Contracts\Queue\Queue $queue - * @param mixed $command - * @return mixed - */ - protected function pushCommandToQueue($queue, $command) - { - if (isset($command->queue, $command->delay)) { - return $queue->laterOn($command->queue, $command->delay, $command); - } - - if (isset($command->queue)) { - return $queue->pushOn($command->queue, $command); - } - - if (isset($command->delay)) { - return $queue->later($command->delay, $command); - } - - return $queue->push($command); - } - - /** - * Set the pipes through which commands should be piped before dispatching. - * - * @param array $pipes - * @return $this - */ - public function pipeThrough(array $pipes) - { - $this->pipes = $pipes; - - return $this; - } - - /** - * Map a command to a handler. - * - * @param array $map - * @return $this - */ - public function map(array $map) - { - $this->handlers = array_merge($this->handlers, $map); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Queueable.php b/vendor/laravel/framework/src/Illuminate/Bus/Queueable.php deleted file mode 100644 index 48cee186..00000000 --- a/vendor/laravel/framework/src/Illuminate/Bus/Queueable.php +++ /dev/null @@ -1,150 +0,0 @@ -connection = $connection; - - return $this; - } - - /** - * Set the desired queue for the job. - * - * @param string|null $queue - * @return $this - */ - public function onQueue($queue) - { - $this->queue = $queue; - - return $this; - } - - /** - * Set the desired connection for the chain. - * - * @param string|null $connection - * @return $this - */ - public function allOnConnection($connection) - { - $this->chainConnection = $connection; - $this->connection = $connection; - - return $this; - } - - /** - * Set the desired queue for the chain. - * - * @param string|null $queue - * @return $this - */ - public function allOnQueue($queue) - { - $this->chainQueue = $queue; - $this->queue = $queue; - - return $this; - } - - /** - * Set the desired delay for the job. - * - * @param \DateTimeInterface|\DateInterval|int|null $delay - * @return $this - */ - public function delay($delay) - { - $this->delay = $delay; - - return $this; - } - - /** - * Set the jobs that should run if this job is successful. - * - * @param array $chain - * @return $this - */ - public function chain($chain) - { - $this->chained = collect($chain)->map(function ($job) { - return serialize($job); - })->all(); - - return $this; - } - - /** - * Dispatch the next job on the chain. - * - * @return void - */ - public function dispatchNextJobInChain() - { - if (! empty($this->chained)) { - dispatch(tap(unserialize(array_shift($this->chained)), function ($next) { - $next->chained = $this->chained; - - $next->onConnection($next->connection ?: $this->chainConnection); - $next->onQueue($next->queue ?: $this->chainQueue); - - $next->chainConnection = $this->chainConnection; - $next->chainQueue = $this->chainQueue; - })); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Bus/composer.json b/vendor/laravel/framework/src/Illuminate/Bus/composer.json deleted file mode 100644 index 3836cee9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Bus/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/bus", - "description": "The Illuminate Bus package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/pipeline": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Bus\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php b/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php deleted file mode 100755 index db11ea4e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php +++ /dev/null @@ -1,132 +0,0 @@ -apc = $apc; - $this->prefix = $prefix; - } - - /** - * Retrieve an item from the cache by key. - * - * @param string|array $key - * @return mixed - */ - public function get($key) - { - $value = $this->apc->get($this->prefix.$key); - - if ($value !== false) { - return $value; - } - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->apc->put($this->prefix.$key, $value, (int) ($minutes * 60)); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value = 1) - { - return $this->apc->increment($this->prefix.$key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value = 1) - { - return $this->apc->decrement($this->prefix.$key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 0); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - return $this->apc->delete($this->prefix.$key); - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - return $this->apc->flush(); - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php b/vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php deleted file mode 100755 index 42e76aaa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php +++ /dev/null @@ -1,92 +0,0 @@ -apcu = function_exists('apcu_fetch'); - } - - /** - * Get an item from the cache. - * - * @param string $key - * @return mixed - */ - public function get($key) - { - return $this->apcu ? apcu_fetch($key) : apc_fetch($key); - } - - /** - * Store an item in the cache. - * - * @param string $key - * @param mixed $value - * @param int $seconds - * @return array|bool - */ - public function put($key, $value, $seconds) - { - return $this->apcu ? apcu_store($key, $value, $seconds) : apc_store($key, $value, $seconds); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value) - { - return $this->apcu ? apcu_inc($key, $value) : apc_inc($key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value) - { - return $this->apcu ? apcu_dec($key, $value) : apc_dec($key, $value); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function delete($key) - { - return $this->apcu ? apcu_delete($key) : apc_delete($key); - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - return $this->apcu ? apcu_clear_cache() : apc_clear_cache('user'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php b/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php deleted file mode 100644 index 8901a489..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php +++ /dev/null @@ -1,117 +0,0 @@ -storage)) { - return $this->storage[$key]; - } - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->storage[$key] = $value; - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function increment($key, $value = 1) - { - $this->storage[$key] = ! isset($this->storage[$key]) - ? $value : ((int) $this->storage[$key]) + $value; - - return $this->storage[$key]; - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function decrement($key, $value = 1) - { - return $this->increment($key, $value * -1); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 0); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - unset($this->storage[$key]); - - return true; - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - $this->storage = []; - - return true; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php b/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php deleted file mode 100755 index f52053c9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php +++ /dev/null @@ -1,306 +0,0 @@ -app = $app; - } - - /** - * Get a cache store instance by name. - * - * @param string|null $name - * @return \Illuminate\Contracts\Cache\Repository - */ - public function store($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return $this->stores[$name] = $this->get($name); - } - - /** - * Get a cache driver instance. - * - * @param string $driver - * @return mixed - */ - public function driver($driver = null) - { - return $this->store($driver); - } - - /** - * Attempt to get the store from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Cache\Repository - */ - protected function get($name) - { - return $this->stores[$name] ?? $this->resolve($name); - } - - /** - * Resolve the given store. - * - * @param string $name - * @return \Illuminate\Contracts\Cache\Repository - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Cache store [{$name}] is not defined."); - } - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($config); - } else { - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (method_exists($this, $driverMethod)) { - return $this->{$driverMethod}($config); - } else { - throw new InvalidArgumentException("Driver [{$config['driver']}] is not supported."); - } - } - } - - /** - * Call a custom driver creator. - * - * @param array $config - * @return mixed - */ - protected function callCustomCreator(array $config) - { - return $this->customCreators[$config['driver']]($this->app, $config); - } - - /** - * Create an instance of the APC cache driver. - * - * @param array $config - * @return \Illuminate\Cache\ApcStore - */ - protected function createApcDriver(array $config) - { - $prefix = $this->getPrefix($config); - - return $this->repository(new ApcStore(new ApcWrapper, $prefix)); - } - - /** - * Create an instance of the array cache driver. - * - * @return \Illuminate\Cache\ArrayStore - */ - protected function createArrayDriver() - { - return $this->repository(new ArrayStore); - } - - /** - * Create an instance of the file cache driver. - * - * @param array $config - * @return \Illuminate\Cache\FileStore - */ - protected function createFileDriver(array $config) - { - return $this->repository(new FileStore($this->app['files'], $config['path'])); - } - - /** - * Create an instance of the Memcached cache driver. - * - * @param array $config - * @return \Illuminate\Cache\MemcachedStore - */ - protected function createMemcachedDriver(array $config) - { - $prefix = $this->getPrefix($config); - - $memcached = $this->app['memcached.connector']->connect( - $config['servers'], - $config['persistent_id'] ?? null, - $config['options'] ?? [], - array_filter($config['sasl'] ?? []) - ); - - return $this->repository(new MemcachedStore($memcached, $prefix)); - } - - /** - * Create an instance of the Null cache driver. - * - * @return \Illuminate\Cache\NullStore - */ - protected function createNullDriver() - { - return $this->repository(new NullStore); - } - - /** - * Create an instance of the Redis cache driver. - * - * @param array $config - * @return \Illuminate\Cache\RedisStore - */ - protected function createRedisDriver(array $config) - { - $redis = $this->app['redis']; - - $connection = $config['connection'] ?? 'default'; - - return $this->repository(new RedisStore($redis, $this->getPrefix($config), $connection)); - } - - /** - * Create an instance of the database cache driver. - * - * @param array $config - * @return \Illuminate\Cache\DatabaseStore - */ - protected function createDatabaseDriver(array $config) - { - $connection = $this->app['db']->connection($config['connection'] ?? null); - - return $this->repository( - new DatabaseStore( - $connection, $config['table'], $this->getPrefix($config) - ) - ); - } - - /** - * Create a new cache repository with the given implementation. - * - * @param \Illuminate\Contracts\Cache\Store $store - * @return \Illuminate\Cache\Repository - */ - public function repository(Store $store) - { - $repository = new Repository($store); - - if ($this->app->bound(DispatcherContract::class)) { - $repository->setEventDispatcher( - $this->app[DispatcherContract::class] - ); - } - - return $repository; - } - - /** - * Get the cache prefix. - * - * @param array $config - * @return string - */ - protected function getPrefix(array $config) - { - return $config['prefix'] ?? $this->app['config']['cache.prefix']; - } - - /** - * Get the cache connection configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["cache.stores.{$name}"]; - } - - /** - * Get the default cache driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['cache.default']; - } - - /** - * Set the default cache driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['cache.default'] = $name; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback->bindTo($this, $this); - - return $this; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->store()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php deleted file mode 100755 index 8eb5ed60..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php +++ /dev/null @@ -1,47 +0,0 @@ -app->singleton('cache', function ($app) { - return new CacheManager($app); - }); - - $this->app->singleton('cache.store', function ($app) { - return $app['cache']->driver(); - }); - - $this->app->singleton('memcached.connector', function () { - return new MemcachedConnector; - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'cache', 'cache.store', 'memcached.connector', - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php b/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php deleted file mode 100644 index bde2d4b9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php +++ /dev/null @@ -1,81 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $fullPath = $this->createBaseMigration(); - - $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/cache.stub')); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the table. - * - * @return string - */ - protected function createBaseMigration() - { - $name = 'create_cache_table'; - - $path = $this->laravel->databasePath().'/migrations'; - - return $this->laravel['migration.creator']->create($name, $path); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php b/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php deleted file mode 100755 index 0c3e6ddd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php +++ /dev/null @@ -1,137 +0,0 @@ -cache = $cache; - $this->files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->laravel['events']->fire( - 'cache:clearing', [$this->argument('store'), $this->tags()] - ); - - $this->cache()->flush(); - - $this->flushFacades(); - - $this->laravel['events']->fire( - 'cache:cleared', [$this->argument('store'), $this->tags()] - ); - - $this->info('Cache cleared successfully.'); - } - - /** - * Flush the real-time facades stored in the cache directory. - * - * @return void - */ - public function flushFacades() - { - foreach ($this->files->files(storage_path('framework/cache')) as $file) { - if (preg_match('/facade-.*\.php$/', $file)) { - $this->files->delete($file); - } - } - } - - /** - * Get the cache instance for the command. - * - * @return \Illuminate\Cache\Repository - */ - protected function cache() - { - $cache = $this->cache->store($this->argument('store')); - - return empty($this->tags()) ? $cache : $cache->tags($this->tags()); - } - - /** - * Get the tags passed to the command. - * - * @return array - */ - protected function tags() - { - return array_filter(explode(',', $this->option('tags'))); - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['store', InputArgument::OPTIONAL, 'The name of the store you would like to clear.'], - ]; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['tags', null, InputOption::VALUE_OPTIONAL, 'The cache tags you would like to clear.', null], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php b/vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php deleted file mode 100755 index 646dc146..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php +++ /dev/null @@ -1,57 +0,0 @@ -cache = $cache; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->cache->store($this->argument('store'))->forget( - $this->argument('key') - ); - - $this->info('The ['.$this->argument('key').'] key has been removed from the cache.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub b/vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub deleted file mode 100644 index 058afe69..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub +++ /dev/null @@ -1,32 +0,0 @@ -string('key')->unique(); - $table->mediumText('value'); - $table->integer('expiration'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('cache'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php b/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php deleted file mode 100755 index 2306fb06..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php +++ /dev/null @@ -1,256 +0,0 @@ -table = $table; - $this->prefix = $prefix; - $this->connection = $connection; - } - - /** - * Retrieve an item from the cache by key. - * - * @param string|array $key - * @return mixed - */ - public function get($key) - { - $prefixed = $this->prefix.$key; - - $cache = $this->table()->where('key', '=', $prefixed)->first(); - - // If we have a cache record we will check the expiration time against current - // time on the system and see if the record has expired. If it has, we will - // remove the records from the database table so it isn't returned again. - if (is_null($cache)) { - return; - } - - $cache = is_array($cache) ? (object) $cache : $cache; - - // If this cache expiration date is past the current time, we will remove this - // item from the cache. Then we will return a null value since the cache is - // expired. We will use "Carbon" to make this comparison with the column. - if ($this->currentTime() >= $cache->expiration) { - $this->forget($key); - - return; - } - - return unserialize($cache->value); - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $key = $this->prefix.$key; - - $value = serialize($value); - - $expiration = $this->getTime() + (int) ($minutes * 60); - - try { - $this->table()->insert(compact('key', 'value', 'expiration')); - } catch (Exception $e) { - $this->table()->where('key', $key)->update(compact('value', 'expiration')); - } - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value = 1) - { - return $this->incrementOrDecrement($key, $value, function ($current, $value) { - return $current + $value; - }); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value = 1) - { - return $this->incrementOrDecrement($key, $value, function ($current, $value) { - return $current - $value; - }); - } - - /** - * Increment or decrement an item in the cache. - * - * @param string $key - * @param mixed $value - * @param \Closure $callback - * @return int|bool - */ - protected function incrementOrDecrement($key, $value, Closure $callback) - { - return $this->connection->transaction(function () use ($key, $value, $callback) { - $prefixed = $this->prefix.$key; - - $cache = $this->table()->where('key', $prefixed) - ->lockForUpdate()->first(); - - // If there is no value in the cache, we will return false here. Otherwise the - // value will be decrypted and we will proceed with this function to either - // increment or decrement this value based on the given action callbacks. - if (is_null($cache)) { - return false; - } - - $cache = is_array($cache) ? (object) $cache : $cache; - - $current = unserialize($cache->value); - - // Here we'll call this callback function that was given to the function which - // is used to either increment or decrement the function. We use a callback - // so we do not have to recreate all this logic in each of the functions. - $new = $callback((int) $current, $value); - - if (! is_numeric($current)) { - return false; - } - - // Here we will update the values in the table. We will also encrypt the value - // since database cache values are encrypted by default with secure storage - // that can't be easily read. We will return the new value after storing. - $this->table()->where('key', $prefixed)->update([ - 'value' => serialize($new), - ]); - - return $new; - }); - } - - /** - * Get the current system time. - * - * @return int - */ - protected function getTime() - { - return $this->currentTime(); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 5256000); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - $this->table()->where('key', '=', $this->prefix.$key)->delete(); - - return true; - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - return (bool) $this->table()->delete(); - } - - /** - * Get a query builder for the cache table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function table() - { - return $this->connection->table($this->table); - } - - /** - * Get the underlying database connection. - * - * @return \Illuminate\Database\ConnectionInterface - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php deleted file mode 100644 index 6c9d42c5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php +++ /dev/null @@ -1,46 +0,0 @@ -key = $key; - $this->tags = $tags; - } - - /** - * Set the tags for the cache event. - * - * @param array $tags - * @return $this - */ - public function setTags($tags) - { - $this->tags = $tags; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php deleted file mode 100644 index 976c9e4f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php +++ /dev/null @@ -1,28 +0,0 @@ -value = $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php deleted file mode 100644 index d2a5c9f9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php +++ /dev/null @@ -1,8 +0,0 @@ -value = $value; - $this->minutes = $minutes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php b/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php deleted file mode 100755 index 4cf97da3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php +++ /dev/null @@ -1,262 +0,0 @@ -files = $files; - $this->directory = $directory; - } - - /** - * Retrieve an item from the cache by key. - * - * @param string|array $key - * @return mixed - */ - public function get($key) - { - return $this->getPayload($key)['data'] ?? null; - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->ensureCacheDirectoryExists($path = $this->path($key)); - - $this->files->put( - $path, $this->expiration($minutes).serialize($value), true - ); - } - - /** - * Create the file cache directory if necessary. - * - * @param string $path - * @return void - */ - protected function ensureCacheDirectoryExists($path) - { - if (! $this->files->exists(dirname($path))) { - $this->files->makeDirectory(dirname($path), 0777, true, true); - } - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function increment($key, $value = 1) - { - $raw = $this->getPayload($key); - - return tap(((int) $raw['data']) + $value, function ($newValue) use ($key, $raw) { - $this->put($key, $newValue, $raw['time']); - }); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function decrement($key, $value = 1) - { - return $this->increment($key, $value * -1); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 0); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - if ($this->files->exists($file = $this->path($key))) { - return $this->files->delete($file); - } - - return false; - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - if (! $this->files->isDirectory($this->directory)) { - return false; - } - - foreach ($this->files->directories($this->directory) as $directory) { - if (! $this->files->deleteDirectory($directory)) { - return false; - } - } - - return true; - } - - /** - * Retrieve an item and expiry time from the cache by key. - * - * @param string $key - * @return array - */ - protected function getPayload($key) - { - $path = $this->path($key); - - // If the file doesn't exist, we obviously cannot return the cache so we will - // just return null. Otherwise, we'll get the contents of the file and get - // the expiration UNIX timestamps from the start of the file's contents. - try { - $expire = substr( - $contents = $this->files->get($path, true), 0, 10 - ); - } catch (Exception $e) { - return $this->emptyPayload(); - } - - // If the current time is greater than expiration timestamps we will delete - // the file and return null. This helps clean up the old files and keeps - // this directory much cleaner for us as old files aren't hanging out. - if ($this->currentTime() >= $expire) { - $this->forget($key); - - return $this->emptyPayload(); - } - - $data = unserialize(substr($contents, 10)); - - // Next, we'll extract the number of minutes that are remaining for a cache - // so that we can properly retain the time for things like the increment - // operation that may be performed on this cache on a later operation. - $time = ($expire - $this->currentTime()) / 60; - - return compact('data', 'time'); - } - - /** - * Get a default empty payload for the cache. - * - * @return array - */ - protected function emptyPayload() - { - return ['data' => null, 'time' => null]; - } - - /** - * Get the full path for the given cache key. - * - * @param string $key - * @return string - */ - protected function path($key) - { - $parts = array_slice(str_split($hash = sha1($key), 2), 0, 2); - - return $this->directory.'/'.implode('/', $parts).'/'.$hash; - } - - /** - * Get the expiration time based on the given minutes. - * - * @param float|int $minutes - * @return int - */ - protected function expiration($minutes) - { - $time = $this->availableAt((int) ($minutes * 60)); - - return $minutes === 0 || $time > 9999999999 ? 9999999999 : (int) $time; - } - - /** - * Get the Filesystem instance. - * - * @return \Illuminate\Filesystem\Filesystem - */ - public function getFilesystem() - { - return $this->files; - } - - /** - * Get the working directory of the cache. - * - * @return string - */ - public function getDirectory() - { - return $this->directory; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Lock.php b/vendor/laravel/framework/src/Illuminate/Cache/Lock.php deleted file mode 100644 index e81bee6e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Lock.php +++ /dev/null @@ -1,93 +0,0 @@ -name = $name; - $this->seconds = $seconds; - } - - /** - * Attempt to acquire the lock. - * - * @return bool - */ - abstract public function acquire(); - - /** - * Attempt to acquire the lock. - * - * @param callable|null $callback - * @return bool - */ - public function get($callback = null) - { - $result = $this->acquire(); - - if ($result && is_callable($callback)) { - return tap($callback(), function () { - $this->release(); - }); - } - - return $result; - } - - /** - * Attempt to acquire the lock for the given number of seconds. - * - * @param int $seconds - * @param callable|null $callback - * @return bool - * @throws \Illuminate\Contracts\Cache\LockTimeoutException - */ - public function block($seconds, $callback = null) - { - $starting = $this->currentTime(); - - while (! $this->acquire()) { - usleep(250 * 1000); - - if ($this->currentTime() - $seconds >= $starting) { - throw new LockTimeoutException; - } - } - - if (is_callable($callback)) { - return tap($callback(), function () { - $this->release(); - }); - } - - return true; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php deleted file mode 100755 index ebfb28c7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php +++ /dev/null @@ -1,87 +0,0 @@ -getMemcached( - $connectionId, $credentials, $options - ); - - if (! $memcached->getServerList()) { - // For each server in the array, we'll just extract the configuration and add - // the server to the Memcached connection. Once we have added all of these - // servers we'll verify the connection is successful and return it back. - foreach ($servers as $server) { - $memcached->addServer( - $server['host'], $server['port'], $server['weight'] - ); - } - } - - return $memcached; - } - - /** - * Get a new Memcached instance. - * - * @param string|null $connectionId - * @param array $credentials - * @param array $options - * @return \Memcached - */ - protected function getMemcached($connectionId, array $credentials, array $options) - { - $memcached = $this->createMemcachedInstance($connectionId); - - if (count($credentials) == 2) { - $this->setCredentials($memcached, $credentials); - } - - if (count($options)) { - $memcached->setOptions($options); - } - - return $memcached; - } - - /** - * Create the Memcached instance. - * - * @param string|null $connectionId - * @return \Memcached - */ - protected function createMemcachedInstance($connectionId) - { - return empty($connectionId) ? new Memcached : new Memcached($connectionId); - } - - /** - * Set the SASL credentials on the Memcached connection. - * - * @param \Memcached $memcached - * @param array $credentials - * @return void - */ - protected function setCredentials($memcached, $credentials) - { - list($username, $password) = $credentials; - - $memcached->setOption(Memcached::OPT_BINARY_PROTOCOL, true); - - $memcached->setSaslAuthData($username, $password); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php deleted file mode 100644 index 1b0627cc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php +++ /dev/null @@ -1,52 +0,0 @@ -memcached = $memcached; - } - - /** - * Attempt to acquire the lock. - * - * @return bool - */ - public function acquire() - { - return $this->memcached->add( - $this->name, 1, $this->seconds - ); - } - - /** - * Release the lock. - * - * @return void - */ - public function release() - { - $this->memcached->delete($this->name); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php deleted file mode 100755 index 00ba8b7c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php +++ /dev/null @@ -1,250 +0,0 @@ -= 3.0.0. - * - * @var bool - */ - protected $onVersionThree; - - /** - * Create a new Memcached store. - * - * @param \Memcached $memcached - * @param string $prefix - * @return void - */ - public function __construct($memcached, $prefix = '') - { - $this->setPrefix($prefix); - $this->memcached = $memcached; - - $this->onVersionThree = (new ReflectionMethod('Memcached', 'getMulti')) - ->getNumberOfParameters() == 2; - } - - /** - * Retrieve an item from the cache by key. - * - * @param string $key - * @return mixed - */ - public function get($key) - { - $value = $this->memcached->get($this->prefix.$key); - - if ($this->memcached->getResultCode() == 0) { - return $value; - } - } - - /** - * Retrieve multiple items from the cache by key. - * - * Items not found in the cache will have a null value. - * - * @param array $keys - * @return array - */ - public function many(array $keys) - { - $prefixedKeys = array_map(function ($key) { - return $this->prefix.$key; - }, $keys); - - if ($this->onVersionThree) { - $values = $this->memcached->getMulti($prefixedKeys, Memcached::GET_PRESERVE_ORDER); - } else { - $null = null; - - $values = $this->memcached->getMulti($prefixedKeys, $null, Memcached::GET_PRESERVE_ORDER); - } - - if ($this->memcached->getResultCode() != 0) { - return array_fill_keys($keys, null); - } - - return array_combine($keys, $values); - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->memcached->set($this->prefix.$key, $value, $this->toTimestamp($minutes)); - } - - /** - * Store multiple items in the cache for a given number of minutes. - * - * @param array $values - * @param float|int $minutes - * @return void - */ - public function putMany(array $values, $minutes) - { - $prefixedValues = []; - - foreach ($values as $key => $value) { - $prefixedValues[$this->prefix.$key] = $value; - } - - $this->memcached->setMulti($prefixedValues, $this->toTimestamp($minutes)); - } - - /** - * Store an item in the cache if the key doesn't exist. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return bool - */ - public function add($key, $value, $minutes) - { - return $this->memcached->add($this->prefix.$key, $value, $this->toTimestamp($minutes)); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value = 1) - { - return $this->memcached->increment($this->prefix.$key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value = 1) - { - return $this->memcached->decrement($this->prefix.$key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 0); - } - - /** - * Get a lock instance. - * - * @param string $name - * @param int $seconds - * @return \Illuminate\Contracts\Cache\Lock - */ - public function lock($name, $seconds = 0) - { - return new MemcachedLock($this->memcached, $this->prefix.$name, $seconds); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - return $this->memcached->delete($this->prefix.$key); - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - return $this->memcached->flush(); - } - - /** - * Get the UNIX timestamp for the given number of minutes. - * - * @param int $minutes - * @return int - */ - protected function toTimestamp($minutes) - { - return $minutes > 0 ? $this->availableAt($minutes * 60) : 0; - } - - /** - * Get the underlying Memcached connection. - * - * @return \Memcached - */ - public function getMemcached() - { - return $this->memcached; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - /** - * Set the cache key prefix. - * - * @param string $prefix - * @return void - */ - public function setPrefix($prefix) - { - $this->prefix = ! empty($prefix) ? $prefix.':' : ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php b/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php deleted file mode 100755 index 16e869c8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php +++ /dev/null @@ -1,108 +0,0 @@ -cache = $cache; - } - - /** - * Determine if the given key has been "accessed" too many times. - * - * @param string $key - * @param int $maxAttempts - * @param float|int $decayMinutes - * @return bool - */ - public function tooManyAttempts($key, $maxAttempts, $decayMinutes = 1) - { - if ($this->attempts($key) >= $maxAttempts) { - if ($this->cache->has($key.':timer')) { - return true; - } - - $this->resetAttempts($key); - } - - return false; - } - - /** - * Increment the counter for a given key for a given decay time. - * - * @param string $key - * @param float|int $decayMinutes - * @return int - */ - public function hit($key, $decayMinutes = 1) - { - $this->cache->add( - $key.':timer', $this->availableAt($decayMinutes * 60), $decayMinutes - ); - - $added = $this->cache->add($key, 0, $decayMinutes); - - $hits = (int) $this->cache->increment($key); - - if (! $added && $hits == 1) { - $this->cache->put($key, 1, $decayMinutes); - } - - return $hits; - } - - /** - * Get the number of attempts for the given key. - * - * @param string $key - * @return mixed - */ - public function attempts($key) - { - return $this->cache->get($key, 0); - } - - /** - * Reset the number of attempts for the given key. - * - * @param string $key - * @return mixed - */ - public function resetAttempts($key) - { - return $this->cache->forget($key); - } - - /** - * Get the number of retries left for the given key. - * - * @param string $key - * @param int $maxAttempts - * @return int - */ - public function retriesLeft($key, $maxAttempts) - { - $attempts = $this->attempts($key); - - return $maxAttempts - $attempts; - } - - /** - * Clear the hits and lockout timer for the given key. - * - * @param string $key - * @return void - */ - public function clear($key) - { - $this->resetAttempts($key); - - $this->cache->forget($key.':timer'); - } - - /** - * Get the number of seconds until the "key" is accessible again. - * - * @param string $key - * @return int - */ - public function availableIn($key) - { - return $this->cache->get($key.':timer') - $this->currentTime(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php deleted file mode 100644 index c15569fe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php +++ /dev/null @@ -1,56 +0,0 @@ -redis = $redis; - } - - /** - * Attempt to acquire the lock. - * - * @return bool - */ - public function acquire() - { - $result = $this->redis->setnx($this->name, 1); - - if ($result === 1 && $this->seconds > 0) { - $this->redis->expire($this->name, $this->seconds); - } - - return $result === 1; - } - - /** - * Release the lock. - * - * @return void - */ - public function release() - { - $this->redis->del($this->name); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php deleted file mode 100755 index b448e464..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php +++ /dev/null @@ -1,289 +0,0 @@ -redis = $redis; - $this->setPrefix($prefix); - $this->setConnection($connection); - } - - /** - * Retrieve an item from the cache by key. - * - * @param string|array $key - * @return mixed - */ - public function get($key) - { - $value = $this->connection()->get($this->prefix.$key); - - return ! is_null($value) ? $this->unserialize($value) : null; - } - - /** - * Retrieve multiple items from the cache by key. - * - * Items not found in the cache will have a null value. - * - * @param array $keys - * @return array - */ - public function many(array $keys) - { - $results = []; - - $values = $this->connection()->mget(array_map(function ($key) { - return $this->prefix.$key; - }, $keys)); - - foreach ($values as $index => $value) { - $results[$keys[$index]] = ! is_null($value) ? $this->unserialize($value) : null; - } - - return $results; - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->connection()->setex( - $this->prefix.$key, (int) max(1, $minutes * 60), $this->serialize($value) - ); - } - - /** - * Store multiple items in the cache for a given number of minutes. - * - * @param array $values - * @param float|int $minutes - * @return void - */ - public function putMany(array $values, $minutes) - { - $this->connection()->multi(); - - foreach ($values as $key => $value) { - $this->put($key, $value, $minutes); - } - - $this->connection()->exec(); - } - - /** - * Store an item in the cache if the key doesn't exist. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return bool - */ - public function add($key, $value, $minutes) - { - $lua = "return redis.call('exists',KEYS[1])<1 and redis.call('setex',KEYS[1],ARGV[2],ARGV[1])"; - - return (bool) $this->connection()->eval( - $lua, 1, $this->prefix.$key, $this->serialize($value), (int) max(1, $minutes * 60) - ); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function increment($key, $value = 1) - { - return $this->connection()->incrby($this->prefix.$key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function decrement($key, $value = 1) - { - return $this->connection()->decrby($this->prefix.$key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->connection()->set($this->prefix.$key, $this->serialize($value)); - } - - /** - * Get a lock instance. - * - * @param string $name - * @param int $seconds - * @return \Illuminate\Contracts\Cache\Lock - */ - public function lock($name, $seconds = 0) - { - return new RedisLock($this->connection(), $this->prefix.$name, $seconds); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - return (bool) $this->connection()->del($this->prefix.$key); - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - $this->connection()->flushdb(); - - return true; - } - - /** - * Begin executing a new tags operation. - * - * @param array|mixed $names - * @return \Illuminate\Cache\RedisTaggedCache - */ - public function tags($names) - { - return new RedisTaggedCache( - $this, new TagSet($this, is_array($names) ? $names : func_get_args()) - ); - } - - /** - * Get the Redis connection instance. - * - * @return \Predis\ClientInterface - */ - public function connection() - { - return $this->redis->connection($this->connection); - } - - /** - * Set the connection name to be used. - * - * @param string $connection - * @return void - */ - public function setConnection($connection) - { - $this->connection = $connection; - } - - /** - * Get the Redis database instance. - * - * @return \Illuminate\Contracts\Redis\Factory - */ - public function getRedis() - { - return $this->redis; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - /** - * Set the cache key prefix. - * - * @param string $prefix - * @return void - */ - public function setPrefix($prefix) - { - $this->prefix = ! empty($prefix) ? $prefix.':' : ''; - } - - /** - * Serialize the value. - * - * @param mixed $value - * @return mixed - */ - protected function serialize($value) - { - return is_numeric($value) ? $value : serialize($value); - } - - /** - * Unserialize the value. - * - * @param mixed $value - * @return mixed - */ - protected function unserialize($value) - { - return is_numeric($value) ? $value : unserialize($value); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php deleted file mode 100644 index d2325a00..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php +++ /dev/null @@ -1,166 +0,0 @@ -pushStandardKeys($this->tags->getNamespace(), $key); - - parent::put($key, $value, $minutes); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->pushForeverKeys($this->tags->getNamespace(), $key); - - parent::forever($key, $value); - } - - /** - * Remove all items from the cache. - * - * @return void - */ - public function flush() - { - $this->deleteForeverKeys(); - $this->deleteStandardKeys(); - - parent::flush(); - } - - /** - * Store standard key references into store. - * - * @param string $namespace - * @param string $key - * @return void - */ - protected function pushStandardKeys($namespace, $key) - { - $this->pushKeys($namespace, $key, self::REFERENCE_KEY_STANDARD); - } - - /** - * Store forever key references into store. - * - * @param string $namespace - * @param string $key - * @return void - */ - protected function pushForeverKeys($namespace, $key) - { - $this->pushKeys($namespace, $key, self::REFERENCE_KEY_FOREVER); - } - - /** - * Store a reference to the cache key against the reference key. - * - * @param string $namespace - * @param string $key - * @param string $reference - * @return void - */ - protected function pushKeys($namespace, $key, $reference) - { - $fullKey = $this->store->getPrefix().sha1($namespace).':'.$key; - - foreach (explode('|', $namespace) as $segment) { - $this->store->connection()->sadd($this->referenceKey($segment, $reference), $fullKey); - } - } - - /** - * Delete all of the items that were stored forever. - * - * @return void - */ - protected function deleteForeverKeys() - { - $this->deleteKeysByReference(self::REFERENCE_KEY_FOREVER); - } - - /** - * Delete all standard items. - * - * @return void - */ - protected function deleteStandardKeys() - { - $this->deleteKeysByReference(self::REFERENCE_KEY_STANDARD); - } - - /** - * Find and delete all of the items that were stored against a reference. - * - * @param string $reference - * @return void - */ - protected function deleteKeysByReference($reference) - { - foreach (explode('|', $this->tags->getNamespace()) as $segment) { - $this->deleteValues($segment = $this->referenceKey($segment, $reference)); - - $this->store->connection()->del($segment); - } - } - - /** - * Delete item keys that have been stored against a reference. - * - * @param string $referenceKey - * @return void - */ - protected function deleteValues($referenceKey) - { - $values = array_unique($this->store->connection()->smembers($referenceKey)); - - if (count($values) > 0) { - foreach (array_chunk($values, 1000) as $valuesChunk) { - call_user_func_array([$this->store->connection(), 'del'], $valuesChunk); - } - } - } - - /** - * Get the reference key for the segment. - * - * @param string $segment - * @param string $suffix - * @return string - */ - protected function referenceKey($segment, $suffix) - { - return $this->store->getPrefix().$segment.':'.$suffix; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Repository.php b/vendor/laravel/framework/src/Illuminate/Cache/Repository.php deleted file mode 100755 index f5dfd7cc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Repository.php +++ /dev/null @@ -1,586 +0,0 @@ -store = $store; - } - - /** - * Determine if an item exists in the cache. - * - * @param string $key - * @return bool - */ - public function has($key) - { - return ! is_null($this->get($key)); - } - - /** - * Retrieve an item from the cache by key. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - if (is_array($key)) { - return $this->many($key); - } - - $value = $this->store->get($this->itemKey($key)); - - // If we could not find the cache value, we will fire the missed event and get - // the default value for this cache value. This default could be a callback - // so we will execute the value function which will resolve it if needed. - if (is_null($value)) { - $this->event(new CacheMissed($key)); - - $value = value($default); - } else { - $this->event(new CacheHit($key, $value)); - } - - return $value; - } - - /** - * Retrieve multiple items from the cache by key. - * - * Items not found in the cache will have a null value. - * - * @param array $keys - * @return array - */ - public function many(array $keys) - { - $values = $this->store->many(collect($keys)->map(function ($value, $key) { - return is_string($key) ? $key : $value; - })->values()->all()); - - return collect($values)->map(function ($value, $key) use ($keys) { - return $this->handleManyResult($keys, $key, $value); - })->all(); - } - - /** - * {@inheritdoc} - */ - public function getMultiple($keys, $default = null) - { - if (is_null($default)) { - return $this->many($keys); - } - - foreach ($keys as $key) { - if (! isset($default[$key])) { - $default[$key] = null; - } - } - - return $this->many($default); - } - - /** - * Handle a result for the "many" method. - * - * @param array $keys - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function handleManyResult($keys, $key, $value) - { - // If we could not find the cache value, we will fire the missed event and get - // the default value for this cache value. This default could be a callback - // so we will execute the value function which will resolve it if needed. - if (is_null($value)) { - $this->event(new CacheMissed($key)); - - return isset($keys[$key]) ? value($keys[$key]) : null; - } - - // If we found a valid value we will fire the "hit" event and return the value - // back from this function. The "hit" event gives developers an opportunity - // to listen for every possible cache "hit" throughout this applications. - $this->event(new CacheHit($key, $value)); - - return $value; - } - - /** - * Retrieve an item from the cache and delete it. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function pull($key, $default = null) - { - return tap($this->get($key, $default), function ($value) use ($key) { - $this->forget($key); - }); - } - - /** - * Store an item in the cache. - * - * @param string $key - * @param mixed $value - * @param \DateTimeInterface|\DateInterval|float|int $minutes - * @return void - */ - public function put($key, $value, $minutes = null) - { - if (is_array($key)) { - return $this->putMany($key, $value); - } - - if (! is_null($minutes = $this->getMinutes($minutes))) { - $this->store->put($this->itemKey($key), $value, $minutes); - - $this->event(new KeyWritten($key, $value, $minutes)); - } - } - - /** - * {@inheritdoc} - */ - public function set($key, $value, $ttl = null) - { - $this->put($key, $value, $ttl); - } - - /** - * Store multiple items in the cache for a given number of minutes. - * - * @param array $values - * @param \DateTimeInterface|\DateInterval|float|int $minutes - * @return void - */ - public function putMany(array $values, $minutes) - { - if (! is_null($minutes = $this->getMinutes($minutes))) { - $this->store->putMany($values, $minutes); - - foreach ($values as $key => $value) { - $this->event(new KeyWritten($key, $value, $minutes)); - } - } - } - - /** - * {@inheritdoc} - */ - public function setMultiple($values, $ttl = null) - { - $this->putMany($values, $ttl); - } - - /** - * Store an item in the cache if the key does not exist. - * - * @param string $key - * @param mixed $value - * @param \DateTimeInterface|\DateInterval|float|int $minutes - * @return bool - */ - public function add($key, $value, $minutes) - { - if (is_null($minutes = $this->getMinutes($minutes))) { - return false; - } - - // If the store has an "add" method we will call the method on the store so it - // has a chance to override this logic. Some drivers better support the way - // this operation should work with a total "atomic" implementation of it. - if (method_exists($this->store, 'add')) { - return $this->store->add( - $this->itemKey($key), $value, $minutes - ); - } - - // If the value did not exist in the cache, we will put the value in the cache - // so it exists for subsequent requests. Then, we will return true so it is - // easy to know if the value gets added. Otherwise, we will return false. - if (is_null($this->get($key))) { - $this->put($key, $value, $minutes); - - return true; - } - - return false; - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value = 1) - { - return $this->store->increment($key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value = 1) - { - return $this->store->decrement($key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->store->forever($this->itemKey($key), $value); - - $this->event(new KeyWritten($key, $value, 0)); - } - - /** - * Get an item from the cache, or store the default value. - * - * @param string $key - * @param \DateTimeInterface|\DateInterval|float|int $minutes - * @param \Closure $callback - * @return mixed - */ - public function remember($key, $minutes, Closure $callback) - { - $value = $this->get($key); - - // If the item exists in the cache we will just return this immediately and if - // not we will execute the given Closure and cache the result of that for a - // given number of minutes so it's available for all subsequent requests. - if (! is_null($value)) { - return $value; - } - - $this->put($key, $value = $callback(), $minutes); - - return $value; - } - - /** - * Get an item from the cache, or store the default value forever. - * - * @param string $key - * @param \Closure $callback - * @return mixed - */ - public function sear($key, Closure $callback) - { - return $this->rememberForever($key, $callback); - } - - /** - * Get an item from the cache, or store the default value forever. - * - * @param string $key - * @param \Closure $callback - * @return mixed - */ - public function rememberForever($key, Closure $callback) - { - $value = $this->get($key); - - // If the item exists in the cache we will just return this immediately and if - // not we will execute the given Closure and cache the result of that for a - // given number of minutes so it's available for all subsequent requests. - if (! is_null($value)) { - return $value; - } - - $this->forever($key, $value = $callback()); - - return $value; - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - return tap($this->store->forget($this->itemKey($key)), function () use ($key) { - $this->event(new KeyForgotten($key)); - }); - } - - /** - * {@inheritdoc} - */ - public function delete($key) - { - return $this->forget($key); - } - - /** - * {@inheritdoc} - */ - public function deleteMultiple($keys) - { - foreach ($keys as $key) { - $this->forget($key); - } - - return true; - } - - /** - * {@inheritdoc} - */ - public function clear() - { - return $this->store->flush(); - } - - /** - * Begin executing a new tags operation if the store supports it. - * - * @param array|mixed $names - * @return \Illuminate\Cache\TaggedCache - * - * @throws \BadMethodCallException - */ - public function tags($names) - { - if (! method_exists($this->store, 'tags')) { - throw new BadMethodCallException('This cache store does not support tagging.'); - } - - $cache = $this->store->tags($names); - - if (! is_null($this->events)) { - $cache->setEventDispatcher($this->events); - } - - return $cache->setDefaultCacheTime($this->default); - } - - /** - * Format the key for a cache item. - * - * @param string $key - * @return string - */ - protected function itemKey($key) - { - return $key; - } - - /** - * Get the default cache time. - * - * @return float|int - */ - public function getDefaultCacheTime() - { - return $this->default; - } - - /** - * Set the default cache time in minutes. - * - * @param float|int $minutes - * @return $this - */ - public function setDefaultCacheTime($minutes) - { - $this->default = $minutes; - - return $this; - } - - /** - * Get the cache store implementation. - * - * @return \Illuminate\Contracts\Cache\Store - */ - public function getStore() - { - return $this->store; - } - - /** - * Fire an event for this cache instance. - * - * @param string $event - * @return void - */ - protected function event($event) - { - if (isset($this->events)) { - $this->events->dispatch($event); - } - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function setEventDispatcher(Dispatcher $events) - { - $this->events = $events; - } - - /** - * Determine if a cached value exists. - * - * @param string $key - * @return bool - */ - public function offsetExists($key) - { - return $this->has($key); - } - - /** - * Retrieve an item from the cache by key. - * - * @param string $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->get($key); - } - - /** - * Store an item in the cache for the default time. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->put($key, $value, $this->default); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - $this->forget($key); - } - - /** - * Calculate the number of minutes with the given duration. - * - * @param \DateTimeInterface|\DateInterval|float|int $duration - * @return float|int|null - */ - protected function getMinutes($duration) - { - $duration = $this->parseDateInterval($duration); - - if ($duration instanceof DateTimeInterface) { - $duration = Carbon::now()->diffInSeconds(Carbon::createFromTimestamp($duration->getTimestamp()), false) / 60; - } - - return (int) ($duration * 60) > 0 ? $duration : null; - } - - /** - * Handle dynamic calls into macros or pass missing methods to the store. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - return $this->store->$method(...$parameters); - } - - /** - * Clone cache repository instance. - * - * @return void - */ - public function __clone() - { - $this->store = clone $this->store; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php b/vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php deleted file mode 100644 index 4d467975..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php +++ /dev/null @@ -1,39 +0,0 @@ -get($key); - } - - return $return; - } - - /** - * Store multiple items in the cache for a given number of minutes. - * - * @param array $values - * @param float|int $minutes - * @return void - */ - public function putMany(array $values, $minutes) - { - foreach ($values as $key => $value) { - $this->put($key, $value, $minutes); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/TagSet.php b/vendor/laravel/framework/src/Illuminate/Cache/TagSet.php deleted file mode 100644 index 214d6481..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/TagSet.php +++ /dev/null @@ -1,110 +0,0 @@ -store = $store; - $this->names = $names; - } - - /** - * Reset all tags in the set. - * - * @return void - */ - public function reset() - { - array_walk($this->names, [$this, 'resetTag']); - } - - /** - * Reset the tag and return the new tag identifier. - * - * @param string $name - * @return string - */ - public function resetTag($name) - { - $this->store->forever($this->tagKey($name), $id = str_replace('.', '', uniqid('', true))); - - return $id; - } - - /** - * Get a unique namespace that changes when any of the tags are flushed. - * - * @return string - */ - public function getNamespace() - { - return implode('|', $this->tagIds()); - } - - /** - * Get an array of tag identifiers for all of the tags in the set. - * - * @return array - */ - protected function tagIds() - { - return array_map([$this, 'tagId'], $this->names); - } - - /** - * Get the unique tag identifier for a given tag. - * - * @param string $name - * @return string - */ - public function tagId($name) - { - return $this->store->get($this->tagKey($name)) ?: $this->resetTag($name); - } - - /** - * Get the tag identifier key for a given tag. - * - * @param string $name - * @return string - */ - public function tagKey($name) - { - return 'tag:'.$name.':key'; - } - - /** - * Get all of the tag names in the set. - * - * @return array - */ - public function getNames() - { - return $this->names; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php b/vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php deleted file mode 100644 index ba00fa45..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php +++ /dev/null @@ -1,17 +0,0 @@ -tags = $tags; - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function increment($key, $value = 1) - { - $this->store->increment($this->itemKey($key), $value); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function decrement($key, $value = 1) - { - $this->store->decrement($this->itemKey($key), $value); - } - - /** - * Remove all items from the cache. - * - * @return void - */ - public function flush() - { - $this->tags->reset(); - } - - /** - * {@inheritdoc} - */ - protected function itemKey($key) - { - return $this->taggedItemKey($key); - } - - /** - * Get a fully qualified key for a tagged item. - * - * @param string $key - * @return string - */ - public function taggedItemKey($key) - { - return sha1($this->tags->getNamespace()).':'.$key; - } - - /** - * Fire an event for this cache instance. - * - * @param string $event - * @return void - */ - protected function event($event) - { - parent::event($event->setTags($this->tags->getNames())); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/composer.json b/vendor/laravel/framework/src/Illuminate/Cache/composer.json deleted file mode 100755 index f81a218c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/composer.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "illuminate/cache", - "description": "The Illuminate Cache package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Cache\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "illuminate/database": "Required to use the database cache driver (5.5.*).", - "illuminate/filesystem": "Required to use the file cache driver (5.5.*).", - "illuminate/redis": "Required to use the redis cache driver (5.5.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Config/Repository.php b/vendor/laravel/framework/src/Illuminate/Config/Repository.php deleted file mode 100644 index 56644eba..00000000 --- a/vendor/laravel/framework/src/Illuminate/Config/Repository.php +++ /dev/null @@ -1,179 +0,0 @@ -items = $items; - } - - /** - * Determine if the given configuration value exists. - * - * @param string $key - * @return bool - */ - public function has($key) - { - return Arr::has($this->items, $key); - } - - /** - * Get the specified configuration value. - * - * @param array|string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - if (is_array($key)) { - return $this->getMany($key); - } - - return Arr::get($this->items, $key, $default); - } - - /** - * Get many configuration values. - * - * @param array $keys - * @return array - */ - public function getMany($keys) - { - $config = []; - - foreach ($keys as $key => $default) { - if (is_numeric($key)) { - list($key, $default) = [$default, null]; - } - - $config[$key] = Arr::get($this->items, $key, $default); - } - - return $config; - } - - /** - * Set a given configuration value. - * - * @param array|string $key - * @param mixed $value - * @return void - */ - public function set($key, $value = null) - { - $keys = is_array($key) ? $key : [$key => $value]; - - foreach ($keys as $key => $value) { - Arr::set($this->items, $key, $value); - } - } - - /** - * Prepend a value onto an array configuration value. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function prepend($key, $value) - { - $array = $this->get($key); - - array_unshift($array, $value); - - $this->set($key, $array); - } - - /** - * Push a value onto an array configuration value. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function push($key, $value) - { - $array = $this->get($key); - - $array[] = $value; - - $this->set($key, $array); - } - - /** - * Get all of the configuration items for the application. - * - * @return array - */ - public function all() - { - return $this->items; - } - - /** - * Determine if the given configuration option exists. - * - * @param string $key - * @return bool - */ - public function offsetExists($key) - { - return $this->has($key); - } - - /** - * Get a configuration option. - * - * @param string $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->get($key); - } - - /** - * Set a configuration option. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->set($key, $value); - } - - /** - * Unset a configuration option. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - $this->set($key, null); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Config/composer.json b/vendor/laravel/framework/src/Illuminate/Config/composer.json deleted file mode 100755 index 55d6f0a0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Config/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "illuminate/config", - "description": "The Illuminate Config package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Config\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Application.php b/vendor/laravel/framework/src/Illuminate/Console/Application.php deleted file mode 100755 index c53221bf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Application.php +++ /dev/null @@ -1,283 +0,0 @@ -laravel = $laravel; - $this->events = $events; - $this->setAutoExit(false); - $this->setCatchExceptions(false); - - $this->events->dispatch(new Events\ArtisanStarting($this)); - - $this->bootstrap(); - } - - /** - * {@inheritdoc} - */ - public function run(InputInterface $input = null, OutputInterface $output = null) - { - $commandName = $this->getCommandName( - $input = $input ?: new ArgvInput - ); - - $this->events->fire( - new Events\CommandStarting( - $commandName, $input, $output = $output ?: new ConsoleOutput - ) - ); - - $exitCode = parent::run($input, $output); - - $this->events->fire( - new Events\CommandFinished($commandName, $input, $output, $exitCode) - ); - - return $exitCode; - } - - /** - * Determine the proper PHP executable. - * - * @return string - */ - public static function phpBinary() - { - return ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)); - } - - /** - * Determine the proper Artisan executable. - * - * @return string - */ - public static function artisanBinary() - { - return defined('ARTISAN_BINARY') ? ProcessUtils::escapeArgument(ARTISAN_BINARY) : 'artisan'; - } - - /** - * Format the given command as a fully-qualified executable command. - * - * @param string $string - * @return string - */ - public static function formatCommandString($string) - { - return sprintf('%s %s %s', static::phpBinary(), static::artisanBinary(), $string); - } - - /** - * Register a console "starting" bootstrapper. - * - * @param \Closure $callback - * @return void - */ - public static function starting(Closure $callback) - { - static::$bootstrappers[] = $callback; - } - - /** - * Bootstrap the console application. - * - * @return void - */ - protected function bootstrap() - { - foreach (static::$bootstrappers as $bootstrapper) { - $bootstrapper($this); - } - } - - /** - * Clear the console application bootstrappers. - * - * @return void - */ - public static function forgetBootstrappers() - { - static::$bootstrappers = []; - } - - /** - * Run an Artisan console command by name. - * - * @param string $command - * @param array $parameters - * @param \Symfony\Component\Console\Output\OutputInterface $outputBuffer - * @return int - */ - public function call($command, array $parameters = [], $outputBuffer = null) - { - $parameters = collect($parameters)->prepend($command); - - $this->lastOutput = $outputBuffer ?: new BufferedOutput; - - $this->setCatchExceptions(false); - - $result = $this->run(new ArrayInput($parameters->toArray()), $this->lastOutput); - - $this->setCatchExceptions(true); - - return $result; - } - - /** - * Get the output for the last run command. - * - * @return string - */ - public function output() - { - return $this->lastOutput ? $this->lastOutput->fetch() : ''; - } - - /** - * Add a command to the console. - * - * @param \Symfony\Component\Console\Command\Command $command - * @return \Symfony\Component\Console\Command\Command - */ - public function add(SymfonyCommand $command) - { - if ($command instanceof Command) { - $command->setLaravel($this->laravel); - } - - return $this->addToParent($command); - } - - /** - * Add the command to the parent instance. - * - * @param \Symfony\Component\Console\Command\Command $command - * @return \Symfony\Component\Console\Command\Command - */ - protected function addToParent(SymfonyCommand $command) - { - return parent::add($command); - } - - /** - * Add a command, resolving through the application. - * - * @param string $command - * @return \Symfony\Component\Console\Command\Command - */ - public function resolve($command) - { - return $this->add($this->laravel->make($command)); - } - - /** - * Resolve an array of commands through the application. - * - * @param array|mixed $commands - * @return $this - */ - public function resolveCommands($commands) - { - $commands = is_array($commands) ? $commands : func_get_args(); - - foreach ($commands as $command) { - $this->resolve($command); - } - - return $this; - } - - /** - * Get the default input definitions for the applications. - * - * This is used to add the --env option to every available command. - * - * @return \Symfony\Component\Console\Input\InputDefinition - */ - protected function getDefaultInputDefinition() - { - return tap(parent::getDefaultInputDefinition(), function ($definition) { - $definition->addOption($this->getEnvironmentOption()); - }); - } - - /** - * Get the global environment option for the definition. - * - * @return \Symfony\Component\Console\Input\InputOption - */ - protected function getEnvironmentOption() - { - $message = 'The environment the command should run under'; - - return new InputOption('--env', null, InputOption::VALUE_OPTIONAL, $message); - } - - /** - * Get the Laravel application instance. - * - * @return \Illuminate\Contracts\Foundation\Application - */ - public function getLaravel() - { - return $this->laravel; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Command.php b/vendor/laravel/framework/src/Illuminate/Console/Command.php deleted file mode 100755 index b79a354d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Command.php +++ /dev/null @@ -1,594 +0,0 @@ - OutputInterface::VERBOSITY_VERBOSE, - 'vv' => OutputInterface::VERBOSITY_VERY_VERBOSE, - 'vvv' => OutputInterface::VERBOSITY_DEBUG, - 'quiet' => OutputInterface::VERBOSITY_QUIET, - 'normal' => OutputInterface::VERBOSITY_NORMAL, - ]; - - /** - * Create a new console command instance. - * - * @return void - */ - public function __construct() - { - // We will go ahead and set the name, description, and parameters on console - // commands just to make things a little easier on the developer. This is - // so they don't have to all be manually specified in the constructors. - if (isset($this->signature)) { - $this->configureUsingFluentDefinition(); - } else { - parent::__construct($this->name); - } - - // Once we have constructed the command, we'll set the description and other - // related properties of the command. If a signature wasn't used to build - // the command we'll set the arguments and the options on this command. - $this->setDescription($this->description); - - $this->setHidden($this->hidden); - - if (! isset($this->signature)) { - $this->specifyParameters(); - } - } - - /** - * Configure the console command using a fluent definition. - * - * @return void - */ - protected function configureUsingFluentDefinition() - { - list($name, $arguments, $options) = Parser::parse($this->signature); - - parent::__construct($this->name = $name); - - // After parsing the signature we will spin through the arguments and options - // and set them on this command. These will already be changed into proper - // instances of these "InputArgument" and "InputOption" Symfony classes. - foreach ($arguments as $argument) { - $this->getDefinition()->addArgument($argument); - } - - foreach ($options as $option) { - $this->getDefinition()->addOption($option); - } - } - - /** - * Specify the arguments and options on the command. - * - * @return void - */ - protected function specifyParameters() - { - // We will loop through all of the arguments and options for the command and - // set them all on the base command instance. This specifies what can get - // passed into these commands as "parameters" to control the execution. - foreach ($this->getArguments() as $arguments) { - call_user_func_array([$this, 'addArgument'], $arguments); - } - - foreach ($this->getOptions() as $options) { - call_user_func_array([$this, 'addOption'], $options); - } - } - - /** - * Run the console command. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @return int - */ - public function run(InputInterface $input, OutputInterface $output) - { - return parent::run( - $this->input = $input, $this->output = new OutputStyle($input, $output) - ); - } - - /** - * Execute the console command. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @return mixed - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - return $this->laravel->call([$this, 'handle']); - } - - /** - * Call another console command. - * - * @param string $command - * @param array $arguments - * @return int - */ - public function call($command, array $arguments = []) - { - $arguments['command'] = $command; - - return $this->getApplication()->find($command)->run( - $this->createInputFromArguments($arguments), $this->output - ); - } - - /** - * Call another console command silently. - * - * @param string $command - * @param array $arguments - * @return int - */ - public function callSilent($command, array $arguments = []) - { - $arguments['command'] = $command; - - return $this->getApplication()->find($command)->run( - $this->createInputFromArguments($arguments), new NullOutput - ); - } - - /** - * Create an input instance from the given arguments. - * - * @param array $arguments - * @return \Symfony\Component\Console\Input\ArrayInput - */ - protected function createInputFromArguments(array $arguments) - { - return tap(new ArrayInput($arguments), function ($input) { - if ($input->hasParameterOption(['--no-interaction'], true)) { - $input->setInteractive(false); - } - }); - } - - /** - * Determine if the given argument is present. - * - * @param string|int $name - * @return bool - */ - public function hasArgument($name) - { - return $this->input->hasArgument($name); - } - - /** - * Get the value of a command argument. - * - * @param string|null $key - * @return string|array - */ - public function argument($key = null) - { - if (is_null($key)) { - return $this->input->getArguments(); - } - - return $this->input->getArgument($key); - } - - /** - * Get all of the arguments passed to the command. - * - * @return array - */ - public function arguments() - { - return $this->argument(); - } - - /** - * Determine if the given option is present. - * - * @param string $name - * @return bool - */ - public function hasOption($name) - { - return $this->input->hasOption($name); - } - - /** - * Get the value of a command option. - * - * @param string $key - * @return string|array - */ - public function option($key = null) - { - if (is_null($key)) { - return $this->input->getOptions(); - } - - return $this->input->getOption($key); - } - - /** - * Get all of the options passed to the command. - * - * @return array - */ - public function options() - { - return $this->option(); - } - - /** - * Confirm a question with the user. - * - * @param string $question - * @param bool $default - * @return bool - */ - public function confirm($question, $default = false) - { - return $this->output->confirm($question, $default); - } - - /** - * Prompt the user for input. - * - * @param string $question - * @param string $default - * @return string - */ - public function ask($question, $default = null) - { - return $this->output->ask($question, $default); - } - - /** - * Prompt the user for input with auto completion. - * - * @param string $question - * @param array $choices - * @param string $default - * @return string - */ - public function anticipate($question, array $choices, $default = null) - { - return $this->askWithCompletion($question, $choices, $default); - } - - /** - * Prompt the user for input with auto completion. - * - * @param string $question - * @param array $choices - * @param string $default - * @return string - */ - public function askWithCompletion($question, array $choices, $default = null) - { - $question = new Question($question, $default); - - $question->setAutocompleterValues($choices); - - return $this->output->askQuestion($question); - } - - /** - * Prompt the user for input but hide the answer from the console. - * - * @param string $question - * @param bool $fallback - * @return string - */ - public function secret($question, $fallback = true) - { - $question = new Question($question); - - $question->setHidden(true)->setHiddenFallback($fallback); - - return $this->output->askQuestion($question); - } - - /** - * Give the user a single choice from an array of answers. - * - * @param string $question - * @param array $choices - * @param string $default - * @param mixed $attempts - * @param bool $multiple - * @return string - */ - public function choice($question, array $choices, $default = null, $attempts = null, $multiple = null) - { - $question = new ChoiceQuestion($question, $choices, $default); - - $question->setMaxAttempts($attempts)->setMultiselect($multiple); - - return $this->output->askQuestion($question); - } - - /** - * Format input to textual table. - * - * @param array $headers - * @param \Illuminate\Contracts\Support\Arrayable|array $rows - * @param string $tableStyle - * @param array $columnStyles - * @return void - */ - public function table($headers, $rows, $tableStyle = 'default', array $columnStyles = []) - { - $table = new Table($this->output); - - if ($rows instanceof Arrayable) { - $rows = $rows->toArray(); - } - - $table->setHeaders((array) $headers)->setRows($rows)->setStyle($tableStyle); - - foreach ($columnStyles as $columnIndex => $columnStyle) { - $table->setColumnStyle($columnIndex, $columnStyle); - } - - $table->render(); - } - - /** - * Write a string as information output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function info($string, $verbosity = null) - { - $this->line($string, 'info', $verbosity); - } - - /** - * Write a string as standard output. - * - * @param string $string - * @param string $style - * @param null|int|string $verbosity - * @return void - */ - public function line($string, $style = null, $verbosity = null) - { - $styled = $style ? "<$style>$string" : $string; - - $this->output->writeln($styled, $this->parseVerbosity($verbosity)); - } - - /** - * Write a string as comment output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function comment($string, $verbosity = null) - { - $this->line($string, 'comment', $verbosity); - } - - /** - * Write a string as question output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function question($string, $verbosity = null) - { - $this->line($string, 'question', $verbosity); - } - - /** - * Write a string as error output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function error($string, $verbosity = null) - { - $this->line($string, 'error', $verbosity); - } - - /** - * Write a string as warning output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function warn($string, $verbosity = null) - { - if (! $this->output->getFormatter()->hasStyle('warning')) { - $style = new OutputFormatterStyle('yellow'); - - $this->output->getFormatter()->setStyle('warning', $style); - } - - $this->line($string, 'warning', $verbosity); - } - - /** - * Write a string in an alert box. - * - * @param string $string - * @return void - */ - public function alert($string) - { - $this->comment(str_repeat('*', strlen($string) + 12)); - $this->comment('* '.$string.' *'); - $this->comment(str_repeat('*', strlen($string) + 12)); - - $this->output->newLine(); - } - - /** - * Set the verbosity level. - * - * @param string|int $level - * @return void - */ - protected function setVerbosity($level) - { - $this->verbosity = $this->parseVerbosity($level); - } - - /** - * Get the verbosity level in terms of Symfony's OutputInterface level. - * - * @param string|int $level - * @return int - */ - protected function parseVerbosity($level = null) - { - if (isset($this->verbosityMap[$level])) { - $level = $this->verbosityMap[$level]; - } elseif (! is_int($level)) { - $level = $this->verbosity; - } - - return $level; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return []; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return []; - } - - /** - * Get the output implementation. - * - * @return \Symfony\Component\Console\Output\OutputInterface - */ - public function getOutput() - { - return $this->output; - } - - /** - * Get the Laravel application instance. - * - * @return \Illuminate\Contracts\Foundation\Application - */ - public function getLaravel() - { - return $this->laravel; - } - - /** - * Set the Laravel application instance. - * - * @param \Illuminate\Contracts\Container\Container $laravel - * @return void - */ - public function setLaravel($laravel) - { - $this->laravel = $laravel; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php b/vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php deleted file mode 100644 index 71722153..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php +++ /dev/null @@ -1,54 +0,0 @@ -getDefaultConfirmCallback() : $callback; - - $shouldConfirm = $callback instanceof Closure ? call_user_func($callback) : $callback; - - if ($shouldConfirm) { - if ($this->option('force')) { - return true; - } - - $this->alert($warning); - - $confirmed = $this->confirm('Do you really wish to run this command?'); - - if (! $confirmed) { - $this->comment('Command Cancelled!'); - - return false; - } - } - - return true; - } - - /** - * Get the default confirmation callback. - * - * @return \Closure - */ - protected function getDefaultConfirmCallback() - { - return function () { - return $this->getLaravel()->environment() == 'production'; - }; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php b/vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php deleted file mode 100644 index cb5e8e84..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php +++ /dev/null @@ -1,18 +0,0 @@ -getNamespace(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php b/vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php deleted file mode 100644 index f228ac52..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php +++ /dev/null @@ -1,24 +0,0 @@ -artisan = $artisan; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php b/vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php deleted file mode 100644 index ef066af3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php +++ /dev/null @@ -1,54 +0,0 @@ -input = $input; - $this->output = $output; - $this->command = $command; - $this->exitCode = $exitCode; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php b/vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php deleted file mode 100644 index c6238b5d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php +++ /dev/null @@ -1,45 +0,0 @@ -input = $input; - $this->output = $output; - $this->command = $command; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php b/vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php deleted file mode 100644 index 3dd77744..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php +++ /dev/null @@ -1,235 +0,0 @@ -files = $files; - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - abstract protected function getStub(); - - /** - * Execute the console command. - * - * @return bool|null - */ - public function handle() - { - $name = $this->qualifyClass($this->getNameInput()); - - $path = $this->getPath($name); - - // First we will check to see if the class already exists. If it does, we don't want - // to create the class and overwrite the user's code. So, we will bail out so the - // code is untouched. Otherwise, we will continue generating this class' files. - if ($this->alreadyExists($this->getNameInput())) { - $this->error($this->type.' already exists!'); - - return false; - } - - // Next, we will generate the path to the location where this class' file should get - // written. Then, we will build the class and make the proper replacements on the - // stub files so that it gets the correctly formatted namespace and class name. - $this->makeDirectory($path); - - $this->files->put($path, $this->buildClass($name)); - - $this->info($this->type.' created successfully.'); - } - - /** - * Parse the class name and format according to the root namespace. - * - * @param string $name - * @return string - */ - protected function qualifyClass($name) - { - $name = ltrim($name, '\\/'); - - $rootNamespace = $this->rootNamespace(); - - if (Str::startsWith($name, $rootNamespace)) { - return $name; - } - - $name = str_replace('/', '\\', $name); - - return $this->qualifyClass( - $this->getDefaultNamespace(trim($rootNamespace, '\\')).'\\'.$name - ); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace; - } - - /** - * Determine if the class already exists. - * - * @param string $rawName - * @return bool - */ - protected function alreadyExists($rawName) - { - return $this->files->exists($this->getPath($this->qualifyClass($rawName))); - } - - /** - * Get the destination class path. - * - * @param string $name - * @return string - */ - protected function getPath($name) - { - $name = Str::replaceFirst($this->rootNamespace(), '', $name); - - return $this->laravel['path'].'/'.str_replace('\\', '/', $name).'.php'; - } - - /** - * Build the directory for the class if necessary. - * - * @param string $path - * @return string - */ - protected function makeDirectory($path) - { - if (! $this->files->isDirectory(dirname($path))) { - $this->files->makeDirectory(dirname($path), 0777, true, true); - } - - return $path; - } - - /** - * Build the class with the given name. - * - * @param string $name - * @return string - */ - protected function buildClass($name) - { - $stub = $this->files->get($this->getStub()); - - return $this->replaceNamespace($stub, $name)->replaceClass($stub, $name); - } - - /** - * Replace the namespace for the given stub. - * - * @param string $stub - * @param string $name - * @return $this - */ - protected function replaceNamespace(&$stub, $name) - { - $stub = str_replace( - ['DummyNamespace', 'DummyRootNamespace', 'NamespacedDummyUserModel'], - [$this->getNamespace($name), $this->rootNamespace(), config('auth.providers.users.model')], - $stub - ); - - return $this; - } - - /** - * Get the full namespace for a given class, without the class name. - * - * @param string $name - * @return string - */ - protected function getNamespace($name) - { - return trim(implode('\\', array_slice(explode('\\', $name), 0, -1)), '\\'); - } - - /** - * Replace the class name for the given stub. - * - * @param string $stub - * @param string $name - * @return string - */ - protected function replaceClass($stub, $name) - { - $class = str_replace($this->getNamespace($name).'\\', '', $name); - - return str_replace('DummyClass', $class, $stub); - } - - /** - * Get the desired class name from the input. - * - * @return string - */ - protected function getNameInput() - { - return trim($this->argument('name')); - } - - /** - * Get the root namespace for the class. - * - * @return string - */ - protected function rootNamespace() - { - return $this->laravel->getNamespace(); - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['name', InputArgument::REQUIRED, 'The name of the class'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php b/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php deleted file mode 100644 index 925e66da..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php +++ /dev/null @@ -1,71 +0,0 @@ -output = $output; - - parent::__construct($input, $output); - } - - /** - * Returns whether verbosity is quiet (-q). - * - * @return bool - */ - public function isQuiet() - { - return $this->output->isQuiet(); - } - - /** - * Returns whether verbosity is verbose (-v). - * - * @return bool - */ - public function isVerbose() - { - return $this->output->isVerbose(); - } - - /** - * Returns whether verbosity is very verbose (-vv). - * - * @return bool - */ - public function isVeryVerbose() - { - return $this->output->isVeryVerbose(); - } - - /** - * Returns whether verbosity is debug (-vvv). - * - * @return bool - */ - public function isDebug() - { - return $this->output->isDebug(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Parser.php b/vendor/laravel/framework/src/Illuminate/Console/Parser.php deleted file mode 100644 index 92753119..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Parser.php +++ /dev/null @@ -1,146 +0,0 @@ -cache = $cache; - } - - /** - * Attempt to obtain a mutex for the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return bool - */ - public function create(Event $event) - { - return $this->cache->add( - $event->mutexName(), true, $event->expiresAt - ); - } - - /** - * Determine if a mutex exists for the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return bool - */ - public function exists(Event $event) - { - return $this->cache->has($event->mutexName()); - } - - /** - * Clear the mutex for the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return void - */ - public function forget(Event $event) - { - $this->cache->forget($event->mutexName()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php deleted file mode 100644 index 1efac5fa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php +++ /dev/null @@ -1,138 +0,0 @@ -mutex = $mutex; - $this->callback = $callback; - $this->parameters = $parameters; - } - - /** - * Run the given event. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return mixed - * - * @throws \Exception - */ - public function run(Container $container) - { - if ($this->description && $this->withoutOverlapping && - ! $this->mutex->create($this)) { - return; - } - - register_shutdown_function(function () { - $this->removeMutex(); - }); - - parent::callBeforeCallbacks($container); - - try { - $response = $container->call($this->callback, $this->parameters); - } finally { - $this->removeMutex(); - - parent::callAfterCallbacks($container); - } - - return $response; - } - - /** - * Clear the mutex for the event. - * - * @return void - */ - protected function removeMutex() - { - if ($this->description) { - $this->mutex->forget($this); - } - } - - /** - * Do not allow the event to overlap each other. - * - * @param int $expiresAt - * @return $this - */ - public function withoutOverlapping($expiresAt = 1440) - { - if (! isset($this->description)) { - throw new LogicException( - "A scheduled event name is required to prevent overlapping. Use the 'name' method before 'withoutOverlapping'." - ); - } - - $this->withoutOverlapping = true; - - $this->expiresAt = $expiresAt; - - return $this->skip(function () { - return $this->mutex->exists($this); - }); - } - - /** - * Get the mutex name for the scheduled command. - * - * @return string - */ - public function mutexName() - { - return 'framework/schedule-'.sha1($this->description); - } - - /** - * Get the summary of the event for display. - * - * @return string - */ - public function getSummaryForDisplay() - { - if (is_string($this->description)) { - return $this->description; - } - - return is_string($this->callback) ? $this->callback : 'Closure'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php deleted file mode 100644 index df7cdf61..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php +++ /dev/null @@ -1,71 +0,0 @@ -runInBackground) { - return $this->buildBackgroundCommand($event); - } - - return $this->buildForegroundCommand($event); - } - - /** - * Build the command for running the event in the foreground. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return string - */ - protected function buildForegroundCommand(Event $event) - { - $output = ProcessUtils::escapeArgument($event->output); - - return $this->ensureCorrectUser( - $event, $event->command.($event->shouldAppendOutput ? ' >> ' : ' > ').$output.' 2>&1' - ); - } - - /** - * Build the command for running the event in the background. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return string - */ - protected function buildBackgroundCommand(Event $event) - { - $output = ProcessUtils::escapeArgument($event->output); - - $redirect = $event->shouldAppendOutput ? ' >> ' : ' > '; - - $finished = Application::formatCommandString('schedule:finish').' "'.$event->mutexName().'"'; - - return $this->ensureCorrectUser($event, - '('.$event->command.$redirect.$output.' 2>&1 '.(windows_os() ? '&' : ';').' '.$finished.') > ' - .ProcessUtils::escapeArgument($event->getDefaultOutput()).' 2>&1 &' - ); - } - - /** - * Finalize the event's command syntax with the correct user. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @param string $command - * @return string - */ - protected function ensureCorrectUser(Event $event, $command) - { - return $event->user && ! windows_os() ? 'sudo -u '.$event->user.' -- sh -c \''.$command.'\'' : $command; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php deleted file mode 100644 index 2b4ec97c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php +++ /dev/null @@ -1,677 +0,0 @@ -mutex = $mutex; - $this->command = $command; - $this->output = $this->getDefaultOutput(); - } - - /** - * Get the default output depending on the OS. - * - * @return string - */ - public function getDefaultOutput() - { - return (DIRECTORY_SEPARATOR == '\\') ? 'NUL' : '/dev/null'; - } - - /** - * Run the given event. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function run(Container $container) - { - if ($this->withoutOverlapping && - ! $this->mutex->create($this)) { - return; - } - - $this->runInBackground - ? $this->runCommandInBackground($container) - : $this->runCommandInForeground($container); - } - - /** - * Get the mutex name for the scheduled command. - * - * @return string - */ - public function mutexName() - { - return 'framework'.DIRECTORY_SEPARATOR.'schedule-'.sha1($this->expression.$this->command); - } - - /** - * Run the command in the foreground. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - protected function runCommandInForeground(Container $container) - { - $this->callBeforeCallbacks($container); - - (new Process( - $this->buildCommand(), base_path(), null, null, null - ))->run(); - - $this->callAfterCallbacks($container); - } - - /** - * Run the command in the background. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - protected function runCommandInBackground(Container $container) - { - $this->callBeforeCallbacks($container); - - (new Process( - $this->buildCommand(), base_path(), null, null, null - ))->run(); - } - - /** - * Call all of the "before" callbacks for the event. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function callBeforeCallbacks(Container $container) - { - foreach ($this->beforeCallbacks as $callback) { - $container->call($callback); - } - } - - /** - * Call all of the "after" callbacks for the event. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function callAfterCallbacks(Container $container) - { - foreach ($this->afterCallbacks as $callback) { - $container->call($callback); - } - } - - /** - * Build the command string. - * - * @return string - */ - public function buildCommand() - { - return (new CommandBuilder)->buildCommand($this); - } - - /** - * Determine if the given event should run based on the Cron expression. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return bool - */ - public function isDue($app) - { - if (! $this->runsInMaintenanceMode() && $app->isDownForMaintenance()) { - return false; - } - - return $this->expressionPasses() && - $this->runsInEnvironment($app->environment()); - } - - /** - * Determine if the event runs in maintenance mode. - * - * @return bool - */ - public function runsInMaintenanceMode() - { - return $this->evenInMaintenanceMode; - } - - /** - * Determine if the Cron expression passes. - * - * @return bool - */ - protected function expressionPasses() - { - $date = Carbon::now(); - - if ($this->timezone) { - $date->setTimezone($this->timezone); - } - - return CronExpression::factory($this->expression)->isDue($date->toDateTimeString()); - } - - /** - * Determine if the event runs in the given environment. - * - * @param string $environment - * @return bool - */ - public function runsInEnvironment($environment) - { - return empty($this->environments) || in_array($environment, $this->environments); - } - - /** - * Determine if the filters pass for the event. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return bool - */ - public function filtersPass($app) - { - foreach ($this->filters as $callback) { - if (! $app->call($callback)) { - return false; - } - } - - foreach ($this->rejects as $callback) { - if ($app->call($callback)) { - return false; - } - } - - return true; - } - - /** - * Send the output of the command to a given location. - * - * @param string $location - * @param bool $append - * @return $this - */ - public function sendOutputTo($location, $append = false) - { - $this->output = $location; - - $this->shouldAppendOutput = $append; - - return $this; - } - - /** - * Append the output of the command to a given location. - * - * @param string $location - * @return $this - */ - public function appendOutputTo($location) - { - return $this->sendOutputTo($location, true); - } - - /** - * E-mail the results of the scheduled operation. - * - * @param array|mixed $addresses - * @param bool $onlyIfOutputExists - * @return $this - * - * @throws \LogicException - */ - public function emailOutputTo($addresses, $onlyIfOutputExists = false) - { - $this->ensureOutputIsBeingCapturedForEmail(); - - $addresses = is_array($addresses) ? $addresses : [$addresses]; - - return $this->then(function (Mailer $mailer) use ($addresses, $onlyIfOutputExists) { - $this->emailOutput($mailer, $addresses, $onlyIfOutputExists); - }); - } - - /** - * E-mail the results of the scheduled operation if it produces output. - * - * @param array|mixed $addresses - * @return $this - * - * @throws \LogicException - */ - public function emailWrittenOutputTo($addresses) - { - return $this->emailOutputTo($addresses, true); - } - - /** - * Ensure that output is being captured for email. - * - * @return void - */ - protected function ensureOutputIsBeingCapturedForEmail() - { - if (is_null($this->output) || $this->output == $this->getDefaultOutput()) { - $this->sendOutputTo(storage_path('logs/schedule-'.sha1($this->mutexName()).'.log')); - } - } - - /** - * E-mail the output of the event to the recipients. - * - * @param \Illuminate\Contracts\Mail\Mailer $mailer - * @param array $addresses - * @param bool $onlyIfOutputExists - * @return void - */ - protected function emailOutput(Mailer $mailer, $addresses, $onlyIfOutputExists = false) - { - $text = file_exists($this->output) ? file_get_contents($this->output) : ''; - - if ($onlyIfOutputExists && empty($text)) { - return; - } - - $mailer->raw($text, function ($m) use ($addresses) { - $m->to($addresses)->subject($this->getEmailSubject()); - }); - } - - /** - * Get the e-mail subject line for output results. - * - * @return string - */ - protected function getEmailSubject() - { - if ($this->description) { - return $this->description; - } - - return "Scheduled Job Output For [{$this->command}]"; - } - - /** - * Register a callback to ping a given URL before the job runs. - * - * @param string $url - * @return $this - */ - public function pingBefore($url) - { - return $this->before(function () use ($url) { - (new HttpClient)->get($url); - }); - } - - /** - * Register a callback to ping a given URL after the job runs. - * - * @param string $url - * @return $this - */ - public function thenPing($url) - { - return $this->then(function () use ($url) { - (new HttpClient)->get($url); - }); - } - - /** - * State that the command should run in background. - * - * @return $this - */ - public function runInBackground() - { - $this->runInBackground = true; - - return $this; - } - - /** - * Set which user the command should run as. - * - * @param string $user - * @return $this - */ - public function user($user) - { - $this->user = $user; - - return $this; - } - - /** - * Limit the environments the command should run in. - * - * @param array|mixed $environments - * @return $this - */ - public function environments($environments) - { - $this->environments = is_array($environments) ? $environments : func_get_args(); - - return $this; - } - - /** - * State that the command should run even in maintenance mode. - * - * @return $this - */ - public function evenInMaintenanceMode() - { - $this->evenInMaintenanceMode = true; - - return $this; - } - - /** - * Do not allow the event to overlap each other. - * - * @param int $expiresAt - * @return $this - */ - public function withoutOverlapping($expiresAt = 1440) - { - $this->withoutOverlapping = true; - - $this->expiresAt = $expiresAt; - - return $this->then(function () { - $this->mutex->forget($this); - })->skip(function () { - return $this->mutex->exists($this); - }); - } - - /** - * Register a callback to further filter the schedule. - * - * @param \Closure|bool $callback - * @return $this - */ - public function when($callback) - { - $this->filters[] = is_callable($callback) ? $callback : function () use ($callback) { - return $callback; - }; - - return $this; - } - - /** - * Register a callback to further filter the schedule. - * - * @param \Closure|bool $callback - * @return $this - */ - public function skip($callback) - { - $this->rejects[] = is_callable($callback) ? $callback : function () use ($callback) { - return $callback; - }; - - return $this; - } - - /** - * Register a callback to be called before the operation. - * - * @param \Closure $callback - * @return $this - */ - public function before(Closure $callback) - { - $this->beforeCallbacks[] = $callback; - - return $this; - } - - /** - * Register a callback to be called after the operation. - * - * @param \Closure $callback - * @return $this - */ - public function after(Closure $callback) - { - return $this->then($callback); - } - - /** - * Register a callback to be called after the operation. - * - * @param \Closure $callback - * @return $this - */ - public function then(Closure $callback) - { - $this->afterCallbacks[] = $callback; - - return $this; - } - - /** - * Set the human-friendly description of the event. - * - * @param string $description - * @return $this - */ - public function name($description) - { - return $this->description($description); - } - - /** - * Set the human-friendly description of the event. - * - * @param string $description - * @return $this - */ - public function description($description) - { - $this->description = $description; - - return $this; - } - - /** - * Get the summary of the event for display. - * - * @return string - */ - public function getSummaryForDisplay() - { - if (is_string($this->description)) { - return $this->description; - } - - return $this->buildCommand(); - } - - /** - * Determine the next due date for an event. - * - * @param \DateTime|string $currentTime - * @param int $nth - * @param bool $allowCurrentDate - * @return \Illuminate\Support\Carbon - */ - public function nextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false) - { - return Carbon::instance(CronExpression::factory( - $this->getExpression() - )->getNextRunDate($currentTime, $nth, $allowCurrentDate)); - } - - /** - * Get the Cron expression for the event. - * - * @return string - */ - public function getExpression() - { - return $this->expression; - } - - /** - * Set the mutex implementation to be used. - * - * @param \Illuminate\Console\Scheduling\Mutex $mutex - * @return $this - */ - public function preventOverlapsUsing(Mutex $mutex) - { - $this->mutex = $mutex; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php deleted file mode 100644 index 073e1897..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php +++ /dev/null @@ -1,411 +0,0 @@ -expression = $expression; - - return $this; - } - - /** - * Schedule the event to run between start and end time. - * - * @param string $startTime - * @param string $endTime - * @return $this - */ - public function between($startTime, $endTime) - { - return $this->when($this->inTimeInterval($startTime, $endTime)); - } - - /** - * Schedule the event to not run between start and end time. - * - * @param string $startTime - * @param string $endTime - * @return $this - */ - public function unlessBetween($startTime, $endTime) - { - return $this->skip($this->inTimeInterval($startTime, $endTime)); - } - - /** - * Schedule the event to run between start and end time. - * - * @param string $startTime - * @param string $endTime - * @return \Closure - */ - private function inTimeInterval($startTime, $endTime) - { - return function () use ($startTime, $endTime) { - return Carbon::now($this->timezone)->between( - Carbon::parse($startTime, $this->timezone), - Carbon::parse($endTime, $this->timezone), - true - ); - }; - } - - /** - * Schedule the event to run every minute. - * - * @return $this - */ - public function everyMinute() - { - return $this->spliceIntoPosition(1, '*'); - } - - /** - * Schedule the event to run every five minutes. - * - * @return $this - */ - public function everyFiveMinutes() - { - return $this->spliceIntoPosition(1, '*/5'); - } - - /** - * Schedule the event to run every ten minutes. - * - * @return $this - */ - public function everyTenMinutes() - { - return $this->spliceIntoPosition(1, '*/10'); - } - - /** - * Schedule the event to run every fifteen minutes. - * - * @return $this - */ - public function everyFifteenMinutes() - { - return $this->spliceIntoPosition(1, '*/15'); - } - - /** - * Schedule the event to run every thirty minutes. - * - * @return $this - */ - public function everyThirtyMinutes() - { - return $this->spliceIntoPosition(1, '0,30'); - } - - /** - * Schedule the event to run hourly. - * - * @return $this - */ - public function hourly() - { - return $this->spliceIntoPosition(1, 0); - } - - /** - * Schedule the event to run hourly at a given offset in the hour. - * - * @param int $offset - * @return $this - */ - public function hourlyAt($offset) - { - return $this->spliceIntoPosition(1, $offset); - } - - /** - * Schedule the event to run daily. - * - * @return $this - */ - public function daily() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0); - } - - /** - * Schedule the command at a given time. - * - * @param string $time - * @return $this - */ - public function at($time) - { - return $this->dailyAt($time); - } - - /** - * Schedule the event to run daily at a given time (10:00, 19:30, etc). - * - * @param string $time - * @return $this - */ - public function dailyAt($time) - { - $segments = explode(':', $time); - - return $this->spliceIntoPosition(2, (int) $segments[0]) - ->spliceIntoPosition(1, count($segments) == 2 ? (int) $segments[1] : '0'); - } - - /** - * Schedule the event to run twice daily. - * - * @param int $first - * @param int $second - * @return $this - */ - public function twiceDaily($first = 1, $second = 13) - { - $hours = $first.','.$second; - - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, $hours); - } - - /** - * Schedule the event to run only on weekdays. - * - * @return $this - */ - public function weekdays() - { - return $this->spliceIntoPosition(5, '1-5'); - } - - /** - * Schedule the event to run only on weekends. - * - * @return $this - */ - public function weekends() - { - return $this->spliceIntoPosition(5, '0,6'); - } - - /** - * Schedule the event to run only on Mondays. - * - * @return $this - */ - public function mondays() - { - return $this->days(1); - } - - /** - * Schedule the event to run only on Tuesdays. - * - * @return $this - */ - public function tuesdays() - { - return $this->days(2); - } - - /** - * Schedule the event to run only on Wednesdays. - * - * @return $this - */ - public function wednesdays() - { - return $this->days(3); - } - - /** - * Schedule the event to run only on Thursdays. - * - * @return $this - */ - public function thursdays() - { - return $this->days(4); - } - - /** - * Schedule the event to run only on Fridays. - * - * @return $this - */ - public function fridays() - { - return $this->days(5); - } - - /** - * Schedule the event to run only on Saturdays. - * - * @return $this - */ - public function saturdays() - { - return $this->days(6); - } - - /** - * Schedule the event to run only on Sundays. - * - * @return $this - */ - public function sundays() - { - return $this->days(0); - } - - /** - * Schedule the event to run weekly. - * - * @return $this - */ - public function weekly() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(5, 0); - } - - /** - * Schedule the event to run weekly on a given day and time. - * - * @param int $day - * @param string $time - * @return $this - */ - public function weeklyOn($day, $time = '0:0') - { - $this->dailyAt($time); - - return $this->spliceIntoPosition(5, $day); - } - - /** - * Schedule the event to run monthly. - * - * @return $this - */ - public function monthly() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(3, 1); - } - - /** - * Schedule the event to run monthly on a given day and time. - * - * @param int $day - * @param string $time - * @return $this - */ - public function monthlyOn($day = 1, $time = '0:0') - { - $this->dailyAt($time); - - return $this->spliceIntoPosition(3, $day); - } - - /** - * Schedule the event to run twice monthly. - * - * @param int $first - * @param int $second - * @return $this - */ - public function twiceMonthly($first = 1, $second = 16) - { - $days = $first.','.$second; - - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(3, $days); - } - - /** - * Schedule the event to run quarterly. - * - * @return $this - */ - public function quarterly() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(3, 1) - ->spliceIntoPosition(4, '1-12/3'); - } - - /** - * Schedule the event to run yearly. - * - * @return $this - */ - public function yearly() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(3, 1) - ->spliceIntoPosition(4, 1); - } - - /** - * Set the days of the week the command should run on. - * - * @param array|mixed $days - * @return $this - */ - public function days($days) - { - $days = is_array($days) ? $days : func_get_args(); - - return $this->spliceIntoPosition(5, implode(',', $days)); - } - - /** - * Set the timezone the date should be evaluated on. - * - * @param \DateTimeZone|string $timezone - * @return $this - */ - public function timezone($timezone) - { - $this->timezone = $timezone; - - return $this; - } - - /** - * Splice the given value into the given position of the expression. - * - * @param int $position - * @param string $value - * @return $this - */ - protected function spliceIntoPosition($position, $value) - { - $segments = explode(' ', $this->expression); - - $segments[$position - 1] = $value; - - return $this->cron(implode(' ', $segments)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Mutex.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Mutex.php deleted file mode 100644 index 47ca939e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Mutex.php +++ /dev/null @@ -1,30 +0,0 @@ -mutex = $container->bound(Mutex::class) - ? $container->make(Mutex::class) - : $container->make(CacheMutex::class); - } - - /** - * Add a new callback event to the schedule. - * - * @param string|callable $callback - * @param array $parameters - * @return \Illuminate\Console\Scheduling\CallbackEvent - */ - public function call($callback, array $parameters = []) - { - $this->events[] = $event = new CallbackEvent( - $this->mutex, $callback, $parameters - ); - - return $event; - } - - /** - * Add a new Artisan command event to the schedule. - * - * @param string $command - * @param array $parameters - * @return \Illuminate\Console\Scheduling\Event - */ - public function command($command, array $parameters = []) - { - if (class_exists($command)) { - $command = Container::getInstance()->make($command)->getName(); - } - - return $this->exec( - Application::formatCommandString($command), $parameters - ); - } - - /** - * Add a new job callback event to the schedule. - * - * @param object|string $job - * @param string|null $queue - * @return \Illuminate\Console\Scheduling\CallbackEvent - */ - public function job($job, $queue = null) - { - return $this->call(function () use ($job, $queue) { - $job = is_string($job) ? resolve($job) : $job; - - if ($job instanceof ShouldQueue) { - dispatch($job)->onQueue($queue); - } else { - dispatch_now($job); - } - })->name(is_string($job) ? $job : get_class($job)); - } - - /** - * Add a new command event to the schedule. - * - * @param string $command - * @param array $parameters - * @return \Illuminate\Console\Scheduling\Event - */ - public function exec($command, array $parameters = []) - { - if (count($parameters)) { - $command .= ' '.$this->compileParameters($parameters); - } - - $this->events[] = $event = new Event($this->mutex, $command); - - return $event; - } - - /** - * Compile parameters for a command. - * - * @param array $parameters - * @return string - */ - protected function compileParameters(array $parameters) - { - return collect($parameters)->map(function ($value, $key) { - if (is_array($value)) { - $value = collect($value)->map(function ($value) { - return ProcessUtils::escapeArgument($value); - })->implode(' '); - } elseif (! is_numeric($value) && ! preg_match('/^(-.$|--.*)/i', $value)) { - $value = ProcessUtils::escapeArgument($value); - } - - return is_numeric($key) ? $value : "{$key}={$value}"; - })->implode(' '); - } - - /** - * Get all of the events on the schedule that are due. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Support\Collection - */ - public function dueEvents($app) - { - return collect($this->events)->filter->isDue($app); - } - - /** - * Get all of the events on the schedule. - * - * @return \Illuminate\Console\Scheduling\Event[] - */ - public function events() - { - return $this->events; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php deleted file mode 100644 index f697ea81..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php +++ /dev/null @@ -1,61 +0,0 @@ -schedule = $schedule; - - parent::__construct(); - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - collect($this->schedule->events())->filter(function ($value) { - return $value->mutexName() == $this->argument('id'); - })->each->callAfterCallbacks($this->laravel); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php deleted file mode 100644 index a07a9a4c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php +++ /dev/null @@ -1,68 +0,0 @@ -schedule = $schedule; - - parent::__construct(); - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $eventsRan = false; - - foreach ($this->schedule->dueEvents($this->laravel) as $event) { - if (! $event->filtersPass($this->laravel)) { - continue; - } - - $this->line('Running scheduled command: '.$event->getSummaryForDisplay()); - - $event->run($this->laravel); - - $eventsRan = true; - } - - if (! $eventsRan) { - $this->info('No scheduled commands are ready to run.'); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/composer.json b/vendor/laravel/framework/src/Illuminate/Console/composer.json deleted file mode 100755 index 6e432e03..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/composer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "illuminate/console", - "description": "The Illuminate Console package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*", - "symfony/console": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\Console\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "guzzlehttp/guzzle": "Required to use the ping methods on schedules (~6.0).", - "mtdowling/cron-expression": "Required to use scheduling component (~1.0).", - "symfony/process": "Required to use scheduling component (~3.3)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php b/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php deleted file mode 100644 index 0dfd6fdc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php +++ /dev/null @@ -1,172 +0,0 @@ -make($segments[0]), $method], $parameters - ); - } - - /** - * Call a method that has been bound to the container. - * - * @param \Illuminate\Container\Container $container - * @param callable $callback - * @param mixed $default - * @return mixed - */ - protected static function callBoundMethod($container, $callback, $default) - { - if (! is_array($callback)) { - return $default instanceof Closure ? $default() : $default; - } - - // Here we need to turn the array callable into a Class@method string we can use to - // examine the container and see if there are any method bindings for this given - // method. If there are, we can call this method binding callback immediately. - $method = static::normalizeMethod($callback); - - if ($container->hasMethodBinding($method)) { - return $container->callMethodBinding($method, $callback[0]); - } - - return $default instanceof Closure ? $default() : $default; - } - - /** - * Normalize the given callback into a Class@method string. - * - * @param callable $callback - * @return string - */ - protected static function normalizeMethod($callback) - { - $class = is_string($callback[0]) ? $callback[0] : get_class($callback[0]); - - return "{$class}@{$callback[1]}"; - } - - /** - * Get all dependencies for a given method. - * - * @param \Illuminate\Container\Container $container - * @param callable|string $callback - * @param array $parameters - * @return array - */ - protected static function getMethodDependencies($container, $callback, array $parameters = []) - { - $dependencies = []; - - foreach (static::getCallReflector($callback)->getParameters() as $parameter) { - static::addDependencyForCallParameter($container, $parameter, $parameters, $dependencies); - } - - return array_merge($dependencies, $parameters); - } - - /** - * Get the proper reflection instance for the given callback. - * - * @param callable|string $callback - * @return \ReflectionFunctionAbstract - */ - protected static function getCallReflector($callback) - { - if (is_string($callback) && strpos($callback, '::') !== false) { - $callback = explode('::', $callback); - } - - return is_array($callback) - ? new ReflectionMethod($callback[0], $callback[1]) - : new ReflectionFunction($callback); - } - - /** - * Get the dependency for the given call parameter. - * - * @param \Illuminate\Container\Container $container - * @param \ReflectionParameter $parameter - * @param array $parameters - * @param array $dependencies - * @return mixed - */ - protected static function addDependencyForCallParameter($container, $parameter, - array &$parameters, &$dependencies) - { - if (array_key_exists($parameter->name, $parameters)) { - $dependencies[] = $parameters[$parameter->name]; - - unset($parameters[$parameter->name]); - } elseif ($parameter->getClass()) { - $dependencies[] = $container->make($parameter->getClass()->name); - } elseif ($parameter->isDefaultValueAvailable()) { - $dependencies[] = $parameter->getDefaultValue(); - } - } - - /** - * Determine if the given string is in Class@method syntax. - * - * @param mixed $callback - * @return bool - */ - protected static function isCallableWithAtSign($callback) - { - return is_string($callback) && strpos($callback, '@') !== false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Container/Container.php b/vendor/laravel/framework/src/Illuminate/Container/Container.php deleted file mode 100755 index 61c2b5ef..00000000 --- a/vendor/laravel/framework/src/Illuminate/Container/Container.php +++ /dev/null @@ -1,1245 +0,0 @@ -getAlias($concrete)); - } - - /** - * Determine if the given abstract type has been bound. - * - * @param string $abstract - * @return bool - */ - public function bound($abstract) - { - return isset($this->bindings[$abstract]) || - isset($this->instances[$abstract]) || - $this->isAlias($abstract); - } - - /** - * {@inheritdoc} - */ - public function has($id) - { - return $this->bound($id); - } - - /** - * Determine if the given abstract type has been resolved. - * - * @param string $abstract - * @return bool - */ - public function resolved($abstract) - { - if ($this->isAlias($abstract)) { - $abstract = $this->getAlias($abstract); - } - - return isset($this->resolved[$abstract]) || - isset($this->instances[$abstract]); - } - - /** - * Determine if a given type is shared. - * - * @param string $abstract - * @return bool - */ - public function isShared($abstract) - { - return isset($this->instances[$abstract]) || - (isset($this->bindings[$abstract]['shared']) && - $this->bindings[$abstract]['shared'] === true); - } - - /** - * Determine if a given string is an alias. - * - * @param string $name - * @return bool - */ - public function isAlias($name) - { - return isset($this->aliases[$name]); - } - - /** - * Register a binding with the container. - * - * @param string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - */ - public function bind($abstract, $concrete = null, $shared = false) - { - // If no concrete type was given, we will simply set the concrete type to the - // abstract type. After that, the concrete type to be registered as shared - // without being forced to state their classes in both of the parameters. - $this->dropStaleInstances($abstract); - - if (is_null($concrete)) { - $concrete = $abstract; - } - - // If the factory is not a Closure, it means it is just a class name which is - // bound into this container to the abstract type and we will just wrap it - // up inside its own Closure to give us more convenience when extending. - if (! $concrete instanceof Closure) { - $concrete = $this->getClosure($abstract, $concrete); - } - - $this->bindings[$abstract] = compact('concrete', 'shared'); - - // If the abstract type was already resolved in this container we'll fire the - // rebound listener so that any objects which have already gotten resolved - // can have their copy of the object updated via the listener callbacks. - if ($this->resolved($abstract)) { - $this->rebound($abstract); - } - } - - /** - * Get the Closure to be used when building a type. - * - * @param string $abstract - * @param string $concrete - * @return \Closure - */ - protected function getClosure($abstract, $concrete) - { - return function ($container, $parameters = []) use ($abstract, $concrete) { - if ($abstract == $concrete) { - return $container->build($concrete); - } - - return $container->make($concrete, $parameters); - }; - } - - /** - * Determine if the container has a method binding. - * - * @param string $method - * @return bool - */ - public function hasMethodBinding($method) - { - return isset($this->methodBindings[$method]); - } - - /** - * Bind a callback to resolve with Container::call. - * - * @param string $method - * @param \Closure $callback - * @return void - */ - public function bindMethod($method, $callback) - { - $this->methodBindings[$method] = $callback; - } - - /** - * Get the method binding for the given method. - * - * @param string $method - * @param mixed $instance - * @return mixed - */ - public function callMethodBinding($method, $instance) - { - return call_user_func($this->methodBindings[$method], $instance, $this); - } - - /** - * Add a contextual binding to the container. - * - * @param string $concrete - * @param string $abstract - * @param \Closure|string $implementation - * @return void - */ - public function addContextualBinding($concrete, $abstract, $implementation) - { - $this->contextual[$concrete][$this->getAlias($abstract)] = $implementation; - } - - /** - * Register a binding if it hasn't already been registered. - * - * @param string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - */ - public function bindIf($abstract, $concrete = null, $shared = false) - { - if (! $this->bound($abstract)) { - $this->bind($abstract, $concrete, $shared); - } - } - - /** - * Register a shared binding in the container. - * - * @param string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function singleton($abstract, $concrete = null) - { - $this->bind($abstract, $concrete, true); - } - - /** - * "Extend" an abstract type in the container. - * - * @param string $abstract - * @param \Closure $closure - * @return void - * - * @throws \InvalidArgumentException - */ - public function extend($abstract, Closure $closure) - { - $abstract = $this->getAlias($abstract); - - if (isset($this->instances[$abstract])) { - $this->instances[$abstract] = $closure($this->instances[$abstract], $this); - - $this->rebound($abstract); - } else { - $this->extenders[$abstract][] = $closure; - - if ($this->resolved($abstract)) { - $this->rebound($abstract); - } - } - } - - /** - * Register an existing instance as shared in the container. - * - * @param string $abstract - * @param mixed $instance - * @return mixed - */ - public function instance($abstract, $instance) - { - $this->removeAbstractAlias($abstract); - - $isBound = $this->bound($abstract); - - unset($this->aliases[$abstract]); - - // We'll check to determine if this type has been bound before, and if it has - // we will fire the rebound callbacks registered with the container and it - // can be updated with consuming classes that have gotten resolved here. - $this->instances[$abstract] = $instance; - - if ($isBound) { - $this->rebound($abstract); - } - - return $instance; - } - - /** - * Remove an alias from the contextual binding alias cache. - * - * @param string $searched - * @return void - */ - protected function removeAbstractAlias($searched) - { - if (! isset($this->aliases[$searched])) { - return; - } - - foreach ($this->abstractAliases as $abstract => $aliases) { - foreach ($aliases as $index => $alias) { - if ($alias == $searched) { - unset($this->abstractAliases[$abstract][$index]); - } - } - } - } - - /** - * Assign a set of tags to a given binding. - * - * @param array|string $abstracts - * @param array|mixed ...$tags - * @return void - */ - public function tag($abstracts, $tags) - { - $tags = is_array($tags) ? $tags : array_slice(func_get_args(), 1); - - foreach ($tags as $tag) { - if (! isset($this->tags[$tag])) { - $this->tags[$tag] = []; - } - - foreach ((array) $abstracts as $abstract) { - $this->tags[$tag][] = $abstract; - } - } - } - - /** - * Resolve all of the bindings for a given tag. - * - * @param string $tag - * @return array - */ - public function tagged($tag) - { - $results = []; - - if (isset($this->tags[$tag])) { - foreach ($this->tags[$tag] as $abstract) { - $results[] = $this->make($abstract); - } - } - - return $results; - } - - /** - * Alias a type to a different name. - * - * @param string $abstract - * @param string $alias - * @return void - */ - public function alias($abstract, $alias) - { - $this->aliases[$alias] = $abstract; - - $this->abstractAliases[$abstract][] = $alias; - } - - /** - * Bind a new callback to an abstract's rebind event. - * - * @param string $abstract - * @param \Closure $callback - * @return mixed - */ - public function rebinding($abstract, Closure $callback) - { - $this->reboundCallbacks[$abstract = $this->getAlias($abstract)][] = $callback; - - if ($this->bound($abstract)) { - return $this->make($abstract); - } - } - - /** - * Refresh an instance on the given target and method. - * - * @param string $abstract - * @param mixed $target - * @param string $method - * @return mixed - */ - public function refresh($abstract, $target, $method) - { - return $this->rebinding($abstract, function ($app, $instance) use ($target, $method) { - $target->{$method}($instance); - }); - } - - /** - * Fire the "rebound" callbacks for the given abstract type. - * - * @param string $abstract - * @return void - */ - protected function rebound($abstract) - { - $instance = $this->make($abstract); - - foreach ($this->getReboundCallbacks($abstract) as $callback) { - call_user_func($callback, $this, $instance); - } - } - - /** - * Get the rebound callbacks for a given type. - * - * @param string $abstract - * @return array - */ - protected function getReboundCallbacks($abstract) - { - if (isset($this->reboundCallbacks[$abstract])) { - return $this->reboundCallbacks[$abstract]; - } - - return []; - } - - /** - * Wrap the given closure such that its dependencies will be injected when executed. - * - * @param \Closure $callback - * @param array $parameters - * @return \Closure - */ - public function wrap(Closure $callback, array $parameters = []) - { - return function () use ($callback, $parameters) { - return $this->call($callback, $parameters); - }; - } - - /** - * Call the given Closure / class@method and inject its dependencies. - * - * @param callable|string $callback - * @param array $parameters - * @param string|null $defaultMethod - * @return mixed - */ - public function call($callback, array $parameters = [], $defaultMethod = null) - { - return BoundMethod::call($this, $callback, $parameters, $defaultMethod); - } - - /** - * Get a closure to resolve the given type from the container. - * - * @param string $abstract - * @return \Closure - */ - public function factory($abstract) - { - return function () use ($abstract) { - return $this->make($abstract); - }; - } - - /** - * An alias function name for make(). - * - * @param string $abstract - * @param array $parameters - * @return mixed - */ - public function makeWith($abstract, array $parameters = []) - { - return $this->make($abstract, $parameters); - } - - /** - * Resolve the given type from the container. - * - * @param string $abstract - * @param array $parameters - * @return mixed - */ - public function make($abstract, array $parameters = []) - { - return $this->resolve($abstract, $parameters); - } - - /** - * {@inheritdoc} - */ - public function get($id) - { - if ($this->has($id)) { - return $this->resolve($id); - } - - throw new EntryNotFoundException; - } - - /** - * Resolve the given type from the container. - * - * @param string $abstract - * @param array $parameters - * @return mixed - */ - protected function resolve($abstract, $parameters = []) - { - $abstract = $this->getAlias($abstract); - - $needsContextualBuild = ! empty($parameters) || ! is_null( - $this->getContextualConcrete($abstract) - ); - - // If an instance of the type is currently being managed as a singleton we'll - // just return an existing instance instead of instantiating new instances - // so the developer can keep using the same objects instance every time. - if (isset($this->instances[$abstract]) && ! $needsContextualBuild) { - return $this->instances[$abstract]; - } - - $this->with[] = $parameters; - - $concrete = $this->getConcrete($abstract); - - // We're ready to instantiate an instance of the concrete type registered for - // the binding. This will instantiate the types, as well as resolve any of - // its "nested" dependencies recursively until all have gotten resolved. - if ($this->isBuildable($concrete, $abstract)) { - $object = $this->build($concrete); - } else { - $object = $this->make($concrete); - } - - // If we defined any extenders for this type, we'll need to spin through them - // and apply them to the object being built. This allows for the extension - // of services, such as changing configuration or decorating the object. - foreach ($this->getExtenders($abstract) as $extender) { - $object = $extender($object, $this); - } - - // If the requested type is registered as a singleton we'll want to cache off - // the instances in "memory" so we can return it later without creating an - // entirely new instance of an object on each subsequent request for it. - if ($this->isShared($abstract) && ! $needsContextualBuild) { - $this->instances[$abstract] = $object; - } - - $this->fireResolvingCallbacks($abstract, $object); - - // Before returning, we will also set the resolved flag to "true" and pop off - // the parameter overrides for this build. After those two things are done - // we will be ready to return back the fully constructed class instance. - $this->resolved[$abstract] = true; - - array_pop($this->with); - - return $object; - } - - /** - * Get the concrete type for a given abstract. - * - * @param string $abstract - * @return mixed $concrete - */ - protected function getConcrete($abstract) - { - if (! is_null($concrete = $this->getContextualConcrete($abstract))) { - return $concrete; - } - - // If we don't have a registered resolver or concrete for the type, we'll just - // assume each type is a concrete name and will attempt to resolve it as is - // since the container should be able to resolve concretes automatically. - if (isset($this->bindings[$abstract])) { - return $this->bindings[$abstract]['concrete']; - } - - return $abstract; - } - - /** - * Get the contextual concrete binding for the given abstract. - * - * @param string $abstract - * @return string|null - */ - protected function getContextualConcrete($abstract) - { - if (! is_null($binding = $this->findInContextualBindings($abstract))) { - return $binding; - } - - // Next we need to see if a contextual binding might be bound under an alias of the - // given abstract type. So, we will need to check if any aliases exist with this - // type and then spin through them and check for contextual bindings on these. - if (empty($this->abstractAliases[$abstract])) { - return; - } - - foreach ($this->abstractAliases[$abstract] as $alias) { - if (! is_null($binding = $this->findInContextualBindings($alias))) { - return $binding; - } - } - } - - /** - * Find the concrete binding for the given abstract in the contextual binding array. - * - * @param string $abstract - * @return string|null - */ - protected function findInContextualBindings($abstract) - { - if (isset($this->contextual[end($this->buildStack)][$abstract])) { - return $this->contextual[end($this->buildStack)][$abstract]; - } - } - - /** - * Determine if the given concrete is buildable. - * - * @param mixed $concrete - * @param string $abstract - * @return bool - */ - protected function isBuildable($concrete, $abstract) - { - return $concrete === $abstract || $concrete instanceof Closure; - } - - /** - * Instantiate a concrete instance of the given type. - * - * @param string $concrete - * @return mixed - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - public function build($concrete) - { - // If the concrete type is actually a Closure, we will just execute it and - // hand back the results of the functions, which allows functions to be - // used as resolvers for more fine-tuned resolution of these objects. - if ($concrete instanceof Closure) { - return $concrete($this, $this->getLastParameterOverride()); - } - - $reflector = new ReflectionClass($concrete); - - // If the type is not instantiable, the developer is attempting to resolve - // an abstract type such as an Interface of Abstract Class and there is - // no binding registered for the abstractions so we need to bail out. - if (! $reflector->isInstantiable()) { - return $this->notInstantiable($concrete); - } - - $this->buildStack[] = $concrete; - - $constructor = $reflector->getConstructor(); - - // If there are no constructors, that means there are no dependencies then - // we can just resolve the instances of the objects right away, without - // resolving any other types or dependencies out of these containers. - if (is_null($constructor)) { - array_pop($this->buildStack); - - return new $concrete; - } - - $dependencies = $constructor->getParameters(); - - // Once we have all the constructor's parameters we can create each of the - // dependency instances and then use the reflection instances to make a - // new instance of this class, injecting the created dependencies in. - $instances = $this->resolveDependencies( - $dependencies - ); - - array_pop($this->buildStack); - - return $reflector->newInstanceArgs($instances); - } - - /** - * Resolve all of the dependencies from the ReflectionParameters. - * - * @param array $dependencies - * @return array - */ - protected function resolveDependencies(array $dependencies) - { - $results = []; - - foreach ($dependencies as $dependency) { - // If this dependency has a override for this particular build we will use - // that instead as the value. Otherwise, we will continue with this run - // of resolutions and let reflection attempt to determine the result. - if ($this->hasParameterOverride($dependency)) { - $results[] = $this->getParameterOverride($dependency); - - continue; - } - - // If the class is null, it means the dependency is a string or some other - // primitive type which we can not resolve since it is not a class and - // we will just bomb out with an error since we have no-where to go. - $results[] = is_null($dependency->getClass()) - ? $this->resolvePrimitive($dependency) - : $this->resolveClass($dependency); - } - - return $results; - } - - /** - * Determine if the given dependency has a parameter override. - * - * @param \ReflectionParameter $dependency - * @return bool - */ - protected function hasParameterOverride($dependency) - { - return array_key_exists( - $dependency->name, $this->getLastParameterOverride() - ); - } - - /** - * Get a parameter override for a dependency. - * - * @param \ReflectionParameter $dependency - * @return mixed - */ - protected function getParameterOverride($dependency) - { - return $this->getLastParameterOverride()[$dependency->name]; - } - - /** - * Get the last parameter override. - * - * @return array - */ - protected function getLastParameterOverride() - { - return count($this->with) ? end($this->with) : []; - } - - /** - * Resolve a non-class hinted primitive dependency. - * - * @param \ReflectionParameter $parameter - * @return mixed - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function resolvePrimitive(ReflectionParameter $parameter) - { - if (! is_null($concrete = $this->getContextualConcrete('$'.$parameter->name))) { - return $concrete instanceof Closure ? $concrete($this) : $concrete; - } - - if ($parameter->isDefaultValueAvailable()) { - return $parameter->getDefaultValue(); - } - - $this->unresolvablePrimitive($parameter); - } - - /** - * Resolve a class based dependency from the container. - * - * @param \ReflectionParameter $parameter - * @return mixed - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function resolveClass(ReflectionParameter $parameter) - { - try { - return $this->make($parameter->getClass()->name); - } - - // If we can not resolve the class instance, we will check to see if the value - // is optional, and if it is we will return the optional parameter value as - // the value of the dependency, similarly to how we do this with scalars. - catch (BindingResolutionException $e) { - if ($parameter->isOptional()) { - return $parameter->getDefaultValue(); - } - - throw $e; - } - } - - /** - * Throw an exception that the concrete is not instantiable. - * - * @param string $concrete - * @return void - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function notInstantiable($concrete) - { - if (! empty($this->buildStack)) { - $previous = implode(', ', $this->buildStack); - - $message = "Target [$concrete] is not instantiable while building [$previous]."; - } else { - $message = "Target [$concrete] is not instantiable."; - } - - throw new BindingResolutionException($message); - } - - /** - * Throw an exception for an unresolvable primitive. - * - * @param \ReflectionParameter $parameter - * @return void - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function unresolvablePrimitive(ReflectionParameter $parameter) - { - $message = "Unresolvable dependency resolving [$parameter] in class {$parameter->getDeclaringClass()->getName()}"; - - throw new BindingResolutionException($message); - } - - /** - * Register a new resolving callback. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function resolving($abstract, Closure $callback = null) - { - if (is_string($abstract)) { - $abstract = $this->getAlias($abstract); - } - - if (is_null($callback) && $abstract instanceof Closure) { - $this->globalResolvingCallbacks[] = $abstract; - } else { - $this->resolvingCallbacks[$abstract][] = $callback; - } - } - - /** - * Register a new after resolving callback for all types. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function afterResolving($abstract, Closure $callback = null) - { - if (is_string($abstract)) { - $abstract = $this->getAlias($abstract); - } - - if ($abstract instanceof Closure && is_null($callback)) { - $this->globalAfterResolvingCallbacks[] = $abstract; - } else { - $this->afterResolvingCallbacks[$abstract][] = $callback; - } - } - - /** - * Fire all of the resolving callbacks. - * - * @param string $abstract - * @param mixed $object - * @return void - */ - protected function fireResolvingCallbacks($abstract, $object) - { - $this->fireCallbackArray($object, $this->globalResolvingCallbacks); - - $this->fireCallbackArray( - $object, $this->getCallbacksForType($abstract, $object, $this->resolvingCallbacks) - ); - - $this->fireAfterResolvingCallbacks($abstract, $object); - } - - /** - * Fire all of the after resolving callbacks. - * - * @param string $abstract - * @param mixed $object - * @return void - */ - protected function fireAfterResolvingCallbacks($abstract, $object) - { - $this->fireCallbackArray($object, $this->globalAfterResolvingCallbacks); - - $this->fireCallbackArray( - $object, $this->getCallbacksForType($abstract, $object, $this->afterResolvingCallbacks) - ); - } - - /** - * Get all callbacks for a given type. - * - * @param string $abstract - * @param object $object - * @param array $callbacksPerType - * - * @return array - */ - protected function getCallbacksForType($abstract, $object, array $callbacksPerType) - { - $results = []; - - foreach ($callbacksPerType as $type => $callbacks) { - if ($type === $abstract || $object instanceof $type) { - $results = array_merge($results, $callbacks); - } - } - - return $results; - } - - /** - * Fire an array of callbacks with an object. - * - * @param mixed $object - * @param array $callbacks - * @return void - */ - protected function fireCallbackArray($object, array $callbacks) - { - foreach ($callbacks as $callback) { - $callback($object, $this); - } - } - - /** - * Get the container's bindings. - * - * @return array - */ - public function getBindings() - { - return $this->bindings; - } - - /** - * Get the alias for an abstract if available. - * - * @param string $abstract - * @return string - * - * @throws \LogicException - */ - public function getAlias($abstract) - { - if (! isset($this->aliases[$abstract])) { - return $abstract; - } - - if ($this->aliases[$abstract] === $abstract) { - throw new LogicException("[{$abstract}] is aliased to itself."); - } - - return $this->getAlias($this->aliases[$abstract]); - } - - /** - * Get the extender callbacks for a given type. - * - * @param string $abstract - * @return array - */ - protected function getExtenders($abstract) - { - $abstract = $this->getAlias($abstract); - - if (isset($this->extenders[$abstract])) { - return $this->extenders[$abstract]; - } - - return []; - } - - /** - * Remove all of the extender callbacks for a given type. - * - * @param string $abstract - * @return void - */ - public function forgetExtenders($abstract) - { - unset($this->extenders[$this->getAlias($abstract)]); - } - - /** - * Drop all of the stale instances and aliases. - * - * @param string $abstract - * @return void - */ - protected function dropStaleInstances($abstract) - { - unset($this->instances[$abstract], $this->aliases[$abstract]); - } - - /** - * Remove a resolved instance from the instance cache. - * - * @param string $abstract - * @return void - */ - public function forgetInstance($abstract) - { - unset($this->instances[$abstract]); - } - - /** - * Clear all of the instances from the container. - * - * @return void - */ - public function forgetInstances() - { - $this->instances = []; - } - - /** - * Flush the container of all bindings and resolved instances. - * - * @return void - */ - public function flush() - { - $this->aliases = []; - $this->resolved = []; - $this->bindings = []; - $this->instances = []; - $this->abstractAliases = []; - } - - /** - * Set the globally available instance of the container. - * - * @return static - */ - public static function getInstance() - { - if (is_null(static::$instance)) { - static::$instance = new static; - } - - return static::$instance; - } - - /** - * Set the shared instance of the container. - * - * @param \Illuminate\Contracts\Container\Container|null $container - * @return static - */ - public static function setInstance(ContainerContract $container = null) - { - return static::$instance = $container; - } - - /** - * Determine if a given offset exists. - * - * @param string $key - * @return bool - */ - public function offsetExists($key) - { - return $this->bound($key); - } - - /** - * Get the value at a given offset. - * - * @param string $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->make($key); - } - - /** - * Set the value at a given offset. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->bind($key, $value instanceof Closure ? $value : function () use ($value) { - return $value; - }); - } - - /** - * Unset the value at a given offset. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - unset($this->bindings[$key], $this->instances[$key], $this->resolved[$key]); - } - - /** - * Dynamically access container services. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this[$key]; - } - - /** - * Dynamically set container services. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this[$key] = $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php b/vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php deleted file mode 100644 index 58b70cee..00000000 --- a/vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php +++ /dev/null @@ -1,68 +0,0 @@ -concrete = $concrete; - $this->container = $container; - } - - /** - * Define the abstract target that depends on the context. - * - * @param string $abstract - * @return $this - */ - public function needs($abstract) - { - $this->needs = $abstract; - - return $this; - } - - /** - * Define the implementation for the contextual binding. - * - * @param \Closure|string $implementation - * @return void - */ - public function give($implementation) - { - $this->container->addContextualBinding( - $this->concrete, $this->needs, $implementation - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php b/vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php deleted file mode 100644 index 42669214..00000000 --- a/vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php +++ /dev/null @@ -1,11 +0,0 @@ -=7.0", - "illuminate/contracts": "5.5.*", - "psr/container": "~1.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Container\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php b/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php deleted file mode 100644 index 2f9657c5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php +++ /dev/null @@ -1,15 +0,0 @@ -id = $id; - $this->class = $class; - $this->connection = $connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php b/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php deleted file mode 100644 index e3f18a59..00000000 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php +++ /dev/null @@ -1,34 +0,0 @@ -=7.0", - "psr/container": "~1.0", - "psr/simple-cache": "~1.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Contracts\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/CookieJar.php b/vendor/laravel/framework/src/Illuminate/Cookie/CookieJar.php deleted file mode 100755 index b4c65df5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/CookieJar.php +++ /dev/null @@ -1,193 +0,0 @@ -getPathAndDomain($path, $domain, $secure, $sameSite); - - $time = ($minutes == 0) ? 0 : $this->availableAt($minutes * 60); - - return new Cookie($name, $value, $time, $path, $domain, $secure, $httpOnly, $raw, $sameSite); - } - - /** - * Create a cookie that lasts "forever" (five years). - * - * @param string $name - * @param string $value - * @param string $path - * @param string $domain - * @param bool $secure - * @param bool $httpOnly - * @param bool $raw - * @param string|null $sameSite - * @return \Symfony\Component\HttpFoundation\Cookie - */ - public function forever($name, $value, $path = null, $domain = null, $secure = false, $httpOnly = true, $raw = false, $sameSite = null) - { - return $this->make($name, $value, 2628000, $path, $domain, $secure, $httpOnly, $raw, $sameSite); - } - - /** - * Expire the given cookie. - * - * @param string $name - * @param string $path - * @param string $domain - * @return \Symfony\Component\HttpFoundation\Cookie - */ - public function forget($name, $path = null, $domain = null) - { - return $this->make($name, null, -2628000, $path, $domain); - } - - /** - * Determine if a cookie has been queued. - * - * @param string $key - * @return bool - */ - public function hasQueued($key) - { - return ! is_null($this->queued($key)); - } - - /** - * Get a queued cookie instance. - * - * @param string $key - * @param mixed $default - * @return \Symfony\Component\HttpFoundation\Cookie - */ - public function queued($key, $default = null) - { - return Arr::get($this->queued, $key, $default); - } - - /** - * Queue a cookie to send with the next response. - * - * @param array $parameters - * @return void - */ - public function queue(...$parameters) - { - if (head($parameters) instanceof Cookie) { - $cookie = head($parameters); - } else { - $cookie = call_user_func_array([$this, 'make'], $parameters); - } - - $this->queued[$cookie->getName()] = $cookie; - } - - /** - * Remove a cookie from the queue. - * - * @param string $name - * @return void - */ - public function unqueue($name) - { - unset($this->queued[$name]); - } - - /** - * Get the path and domain, or the default values. - * - * @param string $path - * @param string $domain - * @param bool $secure - * @param string $sameSite - * @return array - */ - protected function getPathAndDomain($path, $domain, $secure = false, $sameSite = null) - { - return [$path ?: $this->path, $domain ?: $this->domain, $secure ?: $this->secure, $sameSite ?: $this->sameSite]; - } - - /** - * Set the default path and domain for the jar. - * - * @param string $path - * @param string $domain - * @param bool $secure - * @param string $sameSite - * @return $this - */ - public function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null) - { - list($this->path, $this->domain, $this->secure, $this->sameSite) = [$path, $domain, $secure, $sameSite]; - - return $this; - } - - /** - * Get the cookies which have been queued for the next request. - * - * @return \Symfony\Component\HttpFoundation\Cookie[] - */ - public function getQueuedCookies() - { - return $this->queued; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php deleted file mode 100755 index 7c82dc14..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php +++ /dev/null @@ -1,24 +0,0 @@ -app->singleton('cookie', function ($app) { - $config = $app->make('config')->get('session'); - - return (new CookieJar)->setDefaultPathAndDomain( - $config['path'], $config['domain'], $config['secure'], $config['same_site'] ?? null - ); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php b/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php deleted file mode 100644 index 4caa5741..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php +++ /dev/null @@ -1,45 +0,0 @@ -cookies = $cookies; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - $response = $next($request); - - foreach ($this->cookies->getQueuedCookies() as $cookie) { - $response->headers->setCookie($cookie); - } - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php b/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php deleted file mode 100644 index f7dfac67..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php +++ /dev/null @@ -1,164 +0,0 @@ -encrypter = $encrypter; - } - - /** - * Disable encryption for the given cookie name(s). - * - * @param string|array $cookieName - * @return void - */ - public function disableFor($cookieName) - { - $this->except = array_merge($this->except, (array) $cookieName); - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - return $this->encrypt($next($this->decrypt($request))); - } - - /** - * Decrypt the cookies on the request. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @return \Symfony\Component\HttpFoundation\Request - */ - protected function decrypt(Request $request) - { - foreach ($request->cookies as $key => $c) { - if ($this->isDisabled($key)) { - continue; - } - - try { - $request->cookies->set($key, $this->decryptCookie($c)); - } catch (DecryptException $e) { - $request->cookies->set($key, null); - } - } - - return $request; - } - - /** - * Decrypt the given cookie and return the value. - * - * @param string|array $cookie - * @return string|array - */ - protected function decryptCookie($cookie) - { - return is_array($cookie) - ? $this->decryptArray($cookie) - : $this->encrypter->decrypt($cookie); - } - - /** - * Decrypt an array based cookie. - * - * @param array $cookie - * @return array - */ - protected function decryptArray(array $cookie) - { - $decrypted = []; - - foreach ($cookie as $key => $value) { - if (is_string($value)) { - $decrypted[$key] = $this->encrypter->decrypt($value); - } - } - - return $decrypted; - } - - /** - * Encrypt the cookies on an outgoing response. - * - * @param \Symfony\Component\HttpFoundation\Response $response - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function encrypt(Response $response) - { - foreach ($response->headers->getCookies() as $cookie) { - if ($this->isDisabled($cookie->getName())) { - continue; - } - - $response->headers->setCookie($this->duplicate( - $cookie, $this->encrypter->encrypt($cookie->getValue()) - )); - } - - return $response; - } - - /** - * Duplicate a cookie with a new value. - * - * @param \Symfony\Component\HttpFoundation\Cookie $c - * @param mixed $value - * @return \Symfony\Component\HttpFoundation\Cookie - */ - protected function duplicate(Cookie $c, $value) - { - return new Cookie( - $c->getName(), $value, $c->getExpiresTime(), $c->getPath(), - $c->getDomain(), $c->isSecure(), $c->isHttpOnly(), $c->isRaw(), - $c->getSameSite() - ); - } - - /** - * Determine whether encryption has been disabled for the given cookie. - * - * @param string $name - * @return bool - */ - public function isDisabled($name) - { - return in_array($name, $this->except); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/composer.json b/vendor/laravel/framework/src/Illuminate/Cookie/composer.json deleted file mode 100755 index e9a85cd6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "illuminate/cookie", - "description": "The Illuminate Cookie package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*", - "symfony/http-foundation": "~3.3", - "symfony/http-kernel": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\Cookie\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php b/vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php deleted file mode 100755 index b82a792c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php +++ /dev/null @@ -1,201 +0,0 @@ -setupContainer($container ?: new Container); - - // Once we have the container setup, we will setup the default configuration - // options in the container "config" binding. This will make the database - // manager work correctly out of the box without extreme configuration. - $this->setupDefaultConfiguration(); - - $this->setupManager(); - } - - /** - * Setup the default database configuration options. - * - * @return void - */ - protected function setupDefaultConfiguration() - { - $this->container['config']['database.fetch'] = PDO::FETCH_OBJ; - - $this->container['config']['database.default'] = 'default'; - } - - /** - * Build the database manager instance. - * - * @return void - */ - protected function setupManager() - { - $factory = new ConnectionFactory($this->container); - - $this->manager = new DatabaseManager($this->container, $factory); - } - - /** - * Get a connection instance from the global manager. - * - * @param string $connection - * @return \Illuminate\Database\Connection - */ - public static function connection($connection = null) - { - return static::$instance->getConnection($connection); - } - - /** - * Get a fluent query builder instance. - * - * @param string $table - * @param string $connection - * @return \Illuminate\Database\Query\Builder - */ - public static function table($table, $connection = null) - { - return static::$instance->connection($connection)->table($table); - } - - /** - * Get a schema builder instance. - * - * @param string $connection - * @return \Illuminate\Database\Schema\Builder - */ - public static function schema($connection = null) - { - return static::$instance->connection($connection)->getSchemaBuilder(); - } - - /** - * Get a registered connection instance. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - public function getConnection($name = null) - { - return $this->manager->connection($name); - } - - /** - * Register a connection with the manager. - * - * @param array $config - * @param string $name - * @return void - */ - public function addConnection(array $config, $name = 'default') - { - $connections = $this->container['config']['database.connections']; - - $connections[$name] = $config; - - $this->container['config']['database.connections'] = $connections; - } - - /** - * Bootstrap Eloquent so it is ready for usage. - * - * @return void - */ - public function bootEloquent() - { - Eloquent::setConnectionResolver($this->manager); - - // If we have an event dispatcher instance, we will go ahead and register it - // with the Eloquent ORM, allowing for model callbacks while creating and - // updating "model" instances; however, it is not necessary to operate. - if ($dispatcher = $this->getEventDispatcher()) { - Eloquent::setEventDispatcher($dispatcher); - } - } - - /** - * Set the fetch mode for the database connections. - * - * @param int $fetchMode - * @return $this - */ - public function setFetchMode($fetchMode) - { - $this->container['config']['database.fetch'] = $fetchMode; - - return $this; - } - - /** - * Get the database manager instance. - * - * @return \Illuminate\Database\DatabaseManager - */ - public function getDatabaseManager() - { - return $this->manager; - } - - /** - * Get the current event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher|null - */ - public function getEventDispatcher() - { - if ($this->container->bound('events')) { - return $this->container['events']; - } - } - - /** - * Set the event dispatcher instance to be used by connections. - * - * @param \Illuminate\Contracts\Events\Dispatcher $dispatcher - * @return void - */ - public function setEventDispatcher(Dispatcher $dispatcher) - { - $this->container->instance('events', $dispatcher); - } - - /** - * Dynamically pass methods to the default connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public static function __callStatic($method, $parameters) - { - return static::connection()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php b/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php deleted file mode 100644 index 1051f2c9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php +++ /dev/null @@ -1,161 +0,0 @@ -enforceOrderBy(); - - $page = 1; - - do { - // We'll execute the query for the given page and get the results. If there are - // no results we can just break and return from here. When there are results - // we will call the callback with the current chunk of these results here. - $results = $this->forPage($page, $count)->get(); - - $countResults = $results->count(); - - if ($countResults == 0) { - break; - } - - // On each chunk result set, we will pass them to the callback and then let the - // developer take care of everything within the callback, which allows us to - // keep the memory low for spinning through large result sets for working. - if ($callback($results, $page) === false) { - return false; - } - - unset($results); - - $page++; - } while ($countResults == $count); - - return true; - } - - /** - * Execute a callback over each item while chunking. - * - * @param callable $callback - * @param int $count - * @return bool - */ - public function each(callable $callback, $count = 1000) - { - return $this->chunk($count, function ($results) use ($callback) { - foreach ($results as $key => $value) { - if ($callback($value, $key) === false) { - return false; - } - } - }); - } - - /** - * Execute the query and get the first result. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|object|static|null - */ - public function first($columns = ['*']) - { - return $this->take(1)->get($columns)->first(); - } - - /** - * Apply the callback's query changes if the given "value" is true. - * - * @param mixed $value - * @param callable $callback - * @param callable $default - * @return mixed - */ - public function when($value, $callback, $default = null) - { - if ($value) { - return $callback($this, $value) ?: $this; - } elseif ($default) { - return $default($this, $value) ?: $this; - } - - return $this; - } - - /** - * Pass the query to a given callback. - * - * @param \Closure $callback - * @return \Illuminate\Database\Query\Builder - */ - public function tap($callback) - { - return $this->when(true, $callback); - } - - /** - * Apply the callback's query changes if the given "value" is false. - * - * @param mixed $value - * @param callable $callback - * @param callable $default - * @return mixed - */ - public function unless($value, $callback, $default = null) - { - if (! $value) { - return $callback($this, $value) ?: $this; - } elseif ($default) { - return $default($this, $value) ?: $this; - } - - return $this; - } - - /** - * Create a new length-aware paginator instance. - * - * @param \Illuminate\Support\Collection $items - * @param int $total - * @param int $perPage - * @param int $currentPage - * @param array $options - * @return \Illuminate\Pagination\LengthAwarePaginator - */ - protected function paginator($items, $total, $perPage, $currentPage, $options) - { - return Container::getInstance()->makeWith(LengthAwarePaginator::class, compact( - 'items', 'total', 'perPage', 'currentPage', 'options' - )); - } - - /** - * Create a new simple paginator instance. - * - * @param \Illuminate\Support\Collection $items - * @param int $perPage - * @param int $currentPage - * @param array $options - * @return \Illuminate\Pagination\Paginator - */ - protected function simplePaginator($items, $perPage, $currentPage, $options) - { - return Container::getInstance()->makeWith(Paginator::class, compact( - 'items', 'perPage', 'currentPage', 'options' - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php b/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php deleted file mode 100644 index ec979f4e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php +++ /dev/null @@ -1,219 +0,0 @@ -beginTransaction(); - - // We'll simply execute the given callback within a try / catch block and if we - // catch any exception we can rollback this transaction so that none of this - // gets actually persisted to a database or stored in a permanent fashion. - try { - return tap($callback($this), function ($result) { - $this->commit(); - }); - } - - // If we catch an exception we'll rollback this transaction and try again if we - // are not out of attempts. If we are out of attempts we will just throw the - // exception back out and let the developer handle an uncaught exceptions. - catch (Exception $e) { - $this->handleTransactionException( - $e, $currentAttempt, $attempts - ); - } catch (Throwable $e) { - $this->rollBack(); - - throw $e; - } - } - } - - /** - * Handle an exception encountered when running a transacted statement. - * - * @param \Exception $e - * @param int $currentAttempt - * @param int $maxAttempts - * @return void - * - * @throws \Exception - */ - protected function handleTransactionException($e, $currentAttempt, $maxAttempts) - { - // On a deadlock, MySQL rolls back the entire transaction so we can't just - // retry the query. We have to throw this exception all the way out and - // let the developer handle it in another way. We will decrement too. - if ($this->causedByDeadlock($e) && - $this->transactions > 1) { - $this->transactions--; - - throw $e; - } - - // If there was an exception we will rollback this transaction and then we - // can check if we have exceeded the maximum attempt count for this and - // if we haven't we will return and try this query again in our loop. - $this->rollBack(); - - if ($this->causedByDeadlock($e) && - $currentAttempt < $maxAttempts) { - return; - } - - throw $e; - } - - /** - * Start a new database transaction. - * - * @return void - * @throws \Exception - */ - public function beginTransaction() - { - $this->createTransaction(); - - $this->transactions++; - - $this->fireConnectionEvent('beganTransaction'); - } - - /** - * Create a transaction within the database. - * - * @return void - */ - protected function createTransaction() - { - if ($this->transactions == 0) { - try { - $this->getPdo()->beginTransaction(); - } catch (Exception $e) { - $this->handleBeginTransactionException($e); - } - } elseif ($this->transactions >= 1 && $this->queryGrammar->supportsSavepoints()) { - $this->createSavepoint(); - } - } - - /** - * Create a save point within the database. - * - * @return void - */ - protected function createSavepoint() - { - $this->getPdo()->exec( - $this->queryGrammar->compileSavepoint('trans'.($this->transactions + 1)) - ); - } - - /** - * Handle an exception from a transaction beginning. - * - * @param \Exception $e - * @return void - * - * @throws \Exception - */ - protected function handleBeginTransactionException($e) - { - if ($this->causedByLostConnection($e)) { - $this->reconnect(); - - $this->pdo->beginTransaction(); - } else { - throw $e; - } - } - - /** - * Commit the active database transaction. - * - * @return void - */ - public function commit() - { - if ($this->transactions == 1) { - $this->getPdo()->commit(); - } - - $this->transactions = max(0, $this->transactions - 1); - - $this->fireConnectionEvent('committed'); - } - - /** - * Rollback the active database transaction. - * - * @param int|null $toLevel - * @return void - */ - public function rollBack($toLevel = null) - { - // We allow developers to rollback to a certain transaction level. We will verify - // that this given transaction level is valid before attempting to rollback to - // that level. If it's not we will just return out and not attempt anything. - $toLevel = is_null($toLevel) - ? $this->transactions - 1 - : $toLevel; - - if ($toLevel < 0 || $toLevel >= $this->transactions) { - return; - } - - // Next, we will actually perform this rollback within this database and fire the - // rollback event. We will also set the current transaction level to the given - // level that was passed into this method so it will be right from here out. - $this->performRollBack($toLevel); - - $this->transactions = $toLevel; - - $this->fireConnectionEvent('rollingBack'); - } - - /** - * Perform a rollback within the database. - * - * @param int $toLevel - * @return void - */ - protected function performRollBack($toLevel) - { - if ($toLevel == 0) { - $this->getPdo()->rollBack(); - } elseif ($this->queryGrammar->supportsSavepoints()) { - $this->getPdo()->exec( - $this->queryGrammar->compileSavepointRollBack('trans'.($toLevel + 1)) - ); - } - } - - /** - * Get the number of active transactions. - * - * @return int - */ - public function transactionLevel() - { - return $this->transactions; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connection.php b/vendor/laravel/framework/src/Illuminate/Database/Connection.php deleted file mode 100755 index a55776c6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connection.php +++ /dev/null @@ -1,1238 +0,0 @@ -pdo = $pdo; - - // First we will setup the default properties. We keep track of the DB - // name we are connected to since it is needed when some reflective - // type commands are run such as checking whether a table exists. - $this->database = $database; - - $this->tablePrefix = $tablePrefix; - - $this->config = $config; - - // We need to initialize a query grammar and the query post processors - // which are both very important parts of the database abstractions - // so we initialize these to their default values while starting. - $this->useDefaultQueryGrammar(); - - $this->useDefaultPostProcessor(); - } - - /** - * Set the query grammar to the default implementation. - * - * @return void - */ - public function useDefaultQueryGrammar() - { - $this->queryGrammar = $this->getDefaultQueryGrammar(); - } - - /** - * Get the default query grammar instance. - * - * @return \Illuminate\Database\Query\Grammars\Grammar - */ - protected function getDefaultQueryGrammar() - { - return new QueryGrammar; - } - - /** - * Set the schema grammar to the default implementation. - * - * @return void - */ - public function useDefaultSchemaGrammar() - { - $this->schemaGrammar = $this->getDefaultSchemaGrammar(); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\Grammar - */ - protected function getDefaultSchemaGrammar() - { - // - } - - /** - * Set the query post processor to the default implementation. - * - * @return void - */ - public function useDefaultPostProcessor() - { - $this->postProcessor = $this->getDefaultPostProcessor(); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\Processor - */ - protected function getDefaultPostProcessor() - { - return new Processor; - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\Builder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new SchemaBuilder($this); - } - - /** - * Begin a fluent query against a database table. - * - * @param string $table - * @return \Illuminate\Database\Query\Builder - */ - public function table($table) - { - return $this->query()->from($table); - } - - /** - * Get a new query builder instance. - * - * @return \Illuminate\Database\Query\Builder - */ - public function query() - { - return new QueryBuilder( - $this, $this->getQueryGrammar(), $this->getPostProcessor() - ); - } - - /** - * Run a select statement and return a single result. - * - * @param string $query - * @param array $bindings - * @param bool $useReadPdo - * @return mixed - */ - public function selectOne($query, $bindings = [], $useReadPdo = true) - { - $records = $this->select($query, $bindings, $useReadPdo); - - return array_shift($records); - } - - /** - * Run a select statement against the database. - * - * @param string $query - * @param array $bindings - * @return array - */ - public function selectFromWriteConnection($query, $bindings = []) - { - return $this->select($query, $bindings, false); - } - - /** - * Run a select statement against the database. - * - * @param string $query - * @param array $bindings - * @param bool $useReadPdo - * @return array - */ - public function select($query, $bindings = [], $useReadPdo = true) - { - return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) { - if ($this->pretending()) { - return []; - } - - // For select statements, we'll simply execute the query and return an array - // of the database result set. Each element in the array will be a single - // row from the database table, and will either be an array or objects. - $statement = $this->prepared($this->getPdoForSelect($useReadPdo) - ->prepare($query)); - - $this->bindValues($statement, $this->prepareBindings($bindings)); - - $statement->execute(); - - return $statement->fetchAll(); - }); - } - - /** - * Run a select statement against the database and returns a generator. - * - * @param string $query - * @param array $bindings - * @param bool $useReadPdo - * @return \Generator - */ - public function cursor($query, $bindings = [], $useReadPdo = true) - { - $statement = $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) { - if ($this->pretending()) { - return []; - } - - // First we will create a statement for the query. Then, we will set the fetch - // mode and prepare the bindings for the query. Once that's done we will be - // ready to execute the query against the database and return the cursor. - $statement = $this->prepared($this->getPdoForSelect($useReadPdo) - ->prepare($query)); - - $this->bindValues( - $statement, $this->prepareBindings($bindings) - ); - - // Next, we'll execute the query against the database and return the statement - // so we can return the cursor. The cursor will use a PHP generator to give - // back one row at a time without using a bunch of memory to render them. - $statement->execute(); - - return $statement; - }); - - while ($record = $statement->fetch()) { - yield $record; - } - } - - /** - * Configure the PDO prepared statement. - * - * @param \PDOStatement $statement - * @return \PDOStatement - */ - protected function prepared(PDOStatement $statement) - { - $statement->setFetchMode($this->fetchMode); - - $this->event(new Events\StatementPrepared( - $this, $statement - )); - - return $statement; - } - - /** - * Get the PDO connection to use for a select query. - * - * @param bool $useReadPdo - * @return \PDO - */ - protected function getPdoForSelect($useReadPdo = true) - { - return $useReadPdo ? $this->getReadPdo() : $this->getPdo(); - } - - /** - * Run an insert statement against the database. - * - * @param string $query - * @param array $bindings - * @return bool - */ - public function insert($query, $bindings = []) - { - return $this->statement($query, $bindings); - } - - /** - * Run an update statement against the database. - * - * @param string $query - * @param array $bindings - * @return int - */ - public function update($query, $bindings = []) - { - return $this->affectingStatement($query, $bindings); - } - - /** - * Run a delete statement against the database. - * - * @param string $query - * @param array $bindings - * @return int - */ - public function delete($query, $bindings = []) - { - return $this->affectingStatement($query, $bindings); - } - - /** - * Execute an SQL statement and return the boolean result. - * - * @param string $query - * @param array $bindings - * @return bool - */ - public function statement($query, $bindings = []) - { - return $this->run($query, $bindings, function ($query, $bindings) { - if ($this->pretending()) { - return true; - } - - $statement = $this->getPdo()->prepare($query); - - $this->bindValues($statement, $this->prepareBindings($bindings)); - - $this->recordsHaveBeenModified(); - - return $statement->execute(); - }); - } - - /** - * Run an SQL statement and get the number of rows affected. - * - * @param string $query - * @param array $bindings - * @return int - */ - public function affectingStatement($query, $bindings = []) - { - return $this->run($query, $bindings, function ($query, $bindings) { - if ($this->pretending()) { - return 0; - } - - // For update or delete statements, we want to get the number of rows affected - // by the statement and return that back to the developer. We'll first need - // to execute the statement and then we'll use PDO to fetch the affected. - $statement = $this->getPdo()->prepare($query); - - $this->bindValues($statement, $this->prepareBindings($bindings)); - - $statement->execute(); - - $this->recordsHaveBeenModified( - ($count = $statement->rowCount()) > 0 - ); - - return $count; - }); - } - - /** - * Run a raw, unprepared query against the PDO connection. - * - * @param string $query - * @return bool - */ - public function unprepared($query) - { - return $this->run($query, [], function ($query) { - if ($this->pretending()) { - return true; - } - - $this->recordsHaveBeenModified( - $change = ($this->getPdo()->exec($query) === false ? false : true) - ); - - return $change; - }); - } - - /** - * Execute the given callback in "dry run" mode. - * - * @param \Closure $callback - * @return array - */ - public function pretend(Closure $callback) - { - return $this->withFreshQueryLog(function () use ($callback) { - $this->pretending = true; - - // Basically to make the database connection "pretend", we will just return - // the default values for all the query methods, then we will return an - // array of queries that were "executed" within the Closure callback. - $callback($this); - - $this->pretending = false; - - return $this->queryLog; - }); - } - - /** - * Execute the given callback in "dry run" mode. - * - * @param \Closure $callback - * @return array - */ - protected function withFreshQueryLog($callback) - { - $loggingQueries = $this->loggingQueries; - - // First we will back up the value of the logging queries property and then - // we'll be ready to run callbacks. This query log will also get cleared - // so we will have a new log of all the queries that are executed now. - $this->enableQueryLog(); - - $this->queryLog = []; - - // Now we'll execute this callback and capture the result. Once it has been - // executed we will restore the value of query logging and give back the - // value of hte callback so the original callers can have the results. - $result = $callback(); - - $this->loggingQueries = $loggingQueries; - - return $result; - } - - /** - * Bind values to their parameters in the given statement. - * - * @param \PDOStatement $statement - * @param array $bindings - * @return void - */ - public function bindValues($statement, $bindings) - { - foreach ($bindings as $key => $value) { - $statement->bindValue( - is_string($key) ? $key : $key + 1, $value, - is_int($value) ? PDO::PARAM_INT : PDO::PARAM_STR - ); - } - } - - /** - * Prepare the query bindings for execution. - * - * @param array $bindings - * @return array - */ - public function prepareBindings(array $bindings) - { - $grammar = $this->getQueryGrammar(); - - foreach ($bindings as $key => $value) { - // We need to transform all instances of DateTimeInterface into the actual - // date string. Each query grammar maintains its own date string format - // so we'll just ask the grammar for the format to get from the date. - if ($value instanceof DateTimeInterface) { - $bindings[$key] = $value->format($grammar->getDateFormat()); - } elseif (is_bool($value)) { - $bindings[$key] = (int) $value; - } - } - - return $bindings; - } - - /** - * Run a SQL statement and log its execution context. - * - * @param string $query - * @param array $bindings - * @param \Closure $callback - * @return mixed - * - * @throws \Illuminate\Database\QueryException - */ - protected function run($query, $bindings, Closure $callback) - { - $this->reconnectIfMissingConnection(); - - $start = microtime(true); - - // Here we will run this query. If an exception occurs we'll determine if it was - // caused by a connection that has been lost. If that is the cause, we'll try - // to re-establish connection and re-run the query with a fresh connection. - try { - $result = $this->runQueryCallback($query, $bindings, $callback); - } catch (QueryException $e) { - $result = $this->handleQueryException( - $e, $query, $bindings, $callback - ); - } - - // Once we have run the query we will calculate the time that it took to run and - // then log the query, bindings, and execution time so we will report them on - // the event that the developer needs them. We'll log time in milliseconds. - $this->logQuery( - $query, $bindings, $this->getElapsedTime($start) - ); - - return $result; - } - - /** - * Run a SQL statement. - * - * @param string $query - * @param array $bindings - * @param \Closure $callback - * @return mixed - * - * @throws \Illuminate\Database\QueryException - */ - protected function runQueryCallback($query, $bindings, Closure $callback) - { - // To execute the statement, we'll simply call the callback, which will actually - // run the SQL against the PDO connection. Then we can calculate the time it - // took to execute and log the query SQL, bindings and time in our memory. - try { - $result = $callback($query, $bindings); - } - - // If an exception occurs when attempting to run a query, we'll format the error - // message to include the bindings with SQL, which will make this exception a - // lot more helpful to the developer instead of just the database's errors. - catch (Exception $e) { - throw new QueryException( - $query, $this->prepareBindings($bindings), $e - ); - } - - return $result; - } - - /** - * Log a query in the connection's query log. - * - * @param string $query - * @param array $bindings - * @param float|null $time - * @return void - */ - public function logQuery($query, $bindings, $time = null) - { - $this->event(new QueryExecuted($query, $bindings, $time, $this)); - - if ($this->loggingQueries) { - $this->queryLog[] = compact('query', 'bindings', 'time'); - } - } - - /** - * Get the elapsed time since a given starting point. - * - * @param int $start - * @return float - */ - protected function getElapsedTime($start) - { - return round((microtime(true) - $start) * 1000, 2); - } - - /** - * Handle a query exception. - * - * @param \Exception $e - * @param string $query - * @param array $bindings - * @param \Closure $callback - * @return mixed - * @throws \Exception - */ - protected function handleQueryException($e, $query, $bindings, Closure $callback) - { - if ($this->transactions >= 1) { - throw $e; - } - - return $this->tryAgainIfCausedByLostConnection( - $e, $query, $bindings, $callback - ); - } - - /** - * Handle a query exception that occurred during query execution. - * - * @param \Illuminate\Database\QueryException $e - * @param string $query - * @param array $bindings - * @param \Closure $callback - * @return mixed - * - * @throws \Illuminate\Database\QueryException - */ - protected function tryAgainIfCausedByLostConnection(QueryException $e, $query, $bindings, Closure $callback) - { - if ($this->causedByLostConnection($e->getPrevious())) { - $this->reconnect(); - - return $this->runQueryCallback($query, $bindings, $callback); - } - - throw $e; - } - - /** - * Reconnect to the database. - * - * @return void - * - * @throws \LogicException - */ - public function reconnect() - { - if (is_callable($this->reconnector)) { - return call_user_func($this->reconnector, $this); - } - - throw new LogicException('Lost connection and no reconnector available.'); - } - - /** - * Reconnect to the database if a PDO connection is missing. - * - * @return void - */ - protected function reconnectIfMissingConnection() - { - if (is_null($this->pdo)) { - $this->reconnect(); - } - } - - /** - * Disconnect from the underlying PDO connection. - * - * @return void - */ - public function disconnect() - { - $this->setPdo(null)->setReadPdo(null); - } - - /** - * Register a database query listener with the connection. - * - * @param \Closure $callback - * @return void - */ - public function listen(Closure $callback) - { - if (isset($this->events)) { - $this->events->listen(Events\QueryExecuted::class, $callback); - } - } - - /** - * Fire an event for this connection. - * - * @param string $event - * @return array|null - */ - protected function fireConnectionEvent($event) - { - if (! isset($this->events)) { - return; - } - - switch ($event) { - case 'beganTransaction': - return $this->events->dispatch(new Events\TransactionBeginning($this)); - case 'committed': - return $this->events->dispatch(new Events\TransactionCommitted($this)); - case 'rollingBack': - return $this->events->dispatch(new Events\TransactionRolledBack($this)); - } - } - - /** - * Fire the given event if possible. - * - * @param mixed $event - * @return void - */ - protected function event($event) - { - if (isset($this->events)) { - $this->events->dispatch($event); - } - } - - /** - * Get a new raw query expression. - * - * @param mixed $value - * @return \Illuminate\Database\Query\Expression - */ - public function raw($value) - { - return new Expression($value); - } - - /** - * Indicate if any records have been modified. - * - * @param bool $value - * @return void - */ - public function recordsHaveBeenModified($value = true) - { - if (! $this->recordsModified) { - $this->recordsModified = $value; - } - } - - /** - * Is Doctrine available? - * - * @return bool - */ - public function isDoctrineAvailable() - { - return class_exists('Doctrine\DBAL\Connection'); - } - - /** - * Get a Doctrine Schema Column instance. - * - * @param string $table - * @param string $column - * @return \Doctrine\DBAL\Schema\Column - */ - public function getDoctrineColumn($table, $column) - { - $schema = $this->getDoctrineSchemaManager(); - - return $schema->listTableDetails($table)->getColumn($column); - } - - /** - * Get the Doctrine DBAL schema manager for the connection. - * - * @return \Doctrine\DBAL\Schema\AbstractSchemaManager - */ - public function getDoctrineSchemaManager() - { - return $this->getDoctrineDriver()->getSchemaManager($this->getDoctrineConnection()); - } - - /** - * Get the Doctrine DBAL database connection instance. - * - * @return \Doctrine\DBAL\Connection - */ - public function getDoctrineConnection() - { - if (is_null($this->doctrineConnection)) { - $driver = $this->getDoctrineDriver(); - - $this->doctrineConnection = new DoctrineConnection([ - 'pdo' => $this->getPdo(), - 'dbname' => $this->getConfig('database'), - 'driver' => $driver->getName(), - ], $driver); - } - - return $this->doctrineConnection; - } - - /** - * Get the current PDO connection. - * - * @return \PDO - */ - public function getPdo() - { - if ($this->pdo instanceof Closure) { - return $this->pdo = call_user_func($this->pdo); - } - - return $this->pdo; - } - - /** - * Get the current PDO connection used for reading. - * - * @return \PDO - */ - public function getReadPdo() - { - if ($this->transactions > 0) { - return $this->getPdo(); - } - - if ($this->getConfig('sticky') && $this->recordsModified) { - return $this->getPdo(); - } - - if ($this->readPdo instanceof Closure) { - return $this->readPdo = call_user_func($this->readPdo); - } - - return $this->readPdo ?: $this->getPdo(); - } - - /** - * Set the PDO connection. - * - * @param \PDO|\Closure|null $pdo - * @return $this - */ - public function setPdo($pdo) - { - $this->transactions = 0; - - $this->pdo = $pdo; - - return $this; - } - - /** - * Set the PDO connection used for reading. - * - * @param \PDO||\Closure|null $pdo - * @return $this - */ - public function setReadPdo($pdo) - { - $this->readPdo = $pdo; - - return $this; - } - - /** - * Set the reconnect instance on the connection. - * - * @param callable $reconnector - * @return $this - */ - public function setReconnector(callable $reconnector) - { - $this->reconnector = $reconnector; - - return $this; - } - - /** - * Get the database connection name. - * - * @return string|null - */ - public function getName() - { - return $this->getConfig('name'); - } - - /** - * Get an option from the configuration options. - * - * @param string|null $option - * @return mixed - */ - public function getConfig($option = null) - { - return Arr::get($this->config, $option); - } - - /** - * Get the PDO driver name. - * - * @return string - */ - public function getDriverName() - { - return $this->getConfig('driver'); - } - - /** - * Get the query grammar used by the connection. - * - * @return \Illuminate\Database\Query\Grammars\Grammar - */ - public function getQueryGrammar() - { - return $this->queryGrammar; - } - - /** - * Set the query grammar used by the connection. - * - * @param \Illuminate\Database\Query\Grammars\Grammar $grammar - * @return void - */ - public function setQueryGrammar(Query\Grammars\Grammar $grammar) - { - $this->queryGrammar = $grammar; - } - - /** - * Get the schema grammar used by the connection. - * - * @return \Illuminate\Database\Schema\Grammars\Grammar - */ - public function getSchemaGrammar() - { - return $this->schemaGrammar; - } - - /** - * Set the schema grammar used by the connection. - * - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return void - */ - public function setSchemaGrammar(Schema\Grammars\Grammar $grammar) - { - $this->schemaGrammar = $grammar; - } - - /** - * Get the query post processor used by the connection. - * - * @return \Illuminate\Database\Query\Processors\Processor - */ - public function getPostProcessor() - { - return $this->postProcessor; - } - - /** - * Set the query post processor used by the connection. - * - * @param \Illuminate\Database\Query\Processors\Processor $processor - * @return void - */ - public function setPostProcessor(Processor $processor) - { - $this->postProcessor = $processor; - } - - /** - * Get the event dispatcher used by the connection. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public function getEventDispatcher() - { - return $this->events; - } - - /** - * Set the event dispatcher instance on the connection. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function setEventDispatcher(Dispatcher $events) - { - $this->events = $events; - } - - /** - * Determine if the connection in a "dry run". - * - * @return bool - */ - public function pretending() - { - return $this->pretending === true; - } - - /** - * Get the connection query log. - * - * @return array - */ - public function getQueryLog() - { - return $this->queryLog; - } - - /** - * Clear the query log. - * - * @return void - */ - public function flushQueryLog() - { - $this->queryLog = []; - } - - /** - * Enable the query log on the connection. - * - * @return void - */ - public function enableQueryLog() - { - $this->loggingQueries = true; - } - - /** - * Disable the query log on the connection. - * - * @return void - */ - public function disableQueryLog() - { - $this->loggingQueries = false; - } - - /** - * Determine whether we're logging queries. - * - * @return bool - */ - public function logging() - { - return $this->loggingQueries; - } - - /** - * Get the name of the connected database. - * - * @return string - */ - public function getDatabaseName() - { - return $this->database; - } - - /** - * Set the name of the connected database. - * - * @param string $database - * @return string - */ - public function setDatabaseName($database) - { - $this->database = $database; - } - - /** - * Get the table prefix for the connection. - * - * @return string - */ - public function getTablePrefix() - { - return $this->tablePrefix; - } - - /** - * Set the table prefix in use by the connection. - * - * @param string $prefix - * @return void - */ - public function setTablePrefix($prefix) - { - $this->tablePrefix = $prefix; - - $this->getQueryGrammar()->setTablePrefix($prefix); - } - - /** - * Set the table prefix and return the grammar. - * - * @param \Illuminate\Database\Grammar $grammar - * @return \Illuminate\Database\Grammar - */ - public function withTablePrefix(Grammar $grammar) - { - $grammar->setTablePrefix($this->tablePrefix); - - return $grammar; - } - - /** - * Register a connection resolver. - * - * @param string $driver - * @param \Closure $callback - * @return void - */ - public static function resolverFor($driver, Closure $callback) - { - static::$resolvers[$driver] = $callback; - } - - /** - * Get the connection resolver for the given driver. - * - * @param string $driver - * @return mixed - */ - public static function getResolver($driver) - { - return static::$resolvers[$driver] ?? null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php b/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php deleted file mode 100755 index 9262d6fd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php +++ /dev/null @@ -1,150 +0,0 @@ - $connection) { - $this->addConnection($name, $connection); - } - } - - /** - * Get a database connection instance. - * - * @param string $name - * @return \Illuminate\Database\ConnectionInterface - */ - public function connection($name = null) - { - if (is_null($name)) { - $name = $this->getDefaultConnection(); - } - - return $this->connections[$name]; - } - - /** - * Add a connection to the resolver. - * - * @param string $name - * @param \Illuminate\Database\ConnectionInterface $connection - * @return void - */ - public function addConnection($name, ConnectionInterface $connection) - { - $this->connections[$name] = $connection; - } - - /** - * Check if a connection has been registered. - * - * @param string $name - * @return bool - */ - public function hasConnection($name) - { - return isset($this->connections[$name]); - } - - /** - * Get the default connection name. - * - * @return string - */ - public function getDefaultConnection() - { - return $this->default; - } - - /** - * Set the default connection name. - * - * @param string $name - * @return void - */ - public function setDefaultConnection($name) - { - $this->default = $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php b/vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php deleted file mode 100755 index eb0397a5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php +++ /dev/null @@ -1,29 +0,0 @@ -container = $container; - } - - /** - * Establish a PDO connection based on the configuration. - * - * @param array $config - * @param string $name - * @return \Illuminate\Database\Connection - */ - public function make(array $config, $name = null) - { - $config = $this->parseConfig($config, $name); - - if (isset($config['read'])) { - return $this->createReadWriteConnection($config); - } - - return $this->createSingleConnection($config); - } - - /** - * Parse and prepare the database configuration. - * - * @param array $config - * @param string $name - * @return array - */ - protected function parseConfig(array $config, $name) - { - return Arr::add(Arr::add($config, 'prefix', ''), 'name', $name); - } - - /** - * Create a single database connection instance. - * - * @param array $config - * @return \Illuminate\Database\Connection - */ - protected function createSingleConnection(array $config) - { - $pdo = $this->createPdoResolver($config); - - return $this->createConnection( - $config['driver'], $pdo, $config['database'], $config['prefix'], $config - ); - } - - /** - * Create a single database connection instance. - * - * @param array $config - * @return \Illuminate\Database\Connection - */ - protected function createReadWriteConnection(array $config) - { - $connection = $this->createSingleConnection($this->getWriteConfig($config)); - - return $connection->setReadPdo($this->createReadPdo($config)); - } - - /** - * Create a new PDO instance for reading. - * - * @param array $config - * @return \Closure - */ - protected function createReadPdo(array $config) - { - return $this->createPdoResolver($this->getReadConfig($config)); - } - - /** - * Get the read configuration for a read / write connection. - * - * @param array $config - * @return array - */ - protected function getReadConfig(array $config) - { - return $this->mergeReadWriteConfig( - $config, $this->getReadWriteConfig($config, 'read') - ); - } - - /** - * Get the read configuration for a read / write connection. - * - * @param array $config - * @return array - */ - protected function getWriteConfig(array $config) - { - return $this->mergeReadWriteConfig( - $config, $this->getReadWriteConfig($config, 'write') - ); - } - - /** - * Get a read / write level configuration. - * - * @param array $config - * @param string $type - * @return array - */ - protected function getReadWriteConfig(array $config, $type) - { - return isset($config[$type][0]) - ? Arr::random($config[$type]) - : $config[$type]; - } - - /** - * Merge a configuration for a read / write connection. - * - * @param array $config - * @param array $merge - * @return array - */ - protected function mergeReadWriteConfig(array $config, array $merge) - { - return Arr::except(array_merge($config, $merge), ['read', 'write']); - } - - /** - * Create a new Closure that resolves to a PDO instance. - * - * @param array $config - * @return \Closure - */ - protected function createPdoResolver(array $config) - { - return array_key_exists('host', $config) - ? $this->createPdoResolverWithHosts($config) - : $this->createPdoResolverWithoutHosts($config); - } - - /** - * Create a new Closure that resolves to a PDO instance with a specific host or an array of hosts. - * - * @param array $config - * @return \Closure - */ - protected function createPdoResolverWithHosts(array $config) - { - return function () use ($config) { - foreach (Arr::shuffle($hosts = $this->parseHosts($config)) as $key => $host) { - $config['host'] = $host; - - try { - return $this->createConnector($config)->connect($config); - } catch (PDOException $e) { - if (count($hosts) - 1 === $key && $this->container->bound(ExceptionHandler::class)) { - $this->container->make(ExceptionHandler::class)->report($e); - } - } - } - - throw $e; - }; - } - - /** - * Parse the hosts configuration item into an array. - * - * @param array $config - * @return array - */ - protected function parseHosts(array $config) - { - $hosts = Arr::wrap($config['host']); - - if (empty($hosts)) { - throw new InvalidArgumentException('Database hosts array is empty.'); - } - - return $hosts; - } - - /** - * Create a new Closure that resolves to a PDO instance where there is no configured host. - * - * @param array $config - * @return \Closure - */ - protected function createPdoResolverWithoutHosts(array $config) - { - return function () use ($config) { - return $this->createConnector($config)->connect($config); - }; - } - - /** - * Create a connector instance based on the configuration. - * - * @param array $config - * @return \Illuminate\Database\Connectors\ConnectorInterface - * - * @throws \InvalidArgumentException - */ - public function createConnector(array $config) - { - if (! isset($config['driver'])) { - throw new InvalidArgumentException('A driver must be specified.'); - } - - if ($this->container->bound($key = "db.connector.{$config['driver']}")) { - return $this->container->make($key); - } - - switch ($config['driver']) { - case 'mysql': - return new MySqlConnector; - case 'pgsql': - return new PostgresConnector; - case 'sqlite': - return new SQLiteConnector; - case 'sqlsrv': - return new SqlServerConnector; - } - - throw new InvalidArgumentException("Unsupported driver [{$config['driver']}]"); - } - - /** - * Create a new connection instance. - * - * @param string $driver - * @param \PDO|\Closure $connection - * @param string $database - * @param string $prefix - * @param array $config - * @return \Illuminate\Database\Connection - * - * @throws \InvalidArgumentException - */ - protected function createConnection($driver, $connection, $database, $prefix = '', array $config = []) - { - if ($resolver = Connection::getResolver($driver)) { - return $resolver($connection, $database, $prefix, $config); - } - - switch ($driver) { - case 'mysql': - return new MySqlConnection($connection, $database, $prefix, $config); - case 'pgsql': - return new PostgresConnection($connection, $database, $prefix, $config); - case 'sqlite': - return new SQLiteConnection($connection, $database, $prefix, $config); - case 'sqlsrv': - return new SqlServerConnection($connection, $database, $prefix, $config); - } - - throw new InvalidArgumentException("Unsupported driver [$driver]"); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php deleted file mode 100755 index b772f521..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php +++ /dev/null @@ -1,136 +0,0 @@ - PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - PDO::ATTR_EMULATE_PREPARES => false, - ]; - - /** - * Create a new PDO connection. - * - * @param string $dsn - * @param array $config - * @param array $options - * @return \PDO - */ - public function createConnection($dsn, array $config, array $options) - { - list($username, $password) = [ - $config['username'] ?? null, $config['password'] ?? null, - ]; - - try { - return $this->createPdoConnection( - $dsn, $username, $password, $options - ); - } catch (Exception $e) { - return $this->tryAgainIfCausedByLostConnection( - $e, $dsn, $username, $password, $options - ); - } - } - - /** - * Create a new PDO connection instance. - * - * @param string $dsn - * @param string $username - * @param string $password - * @param array $options - * @return \PDO - */ - protected function createPdoConnection($dsn, $username, $password, $options) - { - if (class_exists(PDOConnection::class) && ! $this->isPersistentConnection($options)) { - return new PDOConnection($dsn, $username, $password, $options); - } - - return new PDO($dsn, $username, $password, $options); - } - - /** - * Determine if the connection is persistent. - * - * @param array $options - * @return bool - */ - protected function isPersistentConnection($options) - { - return isset($options[PDO::ATTR_PERSISTENT]) && - $options[PDO::ATTR_PERSISTENT]; - } - - /** - * Handle an exception that occurred during connect execution. - * - * @param \Exception $e - * @param string $dsn - * @param string $username - * @param string $password - * @param array $options - * @return \PDO - * - * @throws \Exception - */ - protected function tryAgainIfCausedByLostConnection(Exception $e, $dsn, $username, $password, $options) - { - if ($this->causedByLostConnection($e)) { - return $this->createPdoConnection($dsn, $username, $password, $options); - } - - throw $e; - } - - /** - * Get the PDO options based on the configuration. - * - * @param array $config - * @return array - */ - public function getOptions(array $config) - { - $options = $config['options'] ?? []; - - return array_diff_key($this->options, $options) + $options; - } - - /** - * Get the default PDO connection options. - * - * @return array - */ - public function getDefaultOptions() - { - return $this->options; - } - - /** - * Set the default PDO connection options. - * - * @param array $options - * @return void - */ - public function setDefaultOptions(array $options) - { - $this->options = $options; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php deleted file mode 100755 index 08597ac0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -getDsn($config); - - $options = $this->getOptions($config); - - // We need to grab the PDO options that should be used while making the brand - // new connection instance. The PDO options control various aspects of the - // connection's behavior, and some might be specified by the developers. - $connection = $this->createConnection($dsn, $config, $options); - - if (! empty($config['database'])) { - $connection->exec("use `{$config['database']}`;"); - } - - $this->configureEncoding($connection, $config); - - // Next, we will check to see if a timezone has been specified in this config - // and if it has we will issue a statement to modify the timezone with the - // database. Setting this DB timezone is an optional configuration item. - $this->configureTimezone($connection, $config); - - $this->setModes($connection, $config); - - return $connection; - } - - /** - * Set the connection character set and collation. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureEncoding($connection, array $config) - { - if (! isset($config['charset'])) { - return $connection; - } - - $connection->prepare( - "set names '{$config['charset']}'".$this->getCollation($config) - )->execute(); - } - - /** - * Get the collation for the configuration. - * - * @param array $config - * @return string - */ - protected function getCollation(array $config) - { - return isset($config['collation']) ? " collate '{$config['collation']}'" : ''; - } - - /** - * Set the timezone on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureTimezone($connection, array $config) - { - if (isset($config['timezone'])) { - $connection->prepare('set time_zone="'.$config['timezone'].'"')->execute(); - } - } - - /** - * Create a DSN string from a configuration. - * - * Chooses socket or host/port based on the 'unix_socket' config value. - * - * @param array $config - * @return string - */ - protected function getDsn(array $config) - { - return $this->hasSocket($config) - ? $this->getSocketDsn($config) - : $this->getHostDsn($config); - } - - /** - * Determine if the given configuration array has a UNIX socket value. - * - * @param array $config - * @return bool - */ - protected function hasSocket(array $config) - { - return isset($config['unix_socket']) && ! empty($config['unix_socket']); - } - - /** - * Get the DSN string for a socket configuration. - * - * @param array $config - * @return string - */ - protected function getSocketDsn(array $config) - { - return "mysql:unix_socket={$config['unix_socket']};dbname={$config['database']}"; - } - - /** - * Get the DSN string for a host / port configuration. - * - * @param array $config - * @return string - */ - protected function getHostDsn(array $config) - { - extract($config, EXTR_SKIP); - - return isset($port) - ? "mysql:host={$host};port={$port};dbname={$database}" - : "mysql:host={$host};dbname={$database}"; - } - - /** - * Set the modes for the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function setModes(PDO $connection, array $config) - { - if (isset($config['modes'])) { - $this->setCustomModes($connection, $config); - } elseif (isset($config['strict'])) { - if ($config['strict']) { - $connection->prepare($this->strictMode())->execute(); - } else { - $connection->prepare("set session sql_mode='NO_ENGINE_SUBSTITUTION'")->execute(); - } - } - } - - /** - * Set the custom modes on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function setCustomModes(PDO $connection, array $config) - { - $modes = implode(',', $config['modes']); - - $connection->prepare("set session sql_mode='{$modes}'")->execute(); - } - - /** - * Get the query to enable strict mode. - * - * @return string - */ - protected function strictMode() - { - return "set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php deleted file mode 100755 index 5129b4b4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php +++ /dev/null @@ -1,174 +0,0 @@ - PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - ]; - - /** - * Establish a database connection. - * - * @param array $config - * @return \PDO - */ - public function connect(array $config) - { - // First we'll create the basic DSN and connection instance connecting to the - // using the configuration option specified by the developer. We will also - // set the default character set on the connections to UTF-8 by default. - $connection = $this->createConnection( - $this->getDsn($config), $config, $this->getOptions($config) - ); - - $this->configureEncoding($connection, $config); - - // Next, we will check to see if a timezone has been specified in this config - // and if it has we will issue a statement to modify the timezone with the - // database. Setting this DB timezone is an optional configuration item. - $this->configureTimezone($connection, $config); - - $this->configureSchema($connection, $config); - - // Postgres allows an application_name to be set by the user and this name is - // used to when monitoring the application with pg_stat_activity. So we'll - // determine if the option has been specified and run a statement if so. - $this->configureApplicationName($connection, $config); - - return $connection; - } - - /** - * Set the connection character set and collation. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureEncoding($connection, $config) - { - $charset = $config['charset']; - - $connection->prepare("set names '$charset'")->execute(); - } - - /** - * Set the timezone on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureTimezone($connection, array $config) - { - if (isset($config['timezone'])) { - $timezone = $config['timezone']; - - $connection->prepare("set time zone '{$timezone}'")->execute(); - } - } - - /** - * Set the schema on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureSchema($connection, $config) - { - if (isset($config['schema'])) { - $schema = $this->formatSchema($config['schema']); - - $connection->prepare("set search_path to {$schema}")->execute(); - } - } - - /** - * Format the schema for the DSN. - * - * @param array|string $schema - * @return string - */ - protected function formatSchema($schema) - { - if (is_array($schema)) { - return '"'.implode('", "', $schema).'"'; - } - - return '"'.$schema.'"'; - } - - /** - * Set the schema on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureApplicationName($connection, $config) - { - if (isset($config['application_name'])) { - $applicationName = $config['application_name']; - - $connection->prepare("set application_name to '$applicationName'")->execute(); - } - } - - /** - * Create a DSN string from a configuration. - * - * @param array $config - * @return string - */ - protected function getDsn(array $config) - { - // First we will create the basic DSN setup as well as the port if it is in - // in the configuration options. This will give us the basic DSN we will - // need to establish the PDO connections and return them back for use. - extract($config, EXTR_SKIP); - - $host = isset($host) ? "host={$host};" : ''; - - $dsn = "pgsql:{$host}dbname={$database}"; - - // If a port was specified, we will add it to this Postgres DSN connections - // format. Once we have done that we are ready to return this connection - // string back out for usage, as this has been fully constructed here. - if (isset($config['port'])) { - $dsn .= ";port={$port}"; - } - - return $this->addSslOptions($dsn, $config); - } - - /** - * Add the SSL options to the DSN. - * - * @param string $dsn - * @param array $config - * @return string - */ - protected function addSslOptions($dsn, array $config) - { - foreach (['sslmode', 'sslcert', 'sslkey', 'sslrootcert'] as $option) { - if (isset($config[$option])) { - $dsn .= ";{$option}={$config[$option]}"; - } - } - - return $dsn; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php deleted file mode 100755 index 28f90915..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php +++ /dev/null @@ -1,39 +0,0 @@ -getOptions($config); - - // SQLite supports "in-memory" databases that only last as long as the owning - // connection does. These are useful for tests or for short lifetime store - // querying. In-memory databases may only have a single open connection. - if ($config['database'] == ':memory:') { - return $this->createConnection('sqlite::memory:', $config, $options); - } - - $path = realpath($config['database']); - - // Here we'll verify that the SQLite database exists before going any further - // as the developer probably wants to know if the database exists and this - // SQLite driver will not throw any exception if it does not by default. - if ($path === false) { - throw new InvalidArgumentException("Database (${config['database']}) does not exist."); - } - - return $this->createConnection("sqlite:{$path}", $config, $options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php deleted file mode 100755 index 87525d12..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php +++ /dev/null @@ -1,183 +0,0 @@ - PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - ]; - - /** - * Establish a database connection. - * - * @param array $config - * @return \PDO - */ - public function connect(array $config) - { - $options = $this->getOptions($config); - - return $this->createConnection($this->getDsn($config), $config, $options); - } - - /** - * Create a DSN string from a configuration. - * - * @param array $config - * @return string - */ - protected function getDsn(array $config) - { - // First we will create the basic DSN setup as well as the port if it is in - // in the configuration options. This will give us the basic DSN we will - // need to establish the PDO connections and return them back for use. - if (in_array('dblib', $this->getAvailableDrivers())) { - return $this->getDblibDsn($config); - } elseif ($this->prefersOdbc($config)) { - return $this->getOdbcDsn($config); - } - - return $this->getSqlSrvDsn($config); - } - - /** - * Determine if the database configuration prefers ODBC. - * - * @param array $config - * @return bool - */ - protected function prefersOdbc(array $config) - { - return in_array('odbc', $this->getAvailableDrivers()) && - ($config['odbc'] ?? null) === true; - } - - /** - * Get the DSN string for a DbLib connection. - * - * @param array $config - * @return string - */ - protected function getDblibDsn(array $config) - { - return $this->buildConnectString('dblib', array_merge([ - 'host' => $this->buildHostString($config, ':'), - 'dbname' => $config['database'], - ], Arr::only($config, ['appname', 'charset', 'version']))); - } - - /** - * Get the DSN string for an ODBC connection. - * - * @param array $config - * @return string - */ - protected function getOdbcDsn(array $config) - { - return isset($config['odbc_datasource_name']) - ? 'odbc:'.$config['odbc_datasource_name'] : ''; - } - - /** - * Get the DSN string for a SqlSrv connection. - * - * @param array $config - * @return string - */ - protected function getSqlSrvDsn(array $config) - { - $arguments = [ - 'Server' => $this->buildHostString($config, ','), - ]; - - if (isset($config['database'])) { - $arguments['Database'] = $config['database']; - } - - if (isset($config['readonly'])) { - $arguments['ApplicationIntent'] = 'ReadOnly'; - } - - if (isset($config['pooling']) && $config['pooling'] === false) { - $arguments['ConnectionPooling'] = '0'; - } - - if (isset($config['appname'])) { - $arguments['APP'] = $config['appname']; - } - - if (isset($config['encrypt'])) { - $arguments['Encrypt'] = $config['encrypt']; - } - - if (isset($config['trust_server_certificate'])) { - $arguments['TrustServerCertificate'] = $config['trust_server_certificate']; - } - - if (isset($config['multiple_active_result_sets']) && $config['multiple_active_result_sets'] === false) { - $arguments['MultipleActiveResultSets'] = 'false'; - } - - if (isset($config['transaction_isolation'])) { - $arguments['TransactionIsolation'] = $config['transaction_isolation']; - } - - if (isset($config['multi_subnet_failover'])) { - $arguments['MultiSubnetFailover'] = $config['multi_subnet_failover']; - } - - return $this->buildConnectString('sqlsrv', $arguments); - } - - /** - * Build a connection string from the given arguments. - * - * @param string $driver - * @param array $arguments - * @return string - */ - protected function buildConnectString($driver, array $arguments) - { - return $driver.':'.implode(';', array_map(function ($key) use ($arguments) { - return sprintf('%s=%s', $key, $arguments[$key]); - }, array_keys($arguments))); - } - - /** - * Build a host string from the given configuration. - * - * @param array $config - * @param string $separator - * @return string - */ - protected function buildHostString(array $config, $separator) - { - if (isset($config['port']) && ! empty($config['port'])) { - return $config['host'].$separator.$config['port']; - } else { - return $config['host']; - } - } - - /** - * Get the available PDO drivers. - * - * @return array - */ - protected function getAvailableDrivers() - { - return PDO::getAvailableDrivers(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php deleted file mode 100644 index 86341594..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php +++ /dev/null @@ -1,84 +0,0 @@ -option('model') - ? $this->qualifyClass($this->option('model')) - : 'Model'; - - return str_replace( - 'DummyModel', $model, parent::buildClass($name) - ); - } - - /** - * Get the destination class path. - * - * @param string $name - * @return string - */ - protected function getPath($name) - { - $name = str_replace( - ['\\', '/'], '', $this->argument('name') - ); - - return $this->laravel->databasePath()."/factories/{$name}.php"; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['model', 'm', InputOption::VALUE_OPTIONAL, 'The name of the model'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub b/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub deleted file mode 100644 index 9e3f90b6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub +++ /dev/null @@ -1,9 +0,0 @@ -define(DummyModel::class, function (Faker $faker) { - return [ - // - ]; -}); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php deleted file mode 100755 index 81ca3cc7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php +++ /dev/null @@ -1,39 +0,0 @@ -input->hasOption('path') && $this->option('path')) { - return collect($this->option('path'))->map(function ($path) { - return $this->laravel->basePath().'/'.$path; - })->all(); - } - - return array_merge( - [$this->getMigrationPath()], $this->migrator->paths() - ); - } - - /** - * Get the path to the migration directory. - * - * @return string - */ - protected function getMigrationPath() - { - return $this->laravel->databasePath().DIRECTORY_SEPARATOR.'migrations'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php deleted file mode 100644 index a9779a79..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php +++ /dev/null @@ -1,112 +0,0 @@ -confirmToProceed()) { - return; - } - - $this->dropAllTables( - $database = $this->input->getOption('database') - ); - - $this->info('Dropped all tables successfully.'); - - $this->call('migrate', [ - '--database' => $database, - '--path' => $this->input->getOption('path'), - '--force' => true, - ]); - - if ($this->needsSeeding()) { - $this->runSeeder($database); - } - } - - /** - * Drop all of the database tables. - * - * @param string $database - * @return void - */ - protected function dropAllTables($database) - { - $this->laravel['db']->connection($database) - ->getSchemaBuilder() - ->dropAllTables(); - } - - /** - * Determine if the developer has requested database seeding. - * - * @return bool - */ - protected function needsSeeding() - { - return $this->option('seed') || $this->option('seeder'); - } - - /** - * Run the database seeder command. - * - * @param string $database - * @return void - */ - protected function runSeeder($database) - { - $this->call('db:seed', [ - '--database' => $database, - '--class' => $this->option('seeder') ?: 'DatabaseSeeder', - '--force' => $this->option('force'), - ]); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'The path of migrations files to be executed.'], - - ['seed', null, InputOption::VALUE_NONE, 'Indicates if the seed task should be re-run.'], - - ['seeder', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php deleted file mode 100755 index d9200240..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php +++ /dev/null @@ -1,70 +0,0 @@ -repository = $repository; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->repository->setSource($this->input->getOption('database')); - - $this->repository->createRepository(); - - $this->info('Migration table created successfully.'); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php deleted file mode 100755 index 12fe90af..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php +++ /dev/null @@ -1,102 +0,0 @@ -migrator = $migrator; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (! $this->confirmToProceed()) { - return; - } - - $this->prepareDatabase(); - - // Next, we will check to see if a path option has been defined. If it has - // we will use the path relative to the root of this installation folder - // so that migrations may be run for any path within the applications. - $this->migrator->run($this->getMigrationPaths(), [ - 'pretend' => $this->option('pretend'), - 'step' => $this->option('step'), - ]); - - // Once the migrator has run we will grab the note output and send it out to - // the console screen, since the migrator itself functions without having - // any instances of the OutputInterface contract passed into the class. - foreach ($this->migrator->getNotes() as $note) { - $this->output->writeln($note); - } - - // Finally, if the "seed" option has been given, we will re-run the database - // seed task to re-populate the database, which is convenient when adding - // a migration and a seed at the same time, as it is only this command. - if ($this->option('seed')) { - $this->call('db:seed', ['--force' => true]); - } - } - - /** - * Prepare the migration database for running. - * - * @return void - */ - protected function prepareDatabase() - { - $this->migrator->setConnection($this->option('database')); - - if (! $this->migrator->repositoryExists()) { - $this->call( - 'migrate:install', ['--database' => $this->option('database')] - ); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php deleted file mode 100644 index 03995de9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php +++ /dev/null @@ -1,131 +0,0 @@ -creator = $creator; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - // It's possible for the developer to specify the tables to modify in this - // schema operation. The developer may also specify if this table needs - // to be freshly created so we can create the appropriate migrations. - $name = Str::snake(trim($this->input->getArgument('name'))); - - $table = $this->input->getOption('table'); - - $create = $this->input->getOption('create') ?: false; - - // If no table was given as an option but a create option is given then we - // will use the "create" option as the table name. This allows the devs - // to pass a table name into this option as a short-cut for creating. - if (! $table && is_string($create)) { - $table = $create; - - $create = true; - } - - // Next, we will attempt to guess the table name if this the migration has - // "create" in the name. This will allow us to provide a convenient way - // of creating migrations that create new tables for the application. - if (! $table) { - if (preg_match('/^create_(\w+)_table$/', $name, $matches)) { - $table = $matches[1]; - - $create = true; - } - } - - // Now we are ready to write the migration out to disk. Once we've written - // the migration out, we will dump-autoload for the entire framework to - // make sure that the migrations are registered by the class loaders. - $this->writeMigration($name, $table, $create); - - $this->composer->dumpAutoloads(); - } - - /** - * Write the migration file to disk. - * - * @param string $name - * @param string $table - * @param bool $create - * @return string - */ - protected function writeMigration($name, $table, $create) - { - $file = pathinfo($this->creator->create( - $name, $this->getMigrationPath(), $table, $create - ), PATHINFO_FILENAME); - - $this->line("Created Migration: {$file}"); - } - - /** - * Get migration path (either specified by '--path' option or default location). - * - * @return string - */ - protected function getMigrationPath() - { - if (! is_null($targetPath = $this->input->getOption('path'))) { - return $this->laravel->basePath().'/'.$targetPath; - } - - return parent::getMigrationPath(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php deleted file mode 100755 index dc89091c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php +++ /dev/null @@ -1,154 +0,0 @@ -confirmToProceed()) { - return; - } - - // Next we'll gather some of the options so that we can have the right options - // to pass to the commands. This includes options such as which database to - // use and the path to use for the migration. Then we'll run the command. - $database = $this->input->getOption('database'); - - $path = $this->input->getOption('path'); - - $force = $this->input->getOption('force'); - - // If the "step" option is specified it means we only want to rollback a small - // number of migrations before migrating again. For example, the user might - // only rollback and remigrate the latest four migrations instead of all. - $step = $this->input->getOption('step') ?: 0; - - if ($step > 0) { - $this->runRollback($database, $path, $step, $force); - } else { - $this->runReset($database, $path, $force); - } - - // The refresh command is essentially just a brief aggregate of a few other of - // the migration commands and just provides a convenient wrapper to execute - // them in succession. We'll also see if we need to re-seed the database. - $this->call('migrate', [ - '--database' => $database, - '--path' => $path, - '--force' => $force, - ]); - - if ($this->needsSeeding()) { - $this->runSeeder($database); - } - } - - /** - * Run the rollback command. - * - * @param string $database - * @param string $path - * @param bool $step - * @param bool $force - * @return void - */ - protected function runRollback($database, $path, $step, $force) - { - $this->call('migrate:rollback', [ - '--database' => $database, - '--path' => $path, - '--step' => $step, - '--force' => $force, - ]); - } - - /** - * Run the reset command. - * - * @param string $database - * @param string $path - * @param bool $force - * @return void - */ - protected function runReset($database, $path, $force) - { - $this->call('migrate:reset', [ - '--database' => $database, - '--path' => $path, - '--force' => $force, - ]); - } - - /** - * Determine if the developer has requested database seeding. - * - * @return bool - */ - protected function needsSeeding() - { - return $this->option('seed') || $this->option('seeder'); - } - - /** - * Run the database seeder command. - * - * @param string $database - * @return void - */ - protected function runSeeder($database) - { - $this->call('db:seed', [ - '--database' => $database, - '--class' => $this->option('seeder') ?: 'DatabaseSeeder', - '--force' => $this->option('force'), - ]); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'The path of migrations files to be executed.'], - - ['seed', null, InputOption::VALUE_NONE, 'Indicates if the seed task should be re-run.'], - - ['seeder', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder.'], - - ['step', null, InputOption::VALUE_OPTIONAL, 'The number of migrations to be reverted & re-run.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php deleted file mode 100755 index c2efdfa6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php +++ /dev/null @@ -1,96 +0,0 @@ -migrator = $migrator; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (! $this->confirmToProceed()) { - return; - } - - $this->migrator->setConnection($this->option('database')); - - // First, we'll make sure that the migration table actually exists before we - // start trying to rollback and re-run all of the migrations. If it's not - // present we'll just bail out with an info message for the developers. - if (! $this->migrator->repositoryExists()) { - return $this->comment('Migration table not found.'); - } - - $this->migrator->reset( - $this->getMigrationPaths(), $this->option('pretend') - ); - - // Once the migrator has run we will grab the note output and send it out to - // the console screen, since the migrator itself functions without having - // any instances of the OutputInterface contract passed into the class. - foreach ($this->migrator->getNotes() as $note) { - $this->output->writeln($note); - } - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - - ['path', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The path(s) of migrations files to be executed.'], - - ['pretend', null, InputOption::VALUE_NONE, 'Dump the SQL queries that would be run.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php deleted file mode 100755 index 3315d643..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php +++ /dev/null @@ -1,94 +0,0 @@ -migrator = $migrator; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (! $this->confirmToProceed()) { - return; - } - - $this->migrator->setConnection($this->option('database')); - - $this->migrator->rollback( - $this->getMigrationPaths(), [ - 'pretend' => $this->option('pretend'), - 'step' => (int) $this->option('step'), - ] - ); - - // Once the migrator has run we will grab the note output and send it out to - // the console screen, since the migrator itself functions without having - // any instances of the OutputInterface contract passed into the class. - foreach ($this->migrator->getNotes() as $note) { - $this->output->writeln($note); - } - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'The path of migrations files to be executed.'], - - ['pretend', null, InputOption::VALUE_NONE, 'Dump the SQL queries that would be run.'], - - ['step', null, InputOption::VALUE_OPTIONAL, 'The number of migrations to be reverted.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php deleted file mode 100644 index df065423..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php +++ /dev/null @@ -1,108 +0,0 @@ -migrator = $migrator; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->migrator->setConnection($this->option('database')); - - if (! $this->migrator->repositoryExists()) { - return $this->error('No migrations found.'); - } - - $ran = $this->migrator->getRepository()->getRan(); - - if (count($migrations = $this->getStatusFor($ran)) > 0) { - $this->table(['Ran?', 'Migration'], $migrations); - } else { - $this->error('No migrations found'); - } - } - - /** - * Get the status for the given ran migrations. - * - * @param array $ran - * @return \Illuminate\Support\Collection - */ - protected function getStatusFor(array $ran) - { - return Collection::make($this->getAllMigrationFiles()) - ->map(function ($migration) use ($ran) { - $migrationName = $this->migrator->getMigrationName($migration); - - return in_array($migrationName, $ran) - ? ['Y', $migrationName] - : ['N', $migrationName]; - }); - } - - /** - * Get an array of all of the migration files. - * - * @return array - */ - protected function getAllMigrationFiles() - { - return $this->migrator->getMigrationFiles($this->getMigrationPaths()); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'The path of migrations files to use.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php deleted file mode 100644 index 24898732..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php +++ /dev/null @@ -1,106 +0,0 @@ -resolver = $resolver; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (! $this->confirmToProceed()) { - return; - } - - $this->resolver->setDefaultConnection($this->getDatabase()); - - Model::unguarded(function () { - $this->getSeeder()->__invoke(); - }); - } - - /** - * Get a seeder instance from the container. - * - * @return \Illuminate\Database\Seeder - */ - protected function getSeeder() - { - $class = $this->laravel->make($this->input->getOption('class')); - - return $class->setContainer($this->laravel)->setCommand($this); - } - - /** - * Get the name of the database connection to use. - * - * @return string - */ - protected function getDatabase() - { - $database = $this->input->getOption('database'); - - return $database ?: $this->laravel['config']['database.default']; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['class', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder', 'DatabaseSeeder'], - - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to seed'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php deleted file mode 100644 index 6e85e3e4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php +++ /dev/null @@ -1,96 +0,0 @@ -composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - parent::handle(); - - $this->composer->dumpAutoloads(); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return __DIR__.'/stubs/seeder.stub'; - } - - /** - * Get the destination class path. - * - * @param string $name - * @return string - */ - protected function getPath($name) - { - return $this->laravel->databasePath().'/seeds/'.$name.'.php'; - } - - /** - * Parse the class name and format according to the root namespace. - * - * @param string $name - * @return string - */ - protected function qualifyClass($name) - { - return $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub b/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub deleted file mode 100644 index 4aa38454..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub +++ /dev/null @@ -1,16 +0,0 @@ -app = $app; - $this->factory = $factory; - } - - /** - * Get a database connection instance. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - public function connection($name = null) - { - list($database, $type) = $this->parseConnectionName($name); - - $name = $name ?: $database; - - // If we haven't created this connection, we'll create it based on the config - // provided in the application. Once we've created the connections we will - // set the "fetch mode" for PDO which determines the query return types. - if (! isset($this->connections[$name])) { - $this->connections[$name] = $this->configure( - $this->makeConnection($database), $type - ); - } - - return $this->connections[$name]; - } - - /** - * Parse the connection into an array of the name and read / write type. - * - * @param string $name - * @return array - */ - protected function parseConnectionName($name) - { - $name = $name ?: $this->getDefaultConnection(); - - return Str::endsWith($name, ['::read', '::write']) - ? explode('::', $name, 2) : [$name, null]; - } - - /** - * Make the database connection instance. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - protected function makeConnection($name) - { - $config = $this->configuration($name); - - // First we will check by the connection name to see if an extension has been - // registered specifically for that connection. If it has we will call the - // Closure and pass it the config allowing it to resolve the connection. - if (isset($this->extensions[$name])) { - return call_user_func($this->extensions[$name], $config, $name); - } - - // Next we will check to see if an extension has been registered for a driver - // and will call the Closure if so, which allows us to have a more generic - // resolver for the drivers themselves which applies to all connections. - if (isset($this->extensions[$driver = $config['driver']])) { - return call_user_func($this->extensions[$driver], $config, $name); - } - - return $this->factory->make($config, $name); - } - - /** - * Get the configuration for a connection. - * - * @param string $name - * @return array - * - * @throws \InvalidArgumentException - */ - protected function configuration($name) - { - $name = $name ?: $this->getDefaultConnection(); - - // To get the database connection configuration, we will just pull each of the - // connection configurations and get the configurations for the given name. - // If the configuration doesn't exist, we'll throw an exception and bail. - $connections = $this->app['config']['database.connections']; - - if (is_null($config = Arr::get($connections, $name))) { - throw new InvalidArgumentException("Database [$name] not configured."); - } - - return $config; - } - - /** - * Prepare the database connection instance. - * - * @param \Illuminate\Database\Connection $connection - * @param string $type - * @return \Illuminate\Database\Connection - */ - protected function configure(Connection $connection, $type) - { - $connection = $this->setPdoForType($connection, $type); - - // First we'll set the fetch mode and a few other dependencies of the database - // connection. This method basically just configures and prepares it to get - // used by the application. Once we're finished we'll return it back out. - if ($this->app->bound('events')) { - $connection->setEventDispatcher($this->app['events']); - } - - // Here we'll set a reconnector callback. This reconnector can be any callable - // so we will set a Closure to reconnect from this manager with the name of - // the connection, which will allow us to reconnect from the connections. - $connection->setReconnector(function ($connection) { - $this->reconnect($connection->getName()); - }); - - return $connection; - } - - /** - * Prepare the read / write mode for database connection instance. - * - * @param \Illuminate\Database\Connection $connection - * @param string $type - * @return \Illuminate\Database\Connection - */ - protected function setPdoForType(Connection $connection, $type = null) - { - if ($type == 'read') { - $connection->setPdo($connection->getReadPdo()); - } elseif ($type == 'write') { - $connection->setReadPdo($connection->getPdo()); - } - - return $connection; - } - - /** - * Disconnect from the given database and remove from local cache. - * - * @param string $name - * @return void - */ - public function purge($name = null) - { - $name = $name ?: $this->getDefaultConnection(); - - $this->disconnect($name); - - unset($this->connections[$name]); - } - - /** - * Disconnect from the given database. - * - * @param string $name - * @return void - */ - public function disconnect($name = null) - { - if (isset($this->connections[$name = $name ?: $this->getDefaultConnection()])) { - $this->connections[$name]->disconnect(); - } - } - - /** - * Reconnect to the given database. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - public function reconnect($name = null) - { - $this->disconnect($name = $name ?: $this->getDefaultConnection()); - - if (! isset($this->connections[$name])) { - return $this->connection($name); - } - - return $this->refreshPdoConnections($name); - } - - /** - * Refresh the PDO connections on a given connection. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - protected function refreshPdoConnections($name) - { - $fresh = $this->makeConnection($name); - - return $this->connections[$name] - ->setPdo($fresh->getPdo()) - ->setReadPdo($fresh->getReadPdo()); - } - - /** - * Get the default connection name. - * - * @return string - */ - public function getDefaultConnection() - { - return $this->app['config']['database.default']; - } - - /** - * Set the default connection name. - * - * @param string $name - * @return void - */ - public function setDefaultConnection($name) - { - $this->app['config']['database.default'] = $name; - } - - /** - * Get all of the support drivers. - * - * @return array - */ - public function supportedDrivers() - { - return ['mysql', 'pgsql', 'sqlite', 'sqlsrv']; - } - - /** - * Get all of the drivers that are actually available. - * - * @return array - */ - public function availableDrivers() - { - return array_intersect( - $this->supportedDrivers(), - str_replace('dblib', 'sqlsrv', PDO::getAvailableDrivers()) - ); - } - - /** - * Register an extension connection resolver. - * - * @param string $name - * @param callable $resolver - * @return void - */ - public function extend($name, callable $resolver) - { - $this->extensions[$name] = $resolver; - } - - /** - * Return all of the created connections. - * - * @return array - */ - public function getConnections() - { - return $this->connections; - } - - /** - * Dynamically pass methods to the default connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->connection()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php deleted file mode 100755 index a8ee7b03..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php +++ /dev/null @@ -1,99 +0,0 @@ -app['db']); - - Model::setEventDispatcher($this->app['events']); - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - Model::clearBootedModels(); - - $this->registerConnectionServices(); - - $this->registerEloquentFactory(); - - $this->registerQueueableEntityResolver(); - } - - /** - * Register the primary database bindings. - * - * @return void - */ - protected function registerConnectionServices() - { - // The connection factory is used to create the actual connection instances on - // the database. We will inject the factory into the manager so that it may - // make the connections while they are actually needed and not of before. - $this->app->singleton('db.factory', function ($app) { - return new ConnectionFactory($app); - }); - - // The database manager is used to resolve various connections, since multiple - // connections might be managed. It also implements the connection resolver - // interface which may be used by other components requiring connections. - $this->app->singleton('db', function ($app) { - return new DatabaseManager($app, $app['db.factory']); - }); - - $this->app->bind('db.connection', function ($app) { - return $app['db']->connection(); - }); - } - - /** - * Register the Eloquent factory instance in the container. - * - * @return void - */ - protected function registerEloquentFactory() - { - $this->app->singleton(FakerGenerator::class, function ($app) { - return FakerFactory::create($app['config']->get('app.faker_locale', 'en_US')); - }); - - $this->app->singleton(EloquentFactory::class, function ($app) { - return EloquentFactory::construct( - $app->make(FakerGenerator::class), $this->app->databasePath('factories') - ); - }); - } - - /** - * Register the queueable entity resolver implementation. - * - * @return void - */ - protected function registerQueueableEntityResolver() - { - $this->app->singleton(EntityResolver::class, function () { - return new QueueEntityResolver; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php b/vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php deleted file mode 100644 index a8193eeb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php +++ /dev/null @@ -1,32 +0,0 @@ -getMessage(); - - return Str::contains($message, [ - 'Deadlock found when trying to get lock', - 'deadlock detected', - 'The database file is locked', - 'database is locked', - 'database table is locked', - 'A table in the database is locked', - 'has been chosen as the deadlock victim', - 'Lock wait timeout exceeded; try restarting transaction', - 'WSREP detected deadlock/conflict and aborted the transaction. Try restarting the transaction', - ]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php b/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php deleted file mode 100644 index d2e1878f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php +++ /dev/null @@ -1,37 +0,0 @@ -getMessage(); - - return Str::contains($message, [ - 'server has gone away', - 'no connection to the server', - 'Lost connection', - 'is dead or not enabled', - 'Error while sending', - 'decryption failed or bad record mac', - 'server closed the connection unexpectedly', - 'SSL connection has been closed unexpectedly', - 'Error writing data to the connection', - 'Resource deadlock avoided', - 'Transaction() on null', - 'child connection forced to terminate due to client_idle_limit', - 'query_wait_timeout', - 'reset by peer', - ]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php deleted file mode 100755 index 6dab7476..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php +++ /dev/null @@ -1,1326 +0,0 @@ -query = $query; - } - - /** - * Create and return an un-saved model instance. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function make(array $attributes = []) - { - return $this->newModelInstance($attributes); - } - - /** - * Register a new global scope. - * - * @param string $identifier - * @param \Illuminate\Database\Eloquent\Scope|\Closure $scope - * @return $this - */ - public function withGlobalScope($identifier, $scope) - { - $this->scopes[$identifier] = $scope; - - if (method_exists($scope, 'extend')) { - $scope->extend($this); - } - - return $this; - } - - /** - * Remove a registered global scope. - * - * @param \Illuminate\Database\Eloquent\Scope|string $scope - * @return $this - */ - public function withoutGlobalScope($scope) - { - if (! is_string($scope)) { - $scope = get_class($scope); - } - - unset($this->scopes[$scope]); - - $this->removedScopes[] = $scope; - - return $this; - } - - /** - * Remove all or passed registered global scopes. - * - * @param array|null $scopes - * @return $this - */ - public function withoutGlobalScopes(array $scopes = null) - { - if (is_array($scopes)) { - foreach ($scopes as $scope) { - $this->withoutGlobalScope($scope); - } - } else { - $this->scopes = []; - } - - return $this; - } - - /** - * Get an array of global scopes that were removed from the query. - * - * @return array - */ - public function removedScopes() - { - return $this->removedScopes; - } - - /** - * Add a where clause on the primary key to the query. - * - * @param mixed $id - * @return $this - */ - public function whereKey($id) - { - if (is_array($id) || $id instanceof Arrayable) { - $this->query->whereIn($this->model->getQualifiedKeyName(), $id); - - return $this; - } - - return $this->where($this->model->getQualifiedKeyName(), '=', $id); - } - - /** - * Add a where clause on the primary key to the query. - * - * @param mixed $id - * @return $this - */ - public function whereKeyNot($id) - { - if (is_array($id) || $id instanceof Arrayable) { - $this->query->whereNotIn($this->model->getQualifiedKeyName(), $id); - - return $this; - } - - return $this->where($this->model->getQualifiedKeyName(), '!=', $id); - } - - /** - * Add a basic where clause to the query. - * - * @param string|array|\Closure $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return $this - */ - public function where($column, $operator = null, $value = null, $boolean = 'and') - { - if ($column instanceof Closure) { - $query = $this->model->newQueryWithoutScopes(); - - $column($query); - - $this->query->addNestedWhereQuery($query->getQuery(), $boolean); - } else { - $this->query->where(...func_get_args()); - } - - return $this; - } - - /** - * Add an "or where" clause to the query. - * - * @param \Closure|array|string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orWhere($column, $operator = null, $value = null) - { - return $this->where($column, $operator, $value, 'or'); - } - - /** - * Create a collection of models from plain arrays. - * - * @param array $items - * @return \Illuminate\Database\Eloquent\Collection - */ - public function hydrate(array $items) - { - $instance = $this->newModelInstance(); - - return $instance->newCollection(array_map(function ($item) use ($instance) { - return $instance->newFromBuilder($item); - }, $items)); - } - - /** - * Create a collection of models from a raw query. - * - * @param string $query - * @param array $bindings - * @return \Illuminate\Database\Eloquent\Collection - */ - public function fromQuery($query, $bindings = []) - { - return $this->hydrate( - $this->query->getConnection()->select($query, $bindings) - ); - } - - /** - * Find a model by its primary key. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null - */ - public function find($id, $columns = ['*']) - { - if (is_array($id) || $id instanceof Arrayable) { - return $this->findMany($id, $columns); - } - - return $this->whereKey($id)->first($columns); - } - - /** - * Find multiple models by their primary keys. - * - * @param \Illuminate\Contracts\Support\Arrayable|array $ids - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function findMany($ids, $columns = ['*']) - { - if (empty($ids)) { - return $this->model->newCollection(); - } - - return $this->whereKey($ids)->get($columns); - } - - /** - * Find a model by its primary key or throw an exception. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function findOrFail($id, $columns = ['*']) - { - $result = $this->find($id, $columns); - - if (is_array($id)) { - if (count($result) == count(array_unique($id))) { - return $result; - } - } elseif (! is_null($result)) { - return $result; - } - - throw (new ModelNotFoundException)->setModel( - get_class($this->model), $id - ); - } - - /** - * Find a model by its primary key or return fresh model instance. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model - */ - public function findOrNew($id, $columns = ['*']) - { - if (! is_null($model = $this->find($id, $columns))) { - return $model; - } - - return $this->newModelInstance(); - } - - /** - * Get the first record matching the attributes or instantiate it. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrNew(array $attributes, array $values = []) - { - if (! is_null($instance = $this->where($attributes)->first())) { - return $instance; - } - - return $this->newModelInstance($attributes + $values); - } - - /** - * Get the first record matching the attributes or create it. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrCreate(array $attributes, array $values = []) - { - if (! is_null($instance = $this->where($attributes)->first())) { - return $instance; - } - - return tap($this->newModelInstance($attributes + $values), function ($instance) { - $instance->save(); - }); - } - - /** - * Create or update a record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function updateOrCreate(array $attributes, array $values = []) - { - return tap($this->firstOrNew($attributes), function ($instance) use ($values) { - $instance->fill($values)->save(); - }); - } - - /** - * Execute the query and get the first result or throw an exception. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|static - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function firstOrFail($columns = ['*']) - { - if (! is_null($model = $this->first($columns))) { - return $model; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->model)); - } - - /** - * Execute the query and get the first result or call a callback. - * - * @param \Closure|array $columns - * @param \Closure|null $callback - * @return \Illuminate\Database\Eloquent\Model|static|mixed - */ - public function firstOr($columns = ['*'], Closure $callback = null) - { - if ($columns instanceof Closure) { - $callback = $columns; - - $columns = ['*']; - } - - if (! is_null($model = $this->first($columns))) { - return $model; - } - - return call_user_func($callback); - } - - /** - * Get a single column's value from the first result of a query. - * - * @param string $column - * @return mixed - */ - public function value($column) - { - if ($result = $this->first([$column])) { - return $result->{$column}; - } - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection|static[] - */ - public function get($columns = ['*']) - { - $builder = $this->applyScopes(); - - // If we actually found models we will also eager load any relationships that - // have been specified as needing to be eager loaded, which will solve the - // n+1 query issue for the developers to avoid running a lot of queries. - if (count($models = $builder->getModels($columns)) > 0) { - $models = $builder->eagerLoadRelations($models); - } - - return $builder->getModel()->newCollection($models); - } - - /** - * Get the hydrated models without eager loading. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model[] - */ - public function getModels($columns = ['*']) - { - return $this->model->hydrate( - $this->query->get($columns)->all() - )->all(); - } - - /** - * Eager load the relationships for the models. - * - * @param array $models - * @return array - */ - public function eagerLoadRelations(array $models) - { - foreach ($this->eagerLoad as $name => $constraints) { - // For nested eager loads we'll skip loading them here and they will be set as an - // eager load on the query to retrieve the relation so that they will be eager - // loaded on that query, because that is where they get hydrated as models. - if (strpos($name, '.') === false) { - $models = $this->eagerLoadRelation($models, $name, $constraints); - } - } - - return $models; - } - - /** - * Eagerly load the relationship on a set of models. - * - * @param array $models - * @param string $name - * @param \Closure $constraints - * @return array - */ - protected function eagerLoadRelation(array $models, $name, Closure $constraints) - { - // First we will "back up" the existing where conditions on the query so we can - // add our eager constraints. Then we will merge the wheres that were on the - // query back to it in order that any where conditions might be specified. - $relation = $this->getRelation($name); - - $relation->addEagerConstraints($models); - - $constraints($relation); - - // Once we have the results, we just match those back up to their parent models - // using the relationship instance. Then we just return the finished arrays - // of models which have been eagerly hydrated and are readied for return. - return $relation->match( - $relation->initRelation($models, $name), - $relation->getEager(), $name - ); - } - - /** - * Get the relation instance for the given relation name. - * - * @param string $name - * @return \Illuminate\Database\Eloquent\Relations\Relation - */ - public function getRelation($name) - { - // We want to run a relationship query without any constrains so that we will - // not have to remove these where clauses manually which gets really hacky - // and error prone. We don't want constraints because we add eager ones. - $relation = Relation::noConstraints(function () use ($name) { - try { - return $this->getModel()->{$name}(); - } catch (BadMethodCallException $e) { - throw RelationNotFoundException::make($this->getModel(), $name); - } - }); - - $nested = $this->relationsNestedUnder($name); - - // If there are nested relationships set on the query, we will put those onto - // the query instances so that they can be handled after this relationship - // is loaded. In this way they will all trickle down as they are loaded. - if (count($nested) > 0) { - $relation->getQuery()->with($nested); - } - - return $relation; - } - - /** - * Get the deeply nested relations for a given top-level relation. - * - * @param string $relation - * @return array - */ - protected function relationsNestedUnder($relation) - { - $nested = []; - - // We are basically looking for any relationships that are nested deeper than - // the given top-level relationship. We will just check for any relations - // that start with the given top relations and adds them to our arrays. - foreach ($this->eagerLoad as $name => $constraints) { - if ($this->isNestedUnder($relation, $name)) { - $nested[substr($name, strlen($relation.'.'))] = $constraints; - } - } - - return $nested; - } - - /** - * Determine if the relationship is nested. - * - * @param string $relation - * @param string $name - * @return bool - */ - protected function isNestedUnder($relation, $name) - { - return Str::contains($name, '.') && Str::startsWith($name, $relation.'.'); - } - - /** - * Get a generator for the given query. - * - * @return \Generator - */ - public function cursor() - { - foreach ($this->applyScopes()->query->cursor() as $record) { - yield $this->model->newFromBuilder($record); - } - } - - /** - * Chunk the results of a query by comparing numeric IDs. - * - * @param int $count - * @param callable $callback - * @param string $column - * @param string|null $alias - * @return bool - */ - public function chunkById($count, callable $callback, $column = null, $alias = null) - { - $column = is_null($column) ? $this->getModel()->getKeyName() : $column; - - $alias = is_null($alias) ? $column : $alias; - - $lastId = 0; - - do { - $clone = clone $this; - - // We'll execute the query for the given page and get the results. If there are - // no results we can just break and return from here. When there are results - // we will call the callback with the current chunk of these results here. - $results = $clone->forPageAfterId($count, $lastId, $column)->get(); - - $countResults = $results->count(); - - if ($countResults == 0) { - break; - } - - // On each chunk result set, we will pass them to the callback and then let the - // developer take care of everything within the callback, which allows us to - // keep the memory low for spinning through large result sets for working. - if ($callback($results) === false) { - return false; - } - - $lastId = $results->last()->{$alias}; - - unset($results); - } while ($countResults == $count); - - return true; - } - - /** - * Add a generic "order by" clause if the query doesn't already have one. - * - * @return void - */ - protected function enforceOrderBy() - { - if (empty($this->query->orders) && empty($this->query->unionOrders)) { - $this->orderBy($this->model->getQualifiedKeyName(), 'asc'); - } - } - - /** - * Get an array with the values of a given column. - * - * @param string $column - * @param string|null $key - * @return \Illuminate\Support\Collection - */ - public function pluck($column, $key = null) - { - $results = $this->toBase()->pluck($column, $key); - - // If the model has a mutator for the requested column, we will spin through - // the results and mutate the values so that the mutated version of these - // columns are returned as you would expect from these Eloquent models. - if (! $this->model->hasGetMutator($column) && - ! $this->model->hasCast($column) && - ! in_array($column, $this->model->getDates())) { - return $results; - } - - return $results->map(function ($value) use ($column) { - return $this->model->newFromBuilder([$column => $value])->{$column}; - }); - } - - /** - * Paginate the given query. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - * - * @throws \InvalidArgumentException - */ - public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $page = $page ?: Paginator::resolveCurrentPage($pageName); - - $perPage = $perPage ?: $this->model->getPerPage(); - - $results = ($total = $this->toBase()->getCountForPagination()) - ? $this->forPage($page, $perPage)->get($columns) - : $this->model->newCollection(); - - return $this->paginator($results, $total, $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), - 'pageName' => $pageName, - ]); - } - - /** - * Paginate the given query into a simple paginator. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - */ - public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $page = $page ?: Paginator::resolveCurrentPage($pageName); - - $perPage = $perPage ?: $this->model->getPerPage(); - - // Next we will set the limit and offset for this query so that when we get the - // results we get the proper section of results. Then, we'll create the full - // paginator instances for these results with the given page and per page. - $this->skip(($page - 1) * $perPage)->take($perPage + 1); - - return $this->simplePaginator($this->get($columns), $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), - 'pageName' => $pageName, - ]); - } - - /** - * Save a new model and return the instance. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model|$this - */ - public function create(array $attributes = []) - { - return tap($this->newModelInstance($attributes), function ($instance) { - $instance->save(); - }); - } - - /** - * Save a new model and return the instance. Allow mass-assignment. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model|$this - */ - public function forceCreate(array $attributes) - { - return $this->model->unguarded(function () use ($attributes) { - return $this->newModelInstance()->create($attributes); - }); - } - - /** - * Update a record in the database. - * - * @param array $values - * @return int - */ - public function update(array $values) - { - return $this->toBase()->update($this->addUpdatedAtColumn($values)); - } - - /** - * Increment a column's value by a given amount. - * - * @param string $column - * @param int $amount - * @param array $extra - * @return int - */ - public function increment($column, $amount = 1, array $extra = []) - { - return $this->toBase()->increment( - $column, $amount, $this->addUpdatedAtColumn($extra) - ); - } - - /** - * Decrement a column's value by a given amount. - * - * @param string $column - * @param int $amount - * @param array $extra - * @return int - */ - public function decrement($column, $amount = 1, array $extra = []) - { - return $this->toBase()->decrement( - $column, $amount, $this->addUpdatedAtColumn($extra) - ); - } - - /** - * Add the "updated at" column to an array of values. - * - * @param array $values - * @return array - */ - protected function addUpdatedAtColumn(array $values) - { - if (! $this->model->usesTimestamps()) { - return $values; - } - - return Arr::add( - $values, $this->model->getUpdatedAtColumn(), - $this->model->freshTimestampString() - ); - } - - /** - * Delete a record from the database. - * - * @return mixed - */ - public function delete() - { - if (isset($this->onDelete)) { - return call_user_func($this->onDelete, $this); - } - - return $this->toBase()->delete(); - } - - /** - * Run the default delete function on the builder. - * - * Since we do not apply scopes here, the row will actually be deleted. - * - * @return mixed - */ - public function forceDelete() - { - return $this->query->delete(); - } - - /** - * Register a replacement for the default delete function. - * - * @param \Closure $callback - * @return void - */ - public function onDelete(Closure $callback) - { - $this->onDelete = $callback; - } - - /** - * Call the given local model scopes. - * - * @param array $scopes - * @return mixed - */ - public function scopes(array $scopes) - { - $builder = $this; - - foreach ($scopes as $scope => $parameters) { - // If the scope key is an integer, then the scope was passed as the value and - // the parameter list is empty, so we will format the scope name and these - // parameters here. Then, we'll be ready to call the scope on the model. - if (is_int($scope)) { - list($scope, $parameters) = [$parameters, []]; - } - - // Next we'll pass the scope callback to the callScope method which will take - // care of grouping the "wheres" properly so the logical order doesn't get - // messed up when adding scopes. Then we'll return back out the builder. - $builder = $builder->callScope( - [$this->model, 'scope'.ucfirst($scope)], - (array) $parameters - ); - } - - return $builder; - } - - /** - * Apply the scopes to the Eloquent builder instance and return it. - * - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function applyScopes() - { - if (! $this->scopes) { - return $this; - } - - $builder = clone $this; - - foreach ($this->scopes as $identifier => $scope) { - if (! isset($builder->scopes[$identifier])) { - continue; - } - - $builder->callScope(function (Builder $builder) use ($scope) { - // If the scope is a Closure we will just go ahead and call the scope with the - // builder instance. The "callScope" method will properly group the clauses - // that are added to this query so "where" clauses maintain proper logic. - if ($scope instanceof Closure) { - $scope($builder); - } - - // If the scope is a scope object, we will call the apply method on this scope - // passing in the builder and the model instance. After we run all of these - // scopes we will return back the builder instance to the outside caller. - if ($scope instanceof Scope) { - $scope->apply($builder, $this->getModel()); - } - }); - } - - return $builder; - } - - /** - * Apply the given scope on the current builder instance. - * - * @param callable $scope - * @param array $parameters - * @return mixed - */ - protected function callScope(callable $scope, $parameters = []) - { - array_unshift($parameters, $this); - - $query = $this->getQuery(); - - // We will keep track of how many wheres are on the query before running the - // scope so that we can properly group the added scope constraints in the - // query as their own isolated nested where statement and avoid issues. - $originalWhereCount = is_null($query->wheres) - ? 0 : count($query->wheres); - - $result = $scope(...array_values($parameters)) ?? $this; - - if (count((array) $query->wheres) > $originalWhereCount) { - $this->addNewWheresWithinGroup($query, $originalWhereCount); - } - - return $result; - } - - /** - * Nest where conditions by slicing them at the given where count. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $originalWhereCount - * @return void - */ - protected function addNewWheresWithinGroup(QueryBuilder $query, $originalWhereCount) - { - // Here, we totally remove all of the where clauses since we are going to - // rebuild them as nested queries by slicing the groups of wheres into - // their own sections. This is to prevent any confusing logic order. - $allWheres = $query->wheres; - - $query->wheres = []; - - $this->groupWhereSliceForScope( - $query, array_slice($allWheres, 0, $originalWhereCount) - ); - - $this->groupWhereSliceForScope( - $query, array_slice($allWheres, $originalWhereCount) - ); - } - - /** - * Slice where conditions at the given offset and add them to the query as a nested condition. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $whereSlice - * @return void - */ - protected function groupWhereSliceForScope(QueryBuilder $query, $whereSlice) - { - $whereBooleans = collect($whereSlice)->pluck('boolean'); - - // Here we'll check if the given subset of where clauses contains any "or" - // booleans and in this case create a nested where expression. That way - // we don't add any unnecessary nesting thus keeping the query clean. - if ($whereBooleans->contains('or')) { - $query->wheres[] = $this->createNestedWhere( - $whereSlice, $whereBooleans->first() - ); - } else { - $query->wheres = array_merge($query->wheres, $whereSlice); - } - } - - /** - * Create a where array with nested where conditions. - * - * @param array $whereSlice - * @param string $boolean - * @return array - */ - protected function createNestedWhere($whereSlice, $boolean = 'and') - { - $whereGroup = $this->getQuery()->forNestedWhere(); - - $whereGroup->wheres = $whereSlice; - - return ['type' => 'Nested', 'query' => $whereGroup, 'boolean' => $boolean]; - } - - /** - * Set the relationships that should be eager loaded. - * - * @param mixed $relations - * @return $this - */ - public function with($relations) - { - $eagerLoad = $this->parseWithRelations(is_string($relations) ? func_get_args() : $relations); - - $this->eagerLoad = array_merge($this->eagerLoad, $eagerLoad); - - return $this; - } - - /** - * Prevent the specified relations from being eager loaded. - * - * @param mixed $relations - * @return $this - */ - public function without($relations) - { - $this->eagerLoad = array_diff_key($this->eagerLoad, array_flip( - is_string($relations) ? func_get_args() : $relations - )); - - return $this; - } - - /** - * Create a new instance of the model being queried. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function newModelInstance($attributes = []) - { - return $this->model->newInstance($attributes)->setConnection( - $this->query->getConnection()->getName() - ); - } - - /** - * Parse a list of relations into individuals. - * - * @param array $relations - * @return array - */ - protected function parseWithRelations(array $relations) - { - $results = []; - - foreach ($relations as $name => $constraints) { - // If the "relation" value is actually a numeric key, we can assume that no - // constraints have been specified for the eager load and we'll just put - // an empty Closure with the loader so that we can treat all the same. - if (is_numeric($name)) { - $name = $constraints; - - list($name, $constraints) = Str::contains($name, ':') - ? $this->createSelectWithConstraint($name) - : [$name, function () { - // - }]; - } - - // We need to separate out any nested includes. Which allows the developers - // to load deep relationships using "dots" without stating each level of - // the relationship with its own key in the array of eager load names. - $results = $this->addNestedWiths($name, $results); - - $results[$name] = $constraints; - } - - return $results; - } - - /** - * Create a constraint to select the given columns for the relation. - * - * @param string $name - * @return array - */ - protected function createSelectWithConstraint($name) - { - return [explode(':', $name)[0], function ($query) use ($name) { - $query->select(explode(',', explode(':', $name)[1])); - }]; - } - - /** - * Parse the nested relationships in a relation. - * - * @param string $name - * @param array $results - * @return array - */ - protected function addNestedWiths($name, $results) - { - $progress = []; - - // If the relation has already been set on the result array, we will not set it - // again, since that would override any constraints that were already placed - // on the relationships. We will only set the ones that are not specified. - foreach (explode('.', $name) as $segment) { - $progress[] = $segment; - - if (! isset($results[$last = implode('.', $progress)])) { - $results[$last] = function () { - // - }; - } - } - - return $results; - } - - /** - * Get the underlying query builder instance. - * - * @return \Illuminate\Database\Query\Builder - */ - public function getQuery() - { - return $this->query; - } - - /** - * Set the underlying query builder instance. - * - * @param \Illuminate\Database\Query\Builder $query - * @return $this - */ - public function setQuery($query) - { - $this->query = $query; - - return $this; - } - - /** - * Get a base query builder instance. - * - * @return \Illuminate\Database\Query\Builder - */ - public function toBase() - { - return $this->applyScopes()->getQuery(); - } - - /** - * Get the relationships being eagerly loaded. - * - * @return array - */ - public function getEagerLoads() - { - return $this->eagerLoad; - } - - /** - * Set the relationships being eagerly loaded. - * - * @param array $eagerLoad - * @return $this - */ - public function setEagerLoads(array $eagerLoad) - { - $this->eagerLoad = $eagerLoad; - - return $this; - } - - /** - * Get the model instance being queried. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function getModel() - { - return $this->model; - } - - /** - * Set a model instance for the model being queried. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return $this - */ - public function setModel(Model $model) - { - $this->model = $model; - - $this->query->from($model->getTable()); - - return $this; - } - - /** - * Qualify the given column name by the model's table. - * - * @param string $column - * @return string - */ - public function qualifyColumn($column) - { - return $this->model->qualifyColumn($column); - } - - /** - * Get the given macro by name. - * - * @param string $name - * @return \Closure - */ - public function getMacro($name) - { - return Arr::get($this->localMacros, $name); - } - - /** - * Dynamically handle calls into the query instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if ($method === 'macro') { - $this->localMacros[$parameters[0]] = $parameters[1]; - - return; - } - - if (isset($this->localMacros[$method])) { - array_unshift($parameters, $this); - - return $this->localMacros[$method](...$parameters); - } - - if (isset(static::$macros[$method])) { - if (static::$macros[$method] instanceof Closure) { - return call_user_func_array(static::$macros[$method]->bindTo($this, static::class), $parameters); - } - - return call_user_func_array(static::$macros[$method], $parameters); - } - - if (method_exists($this->model, $scope = 'scope'.ucfirst($method))) { - return $this->callScope([$this->model, $scope], $parameters); - } - - if (in_array($method, $this->passthru)) { - return $this->toBase()->{$method}(...$parameters); - } - - $this->query->{$method}(...$parameters); - - return $this; - } - - /** - * Dynamically handle calls into the query instance. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public static function __callStatic($method, $parameters) - { - if ($method === 'macro') { - static::$macros[$parameters[0]] = $parameters[1]; - - return; - } - - if (! isset(static::$macros[$method])) { - throw new BadMethodCallException("Method {$method} does not exist."); - } - - if (static::$macros[$method] instanceof Closure) { - return call_user_func_array(Closure::bind(static::$macros[$method], null, static::class), $parameters); - } - - return call_user_func_array(static::$macros[$method], $parameters); - } - - /** - * Force a clone of the underlying query builder when cloning. - * - * @return void - */ - public function __clone() - { - $this->query = clone $this->query; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php deleted file mode 100755 index bb2789a4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php +++ /dev/null @@ -1,440 +0,0 @@ -getKey(); - } - - if ($key instanceof Arrayable) { - $key = $key->toArray(); - } - - if (is_array($key)) { - if ($this->isEmpty()) { - return new static; - } - - return $this->whereIn($this->first()->getKeyName(), $key); - } - - return Arr::first($this->items, function ($model) use ($key) { - return $model->getKey() == $key; - }, $default); - } - - /** - * Load a set of relationships onto the collection. - * - * @param mixed $relations - * @return $this - */ - public function load($relations) - { - if ($this->isNotEmpty()) { - if (is_string($relations)) { - $relations = func_get_args(); - } - - $query = $this->first()->newQueryWithoutRelationships()->with($relations); - - $this->items = $query->eagerLoadRelations($this->items); - } - - return $this; - } - - /** - * Add an item to the collection. - * - * @param mixed $item - * @return $this - */ - public function add($item) - { - $this->items[] = $item; - - return $this; - } - - /** - * Determine if a key exists in the collection. - * - * @param mixed $key - * @param mixed $operator - * @param mixed $value - * @return bool - */ - public function contains($key, $operator = null, $value = null) - { - if (func_num_args() > 1 || $this->useAsCallable($key)) { - return parent::contains(...func_get_args()); - } - - if ($key instanceof Model) { - return parent::contains(function ($model) use ($key) { - return $model->is($key); - }); - } - - return parent::contains(function ($model) use ($key) { - return $model->getKey() == $key; - }); - } - - /** - * Get the array of primary keys. - * - * @return array - */ - public function modelKeys() - { - return array_map(function ($model) { - return $model->getKey(); - }, $this->items); - } - - /** - * Merge the collection with the given items. - * - * @param \ArrayAccess|array $items - * @return static - */ - public function merge($items) - { - $dictionary = $this->getDictionary(); - - foreach ($items as $item) { - $dictionary[$item->getKey()] = $item; - } - - return new static(array_values($dictionary)); - } - - /** - * Run a map over each of the items. - * - * @param callable $callback - * @return \Illuminate\Support\Collection|static - */ - public function map(callable $callback) - { - $result = parent::map($callback); - - return $result->contains(function ($item) { - return ! $item instanceof Model; - }) ? $result->toBase() : $result; - } - - /** - * Reload a fresh model instance from the database for all the entities. - * - * @param array|string $with - * @return static - */ - public function fresh($with = []) - { - if ($this->isEmpty()) { - return new static; - } - - $model = $this->first(); - - $freshModels = $model->newQueryWithoutScopes() - ->with(is_string($with) ? func_get_args() : $with) - ->whereIn($model->getKeyName(), $this->modelKeys()) - ->get() - ->getDictionary(); - - return $this->map(function ($model) use ($freshModels) { - return $model->exists && isset($freshModels[$model->getKey()]) - ? $freshModels[$model->getKey()] : null; - }); - } - - /** - * Diff the collection with the given items. - * - * @param \ArrayAccess|array $items - * @return static - */ - public function diff($items) - { - $diff = new static; - - $dictionary = $this->getDictionary($items); - - foreach ($this->items as $item) { - if (! isset($dictionary[$item->getKey()])) { - $diff->add($item); - } - } - - return $diff; - } - - /** - * Intersect the collection with the given items. - * - * @param \ArrayAccess|array $items - * @return static - */ - public function intersect($items) - { - $intersect = new static; - - $dictionary = $this->getDictionary($items); - - foreach ($this->items as $item) { - if (isset($dictionary[$item->getKey()])) { - $intersect->add($item); - } - } - - return $intersect; - } - - /** - * Return only unique items from the collection. - * - * @param string|callable|null $key - * @param bool $strict - * @return static|\Illuminate\Support\Collection - */ - public function unique($key = null, $strict = false) - { - if (! is_null($key)) { - return parent::unique($key, $strict); - } - - return new static(array_values($this->getDictionary())); - } - - /** - * Returns only the models from the collection with the specified keys. - * - * @param mixed $keys - * @return static - */ - public function only($keys) - { - if (is_null($keys)) { - return new static($this->items); - } - - $dictionary = Arr::only($this->getDictionary(), $keys); - - return new static(array_values($dictionary)); - } - - /** - * Returns all models in the collection except the models with specified keys. - * - * @param mixed $keys - * @return static - */ - public function except($keys) - { - $dictionary = Arr::except($this->getDictionary(), $keys); - - return new static(array_values($dictionary)); - } - - /** - * Make the given, typically visible, attributes hidden across the entire collection. - * - * @param array|string $attributes - * @return $this - */ - public function makeHidden($attributes) - { - return $this->each(function ($model) use ($attributes) { - $model->addHidden($attributes); - }); - } - - /** - * Make the given, typically hidden, attributes visible across the entire collection. - * - * @param array|string $attributes - * @return $this - */ - public function makeVisible($attributes) - { - return $this->each(function ($model) use ($attributes) { - $model->makeVisible($attributes); - }); - } - - /** - * Get a dictionary keyed by primary keys. - * - * @param \ArrayAccess|array|null $items - * @return array - */ - public function getDictionary($items = null) - { - $items = is_null($items) ? $this->items : $items; - - $dictionary = []; - - foreach ($items as $value) { - $dictionary[$value->getKey()] = $value; - } - - return $dictionary; - } - - /** - * The following methods are intercepted to always return base collections. - */ - - /** - * Get an array with the values of a given key. - * - * @param string $value - * @param string|null $key - * @return \Illuminate\Support\Collection - */ - public function pluck($value, $key = null) - { - return $this->toBase()->pluck($value, $key); - } - - /** - * Get the keys of the collection items. - * - * @return \Illuminate\Support\Collection - */ - public function keys() - { - return $this->toBase()->keys(); - } - - /** - * Zip the collection together with one or more arrays. - * - * @param mixed ...$items - * @return \Illuminate\Support\Collection - */ - public function zip($items) - { - return call_user_func_array([$this->toBase(), 'zip'], func_get_args()); - } - - /** - * Collapse the collection of items into a single array. - * - * @return \Illuminate\Support\Collection - */ - public function collapse() - { - return $this->toBase()->collapse(); - } - - /** - * Get a flattened array of the items in the collection. - * - * @param int $depth - * @return \Illuminate\Support\Collection - */ - public function flatten($depth = INF) - { - return $this->toBase()->flatten($depth); - } - - /** - * Flip the items in the collection. - * - * @return \Illuminate\Support\Collection - */ - public function flip() - { - return $this->toBase()->flip(); - } - - /** - * Pad collection to the specified length with a value. - * - * @param int $size - * @param mixed $value - * @return \Illuminate\Support\Collection - */ - public function pad($size, $value) - { - return $this->toBase()->pad($size, $value); - } - - /** - * Get the type of the entities being queued. - * - * @return string|null - * @throws \LogicException - */ - public function getQueueableClass() - { - if ($this->isEmpty()) { - return; - } - - $class = get_class($this->first()); - - $this->each(function ($model) use ($class) { - if (get_class($model) !== $class) { - throw new LogicException('Queueing collections with multiple model types is not supported.'); - } - }); - - return $class; - } - - /** - * Get the identifiers for all of the entities. - * - * @return array - */ - public function getQueueableIds() - { - return $this->modelKeys(); - } - - /** - * Get the connection of the entities being queued. - * - * @return string|null - * @throws \LogicException - */ - public function getQueueableConnection() - { - if ($this->isEmpty()) { - return; - } - - $connection = $this->first()->getConnectionName(); - - $this->each(function ($model) use ($connection) { - if ($model->getConnectionName() !== $connection) { - throw new LogicException('Queueing collections with multiple model connections is not supported.'); - } - }); - - return $connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php deleted file mode 100644 index 96317cf5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php +++ /dev/null @@ -1,193 +0,0 @@ -fillable; - } - - /** - * Set the fillable attributes for the model. - * - * @param array $fillable - * @return $this - */ - public function fillable(array $fillable) - { - $this->fillable = $fillable; - - return $this; - } - - /** - * Get the guarded attributes for the model. - * - * @return array - */ - public function getGuarded() - { - return $this->guarded; - } - - /** - * Set the guarded attributes for the model. - * - * @param array $guarded - * @return $this - */ - public function guard(array $guarded) - { - $this->guarded = $guarded; - - return $this; - } - - /** - * Disable all mass assignable restrictions. - * - * @param bool $state - * @return void - */ - public static function unguard($state = true) - { - static::$unguarded = $state; - } - - /** - * Enable the mass assignment restrictions. - * - * @return void - */ - public static function reguard() - { - static::$unguarded = false; - } - - /** - * Determine if current state is "unguarded". - * - * @return bool - */ - public static function isUnguarded() - { - return static::$unguarded; - } - - /** - * Run the given callable while being unguarded. - * - * @param callable $callback - * @return mixed - */ - public static function unguarded(callable $callback) - { - if (static::$unguarded) { - return $callback(); - } - - static::unguard(); - - try { - return $callback(); - } finally { - static::reguard(); - } - } - - /** - * Determine if the given attribute may be mass assigned. - * - * @param string $key - * @return bool - */ - public function isFillable($key) - { - if (static::$unguarded) { - return true; - } - - // If the key is in the "fillable" array, we can of course assume that it's - // a fillable attribute. Otherwise, we will check the guarded array when - // we need to determine if the attribute is black-listed on the model. - if (in_array($key, $this->getFillable())) { - return true; - } - - // If the attribute is explicitly listed in the "guarded" array then we can - // return false immediately. This means this attribute is definitely not - // fillable and there is no point in going any further in this method. - if ($this->isGuarded($key)) { - return false; - } - - return empty($this->getFillable()) && - ! Str::startsWith($key, '_'); - } - - /** - * Determine if the given key is guarded. - * - * @param string $key - * @return bool - */ - public function isGuarded($key) - { - return in_array($key, $this->getGuarded()) || $this->getGuarded() == ['*']; - } - - /** - * Determine if the model is totally guarded. - * - * @return bool - */ - public function totallyGuarded() - { - return count($this->getFillable()) == 0 && $this->getGuarded() == ['*']; - } - - /** - * Get the fillable attributes of a given array. - * - * @param array $attributes - * @return array - */ - protected function fillableFromArray(array $attributes) - { - if (count($this->getFillable()) > 0 && ! static::$unguarded) { - return array_intersect_key($attributes, array_flip($this->getFillable())); - } - - return $attributes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php deleted file mode 100644 index 2893495c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php +++ /dev/null @@ -1,1141 +0,0 @@ -addDateAttributesToArray( - $attributes = $this->getArrayableAttributes() - ); - - $attributes = $this->addMutatedAttributesToArray( - $attributes, $mutatedAttributes = $this->getMutatedAttributes() - ); - - // Next we will handle any casts that have been setup for this model and cast - // the values to their appropriate type. If the attribute has a mutator we - // will not perform the cast on those attributes to avoid any confusion. - $attributes = $this->addCastAttributesToArray( - $attributes, $mutatedAttributes - ); - - // Here we will grab all of the appended, calculated attributes to this model - // as these attributes are not really in the attributes array, but are run - // when we need to array or JSON the model for convenience to the coder. - foreach ($this->getArrayableAppends() as $key) { - $attributes[$key] = $this->mutateAttributeForArray($key, null); - } - - return $attributes; - } - - /** - * Add the date attributes to the attributes array. - * - * @param array $attributes - * @return array - */ - protected function addDateAttributesToArray(array $attributes) - { - foreach ($this->getDates() as $key) { - if (! isset($attributes[$key])) { - continue; - } - - $attributes[$key] = $this->serializeDate( - $this->asDateTime($attributes[$key]) - ); - } - - return $attributes; - } - - /** - * Add the mutated attributes to the attributes array. - * - * @param array $attributes - * @param array $mutatedAttributes - * @return array - */ - protected function addMutatedAttributesToArray(array $attributes, array $mutatedAttributes) - { - foreach ($mutatedAttributes as $key) { - // We want to spin through all the mutated attributes for this model and call - // the mutator for the attribute. We cache off every mutated attributes so - // we don't have to constantly check on attributes that actually change. - if (! array_key_exists($key, $attributes)) { - continue; - } - - // Next, we will call the mutator for this attribute so that we can get these - // mutated attribute's actual values. After we finish mutating each of the - // attributes we will return this final array of the mutated attributes. - $attributes[$key] = $this->mutateAttributeForArray( - $key, $attributes[$key] - ); - } - - return $attributes; - } - - /** - * Add the casted attributes to the attributes array. - * - * @param array $attributes - * @param array $mutatedAttributes - * @return array - */ - protected function addCastAttributesToArray(array $attributes, array $mutatedAttributes) - { - foreach ($this->getCasts() as $key => $value) { - if (! array_key_exists($key, $attributes) || in_array($key, $mutatedAttributes)) { - continue; - } - - // Here we will cast the attribute. Then, if the cast is a date or datetime cast - // then we will serialize the date for the array. This will convert the dates - // to strings based on the date format specified for these Eloquent models. - $attributes[$key] = $this->castAttribute( - $key, $attributes[$key] - ); - - // If the attribute cast was a date or a datetime, we will serialize the date as - // a string. This allows the developers to customize how dates are serialized - // into an array without affecting how they are persisted into the storage. - if ($attributes[$key] && - ($value === 'date' || $value === 'datetime')) { - $attributes[$key] = $this->serializeDate($attributes[$key]); - } - } - - return $attributes; - } - - /** - * Get an attribute array of all arrayable attributes. - * - * @return array - */ - protected function getArrayableAttributes() - { - return $this->getArrayableItems($this->attributes); - } - - /** - * Get all of the appendable values that are arrayable. - * - * @return array - */ - protected function getArrayableAppends() - { - if (! count($this->appends)) { - return []; - } - - return $this->getArrayableItems( - array_combine($this->appends, $this->appends) - ); - } - - /** - * Get the model's relationships in array form. - * - * @return array - */ - public function relationsToArray() - { - $attributes = []; - - foreach ($this->getArrayableRelations() as $key => $value) { - // If the values implements the Arrayable interface we can just call this - // toArray method on the instances which will convert both models and - // collections to their proper array form and we'll set the values. - if ($value instanceof Arrayable) { - $relation = $value->toArray(); - } - - // If the value is null, we'll still go ahead and set it in this list of - // attributes since null is used to represent empty relationships if - // if it a has one or belongs to type relationships on the models. - elseif (is_null($value)) { - $relation = $value; - } - - // If the relationships snake-casing is enabled, we will snake case this - // key so that the relation attribute is snake cased in this returned - // array to the developers, making this consistent with attributes. - if (static::$snakeAttributes) { - $key = Str::snake($key); - } - - // If the relation value has been set, we will set it on this attributes - // list for returning. If it was not arrayable or null, we'll not set - // the value on the array because it is some type of invalid value. - if (isset($relation) || is_null($value)) { - $attributes[$key] = $relation; - } - - unset($relation); - } - - return $attributes; - } - - /** - * Get an attribute array of all arrayable relations. - * - * @return array - */ - protected function getArrayableRelations() - { - return $this->getArrayableItems($this->relations); - } - - /** - * Get an attribute array of all arrayable values. - * - * @param array $values - * @return array - */ - protected function getArrayableItems(array $values) - { - if (count($this->getVisible()) > 0) { - $values = array_intersect_key($values, array_flip($this->getVisible())); - } - - if (count($this->getHidden()) > 0) { - $values = array_diff_key($values, array_flip($this->getHidden())); - } - - return $values; - } - - /** - * Get an attribute from the model. - * - * @param string $key - * @return mixed - */ - public function getAttribute($key) - { - if (! $key) { - return; - } - - // If the attribute exists in the attribute array or has a "get" mutator we will - // get the attribute's value. Otherwise, we will proceed as if the developers - // are asking for a relationship's value. This covers both types of values. - if (array_key_exists($key, $this->attributes) || - $this->hasGetMutator($key)) { - return $this->getAttributeValue($key); - } - - // Here we will determine if the model base class itself contains this given key - // since we don't want to treat any of those methods as relationships because - // they are all intended as helper methods and none of these are relations. - if (method_exists(self::class, $key)) { - return; - } - - return $this->getRelationValue($key); - } - - /** - * Get a plain attribute (not a relationship). - * - * @param string $key - * @return mixed - */ - public function getAttributeValue($key) - { - $value = $this->getAttributeFromArray($key); - - // If the attribute has a get mutator, we will call that then return what - // it returns as the value, which is useful for transforming values on - // retrieval from the model to a form that is more useful for usage. - if ($this->hasGetMutator($key)) { - return $this->mutateAttribute($key, $value); - } - - // If the attribute exists within the cast array, we will convert it to - // an appropriate native PHP type dependant upon the associated value - // given with the key in the pair. Dayle made this comment line up. - if ($this->hasCast($key)) { - return $this->castAttribute($key, $value); - } - - // If the attribute is listed as a date, we will convert it to a DateTime - // instance on retrieval, which makes it quite convenient to work with - // date fields without having to create a mutator for each property. - if (in_array($key, $this->getDates()) && - ! is_null($value)) { - return $this->asDateTime($value); - } - - return $value; - } - - /** - * Get an attribute from the $attributes array. - * - * @param string $key - * @return mixed - */ - protected function getAttributeFromArray($key) - { - if (isset($this->attributes[$key])) { - return $this->attributes[$key]; - } - } - - /** - * Get a relationship. - * - * @param string $key - * @return mixed - */ - public function getRelationValue($key) - { - // If the key already exists in the relationships array, it just means the - // relationship has already been loaded, so we'll just return it out of - // here because there is no need to query within the relations twice. - if ($this->relationLoaded($key)) { - return $this->relations[$key]; - } - - // If the "attribute" exists as a method on the model, we will just assume - // it is a relationship and will load and return results from the query - // and hydrate the relationship's value on the "relationships" array. - if (method_exists($this, $key)) { - return $this->getRelationshipFromMethod($key); - } - } - - /** - * Get a relationship value from a method. - * - * @param string $method - * @return mixed - * - * @throws \LogicException - */ - protected function getRelationshipFromMethod($method) - { - $relation = $this->$method(); - - if (! $relation instanceof Relation) { - throw new LogicException(get_class($this).'::'.$method.' must return a relationship instance.'); - } - - return tap($relation->getResults(), function ($results) use ($method) { - $this->setRelation($method, $results); - }); - } - - /** - * Determine if a get mutator exists for an attribute. - * - * @param string $key - * @return bool - */ - public function hasGetMutator($key) - { - return method_exists($this, 'get'.Str::studly($key).'Attribute'); - } - - /** - * Get the value of an attribute using its mutator. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function mutateAttribute($key, $value) - { - return $this->{'get'.Str::studly($key).'Attribute'}($value); - } - - /** - * Get the value of an attribute using its mutator for array conversion. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function mutateAttributeForArray($key, $value) - { - $value = $this->mutateAttribute($key, $value); - - return $value instanceof Arrayable ? $value->toArray() : $value; - } - - /** - * Cast an attribute to a native PHP type. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function castAttribute($key, $value) - { - if (is_null($value)) { - return $value; - } - - switch ($this->getCastType($key)) { - case 'int': - case 'integer': - return (int) $value; - case 'real': - case 'float': - case 'double': - return (float) $value; - case 'string': - return (string) $value; - case 'bool': - case 'boolean': - return (bool) $value; - case 'object': - return $this->fromJson($value, true); - case 'array': - case 'json': - return $this->fromJson($value); - case 'collection': - return new BaseCollection($this->fromJson($value)); - case 'date': - return $this->asDate($value); - case 'datetime': - return $this->asDateTime($value); - case 'timestamp': - return $this->asTimestamp($value); - default: - return $value; - } - } - - /** - * Get the type of cast for a model attribute. - * - * @param string $key - * @return string - */ - protected function getCastType($key) - { - return trim(strtolower($this->getCasts()[$key])); - } - - /** - * Set a given attribute on the model. - * - * @param string $key - * @param mixed $value - * @return $this - */ - public function setAttribute($key, $value) - { - // First we will check for the presence of a mutator for the set operation - // which simply lets the developers tweak the attribute as it is set on - // the model, such as "json_encoding" an listing of data for storage. - if ($this->hasSetMutator($key)) { - $method = 'set'.Str::studly($key).'Attribute'; - - return $this->{$method}($value); - } - - // If an attribute is listed as a "date", we'll convert it from a DateTime - // instance into a form proper for storage on the database tables using - // the connection grammar's date format. We will auto set the values. - elseif ($value && $this->isDateAttribute($key)) { - $value = $this->fromDateTime($value); - } - - if ($this->isJsonCastable($key) && ! is_null($value)) { - $value = $this->castAttributeAsJson($key, $value); - } - - // If this attribute contains a JSON ->, we'll set the proper value in the - // attribute's underlying array. This takes care of properly nesting an - // attribute in the array's value in the case of deeply nested items. - if (Str::contains($key, '->')) { - return $this->fillJsonAttribute($key, $value); - } - - $this->attributes[$key] = $value; - - return $this; - } - - /** - * Determine if a set mutator exists for an attribute. - * - * @param string $key - * @return bool - */ - public function hasSetMutator($key) - { - return method_exists($this, 'set'.Str::studly($key).'Attribute'); - } - - /** - * Determine if the given attribute is a date or date castable. - * - * @param string $key - * @return bool - */ - protected function isDateAttribute($key) - { - return in_array($key, $this->getDates()) || - $this->isDateCastable($key); - } - - /** - * Set a given JSON attribute on the model. - * - * @param string $key - * @param mixed $value - * @return $this - */ - public function fillJsonAttribute($key, $value) - { - list($key, $path) = explode('->', $key, 2); - - $this->attributes[$key] = $this->asJson($this->getArrayAttributeWithValue( - $path, $key, $value - )); - - return $this; - } - - /** - * Get an array attribute with the given key and value set. - * - * @param string $path - * @param string $key - * @param mixed $value - * @return $this - */ - protected function getArrayAttributeWithValue($path, $key, $value) - { - return tap($this->getArrayAttributeByKey($key), function (&$array) use ($path, $value) { - Arr::set($array, str_replace('->', '.', $path), $value); - }); - } - - /** - * Get an array attribute or return an empty array if it is not set. - * - * @param string $key - * @return array - */ - protected function getArrayAttributeByKey($key) - { - return isset($this->attributes[$key]) ? - $this->fromJson($this->attributes[$key]) : []; - } - - /** - * Cast the given attribute to JSON. - * - * @param string $key - * @param mixed $value - * @return string - */ - protected function castAttributeAsJson($key, $value) - { - $value = $this->asJson($value); - - if ($value === false) { - throw JsonEncodingException::forAttribute( - $this, $key, json_last_error_msg() - ); - } - - return $value; - } - - /** - * Encode the given value as JSON. - * - * @param mixed $value - * @return string - */ - protected function asJson($value) - { - return json_encode($value); - } - - /** - * Decode the given JSON back into an array or object. - * - * @param string $value - * @param bool $asObject - * @return mixed - */ - public function fromJson($value, $asObject = false) - { - return json_decode($value, ! $asObject); - } - - /** - * Return a timestamp as DateTime object with time set to 00:00:00. - * - * @param mixed $value - * @return \Illuminate\Support\Carbon - */ - protected function asDate($value) - { - return $this->asDateTime($value)->startOfDay(); - } - - /** - * Return a timestamp as DateTime object. - * - * @param mixed $value - * @return \Illuminate\Support\Carbon - */ - protected function asDateTime($value) - { - // If this value is already a Carbon instance, we shall just return it as is. - // This prevents us having to re-instantiate a Carbon instance when we know - // it already is one, which wouldn't be fulfilled by the DateTime check. - if ($value instanceof Carbon) { - return $value; - } - - // If the value is already a DateTime instance, we will just skip the rest of - // these checks since they will be a waste of time, and hinder performance - // when checking the field. We will just return the DateTime right away. - if ($value instanceof DateTimeInterface) { - return new Carbon( - $value->format('Y-m-d H:i:s.u'), $value->getTimezone() - ); - } - - // If this value is an integer, we will assume it is a UNIX timestamp's value - // and format a Carbon object from this timestamp. This allows flexibility - // when defining your date fields as they might be UNIX timestamps here. - if (is_numeric($value)) { - return Carbon::createFromTimestamp($value); - } - - // If the value is in simply year, month, day format, we will instantiate the - // Carbon instances from that format. Again, this provides for simple date - // fields on the database, while still supporting Carbonized conversion. - if ($this->isStandardDateFormat($value)) { - return Carbon::createFromFormat('Y-m-d', $value)->startOfDay(); - } - - // Finally, we will just assume this date is in the format used by default on - // the database connection and use that format to create the Carbon object - // that is returned back out to the developers after we convert it here. - return Carbon::createFromFormat( - str_replace('.v', '.u', $this->getDateFormat()), $value - ); - } - - /** - * Determine if the given value is a standard date format. - * - * @param string $value - * @return bool - */ - protected function isStandardDateFormat($value) - { - return preg_match('/^(\d{4})-(\d{1,2})-(\d{1,2})$/', $value); - } - - /** - * Convert a DateTime to a storable string. - * - * @param \DateTime|int $value - * @return string - */ - public function fromDateTime($value) - { - return empty($value) ? $value : $this->asDateTime($value)->format( - $this->getDateFormat() - ); - } - - /** - * Return a timestamp as unix timestamp. - * - * @param mixed $value - * @return int - */ - protected function asTimestamp($value) - { - return $this->asDateTime($value)->getTimestamp(); - } - - /** - * Prepare a date for array / JSON serialization. - * - * @param \DateTimeInterface $date - * @return string - */ - protected function serializeDate(DateTimeInterface $date) - { - return $date->format($this->getDateFormat()); - } - - /** - * Get the attributes that should be converted to dates. - * - * @return array - */ - public function getDates() - { - $defaults = [static::CREATED_AT, static::UPDATED_AT]; - - return $this->usesTimestamps() - ? array_unique(array_merge($this->dates, $defaults)) - : $this->dates; - } - - /** - * Get the format for database stored dates. - * - * @return string - */ - protected function getDateFormat() - { - return $this->dateFormat ?: $this->getConnection()->getQueryGrammar()->getDateFormat(); - } - - /** - * Set the date format used by the model. - * - * @param string $format - * @return $this - */ - public function setDateFormat($format) - { - $this->dateFormat = $format; - - return $this; - } - - /** - * Determine whether an attribute should be cast to a native type. - * - * @param string $key - * @param array|string|null $types - * @return bool - */ - public function hasCast($key, $types = null) - { - if (array_key_exists($key, $this->getCasts())) { - return $types ? in_array($this->getCastType($key), (array) $types, true) : true; - } - - return false; - } - - /** - * Get the casts array. - * - * @return array - */ - public function getCasts() - { - if ($this->getIncrementing()) { - return array_merge([$this->getKeyName() => $this->getKeyType()], $this->casts); - } - - return $this->casts; - } - - /** - * Determine whether a value is Date / DateTime castable for inbound manipulation. - * - * @param string $key - * @return bool - */ - protected function isDateCastable($key) - { - return $this->hasCast($key, ['date', 'datetime']); - } - - /** - * Determine whether a value is JSON castable for inbound manipulation. - * - * @param string $key - * @return bool - */ - protected function isJsonCastable($key) - { - return $this->hasCast($key, ['array', 'json', 'object', 'collection']); - } - - /** - * Get all of the current attributes on the model. - * - * @return array - */ - public function getAttributes() - { - return $this->attributes; - } - - /** - * Set the array of model attributes. No checking is done. - * - * @param array $attributes - * @param bool $sync - * @return $this - */ - public function setRawAttributes(array $attributes, $sync = false) - { - $this->attributes = $attributes; - - if ($sync) { - $this->syncOriginal(); - } - - return $this; - } - - /** - * Get the model's original attribute values. - * - * @param string|null $key - * @param mixed $default - * @return mixed|array - */ - public function getOriginal($key = null, $default = null) - { - return Arr::get($this->original, $key, $default); - } - - /** - * Get a subset of the model's attributes. - * - * @param array|mixed $attributes - * @return array - */ - public function only($attributes) - { - $results = []; - - foreach (is_array($attributes) ? $attributes : func_get_args() as $attribute) { - $results[$attribute] = $this->getAttribute($attribute); - } - - return $results; - } - - /** - * Sync the original attributes with the current. - * - * @return $this - */ - public function syncOriginal() - { - $this->original = $this->attributes; - - return $this; - } - - /** - * Sync a single original attribute with its current value. - * - * @param string $attribute - * @return $this - */ - public function syncOriginalAttribute($attribute) - { - $this->original[$attribute] = $this->attributes[$attribute]; - - return $this; - } - - /** - * Sync the changed attributes. - * - * @return $this - */ - public function syncChanges() - { - $this->changes = $this->getDirty(); - - return $this; - } - - /** - * Determine if the model or given attribute(s) have been modified. - * - * @param array|string|null $attributes - * @return bool - */ - public function isDirty($attributes = null) - { - return $this->hasChanges( - $this->getDirty(), is_array($attributes) ? $attributes : func_get_args() - ); - } - - /** - * Determine if the model or given attribute(s) have remained the same. - * - * @param array|string|null $attributes - * @return bool - */ - public function isClean($attributes = null) - { - return ! $this->isDirty(...func_get_args()); - } - - /** - * Determine if the model or given attribute(s) have been modified. - * - * @param array|string|null $attributes - * @return bool - */ - public function wasChanged($attributes = null) - { - return $this->hasChanges( - $this->getChanges(), is_array($attributes) ? $attributes : func_get_args() - ); - } - - /** - * Determine if the given attributes were changed. - * - * @param array $changes - * @param array|string|null $attributes - * @return bool - */ - protected function hasChanges($changes, $attributes = null) - { - // If no specific attributes were provided, we will just see if the dirty array - // already contains any attributes. If it does we will just return that this - // count is greater than zero. Else, we need to check specific attributes. - if (empty($attributes)) { - return count($changes) > 0; - } - - // Here we will spin through every attribute and see if this is in the array of - // dirty attributes. If it is, we will return true and if we make it through - // all of the attributes for the entire array we will return false at end. - foreach (Arr::wrap($attributes) as $attribute) { - if (array_key_exists($attribute, $changes)) { - return true; - } - } - - return false; - } - - /** - * Get the attributes that have been changed since last sync. - * - * @return array - */ - public function getDirty() - { - $dirty = []; - - foreach ($this->getAttributes() as $key => $value) { - if (! $this->originalIsEquivalent($key, $value)) { - $dirty[$key] = $value; - } - } - - return $dirty; - } - - /** - * Get the attributes that were changed. - * - * @return array - */ - public function getChanges() - { - return $this->changes; - } - - /** - * Determine if the new and old values for a given key are equivalent. - * - * @param string $key - * @param mixed $current - * @return bool - */ - protected function originalIsEquivalent($key, $current) - { - if (! array_key_exists($key, $this->original)) { - return false; - } - - $original = $this->getOriginal($key); - - if ($current === $original) { - return true; - } elseif (is_null($current)) { - return false; - } elseif ($this->isDateAttribute($key)) { - return $this->fromDateTime($current) === - $this->fromDateTime($original); - } elseif ($this->hasCast($key)) { - return $this->castAttribute($key, $current) === - $this->castAttribute($key, $original); - } - - return is_numeric($current) && is_numeric($original) - && strcmp((string) $current, (string) $original) === 0; - } - - /** - * Append attributes to query when building a query. - * - * @param array|string $attributes - * @return $this - */ - public function append($attributes) - { - $this->appends = array_unique( - array_merge($this->appends, is_string($attributes) ? func_get_args() : $attributes) - ); - - return $this; - } - - /** - * Set the accessors to append to model arrays. - * - * @param array $appends - * @return $this - */ - public function setAppends(array $appends) - { - $this->appends = $appends; - - return $this; - } - - /** - * Get the mutated attributes for a given instance. - * - * @return array - */ - public function getMutatedAttributes() - { - $class = static::class; - - if (! isset(static::$mutatorCache[$class])) { - static::cacheMutatedAttributes($class); - } - - return static::$mutatorCache[$class]; - } - - /** - * Extract and cache all the mutated attributes of a class. - * - * @param string $class - * @return void - */ - public static function cacheMutatedAttributes($class) - { - static::$mutatorCache[$class] = collect(static::getMutatorMethods($class))->map(function ($match) { - return lcfirst(static::$snakeAttributes ? Str::snake($match) : $match); - })->all(); - } - - /** - * Get all of the attribute mutator methods. - * - * @param mixed $class - * @return array - */ - protected static function getMutatorMethods($class) - { - preg_match_all('/(?<=^|;)get([^;]+?)Attribute(;|$)/', implode(';', get_class_methods($class)), $matches); - - return $matches[1]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php deleted file mode 100644 index 0972bd6f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php +++ /dev/null @@ -1,340 +0,0 @@ -getObservableEvents() as $event) { - if (method_exists($class, $event)) { - static::registerModelEvent($event, $className.'@'.$event); - } - } - } - - /** - * Get the observable event names. - * - * @return array - */ - public function getObservableEvents() - { - return array_merge( - [ - 'retrieved', 'creating', 'created', 'updating', - 'updated', 'deleting', 'deleted', 'saving', - 'saved', 'restoring', 'restored', - ], - $this->observables - ); - } - - /** - * Set the observable event names. - * - * @param array $observables - * @return $this - */ - public function setObservableEvents(array $observables) - { - $this->observables = $observables; - - return $this; - } - - /** - * Add an observable event name. - * - * @param array|mixed $observables - * @return void - */ - public function addObservableEvents($observables) - { - $this->observables = array_unique(array_merge( - $this->observables, is_array($observables) ? $observables : func_get_args() - )); - } - - /** - * Remove an observable event name. - * - * @param array|mixed $observables - * @return void - */ - public function removeObservableEvents($observables) - { - $this->observables = array_diff( - $this->observables, is_array($observables) ? $observables : func_get_args() - ); - } - - /** - * Register a model event with the dispatcher. - * - * @param string $event - * @param \Closure|string $callback - * @return void - */ - protected static function registerModelEvent($event, $callback) - { - if (isset(static::$dispatcher)) { - $name = static::class; - - static::$dispatcher->listen("eloquent.{$event}: {$name}", $callback); - } - } - - /** - * Fire the given event for the model. - * - * @param string $event - * @param bool $halt - * @return mixed - */ - protected function fireModelEvent($event, $halt = true) - { - if (! isset(static::$dispatcher)) { - return true; - } - - // First, we will get the proper method to call on the event dispatcher, and then we - // will attempt to fire a custom, object based event for the given event. If that - // returns a result we can return that result, or we'll call the string events. - $method = $halt ? 'until' : 'fire'; - - $result = $this->filterModelEventResults( - $this->fireCustomModelEvent($event, $method) - ); - - if ($result === false) { - return false; - } - - return ! empty($result) ? $result : static::$dispatcher->{$method}( - "eloquent.{$event}: ".static::class, $this - ); - } - - /** - * Fire a custom model event for the given event. - * - * @param string $event - * @param string $method - * @return mixed|null - */ - protected function fireCustomModelEvent($event, $method) - { - if (! isset($this->dispatchesEvents[$event])) { - return; - } - - $result = static::$dispatcher->$method(new $this->dispatchesEvents[$event]($this)); - - if (! is_null($result)) { - return $result; - } - } - - /** - * Filter the model event results. - * - * @param mixed $result - * @return mixed - */ - protected function filterModelEventResults($result) - { - if (is_array($result)) { - $result = array_filter($result, function ($response) { - return ! is_null($response); - }); - } - - return $result; - } - - /** - * Register a retrieved model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function retrieved($callback) - { - static::registerModelEvent('retrieved', $callback); - } - - /** - * Register a saving model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function saving($callback) - { - static::registerModelEvent('saving', $callback); - } - - /** - * Register a saved model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function saved($callback) - { - static::registerModelEvent('saved', $callback); - } - - /** - * Register an updating model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function updating($callback) - { - static::registerModelEvent('updating', $callback); - } - - /** - * Register an updated model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function updated($callback) - { - static::registerModelEvent('updated', $callback); - } - - /** - * Register a creating model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function creating($callback) - { - static::registerModelEvent('creating', $callback); - } - - /** - * Register a created model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function created($callback) - { - static::registerModelEvent('created', $callback); - } - - /** - * Register a deleting model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function deleting($callback) - { - static::registerModelEvent('deleting', $callback); - } - - /** - * Register a deleted model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function deleted($callback) - { - static::registerModelEvent('deleted', $callback); - } - - /** - * Remove all of the event listeners for the model. - * - * @return void - */ - public static function flushEventListeners() - { - if (! isset(static::$dispatcher)) { - return; - } - - $instance = new static; - - foreach ($instance->getObservableEvents() as $event) { - static::$dispatcher->forget("eloquent.{$event}: ".static::class); - } - - foreach (array_values($instance->dispatchesEvents) as $event) { - static::$dispatcher->forget($event); - } - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public static function getEventDispatcher() - { - return static::$dispatcher; - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $dispatcher - * @return void - */ - public static function setEventDispatcher(Dispatcher $dispatcher) - { - static::$dispatcher = $dispatcher; - } - - /** - * Unset the event dispatcher for models. - * - * @return void - */ - public static function unsetEventDispatcher() - { - static::$dispatcher = null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php deleted file mode 100644 index 97a549f6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php +++ /dev/null @@ -1,71 +0,0 @@ -newRelatedInstance($related); - - $foreignKey = $foreignKey ?: $this->getForeignKey(); - - $localKey = $localKey ?: $this->getKeyName(); - - return $this->newHasOne($instance->newQuery(), $this, $instance->getTable().'.'.$foreignKey, $localKey); - } - - /** - * Instantiate a new HasOne relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $foreignKey - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\HasOne - */ - protected function newHasOne(Builder $query, Model $parent, $foreignKey, $localKey) - { - return new HasOne($query, $parent, $foreignKey, $localKey); - } - - /** - * Define a polymorphic one-to-one relationship. - * - * @param string $related - * @param string $name - * @param string $type - * @param string $id - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\MorphOne - */ - public function morphOne($related, $name, $type = null, $id = null, $localKey = null) - { - $instance = $this->newRelatedInstance($related); - - list($type, $id) = $this->getMorphs($name, $type, $id); - - $table = $instance->getTable(); - - $localKey = $localKey ?: $this->getKeyName(); - - return $this->newMorphOne($instance->newQuery(), $this, $table.'.'.$type, $table.'.'.$id, $localKey); - } - - /** - * Instantiate a new MorphOne relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $type - * @param string $id - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\MorphOne - */ - protected function newMorphOne(Builder $query, Model $parent, $type, $id, $localKey) - { - return new MorphOne($query, $parent, $type, $id, $localKey); - } - - /** - * Define an inverse one-to-one or many relationship. - * - * @param string $related - * @param string $foreignKey - * @param string $ownerKey - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo - */ - public function belongsTo($related, $foreignKey = null, $ownerKey = null, $relation = null) - { - // If no relation name was given, we will use this debug backtrace to extract - // the calling method's name and use that as the relationship name as most - // of the time this will be what we desire to use for the relationships. - if (is_null($relation)) { - $relation = $this->guessBelongsToRelation(); - } - - $instance = $this->newRelatedInstance($related); - - // If no foreign key was supplied, we can use a backtrace to guess the proper - // foreign key name by using the name of the relationship function, which - // when combined with an "_id" should conventionally match the columns. - if (is_null($foreignKey)) { - $foreignKey = Str::snake($relation).'_'.$instance->getKeyName(); - } - - // Once we have the foreign key names, we'll just create a new Eloquent query - // for the related models and returns the relationship instance which will - // actually be responsible for retrieving and hydrating every relations. - $ownerKey = $ownerKey ?: $instance->getKeyName(); - - return $this->newBelongsTo( - $instance->newQuery(), $this, $foreignKey, $ownerKey, $relation - ); - } - - /** - * Instantiate a new BelongsTo relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $child - * @param string $foreignKey - * @param string $ownerKey - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo - */ - protected function newBelongsTo(Builder $query, Model $child, $foreignKey, $ownerKey, $relation) - { - return new BelongsTo($query, $child, $foreignKey, $ownerKey, $relation); - } - - /** - * Define a polymorphic, inverse one-to-one or many relationship. - * - * @param string $name - * @param string $type - * @param string $id - * @return \Illuminate\Database\Eloquent\Relations\MorphTo - */ - public function morphTo($name = null, $type = null, $id = null) - { - // If no name is provided, we will use the backtrace to get the function name - // since that is most likely the name of the polymorphic interface. We can - // use that to get both the class and foreign key that will be utilized. - $name = $name ?: $this->guessBelongsToRelation(); - - list($type, $id) = $this->getMorphs( - Str::snake($name), $type, $id - ); - - // If the type value is null it is probably safe to assume we're eager loading - // the relationship. In this case we'll just pass in a dummy query where we - // need to remove any eager loads that may already be defined on a model. - return empty($class = $this->{$type}) - ? $this->morphEagerTo($name, $type, $id) - : $this->morphInstanceTo($class, $name, $type, $id); - } - - /** - * Define a polymorphic, inverse one-to-one or many relationship. - * - * @param string $name - * @param string $type - * @param string $id - * @return \Illuminate\Database\Eloquent\Relations\MorphTo - */ - protected function morphEagerTo($name, $type, $id) - { - return $this->newMorphTo( - $this->newQuery()->setEagerLoads([]), $this, $id, null, $type, $name - ); - } - - /** - * Define a polymorphic, inverse one-to-one or many relationship. - * - * @param string $target - * @param string $name - * @param string $type - * @param string $id - * @return \Illuminate\Database\Eloquent\Relations\MorphTo - */ - protected function morphInstanceTo($target, $name, $type, $id) - { - $instance = $this->newRelatedInstance( - static::getActualClassNameForMorph($target) - ); - - return $this->newMorphTo( - $instance->newQuery(), $this, $id, $instance->getKeyName(), $type, $name - ); - } - - /** - * Instantiate a new MorphTo relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $foreignKey - * @param string $ownerKey - * @param string $type - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\MorphTo - */ - protected function newMorphTo(Builder $query, Model $parent, $foreignKey, $ownerKey, $type, $relation) - { - return new MorphTo($query, $parent, $foreignKey, $ownerKey, $type, $relation); - } - - /** - * Retrieve the actual class name for a given morph class. - * - * @param string $class - * @return string - */ - public static function getActualClassNameForMorph($class) - { - return Arr::get(Relation::morphMap() ?: [], $class, $class); - } - - /** - * Guess the "belongs to" relationship name. - * - * @return string - */ - protected function guessBelongsToRelation() - { - list($one, $two, $caller) = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3); - - return $caller['function']; - } - - /** - * Define a one-to-many relationship. - * - * @param string $related - * @param string $foreignKey - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\HasMany - */ - public function hasMany($related, $foreignKey = null, $localKey = null) - { - $instance = $this->newRelatedInstance($related); - - $foreignKey = $foreignKey ?: $this->getForeignKey(); - - $localKey = $localKey ?: $this->getKeyName(); - - return $this->newHasMany( - $instance->newQuery(), $this, $instance->getTable().'.'.$foreignKey, $localKey - ); - } - - /** - * Instantiate a new HasMany relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $foreignKey - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\HasMany - */ - protected function newHasMany(Builder $query, Model $parent, $foreignKey, $localKey) - { - return new HasMany($query, $parent, $foreignKey, $localKey); - } - - /** - * Define a has-many-through relationship. - * - * @param string $related - * @param string $through - * @param string|null $firstKey - * @param string|null $secondKey - * @param string|null $localKey - * @param string|null $secondLocalKey - * @return \Illuminate\Database\Eloquent\Relations\HasManyThrough - */ - public function hasManyThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null) - { - $through = new $through; - - $firstKey = $firstKey ?: $this->getForeignKey(); - - $secondKey = $secondKey ?: $through->getForeignKey(); - - return $this->newHasManyThrough( - $this->newRelatedInstance($related)->newQuery(), $this, $through, - $firstKey, $secondKey, $localKey ?: $this->getKeyName(), - $secondLocalKey ?: $through->getKeyName() - ); - } - - /** - * Instantiate a new HasManyThrough relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $farParent - * @param \Illuminate\Database\Eloquent\Model $throughParent - * @param string $firstKey - * @param string $secondKey - * @param string $localKey - * @param string $secondLocalKey - * @return \Illuminate\Database\Eloquent\Relations\HasManyThrough - */ - protected function newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey) - { - return new HasManyThrough($query, $farParent, $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey); - } - - /** - * Define a polymorphic one-to-many relationship. - * - * @param string $related - * @param string $name - * @param string $type - * @param string $id - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\MorphMany - */ - public function morphMany($related, $name, $type = null, $id = null, $localKey = null) - { - $instance = $this->newRelatedInstance($related); - - // Here we will gather up the morph type and ID for the relationship so that we - // can properly query the intermediate table of a relation. Finally, we will - // get the table and create the relationship instances for the developers. - list($type, $id) = $this->getMorphs($name, $type, $id); - - $table = $instance->getTable(); - - $localKey = $localKey ?: $this->getKeyName(); - - return $this->newMorphMany($instance->newQuery(), $this, $table.'.'.$type, $table.'.'.$id, $localKey); - } - - /** - * Instantiate a new MorphMany relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $type - * @param string $id - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\MorphMany - */ - protected function newMorphMany(Builder $query, Model $parent, $type, $id, $localKey) - { - return new MorphMany($query, $parent, $type, $id, $localKey); - } - - /** - * Define a many-to-many relationship. - * - * @param string $related - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function belongsToMany($related, $table = null, $foreignPivotKey = null, $relatedPivotKey = null, - $parentKey = null, $relatedKey = null, $relation = null) - { - // If no relationship name was passed, we will pull backtraces to get the - // name of the calling function. We will use that function name as the - // title of this relation since that is a great convention to apply. - if (is_null($relation)) { - $relation = $this->guessBelongsToManyRelation(); - } - - // First, we'll need to determine the foreign key and "other key" for the - // relationship. Once we have determined the keys we'll make the query - // instances as well as the relationship instances we need for this. - $instance = $this->newRelatedInstance($related); - - $foreignPivotKey = $foreignPivotKey ?: $this->getForeignKey(); - - $relatedPivotKey = $relatedPivotKey ?: $instance->getForeignKey(); - - // If no table name was provided, we can guess it by concatenating the two - // models using underscores in alphabetical order. The two model names - // are transformed to snake case from their default CamelCase also. - if (is_null($table)) { - $table = $this->joiningTable($related); - } - - return $this->newBelongsToMany( - $instance->newQuery(), $this, $table, $foreignPivotKey, - $relatedPivotKey, $parentKey ?: $this->getKeyName(), - $relatedKey ?: $instance->getKeyName(), $relation - ); - } - - /** - * Instantiate a new BelongsToMany relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @param string $relationName - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - protected function newBelongsToMany(Builder $query, Model $parent, $table, $foreignPivotKey, $relatedPivotKey, - $parentKey, $relatedKey, $relationName = null) - { - return new BelongsToMany($query, $parent, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey, $relationName); - } - - /** - * Define a polymorphic many-to-many relationship. - * - * @param string $related - * @param string $name - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @param bool $inverse - * @return \Illuminate\Database\Eloquent\Relations\MorphToMany - */ - public function morphToMany($related, $name, $table = null, $foreignPivotKey = null, - $relatedPivotKey = null, $parentKey = null, - $relatedKey = null, $inverse = false) - { - $caller = $this->guessBelongsToManyRelation(); - - // First, we will need to determine the foreign key and "other key" for the - // relationship. Once we have determined the keys we will make the query - // instances, as well as the relationship instances we need for these. - $instance = $this->newRelatedInstance($related); - - $foreignPivotKey = $foreignPivotKey ?: $name.'_id'; - - $relatedPivotKey = $relatedPivotKey ?: $instance->getForeignKey(); - - // Now we're ready to create a new query builder for this related model and - // the relationship instances for this relation. This relations will set - // appropriate query constraints then entirely manages the hydrations. - $table = $table ?: Str::plural($name); - - return $this->newMorphToMany( - $instance->newQuery(), $this, $name, $table, - $foreignPivotKey, $relatedPivotKey, $parentKey ?: $this->getKeyName(), - $relatedKey ?: $instance->getKeyName(), $caller, $inverse - ); - } - - /** - * Instantiate a new HasManyThrough relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $name - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @param string $relationName - * @param bool $inverse - * @return \Illuminate\Database\Eloquent\Relations\MorphToMany - */ - protected function newMorphToMany(Builder $query, Model $parent, $name, $table, $foreignPivotKey, - $relatedPivotKey, $parentKey, $relatedKey, - $relationName = null, $inverse = false) - { - return new MorphToMany($query, $parent, $name, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey, - $relationName, $inverse); - } - - /** - * Define a polymorphic, inverse many-to-many relationship. - * - * @param string $related - * @param string $name - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @return \Illuminate\Database\Eloquent\Relations\MorphToMany - */ - public function morphedByMany($related, $name, $table = null, $foreignPivotKey = null, - $relatedPivotKey = null, $parentKey = null, $relatedKey = null) - { - $foreignPivotKey = $foreignPivotKey ?: $this->getForeignKey(); - - // For the inverse of the polymorphic many-to-many relations, we will change - // the way we determine the foreign and other keys, as it is the opposite - // of the morph-to-many method since we're figuring out these inverses. - $relatedPivotKey = $relatedPivotKey ?: $name.'_id'; - - return $this->morphToMany( - $related, $name, $table, $foreignPivotKey, - $relatedPivotKey, $parentKey, $relatedKey, true - ); - } - - /** - * Get the relationship name of the belongs to many. - * - * @return string - */ - protected function guessBelongsToManyRelation() - { - $caller = Arr::first(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), function ($trace) { - return ! in_array($trace['function'], Model::$manyMethods); - }); - - return ! is_null($caller) ? $caller['function'] : null; - } - - /** - * Get the joining table name for a many-to-many relation. - * - * @param string $related - * @return string - */ - public function joiningTable($related) - { - // The joining table name, by convention, is simply the snake cased models - // sorted alphabetically and concatenated with an underscore, so we can - // just sort the models and join them together to get the table name. - $models = [ - Str::snake(class_basename($related)), - Str::snake(class_basename($this)), - ]; - - // Now that we have the model names in an array we can just sort them and - // use the implode function to join them together with an underscores, - // which is typically used by convention within the database system. - sort($models); - - return strtolower(implode('_', $models)); - } - - /** - * Determine if the model touches a given relation. - * - * @param string $relation - * @return bool - */ - public function touches($relation) - { - return in_array($relation, $this->touches); - } - - /** - * Touch the owning relations of the model. - * - * @return void - */ - public function touchOwners() - { - foreach ($this->touches as $relation) { - $this->$relation()->touch(); - - if ($this->$relation instanceof self) { - $this->$relation->fireModelEvent('saved', false); - - $this->$relation->touchOwners(); - } elseif ($this->$relation instanceof Collection) { - $this->$relation->each(function (Model $relation) { - $relation->touchOwners(); - }); - } - } - } - - /** - * Get the polymorphic relationship columns. - * - * @param string $name - * @param string $type - * @param string $id - * @return array - */ - protected function getMorphs($name, $type, $id) - { - return [$type ?: $name.'_type', $id ?: $name.'_id']; - } - - /** - * Get the class name for polymorphic relations. - * - * @return string - */ - public function getMorphClass() - { - $morphMap = Relation::morphMap(); - - if (! empty($morphMap) && in_array(static::class, $morphMap)) { - return array_search(static::class, $morphMap, true); - } - - return static::class; - } - - /** - * Create a new model instance for a related model. - * - * @param string $class - * @return mixed - */ - protected function newRelatedInstance($class) - { - return tap(new $class, function ($instance) { - if (! $instance->getConnectionName()) { - $instance->setConnection($this->connection); - } - }); - } - - /** - * Get all the loaded relations for the instance. - * - * @return array - */ - public function getRelations() - { - return $this->relations; - } - - /** - * Get a specified relationship. - * - * @param string $relation - * @return mixed - */ - public function getRelation($relation) - { - return $this->relations[$relation]; - } - - /** - * Determine if the given relation is loaded. - * - * @param string $key - * @return bool - */ - public function relationLoaded($key) - { - return array_key_exists($key, $this->relations); - } - - /** - * Set the specific relationship in the model. - * - * @param string $relation - * @param mixed $value - * @return $this - */ - public function setRelation($relation, $value) - { - $this->relations[$relation] = $value; - - return $this; - } - - /** - * Set the entire relations array on the model. - * - * @param array $relations - * @return $this - */ - public function setRelations(array $relations) - { - $this->relations = $relations; - - return $this; - } - - /** - * Get the relationships that are touched on save. - * - * @return array - */ - public function getTouchedRelations() - { - return $this->touches; - } - - /** - * Set the relationships that are touched on save. - * - * @param array $touches - * @return $this - */ - public function setTouchedRelations(array $touches) - { - $this->touches = $touches; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php deleted file mode 100644 index ce3e0801..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php +++ /dev/null @@ -1,125 +0,0 @@ -usesTimestamps()) { - return false; - } - - $this->updateTimestamps(); - - return $this->save(); - } - - /** - * Update the creation and update timestamps. - * - * @return void - */ - protected function updateTimestamps() - { - $time = $this->freshTimestamp(); - - if (! is_null(static::UPDATED_AT) && ! $this->isDirty(static::UPDATED_AT)) { - $this->setUpdatedAt($time); - } - - if (! $this->exists && ! $this->isDirty(static::CREATED_AT)) { - $this->setCreatedAt($time); - } - } - - /** - * Set the value of the "created at" attribute. - * - * @param mixed $value - * @return $this - */ - public function setCreatedAt($value) - { - $this->{static::CREATED_AT} = $value; - - return $this; - } - - /** - * Set the value of the "updated at" attribute. - * - * @param mixed $value - * @return $this - */ - public function setUpdatedAt($value) - { - $this->{static::UPDATED_AT} = $value; - - return $this; - } - - /** - * Get a fresh timestamp for the model. - * - * @return \Illuminate\Support\Carbon - */ - public function freshTimestamp() - { - return new Carbon; - } - - /** - * Get a fresh timestamp for the model. - * - * @return string - */ - public function freshTimestampString() - { - return $this->fromDateTime($this->freshTimestamp()); - } - - /** - * Determine if the model uses timestamps. - * - * @return bool - */ - public function usesTimestamps() - { - return $this->timestamps; - } - - /** - * Get the name of the "created at" column. - * - * @return string - */ - public function getCreatedAtColumn() - { - return static::CREATED_AT; - } - - /** - * Get the name of the "updated at" column. - * - * @return string - */ - public function getUpdatedAtColumn() - { - return static::UPDATED_AT; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php deleted file mode 100644 index 7bd9ef93..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php +++ /dev/null @@ -1,126 +0,0 @@ -hidden; - } - - /** - * Set the hidden attributes for the model. - * - * @param array $hidden - * @return $this - */ - public function setHidden(array $hidden) - { - $this->hidden = $hidden; - - return $this; - } - - /** - * Add hidden attributes for the model. - * - * @param array|string|null $attributes - * @return void - */ - public function addHidden($attributes = null) - { - $this->hidden = array_merge( - $this->hidden, is_array($attributes) ? $attributes : func_get_args() - ); - } - - /** - * Get the visible attributes for the model. - * - * @return array - */ - public function getVisible() - { - return $this->visible; - } - - /** - * Set the visible attributes for the model. - * - * @param array $visible - * @return $this - */ - public function setVisible(array $visible) - { - $this->visible = $visible; - - return $this; - } - - /** - * Add visible attributes for the model. - * - * @param array|string|null $attributes - * @return void - */ - public function addVisible($attributes = null) - { - $this->visible = array_merge( - $this->visible, is_array($attributes) ? $attributes : func_get_args() - ); - } - - /** - * Make the given, typically hidden, attributes visible. - * - * @param array|string $attributes - * @return $this - */ - public function makeVisible($attributes) - { - $this->hidden = array_diff($this->hidden, (array) $attributes); - - if (! empty($this->visible)) { - $this->addVisible($attributes); - } - - return $this; - } - - /** - * Make the given, typically visible, attributes hidden. - * - * @param array|string $attributes - * @return $this - */ - public function makeHidden($attributes) - { - $attributes = (array) $attributes; - - $this->visible = array_diff($this->visible, $attributes); - - $this->hidden = array_unique(array_merge($this->hidden, $attributes)); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php deleted file mode 100644 index 28977037..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php +++ /dev/null @@ -1,310 +0,0 @@ -=', $count = 1, $boolean = 'and', Closure $callback = null) - { - if (strpos($relation, '.') !== false) { - return $this->hasNested($relation, $operator, $count, $boolean, $callback); - } - - $relation = $this->getRelationWithoutConstraints($relation); - - // If we only need to check for the existence of the relation, then we can optimize - // the subquery to only run a "where exists" clause instead of this full "count" - // clause. This will make these queries run much faster compared with a count. - $method = $this->canUseExistsForExistenceCheck($operator, $count) - ? 'getRelationExistenceQuery' - : 'getRelationExistenceCountQuery'; - - $hasQuery = $relation->{$method}( - $relation->getRelated()->newQuery(), $this - ); - - // Next we will call any given callback as an "anonymous" scope so they can get the - // proper logical grouping of the where clauses if needed by this Eloquent query - // builder. Then, we will be ready to finalize and return this query instance. - if ($callback) { - $hasQuery->callScope($callback); - } - - return $this->addHasWhere( - $hasQuery, $relation, $operator, $count, $boolean - ); - } - - /** - * Add nested relationship count / exists conditions to the query. - * - * Sets up recursive call to whereHas until we finish the nested relation. - * - * @param string $relations - * @param string $operator - * @param int $count - * @param string $boolean - * @param \Closure|null $callback - * @return \Illuminate\Database\Eloquent\Builder|static - */ - protected function hasNested($relations, $operator = '>=', $count = 1, $boolean = 'and', $callback = null) - { - $relations = explode('.', $relations); - - $closure = function ($q) use (&$closure, &$relations, $operator, $count, $callback) { - // In order to nest "has", we need to add count relation constraints on the - // callback Closure. We'll do this by simply passing the Closure its own - // reference to itself so it calls itself recursively on each segment. - count($relations) > 1 - ? $q->whereHas(array_shift($relations), $closure) - : $q->has(array_shift($relations), $operator, $count, 'and', $callback); - }; - - return $this->has(array_shift($relations), '>=', 1, $boolean, $closure); - } - - /** - * Add a relationship count / exists condition to the query with an "or". - * - * @param string $relation - * @param string $operator - * @param int $count - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orHas($relation, $operator = '>=', $count = 1) - { - return $this->has($relation, $operator, $count, 'or'); - } - - /** - * Add a relationship count / exists condition to the query. - * - * @param string $relation - * @param string $boolean - * @param \Closure|null $callback - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function doesntHave($relation, $boolean = 'and', Closure $callback = null) - { - return $this->has($relation, '<', 1, $boolean, $callback); - } - - /** - * Add a relationship count / exists condition to the query with an "or". - * - * @param string $relation - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orDoesntHave($relation) - { - return $this->doesntHave($relation, 'or'); - } - - /** - * Add a relationship count / exists condition to the query with where clauses. - * - * @param string $relation - * @param \Closure|null $callback - * @param string $operator - * @param int $count - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function whereHas($relation, Closure $callback = null, $operator = '>=', $count = 1) - { - return $this->has($relation, $operator, $count, 'and', $callback); - } - - /** - * Add a relationship count / exists condition to the query with where clauses and an "or". - * - * @param string $relation - * @param \Closure $callback - * @param string $operator - * @param int $count - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orWhereHas($relation, Closure $callback = null, $operator = '>=', $count = 1) - { - return $this->has($relation, $operator, $count, 'or', $callback); - } - - /** - * Add a relationship count / exists condition to the query with where clauses. - * - * @param string $relation - * @param \Closure|null $callback - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function whereDoesntHave($relation, Closure $callback = null) - { - return $this->doesntHave($relation, 'and', $callback); - } - - /** - * Add a relationship count / exists condition to the query with where clauses and an "or". - * - * @param string $relation - * @param \Closure $callback - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orWhereDoesntHave($relation, Closure $callback = null) - { - return $this->doesntHave($relation, 'or', $callback); - } - - /** - * Add subselect queries to count the relations. - * - * @param mixed $relations - * @return $this - */ - public function withCount($relations) - { - if (empty($relations)) { - return $this; - } - - if (is_null($this->query->columns)) { - $this->query->select([$this->query->from.'.*']); - } - - $relations = is_array($relations) ? $relations : func_get_args(); - - foreach ($this->parseWithRelations($relations) as $name => $constraints) { - // First we will determine if the name has been aliased using an "as" clause on the name - // and if it has we will extract the actual relationship name and the desired name of - // the resulting column. This allows multiple counts on the same relationship name. - $segments = explode(' ', $name); - - unset($alias); - - if (count($segments) == 3 && Str::lower($segments[1]) == 'as') { - list($name, $alias) = [$segments[0], $segments[2]]; - } - - $relation = $this->getRelationWithoutConstraints($name); - - // Here we will get the relationship count query and prepare to add it to the main query - // as a sub-select. First, we'll get the "has" query and use that to get the relation - // count query. We will normalize the relation name then append _count as the name. - $query = $relation->getRelationExistenceCountQuery( - $relation->getRelated()->newQuery(), $this - ); - - $query->callScope($constraints); - - $query->mergeConstraintsFrom($relation->getQuery()); - - // Finally we will add the proper result column alias to the query and run the subselect - // statement against the query builder. Then we will return the builder instance back - // to the developer for further constraint chaining that needs to take place on it. - $column = $alias ?? Str::snake($name.'_count'); - - $this->selectSub($query->toBase(), $column); - } - - return $this; - } - - /** - * Add the "has" condition where clause to the query. - * - * @param \Illuminate\Database\Eloquent\Builder $hasQuery - * @param \Illuminate\Database\Eloquent\Relations\Relation $relation - * @param string $operator - * @param int $count - * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder|static - */ - protected function addHasWhere(Builder $hasQuery, Relation $relation, $operator, $count, $boolean) - { - $hasQuery->mergeConstraintsFrom($relation->getQuery()); - - return $this->canUseExistsForExistenceCheck($operator, $count) - ? $this->addWhereExistsQuery($hasQuery->toBase(), $boolean, $operator === '<' && $count === 1) - : $this->addWhereCountQuery($hasQuery->toBase(), $operator, $count, $boolean); - } - - /** - * Merge the where constraints from another query to the current query. - * - * @param \Illuminate\Database\Eloquent\Builder $from - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function mergeConstraintsFrom(Builder $from) - { - $whereBindings = $from->getQuery()->getRawBindings()['where'] ?? []; - - // Here we have some other query that we want to merge the where constraints from. We will - // copy over any where constraints on the query as well as remove any global scopes the - // query might have removed. Then we will return ourselves with the finished merging. - return $this->withoutGlobalScopes( - $from->removedScopes() - )->mergeWheres( - $from->getQuery()->wheres, $whereBindings - ); - } - - /** - * Add a sub-query count clause to this query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $operator - * @param int $count - * @param string $boolean - * @return $this - */ - protected function addWhereCountQuery(QueryBuilder $query, $operator = '>=', $count = 1, $boolean = 'and') - { - $this->query->addBinding($query->getBindings(), 'where'); - - return $this->where( - new Expression('('.$query->toSql().')'), - $operator, - is_numeric($count) ? new Expression($count) : $count, - $boolean - ); - } - - /** - * Get the "has relation" base query instance. - * - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\Relation - */ - protected function getRelationWithoutConstraints($relation) - { - return Relation::noConstraints(function () use ($relation) { - return $this->getModel()->{$relation}(); - }); - } - - /** - * Check if we can run an "exists" query to optimize performance. - * - * @param string $operator - * @param int $count - * @return bool - */ - protected function canUseExistsForExistenceCheck($operator, $count) - { - return ($operator === '>=' || $operator === '<') && $count === 1; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php deleted file mode 100644 index 8b6104c3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php +++ /dev/null @@ -1,253 +0,0 @@ -faker = $faker; - } - - /** - * Create a new factory container. - * - * @param \Faker\Generator $faker - * @param string|null $pathToFactories - * @return static - */ - public static function construct(Faker $faker, $pathToFactories = null) - { - $pathToFactories = $pathToFactories ?: database_path('factories'); - - return (new static($faker))->load($pathToFactories); - } - - /** - * Define a class with a given short-name. - * - * @param string $class - * @param string $name - * @param callable $attributes - * @return $this - */ - public function defineAs($class, $name, callable $attributes) - { - return $this->define($class, $attributes, $name); - } - - /** - * Define a class with a given set of attributes. - * - * @param string $class - * @param callable $attributes - * @param string $name - * @return $this - */ - public function define($class, callable $attributes, $name = 'default') - { - $this->definitions[$class][$name] = $attributes; - - return $this; - } - - /** - * Define a state with a given set of attributes. - * - * @param string $class - * @param string $state - * @param callable|array $attributes - * @return $this - */ - public function state($class, $state, $attributes) - { - $this->states[$class][$state] = $attributes; - - return $this; - } - - /** - * Create an instance of the given model and persist it to the database. - * - * @param string $class - * @param array $attributes - * @return mixed - */ - public function create($class, array $attributes = []) - { - return $this->of($class)->create($attributes); - } - - /** - * Create an instance of the given model and type and persist it to the database. - * - * @param string $class - * @param string $name - * @param array $attributes - * @return mixed - */ - public function createAs($class, $name, array $attributes = []) - { - return $this->of($class, $name)->create($attributes); - } - - /** - * Create an instance of the given model. - * - * @param string $class - * @param array $attributes - * @return mixed - */ - public function make($class, array $attributes = []) - { - return $this->of($class)->make($attributes); - } - - /** - * Create an instance of the given model and type. - * - * @param string $class - * @param string $name - * @param array $attributes - * @return mixed - */ - public function makeAs($class, $name, array $attributes = []) - { - return $this->of($class, $name)->make($attributes); - } - - /** - * Get the raw attribute array for a given named model. - * - * @param string $class - * @param string $name - * @param array $attributes - * @return array - */ - public function rawOf($class, $name, array $attributes = []) - { - return $this->raw($class, $attributes, $name); - } - - /** - * Get the raw attribute array for a given model. - * - * @param string $class - * @param array $attributes - * @param string $name - * @return array - */ - public function raw($class, array $attributes = [], $name = 'default') - { - return array_merge( - call_user_func($this->definitions[$class][$name], $this->faker), $attributes - ); - } - - /** - * Create a builder for the given model. - * - * @param string $class - * @param string $name - * @return \Illuminate\Database\Eloquent\FactoryBuilder - */ - public function of($class, $name = 'default') - { - return new FactoryBuilder($class, $name, $this->definitions, $this->states, $this->faker); - } - - /** - * Load factories from path. - * - * @param string $path - * @return $this - */ - public function load($path) - { - $factory = $this; - - if (is_dir($path)) { - foreach (Finder::create()->files()->name('*.php')->in($path) as $file) { - require $file->getRealPath(); - } - } - - return $factory; - } - - /** - * Determine if the given offset exists. - * - * @param string $offset - * @return bool - */ - public function offsetExists($offset) - { - return isset($this->definitions[$offset]); - } - - /** - * Get the value of the given offset. - * - * @param string $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->make($offset); - } - - /** - * Set the given offset to the given value. - * - * @param string $offset - * @param callable $value - * @return void - */ - public function offsetSet($offset, $value) - { - return $this->define($offset, $value); - } - - /** - * Unset the value at the given offset. - * - * @param string $offset - * @return void - */ - public function offsetUnset($offset) - { - unset($this->definitions[$offset]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php deleted file mode 100644 index 7a3b0230..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php +++ /dev/null @@ -1,331 +0,0 @@ -name = $name; - $this->class = $class; - $this->faker = $faker; - $this->states = $states; - $this->definitions = $definitions; - } - - /** - * Set the amount of models you wish to create / make. - * - * @param int $amount - * @return $this - */ - public function times($amount) - { - $this->amount = $amount; - - return $this; - } - - /** - * Set the states to be applied to the model. - * - * @param array|mixed $states - * @return $this - */ - public function states($states) - { - $this->activeStates = is_array($states) ? $states : func_get_args(); - - return $this; - } - - /** - * Set the database connection on which the model instance should be persisted. - * - * @param string $name - * @return $this - */ - public function connection($name) - { - $this->connection = $name; - - return $this; - } - - /** - * Create a model and persist it in the database if requested. - * - * @param array $attributes - * @return \Closure - */ - public function lazy(array $attributes = []) - { - return function () use ($attributes) { - return $this->create($attributes); - }; - } - - /** - * Create a collection of models and persist them to the database. - * - * @param array $attributes - * @return mixed - */ - public function create(array $attributes = []) - { - $results = $this->make($attributes); - - if ($results instanceof Model) { - $this->store(collect([$results])); - } else { - $this->store($results); - } - - return $results; - } - - /** - * Set the connection name on the results and store them. - * - * @param \Illuminate\Support\Collection $results - * @return void - */ - protected function store($results) - { - $results->each(function ($model) { - if (! isset($this->connection)) { - $model->setConnection($model->newQueryWithoutScopes()->getConnection()->getName()); - } - - $model->save(); - }); - } - - /** - * Create a collection of models. - * - * @param array $attributes - * @return mixed - */ - public function make(array $attributes = []) - { - if ($this->amount === null) { - return $this->makeInstance($attributes); - } - - if ($this->amount < 1) { - return (new $this->class)->newCollection(); - } - - return (new $this->class)->newCollection(array_map(function () use ($attributes) { - return $this->makeInstance($attributes); - }, range(1, $this->amount))); - } - - /** - * Create an array of raw attribute arrays. - * - * @param array $attributes - * @return mixed - */ - public function raw(array $attributes = []) - { - if ($this->amount === null) { - return $this->getRawAttributes($attributes); - } - - if ($this->amount < 1) { - return []; - } - - return array_map(function () use ($attributes) { - return $this->getRawAttributes($attributes); - }, range(1, $this->amount)); - } - - /** - * Get a raw attributes array for the model. - * - * @param array $attributes - * @return mixed - */ - protected function getRawAttributes(array $attributes = []) - { - $definition = call_user_func( - $this->definitions[$this->class][$this->name], - $this->faker, $attributes - ); - - return $this->expandAttributes( - array_merge($this->applyStates($definition, $attributes), $attributes) - ); - } - - /** - * Make an instance of the model with the given attributes. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - * - * @throws \InvalidArgumentException - */ - protected function makeInstance(array $attributes = []) - { - return Model::unguarded(function () use ($attributes) { - if (! isset($this->definitions[$this->class][$this->name])) { - throw new InvalidArgumentException("Unable to locate factory with name [{$this->name}] [{$this->class}]."); - } - - $instance = new $this->class( - $this->getRawAttributes($attributes) - ); - - if (isset($this->connection)) { - $instance->setConnection($this->connection); - } - - return $instance; - }); - } - - /** - * Apply the active states to the model definition array. - * - * @param array $definition - * @param array $attributes - * @return array - */ - protected function applyStates(array $definition, array $attributes = []) - { - foreach ($this->activeStates as $state) { - if (! isset($this->states[$this->class][$state])) { - throw new InvalidArgumentException("Unable to locate [{$state}] state for [{$this->class}]."); - } - - $definition = array_merge( - $definition, - $this->stateAttributes($state, $attributes) - ); - } - - return $definition; - } - - /** - * Get the state attributes. - * - * @param string $state - * @param array $attributes - * @return array - */ - protected function stateAttributes($state, array $attributes) - { - $stateAttributes = $this->states[$this->class][$state]; - - if (! is_callable($stateAttributes)) { - return $stateAttributes; - } - - return call_user_func( - $stateAttributes, - $this->faker, $attributes - ); - } - - /** - * Expand all attributes to their underlying values. - * - * @param array $attributes - * @return array - */ - protected function expandAttributes(array $attributes) - { - foreach ($attributes as &$attribute) { - if (is_callable($attribute) && ! is_string($attribute)) { - $attribute = $attribute($attributes); - } - - if ($attribute instanceof static) { - $attribute = $attribute->create()->getKey(); - } - - if ($attribute instanceof Model) { - $attribute = $attribute->getKey(); - } - } - - return $attributes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php deleted file mode 100644 index 5878b0f7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php +++ /dev/null @@ -1,35 +0,0 @@ -getKey().'] to JSON: '.$message); - } - - /** - * Create a new JSON encoding exception for an attribute. - * - * @param mixed $model - * @param mixed $key - * @param string $message - * @return static - */ - public static function forAttribute($model, $key, $message) - { - $class = get_class($model); - - return new static("Unable to encode attribute [{$key}] for model [{$class}] to JSON: {$message}."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php deleted file mode 100755 index 7c81aae5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php +++ /dev/null @@ -1,10 +0,0 @@ -bootIfNotBooted(); - - $this->syncOriginal(); - - $this->fill($attributes); - } - - /** - * Check if the model needs to be booted and if so, do it. - * - * @return void - */ - protected function bootIfNotBooted() - { - if (! isset(static::$booted[static::class])) { - static::$booted[static::class] = true; - - $this->fireModelEvent('booting', false); - - static::boot(); - - $this->fireModelEvent('booted', false); - } - } - - /** - * The "booting" method of the model. - * - * @return void - */ - protected static function boot() - { - static::bootTraits(); - } - - /** - * Boot all of the bootable traits on the model. - * - * @return void - */ - protected static function bootTraits() - { - $class = static::class; - - foreach (class_uses_recursive($class) as $trait) { - if (method_exists($class, $method = 'boot'.class_basename($trait))) { - forward_static_call([$class, $method]); - } - } - } - - /** - * Clear the list of booted models so they will be re-booted. - * - * @return void - */ - public static function clearBootedModels() - { - static::$booted = []; - - static::$globalScopes = []; - } - - /** - * Fill the model with an array of attributes. - * - * @param array $attributes - * @return $this - * - * @throws \Illuminate\Database\Eloquent\MassAssignmentException - */ - public function fill(array $attributes) - { - $totallyGuarded = $this->totallyGuarded(); - - foreach ($this->fillableFromArray($attributes) as $key => $value) { - $key = $this->removeTableFromKey($key); - - // The developers may choose to place some attributes in the "fillable" array - // which means only those attributes may be set through mass assignment to - // the model, and all others will just get ignored for security reasons. - if ($this->isFillable($key)) { - $this->setAttribute($key, $value); - } elseif ($totallyGuarded) { - throw new MassAssignmentException($key); - } - } - - return $this; - } - - /** - * Fill the model with an array of attributes. Force mass assignment. - * - * @param array $attributes - * @return $this - */ - public function forceFill(array $attributes) - { - return static::unguarded(function () use ($attributes) { - return $this->fill($attributes); - }); - } - - /** - * Qualify the given column name by the model's table. - * - * @param string $column - * @return string - */ - public function qualifyColumn($column) - { - if (Str::contains($column, '.')) { - return $column; - } - - return $this->getTable().'.'.$column; - } - - /** - * Remove the table name from a given key. - * - * @param string $key - * @return string - */ - protected function removeTableFromKey($key) - { - return Str::contains($key, '.') ? last(explode('.', $key)) : $key; - } - - /** - * Create a new instance of the given model. - * - * @param array $attributes - * @param bool $exists - * @return static - */ - public function newInstance($attributes = [], $exists = false) - { - // This method just provides a convenient way for us to generate fresh model - // instances of this current model. It is particularly useful during the - // hydration of new objects via the Eloquent query builder instances. - $model = new static((array) $attributes); - - $model->exists = $exists; - - $model->setConnection( - $this->getConnectionName() - ); - - return $model; - } - - /** - * Create a new model instance that is existing. - * - * @param array $attributes - * @param string|null $connection - * @return static - */ - public function newFromBuilder($attributes = [], $connection = null) - { - $model = $this->newInstance([], true); - - $model->setRawAttributes((array) $attributes, true); - - $model->setConnection($connection ?: $this->getConnectionName()); - - $model->fireModelEvent('retrieved', false); - - return $model; - } - - /** - * Begin querying the model on a given connection. - * - * @param string|null $connection - * @return \Illuminate\Database\Eloquent\Builder - */ - public static function on($connection = null) - { - // First we will just create a fresh instance of this model, and then we can - // set the connection on the model so that it is be used for the queries - // we execute, as well as being set on each relationship we retrieve. - $instance = new static; - - $instance->setConnection($connection); - - return $instance->newQuery(); - } - - /** - * Begin querying the model on the write connection. - * - * @return \Illuminate\Database\Query\Builder - */ - public static function onWriteConnection() - { - $instance = new static; - - return $instance->newQuery()->useWritePdo(); - } - - /** - * Get all of the models from the database. - * - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Collection|static[] - */ - public static function all($columns = ['*']) - { - return (new static)->newQuery()->get( - is_array($columns) ? $columns : func_get_args() - ); - } - - /** - * Begin querying a model with eager loading. - * - * @param array|string $relations - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public static function with($relations) - { - return (new static)->newQuery()->with( - is_string($relations) ? func_get_args() : $relations - ); - } - - /** - * Eager load relations on the model. - * - * @param array|string $relations - * @return $this - */ - public function load($relations) - { - $query = $this->newQueryWithoutRelationships()->with( - is_string($relations) ? func_get_args() : $relations - ); - - $query->eagerLoadRelations([$this]); - - return $this; - } - - /** - * Eager load relations on the model if they are not already eager loaded. - * - * @param array|string $relations - * @return $this - */ - public function loadMissing($relations) - { - $relations = is_string($relations) ? func_get_args() : $relations; - - return $this->load(array_filter($relations, function ($relation) { - return ! $this->relationLoaded($relation); - })); - } - - /** - * Increment a column's value by a given amount. - * - * @param string $column - * @param int $amount - * @param array $extra - * @return int - */ - protected function increment($column, $amount = 1, array $extra = []) - { - return $this->incrementOrDecrement($column, $amount, $extra, 'increment'); - } - - /** - * Decrement a column's value by a given amount. - * - * @param string $column - * @param int $amount - * @param array $extra - * @return int - */ - protected function decrement($column, $amount = 1, array $extra = []) - { - return $this->incrementOrDecrement($column, $amount, $extra, 'decrement'); - } - - /** - * Run the increment or decrement method on the model. - * - * @param string $column - * @param int $amount - * @param array $extra - * @param string $method - * @return int - */ - protected function incrementOrDecrement($column, $amount, $extra, $method) - { - $query = $this->newQuery(); - - if (! $this->exists) { - return $query->{$method}($column, $amount, $extra); - } - - $this->incrementOrDecrementAttributeValue($column, $amount, $extra, $method); - - return $query->where( - $this->getKeyName(), $this->getKey() - )->{$method}($column, $amount, $extra); - } - - /** - * Increment the underlying attribute value and sync with original. - * - * @param string $column - * @param int $amount - * @param array $extra - * @param string $method - * @return void - */ - protected function incrementOrDecrementAttributeValue($column, $amount, $extra, $method) - { - $this->{$column} = $this->{$column} + ($method == 'increment' ? $amount : $amount * -1); - - $this->forceFill($extra); - - $this->syncOriginalAttribute($column); - } - - /** - * Update the model in the database. - * - * @param array $attributes - * @param array $options - * @return bool - */ - public function update(array $attributes = [], array $options = []) - { - if (! $this->exists) { - return false; - } - - return $this->fill($attributes)->save($options); - } - - /** - * Save the model and all of its relationships. - * - * @return bool - */ - public function push() - { - if (! $this->save()) { - return false; - } - - // To sync all of the relationships to the database, we will simply spin through - // the relationships and save each model via this "push" method, which allows - // us to recurse into all of these nested relations for the model instance. - foreach ($this->relations as $models) { - $models = $models instanceof Collection - ? $models->all() : [$models]; - - foreach (array_filter($models) as $model) { - if (! $model->push()) { - return false; - } - } - } - - return true; - } - - /** - * Save the model to the database. - * - * @param array $options - * @return bool - */ - public function save(array $options = []) - { - $query = $this->newQueryWithoutScopes(); - - // If the "saving" event returns false we'll bail out of the save and return - // false, indicating that the save failed. This provides a chance for any - // listeners to cancel save operations if validations fail or whatever. - if ($this->fireModelEvent('saving') === false) { - return false; - } - - // If the model already exists in the database we can just update our record - // that is already in this database using the current IDs in this "where" - // clause to only update this model. Otherwise, we'll just insert them. - if ($this->exists) { - $saved = $this->isDirty() ? - $this->performUpdate($query) : true; - } - - // If the model is brand new, we'll insert it into our database and set the - // ID attribute on the model to the value of the newly inserted row's ID - // which is typically an auto-increment value managed by the database. - else { - $saved = $this->performInsert($query); - - if (! $this->getConnectionName() && - $connection = $query->getConnection()) { - $this->setConnection($connection->getName()); - } - } - - // If the model is successfully saved, we need to do a few more things once - // that is done. We will call the "saved" method here to run any actions - // we need to happen after a model gets successfully saved right here. - if ($saved) { - $this->finishSave($options); - } - - return $saved; - } - - /** - * Save the model to the database using transaction. - * - * @param array $options - * @return bool - * - * @throws \Throwable - */ - public function saveOrFail(array $options = []) - { - return $this->getConnection()->transaction(function () use ($options) { - return $this->save($options); - }); - } - - /** - * Perform any actions that are necessary after the model is saved. - * - * @param array $options - * @return void - */ - protected function finishSave(array $options) - { - $this->fireModelEvent('saved', false); - - if ($this->isDirty() && ($options['touch'] ?? true)) { - $this->touchOwners(); - } - - $this->syncOriginal(); - } - - /** - * Perform a model update operation. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return bool - */ - protected function performUpdate(Builder $query) - { - // If the updating event returns false, we will cancel the update operation so - // developers can hook Validation systems into their models and cancel this - // operation if the model does not pass validation. Otherwise, we update. - if ($this->fireModelEvent('updating') === false) { - return false; - } - - // First we need to create a fresh query instance and touch the creation and - // update timestamp on the model which are maintained by us for developer - // convenience. Then we will just continue saving the model instances. - if ($this->usesTimestamps()) { - $this->updateTimestamps(); - } - - // Once we have run the update operation, we will fire the "updated" event for - // this model instance. This will allow developers to hook into these after - // models are updated, giving them a chance to do any special processing. - $dirty = $this->getDirty(); - - if (count($dirty) > 0) { - $this->setKeysForSaveQuery($query)->update($dirty); - - $this->fireModelEvent('updated', false); - - $this->syncChanges(); - } - - return true; - } - - /** - * Set the keys for a save update query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function setKeysForSaveQuery(Builder $query) - { - $query->where($this->getKeyName(), '=', $this->getKeyForSaveQuery()); - - return $query; - } - - /** - * Get the primary key value for a save query. - * - * @return mixed - */ - protected function getKeyForSaveQuery() - { - return $this->original[$this->getKeyName()] - ?? $this->getKey(); - } - - /** - * Perform a model insert operation. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return bool - */ - protected function performInsert(Builder $query) - { - if ($this->fireModelEvent('creating') === false) { - return false; - } - - // First we'll need to create a fresh query instance and touch the creation and - // update timestamps on this model, which are maintained by us for developer - // convenience. After, we will just continue saving these model instances. - if ($this->usesTimestamps()) { - $this->updateTimestamps(); - } - - // If the model has an incrementing key, we can use the "insertGetId" method on - // the query builder, which will give us back the final inserted ID for this - // table from the database. Not all tables have to be incrementing though. - $attributes = $this->attributes; - - if ($this->getIncrementing()) { - $this->insertAndSetId($query, $attributes); - } - - // If the table isn't incrementing we'll simply insert these attributes as they - // are. These attribute arrays must contain an "id" column previously placed - // there by the developer as the manually determined key for these models. - else { - if (empty($attributes)) { - return true; - } - - $query->insert($attributes); - } - - // We will go ahead and set the exists property to true, so that it is set when - // the created event is fired, just in case the developer tries to update it - // during the event. This will allow them to do so and run an update here. - $this->exists = true; - - $this->wasRecentlyCreated = true; - - $this->fireModelEvent('created', false); - - return true; - } - - /** - * Insert the given attributes and set the ID on the model. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param array $attributes - * @return void - */ - protected function insertAndSetId(Builder $query, $attributes) - { - $id = $query->insertGetId($attributes, $keyName = $this->getKeyName()); - - $this->setAttribute($keyName, $id); - } - - /** - * Destroy the models for the given IDs. - * - * @param array|int $ids - * @return int - */ - public static function destroy($ids) - { - // We'll initialize a count here so we will return the total number of deletes - // for the operation. The developers can then check this number as a boolean - // type value or get this total count of records deleted for logging, etc. - $count = 0; - - $ids = is_array($ids) ? $ids : func_get_args(); - - // We will actually pull the models from the database table and call delete on - // each of them individually so that their events get fired properly with a - // correct set of attributes in case the developers wants to check these. - $key = ($instance = new static)->getKeyName(); - - foreach ($instance->whereIn($key, $ids)->get() as $model) { - if ($model->delete()) { - $count++; - } - } - - return $count; - } - - /** - * Delete the model from the database. - * - * @return bool|null - * - * @throws \Exception - */ - public function delete() - { - if (is_null($this->getKeyName())) { - throw new Exception('No primary key defined on model.'); - } - - // If the model doesn't exist, there is nothing to delete so we'll just return - // immediately and not do anything else. Otherwise, we will continue with a - // deletion process on the model, firing the proper events, and so forth. - if (! $this->exists) { - return; - } - - if ($this->fireModelEvent('deleting') === false) { - return false; - } - - // Here, we'll touch the owning models, verifying these timestamps get updated - // for the models. This will allow any caching to get broken on the parents - // by the timestamp. Then we will go ahead and delete the model instance. - $this->touchOwners(); - - $this->performDeleteOnModel(); - - // Once the model has been deleted, we will fire off the deleted event so that - // the developers may hook into post-delete operations. We will then return - // a boolean true as the delete is presumably successful on the database. - $this->fireModelEvent('deleted', false); - - return true; - } - - /** - * Force a hard delete on a soft deleted model. - * - * This method protects developers from running forceDelete when trait is missing. - * - * @return bool|null - */ - public function forceDelete() - { - return $this->delete(); - } - - /** - * Perform the actual delete query on this model instance. - * - * @return void - */ - protected function performDeleteOnModel() - { - $this->setKeysForSaveQuery($this->newQueryWithoutScopes())->delete(); - - $this->exists = false; - } - - /** - * Begin querying the model. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - public static function query() - { - return (new static)->newQuery(); - } - - /** - * Get a new query builder for the model's table. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQuery() - { - return $this->registerGlobalScopes($this->newQueryWithoutScopes()); - } - - /** - * Get a new query builder with no relationships loaded. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQueryWithoutRelationships() - { - return $this->registerGlobalScopes( - $this->newEloquentBuilder($this->newBaseQueryBuilder())->setModel($this) - ); - } - - /** - * Register the global scopes for this builder instance. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return \Illuminate\Database\Eloquent\Builder - */ - public function registerGlobalScopes($builder) - { - foreach ($this->getGlobalScopes() as $identifier => $scope) { - $builder->withGlobalScope($identifier, $scope); - } - - return $builder; - } - - /** - * Get a new query builder that doesn't have any global scopes. - * - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function newQueryWithoutScopes() - { - $builder = $this->newEloquentBuilder($this->newBaseQueryBuilder()); - - // Once we have the query builders, we will set the model instances so the - // builder can easily access any information it may need from the model - // while it is constructing and executing various queries against it. - return $builder->setModel($this) - ->with($this->with) - ->withCount($this->withCount); - } - - /** - * Get a new query instance without a given scope. - * - * @param \Illuminate\Database\Eloquent\Scope|string $scope - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQueryWithoutScope($scope) - { - $builder = $this->newQuery(); - - return $builder->withoutGlobalScope($scope); - } - - /** - * Get a new query to restore one or more models by their queueable IDs. - * - * @param array|int $ids - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQueryForRestoration($ids) - { - if (is_array($ids)) { - return $this->newQueryWithoutScopes()->whereIn($this->getQualifiedKeyName(), $ids); - } - - return $this->newQueryWithoutScopes()->whereKey($ids); - } - - /** - * Create a new Eloquent query builder for the model. - * - * @param \Illuminate\Database\Query\Builder $query - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function newEloquentBuilder($query) - { - return new Builder($query); - } - - /** - * Get a new query builder instance for the connection. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function newBaseQueryBuilder() - { - $connection = $this->getConnection(); - - return new QueryBuilder( - $connection, $connection->getQueryGrammar(), $connection->getPostProcessor() - ); - } - - /** - * Create a new Eloquent Collection instance. - * - * @param array $models - * @return \Illuminate\Database\Eloquent\Collection - */ - public function newCollection(array $models = []) - { - return new Collection($models); - } - - /** - * Create a new pivot model instance. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @param array $attributes - * @param string $table - * @param bool $exists - * @param string|null $using - * @return \Illuminate\Database\Eloquent\Relations\Pivot - */ - public function newPivot(self $parent, array $attributes, $table, $exists, $using = null) - { - return $using ? $using::fromRawAttributes($parent, $attributes, $table, $exists) - : Pivot::fromAttributes($parent, $attributes, $table, $exists); - } - - /** - * Convert the model instance to an array. - * - * @return array - */ - public function toArray() - { - return array_merge($this->attributesToArray(), $this->relationsToArray()); - } - - /** - * Convert the model instance to JSON. - * - * @param int $options - * @return string - * - * @throws \Illuminate\Database\Eloquent\JsonEncodingException - */ - public function toJson($options = 0) - { - $json = json_encode($this->jsonSerialize(), $options); - - if (JSON_ERROR_NONE !== json_last_error()) { - throw JsonEncodingException::forModel($this, json_last_error_msg()); - } - - return $json; - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Reload a fresh model instance from the database. - * - * @param array|string $with - * @return static|null - */ - public function fresh($with = []) - { - if (! $this->exists) { - return; - } - - return static::newQueryWithoutScopes() - ->with(is_string($with) ? func_get_args() : $with) - ->where($this->getKeyName(), $this->getKey()) - ->first(); - } - - /** - * Reload the current model instance with fresh attributes from the database. - * - * @return $this - */ - public function refresh() - { - if (! $this->exists) { - return $this; - } - - $this->setRawAttributes( - static::newQueryWithoutScopes()->findOrFail($this->getKey())->attributes - ); - - $this->load(collect($this->relations)->except('pivot')->keys()->toArray()); - - return $this; - } - - /** - * Clone the model into a new, non-existing instance. - * - * @param array|null $except - * @return \Illuminate\Database\Eloquent\Model - */ - public function replicate(array $except = null) - { - $defaults = [ - $this->getKeyName(), - $this->getCreatedAtColumn(), - $this->getUpdatedAtColumn(), - ]; - - $attributes = Arr::except( - $this->attributes, $except ? array_unique(array_merge($except, $defaults)) : $defaults - ); - - return tap(new static, function ($instance) use ($attributes) { - $instance->setRawAttributes($attributes); - - $instance->setRelations($this->relations); - }); - } - - /** - * Determine if two models have the same ID and belong to the same table. - * - * @param \Illuminate\Database\Eloquent\Model|null $model - * @return bool - */ - public function is($model) - { - return ! is_null($model) && - $this->getKey() === $model->getKey() && - $this->getTable() === $model->getTable() && - $this->getConnectionName() === $model->getConnectionName(); - } - - /** - * Determine if two models are not the same. - * - * @param \Illuminate\Database\Eloquent\Model|null $model - * @return bool - */ - public function isNot($model) - { - return ! $this->is($model); - } - - /** - * Get the database connection for the model. - * - * @return \Illuminate\Database\Connection - */ - public function getConnection() - { - return static::resolveConnection($this->getConnectionName()); - } - - /** - * Get the current connection name for the model. - * - * @return string - */ - public function getConnectionName() - { - return $this->connection; - } - - /** - * Set the connection associated with the model. - * - * @param string $name - * @return $this - */ - public function setConnection($name) - { - $this->connection = $name; - - return $this; - } - - /** - * Resolve a connection instance. - * - * @param string|null $connection - * @return \Illuminate\Database\Connection - */ - public static function resolveConnection($connection = null) - { - return static::$resolver->connection($connection); - } - - /** - * Get the connection resolver instance. - * - * @return \Illuminate\Database\ConnectionResolverInterface - */ - public static function getConnectionResolver() - { - return static::$resolver; - } - - /** - * Set the connection resolver instance. - * - * @param \Illuminate\Database\ConnectionResolverInterface $resolver - * @return void - */ - public static function setConnectionResolver(Resolver $resolver) - { - static::$resolver = $resolver; - } - - /** - * Unset the connection resolver for models. - * - * @return void - */ - public static function unsetConnectionResolver() - { - static::$resolver = null; - } - - /** - * Get the table associated with the model. - * - * @return string - */ - public function getTable() - { - if (! isset($this->table)) { - return str_replace( - '\\', '', Str::snake(Str::plural(class_basename($this))) - ); - } - - return $this->table; - } - - /** - * Set the table associated with the model. - * - * @param string $table - * @return $this - */ - public function setTable($table) - { - $this->table = $table; - - return $this; - } - - /** - * Get the primary key for the model. - * - * @return string - */ - public function getKeyName() - { - return $this->primaryKey; - } - - /** - * Set the primary key for the model. - * - * @param string $key - * @return $this - */ - public function setKeyName($key) - { - $this->primaryKey = $key; - - return $this; - } - - /** - * Get the table qualified key name. - * - * @return string - */ - public function getQualifiedKeyName() - { - return $this->qualifyColumn($this->getKeyName()); - } - - /** - * Get the auto-incrementing key type. - * - * @return string - */ - public function getKeyType() - { - return $this->keyType; - } - - /** - * Set the data type for the primary key. - * - * @param string $type - * @return $this - */ - public function setKeyType($type) - { - $this->keyType = $type; - - return $this; - } - - /** - * Get the value indicating whether the IDs are incrementing. - * - * @return bool - */ - public function getIncrementing() - { - return $this->incrementing; - } - - /** - * Set whether IDs are incrementing. - * - * @param bool $value - * @return $this - */ - public function setIncrementing($value) - { - $this->incrementing = $value; - - return $this; - } - - /** - * Get the value of the model's primary key. - * - * @return mixed - */ - public function getKey() - { - return $this->getAttribute($this->getKeyName()); - } - - /** - * Get the queueable identity for the entity. - * - * @return mixed - */ - public function getQueueableId() - { - return $this->getKey(); - } - - /** - * Get the queueable connection for the entity. - * - * @return mixed - */ - public function getQueueableConnection() - { - return $this->getConnectionName(); - } - - /** - * Get the value of the model's route key. - * - * @return mixed - */ - public function getRouteKey() - { - return $this->getAttribute($this->getRouteKeyName()); - } - - /** - * Get the route key for the model. - * - * @return string - */ - public function getRouteKeyName() - { - return $this->getKeyName(); - } - - /** - * Retrieve the model for a bound value. - * - * @param mixed $value - * @return \Illuminate\Database\Eloquent\Model|null - */ - public function resolveRouteBinding($value) - { - return $this->where($this->getRouteKeyName(), $value)->first(); - } - - /** - * Get the default foreign key name for the model. - * - * @return string - */ - public function getForeignKey() - { - return Str::snake(class_basename($this)).'_'.$this->primaryKey; - } - - /** - * Get the number of models to return per page. - * - * @return int - */ - public function getPerPage() - { - return $this->perPage; - } - - /** - * Set the number of models to return per page. - * - * @param int $perPage - * @return $this - */ - public function setPerPage($perPage) - { - $this->perPage = $perPage; - - return $this; - } - - /** - * Dynamically retrieve attributes on the model. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->getAttribute($key); - } - - /** - * Dynamically set attributes on the model. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this->setAttribute($key, $value); - } - - /** - * Determine if the given attribute exists. - * - * @param mixed $offset - * @return bool - */ - public function offsetExists($offset) - { - return ! is_null($this->getAttribute($offset)); - } - - /** - * Get the value for a given offset. - * - * @param mixed $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->getAttribute($offset); - } - - /** - * Set the value for a given offset. - * - * @param mixed $offset - * @param mixed $value - * @return void - */ - public function offsetSet($offset, $value) - { - $this->setAttribute($offset, $value); - } - - /** - * Unset the value for a given offset. - * - * @param mixed $offset - * @return void - */ - public function offsetUnset($offset) - { - unset($this->attributes[$offset], $this->relations[$offset]); - } - - /** - * Determine if an attribute or relation exists on the model. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return $this->offsetExists($key); - } - - /** - * Unset an attribute on the model. - * - * @param string $key - * @return void - */ - public function __unset($key) - { - $this->offsetUnset($key); - } - - /** - * Handle dynamic method calls into the model. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (in_array($method, ['increment', 'decrement'])) { - return $this->$method(...$parameters); - } - - return $this->newQuery()->$method(...$parameters); - } - - /** - * Handle dynamic static method calls into the method. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public static function __callStatic($method, $parameters) - { - return (new static)->$method(...$parameters); - } - - /** - * Convert the model to its string representation. - * - * @return string - */ - public function __toString() - { - return $this->toJson(); - } - - /** - * When a model is being unserialized, check if it needs to be booted. - * - * @return void - */ - public function __wakeup() - { - $this->bootIfNotBooted(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php deleted file mode 100755 index c3db8242..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php +++ /dev/null @@ -1,66 +0,0 @@ -model = $model; - $this->ids = Arr::wrap($ids); - - $this->message = "No query results for model [{$model}]"; - - if (count($this->ids) > 0) { - $this->message .= ' '.implode(', ', $this->ids); - } else { - $this->message .= '.'; - } - - return $this; - } - - /** - * Get the affected Eloquent model. - * - * @return string - */ - public function getModel() - { - return $this->model; - } - - /** - * Get the affected Eloquent model IDs. - * - * @return int|array - */ - public function getIds() - { - return $this->ids; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php deleted file mode 100644 index 22fccf24..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php +++ /dev/null @@ -1,29 +0,0 @@ -find($id); - - if ($instance) { - return $instance; - } - - throw new EntityNotFoundException($type, $id); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php deleted file mode 100755 index 088429cc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php +++ /dev/null @@ -1,41 +0,0 @@ -model = $model; - $instance->relation = $relation; - - return $instance; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php deleted file mode 100755 index 7ba395bb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php +++ /dev/null @@ -1,362 +0,0 @@ -ownerKey = $ownerKey; - $this->relation = $relation; - $this->foreignKey = $foreignKey; - - // In the underlying base relationship class, this variable is referred to as - // the "parent" since most relationships are not inversed. But, since this - // one is we will create a "child" variable for much better readability. - $this->child = $child; - - parent::__construct($query, $child); - } - - /** - * Get the results of the relationship. - * - * @return mixed - */ - public function getResults() - { - return $this->query->first() ?: $this->getDefaultFor($this->parent); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - if (static::$constraints) { - // For belongs to relationships, which are essentially the inverse of has one - // or has many relationships, we need to actually query on the primary key - // of the related models matching on the foreign key that's on a parent. - $table = $this->related->getTable(); - - $this->query->where($table.'.'.$this->ownerKey, '=', $this->child->{$this->foreignKey}); - } - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - // We'll grab the primary key name of the related models since it could be set to - // a non-standard name and not "id". We will then construct the constraint for - // our eagerly loading query so it returns the proper models from execution. - $key = $this->related->getTable().'.'.$this->ownerKey; - - $this->query->whereIn($key, $this->getEagerModelKeys($models)); - } - - /** - * Gather the keys from an array of related models. - * - * @param array $models - * @return array - */ - protected function getEagerModelKeys(array $models) - { - $keys = []; - - // First we need to gather all of the keys from the parent models so we know what - // to query for via the eager loading query. We will add them to an array then - // execute a "where in" statement to gather up all of those related records. - foreach ($models as $model) { - if (! is_null($value = $model->{$this->foreignKey})) { - $keys[] = $value; - } - } - - // If there are no keys that were not null we will just return an array with null - // so this query wont fail plus returns zero results, which should be what the - // developer expects to happen in this situation. Otherwise we'll sort them. - if (count($keys) === 0) { - return [null]; - } - - sort($keys); - - return array_values(array_unique($keys)); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->getDefaultFor($model)); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - $foreign = $this->foreignKey; - - $owner = $this->ownerKey; - - // First we will get to build a dictionary of the child models by their primary - // key of the relationship, then we can easily match the children back onto - // the parents using that dictionary and the primary key of the children. - $dictionary = []; - - foreach ($results as $result) { - $dictionary[$result->getAttribute($owner)] = $result; - } - - // Once we have the dictionary constructed, we can loop through all the parents - // and match back onto their children using these keys of the dictionary and - // the primary key of the children to map them onto the correct instances. - foreach ($models as $model) { - if (isset($dictionary[$model->{$foreign}])) { - $model->setRelation($relation, $dictionary[$model->{$foreign}]); - } - } - - return $models; - } - - /** - * Update the parent model on the relationship. - * - * @param array $attributes - * @return mixed - */ - public function update(array $attributes) - { - return $this->getResults()->fill($attributes)->save(); - } - - /** - * Associate the model instance to the given parent. - * - * @param \Illuminate\Database\Eloquent\Model|int|string $model - * @return \Illuminate\Database\Eloquent\Model - */ - public function associate($model) - { - $ownerKey = $model instanceof Model ? $model->getAttribute($this->ownerKey) : $model; - - $this->child->setAttribute($this->foreignKey, $ownerKey); - - if ($model instanceof Model) { - $this->child->setRelation($this->relation, $model); - } - - return $this->child; - } - - /** - * Dissociate previously associated model from the given parent. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function dissociate() - { - $this->child->setAttribute($this->foreignKey, null); - - return $this->child->setRelation($this->relation, null); - } - - /** - * Add the constraints for a relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - if ($parentQuery->getQuery()->from == $query->getQuery()->from) { - return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns); - } - - return $query->select($columns)->whereColumn( - $this->getQualifiedForeignKey(), '=', $query->qualifyColumn($this->ownerKey) - ); - } - - /** - * Add the constraints for a relationship query on the same table. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*']) - { - $query->select($columns)->from( - $query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash() - ); - - $query->getModel()->setTable($hash); - - return $query->whereColumn( - $hash.'.'.$query->getModel()->getKeyName(), '=', $this->getQualifiedForeignKey() - ); - } - - /** - * Get a relationship join table hash. - * - * @return string - */ - public function getRelationCountHash() - { - return 'laravel_reserved_'.static::$selfJoinCount++; - } - - /** - * Determine if the related model has an auto-incrementing ID. - * - * @return bool - */ - protected function relationHasIncrementingId() - { - return $this->related->getIncrementing() && - $this->related->getKeyType() === 'int'; - } - - /** - * Make a new related instance for the given model. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @return \Illuminate\Database\Eloquent\Model - */ - protected function newRelatedInstanceFor(Model $parent) - { - return $this->related->newInstance(); - } - - /** - * Get the foreign key of the relationship. - * - * @return string - */ - public function getForeignKey() - { - return $this->foreignKey; - } - - /** - * Get the fully qualified foreign key of the relationship. - * - * @return string - */ - public function getQualifiedForeignKey() - { - return $this->child->qualifyColumn($this->foreignKey); - } - - /** - * Get the associated key of the relationship. - * - * @return string - */ - public function getOwnerKey() - { - return $this->ownerKey; - } - - /** - * Get the fully qualified associated key of the relationship. - * - * @return string - */ - public function getQualifiedOwnerKeyName() - { - return $this->related->qualifyColumn($this->ownerKey); - } - - /** - * Get the name of the relationship. - * - * @return string - */ - public function getRelation() - { - return $this->relation; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php deleted file mode 100755 index dd2863d2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php +++ /dev/null @@ -1,994 +0,0 @@ -table = $table; - $this->parentKey = $parentKey; - $this->relatedKey = $relatedKey; - $this->relationName = $relationName; - $this->relatedPivotKey = $relatedPivotKey; - $this->foreignPivotKey = $foreignPivotKey; - - parent::__construct($query, $parent); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - $this->performJoin(); - - if (static::$constraints) { - $this->addWhereConstraints(); - } - } - - /** - * Set the join clause for the relation query. - * - * @param \Illuminate\Database\Eloquent\Builder|null $query - * @return $this - */ - protected function performJoin($query = null) - { - $query = $query ?: $this->query; - - // We need to join to the intermediate table on the related model's primary - // key column with the intermediate table's foreign key for the related - // model instance. Then we can set the "where" for the parent models. - $baseTable = $this->related->getTable(); - - $key = $baseTable.'.'.$this->relatedKey; - - $query->join($this->table, $key, '=', $this->getQualifiedRelatedPivotKeyName()); - - return $this; - } - - /** - * Set the where clause for the relation query. - * - * @return $this - */ - protected function addWhereConstraints() - { - $this->query->where( - $this->getQualifiedForeignPivotKeyName(), '=', $this->parent->{$this->parentKey} - ); - - return $this; - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - $this->query->whereIn($this->getQualifiedForeignPivotKeyName(), $this->getKeys($models, $this->parentKey)); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->related->newCollection()); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - $dictionary = $this->buildDictionary($results); - - // Once we have an array dictionary of child objects we can easily match the - // children back to their parent using the dictionary and the keys on the - // the parent models. Then we will return the hydrated models back out. - foreach ($models as $model) { - if (isset($dictionary[$key = $model->{$this->parentKey}])) { - $model->setRelation( - $relation, $this->related->newCollection($dictionary[$key]) - ); - } - } - - return $models; - } - - /** - * Build model dictionary keyed by the relation's foreign key. - * - * @param \Illuminate\Database\Eloquent\Collection $results - * @return array - */ - protected function buildDictionary(Collection $results) - { - // First we will build a dictionary of child models keyed by the foreign key - // of the relation so that we will easily and quickly match them to their - // parents without having a possibly slow inner loops for every models. - $dictionary = []; - - foreach ($results as $result) { - $dictionary[$result->{$this->accessor}->{$this->foreignPivotKey}][] = $result; - } - - return $dictionary; - } - - /** - * Specify the custom pivot model to use for the relationship. - * - * @param string $class - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function using($class) - { - $this->using = $class; - - return $this; - } - - /** - * Specify the custom pivot accessor to use for the relationship. - * - * @param string $accessor - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function as($accessor) - { - $this->accessor = $accessor; - - return $this; - } - - /** - * Set a where clause for a pivot table column. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function wherePivot($column, $operator = null, $value = null, $boolean = 'and') - { - $this->pivotWheres[] = func_get_args(); - - return $this->where($this->table.'.'.$column, $operator, $value, $boolean); - } - - /** - * Set a "where in" clause for a pivot table column. - * - * @param string $column - * @param mixed $values - * @param string $boolean - * @param bool $not - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function wherePivotIn($column, $values, $boolean = 'and', $not = false) - { - $this->pivotWhereIns[] = func_get_args(); - - return $this->whereIn($this->table.'.'.$column, $values, $boolean, $not); - } - - /** - * Set an "or where" clause for a pivot table column. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function orWherePivot($column, $operator = null, $value = null) - { - return $this->wherePivot($column, $operator, $value, 'or'); - } - - /** - * Set an "or where in" clause for a pivot table column. - * - * @param string $column - * @param mixed $values - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function orWherePivotIn($column, $values) - { - return $this->wherePivotIn($column, $values, 'or'); - } - - /** - * Find a related model by its primary key or return new instance of the related model. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model - */ - public function findOrNew($id, $columns = ['*']) - { - if (is_null($instance = $this->find($id, $columns))) { - $instance = $this->related->newInstance(); - } - - return $instance; - } - - /** - * Get the first related model record matching the attributes or instantiate it. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrNew(array $attributes) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->related->newInstance($attributes); - } - - return $instance; - } - - /** - * Get the first related record matching the attributes or create it. - * - * @param array $attributes - * @param array $joining - * @param bool $touch - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrCreate(array $attributes, array $joining = [], $touch = true) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->create($attributes, $joining, $touch); - } - - return $instance; - } - - /** - * Create or update a related record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @param array $joining - * @param bool $touch - * @return \Illuminate\Database\Eloquent\Model - */ - public function updateOrCreate(array $attributes, array $values = [], array $joining = [], $touch = true) - { - if (is_null($instance = $this->where($attributes)->first())) { - return $this->create($values, $joining, $touch); - } - - $instance->fill($values); - - $instance->save(['touch' => false]); - - return $instance; - } - - /** - * Find a related model by its primary key. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|null - */ - public function find($id, $columns = ['*']) - { - return is_array($id) ? $this->findMany($id, $columns) : $this->where( - $this->getRelated()->getQualifiedKeyName(), '=', $id - )->first($columns); - } - - /** - * Find multiple related models by their primary keys. - * - * @param mixed $ids - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function findMany($ids, $columns = ['*']) - { - return empty($ids) ? $this->getRelated()->newCollection() : $this->whereIn( - $this->getRelated()->getQualifiedKeyName(), $ids - )->get($columns); - } - - /** - * Find a related model by its primary key or throw an exception. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function findOrFail($id, $columns = ['*']) - { - $result = $this->find($id, $columns); - - if (is_array($id)) { - if (count($result) == count(array_unique($id))) { - return $result; - } - } elseif (! is_null($result)) { - return $result; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->related)); - } - - /** - * Execute the query and get the first result. - * - * @param array $columns - * @return mixed - */ - public function first($columns = ['*']) - { - $results = $this->take(1)->get($columns); - - return count($results) > 0 ? $results->first() : null; - } - - /** - * Execute the query and get the first result or throw an exception. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|static - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function firstOrFail($columns = ['*']) - { - if (! is_null($model = $this->first($columns))) { - return $model; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->related)); - } - - /** - * Get the results of the relationship. - * - * @return mixed - */ - public function getResults() - { - return $this->get(); - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function get($columns = ['*']) - { - // First we'll add the proper select columns onto the query so it is run with - // the proper columns. Then, we will get the results and hydrate out pivot - // models with the result of those columns as a separate model relation. - $columns = $this->query->getQuery()->columns ? [] : $columns; - - $builder = $this->query->applyScopes(); - - $models = $builder->addSelect( - $this->shouldSelect($columns) - )->getModels(); - - $this->hydratePivotRelation($models); - - // If we actually found models we will also eager load any relationships that - // have been specified as needing to be eager loaded. This will solve the - // n + 1 query problem for the developer and also increase performance. - if (count($models) > 0) { - $models = $builder->eagerLoadRelations($models); - } - - return $this->related->newCollection($models); - } - - /** - * Get the select columns for the relation query. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - protected function shouldSelect(array $columns = ['*']) - { - if ($columns == ['*']) { - $columns = [$this->related->getTable().'.*']; - } - - return array_merge($columns, $this->aliasedPivotColumns()); - } - - /** - * Get the pivot columns for the relation. - * - * "pivot_" is prefixed ot each column for easy removal later. - * - * @return array - */ - protected function aliasedPivotColumns() - { - $defaults = [$this->foreignPivotKey, $this->relatedPivotKey]; - - return collect(array_merge($defaults, $this->pivotColumns))->map(function ($column) { - return $this->table.'.'.$column.' as pivot_'.$column; - })->unique()->all(); - } - - /** - * Get a paginator for the "select" statement. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - */ - public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $this->query->addSelect($this->shouldSelect($columns)); - - return tap($this->query->paginate($perPage, $columns, $pageName, $page), function ($paginator) { - $this->hydratePivotRelation($paginator->items()); - }); - } - - /** - * Paginate the given query into a simple paginator. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - */ - public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $this->query->addSelect($this->shouldSelect($columns)); - - return tap($this->query->simplePaginate($perPage, $columns, $pageName, $page), function ($paginator) { - $this->hydratePivotRelation($paginator->items()); - }); - } - - /** - * Chunk the results of the query. - * - * @param int $count - * @param callable $callback - * @return bool - */ - public function chunk($count, callable $callback) - { - $this->query->addSelect($this->shouldSelect()); - - return $this->query->chunk($count, function ($results) use ($callback) { - $this->hydratePivotRelation($results->all()); - - return $callback($results); - }); - } - - /** - * Hydrate the pivot table relationship on the models. - * - * @param array $models - * @return void - */ - protected function hydratePivotRelation(array $models) - { - // To hydrate the pivot relationship, we will just gather the pivot attributes - // and create a new Pivot model, which is basically a dynamic model that we - // will set the attributes, table, and connections on it so it will work. - foreach ($models as $model) { - $model->setRelation($this->accessor, $this->newExistingPivot( - $this->migratePivotAttributes($model) - )); - } - } - - /** - * Get the pivot attributes from a model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return array - */ - protected function migratePivotAttributes(Model $model) - { - $values = []; - - foreach ($model->getAttributes() as $key => $value) { - // To get the pivots attributes we will just take any of the attributes which - // begin with "pivot_" and add those to this arrays, as well as unsetting - // them from the parent's models since they exist in a different table. - if (strpos($key, 'pivot_') === 0) { - $values[substr($key, 6)] = $value; - - unset($model->$key); - } - } - - return $values; - } - - /** - * If we're touching the parent model, touch. - * - * @return void - */ - public function touchIfTouching() - { - if ($this->touchingParent()) { - $this->getParent()->touch(); - } - - if ($this->getParent()->touches($this->relationName)) { - $this->touch(); - } - } - - /** - * Determine if we should touch the parent on sync. - * - * @return bool - */ - protected function touchingParent() - { - return $this->getRelated()->touches($this->guessInverseRelation()); - } - - /** - * Attempt to guess the name of the inverse of the relation. - * - * @return string - */ - protected function guessInverseRelation() - { - return Str::camel(Str::plural(class_basename($this->getParent()))); - } - - /** - * Touch all of the related models for the relationship. - * - * E.g.: Touch all roles associated with this user. - * - * @return void - */ - public function touch() - { - $key = $this->getRelated()->getKeyName(); - - $columns = [ - $this->related->getUpdatedAtColumn() => $this->related->freshTimestampString(), - ]; - - // If we actually have IDs for the relation, we will run the query to update all - // the related model's timestamps, to make sure these all reflect the changes - // to the parent models. This will help us keep any caching synced up here. - if (count($ids = $this->allRelatedIds()) > 0) { - $this->getRelated()->newQuery()->whereIn($key, $ids)->update($columns); - } - } - - /** - * Get all of the IDs for the related models. - * - * @return \Illuminate\Support\Collection - */ - public function allRelatedIds() - { - return $this->newPivotQuery()->pluck($this->relatedPivotKey); - } - - /** - * Save a new model and attach it to the parent model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @param array $pivotAttributes - * @param bool $touch - * @return \Illuminate\Database\Eloquent\Model - */ - public function save(Model $model, array $pivotAttributes = [], $touch = true) - { - $model->save(['touch' => false]); - - $this->attach($model->getKey(), $pivotAttributes, $touch); - - return $model; - } - - /** - * Save an array of new models and attach them to the parent model. - * - * @param \Illuminate\Support\Collection|array $models - * @param array $pivotAttributes - * @return array - */ - public function saveMany($models, array $pivotAttributes = []) - { - foreach ($models as $key => $model) { - $this->save($model, (array) ($pivotAttributes[$key] ?? []), false); - } - - $this->touchIfTouching(); - - return $models; - } - - /** - * Create a new instance of the related model. - * - * @param array $attributes - * @param array $joining - * @param bool $touch - * @return \Illuminate\Database\Eloquent\Model - */ - public function create(array $attributes = [], array $joining = [], $touch = true) - { - $instance = $this->related->newInstance($attributes); - - // Once we save the related model, we need to attach it to the base model via - // through intermediate table so we'll use the existing "attach" method to - // accomplish this which will insert the record and any more attributes. - $instance->save(['touch' => false]); - - $this->attach($instance->getKey(), $joining, $touch); - - return $instance; - } - - /** - * Create an array of new instances of the related models. - * - * @param array $records - * @param array $joinings - * @return array - */ - public function createMany(array $records, array $joinings = []) - { - $instances = []; - - foreach ($records as $key => $record) { - $instances[] = $this->create($record, (array) ($joinings[$key] ?? []), false); - } - - $this->touchIfTouching(); - - return $instances; - } - - /** - * Add the constraints for a relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - if ($parentQuery->getQuery()->from == $query->getQuery()->from) { - return $this->getRelationExistenceQueryForSelfJoin($query, $parentQuery, $columns); - } - - $this->performJoin($query); - - return parent::getRelationExistenceQuery($query, $parentQuery, $columns); - } - - /** - * Add the constraints for a relationship query on the same table. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQueryForSelfJoin(Builder $query, Builder $parentQuery, $columns = ['*']) - { - $query->select($columns); - - $query->from($this->related->getTable().' as '.$hash = $this->getRelationCountHash()); - - $this->related->setTable($hash); - - $this->performJoin($query); - - return parent::getRelationExistenceQuery($query, $parentQuery, $columns); - } - - /** - * Get the key for comparing against the parent key in "has" query. - * - * @return string - */ - public function getExistenceCompareKey() - { - return $this->getQualifiedForeignPivotKeyName(); - } - - /** - * Get a relationship join table hash. - * - * @return string - */ - public function getRelationCountHash() - { - return 'laravel_reserved_'.static::$selfJoinCount++; - } - - /** - * Specify that the pivot table has creation and update timestamps. - * - * @param mixed $createdAt - * @param mixed $updatedAt - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function withTimestamps($createdAt = null, $updatedAt = null) - { - $this->withTimestamps = true; - - $this->pivotCreatedAt = $createdAt; - $this->pivotUpdatedAt = $updatedAt; - - return $this->withPivot($this->createdAt(), $this->updatedAt()); - } - - /** - * Get the name of the "created at" column. - * - * @return string - */ - public function createdAt() - { - return $this->pivotCreatedAt ?: $this->parent->getCreatedAtColumn(); - } - - /** - * Get the name of the "updated at" column. - * - * @return string - */ - public function updatedAt() - { - return $this->pivotUpdatedAt ?: $this->parent->getUpdatedAtColumn(); - } - - /** - * Get the foreign key for the relation. - * - * @return string - */ - public function getForeignPivotKeyName() - { - return $this->foreignPivotKey; - } - - /** - * Get the fully qualified foreign key for the relation. - * - * @return string - */ - public function getQualifiedForeignPivotKeyName() - { - return $this->table.'.'.$this->foreignPivotKey; - } - - /** - * Get the "related key" for the relation. - * - * @return string - */ - public function getRelatedPivotKeyName() - { - return $this->relatedPivotKey; - } - - /** - * Get the fully qualified "related key" for the relation. - * - * @return string - */ - public function getQualifiedRelatedPivotKeyName() - { - return $this->table.'.'.$this->relatedPivotKey; - } - - /** - * Get the fully qualified parent key name for the relation. - * - * @return string - */ - public function getQualifiedParentKeyName() - { - return $this->parent->qualifyColumn($this->parentKey); - } - - /** - * Get the intermediate table for the relationship. - * - * @return string - */ - public function getTable() - { - return $this->table; - } - - /** - * Get the relationship name for the relationship. - * - * @return string - */ - public function getRelationName() - { - return $this->relationName; - } - - /** - * Get the name of the pivot accessor for this relationship. - * - * @return string - */ - public function getPivotAccessor() - { - return $this->accessor; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php deleted file mode 100644 index 83da64e8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php +++ /dev/null @@ -1,517 +0,0 @@ - [], 'detached' => [], - ]; - - $records = $this->formatRecordsList($this->parseIds($ids)); - - // Next, we will determine which IDs should get removed from the join table by - // checking which of the given ID/records is in the list of current records - // and removing all of those rows from this "intermediate" joining table. - $detach = array_values(array_intersect( - $this->newPivotQuery()->pluck($this->relatedPivotKey)->all(), - array_keys($records) - )); - - if (count($detach) > 0) { - $this->detach($detach, false); - - $changes['detached'] = $this->castKeys($detach); - } - - // Finally, for all of the records which were not "detached", we'll attach the - // records into the intermediate table. Then, we will add those attaches to - // this change list and get ready to return these results to the callers. - $attach = array_diff_key($records, array_flip($detach)); - - if (count($attach) > 0) { - $this->attach($attach, [], false); - - $changes['attached'] = array_keys($attach); - } - - // Once we have finished attaching or detaching the records, we will see if we - // have done any attaching or detaching, and if we have we will touch these - // relationships if they are configured to touch on any database updates. - if ($touch && (count($changes['attached']) || - count($changes['detached']))) { - $this->touchIfTouching(); - } - - return $changes; - } - - /** - * Sync the intermediate tables with a list of IDs without detaching. - * - * @param \Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection|array $ids - * @return array - */ - public function syncWithoutDetaching($ids) - { - return $this->sync($ids, false); - } - - /** - * Sync the intermediate tables with a list of IDs or collection of models. - * - * @param \Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection|array $ids - * @param bool $detaching - * @return array - */ - public function sync($ids, $detaching = true) - { - $changes = [ - 'attached' => [], 'detached' => [], 'updated' => [], - ]; - - // First we need to attach any of the associated models that are not currently - // in this joining table. We'll spin through the given IDs, checking to see - // if they exist in the array of current ones, and if not we will insert. - $current = $this->newPivotQuery()->pluck( - $this->relatedPivotKey - )->all(); - - $detach = array_diff($current, array_keys( - $records = $this->formatRecordsList($this->parseIds($ids)) - )); - - // Next, we will take the differences of the currents and given IDs and detach - // all of the entities that exist in the "current" array but are not in the - // array of the new IDs given to the method which will complete the sync. - if ($detaching && count($detach) > 0) { - $this->detach($detach); - - $changes['detached'] = $this->castKeys($detach); - } - - // Now we are finally ready to attach the new records. Note that we'll disable - // touching until after the entire operation is complete so we don't fire a - // ton of touch operations until we are totally done syncing the records. - $changes = array_merge( - $changes, $this->attachNew($records, $current, false) - ); - - // Once we have finished attaching or detaching the records, we will see if we - // have done any attaching or detaching, and if we have we will touch these - // relationships if they are configured to touch on any database updates. - if (count($changes['attached']) || - count($changes['updated'])) { - $this->touchIfTouching(); - } - - return $changes; - } - - /** - * Format the sync / toggle record list so that it is keyed by ID. - * - * @param array $records - * @return array - */ - protected function formatRecordsList(array $records) - { - return collect($records)->mapWithKeys(function ($attributes, $id) { - if (! is_array($attributes)) { - list($id, $attributes) = [$attributes, []]; - } - - return [$id => $attributes]; - })->all(); - } - - /** - * Attach all of the records that aren't in the given current records. - * - * @param array $records - * @param array $current - * @param bool $touch - * @return array - */ - protected function attachNew(array $records, array $current, $touch = true) - { - $changes = ['attached' => [], 'updated' => []]; - - foreach ($records as $id => $attributes) { - // If the ID is not in the list of existing pivot IDs, we will insert a new pivot - // record, otherwise, we will just update this existing record on this joining - // table, so that the developers will easily update these records pain free. - if (! in_array($id, $current)) { - $this->attach($id, $attributes, $touch); - - $changes['attached'][] = $this->castKey($id); - } - - // Now we'll try to update an existing pivot record with the attributes that were - // given to the method. If the model is actually updated we will add it to the - // list of updated pivot records so we return them back out to the consumer. - elseif (count($attributes) > 0 && - $this->updateExistingPivot($id, $attributes, $touch)) { - $changes['updated'][] = $this->castKey($id); - } - } - - return $changes; - } - - /** - * Update an existing pivot record on the table. - * - * @param mixed $id - * @param array $attributes - * @param bool $touch - * @return int - */ - public function updateExistingPivot($id, array $attributes, $touch = true) - { - if (in_array($this->updatedAt(), $this->pivotColumns)) { - $attributes = $this->addTimestampsToAttachment($attributes, true); - } - - $updated = $this->newPivotStatementForId($id)->update( - $this->castAttributes($attributes) - ); - - if ($touch) { - $this->touchIfTouching(); - } - - return $updated; - } - - /** - * Attach a model to the parent. - * - * @param mixed $id - * @param array $attributes - * @param bool $touch - * @return void - */ - public function attach($id, array $attributes = [], $touch = true) - { - // Here we will insert the attachment records into the pivot table. Once we have - // inserted the records, we will touch the relationships if necessary and the - // function will return. We can parse the IDs before inserting the records. - $this->newPivotStatement()->insert($this->formatAttachRecords( - $this->parseIds($id), $attributes - )); - - if ($touch) { - $this->touchIfTouching(); - } - } - - /** - * Create an array of records to insert into the pivot table. - * - * @param array $ids - * @param array $attributes - * @return array - */ - protected function formatAttachRecords($ids, array $attributes) - { - $records = []; - - $hasTimestamps = ($this->hasPivotColumn($this->createdAt()) || - $this->hasPivotColumn($this->updatedAt())); - - // To create the attachment records, we will simply spin through the IDs given - // and create a new record to insert for each ID. Each ID may actually be a - // key in the array, with extra attributes to be placed in other columns. - foreach ($ids as $key => $value) { - $records[] = $this->formatAttachRecord( - $key, $value, $attributes, $hasTimestamps - ); - } - - return $records; - } - - /** - * Create a full attachment record payload. - * - * @param int $key - * @param mixed $value - * @param array $attributes - * @param bool $hasTimestamps - * @return array - */ - protected function formatAttachRecord($key, $value, $attributes, $hasTimestamps) - { - list($id, $attributes) = $this->extractAttachIdAndAttributes($key, $value, $attributes); - - return array_merge( - $this->baseAttachRecord($id, $hasTimestamps), $this->castAttributes($attributes) - ); - } - - /** - * Get the attach record ID and extra attributes. - * - * @param mixed $key - * @param mixed $value - * @param array $attributes - * @return array - */ - protected function extractAttachIdAndAttributes($key, $value, array $attributes) - { - return is_array($value) - ? [$key, array_merge($value, $attributes)] - : [$value, $attributes]; - } - - /** - * Create a new pivot attachment record. - * - * @param int $id - * @param bool $timed - * @return array - */ - protected function baseAttachRecord($id, $timed) - { - $record[$this->relatedPivotKey] = $id; - - $record[$this->foreignPivotKey] = $this->parent->{$this->parentKey}; - - // If the record needs to have creation and update timestamps, we will make - // them by calling the parent model's "freshTimestamp" method which will - // provide us with a fresh timestamp in this model's preferred format. - if ($timed) { - $record = $this->addTimestampsToAttachment($record); - } - - return $record; - } - - /** - * Set the creation and update timestamps on an attach record. - * - * @param array $record - * @param bool $exists - * @return array - */ - protected function addTimestampsToAttachment(array $record, $exists = false) - { - $fresh = $this->parent->freshTimestamp(); - - if (! $exists && $this->hasPivotColumn($this->createdAt())) { - $record[$this->createdAt()] = $fresh; - } - - if ($this->hasPivotColumn($this->updatedAt())) { - $record[$this->updatedAt()] = $fresh; - } - - return $record; - } - - /** - * Determine whether the given column is defined as a pivot column. - * - * @param string $column - * @return bool - */ - protected function hasPivotColumn($column) - { - return in_array($column, $this->pivotColumns); - } - - /** - * Detach models from the relationship. - * - * @param mixed $ids - * @param bool $touch - * @return int - */ - public function detach($ids = null, $touch = true) - { - $query = $this->newPivotQuery(); - - // If associated IDs were passed to the method we will only delete those - // associations, otherwise all of the association ties will be broken. - // We'll return the numbers of affected rows when we do the deletes. - if (! is_null($ids)) { - $ids = $this->parseIds($ids); - - if (empty($ids)) { - return 0; - } - - $query->whereIn($this->relatedPivotKey, (array) $ids); - } - - // Once we have all of the conditions set on the statement, we are ready - // to run the delete on the pivot table. Then, if the touch parameter - // is true, we will go ahead and touch all related models to sync. - $results = $query->delete(); - - if ($touch) { - $this->touchIfTouching(); - } - - return $results; - } - - /** - * Create a new pivot model instance. - * - * @param array $attributes - * @param bool $exists - * @return \Illuminate\Database\Eloquent\Relations\Pivot - */ - public function newPivot(array $attributes = [], $exists = false) - { - $pivot = $this->related->newPivot( - $this->parent, $attributes, $this->table, $exists, $this->using - ); - - return $pivot->setPivotKeys($this->foreignPivotKey, $this->relatedPivotKey); - } - - /** - * Create a new existing pivot model instance. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Relations\Pivot - */ - public function newExistingPivot(array $attributes = []) - { - return $this->newPivot($attributes, true); - } - - /** - * Get a new plain query builder for the pivot table. - * - * @return \Illuminate\Database\Query\Builder - */ - public function newPivotStatement() - { - return $this->query->getQuery()->newQuery()->from($this->table); - } - - /** - * Get a new pivot statement for a given "other" ID. - * - * @param mixed $id - * @return \Illuminate\Database\Query\Builder - */ - public function newPivotStatementForId($id) - { - return $this->newPivotQuery()->where($this->relatedPivotKey, $id); - } - - /** - * Create a new query builder for the pivot table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function newPivotQuery() - { - $query = $this->newPivotStatement(); - - foreach ($this->pivotWheres as $arguments) { - call_user_func_array([$query, 'where'], $arguments); - } - - foreach ($this->pivotWhereIns as $arguments) { - call_user_func_array([$query, 'whereIn'], $arguments); - } - - return $query->where($this->foreignPivotKey, $this->parent->{$this->parentKey}); - } - - /** - * Set the columns on the pivot table to retrieve. - * - * @param array|mixed $columns - * @return $this - */ - public function withPivot($columns) - { - $this->pivotColumns = array_merge( - $this->pivotColumns, is_array($columns) ? $columns : func_get_args() - ); - - return $this; - } - - /** - * Get all of the IDs from the given mixed value. - * - * @param mixed $value - * @return array - */ - protected function parseIds($value) - { - if ($value instanceof Model) { - return [$value->getKey()]; - } - - if ($value instanceof Collection) { - return $value->modelKeys(); - } - - if ($value instanceof BaseCollection) { - return $value->toArray(); - } - - return (array) $value; - } - - /** - * Cast the given keys to integers if they are numeric and string otherwise. - * - * @param array $keys - * @return array - */ - protected function castKeys(array $keys) - { - return (array) array_map(function ($v) { - return $this->castKey($v); - }, $keys); - } - - /** - * Cast the given key to an integer if it is numeric. - * - * @param mixed $key - * @return mixed - */ - protected function castKey($key) - { - return is_numeric($key) ? (int) $key : (string) $key; - } - - /** - * Cast the given pivot attributes. - * - * @param array $attributes - * @return array - */ - protected function castAttributes($attributes) - { - return $this->using - ? $this->newPivot()->fill($attributes)->getAttributes() - : $attributes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php deleted file mode 100644 index 00efd507..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php +++ /dev/null @@ -1,63 +0,0 @@ -withDefault = $callback; - - return $this; - } - - /** - * Get the default value for this relation. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @return \Illuminate\Database\Eloquent\Model|null - */ - protected function getDefaultFor(Model $parent) - { - if (! $this->withDefault) { - return; - } - - $instance = $this->newRelatedInstanceFor($parent); - - if (is_callable($this->withDefault)) { - return call_user_func($this->withDefault, $instance) ?: $instance; - } - - if (is_array($this->withDefault)) { - $instance->forceFill($this->withDefault); - } - - return $instance; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php deleted file mode 100755 index 6149e475..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php +++ /dev/null @@ -1,47 +0,0 @@ -query->get(); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->related->newCollection()); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $this->matchMany($models, $results, $relation); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php deleted file mode 100644 index 408e42fc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php +++ /dev/null @@ -1,520 +0,0 @@ -localKey = $localKey; - $this->firstKey = $firstKey; - $this->secondKey = $secondKey; - $this->farParent = $farParent; - $this->throughParent = $throughParent; - $this->secondLocalKey = $secondLocalKey; - - parent::__construct($query, $throughParent); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - $localValue = $this->farParent[$this->localKey]; - - $this->performJoin(); - - if (static::$constraints) { - $this->query->where($this->getQualifiedFirstKeyName(), '=', $localValue); - } - } - - /** - * Set the join clause on the query. - * - * @param \Illuminate\Database\Eloquent\Builder|null $query - * @return void - */ - protected function performJoin(Builder $query = null) - { - $query = $query ?: $this->query; - - $farKey = $this->getQualifiedFarKeyName(); - - $query->join($this->throughParent->getTable(), $this->getQualifiedParentKeyName(), '=', $farKey); - - if ($this->throughParentSoftDeletes()) { - $query->whereNull($this->throughParent->getQualifiedDeletedAtColumn()); - } - } - - /** - * Get the fully qualified parent key name. - * - * @return string - */ - public function getQualifiedParentKeyName() - { - return $this->parent->qualifyColumn($this->secondLocalKey); - } - - /** - * Determine whether "through" parent of the relation uses Soft Deletes. - * - * @return bool - */ - public function throughParentSoftDeletes() - { - return in_array(SoftDeletes::class, class_uses_recursive( - get_class($this->throughParent) - )); - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - $this->query->whereIn( - $this->getQualifiedFirstKeyName(), $this->getKeys($models, $this->localKey) - ); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->related->newCollection()); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - $dictionary = $this->buildDictionary($results); - - // Once we have the dictionary we can simply spin through the parent models to - // link them up with their children using the keyed dictionary to make the - // matching very convenient and easy work. Then we'll just return them. - foreach ($models as $model) { - if (isset($dictionary[$key = $model->getAttribute($this->localKey)])) { - $model->setRelation( - $relation, $this->related->newCollection($dictionary[$key]) - ); - } - } - - return $models; - } - - /** - * Build model dictionary keyed by the relation's foreign key. - * - * @param \Illuminate\Database\Eloquent\Collection $results - * @return array - */ - protected function buildDictionary(Collection $results) - { - $dictionary = []; - - // First we will create a dictionary of models keyed by the foreign key of the - // relationship as this will allow us to quickly access all of the related - // models without having to do nested looping which will be quite slow. - foreach ($results as $result) { - $dictionary[$result->{$this->firstKey}][] = $result; - } - - return $dictionary; - } - - /** - * Get the first related model record matching the attributes or instantiate it. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrNew(array $attributes) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->related->newInstance($attributes); - } - - return $instance; - } - - /** - * Create or update a related record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function updateOrCreate(array $attributes, array $values = []) - { - $instance = $this->firstOrNew($attributes); - - $instance->fill($values)->save(); - - return $instance; - } - - /** - * Execute the query and get the first related model. - * - * @param array $columns - * @return mixed - */ - public function first($columns = ['*']) - { - $results = $this->take(1)->get($columns); - - return count($results) > 0 ? $results->first() : null; - } - - /** - * Execute the query and get the first result or throw an exception. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|static - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function firstOrFail($columns = ['*']) - { - if (! is_null($model = $this->first($columns))) { - return $model; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->related)); - } - - /** - * Find a related model by its primary key. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|null - */ - public function find($id, $columns = ['*']) - { - if (is_array($id)) { - return $this->findMany($id, $columns); - } - - return $this->where( - $this->getRelated()->getQualifiedKeyName(), '=', $id - )->first($columns); - } - - /** - * Find multiple related models by their primary keys. - * - * @param mixed $ids - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function findMany($ids, $columns = ['*']) - { - if (empty($ids)) { - return $this->getRelated()->newCollection(); - } - - return $this->whereIn( - $this->getRelated()->getQualifiedKeyName(), $ids - )->get($columns); - } - - /** - * Find a related model by its primary key or throw an exception. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function findOrFail($id, $columns = ['*']) - { - $result = $this->find($id, $columns); - - if (is_array($id)) { - if (count($result) == count(array_unique($id))) { - return $result; - } - } elseif (! is_null($result)) { - return $result; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->related)); - } - - /** - * Get the results of the relationship. - * - * @return mixed - */ - public function getResults() - { - return $this->get(); - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function get($columns = ['*']) - { - // First we'll add the proper select columns onto the query so it is run with - // the proper columns. Then, we will get the results and hydrate out pivot - // models with the result of those columns as a separate model relation. - $columns = $this->query->getQuery()->columns ? [] : $columns; - - $builder = $this->query->applyScopes(); - - $models = $builder->addSelect( - $this->shouldSelect($columns) - )->getModels(); - - // If we actually found models we will also eager load any relationships that - // have been specified as needing to be eager loaded. This will solve the - // n + 1 query problem for the developer and also increase performance. - if (count($models) > 0) { - $models = $builder->eagerLoadRelations($models); - } - - return $this->related->newCollection($models); - } - - /** - * Get a paginator for the "select" statement. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int $page - * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - */ - public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $this->query->addSelect($this->shouldSelect($columns)); - - return $this->query->paginate($perPage, $columns, $pageName, $page); - } - - /** - * Paginate the given query into a simple paginator. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - */ - public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $this->query->addSelect($this->shouldSelect($columns)); - - return $this->query->simplePaginate($perPage, $columns, $pageName, $page); - } - - /** - * Set the select clause for the relation query. - * - * @param array $columns - * @return array - */ - protected function shouldSelect(array $columns = ['*']) - { - if ($columns == ['*']) { - $columns = [$this->related->getTable().'.*']; - } - - return array_merge($columns, [$this->getQualifiedFirstKeyName()]); - } - - /** - * Add the constraints for a relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - if ($parentQuery->getQuery()->from == $query->getQuery()->from) { - return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns); - } - - $this->performJoin($query); - - return $query->select($columns)->whereColumn( - $this->getQualifiedLocalKeyName(), '=', $this->getQualifiedFirstKeyName() - ); - } - - /** - * Add the constraints for a relationship query on the same table. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*']) - { - $query->from($query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash()); - - $query->join($this->throughParent->getTable(), $this->getQualifiedParentKeyName(), '=', $hash.'.'.$this->secondLocalKey); - - if ($this->throughParentSoftDeletes()) { - $query->whereNull($this->throughParent->getQualifiedDeletedAtColumn()); - } - - $query->getModel()->setTable($hash); - - return $query->select($columns)->whereColumn( - $parentQuery->getQuery()->from.'.'.$query->getModel()->getKeyName(), '=', $this->getQualifiedFirstKeyName() - ); - } - - /** - * Get a relationship join table hash. - * - * @return string - */ - public function getRelationCountHash() - { - return 'laravel_reserved_'.static::$selfJoinCount++; - } - - /** - * Get the qualified foreign key on the related model. - * - * @return string - */ - public function getQualifiedFarKeyName() - { - return $this->getQualifiedForeignKeyName(); - } - - /** - * Get the qualified foreign key on the "through" model. - * - * @return string - */ - public function getQualifiedFirstKeyName() - { - return $this->throughParent->qualifyColumn($this->firstKey); - } - - /** - * Get the qualified foreign key on the related model. - * - * @return string - */ - public function getQualifiedForeignKeyName() - { - return $this->related->qualifyColumn($this->secondKey); - } - - /** - * Get the qualified local key on the far parent model. - * - * @return string - */ - public function getQualifiedLocalKeyName() - { - return $this->farParent->qualifyColumn($this->localKey); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php deleted file mode 100755 index 858e5d07..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php +++ /dev/null @@ -1,64 +0,0 @@ -query->first() ?: $this->getDefaultFor($this->parent); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->getDefaultFor($model)); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $this->matchOne($models, $results, $relation); - } - - /** - * Make a new related instance for the given model. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @return \Illuminate\Database\Eloquent\Model - */ - public function newRelatedInstanceFor(Model $parent) - { - return $this->related->newInstance()->setAttribute( - $this->getForeignKeyName(), $parent->{$this->localKey} - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php deleted file mode 100755 index 54850fa3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php +++ /dev/null @@ -1,423 +0,0 @@ -localKey = $localKey; - $this->foreignKey = $foreignKey; - - parent::__construct($query, $parent); - } - - /** - * Create and return an un-saved instance of the related model. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function make(array $attributes = []) - { - return tap($this->related->newInstance($attributes), function ($instance) { - $this->setForeignAttributesForCreate($instance); - }); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - if (static::$constraints) { - $this->query->where($this->foreignKey, '=', $this->getParentKey()); - - $this->query->whereNotNull($this->foreignKey); - } - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - $this->query->whereIn( - $this->foreignKey, $this->getKeys($models, $this->localKey) - ); - } - - /** - * Match the eagerly loaded results to their single parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function matchOne(array $models, Collection $results, $relation) - { - return $this->matchOneOrMany($models, $results, $relation, 'one'); - } - - /** - * Match the eagerly loaded results to their many parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function matchMany(array $models, Collection $results, $relation) - { - return $this->matchOneOrMany($models, $results, $relation, 'many'); - } - - /** - * Match the eagerly loaded results to their many parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @param string $type - * @return array - */ - protected function matchOneOrMany(array $models, Collection $results, $relation, $type) - { - $dictionary = $this->buildDictionary($results); - - // Once we have the dictionary we can simply spin through the parent models to - // link them up with their children using the keyed dictionary to make the - // matching very convenient and easy work. Then we'll just return them. - foreach ($models as $model) { - if (isset($dictionary[$key = $model->getAttribute($this->localKey)])) { - $model->setRelation( - $relation, $this->getRelationValue($dictionary, $key, $type) - ); - } - } - - return $models; - } - - /** - * Get the value of a relationship by one or many type. - * - * @param array $dictionary - * @param string $key - * @param string $type - * @return mixed - */ - protected function getRelationValue(array $dictionary, $key, $type) - { - $value = $dictionary[$key]; - - return $type == 'one' ? reset($value) : $this->related->newCollection($value); - } - - /** - * Build model dictionary keyed by the relation's foreign key. - * - * @param \Illuminate\Database\Eloquent\Collection $results - * @return array - */ - protected function buildDictionary(Collection $results) - { - $foreign = $this->getForeignKeyName(); - - return $results->mapToDictionary(function ($result) use ($foreign) { - return [$result->{$foreign} => $result]; - })->all(); - } - - /** - * Find a model by its primary key or return new instance of the related model. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model - */ - public function findOrNew($id, $columns = ['*']) - { - if (is_null($instance = $this->find($id, $columns))) { - $instance = $this->related->newInstance(); - - $this->setForeignAttributesForCreate($instance); - } - - return $instance; - } - - /** - * Get the first related model record matching the attributes or instantiate it. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrNew(array $attributes, array $values = []) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->related->newInstance($attributes + $values); - - $this->setForeignAttributesForCreate($instance); - } - - return $instance; - } - - /** - * Get the first related record matching the attributes or create it. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrCreate(array $attributes, array $values = []) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->create($attributes + $values); - } - - return $instance; - } - - /** - * Create or update a related record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function updateOrCreate(array $attributes, array $values = []) - { - return tap($this->firstOrNew($attributes), function ($instance) use ($values) { - $instance->fill($values); - - $instance->save(); - }); - } - - /** - * Attach a model instance to the parent model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return \Illuminate\Database\Eloquent\Model|false - */ - public function save(Model $model) - { - $this->setForeignAttributesForCreate($model); - - return $model->save() ? $model : false; - } - - /** - * Attach a collection of models to the parent instance. - * - * @param \Traversable|array $models - * @return \Traversable|array - */ - public function saveMany($models) - { - foreach ($models as $model) { - $this->save($model); - } - - return $models; - } - - /** - * Create a new instance of the related model. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function create(array $attributes = []) - { - return tap($this->related->newInstance($attributes), function ($instance) { - $this->setForeignAttributesForCreate($instance); - - $instance->save(); - }); - } - - /** - * Create a Collection of new instances of the related model. - * - * @param array $records - * @return \Illuminate\Database\Eloquent\Collection - */ - public function createMany(array $records) - { - $instances = $this->related->newCollection(); - - foreach ($records as $record) { - $instances->push($this->create($record)); - } - - return $instances; - } - - /** - * Set the foreign ID for creating a related model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return void - */ - protected function setForeignAttributesForCreate(Model $model) - { - $model->setAttribute($this->getForeignKeyName(), $this->getParentKey()); - } - - /** - * Perform an update on all the related models. - * - * @param array $attributes - * @return int - */ - public function update(array $attributes) - { - if ($this->related->usesTimestamps()) { - $attributes[$this->relatedUpdatedAt()] = $this->related->freshTimestampString(); - } - - return $this->query->update($attributes); - } - - /** - * Add the constraints for a relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - if ($query->getQuery()->from == $parentQuery->getQuery()->from) { - return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns); - } - - return parent::getRelationExistenceQuery($query, $parentQuery, $columns); - } - - /** - * Add the constraints for a relationship query on the same table. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*']) - { - $query->from($query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash()); - - $query->getModel()->setTable($hash); - - return $query->select($columns)->whereColumn( - $this->getQualifiedParentKeyName(), '=', $hash.'.'.$this->getForeignKeyName() - ); - } - - /** - * Get a relationship join table hash. - * - * @return string - */ - public function getRelationCountHash() - { - return 'laravel_reserved_'.static::$selfJoinCount++; - } - - /** - * Get the key for comparing against the parent key in "has" query. - * - * @return string - */ - public function getExistenceCompareKey() - { - return $this->getQualifiedForeignKeyName(); - } - - /** - * Get the key value of the parent's local key. - * - * @return mixed - */ - public function getParentKey() - { - return $this->parent->getAttribute($this->localKey); - } - - /** - * Get the fully qualified parent key name. - * - * @return string - */ - public function getQualifiedParentKeyName() - { - return $this->parent->qualifyColumn($this->localKey); - } - - /** - * Get the plain foreign key. - * - * @return string - */ - public function getForeignKeyName() - { - $segments = explode('.', $this->getQualifiedForeignKeyName()); - - return end($segments); - } - - /** - * Get the foreign key for the relationship. - * - * @return string - */ - public function getQualifiedForeignKeyName() - { - return $this->foreignKey; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php deleted file mode 100755 index e2a5c5a3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php +++ /dev/null @@ -1,47 +0,0 @@ -query->get(); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->related->newCollection()); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $this->matchMany($models, $results, $relation); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php deleted file mode 100755 index 520a7ec9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php +++ /dev/null @@ -1,64 +0,0 @@ -query->first() ?: $this->getDefaultFor($this->parent); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->getDefaultFor($model)); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $this->matchOne($models, $results, $relation); - } - - /** - * Make a new related instance for the given model. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @return \Illuminate\Database\Eloquent\Model - */ - public function newRelatedInstanceFor(Model $parent) - { - return $this->related->newInstance() - ->setAttribute($this->getForeignKeyName(), $parent->{$this->localKey}) - ->setAttribute($this->getMorphType(), $this->morphClass); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php deleted file mode 100755 index 7e300543..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php +++ /dev/null @@ -1,140 +0,0 @@ -morphType = $type; - - $this->morphClass = $parent->getMorphClass(); - - parent::__construct($query, $parent, $id, $localKey); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - if (static::$constraints) { - parent::addConstraints(); - - $this->query->where($this->morphType, $this->morphClass); - } - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - parent::addEagerConstraints($models); - - $this->query->where($this->morphType, $this->morphClass); - } - - /** - * Attach a model instance to the parent model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return \Illuminate\Database\Eloquent\Model - */ - public function save(Model $model) - { - $model->setAttribute($this->getMorphType(), $this->morphClass); - - return parent::save($model); - } - - /** - * Set the foreign ID and type for creating a related model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return void - */ - protected function setForeignAttributesForCreate(Model $model) - { - $model->{$this->getForeignKeyName()} = $this->getParentKey(); - - $model->{$this->getMorphType()} = $this->morphClass; - } - - /** - * Get the relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - return parent::getRelationExistenceQuery($query, $parentQuery, $columns)->where( - $this->morphType, $this->morphClass - ); - } - - /** - * Get the foreign key "type" name. - * - * @return string - */ - public function getQualifiedMorphType() - { - return $this->morphType; - } - - /** - * Get the plain morph type name without the table. - * - * @return string - */ - public function getMorphType() - { - return last(explode('.', $this->morphType)); - } - - /** - * Get the class name of the parent model. - * - * @return string - */ - public function getMorphClass() - { - return $this->morphClass; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php deleted file mode 100644 index b7a2f341..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php +++ /dev/null @@ -1,79 +0,0 @@ -where($this->morphType, $this->morphClass); - - return parent::setKeysForSaveQuery($query); - } - - /** - * Delete the pivot model record from the database. - * - * @return int - */ - public function delete() - { - $query = $this->getDeleteQuery(); - - $query->where($this->morphType, $this->morphClass); - - return $query->delete(); - } - - /** - * Set the morph type for the pivot. - * - * @param string $morphType - * @return $this - */ - public function setMorphType($morphType) - { - $this->morphType = $morphType; - - return $this; - } - - /** - * Set the morph class for the pivot. - * - * @param string $morphClass - * @return \Illuminate\Database\Eloquent\Relations\MorphPivot - */ - public function setMorphClass($morphClass) - { - $this->morphClass = $morphClass; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php deleted file mode 100644 index 0b5375b3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php +++ /dev/null @@ -1,279 +0,0 @@ -morphType = $type; - - parent::__construct($query, $parent, $foreignKey, $ownerKey, $relation); - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - $this->buildDictionary($this->models = Collection::make($models)); - } - - /** - * Build a dictionary with the models. - * - * @param \Illuminate\Database\Eloquent\Collection $models - * @return void - */ - protected function buildDictionary(Collection $models) - { - foreach ($models as $model) { - if ($model->{$this->morphType}) { - $this->dictionary[$model->{$this->morphType}][$model->{$this->foreignKey}][] = $model; - } - } - } - - /** - * Get the results of the relationship. - * - * @return mixed - */ - public function getResults() - { - return $this->ownerKey ? $this->query->first() : null; - } - - /** - * Get the results of the relationship. - * - * Called via eager load method of Eloquent query builder. - * - * @return mixed - */ - public function getEager() - { - foreach (array_keys($this->dictionary) as $type) { - $this->matchToMorphParents($type, $this->getResultsByType($type)); - } - - return $this->models; - } - - /** - * Get all of the relation results for a type. - * - * @param string $type - * @return \Illuminate\Database\Eloquent\Collection - */ - protected function getResultsByType($type) - { - $instance = $this->createModelByType($type); - - $query = $this->replayMacros($instance->newQuery()) - ->mergeConstraintsFrom($this->getQuery()) - ->with($this->getQuery()->getEagerLoads()); - - return $query->whereIn( - $instance->getTable().'.'.$instance->getKeyName(), $this->gatherKeysByType($type) - )->get(); - } - - /** - * Gather all of the foreign keys for a given type. - * - * @param string $type - * @return array - */ - protected function gatherKeysByType($type) - { - return collect($this->dictionary[$type])->map(function ($models) { - return head($models)->{$this->foreignKey}; - })->values()->unique()->all(); - } - - /** - * Create a new model instance by type. - * - * @param string $type - * @return \Illuminate\Database\Eloquent\Model - */ - public function createModelByType($type) - { - $class = Model::getActualClassNameForMorph($type); - - return new $class; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $models; - } - - /** - * Match the results for a given type to their parents. - * - * @param string $type - * @param \Illuminate\Database\Eloquent\Collection $results - * @return void - */ - protected function matchToMorphParents($type, Collection $results) - { - foreach ($results as $result) { - if (isset($this->dictionary[$type][$result->getKey()])) { - foreach ($this->dictionary[$type][$result->getKey()] as $model) { - $model->setRelation($this->relation, $result); - } - } - } - } - - /** - * Associate the model instance to the given parent. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return \Illuminate\Database\Eloquent\Model - */ - public function associate($model) - { - $this->parent->setAttribute( - $this->foreignKey, $model instanceof Model ? $model->getKey() : null - ); - - $this->parent->setAttribute( - $this->morphType, $model instanceof Model ? $model->getMorphClass() : null - ); - - return $this->parent->setRelation($this->relation, $model); - } - - /** - * Dissociate previously associated model from the given parent. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function dissociate() - { - $this->parent->setAttribute($this->foreignKey, null); - - $this->parent->setAttribute($this->morphType, null); - - return $this->parent->setRelation($this->relation, null); - } - - /** - * Get the foreign key "type" name. - * - * @return string - */ - public function getMorphType() - { - return $this->morphType; - } - - /** - * Get the dictionary used by the relationship. - * - * @return array - */ - public function getDictionary() - { - return $this->dictionary; - } - - /** - * Replay stored macro calls on the actual related instance. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function replayMacros(Builder $query) - { - foreach ($this->macroBuffer as $macro) { - $query->{$macro['method']}(...$macro['parameters']); - } - - return $query; - } - - /** - * Handle dynamic method calls to the relationship. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - try { - return parent::__call($method, $parameters); - } - - // If we tried to call a method that does not exist on the parent Builder instance, - // we'll assume that we want to call a query macro (e.g. withTrashed) that only - // exists on related models. We will just store the call and replay it later. - catch (BadMethodCallException $e) { - $this->macroBuffer[] = compact('method', 'parameters'); - - return $this; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php deleted file mode 100644 index 15f5cfd0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php +++ /dev/null @@ -1,168 +0,0 @@ -inverse = $inverse; - $this->morphType = $name.'_type'; - $this->morphClass = $inverse ? $query->getModel()->getMorphClass() : $parent->getMorphClass(); - - parent::__construct( - $query, $parent, $table, $foreignPivotKey, - $relatedPivotKey, $parentKey, $relatedKey, $relationName - ); - } - - /** - * Set the where clause for the relation query. - * - * @return $this - */ - protected function addWhereConstraints() - { - parent::addWhereConstraints(); - - $this->query->where($this->table.'.'.$this->morphType, $this->morphClass); - - return $this; - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - parent::addEagerConstraints($models); - - $this->query->where($this->table.'.'.$this->morphType, $this->morphClass); - } - - /** - * Create a new pivot attachment record. - * - * @param int $id - * @param bool $timed - * @return array - */ - protected function baseAttachRecord($id, $timed) - { - return Arr::add( - parent::baseAttachRecord($id, $timed), $this->morphType, $this->morphClass - ); - } - - /** - * Add the constraints for a relationship count query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - return parent::getRelationExistenceQuery($query, $parentQuery, $columns)->where( - $this->table.'.'.$this->morphType, $this->morphClass - ); - } - - /** - * Create a new query builder for the pivot table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function newPivotQuery() - { - return parent::newPivotQuery()->where($this->morphType, $this->morphClass); - } - - /** - * Create a new pivot model instance. - * - * @param array $attributes - * @param bool $exists - * @return \Illuminate\Database\Eloquent\Relations\Pivot - */ - public function newPivot(array $attributes = [], $exists = false) - { - $using = $this->using; - - $pivot = $using ? $using::fromRawAttributes($this->parent, $attributes, $this->table, $exists) - : MorphPivot::fromAttributes($this->parent, $attributes, $this->table, $exists); - - $pivot->setPivotKeys($this->foreignPivotKey, $this->relatedPivotKey) - ->setMorphType($this->morphType) - ->setMorphClass($this->morphClass); - - return $pivot; - } - - /** - * Get the foreign key "type" name. - * - * @return string - */ - public function getMorphType() - { - return $this->morphType; - } - - /** - * Get the class name of the parent model. - * - * @return string - */ - public function getMorphClass() - { - return $this->morphClass; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php deleted file mode 100755 index 4782bc02..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php +++ /dev/null @@ -1,229 +0,0 @@ -setConnection($parent->getConnectionName()) - ->setTable($table) - ->forceFill($attributes) - ->syncOriginal(); - - // We store off the parent instance so we will access the timestamp column names - // for the model, since the pivot model timestamps aren't easily configurable - // from the developer's point of view. We can use the parents to get these. - $instance->pivotParent = $parent; - - $instance->exists = $exists; - - $instance->timestamps = $instance->hasTimestampAttributes(); - - return $instance; - } - - /** - * Create a new pivot model from raw values returned from a query. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @param array $attributes - * @param string $table - * @param bool $exists - * @return static - */ - public static function fromRawAttributes(Model $parent, $attributes, $table, $exists = false) - { - $instance = static::fromAttributes($parent, $attributes, $table, $exists); - - $instance->setRawAttributes($attributes, true); - - return $instance; - } - - /** - * Set the keys for a save update query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function setKeysForSaveQuery(Builder $query) - { - if (isset($this->attributes[$this->getKeyName()])) { - return parent::setKeysForSaveQuery($query); - } - - $query->where($this->foreignKey, $this->getOriginal( - $this->foreignKey, $this->getAttribute($this->foreignKey) - )); - - return $query->where($this->relatedKey, $this->getOriginal( - $this->relatedKey, $this->getAttribute($this->relatedKey) - )); - } - - /** - * Delete the pivot model record from the database. - * - * @return int - */ - public function delete() - { - if (isset($this->attributes[$this->getKeyName()])) { - return parent::delete(); - } - - return $this->getDeleteQuery()->delete(); - } - - /** - * Get the query builder for a delete operation on the pivot. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function getDeleteQuery() - { - return $this->newQuery()->where([ - $this->foreignKey => $this->getOriginal($this->foreignKey, $this->getAttribute($this->foreignKey)), - $this->relatedKey => $this->getOriginal($this->relatedKey, $this->getAttribute($this->relatedKey)), - ]); - } - - /** - * Get the table associated with the model. - * - * @return string - */ - public function getTable() - { - if (! isset($this->table)) { - $this->setTable(str_replace( - '\\', '', Str::snake(Str::singular(class_basename($this))) - )); - } - - return $this->table; - } - - /** - * Get the foreign key column name. - * - * @return string - */ - public function getForeignKey() - { - return $this->foreignKey; - } - - /** - * Get the "related key" column name. - * - * @return string - */ - public function getRelatedKey() - { - return $this->relatedKey; - } - - /** - * Get the "related key" column name. - * - * @return string - */ - public function getOtherKey() - { - return $this->getRelatedKey(); - } - - /** - * Set the key names for the pivot model instance. - * - * @param string $foreignKey - * @param string $relatedKey - * @return $this - */ - public function setPivotKeys($foreignKey, $relatedKey) - { - $this->foreignKey = $foreignKey; - - $this->relatedKey = $relatedKey; - - return $this; - } - - /** - * Determine if the pivot model has timestamp attributes. - * - * @return bool - */ - public function hasTimestampAttributes() - { - return array_key_exists($this->getCreatedAtColumn(), $this->attributes); - } - - /** - * Get the name of the "created at" column. - * - * @return string - */ - public function getCreatedAtColumn() - { - return $this->pivotParent->getCreatedAtColumn(); - } - - /** - * Get the name of the "updated at" column. - * - * @return string - */ - public function getUpdatedAtColumn() - { - return $this->pivotParent->getUpdatedAtColumn(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php deleted file mode 100755 index c46dc358..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php +++ /dev/null @@ -1,385 +0,0 @@ -query = $query; - $this->parent = $parent; - $this->related = $query->getModel(); - - $this->addConstraints(); - } - - /** - * Run a callback with constraints disabled on the relation. - * - * @param \Closure $callback - * @return mixed - */ - public static function noConstraints(Closure $callback) - { - $previous = static::$constraints; - - static::$constraints = false; - - // When resetting the relation where clause, we want to shift the first element - // off of the bindings, leaving only the constraints that the developers put - // as "extra" on the relationships, and not original relation constraints. - try { - return call_user_func($callback); - } finally { - static::$constraints = $previous; - } - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - abstract public function addConstraints(); - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - abstract public function addEagerConstraints(array $models); - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - abstract public function initRelation(array $models, $relation); - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - abstract public function match(array $models, Collection $results, $relation); - - /** - * Get the results of the relationship. - * - * @return mixed - */ - abstract public function getResults(); - - /** - * Get the relationship for eager loading. - * - * @return \Illuminate\Database\Eloquent\Collection - */ - public function getEager() - { - return $this->get(); - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function get($columns = ['*']) - { - return $this->query->get($columns); - } - - /** - * Touch all of the related models for the relationship. - * - * @return void - */ - public function touch() - { - $column = $this->getRelated()->getUpdatedAtColumn(); - - $this->rawUpdate([$column => $this->getRelated()->freshTimestampString()]); - } - - /** - * Run a raw update against the base query. - * - * @param array $attributes - * @return int - */ - public function rawUpdate(array $attributes = []) - { - return $this->query->withoutGlobalScopes()->update($attributes); - } - - /** - * Add the constraints for a relationship count query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceCountQuery(Builder $query, Builder $parentQuery) - { - return $this->getRelationExistenceQuery( - $query, $parentQuery, new Expression('count(*)') - )->setBindings([], 'select'); - } - - /** - * Add the constraints for an internal relationship existence query. - * - * Essentially, these queries compare on column names like whereColumn. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - return $query->select($columns)->whereColumn( - $this->getQualifiedParentKeyName(), '=', $this->getExistenceCompareKey() - ); - } - - /** - * Get all of the primary keys for an array of models. - * - * @param array $models - * @param string $key - * @return array - */ - protected function getKeys(array $models, $key = null) - { - return collect($models)->map(function ($value) use ($key) { - return $key ? $value->getAttribute($key) : $value->getKey(); - })->values()->unique()->sort()->all(); - } - - /** - * Get the underlying query for the relation. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getQuery() - { - return $this->query; - } - - /** - * Get the base query builder driving the Eloquent builder. - * - * @return \Illuminate\Database\Query\Builder - */ - public function getBaseQuery() - { - return $this->query->getQuery(); - } - - /** - * Get the parent model of the relation. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function getParent() - { - return $this->parent; - } - - /** - * Get the fully qualified parent key name. - * - * @return string - */ - public function getQualifiedParentKeyName() - { - return $this->parent->getQualifiedKeyName(); - } - - /** - * Get the related model of the relation. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function getRelated() - { - return $this->related; - } - - /** - * Get the name of the "created at" column. - * - * @return string - */ - public function createdAt() - { - return $this->parent->getCreatedAtColumn(); - } - - /** - * Get the name of the "updated at" column. - * - * @return string - */ - public function updatedAt() - { - return $this->parent->getUpdatedAtColumn(); - } - - /** - * Get the name of the related model's "updated at" column. - * - * @return string - */ - public function relatedUpdatedAt() - { - return $this->related->getUpdatedAtColumn(); - } - - /** - * Set or get the morph map for polymorphic relations. - * - * @param array|null $map - * @param bool $merge - * @return array - */ - public static function morphMap(array $map = null, $merge = true) - { - $map = static::buildMorphMapFromModels($map); - - if (is_array($map)) { - static::$morphMap = $merge && static::$morphMap - ? $map + static::$morphMap : $map; - } - - return static::$morphMap; - } - - /** - * Builds a table-keyed array from model class names. - * - * @param string[]|null $models - * @return array|null - */ - protected static function buildMorphMapFromModels(array $models = null) - { - if (is_null($models) || Arr::isAssoc($models)) { - return $models; - } - - return array_combine(array_map(function ($model) { - return (new $model)->getTable(); - }, $models), $models); - } - - /** - * Get the model associated with a custom polymorphic type. - * - * @param string $alias - * @return string|null - */ - public static function getMorphedModel($alias) - { - return array_key_exists($alias, self::$morphMap) - ? self::$morphMap[$alias] - : null; - } - - /** - * Handle dynamic method calls to the relationship. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - $result = $this->query->{$method}(...$parameters); - - if ($result === $this->query) { - return $this; - } - - return $result; - } - - /** - * Force a clone of the underlying query builder when cloning. - * - * @return void - */ - public function __clone() - { - $this->query = clone $this->query; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php deleted file mode 100644 index 63cba6a5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php +++ /dev/null @@ -1,15 +0,0 @@ -forceDeleting = true; - - $deleted = $this->delete(); - - $this->forceDeleting = false; - - return $deleted; - } - - /** - * Perform the actual delete query on this model instance. - * - * @return mixed - */ - protected function performDeleteOnModel() - { - if ($this->forceDeleting) { - $this->exists = false; - - return $this->newQueryWithoutScopes()->where($this->getKeyName(), $this->getKey())->forceDelete(); - } - - return $this->runSoftDelete(); - } - - /** - * Perform the actual delete query on this model instance. - * - * @return void - */ - protected function runSoftDelete() - { - $query = $this->newQueryWithoutScopes()->where($this->getKeyName(), $this->getKey()); - - $time = $this->freshTimestamp(); - - $columns = [$this->getDeletedAtColumn() => $this->fromDateTime($time)]; - - $this->{$this->getDeletedAtColumn()} = $time; - - if ($this->timestamps && ! is_null($this->getUpdatedAtColumn())) { - $this->{$this->getUpdatedAtColumn()} = $time; - - $columns[$this->getUpdatedAtColumn()] = $this->fromDateTime($time); - } - - $query->update($columns); - } - - /** - * Restore a soft-deleted model instance. - * - * @return bool|null - */ - public function restore() - { - // If the restoring event does not return false, we will proceed with this - // restore operation. Otherwise, we bail out so the developer will stop - // the restore totally. We will clear the deleted timestamp and save. - if ($this->fireModelEvent('restoring') === false) { - return false; - } - - $this->{$this->getDeletedAtColumn()} = null; - - // Once we have saved the model, we will fire the "restored" event so this - // developer will do anything they need to after a restore operation is - // totally finished. Then we will return the result of the save call. - $this->exists = true; - - $result = $this->save(); - - $this->fireModelEvent('restored', false); - - return $result; - } - - /** - * Determine if the model instance has been soft-deleted. - * - * @return bool - */ - public function trashed() - { - return ! is_null($this->{$this->getDeletedAtColumn()}); - } - - /** - * Register a restoring model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function restoring($callback) - { - static::registerModelEvent('restoring', $callback); - } - - /** - * Register a restored model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function restored($callback) - { - static::registerModelEvent('restored', $callback); - } - - /** - * Determine if the model is currently force deleting. - * - * @return bool - */ - public function isForceDeleting() - { - return $this->forceDeleting; - } - - /** - * Get the name of the "deleted at" column. - * - * @return string - */ - public function getDeletedAtColumn() - { - return defined('static::DELETED_AT') ? static::DELETED_AT : 'deleted_at'; - } - - /** - * Get the fully qualified "deleted at" column. - * - * @return string - */ - public function getQualifiedDeletedAtColumn() - { - return $this->qualifyColumn($this->getDeletedAtColumn()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php deleted file mode 100644 index 0d516966..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php +++ /dev/null @@ -1,131 +0,0 @@ -whereNull($model->getQualifiedDeletedAtColumn()); - } - - /** - * Extend the query builder with the needed functions. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - public function extend(Builder $builder) - { - foreach ($this->extensions as $extension) { - $this->{"add{$extension}"}($builder); - } - - $builder->onDelete(function (Builder $builder) { - $column = $this->getDeletedAtColumn($builder); - - return $builder->update([ - $column => $builder->getModel()->freshTimestampString(), - ]); - }); - } - - /** - * Get the "deleted at" column for the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return string - */ - protected function getDeletedAtColumn(Builder $builder) - { - if (count((array) $builder->getQuery()->joins) > 0) { - return $builder->getModel()->getQualifiedDeletedAtColumn(); - } - - return $builder->getModel()->getDeletedAtColumn(); - } - - /** - * Add the restore extension to the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - protected function addRestore(Builder $builder) - { - $builder->macro('restore', function (Builder $builder) { - $builder->withTrashed(); - - return $builder->update([$builder->getModel()->getDeletedAtColumn() => null]); - }); - } - - /** - * Add the with-trashed extension to the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - protected function addWithTrashed(Builder $builder) - { - $builder->macro('withTrashed', function (Builder $builder, $withTrashed = true) { - if (! $withTrashed) { - return $builder->withoutTrashed(); - } - - return $builder->withoutGlobalScope($this); - }); - } - - /** - * Add the without-trashed extension to the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - protected function addWithoutTrashed(Builder $builder) - { - $builder->macro('withoutTrashed', function (Builder $builder) { - $model = $builder->getModel(); - - $builder->withoutGlobalScope($this)->whereNull( - $model->getQualifiedDeletedAtColumn() - ); - - return $builder; - }); - } - - /** - * Add the only-trashed extension to the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - protected function addOnlyTrashed(Builder $builder) - { - $builder->macro('onlyTrashed', function (Builder $builder) { - $model = $builder->getModel(); - - $builder->withoutGlobalScope($this)->whereNotNull( - $model->getQualifiedDeletedAtColumn() - ); - - return $builder; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php b/vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php deleted file mode 100644 index 818c7850..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php +++ /dev/null @@ -1,32 +0,0 @@ -connection = $connection; - $this->connectionName = $connection->getName(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php b/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php deleted file mode 100644 index 833a21e6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php +++ /dev/null @@ -1,59 +0,0 @@ -sql = $sql; - $this->time = $time; - $this->bindings = $bindings; - $this->connection = $connection; - $this->connectionName = $connection->getName(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php b/vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php deleted file mode 100644 index 2f603235..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php +++ /dev/null @@ -1,33 +0,0 @@ -statement = $statement; - $this->connection = $connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php b/vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php deleted file mode 100644 index 3287b5c8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php +++ /dev/null @@ -1,8 +0,0 @@ -isExpression($table)) { - return $this->wrap($this->tablePrefix.$table, true); - } - - return $this->getValue($table); - } - - /** - * Wrap a value in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $value - * @param bool $prefixAlias - * @return string - */ - public function wrap($value, $prefixAlias = false) - { - if ($this->isExpression($value)) { - return $this->getValue($value); - } - - // If the value being wrapped has a column alias we will need to separate out - // the pieces so we can wrap each of the segments of the expression on it - // own, and then joins them both back together with the "as" connector. - if (strpos(strtolower($value), ' as ') !== false) { - return $this->wrapAliasedValue($value, $prefixAlias); - } - - return $this->wrapSegments(explode('.', $value)); - } - - /** - * Wrap a value that has an alias. - * - * @param string $value - * @param bool $prefixAlias - * @return string - */ - protected function wrapAliasedValue($value, $prefixAlias = false) - { - $segments = preg_split('/\s+as\s+/i', $value); - - // If we are wrapping a table we need to prefix the alias with the table prefix - // as well in order to generate proper syntax. If this is a column of course - // no prefix is necessary. The condition will be true when from wrapTable. - if ($prefixAlias) { - $segments[1] = $this->tablePrefix.$segments[1]; - } - - return $this->wrap( - $segments[0]).' as '.$this->wrapValue($segments[1] - ); - } - - /** - * Wrap the given value segments. - * - * @param array $segments - * @return string - */ - protected function wrapSegments($segments) - { - return collect($segments)->map(function ($segment, $key) use ($segments) { - return $key == 0 && count($segments) > 1 - ? $this->wrapTable($segment) - : $this->wrapValue($segment); - })->implode('.'); - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - if ($value !== '*') { - return '"'.str_replace('"', '""', $value).'"'; - } - - return $value; - } - - /** - * Convert an array of column names into a delimited string. - * - * @param array $columns - * @return string - */ - public function columnize(array $columns) - { - return implode(', ', array_map([$this, 'wrap'], $columns)); - } - - /** - * Create query parameter place-holders for an array. - * - * @param array $values - * @return string - */ - public function parameterize(array $values) - { - return implode(', ', array_map([$this, 'parameter'], $values)); - } - - /** - * Get the appropriate query parameter place-holder for a value. - * - * @param mixed $value - * @return string - */ - public function parameter($value) - { - return $this->isExpression($value) ? $this->getValue($value) : '?'; - } - - /** - * Determine if the given value is a raw expression. - * - * @param mixed $value - * @return bool - */ - public function isExpression($value) - { - return $value instanceof Expression; - } - - /** - * Get the value of a raw expression. - * - * @param \Illuminate\Database\Query\Expression $expression - * @return string - */ - public function getValue($expression) - { - return $expression->getValue(); - } - - /** - * Get the format for database stored dates. - * - * @return string - */ - public function getDateFormat() - { - return 'Y-m-d H:i:s'; - } - - /** - * Get the grammar's table prefix. - * - * @return string - */ - public function getTablePrefix() - { - return $this->tablePrefix; - } - - /** - * Set the grammar's table prefix. - * - * @param string $prefix - * @return $this - */ - public function setTablePrefix($prefix) - { - $this->tablePrefix = $prefix; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php deleted file mode 100755 index a8b92ab6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php +++ /dev/null @@ -1,87 +0,0 @@ -registerRepository(); - - $this->registerMigrator(); - - $this->registerCreator(); - } - - /** - * Register the migration repository service. - * - * @return void - */ - protected function registerRepository() - { - $this->app->singleton('migration.repository', function ($app) { - $table = $app['config']['database.migrations']; - - return new DatabaseMigrationRepository($app['db'], $table); - }); - } - - /** - * Register the migrator service. - * - * @return void - */ - protected function registerMigrator() - { - // The migrator is responsible for actually running and rollback the migration - // files in the application. We'll pass in our database connection resolver - // so the migrator can resolve any of these connections when it needs to. - $this->app->singleton('migrator', function ($app) { - $repository = $app['migration.repository']; - - return new Migrator($repository, $app['db'], $app['files']); - }); - } - - /** - * Register the migration creator. - * - * @return void - */ - protected function registerCreator() - { - $this->app->singleton('migration.creator', function ($app) { - return new MigrationCreator($app['files']); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'migrator', 'migration.repository', 'migration.creator', - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php deleted file mode 100755 index b1685ffa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php +++ /dev/null @@ -1,199 +0,0 @@ -table = $table; - $this->resolver = $resolver; - } - - /** - * Get the ran migrations. - * - * @return array - */ - public function getRan() - { - return $this->table() - ->orderBy('batch', 'asc') - ->orderBy('migration', 'asc') - ->pluck('migration')->all(); - } - - /** - * Get list of migrations. - * - * @param int $steps - * @return array - */ - public function getMigrations($steps) - { - $query = $this->table()->where('batch', '>=', '1'); - - return $query->orderBy('batch', 'desc') - ->orderBy('migration', 'desc') - ->take($steps)->get()->all(); - } - - /** - * Get the last migration batch. - * - * @return array - */ - public function getLast() - { - $query = $this->table()->where('batch', $this->getLastBatchNumber()); - - return $query->orderBy('migration', 'desc')->get()->all(); - } - - /** - * Log that a migration was run. - * - * @param string $file - * @param int $batch - * @return void - */ - public function log($file, $batch) - { - $record = ['migration' => $file, 'batch' => $batch]; - - $this->table()->insert($record); - } - - /** - * Remove a migration from the log. - * - * @param object $migration - * @return void - */ - public function delete($migration) - { - $this->table()->where('migration', $migration->migration)->delete(); - } - - /** - * Get the next migration batch number. - * - * @return int - */ - public function getNextBatchNumber() - { - return $this->getLastBatchNumber() + 1; - } - - /** - * Get the last migration batch number. - * - * @return int - */ - public function getLastBatchNumber() - { - return $this->table()->max('batch'); - } - - /** - * Create the migration repository data store. - * - * @return void - */ - public function createRepository() - { - $schema = $this->getConnection()->getSchemaBuilder(); - - $schema->create($this->table, function ($table) { - // The migrations table is responsible for keeping track of which of the - // migrations have actually run for the application. We'll create the - // table to hold the migration file's path as well as the batch ID. - $table->increments('id'); - $table->string('migration'); - $table->integer('batch'); - }); - } - - /** - * Determine if the migration repository exists. - * - * @return bool - */ - public function repositoryExists() - { - $schema = $this->getConnection()->getSchemaBuilder(); - - return $schema->hasTable($this->table); - } - - /** - * Get a query builder for the migration table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function table() - { - return $this->getConnection()->table($this->table)->useWritePdo(); - } - - /** - * Get the connection resolver instance. - * - * @return \Illuminate\Database\ConnectionResolverInterface - */ - public function getConnectionResolver() - { - return $this->resolver; - } - - /** - * Resolve the database connection instance. - * - * @return \Illuminate\Database\Connection - */ - public function getConnection() - { - return $this->resolver->connection($this->connection); - } - - /** - * Set the information source to gather data. - * - * @param string $name - * @return void - */ - public function setSource($name) - { - $this->connection = $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php deleted file mode 100755 index ac1b9e7f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php +++ /dev/null @@ -1,30 +0,0 @@ -connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php deleted file mode 100755 index 719fbf10..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php +++ /dev/null @@ -1,202 +0,0 @@ -files = $files; - } - - /** - * Create a new migration at the given path. - * - * @param string $name - * @param string $path - * @param string $table - * @param bool $create - * @return string - * @throws \Exception - */ - public function create($name, $path, $table = null, $create = false) - { - $this->ensureMigrationDoesntAlreadyExist($name); - - // First we will get the stub file for the migration, which serves as a type - // of template for the migration. Once we have those we will populate the - // various place-holders, save the file, and run the post create event. - $stub = $this->getStub($table, $create); - - $this->files->put( - $path = $this->getPath($name, $path), - $this->populateStub($name, $stub, $table) - ); - - // Next, we will fire any hooks that are supposed to fire after a migration is - // created. Once that is done we'll be ready to return the full path to the - // migration file so it can be used however it's needed by the developer. - $this->firePostCreateHooks(); - - return $path; - } - - /** - * Ensure that a migration with the given name doesn't already exist. - * - * @param string $name - * @return void - * - * @throws \InvalidArgumentException - */ - protected function ensureMigrationDoesntAlreadyExist($name) - { - if (class_exists($className = $this->getClassName($name))) { - throw new InvalidArgumentException("A {$className} class already exists."); - } - } - - /** - * Get the migration stub file. - * - * @param string $table - * @param bool $create - * @return string - */ - protected function getStub($table, $create) - { - if (is_null($table)) { - return $this->files->get($this->stubPath().'/blank.stub'); - } - - // We also have stubs for creating new tables and modifying existing tables - // to save the developer some typing when they are creating a new tables - // or modifying existing tables. We'll grab the appropriate stub here. - $stub = $create ? 'create.stub' : 'update.stub'; - - return $this->files->get($this->stubPath()."/{$stub}"); - } - - /** - * Populate the place-holders in the migration stub. - * - * @param string $name - * @param string $stub - * @param string $table - * @return string - */ - protected function populateStub($name, $stub, $table) - { - $stub = str_replace('DummyClass', $this->getClassName($name), $stub); - - // Here we will replace the table place-holders with the table specified by - // the developer, which is useful for quickly creating a tables creation - // or update migration from the console instead of typing it manually. - if (! is_null($table)) { - $stub = str_replace('DummyTable', $table, $stub); - } - - return $stub; - } - - /** - * Get the class name of a migration name. - * - * @param string $name - * @return string - */ - protected function getClassName($name) - { - return Str::studly($name); - } - - /** - * Get the full path to the migration. - * - * @param string $name - * @param string $path - * @return string - */ - protected function getPath($name, $path) - { - return $path.'/'.$this->getDatePrefix().'_'.$name.'.php'; - } - - /** - * Fire the registered post create hooks. - * - * @return void - */ - protected function firePostCreateHooks() - { - foreach ($this->postCreate as $callback) { - call_user_func($callback); - } - } - - /** - * Register a post migration create hook. - * - * @param \Closure $callback - * @return void - */ - public function afterCreate(Closure $callback) - { - $this->postCreate[] = $callback; - } - - /** - * Get the date prefix for the migration. - * - * @return string - */ - protected function getDatePrefix() - { - return date('Y_m_d_His'); - } - - /** - * Get the path to the stubs. - * - * @return string - */ - public function stubPath() - { - return __DIR__.'/stubs'; - } - - /** - * Get the filesystem instance. - * - * @return \Illuminate\Filesystem\Filesystem - */ - public function getFilesystem() - { - return $this->files; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php deleted file mode 100755 index 60bc921f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php +++ /dev/null @@ -1,74 +0,0 @@ -files = $files; - $this->resolver = $resolver; - $this->repository = $repository; - } - - /** - * Run the pending migrations at a given path. - * - * @param array|string $paths - * @param array $options - * @return array - */ - public function run($paths = [], array $options = []) - { - $this->notes = []; - - // Once we grab all of the migration files for the path, we will compare them - // against the migrations that have already been run for this package then - // run each of the outstanding migrations against a database connection. - $files = $this->getMigrationFiles($paths); - - $this->requireFiles($migrations = $this->pendingMigrations( - $files, $this->repository->getRan() - )); - - // Once we have all these migrations that are outstanding we are ready to run - // we will go ahead and run them "up". This will execute each migration as - // an operation against a database. Then we'll return this list of them. - $this->runPending($migrations, $options); - - return $migrations; - } - - /** - * Get the migration files that have not yet run. - * - * @param array $files - * @param array $ran - * @return array - */ - protected function pendingMigrations($files, $ran) - { - return Collection::make($files) - ->reject(function ($file) use ($ran) { - return in_array($this->getMigrationName($file), $ran); - })->values()->all(); - } - - /** - * Run an array of migrations. - * - * @param array $migrations - * @param array $options - * @return void - */ - public function runPending(array $migrations, array $options = []) - { - // First we will just make sure that there are any migrations to run. If there - // aren't, we will just make a note of it to the developer so they're aware - // that all of the migrations have been run against this database system. - if (count($migrations) == 0) { - $this->note('Nothing to migrate.'); - - return; - } - - // Next, we will get the next batch number for the migrations so we can insert - // correct batch number in the database migrations repository when we store - // each migration's execution. We will also extract a few of the options. - $batch = $this->repository->getNextBatchNumber(); - - $pretend = $options['pretend'] ?? false; - - $step = $options['step'] ?? false; - - // Once we have the array of migrations, we will spin through them and run the - // migrations "up" so the changes are made to the databases. We'll then log - // that the migration was run so we don't repeat it next time we execute. - foreach ($migrations as $file) { - $this->runUp($file, $batch, $pretend); - - if ($step) { - $batch++; - } - } - } - - /** - * Run "up" a migration instance. - * - * @param string $file - * @param int $batch - * @param bool $pretend - * @return void - */ - protected function runUp($file, $batch, $pretend) - { - // First we will resolve a "real" instance of the migration class from this - // migration file name. Once we have the instances we can run the actual - // command such as "up" or "down", or we can just simulate the action. - $migration = $this->resolve( - $name = $this->getMigrationName($file) - ); - - if ($pretend) { - return $this->pretendToRun($migration, 'up'); - } - - $this->note("Migrating: {$name}"); - - $this->runMigration($migration, 'up'); - - // Once we have run a migrations class, we will log that it was run in this - // repository so that we don't try to run it next time we do a migration - // in the application. A migration repository keeps the migrate order. - $this->repository->log($name, $batch); - - $this->note("Migrated: {$name}"); - } - - /** - * Rollback the last migration operation. - * - * @param array|string $paths - * @param array $options - * @return array - */ - public function rollback($paths = [], array $options = []) - { - $this->notes = []; - - // We want to pull in the last batch of migrations that ran on the previous - // migration operation. We'll then reverse those migrations and run each - // of them "down" to reverse the last migration "operation" which ran. - $migrations = $this->getMigrationsForRollback($options); - - if (count($migrations) === 0) { - $this->note('Nothing to rollback.'); - - return []; - } - - return $this->rollbackMigrations($migrations, $paths, $options); - } - - /** - * Get the migrations for a rollback operation. - * - * @param array $options - * @return array - */ - protected function getMigrationsForRollback(array $options) - { - if (($steps = $options['step'] ?? 0) > 0) { - return $this->repository->getMigrations($steps); - } else { - return $this->repository->getLast(); - } - } - - /** - * Rollback the given migrations. - * - * @param array $migrations - * @param array|string $paths - * @param array $options - * @return array - */ - protected function rollbackMigrations(array $migrations, $paths, array $options) - { - $rolledBack = []; - - $this->requireFiles($files = $this->getMigrationFiles($paths)); - - // Next we will run through all of the migrations and call the "down" method - // which will reverse each migration in order. This getLast method on the - // repository already returns these migration's names in reverse order. - foreach ($migrations as $migration) { - $migration = (object) $migration; - - if (! $file = Arr::get($files, $migration->migration)) { - $this->note("Migration not found: {$migration->migration}"); - - continue; - } - - $rolledBack[] = $file; - - $this->runDown( - $file, $migration, - $options['pretend'] ?? false - ); - } - - return $rolledBack; - } - - /** - * Rolls all of the currently applied migrations back. - * - * @param array|string $paths - * @param bool $pretend - * @return array - */ - public function reset($paths = [], $pretend = false) - { - $this->notes = []; - - // Next, we will reverse the migration list so we can run them back in the - // correct order for resetting this database. This will allow us to get - // the database back into its "empty" state ready for the migrations. - $migrations = array_reverse($this->repository->getRan()); - - if (count($migrations) === 0) { - $this->note('Nothing to rollback.'); - - return []; - } - - return $this->resetMigrations($migrations, $paths, $pretend); - } - - /** - * Reset the given migrations. - * - * @param array $migrations - * @param array $paths - * @param bool $pretend - * @return array - */ - protected function resetMigrations(array $migrations, array $paths, $pretend = false) - { - // Since the getRan method that retrieves the migration name just gives us the - // migration name, we will format the names into objects with the name as a - // property on the objects so that we can pass it to the rollback method. - $migrations = collect($migrations)->map(function ($m) { - return (object) ['migration' => $m]; - })->all(); - - return $this->rollbackMigrations( - $migrations, $paths, compact('pretend') - ); - } - - /** - * Run "down" a migration instance. - * - * @param string $file - * @param object $migration - * @param bool $pretend - * @return void - */ - protected function runDown($file, $migration, $pretend) - { - // First we will get the file name of the migration so we can resolve out an - // instance of the migration. Once we get an instance we can either run a - // pretend execution of the migration or we can run the real migration. - $instance = $this->resolve( - $name = $this->getMigrationName($file) - ); - - $this->note("Rolling back: {$name}"); - - if ($pretend) { - return $this->pretendToRun($instance, 'down'); - } - - $this->runMigration($instance, 'down'); - - // Once we have successfully run the migration "down" we will remove it from - // the migration repository so it will be considered to have not been run - // by the application then will be able to fire by any later operation. - $this->repository->delete($migration); - - $this->note("Rolled back: {$name}"); - } - - /** - * Run a migration inside a transaction if the database supports it. - * - * @param object $migration - * @param string $method - * @return void - */ - protected function runMigration($migration, $method) - { - $connection = $this->resolveConnection( - $migration->getConnection() - ); - - $callback = function () use ($migration, $method) { - if (method_exists($migration, $method)) { - $migration->{$method}(); - } - }; - - $this->getSchemaGrammar($connection)->supportsSchemaTransactions() - && $migration->withinTransaction - ? $connection->transaction($callback) - : $callback(); - } - - /** - * Pretend to run the migrations. - * - * @param object $migration - * @param string $method - * @return void - */ - protected function pretendToRun($migration, $method) - { - foreach ($this->getQueries($migration, $method) as $query) { - $name = get_class($migration); - - $this->note("{$name}: {$query['query']}"); - } - } - - /** - * Get all of the queries that would be run for a migration. - * - * @param object $migration - * @param string $method - * @return array - */ - protected function getQueries($migration, $method) - { - // Now that we have the connections we can resolve it and pretend to run the - // queries against the database returning the array of raw SQL statements - // that would get fired against the database system for this migration. - $db = $this->resolveConnection( - $migration->getConnection() - ); - - return $db->pretend(function () use ($migration, $method) { - if (method_exists($migration, $method)) { - $migration->{$method}(); - } - }); - } - - /** - * Resolve a migration instance from a file. - * - * @param string $file - * @return object - */ - public function resolve($file) - { - $class = Str::studly(implode('_', array_slice(explode('_', $file), 4))); - - return new $class; - } - - /** - * Get all of the migration files in a given path. - * - * @param string|array $paths - * @return array - */ - public function getMigrationFiles($paths) - { - return Collection::make($paths)->flatMap(function ($path) { - return $this->files->glob($path.'/*_*.php'); - })->filter()->sortBy(function ($file) { - return $this->getMigrationName($file); - })->values()->keyBy(function ($file) { - return $this->getMigrationName($file); - })->all(); - } - - /** - * Require in all the migration files in a given path. - * - * @param array $files - * @return void - */ - public function requireFiles(array $files) - { - foreach ($files as $file) { - $this->files->requireOnce($file); - } - } - - /** - * Get the name of the migration. - * - * @param string $path - * @return string - */ - public function getMigrationName($path) - { - return str_replace('.php', '', basename($path)); - } - - /** - * Register a custom migration path. - * - * @param string $path - * @return void - */ - public function path($path) - { - $this->paths = array_unique(array_merge($this->paths, [$path])); - } - - /** - * Get all of the custom migration paths. - * - * @return array - */ - public function paths() - { - return $this->paths; - } - - /** - * Set the default connection name. - * - * @param string $name - * @return void - */ - public function setConnection($name) - { - if (! is_null($name)) { - $this->resolver->setDefaultConnection($name); - } - - $this->repository->setSource($name); - - $this->connection = $name; - } - - /** - * Resolve the database connection instance. - * - * @param string $connection - * @return \Illuminate\Database\Connection - */ - public function resolveConnection($connection) - { - return $this->resolver->connection($connection ?: $this->connection); - } - - /** - * Get the schema grammar out of a migration connection. - * - * @param \Illuminate\Database\Connection $connection - * @return \Illuminate\Database\Schema\Grammars\Grammar - */ - protected function getSchemaGrammar($connection) - { - if (is_null($grammar = $connection->getSchemaGrammar())) { - $connection->useDefaultSchemaGrammar(); - - $grammar = $connection->getSchemaGrammar(); - } - - return $grammar; - } - - /** - * Get the migration repository instance. - * - * @return \Illuminate\Database\Migrations\MigrationRepositoryInterface - */ - public function getRepository() - { - return $this->repository; - } - - /** - * Determine if the migration repository exists. - * - * @return bool - */ - public function repositoryExists() - { - return $this->repository->repositoryExists(); - } - - /** - * Get the file system instance. - * - * @return \Illuminate\Filesystem\Filesystem - */ - public function getFilesystem() - { - return $this->files; - } - - /** - * Raise a note event for the migrator. - * - * @param string $message - * @return void - */ - protected function note($message) - { - $this->notes[] = $message; - } - - /** - * Get the notes for the last operation. - * - * @return array - */ - public function getNotes() - { - return $this->notes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub b/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub deleted file mode 100755 index da4ce827..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub +++ /dev/null @@ -1,28 +0,0 @@ -increments('id'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('DummyTable'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub b/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub deleted file mode 100755 index 1fd4f6ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub +++ /dev/null @@ -1,32 +0,0 @@ -withTablePrefix(new QueryGrammar); - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\MySqlBuilder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new MySqlBuilder($this); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\MySqlGrammar - */ - protected function getDefaultSchemaGrammar() - { - return $this->withTablePrefix(new SchemaGrammar); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\MySqlProcessor - */ - protected function getDefaultPostProcessor() - { - return new MySqlProcessor; - } - - /** - * Get the Doctrine DBAL driver. - * - * @return \Doctrine\DBAL\Driver\PDOMySql\Driver - */ - protected function getDoctrineDriver() - { - return new DoctrineDriver; - } - - /** - * Bind values to their parameters in the given statement. - * - * @param \PDOStatement $statement - * @param array $bindings - * @return void - */ - public function bindValues($statement, $bindings) - { - foreach ($bindings as $key => $value) { - $statement->bindValue( - is_string($key) ? $key : $key + 1, $value, - is_int($value) || is_float($value) ? PDO::PARAM_INT : PDO::PARAM_STR - ); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php b/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php deleted file mode 100755 index 01804a7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php +++ /dev/null @@ -1,66 +0,0 @@ -withTablePrefix(new QueryGrammar); - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\PostgresBuilder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new PostgresBuilder($this); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\PostgresGrammar - */ - protected function getDefaultSchemaGrammar() - { - return $this->withTablePrefix(new SchemaGrammar); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\PostgresProcessor - */ - protected function getDefaultPostProcessor() - { - return new PostgresProcessor; - } - - /** - * Get the Doctrine DBAL driver. - * - * @return \Doctrine\DBAL\Driver\PDOPgSql\Driver - */ - protected function getDoctrineDriver() - { - return new DoctrineDriver; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php deleted file mode 100755 index 80702b6e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php +++ /dev/null @@ -1,2473 +0,0 @@ - [], - 'join' => [], - 'where' => [], - 'having' => [], - 'order' => [], - 'union' => [], - ]; - - /** - * An aggregate function and column to be run. - * - * @var array - */ - public $aggregate; - - /** - * The columns that should be returned. - * - * @var array - */ - public $columns; - - /** - * Indicates if the query returns distinct results. - * - * @var bool - */ - public $distinct = false; - - /** - * The table which the query is targeting. - * - * @var string - */ - public $from; - - /** - * The table joins for the query. - * - * @var array - */ - public $joins; - - /** - * The where constraints for the query. - * - * @var array - */ - public $wheres = []; - - /** - * The groupings for the query. - * - * @var array - */ - public $groups; - - /** - * The having constraints for the query. - * - * @var array - */ - public $havings; - - /** - * The orderings for the query. - * - * @var array - */ - public $orders; - - /** - * The maximum number of records to return. - * - * @var int - */ - public $limit; - - /** - * The number of records to skip. - * - * @var int - */ - public $offset; - - /** - * The query union statements. - * - * @var array - */ - public $unions; - - /** - * The maximum number of union records to return. - * - * @var int - */ - public $unionLimit; - - /** - * The number of union records to skip. - * - * @var int - */ - public $unionOffset; - - /** - * The orderings for the union query. - * - * @var array - */ - public $unionOrders; - - /** - * Indicates whether row locking is being used. - * - * @var string|bool - */ - public $lock; - - /** - * All of the available clause operators. - * - * @var array - */ - public $operators = [ - '=', '<', '>', '<=', '>=', '<>', '!=', '<=>', - 'like', 'like binary', 'not like', 'ilike', - '&', '|', '^', '<<', '>>', - 'rlike', 'regexp', 'not regexp', - '~', '~*', '!~', '!~*', 'similar to', - 'not similar to', 'not ilike', '~~*', '!~~*', - ]; - - /** - * Whether use write pdo for select. - * - * @var bool - */ - public $useWritePdo = false; - - /** - * Create a new query builder instance. - * - * @param \Illuminate\Database\ConnectionInterface $connection - * @param \Illuminate\Database\Query\Grammars\Grammar $grammar - * @param \Illuminate\Database\Query\Processors\Processor $processor - * @return void - */ - public function __construct(ConnectionInterface $connection, - Grammar $grammar = null, - Processor $processor = null) - { - $this->connection = $connection; - $this->grammar = $grammar ?: $connection->getQueryGrammar(); - $this->processor = $processor ?: $connection->getPostProcessor(); - } - - /** - * Set the columns to be selected. - * - * @param array|mixed $columns - * @return $this - */ - public function select($columns = ['*']) - { - $this->columns = is_array($columns) ? $columns : func_get_args(); - - return $this; - } - - /** - * Add a new "raw" select expression to the query. - * - * @param string $expression - * @param array $bindings - * @return \Illuminate\Database\Query\Builder|static - */ - public function selectRaw($expression, array $bindings = []) - { - $this->addSelect(new Expression($expression)); - - if ($bindings) { - $this->addBinding($bindings, 'select'); - } - - return $this; - } - - /** - * Add a subselect expression to the query. - * - * @param \Closure|\Illuminate\Database\Query\Builder|string $query - * @param string $as - * @return \Illuminate\Database\Query\Builder|static - * - * @throws \InvalidArgumentException - */ - public function selectSub($query, $as) - { - // If the given query is a Closure, we will execute it while passing in a new - // query instance to the Closure. This will give the developer a chance to - // format and work with the query before we cast it to a raw SQL string. - if ($query instanceof Closure) { - $callback = $query; - - $callback($query = $this->forSubQuery()); - } - - // Here, we will parse this query into an SQL string and an array of bindings - // so we can add it to the query builder using the selectRaw method so the - // query is included in the real SQL generated by this builder instance. - list($query, $bindings) = $this->parseSubSelect($query); - - return $this->selectRaw( - '('.$query.') as '.$this->grammar->wrap($as), $bindings - ); - } - - /** - * Parse the sub-select query into SQL and bindings. - * - * @param mixed $query - * @return array - */ - protected function parseSubSelect($query) - { - if ($query instanceof self) { - $query->columns = [$query->columns[0]]; - - return [$query->toSql(), $query->getBindings()]; - } elseif (is_string($query)) { - return [$query, []]; - } else { - throw new InvalidArgumentException; - } - } - - /** - * Add a new select column to the query. - * - * @param array|mixed $column - * @return $this - */ - public function addSelect($column) - { - $column = is_array($column) ? $column : func_get_args(); - - $this->columns = array_merge((array) $this->columns, $column); - - return $this; - } - - /** - * Force the query to only return distinct results. - * - * @return $this - */ - public function distinct() - { - $this->distinct = true; - - return $this; - } - - /** - * Set the table which the query is targeting. - * - * @param string $table - * @return $this - */ - public function from($table) - { - $this->from = $table; - - return $this; - } - - /** - * Add a join clause to the query. - * - * @param string $table - * @param string $first - * @param string|null $operator - * @param string|null $second - * @param string $type - * @param bool $where - * @return $this - */ - public function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false) - { - $join = new JoinClause($this, $type, $table); - - // If the first "column" of the join is really a Closure instance the developer - // is trying to build a join with a complex "on" clause containing more than - // one condition, so we'll add the join and call a Closure with the query. - if ($first instanceof Closure) { - call_user_func($first, $join); - - $this->joins[] = $join; - - $this->addBinding($join->getBindings(), 'join'); - } - - // If the column is simply a string, we can assume the join simply has a basic - // "on" clause with a single condition. So we will just build the join with - // this simple join clauses attached to it. There is not a join callback. - else { - $method = $where ? 'where' : 'on'; - - $this->joins[] = $join->$method($first, $operator, $second); - - $this->addBinding($join->getBindings(), 'join'); - } - - return $this; - } - - /** - * Add a "join where" clause to the query. - * - * @param string $table - * @param string $first - * @param string $operator - * @param string $second - * @param string $type - * @return \Illuminate\Database\Query\Builder|static - */ - public function joinWhere($table, $first, $operator, $second, $type = 'inner') - { - return $this->join($table, $first, $operator, $second, $type, true); - } - - /** - * Add a left join to the query. - * - * @param string $table - * @param string $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function leftJoin($table, $first, $operator = null, $second = null) - { - return $this->join($table, $first, $operator, $second, 'left'); - } - - /** - * Add a "join where" clause to the query. - * - * @param string $table - * @param string $first - * @param string $operator - * @param string $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function leftJoinWhere($table, $first, $operator, $second) - { - return $this->joinWhere($table, $first, $operator, $second, 'left'); - } - - /** - * Add a right join to the query. - * - * @param string $table - * @param string $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function rightJoin($table, $first, $operator = null, $second = null) - { - return $this->join($table, $first, $operator, $second, 'right'); - } - - /** - * Add a "right join where" clause to the query. - * - * @param string $table - * @param string $first - * @param string $operator - * @param string $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function rightJoinWhere($table, $first, $operator, $second) - { - return $this->joinWhere($table, $first, $operator, $second, 'right'); - } - - /** - * Add a "cross join" clause to the query. - * - * @param string $table - * @param string|null $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function crossJoin($table, $first = null, $operator = null, $second = null) - { - if ($first) { - return $this->join($table, $first, $operator, $second, 'cross'); - } - - $this->joins[] = new JoinClause($this, 'cross', $table); - - return $this; - } - - /** - * Merge an array of where clauses and bindings. - * - * @param array $wheres - * @param array $bindings - * @return void - */ - public function mergeWheres($wheres, $bindings) - { - $this->wheres = array_merge($this->wheres, (array) $wheres); - - $this->bindings['where'] = array_values( - array_merge($this->bindings['where'], (array) $bindings) - ); - } - - /** - * Add a basic where clause to the query. - * - * @param string|array|\Closure $column - * @param mixed $operator - * @param mixed $value - * @param string $boolean - * @return $this - */ - public function where($column, $operator = null, $value = null, $boolean = 'and') - { - // If the column is an array, we will assume it is an array of key-value pairs - // and can add them each as a where clause. We will maintain the boolean we - // received when the method was called and pass it into the nested where. - if (is_array($column)) { - return $this->addArrayOfWheres($column, $boolean); - } - - // Here we will make some assumptions about the operator. If only 2 values are - // passed to the method, we will assume that the operator is an equals sign - // and keep going. Otherwise, we'll require the operator to be passed in. - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() == 2 - ); - - // If the columns is actually a Closure instance, we will assume the developer - // wants to begin a nested where statement which is wrapped in parenthesis. - // We'll add that Closure to the query then return back out immediately. - if ($column instanceof Closure) { - return $this->whereNested($column, $boolean); - } - - // If the given operator is not found in the list of valid operators we will - // assume that the developer is just short-cutting the '=' operators and - // we will set the operators to '=' and set the values appropriately. - if ($this->invalidOperator($operator)) { - list($value, $operator) = [$operator, '=']; - } - - // If the value is a Closure, it means the developer is performing an entire - // sub-select within the query and we will need to compile the sub-select - // within the where clause to get the appropriate query record results. - if ($value instanceof Closure) { - return $this->whereSub($column, $operator, $value, $boolean); - } - - // If the value is "null", we will just assume the developer wants to add a - // where null clause to the query. So, we will allow a short-cut here to - // that method for convenience so the developer doesn't have to check. - if (is_null($value)) { - return $this->whereNull($column, $boolean, $operator !== '='); - } - - // If the column is making a JSON reference we'll check to see if the value - // is a boolean. If it is, we'll add the raw boolean string as an actual - // value to the query to ensure this is properly handled by the query. - if (Str::contains($column, '->') && is_bool($value)) { - $value = new Expression($value ? 'true' : 'false'); - } - - // Now that we are working with just a simple query we can put the elements - // in our array and add the query binding to our array of bindings that - // will be bound to each SQL statements when it is finally executed. - $type = 'Basic'; - - $this->wheres[] = compact( - 'type', 'column', 'operator', 'value', 'boolean' - ); - - if (! $value instanceof Expression) { - $this->addBinding($value, 'where'); - } - - return $this; - } - - /** - * Add an array of where clauses to the query. - * - * @param array $column - * @param string $boolean - * @param string $method - * @return $this - */ - protected function addArrayOfWheres($column, $boolean, $method = 'where') - { - return $this->whereNested(function ($query) use ($column, $method, $boolean) { - foreach ($column as $key => $value) { - if (is_numeric($key) && is_array($value)) { - $query->{$method}(...array_values($value)); - } else { - $query->$method($key, '=', $value, $boolean); - } - } - }, $boolean); - } - - /** - * Prepare the value and operator for a where clause. - * - * @param string $value - * @param string $operator - * @param bool $useDefault - * @return array - * - * @throws \InvalidArgumentException - */ - protected function prepareValueAndOperator($value, $operator, $useDefault = false) - { - if ($useDefault) { - return [$operator, '=']; - } elseif ($this->invalidOperatorAndValue($operator, $value)) { - throw new InvalidArgumentException('Illegal operator and value combination.'); - } - - return [$value, $operator]; - } - - /** - * Determine if the given operator and value combination is legal. - * - * Prevents using Null values with invalid operators. - * - * @param string $operator - * @param mixed $value - * @return bool - */ - protected function invalidOperatorAndValue($operator, $value) - { - return is_null($value) && in_array($operator, $this->operators) && - ! in_array($operator, ['=', '<>', '!=']); - } - - /** - * Determine if the given operator is supported. - * - * @param string $operator - * @return bool - */ - protected function invalidOperator($operator) - { - return ! in_array(strtolower($operator), $this->operators, true) && - ! in_array(strtolower($operator), $this->grammar->getOperators(), true); - } - - /** - * Add an "or where" clause to the query. - * - * @param string|array|\Closure $column - * @param string|null $operator - * @param mixed $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhere($column, $operator = null, $value = null) - { - return $this->where($column, $operator, $value, 'or'); - } - - /** - * Add a "where" clause comparing two columns to the query. - * - * @param string|array $first - * @param string|null $operator - * @param string|null $second - * @param string|null $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereColumn($first, $operator = null, $second = null, $boolean = 'and') - { - // If the column is an array, we will assume it is an array of key-value pairs - // and can add them each as a where clause. We will maintain the boolean we - // received when the method was called and pass it into the nested where. - if (is_array($first)) { - return $this->addArrayOfWheres($first, $boolean, 'whereColumn'); - } - - // If the given operator is not found in the list of valid operators we will - // assume that the developer is just short-cutting the '=' operators and - // we will set the operators to '=' and set the values appropriately. - if ($this->invalidOperator($operator)) { - list($second, $operator) = [$operator, '=']; - } - - // Finally, we will add this where clause into this array of clauses that we - // are building for the query. All of them will be compiled via a grammar - // once the query is about to be executed and run against the database. - $type = 'Column'; - - $this->wheres[] = compact( - 'type', 'first', 'operator', 'second', 'boolean' - ); - - return $this; - } - - /** - * Add an "or where" clause comparing two columns to the query. - * - * @param string|array $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereColumn($first, $operator = null, $second = null) - { - return $this->whereColumn($first, $operator, $second, 'or'); - } - - /** - * Add a raw where clause to the query. - * - * @param string $sql - * @param mixed $bindings - * @param string $boolean - * @return $this - */ - public function whereRaw($sql, $bindings = [], $boolean = 'and') - { - $this->wheres[] = ['type' => 'raw', 'sql' => $sql, 'boolean' => $boolean]; - - $this->addBinding((array) $bindings, 'where'); - - return $this; - } - - /** - * Add a raw or where clause to the query. - * - * @param string $sql - * @param mixed $bindings - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereRaw($sql, $bindings = []) - { - return $this->whereRaw($sql, $bindings, 'or'); - } - - /** - * Add a "where in" clause to the query. - * - * @param string $column - * @param mixed $values - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereIn($column, $values, $boolean = 'and', $not = false) - { - $type = $not ? 'NotIn' : 'In'; - - if ($values instanceof EloquentBuilder) { - $values = $values->getQuery(); - } - - // If the value is a query builder instance we will assume the developer wants to - // look for any values that exists within this given query. So we will add the - // query accordingly so that this query is properly executed when it is run. - if ($values instanceof self) { - return $this->whereInExistingQuery( - $column, $values, $boolean, $not - ); - } - - // If the value of the where in clause is actually a Closure, we will assume that - // the developer is using a full sub-select for this "in" statement, and will - // execute those Closures, then we can re-construct the entire sub-selects. - if ($values instanceof Closure) { - return $this->whereInSub($column, $values, $boolean, $not); - } - - // Next, if the value is Arrayable we need to cast it to its raw array form so we - // have the underlying array value instead of an Arrayable object which is not - // able to be added as a binding, etc. We will then add to the wheres array. - if ($values instanceof Arrayable) { - $values = $values->toArray(); - } - - $this->wheres[] = compact('type', 'column', 'values', 'boolean'); - - // Finally we'll add a binding for each values unless that value is an expression - // in which case we will just skip over it since it will be the query as a raw - // string and not as a parameterized place-holder to be replaced by the PDO. - foreach ($values as $value) { - if (! $value instanceof Expression) { - $this->addBinding($value, 'where'); - } - } - - return $this; - } - - /** - * Add an "or where in" clause to the query. - * - * @param string $column - * @param mixed $values - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereIn($column, $values) - { - return $this->whereIn($column, $values, 'or'); - } - - /** - * Add a "where not in" clause to the query. - * - * @param string $column - * @param mixed $values - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNotIn($column, $values, $boolean = 'and') - { - return $this->whereIn($column, $values, $boolean, true); - } - - /** - * Add an "or where not in" clause to the query. - * - * @param string $column - * @param mixed $values - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNotIn($column, $values) - { - return $this->whereNotIn($column, $values, 'or'); - } - - /** - * Add a where in with a sub-select to the query. - * - * @param string $column - * @param \Closure $callback - * @param string $boolean - * @param bool $not - * @return $this - */ - protected function whereInSub($column, Closure $callback, $boolean, $not) - { - $type = $not ? 'NotInSub' : 'InSub'; - - // To create the exists sub-select, we will actually create a query and call the - // provided callback with the query so the developer may set any of the query - // conditions they want for the in clause, then we'll put it in this array. - call_user_func($callback, $query = $this->forSubQuery()); - - $this->wheres[] = compact('type', 'column', 'query', 'boolean'); - - $this->addBinding($query->getBindings(), 'where'); - - return $this; - } - - /** - * Add an external sub-select to the query. - * - * @param string $column - * @param \Illuminate\Database\Query\Builder|static $query - * @param string $boolean - * @param bool $not - * @return $this - */ - protected function whereInExistingQuery($column, $query, $boolean, $not) - { - $type = $not ? 'NotInSub' : 'InSub'; - - $this->wheres[] = compact('type', 'column', 'query', 'boolean'); - - $this->addBinding($query->getBindings(), 'where'); - - return $this; - } - - /** - * Add a "where null" clause to the query. - * - * @param string $column - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereNull($column, $boolean = 'and', $not = false) - { - $type = $not ? 'NotNull' : 'Null'; - - $this->wheres[] = compact('type', 'column', 'boolean'); - - return $this; - } - - /** - * Add an "or where null" clause to the query. - * - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNull($column) - { - return $this->whereNull($column, 'or'); - } - - /** - * Add a "where not null" clause to the query. - * - * @param string $column - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNotNull($column, $boolean = 'and') - { - return $this->whereNull($column, $boolean, true); - } - - /** - * Add a where between statement to the query. - * - * @param string $column - * @param array $values - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereBetween($column, array $values, $boolean = 'and', $not = false) - { - $type = 'between'; - - $this->wheres[] = compact('column', 'type', 'boolean', 'not'); - - $this->addBinding($values, 'where'); - - return $this; - } - - /** - * Add an or where between statement to the query. - * - * @param string $column - * @param array $values - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereBetween($column, array $values) - { - return $this->whereBetween($column, $values, 'or'); - } - - /** - * Add a where not between statement to the query. - * - * @param string $column - * @param array $values - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNotBetween($column, array $values, $boolean = 'and') - { - return $this->whereBetween($column, $values, $boolean, true); - } - - /** - * Add an or where not between statement to the query. - * - * @param string $column - * @param array $values - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNotBetween($column, array $values) - { - return $this->whereNotBetween($column, $values, 'or'); - } - - /** - * Add an "or where not null" clause to the query. - * - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNotNull($column) - { - return $this->whereNotNull($column, 'or'); - } - - /** - * Add a "where date" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereDate($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() == 2 - ); - - return $this->addDateBasedWhere('Date', $column, $operator, $value, $boolean); - } - - /** - * Add an "or where date" statement to the query. - * - * @param string $column - * @param string $operator - * @param string $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereDate($column, $operator, $value) - { - return $this->whereDate($column, $operator, $value, 'or'); - } - - /** - * Add a "where time" statement to the query. - * - * @param string $column - * @param string $operator - * @param int $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereTime($column, $operator, $value, $boolean = 'and') - { - return $this->addDateBasedWhere('Time', $column, $operator, $value, $boolean); - } - - /** - * Add an "or where time" statement to the query. - * - * @param string $column - * @param string $operator - * @param int $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereTime($column, $operator, $value) - { - return $this->whereTime($column, $operator, $value, 'or'); - } - - /** - * Add a "where day" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereDay($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() == 2 - ); - - return $this->addDateBasedWhere('Day', $column, $operator, $value, $boolean); - } - - /** - * Add a "where month" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereMonth($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() == 2 - ); - - return $this->addDateBasedWhere('Month', $column, $operator, $value, $boolean); - } - - /** - * Add a "where year" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereYear($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() == 2 - ); - - return $this->addDateBasedWhere('Year', $column, $operator, $value, $boolean); - } - - /** - * Add a date based (year, month, day, time) statement to the query. - * - * @param string $type - * @param string $column - * @param string $operator - * @param int $value - * @param string $boolean - * @return $this - */ - protected function addDateBasedWhere($type, $column, $operator, $value, $boolean = 'and') - { - $this->wheres[] = compact('column', 'type', 'boolean', 'operator', 'value'); - - if (! $value instanceof Expression) { - $this->addBinding($value, 'where'); - } - - return $this; - } - - /** - * Add a nested where statement to the query. - * - * @param \Closure $callback - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNested(Closure $callback, $boolean = 'and') - { - call_user_func($callback, $query = $this->forNestedWhere()); - - return $this->addNestedWhereQuery($query, $boolean); - } - - /** - * Create a new query instance for nested where condition. - * - * @return \Illuminate\Database\Query\Builder - */ - public function forNestedWhere() - { - return $this->newQuery()->from($this->from); - } - - /** - * Add another query builder as a nested where to the query builder. - * - * @param \Illuminate\Database\Query\Builder|static $query - * @param string $boolean - * @return $this - */ - public function addNestedWhereQuery($query, $boolean = 'and') - { - if (count($query->wheres)) { - $type = 'Nested'; - - $this->wheres[] = compact('type', 'query', 'boolean'); - - $this->addBinding($query->getBindings(), 'where'); - } - - return $this; - } - - /** - * Add a full sub-select to the query. - * - * @param string $column - * @param string $operator - * @param \Closure $callback - * @param string $boolean - * @return $this - */ - protected function whereSub($column, $operator, Closure $callback, $boolean) - { - $type = 'Sub'; - - // Once we have the query instance we can simply execute it so it can add all - // of the sub-select's conditions to itself, and then we can cache it off - // in the array of where clauses for the "main" parent query instance. - call_user_func($callback, $query = $this->forSubQuery()); - - $this->wheres[] = compact( - 'type', 'column', 'operator', 'query', 'boolean' - ); - - $this->addBinding($query->getBindings(), 'where'); - - return $this; - } - - /** - * Add an exists clause to the query. - * - * @param \Closure $callback - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereExists(Closure $callback, $boolean = 'and', $not = false) - { - $query = $this->forSubQuery(); - - // Similar to the sub-select clause, we will create a new query instance so - // the developer may cleanly specify the entire exists query and we will - // compile the whole thing in the grammar and insert it into the SQL. - call_user_func($callback, $query); - - return $this->addWhereExistsQuery($query, $boolean, $not); - } - - /** - * Add an or exists clause to the query. - * - * @param \Closure $callback - * @param bool $not - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereExists(Closure $callback, $not = false) - { - return $this->whereExists($callback, 'or', $not); - } - - /** - * Add a where not exists clause to the query. - * - * @param \Closure $callback - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNotExists(Closure $callback, $boolean = 'and') - { - return $this->whereExists($callback, $boolean, true); - } - - /** - * Add a where not exists clause to the query. - * - * @param \Closure $callback - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNotExists(Closure $callback) - { - return $this->orWhereExists($callback, true); - } - - /** - * Add an exists clause to the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $boolean - * @param bool $not - * @return $this - */ - public function addWhereExistsQuery(self $query, $boolean = 'and', $not = false) - { - $type = $not ? 'NotExists' : 'Exists'; - - $this->wheres[] = compact('type', 'operator', 'query', 'boolean'); - - $this->addBinding($query->getBindings(), 'where'); - - return $this; - } - - /** - * Handles dynamic "where" clauses to the query. - * - * @param string $method - * @param string $parameters - * @return $this - */ - public function dynamicWhere($method, $parameters) - { - $finder = substr($method, 5); - - $segments = preg_split( - '/(And|Or)(?=[A-Z])/', $finder, -1, PREG_SPLIT_DELIM_CAPTURE - ); - - // The connector variable will determine which connector will be used for the - // query condition. We will change it as we come across new boolean values - // in the dynamic method strings, which could contain a number of these. - $connector = 'and'; - - $index = 0; - - foreach ($segments as $segment) { - // If the segment is not a boolean connector, we can assume it is a column's name - // and we will add it to the query as a new constraint as a where clause, then - // we can keep iterating through the dynamic method string's segments again. - if ($segment !== 'And' && $segment !== 'Or') { - $this->addDynamic($segment, $connector, $parameters, $index); - - $index++; - } - - // Otherwise, we will store the connector so we know how the next where clause we - // find in the query should be connected to the previous ones, meaning we will - // have the proper boolean connector to connect the next where clause found. - else { - $connector = $segment; - } - } - - return $this; - } - - /** - * Add a single dynamic where clause statement to the query. - * - * @param string $segment - * @param string $connector - * @param array $parameters - * @param int $index - * @return void - */ - protected function addDynamic($segment, $connector, $parameters, $index) - { - // Once we have parsed out the columns and formatted the boolean operators we - // are ready to add it to this query as a where clause just like any other - // clause on the query. Then we'll increment the parameter index values. - $bool = strtolower($connector); - - $this->where(Str::snake($segment), '=', $parameters[$index], $bool); - } - - /** - * Add a "group by" clause to the query. - * - * @param array ...$groups - * @return $this - */ - public function groupBy(...$groups) - { - foreach ($groups as $group) { - $this->groups = array_merge( - (array) $this->groups, - Arr::wrap($group) - ); - } - - return $this; - } - - /** - * Add a "having" clause to the query. - * - * @param string $column - * @param string|null $operator - * @param string|null $value - * @param string $boolean - * @return $this - */ - public function having($column, $operator = null, $value = null, $boolean = 'and') - { - $type = 'Basic'; - - // Here we will make some assumptions about the operator. If only 2 values are - // passed to the method, we will assume that the operator is an equals sign - // and keep going. Otherwise, we'll require the operator to be passed in. - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() == 2 - ); - - // If the given operator is not found in the list of valid operators we will - // assume that the developer is just short-cutting the '=' operators and - // we will set the operators to '=' and set the values appropriately. - if ($this->invalidOperator($operator)) { - list($value, $operator) = [$operator, '=']; - } - - $this->havings[] = compact('type', 'column', 'operator', 'value', 'boolean'); - - if (! $value instanceof Expression) { - $this->addBinding($value, 'having'); - } - - return $this; - } - - /** - * Add a "or having" clause to the query. - * - * @param string $column - * @param string|null $operator - * @param string|null $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orHaving($column, $operator = null, $value = null) - { - return $this->having($column, $operator, $value, 'or'); - } - - /** - * Add a raw having clause to the query. - * - * @param string $sql - * @param array $bindings - * @param string $boolean - * @return $this - */ - public function havingRaw($sql, array $bindings = [], $boolean = 'and') - { - $type = 'Raw'; - - $this->havings[] = compact('type', 'sql', 'boolean'); - - $this->addBinding($bindings, 'having'); - - return $this; - } - - /** - * Add a raw or having clause to the query. - * - * @param string $sql - * @param array $bindings - * @return \Illuminate\Database\Query\Builder|static - */ - public function orHavingRaw($sql, array $bindings = []) - { - return $this->havingRaw($sql, $bindings, 'or'); - } - - /** - * Add an "order by" clause to the query. - * - * @param string $column - * @param string $direction - * @return $this - */ - public function orderBy($column, $direction = 'asc') - { - $this->{$this->unions ? 'unionOrders' : 'orders'}[] = [ - 'column' => $column, - 'direction' => strtolower($direction) == 'asc' ? 'asc' : 'desc', - ]; - - return $this; - } - - /** - * Add a descending "order by" clause to the query. - * - * @param string $column - * @return $this - */ - public function orderByDesc($column) - { - return $this->orderBy($column, 'desc'); - } - - /** - * Add an "order by" clause for a timestamp to the query. - * - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function latest($column = 'created_at') - { - return $this->orderBy($column, 'desc'); - } - - /** - * Add an "order by" clause for a timestamp to the query. - * - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function oldest($column = 'created_at') - { - return $this->orderBy($column, 'asc'); - } - - /** - * Put the query's results in random order. - * - * @param string $seed - * @return $this - */ - public function inRandomOrder($seed = '') - { - return $this->orderByRaw($this->grammar->compileRandom($seed)); - } - - /** - * Add a raw "order by" clause to the query. - * - * @param string $sql - * @param array $bindings - * @return $this - */ - public function orderByRaw($sql, $bindings = []) - { - $type = 'Raw'; - - $this->{$this->unions ? 'unionOrders' : 'orders'}[] = compact('type', 'sql'); - - $this->addBinding($bindings, 'order'); - - return $this; - } - - /** - * Alias to set the "offset" value of the query. - * - * @param int $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function skip($value) - { - return $this->offset($value); - } - - /** - * Set the "offset" value of the query. - * - * @param int $value - * @return $this - */ - public function offset($value) - { - $property = $this->unions ? 'unionOffset' : 'offset'; - - $this->$property = max(0, $value); - - return $this; - } - - /** - * Alias to set the "limit" value of the query. - * - * @param int $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function take($value) - { - return $this->limit($value); - } - - /** - * Set the "limit" value of the query. - * - * @param int $value - * @return $this - */ - public function limit($value) - { - $property = $this->unions ? 'unionLimit' : 'limit'; - - if ($value >= 0) { - $this->$property = $value; - } - - return $this; - } - - /** - * Set the limit and offset for a given page. - * - * @param int $page - * @param int $perPage - * @return \Illuminate\Database\Query\Builder|static - */ - public function forPage($page, $perPage = 15) - { - return $this->skip(($page - 1) * $perPage)->take($perPage); - } - - /** - * Constrain the query to the next "page" of results after a given ID. - * - * @param int $perPage - * @param int $lastId - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id') - { - $this->orders = $this->removeExistingOrdersFor($column); - - return $this->where($column, '>', $lastId) - ->orderBy($column, 'asc') - ->take($perPage); - } - - /** - * Get an array with all orders with a given column removed. - * - * @param string $column - * @return array - */ - protected function removeExistingOrdersFor($column) - { - return Collection::make($this->orders) - ->reject(function ($order) use ($column) { - return isset($order['column']) - ? $order['column'] === $column : false; - })->values()->all(); - } - - /** - * Add a union statement to the query. - * - * @param \Illuminate\Database\Query\Builder|\Closure $query - * @param bool $all - * @return \Illuminate\Database\Query\Builder|static - */ - public function union($query, $all = false) - { - if ($query instanceof Closure) { - call_user_func($query, $query = $this->newQuery()); - } - - $this->unions[] = compact('query', 'all'); - - $this->addBinding($query->getBindings(), 'union'); - - return $this; - } - - /** - * Add a union all statement to the query. - * - * @param \Illuminate\Database\Query\Builder|\Closure $query - * @return \Illuminate\Database\Query\Builder|static - */ - public function unionAll($query) - { - return $this->union($query, true); - } - - /** - * Lock the selected rows in the table. - * - * @param string|bool $value - * @return $this - */ - public function lock($value = true) - { - $this->lock = $value; - - if (! is_null($this->lock)) { - $this->useWritePdo(); - } - - return $this; - } - - /** - * Lock the selected rows in the table for updating. - * - * @return \Illuminate\Database\Query\Builder - */ - public function lockForUpdate() - { - return $this->lock(true); - } - - /** - * Share lock the selected rows in the table. - * - * @return \Illuminate\Database\Query\Builder - */ - public function sharedLock() - { - return $this->lock(false); - } - - /** - * Get the SQL representation of the query. - * - * @return string - */ - public function toSql() - { - return $this->grammar->compileSelect($this); - } - - /** - * Execute a query for a single record by ID. - * - * @param int $id - * @param array $columns - * @return mixed|static - */ - public function find($id, $columns = ['*']) - { - return $this->where('id', '=', $id)->first($columns); - } - - /** - * Get a single column's value from the first result of a query. - * - * @param string $column - * @return mixed - */ - public function value($column) - { - $result = (array) $this->first([$column]); - - return count($result) > 0 ? reset($result) : null; - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Support\Collection - */ - public function get($columns = ['*']) - { - $original = $this->columns; - - if (is_null($original)) { - $this->columns = $columns; - } - - $results = $this->processor->processSelect($this, $this->runSelect()); - - $this->columns = $original; - - return collect($results); - } - - /** - * Run the query as a "select" statement against the connection. - * - * @return array - */ - protected function runSelect() - { - return $this->connection->select( - $this->toSql(), $this->getBindings(), ! $this->useWritePdo - ); - } - - /** - * Paginate the given query into a simple paginator. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - */ - public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $page = null) - { - $page = $page ?: Paginator::resolveCurrentPage($pageName); - - $total = $this->getCountForPagination($columns); - - $results = $total ? $this->forPage($page, $perPage)->get($columns) : collect(); - - return $this->paginator($results, $total, $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), - 'pageName' => $pageName, - ]); - } - - /** - * Get a paginator only supporting simple next and previous links. - * - * This is more efficient on larger data-sets, etc. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - */ - public function simplePaginate($perPage = 15, $columns = ['*'], $pageName = 'page', $page = null) - { - $page = $page ?: Paginator::resolveCurrentPage($pageName); - - $this->skip(($page - 1) * $perPage)->take($perPage + 1); - - return $this->simplePaginator($this->get($columns), $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), - 'pageName' => $pageName, - ]); - } - - /** - * Get the count of the total records for the paginator. - * - * @param array $columns - * @return int - */ - public function getCountForPagination($columns = ['*']) - { - $results = $this->runPaginationCountQuery($columns); - - // Once we have run the pagination count query, we will get the resulting count and - // take into account what type of query it was. When there is a group by we will - // just return the count of the entire results set since that will be correct. - if (isset($this->groups)) { - return count($results); - } elseif (! isset($results[0])) { - return 0; - } elseif (is_object($results[0])) { - return (int) $results[0]->aggregate; - } - - return (int) array_change_key_case((array) $results[0])['aggregate']; - } - - /** - * Run a pagination count query. - * - * @param array $columns - * @return array - */ - protected function runPaginationCountQuery($columns = ['*']) - { - return $this->cloneWithout(['columns', 'orders', 'limit', 'offset']) - ->cloneWithoutBindings(['select', 'order']) - ->setAggregate('count', $this->withoutSelectAliases($columns)) - ->get()->all(); - } - - /** - * Remove the column aliases since they will break count queries. - * - * @param array $columns - * @return array - */ - protected function withoutSelectAliases(array $columns) - { - return array_map(function ($column) { - return is_string($column) && ($aliasPosition = strpos(strtolower($column), ' as ')) !== false - ? substr($column, 0, $aliasPosition) : $column; - }, $columns); - } - - /** - * Get a generator for the given query. - * - * @return \Generator - */ - public function cursor() - { - if (is_null($this->columns)) { - $this->columns = ['*']; - } - - return $this->connection->cursor( - $this->toSql(), $this->getBindings(), ! $this->useWritePdo - ); - } - - /** - * Chunk the results of a query by comparing numeric IDs. - * - * @param int $count - * @param callable $callback - * @param string $column - * @param string $alias - * @return bool - */ - public function chunkById($count, callable $callback, $column = 'id', $alias = null) - { - $alias = $alias ?: $column; - - $lastId = 0; - - do { - $clone = clone $this; - - // We'll execute the query for the given page and get the results. If there are - // no results we can just break and return from here. When there are results - // we will call the callback with the current chunk of these results here. - $results = $clone->forPageAfterId($count, $lastId, $column)->get(); - - $countResults = $results->count(); - - if ($countResults == 0) { - break; - } - - // On each chunk result set, we will pass them to the callback and then let the - // developer take care of everything within the callback, which allows us to - // keep the memory low for spinning through large result sets for working. - if ($callback($results) === false) { - return false; - } - - $lastId = $results->last()->{$alias}; - - unset($results); - } while ($countResults == $count); - - return true; - } - - /** - * Throw an exception if the query doesn't have an orderBy clause. - * - * @return void - * - * @throws \RuntimeException - */ - protected function enforceOrderBy() - { - if (empty($this->orders) && empty($this->unionOrders)) { - throw new RuntimeException('You must specify an orderBy clause when using this function.'); - } - } - - /** - * Get an array with the values of a given column. - * - * @param string $column - * @param string|null $key - * @return \Illuminate\Support\Collection - */ - public function pluck($column, $key = null) - { - $results = $this->get(is_null($key) ? [$column] : [$column, $key]); - - // If the columns are qualified with a table or have an alias, we cannot use - // those directly in the "pluck" operations since the results from the DB - // are only keyed by the column itself. We'll strip the table out here. - return $results->pluck( - $this->stripTableForPluck($column), - $this->stripTableForPluck($key) - ); - } - - /** - * Strip off the table name or alias from a column identifier. - * - * @param string $column - * @return string|null - */ - protected function stripTableForPluck($column) - { - return is_null($column) ? $column : last(preg_split('~\.| ~', $column)); - } - - /** - * Concatenate values of a given column as a string. - * - * @param string $column - * @param string $glue - * @return string - */ - public function implode($column, $glue = '') - { - return $this->pluck($column)->implode($glue); - } - - /** - * Determine if any rows exist for the current query. - * - * @return bool - */ - public function exists() - { - $results = $this->connection->select( - $this->grammar->compileExists($this), $this->getBindings(), ! $this->useWritePdo - ); - - // If the results has rows, we will get the row and see if the exists column is a - // boolean true. If there is no results for this query we will return false as - // there are no rows for this query at all and we can return that info here. - if (isset($results[0])) { - $results = (array) $results[0]; - - return (bool) $results['exists']; - } - - return false; - } - - /** - * Determine if no rows exist for the current query. - * - * @return bool - */ - public function doesntExist() - { - return ! $this->exists(); - } - - /** - * Retrieve the "count" result of the query. - * - * @param string $columns - * @return int - */ - public function count($columns = '*') - { - return (int) $this->aggregate(__FUNCTION__, Arr::wrap($columns)); - } - - /** - * Retrieve the minimum value of a given column. - * - * @param string $column - * @return mixed - */ - public function min($column) - { - return $this->aggregate(__FUNCTION__, [$column]); - } - - /** - * Retrieve the maximum value of a given column. - * - * @param string $column - * @return mixed - */ - public function max($column) - { - return $this->aggregate(__FUNCTION__, [$column]); - } - - /** - * Retrieve the sum of the values of a given column. - * - * @param string $column - * @return mixed - */ - public function sum($column) - { - $result = $this->aggregate(__FUNCTION__, [$column]); - - return $result ?: 0; - } - - /** - * Retrieve the average of the values of a given column. - * - * @param string $column - * @return mixed - */ - public function avg($column) - { - return $this->aggregate(__FUNCTION__, [$column]); - } - - /** - * Alias for the "avg" method. - * - * @param string $column - * @return mixed - */ - public function average($column) - { - return $this->avg($column); - } - - /** - * Execute an aggregate function on the database. - * - * @param string $function - * @param array $columns - * @return mixed - */ - public function aggregate($function, $columns = ['*']) - { - $results = $this->cloneWithout(['columns']) - ->cloneWithoutBindings(['select']) - ->setAggregate($function, $columns) - ->get($columns); - - if (! $results->isEmpty()) { - return array_change_key_case((array) $results[0])['aggregate']; - } - } - - /** - * Execute a numeric aggregate function on the database. - * - * @param string $function - * @param array $columns - * @return float|int - */ - public function numericAggregate($function, $columns = ['*']) - { - $result = $this->aggregate($function, $columns); - - // If there is no result, we can obviously just return 0 here. Next, we will check - // if the result is an integer or float. If it is already one of these two data - // types we can just return the result as-is, otherwise we will convert this. - if (! $result) { - return 0; - } - - if (is_int($result) || is_float($result)) { - return $result; - } - - // If the result doesn't contain a decimal place, we will assume it is an int then - // cast it to one. When it does we will cast it to a float since it needs to be - // cast to the expected data type for the developers out of pure convenience. - return strpos((string) $result, '.') === false - ? (int) $result : (float) $result; - } - - /** - * Set the aggregate property without running the query. - * - * @param string $function - * @param array $columns - * @return $this - */ - protected function setAggregate($function, $columns) - { - $this->aggregate = compact('function', 'columns'); - - if (empty($this->groups)) { - $this->orders = null; - - $this->bindings['order'] = []; - } - - return $this; - } - - /** - * Insert a new record into the database. - * - * @param array $values - * @return bool - */ - public function insert(array $values) - { - // Since every insert gets treated like a batch insert, we will make sure the - // bindings are structured in a way that is convenient when building these - // inserts statements by verifying these elements are actually an array. - if (empty($values)) { - return true; - } - - if (! is_array(reset($values))) { - $values = [$values]; - } - - // Here, we will sort the insert keys for every record so that each insert is - // in the same order for the record. We need to make sure this is the case - // so there are not any errors or problems when inserting these records. - else { - foreach ($values as $key => $value) { - ksort($value); - - $values[$key] = $value; - } - } - - // Finally, we will run this query against the database connection and return - // the results. We will need to also flatten these bindings before running - // the query so they are all in one huge, flattened array for execution. - return $this->connection->insert( - $this->grammar->compileInsert($this, $values), - $this->cleanBindings(Arr::flatten($values, 1)) - ); - } - - /** - * Insert a new record and get the value of the primary key. - * - * @param array $values - * @param string|null $sequence - * @return int - */ - public function insertGetId(array $values, $sequence = null) - { - $sql = $this->grammar->compileInsertGetId($this, $values, $sequence); - - $values = $this->cleanBindings($values); - - return $this->processor->processInsertGetId($this, $sql, $values, $sequence); - } - - /** - * Update a record in the database. - * - * @param array $values - * @return int - */ - public function update(array $values) - { - $sql = $this->grammar->compileUpdate($this, $values); - - return $this->connection->update($sql, $this->cleanBindings( - $this->grammar->prepareBindingsForUpdate($this->bindings, $values) - )); - } - - /** - * Insert or update a record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @return bool - */ - public function updateOrInsert(array $attributes, array $values = []) - { - if (! $this->where($attributes)->exists()) { - return $this->insert(array_merge($attributes, $values)); - } - - return (bool) $this->take(1)->update($values); - } - - /** - * Increment a column's value by a given amount. - * - * @param string $column - * @param int $amount - * @param array $extra - * @return int - */ - public function increment($column, $amount = 1, array $extra = []) - { - if (! is_numeric($amount)) { - throw new InvalidArgumentException('Non-numeric value passed to increment method.'); - } - - $wrapped = $this->grammar->wrap($column); - - $columns = array_merge([$column => $this->raw("$wrapped + $amount")], $extra); - - return $this->update($columns); - } - - /** - * Decrement a column's value by a given amount. - * - * @param string $column - * @param int $amount - * @param array $extra - * @return int - */ - public function decrement($column, $amount = 1, array $extra = []) - { - if (! is_numeric($amount)) { - throw new InvalidArgumentException('Non-numeric value passed to decrement method.'); - } - - $wrapped = $this->grammar->wrap($column); - - $columns = array_merge([$column => $this->raw("$wrapped - $amount")], $extra); - - return $this->update($columns); - } - - /** - * Delete a record from the database. - * - * @param mixed $id - * @return int - */ - public function delete($id = null) - { - // If an ID is passed to the method, we will set the where clause to check the - // ID to let developers to simply and quickly remove a single row from this - // database without manually specifying the "where" clauses on the query. - if (! is_null($id)) { - $this->where($this->from.'.id', '=', $id); - } - - return $this->connection->delete( - $this->grammar->compileDelete($this), $this->cleanBindings( - $this->grammar->prepareBindingsForDelete($this->bindings) - ) - ); - } - - /** - * Run a truncate statement on the table. - * - * @return void - */ - public function truncate() - { - foreach ($this->grammar->compileTruncate($this) as $sql => $bindings) { - $this->connection->statement($sql, $bindings); - } - } - - /** - * Get a new instance of the query builder. - * - * @return \Illuminate\Database\Query\Builder - */ - public function newQuery() - { - return new static($this->connection, $this->grammar, $this->processor); - } - - /** - * Create a new query instance for a sub-query. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function forSubQuery() - { - return $this->newQuery(); - } - - /** - * Create a raw database expression. - * - * @param mixed $value - * @return \Illuminate\Database\Query\Expression - */ - public function raw($value) - { - return $this->connection->raw($value); - } - - /** - * Get the current query value bindings in a flattened array. - * - * @return array - */ - public function getBindings() - { - return Arr::flatten($this->bindings); - } - - /** - * Get the raw array of bindings. - * - * @return array - */ - public function getRawBindings() - { - return $this->bindings; - } - - /** - * Set the bindings on the query builder. - * - * @param array $bindings - * @param string $type - * @return $this - * - * @throws \InvalidArgumentException - */ - public function setBindings(array $bindings, $type = 'where') - { - if (! array_key_exists($type, $this->bindings)) { - throw new InvalidArgumentException("Invalid binding type: {$type}."); - } - - $this->bindings[$type] = $bindings; - - return $this; - } - - /** - * Add a binding to the query. - * - * @param mixed $value - * @param string $type - * @return $this - * - * @throws \InvalidArgumentException - */ - public function addBinding($value, $type = 'where') - { - if (! array_key_exists($type, $this->bindings)) { - throw new InvalidArgumentException("Invalid binding type: {$type}."); - } - - if (is_array($value)) { - $this->bindings[$type] = array_values(array_merge($this->bindings[$type], $value)); - } else { - $this->bindings[$type][] = $value; - } - - return $this; - } - - /** - * Merge an array of bindings into our bindings. - * - * @param \Illuminate\Database\Query\Builder $query - * @return $this - */ - public function mergeBindings(self $query) - { - $this->bindings = array_merge_recursive($this->bindings, $query->bindings); - - return $this; - } - - /** - * Remove all of the expressions from a list of bindings. - * - * @param array $bindings - * @return array - */ - protected function cleanBindings(array $bindings) - { - return array_values(array_filter($bindings, function ($binding) { - return ! $binding instanceof Expression; - })); - } - - /** - * Get the database connection instance. - * - * @return \Illuminate\Database\ConnectionInterface - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Get the database query processor instance. - * - * @return \Illuminate\Database\Query\Processors\Processor - */ - public function getProcessor() - { - return $this->processor; - } - - /** - * Get the query grammar instance. - * - * @return \Illuminate\Database\Query\Grammars\Grammar - */ - public function getGrammar() - { - return $this->grammar; - } - - /** - * Use the write pdo for query. - * - * @return $this - */ - public function useWritePdo() - { - $this->useWritePdo = true; - - return $this; - } - - /** - * Clone the query without the given properties. - * - * @param array $properties - * @return static - */ - public function cloneWithout(array $properties) - { - return tap(clone $this, function ($clone) use ($properties) { - foreach ($properties as $property) { - $clone->{$property} = null; - } - }); - } - - /** - * Clone the query without the given bindings. - * - * @param array $except - * @return static - */ - public function cloneWithoutBindings(array $except) - { - return tap(clone $this, function ($clone) use ($except) { - foreach ($except as $type) { - $clone->bindings[$type] = []; - } - }); - } - - /** - * Handle dynamic method calls into the method. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if (Str::startsWith($method, 'where')) { - return $this->dynamicWhere($method, $parameters); - } - - $className = static::class; - - throw new BadMethodCallException("Call to undefined method {$className}::{$method}()"); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php deleted file mode 100755 index de690299..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php +++ /dev/null @@ -1,44 +0,0 @@ -value = $value; - } - - /** - * Get the value of the expression. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Get the value of the expression. - * - * @return string - */ - public function __toString() - { - return (string) $this->getValue(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php deleted file mode 100755 index 63770ce8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php +++ /dev/null @@ -1,863 +0,0 @@ -columns; - - if (is_null($query->columns)) { - $query->columns = ['*']; - } - - // To compile the query, we'll spin through each component of the query and - // see if that component exists. If it does we'll just call the compiler - // function for the component which is responsible for making the SQL. - $sql = trim($this->concatenate( - $this->compileComponents($query)) - ); - - $query->columns = $original; - - return $sql; - } - - /** - * Compile the components necessary for a select clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - protected function compileComponents(Builder $query) - { - $sql = []; - - foreach ($this->selectComponents as $component) { - // To compile the query, we'll spin through each component of the query and - // see if that component exists. If it does we'll just call the compiler - // function for the component which is responsible for making the SQL. - if (! is_null($query->$component)) { - $method = 'compile'.ucfirst($component); - - $sql[$component] = $this->$method($query, $query->$component); - } - } - - return $sql; - } - - /** - * Compile an aggregated select clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $aggregate - * @return string - */ - protected function compileAggregate(Builder $query, $aggregate) - { - $column = $this->columnize($aggregate['columns']); - - // If the query has a "distinct" constraint and we're not asking for all columns - // we need to prepend "distinct" onto the column name so that the query takes - // it into account when it performs the aggregating operations on the data. - if ($query->distinct && $column !== '*') { - $column = 'distinct '.$column; - } - - return 'select '.$aggregate['function'].'('.$column.') as aggregate'; - } - - /** - * Compile the "select *" portion of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $columns - * @return string|null - */ - protected function compileColumns(Builder $query, $columns) - { - // If the query is actually performing an aggregating select, we will let that - // compiler handle the building of the select clauses, as it will need some - // more syntax that is best handled by that function to keep things neat. - if (! is_null($query->aggregate)) { - return; - } - - $select = $query->distinct ? 'select distinct ' : 'select '; - - return $select.$this->columnize($columns); - } - - /** - * Compile the "from" portion of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @return string - */ - protected function compileFrom(Builder $query, $table) - { - return 'from '.$this->wrapTable($table); - } - - /** - * Compile the "join" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $joins - * @return string - */ - protected function compileJoins(Builder $query, $joins) - { - return collect($joins)->map(function ($join) { - $table = $this->wrapTable($join->table); - - return trim("{$join->type} join {$table} {$this->compileWheres($join)}"); - })->implode(' '); - } - - /** - * Compile the "where" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileWheres(Builder $query) - { - // Each type of where clauses has its own compiler function which is responsible - // for actually creating the where clauses SQL. This helps keep the code nice - // and maintainable since each clause has a very small method that it uses. - if (is_null($query->wheres)) { - return ''; - } - - // If we actually have some where clauses, we will strip off the first boolean - // operator, which is added by the query builders for convenience so we can - // avoid checking for the first clauses in each of the compilers methods. - if (count($sql = $this->compileWheresToArray($query)) > 0) { - return $this->concatenateWhereClauses($query, $sql); - } - - return ''; - } - - /** - * Get an array of all the where clauses for the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - protected function compileWheresToArray($query) - { - return collect($query->wheres)->map(function ($where) use ($query) { - return $where['boolean'].' '.$this->{"where{$where['type']}"}($query, $where); - })->all(); - } - - /** - * Format the where clause statements into one string. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $sql - * @return string - */ - protected function concatenateWhereClauses($query, $sql) - { - $conjunction = $query instanceof JoinClause ? 'on' : 'where'; - - return $conjunction.' '.$this->removeLeadingBoolean(implode(' ', $sql)); - } - - /** - * Compile a raw where clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereRaw(Builder $query, $where) - { - return $where['sql']; - } - - /** - * Compile a basic where clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereBasic(Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return $this->wrap($where['column']).' '.$where['operator'].' '.$value; - } - - /** - * Compile a "where in" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereIn(Builder $query, $where) - { - if (! empty($where['values'])) { - return $this->wrap($where['column']).' in ('.$this->parameterize($where['values']).')'; - } - - return '0 = 1'; - } - - /** - * Compile a "where not in" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNotIn(Builder $query, $where) - { - if (! empty($where['values'])) { - return $this->wrap($where['column']).' not in ('.$this->parameterize($where['values']).')'; - } - - return '1 = 1'; - } - - /** - * Compile a where in sub-select clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereInSub(Builder $query, $where) - { - return $this->wrap($where['column']).' in ('.$this->compileSelect($where['query']).')'; - } - - /** - * Compile a where not in sub-select clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNotInSub(Builder $query, $where) - { - return $this->wrap($where['column']).' not in ('.$this->compileSelect($where['query']).')'; - } - - /** - * Compile a "where null" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNull(Builder $query, $where) - { - return $this->wrap($where['column']).' is null'; - } - - /** - * Compile a "where not null" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNotNull(Builder $query, $where) - { - return $this->wrap($where['column']).' is not null'; - } - - /** - * Compile a "between" where clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereBetween(Builder $query, $where) - { - $between = $where['not'] ? 'not between' : 'between'; - - return $this->wrap($where['column']).' '.$between.' ? and ?'; - } - - /** - * Compile a "where date" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDate(Builder $query, $where) - { - return $this->dateBasedWhere('date', $query, $where); - } - - /** - * Compile a "where time" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereTime(Builder $query, $where) - { - return $this->dateBasedWhere('time', $query, $where); - } - - /** - * Compile a "where day" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDay(Builder $query, $where) - { - return $this->dateBasedWhere('day', $query, $where); - } - - /** - * Compile a "where month" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereMonth(Builder $query, $where) - { - return $this->dateBasedWhere('month', $query, $where); - } - - /** - * Compile a "where year" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereYear(Builder $query, $where) - { - return $this->dateBasedWhere('year', $query, $where); - } - - /** - * Compile a date based where clause. - * - * @param string $type - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function dateBasedWhere($type, Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return $type.'('.$this->wrap($where['column']).') '.$where['operator'].' '.$value; - } - - /** - * Compile a where clause comparing two columns.. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereColumn(Builder $query, $where) - { - return $this->wrap($where['first']).' '.$where['operator'].' '.$this->wrap($where['second']); - } - - /** - * Compile a nested where clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNested(Builder $query, $where) - { - // Here we will calculate what portion of the string we need to remove. If this - // is a join clause query, we need to remove the "on" portion of the SQL and - // if it is a normal query we need to take the leading "where" of queries. - $offset = $query instanceof JoinClause ? 3 : 6; - - return '('.substr($this->compileWheres($where['query']), $offset).')'; - } - - /** - * Compile a where condition with a sub-select. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereSub(Builder $query, $where) - { - $select = $this->compileSelect($where['query']); - - return $this->wrap($where['column']).' '.$where['operator']." ($select)"; - } - - /** - * Compile a where exists clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereExists(Builder $query, $where) - { - return 'exists ('.$this->compileSelect($where['query']).')'; - } - - /** - * Compile a where exists clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNotExists(Builder $query, $where) - { - return 'not exists ('.$this->compileSelect($where['query']).')'; - } - - /** - * Compile the "group by" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $groups - * @return string - */ - protected function compileGroups(Builder $query, $groups) - { - return 'group by '.$this->columnize($groups); - } - - /** - * Compile the "having" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $havings - * @return string - */ - protected function compileHavings(Builder $query, $havings) - { - $sql = implode(' ', array_map([$this, 'compileHaving'], $havings)); - - return 'having '.$this->removeLeadingBoolean($sql); - } - - /** - * Compile a single having clause. - * - * @param array $having - * @return string - */ - protected function compileHaving(array $having) - { - // If the having clause is "raw", we can just return the clause straight away - // without doing any more processing on it. Otherwise, we will compile the - // clause into SQL based on the components that make it up from builder. - if ($having['type'] === 'Raw') { - return $having['boolean'].' '.$having['sql']; - } - - return $this->compileBasicHaving($having); - } - - /** - * Compile a basic having clause. - * - * @param array $having - * @return string - */ - protected function compileBasicHaving($having) - { - $column = $this->wrap($having['column']); - - $parameter = $this->parameter($having['value']); - - return $having['boolean'].' '.$column.' '.$having['operator'].' '.$parameter; - } - - /** - * Compile the "order by" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $orders - * @return string - */ - protected function compileOrders(Builder $query, $orders) - { - if (! empty($orders)) { - return 'order by '.implode(', ', $this->compileOrdersToArray($query, $orders)); - } - - return ''; - } - - /** - * Compile the query orders to an array. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $orders - * @return array - */ - protected function compileOrdersToArray(Builder $query, $orders) - { - return array_map(function ($order) { - return ! isset($order['sql']) - ? $this->wrap($order['column']).' '.$order['direction'] - : $order['sql']; - }, $orders); - } - - /** - * Compile the random statement into SQL. - * - * @param string $seed - * @return string - */ - public function compileRandom($seed) - { - return 'RANDOM()'; - } - - /** - * Compile the "limit" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $limit - * @return string - */ - protected function compileLimit(Builder $query, $limit) - { - return 'limit '.(int) $limit; - } - - /** - * Compile the "offset" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $offset - * @return string - */ - protected function compileOffset(Builder $query, $offset) - { - return 'offset '.(int) $offset; - } - - /** - * Compile the "union" queries attached to the main query. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileUnions(Builder $query) - { - $sql = ''; - - foreach ($query->unions as $union) { - $sql .= $this->compileUnion($union); - } - - if (! empty($query->unionOrders)) { - $sql .= ' '.$this->compileOrders($query, $query->unionOrders); - } - - if (isset($query->unionLimit)) { - $sql .= ' '.$this->compileLimit($query, $query->unionLimit); - } - - if (isset($query->unionOffset)) { - $sql .= ' '.$this->compileOffset($query, $query->unionOffset); - } - - return ltrim($sql); - } - - /** - * Compile a single union statement. - * - * @param array $union - * @return string - */ - protected function compileUnion(array $union) - { - $conjuction = $union['all'] ? ' union all ' : ' union '; - - return $conjuction.$union['query']->toSql(); - } - - /** - * Compile an exists statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileExists(Builder $query) - { - $select = $this->compileSelect($query); - - return "select exists({$select}) as {$this->wrap('exists')}"; - } - - /** - * Compile an insert statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileInsert(Builder $query, array $values) - { - // Essentially we will force every insert to be treated as a batch insert which - // simply makes creating the SQL easier for us since we can utilize the same - // basic routine regardless of an amount of records given to us to insert. - $table = $this->wrapTable($query->from); - - if (! is_array(reset($values))) { - $values = [$values]; - } - - $columns = $this->columnize(array_keys(reset($values))); - - // We need to build a list of parameter place-holders of values that are bound - // to the query. Each insert should have the exact same amount of parameter - // bindings so we will loop through the record and parameterize them all. - $parameters = collect($values)->map(function ($record) { - return '('.$this->parameterize($record).')'; - })->implode(', '); - - return "insert into $table ($columns) values $parameters"; - } - - /** - * Compile an insert and get ID statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @param string $sequence - * @return string - */ - public function compileInsertGetId(Builder $query, $values, $sequence) - { - return $this->compileInsert($query, $values); - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - $table = $this->wrapTable($query->from); - - // Each one of the columns in the update statements needs to be wrapped in the - // keyword identifiers, also a place-holder needs to be created for each of - // the values in the list of bindings so we can make the sets statements. - $columns = collect($values)->map(function ($value, $key) { - return $this->wrap($key).' = '.$this->parameter($value); - })->implode(', '); - - // If the query has any "join" clauses, we will setup the joins on the builder - // and compile them so we can attach them to this update, as update queries - // can get join statements to attach to other tables when they're needed. - $joins = ''; - - if (isset($query->joins)) { - $joins = ' '.$this->compileJoins($query, $query->joins); - } - - // Of course, update queries may also be constrained by where clauses so we'll - // need to compile the where clauses and attach it to the query so only the - // intended records are updated by the SQL statements we generate to run. - $wheres = $this->compileWheres($query); - - return trim("update {$table}{$joins} set $columns $wheres"); - } - - /** - * Prepare the bindings for an update statement. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - $cleanBindings = Arr::except($bindings, ['join', 'select']); - - return array_values( - array_merge($bindings['join'], $values, Arr::flatten($cleanBindings)) - ); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - $wheres = is_array($query->wheres) ? $this->compileWheres($query) : ''; - - return trim("delete from {$this->wrapTable($query->from)} $wheres"); - } - - /** - * Prepare the bindings for a delete statement. - * - * @param array $bindings - * @return array - */ - public function prepareBindingsForDelete(array $bindings) - { - return Arr::flatten($bindings); - } - - /** - * Compile a truncate table statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - public function compileTruncate(Builder $query) - { - return ['truncate '.$this->wrapTable($query->from) => []]; - } - - /** - * Compile the lock into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param bool|string $value - * @return string - */ - protected function compileLock(Builder $query, $value) - { - return is_string($value) ? $value : ''; - } - - /** - * Determine if the grammar supports savepoints. - * - * @return bool - */ - public function supportsSavepoints() - { - return true; - } - - /** - * Compile the SQL statement to define a savepoint. - * - * @param string $name - * @return string - */ - public function compileSavepoint($name) - { - return 'SAVEPOINT '.$name; - } - - /** - * Compile the SQL statement to execute a savepoint rollback. - * - * @param string $name - * @return string - */ - public function compileSavepointRollBack($name) - { - return 'ROLLBACK TO SAVEPOINT '.$name; - } - - /** - * Concatenate an array of segments, removing empties. - * - * @param array $segments - * @return string - */ - protected function concatenate($segments) - { - return implode(' ', array_filter($segments, function ($value) { - return (string) $value !== ''; - })); - } - - /** - * Remove the leading boolean from a statement. - * - * @param string $value - * @return string - */ - protected function removeLeadingBoolean($value) - { - return preg_replace('/and |or /i', '', $value, 1); - } - - /** - * Get the grammar specific operators. - * - * @return array - */ - public function getOperators() - { - return $this->operators; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php deleted file mode 100755 index 8dff604a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php +++ /dev/null @@ -1,316 +0,0 @@ -unions) { - $sql = '('.$sql.') '.$this->compileUnions($query); - } - - return $sql; - } - - /** - * Compile a single union statement. - * - * @param array $union - * @return string - */ - protected function compileUnion(array $union) - { - $conjuction = $union['all'] ? ' union all ' : ' union '; - - return $conjuction.'('.$union['query']->toSql().')'; - } - - /** - * Compile the random statement into SQL. - * - * @param string $seed - * @return string - */ - public function compileRandom($seed) - { - return 'RAND('.$seed.')'; - } - - /** - * Compile the lock into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param bool|string $value - * @return string - */ - protected function compileLock(Builder $query, $value) - { - if (! is_string($value)) { - return $value ? 'for update' : 'lock in share mode'; - } - - return $value; - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - $table = $this->wrapTable($query->from); - - // Each one of the columns in the update statements needs to be wrapped in the - // keyword identifiers, also a place-holder needs to be created for each of - // the values in the list of bindings so we can make the sets statements. - $columns = $this->compileUpdateColumns($values); - - // If the query has any "join" clauses, we will setup the joins on the builder - // and compile them so we can attach them to this update, as update queries - // can get join statements to attach to other tables when they're needed. - $joins = ''; - - if (isset($query->joins)) { - $joins = ' '.$this->compileJoins($query, $query->joins); - } - - // Of course, update queries may also be constrained by where clauses so we'll - // need to compile the where clauses and attach it to the query so only the - // intended records are updated by the SQL statements we generate to run. - $where = $this->compileWheres($query); - - $sql = rtrim("update {$table}{$joins} set $columns $where"); - - // If the query has an order by clause we will compile it since MySQL supports - // order bys on update statements. We'll compile them using the typical way - // of compiling order bys. Then they will be appended to the SQL queries. - if (! empty($query->orders)) { - $sql .= ' '.$this->compileOrders($query, $query->orders); - } - - // Updates on MySQL also supports "limits", which allow you to easily update a - // single record very easily. This is not supported by all database engines - // so we have customized this update compiler here in order to add it in. - if (isset($query->limit)) { - $sql .= ' '.$this->compileLimit($query, $query->limit); - } - - return rtrim($sql); - } - - /** - * Compile all of the columns for an update statement. - * - * @param array $values - * @return string - */ - protected function compileUpdateColumns($values) - { - return collect($values)->map(function ($value, $key) { - if ($this->isJsonSelector($key)) { - return $this->compileJsonUpdateColumn($key, new JsonExpression($value)); - } - - return $this->wrap($key).' = '.$this->parameter($value); - })->implode(', '); - } - - /** - * Prepares a JSON column being updated using the JSON_SET function. - * - * @param string $key - * @param \Illuminate\Database\Query\JsonExpression $value - * @return string - */ - protected function compileJsonUpdateColumn($key, JsonExpression $value) - { - $path = explode('->', $key); - - $field = $this->wrapValue(array_shift($path)); - - $accessor = "'$.\"".implode('"."', $path)."\"'"; - - return "{$field} = json_set({$field}, {$accessor}, {$value->getValue()})"; - } - - /** - * Prepare the bindings for an update statement. - * - * Booleans, integers, and doubles are inserted into JSON updates as raw values. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - $values = collect($values)->reject(function ($value, $column) { - return $this->isJsonSelector($column) && - in_array(gettype($value), ['boolean', 'integer', 'double']); - })->all(); - - return parent::prepareBindingsForUpdate($bindings, $values); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - $table = $this->wrapTable($query->from); - - $where = is_array($query->wheres) ? $this->compileWheres($query) : ''; - - return isset($query->joins) - ? $this->compileDeleteWithJoins($query, $table, $where) - : $this->compileDeleteWithoutJoins($query, $table, $where); - } - - /** - * Prepare the bindings for a delete statement. - * - * @param array $bindings - * @return array - */ - public function prepareBindingsForDelete(array $bindings) - { - $cleanBindings = Arr::except($bindings, ['join', 'select']); - - return array_values( - array_merge($bindings['join'], Arr::flatten($cleanBindings)) - ); - } - - /** - * Compile a delete query that does not use joins. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @param array $where - * @return string - */ - protected function compileDeleteWithoutJoins($query, $table, $where) - { - $sql = trim("delete from {$table} {$where}"); - - // When using MySQL, delete statements may contain order by statements and limits - // so we will compile both of those here. Once we have finished compiling this - // we will return the completed SQL statement so it will be executed for us. - if (! empty($query->orders)) { - $sql .= ' '.$this->compileOrders($query, $query->orders); - } - - if (isset($query->limit)) { - $sql .= ' '.$this->compileLimit($query, $query->limit); - } - - return $sql; - } - - /** - * Compile a delete query that uses joins. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @param array $where - * @return string - */ - protected function compileDeleteWithJoins($query, $table, $where) - { - $joins = ' '.$this->compileJoins($query, $query->joins); - - $alias = strpos(strtolower($table), ' as ') !== false - ? explode(' as ', $table)[1] : $table; - - return trim("delete {$alias} from {$table}{$joins} {$where}"); - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - if ($value === '*') { - return $value; - } - - // If the given value is a JSON selector we will wrap it differently than a - // traditional value. We will need to split this path and wrap each part - // wrapped, etc. Otherwise, we will simply wrap the value as a string. - if ($this->isJsonSelector($value)) { - return $this->wrapJsonSelector($value); - } - - return '`'.str_replace('`', '``', $value).'`'; - } - - /** - * Wrap the given JSON selector. - * - * @param string $value - * @return string - */ - protected function wrapJsonSelector($value) - { - $path = explode('->', $value); - - $field = $this->wrapValue(array_shift($path)); - - return sprintf('%s->\'$.%s\'', $field, collect($path)->map(function ($part) { - return '"'.$part.'"'; - })->implode('.')); - } - - /** - * Determine if the given string is a JSON selector. - * - * @param string $value - * @return bool - */ - protected function isJsonSelector($value) - { - return Str::contains($value, '->'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php deleted file mode 100755 index bf1315a8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php +++ /dev/null @@ -1,331 +0,0 @@ -', '<=', '>=', '<>', '!=', - 'like', 'not like', 'ilike', - '&', '|', '#', '<<', '>>', '>>=', '=<<', - '&&', '@>', '<@', '?', '?|', '?&', '||', '-', '-', '#-', - ]; - - /** - * Compile a "where date" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDate(Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return $this->wrap($where['column']).'::date '.$where['operator'].' '.$value; - } - - /** - * Compile a date based where clause. - * - * @param string $type - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function dateBasedWhere($type, Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return 'extract('.$type.' from '.$this->wrap($where['column']).') '.$where['operator'].' '.$value; - } - - /** - * Compile the lock into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param bool|string $value - * @return string - */ - protected function compileLock(Builder $query, $value) - { - if (! is_string($value)) { - return $value ? 'for update' : 'for share'; - } - - return $value; - } - - /** - * {@inheritdoc} - */ - public function compileInsert(Builder $query, array $values) - { - $table = $this->wrapTable($query->from); - - return empty($values) - ? "insert into {$table} DEFAULT VALUES" - : parent::compileInsert($query, $values); - } - - /** - * Compile an insert and get ID statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @param string $sequence - * @return string - */ - public function compileInsertGetId(Builder $query, $values, $sequence) - { - if (is_null($sequence)) { - $sequence = 'id'; - } - - return $this->compileInsert($query, $values).' returning '.$this->wrap($sequence); - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - $table = $this->wrapTable($query->from); - - // Each one of the columns in the update statements needs to be wrapped in the - // keyword identifiers, also a place-holder needs to be created for each of - // the values in the list of bindings so we can make the sets statements. - $columns = $this->compileUpdateColumns($values); - - $from = $this->compileUpdateFrom($query); - - $where = $this->compileUpdateWheres($query); - - return trim("update {$table} set {$columns}{$from} {$where}"); - } - - /** - * Compile the columns for the update statement. - * - * @param array $values - * @return string - */ - protected function compileUpdateColumns($values) - { - // When gathering the columns for an update statement, we'll wrap each of the - // columns and convert it to a parameter value. Then we will concatenate a - // list of the columns that can be added into this update query clauses. - return collect($values)->map(function ($value, $key) { - return $this->wrap($key).' = '.$this->parameter($value); - })->implode(', '); - } - - /** - * Compile the "from" clause for an update with a join. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string|null - */ - protected function compileUpdateFrom(Builder $query) - { - if (! isset($query->joins)) { - return ''; - } - - // When using Postgres, updates with joins list the joined tables in the from - // clause, which is different than other systems like MySQL. Here, we will - // compile out the tables that are joined and add them to a from clause. - $froms = collect($query->joins)->map(function ($join) { - return $this->wrapTable($join->table); - })->all(); - - if (count($froms) > 0) { - return ' from '.implode(', ', $froms); - } - } - - /** - * Compile the additional where clauses for updates with joins. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileUpdateWheres(Builder $query) - { - $baseWheres = $this->compileWheres($query); - - if (! isset($query->joins)) { - return $baseWheres; - } - - // Once we compile the join constraints, we will either use them as the where - // clause or append them to the existing base where clauses. If we need to - // strip the leading boolean we will do so when using as the only where. - $joinWheres = $this->compileUpdateJoinWheres($query); - - if (trim($baseWheres) == '') { - return 'where '.$this->removeLeadingBoolean($joinWheres); - } - - return $baseWheres.' '.$joinWheres; - } - - /** - * Compile the "join" clause where clauses for an update. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileUpdateJoinWheres(Builder $query) - { - $joinWheres = []; - - // Here we will just loop through all of the join constraints and compile them - // all out then implode them. This should give us "where" like syntax after - // everything has been built and then we will join it to the real wheres. - foreach ($query->joins as $join) { - foreach ($join->wheres as $where) { - $method = "where{$where['type']}"; - - $joinWheres[] = $where['boolean'].' '.$this->$method($query, $where); - } - } - - return implode(' ', $joinWheres); - } - - /** - * Prepare the bindings for an update statement. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - // Update statements with "joins" in Postgres use an interesting syntax. We need to - // take all of the bindings and put them on the end of this array since they are - // added to the end of the "where" clause statements as typical where clauses. - $bindingsWithoutJoin = Arr::except($bindings, 'join'); - - return array_values( - array_merge($values, $bindings['join'], Arr::flatten($bindingsWithoutJoin)) - ); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - $table = $this->wrapTable($query->from); - - return isset($query->joins) - ? $this->compileDeleteWithJoins($query, $table) - : parent::compileDelete($query); - } - - /** - * Compile a delete query that uses joins. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @param array $where - * @return string - */ - protected function compileDeleteWithJoins($query, $table) - { - $using = ' USING '.collect($query->joins)->map(function ($join) { - return $this->wrapTable($join->table); - })->implode(', '); - - $where = count($query->wheres) > 0 ? ' '.$this->compileUpdateWheres($query) : ''; - - return trim("delete from {$table}{$using}{$where}"); - } - - /** - * Compile a truncate table statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - public function compileTruncate(Builder $query) - { - return ['truncate '.$this->wrapTable($query->from).' restart identity' => []]; - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - if ($value === '*') { - return $value; - } - - // If the given value is a JSON selector we will wrap it differently than a - // traditional value. We will need to split this path and wrap each part - // wrapped, etc. Otherwise, we will simply wrap the value as a string. - if (Str::contains($value, '->')) { - return $this->wrapJsonSelector($value); - } - - return '"'.str_replace('"', '""', $value).'"'; - } - - /** - * Wrap the given JSON selector. - * - * @param string $value - * @return string - */ - protected function wrapJsonSelector($value) - { - $path = explode('->', $value); - - $field = $this->wrapValue(array_shift($path)); - - $wrappedPath = $this->wrapJsonPathAttributes($path); - - $attribute = array_pop($wrappedPath); - - if (! empty($wrappedPath)) { - return $field.'->'.implode('->', $wrappedPath).'->>'.$attribute; - } - - return $field.'->>'.$attribute; - } - - /** - * Wrap the attributes of the give JSON path. - * - * @param array $path - * @return array - */ - protected function wrapJsonPathAttributes($path) - { - return array_map(function ($attribute) { - return "'$attribute'"; - }, $path); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php deleted file mode 100755 index 77aa46e9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php +++ /dev/null @@ -1,190 +0,0 @@ -', '<=', '>=', '<>', '!=', - 'like', 'not like', 'ilike', - '&', '|', '<<', '>>', - ]; - - /** - * Compile a select query into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileSelect(Builder $query) - { - $sql = parent::compileSelect($query); - - if ($query->unions) { - $sql = 'select * from ('.$sql.') '.$this->compileUnions($query); - } - - return $sql; - } - - /** - * Compile a single union statement. - * - * @param array $union - * @return string - */ - protected function compileUnion(array $union) - { - $conjuction = $union['all'] ? ' union all ' : ' union '; - - return $conjuction.'select * from ('.$union['query']->toSql().')'; - } - - /** - * Compile a "where date" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDate(Builder $query, $where) - { - return $this->dateBasedWhere('%Y-%m-%d', $query, $where); - } - - /** - * Compile a "where day" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDay(Builder $query, $where) - { - return $this->dateBasedWhere('%d', $query, $where); - } - - /** - * Compile a "where month" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereMonth(Builder $query, $where) - { - return $this->dateBasedWhere('%m', $query, $where); - } - - /** - * Compile a "where year" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereYear(Builder $query, $where) - { - return $this->dateBasedWhere('%Y', $query, $where); - } - - /** - * Compile a date based where clause. - * - * @param string $type - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function dateBasedWhere($type, Builder $query, $where) - { - $value = str_pad($where['value'], 2, '0', STR_PAD_LEFT); - - $value = $this->parameter($value); - - return "strftime('{$type}', {$this->wrap($where['column'])}) {$where['operator']} {$value}"; - } - - /** - * Compile an insert statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileInsert(Builder $query, array $values) - { - // Essentially we will force every insert to be treated as a batch insert which - // simply makes creating the SQL easier for us since we can utilize the same - // basic routine regardless of an amount of records given to us to insert. - $table = $this->wrapTable($query->from); - - if (! is_array(reset($values))) { - $values = [$values]; - } - - // If there is only one record being inserted, we will just use the usual query - // grammar insert builder because no special syntax is needed for the single - // row inserts in SQLite. However, if there are multiples, we'll continue. - if (count($values) == 1) { - return empty(reset($values)) - ? "insert into $table default values" - : parent::compileInsert($query, reset($values)); - } - - $names = $this->columnize(array_keys(reset($values))); - - $columns = []; - - // SQLite requires us to build the multi-row insert as a listing of select with - // unions joining them together. So we'll build out this list of columns and - // then join them all together with select unions to complete the queries. - foreach (array_keys(reset($values)) as $column) { - $columns[] = '? as '.$this->wrap($column); - } - - $columns = array_fill(0, count($values), implode(', ', $columns)); - - return "insert into $table ($names) select ".implode(' union all select ', $columns); - } - - /** - * Compile a truncate table statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - public function compileTruncate(Builder $query) - { - return [ - 'delete from sqlite_sequence where name = ?' => [$query->from], - 'delete from '.$this->wrapTable($query->from) => [], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php deleted file mode 100755 index dfefda3a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php +++ /dev/null @@ -1,442 +0,0 @@ -', '<=', '>=', '!<', '!>', '<>', '!=', - 'like', 'not like', 'ilike', - '&', '&=', '|', '|=', '^', '^=', - ]; - - /** - * Compile a select query into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileSelect(Builder $query) - { - if (! $query->offset) { - return parent::compileSelect($query); - } - - // If an offset is present on the query, we will need to wrap the query in - // a big "ANSI" offset syntax block. This is very nasty compared to the - // other database systems but is necessary for implementing features. - if (is_null($query->columns)) { - $query->columns = ['*']; - } - - return $this->compileAnsiOffset( - $query, $this->compileComponents($query) - ); - } - - /** - * Compile the "select *" portion of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $columns - * @return string|null - */ - protected function compileColumns(Builder $query, $columns) - { - if (! is_null($query->aggregate)) { - return; - } - - $select = $query->distinct ? 'select distinct ' : 'select '; - - // If there is a limit on the query, but not an offset, we will add the top - // clause to the query, which serves as a "limit" type clause within the - // SQL Server system similar to the limit keywords available in MySQL. - if ($query->limit > 0 && $query->offset <= 0) { - $select .= 'top '.$query->limit.' '; - } - - return $select.$this->columnize($columns); - } - - /** - * Compile the "from" portion of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @return string - */ - protected function compileFrom(Builder $query, $table) - { - $from = parent::compileFrom($query, $table); - - if (is_string($query->lock)) { - return $from.' '.$query->lock; - } - - if (! is_null($query->lock)) { - return $from.' with(rowlock,'.($query->lock ? 'updlock,' : '').'holdlock)'; - } - - return $from; - } - - /** - * Compile a "where date" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDate(Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return 'cast('.$this->wrap($where['column']).' as date) '.$where['operator'].' '.$value; - } - - /** - * Create a full ANSI offset clause for the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $components - * @return string - */ - protected function compileAnsiOffset(Builder $query, $components) - { - // An ORDER BY clause is required to make this offset query work, so if one does - // not exist we'll just create a dummy clause to trick the database and so it - // does not complain about the queries for not having an "order by" clause. - if (empty($components['orders'])) { - $components['orders'] = 'order by (select 0)'; - } - - // We need to add the row number to the query so we can compare it to the offset - // and limit values given for the statements. So we will add an expression to - // the "select" that will give back the row numbers on each of the records. - $components['columns'] .= $this->compileOver($components['orders']); - - unset($components['orders']); - - // Next we need to calculate the constraints that should be placed on the query - // to get the right offset and limit from our query but if there is no limit - // set we will just handle the offset only since that is all that matters. - $sql = $this->concatenate($components); - - return $this->compileTableExpression($sql, $query); - } - - /** - * Compile the over statement for a table expression. - * - * @param string $orderings - * @return string - */ - protected function compileOver($orderings) - { - return ", row_number() over ({$orderings}) as row_num"; - } - - /** - * Compile a common table expression for a query. - * - * @param string $sql - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileTableExpression($sql, $query) - { - $constraint = $this->compileRowConstraint($query); - - return "select * from ({$sql}) as temp_table where row_num {$constraint}"; - } - - /** - * Compile the limit / offset row constraint for a query. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileRowConstraint($query) - { - $start = $query->offset + 1; - - if ($query->limit > 0) { - $finish = $query->offset + $query->limit; - - return "between {$start} and {$finish}"; - } - - return ">= {$start}"; - } - - /** - * Compile the random statement into SQL. - * - * @param string $seed - * @return string - */ - public function compileRandom($seed) - { - return 'NEWID()'; - } - - /** - * Compile the "limit" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $limit - * @return string - */ - protected function compileLimit(Builder $query, $limit) - { - return ''; - } - - /** - * Compile the "offset" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $offset - * @return string - */ - protected function compileOffset(Builder $query, $offset) - { - return ''; - } - - /** - * Compile the lock into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param bool|string $value - * @return string - */ - protected function compileLock(Builder $query, $value) - { - return ''; - } - - /** - * Compile an exists statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileExists(Builder $query) - { - $existsQuery = clone $query; - - $existsQuery->columns = []; - - return $this->compileSelect($existsQuery->selectRaw('1 [exists]')->limit(1)); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - $table = $this->wrapTable($query->from); - - $where = is_array($query->wheres) ? $this->compileWheres($query) : ''; - - return isset($query->joins) - ? $this->compileDeleteWithJoins($query, $table, $where) - : trim("delete from {$table} {$where}"); - } - - /** - * Compile a delete statement with joins into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @param string $where - * @return string - */ - protected function compileDeleteWithJoins(Builder $query, $table, $where) - { - $joins = ' '.$this->compileJoins($query, $query->joins); - - $alias = strpos(strtolower($table), ' as ') !== false - ? explode(' as ', $table)[1] : $table; - - return trim("delete {$alias} from {$table}{$joins} {$where}"); - } - - /** - * Compile a truncate table statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - public function compileTruncate(Builder $query) - { - return ['truncate table '.$this->wrapTable($query->from) => []]; - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - list($table, $alias) = $this->parseUpdateTable($query->from); - - // Each one of the columns in the update statements needs to be wrapped in the - // keyword identifiers, also a place-holder needs to be created for each of - // the values in the list of bindings so we can make the sets statements. - $columns = collect($values)->map(function ($value, $key) { - return $this->wrap($key).' = '.$this->parameter($value); - })->implode(', '); - - // If the query has any "join" clauses, we will setup the joins on the builder - // and compile them so we can attach them to this update, as update queries - // can get join statements to attach to other tables when they're needed. - $joins = ''; - - if (isset($query->joins)) { - $joins = ' '.$this->compileJoins($query, $query->joins); - } - - // Of course, update queries may also be constrained by where clauses so we'll - // need to compile the where clauses and attach it to the query so only the - // intended records are updated by the SQL statements we generate to run. - $where = $this->compileWheres($query); - - if (! empty($joins)) { - return trim("update {$alias} set {$columns} from {$table}{$joins} {$where}"); - } - - return trim("update {$table}{$joins} set $columns $where"); - } - - /** - * Get the table and alias for the given table. - * - * @param string $table - * @return array - */ - protected function parseUpdateTable($table) - { - $table = $alias = $this->wrapTable($table); - - if (strpos(strtolower($table), '] as [') !== false) { - $alias = '['.explode('] as [', $table)[1]; - } - - return [$table, $alias]; - } - - /** - * Prepare the bindings for an update statement. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - // Update statements with joins in SQL Servers utilize an unique syntax. We need to - // take all of the bindings and put them on the end of this array since they are - // added to the end of the "where" clause statements as typical where clauses. - $bindingsWithoutJoin = Arr::except($bindings, 'join'); - - return array_values( - array_merge($values, $bindings['join'], Arr::flatten($bindingsWithoutJoin)) - ); - } - - /** - * Determine if the grammar supports savepoints. - * - * @return bool - */ - public function supportsSavepoints() - { - return true; - } - - /** - * Compile the SQL statement to define a savepoint. - * - * @param string $name - * @return string - */ - public function compileSavepoint($name) - { - return 'SAVE TRANSACTION '.$name; - } - - /** - * Compile the SQL statement to execute a savepoint rollback. - * - * @param string $name - * @return string - */ - public function compileSavepointRollBack($name) - { - return 'ROLLBACK TRANSACTION '.$name; - } - - /** - * Get the format for database stored dates. - * - * @return string - */ - public function getDateFormat() - { - return 'Y-m-d H:i:s.v'; - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - return $value === '*' ? $value : '['.str_replace(']', ']]', $value).']'; - } - - /** - * Wrap a table in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $table - * @return string - */ - public function wrapTable($table) - { - return $this->wrapTableValuedFunction(parent::wrapTable($table)); - } - - /** - * Wrap a table in keyword identifiers. - * - * @param string $table - * @return string - */ - protected function wrapTableValuedFunction($table) - { - if (preg_match('/^(.+?)(\(.*?\))]$/', $table, $matches) === 1) { - $table = $matches[1].']'.$matches[2]; - } - - return $table; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php b/vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php deleted file mode 100755 index 4b32df29..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php +++ /dev/null @@ -1,110 +0,0 @@ -type = $type; - $this->table = $table; - $this->parentQuery = $parentQuery; - - parent::__construct( - $parentQuery->getConnection(), $parentQuery->getGrammar(), $parentQuery->getProcessor() - ); - } - - /** - * Add an "on" clause to the join. - * - * On clauses can be chained, e.g. - * - * $join->on('contacts.user_id', '=', 'users.id') - * ->on('contacts.info_id', '=', 'info.id') - * - * will produce the following SQL: - * - * on `contacts`.`user_id` = `users`.`id` and `contacts`.`info_id` = `info`.`id` - * - * @param \Closure|string $first - * @param string|null $operator - * @param string|null $second - * @param string $boolean - * @return $this - * - * @throws \InvalidArgumentException - */ - public function on($first, $operator = null, $second = null, $boolean = 'and') - { - if ($first instanceof Closure) { - return $this->whereNested($first, $boolean); - } - - return $this->whereColumn($first, $operator, $second, $boolean); - } - - /** - * Add an "or on" clause to the join. - * - * @param \Closure|string $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\JoinClause - */ - public function orOn($first, $operator = null, $second = null) - { - return $this->on($first, $operator, $second, 'or'); - } - - /** - * Get a new instance of the join clause builder. - * - * @return \Illuminate\Database\Query\JoinClause - */ - public function newQuery() - { - return new static($this->parentQuery, $this->type, $this->table); - } - - /** - * Create a new query instance for sub-query. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function forSubQuery() - { - return $this->parentQuery->newQuery(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php b/vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php deleted file mode 100644 index 12635ffc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php +++ /dev/null @@ -1,45 +0,0 @@ -getJsonBindingParameter($value) - ); - } - - /** - * Translate the given value into the appropriate JSON binding parameter. - * - * @param mixed $value - * @return string - */ - protected function getJsonBindingParameter($value) - { - switch ($type = gettype($value)) { - case 'boolean': - return $value ? 'true' : 'false'; - case 'integer': - case 'double': - return $value; - case 'string': - return '?'; - case 'object': - case 'array': - return '?'; - } - - throw new InvalidArgumentException('JSON value is of illegal type: '.$type); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php deleted file mode 100644 index ce918385..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php +++ /dev/null @@ -1,19 +0,0 @@ -column_name; - }, $results); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php deleted file mode 100755 index 90abf246..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php +++ /dev/null @@ -1,41 +0,0 @@ -getConnection()->selectFromWriteConnection($sql, $values)[0]; - - $sequence = $sequence ?: 'id'; - - $id = is_object($result) ? $result->{$sequence} : $result[$sequence]; - - return is_numeric($id) ? (int) $id : $id; - } - - /** - * Process the results of a column listing query. - * - * @param array $results - * @return array - */ - public function processColumnListing($results) - { - return array_map(function ($result) { - return ((object) $result)->column_name; - }, $results); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php deleted file mode 100755 index f78429fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php +++ /dev/null @@ -1,49 +0,0 @@ -getConnection()->insert($sql, $values); - - $id = $query->getConnection()->getPdo()->lastInsertId($sequence); - - return is_numeric($id) ? (int) $id : $id; - } - - /** - * Process the results of a column listing query. - * - * @param array $results - * @return array - */ - public function processColumnListing($results) - { - return $results; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php deleted file mode 100644 index 65da1dff..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php +++ /dev/null @@ -1,19 +0,0 @@ -name; - }, $results); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php deleted file mode 100755 index 65140c49..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php +++ /dev/null @@ -1,69 +0,0 @@ -getConnection(); - - $connection->insert($sql, $values); - - if ($connection->getConfig('odbc') === true) { - $id = $this->processInsertGetIdForOdbc($connection); - } else { - $id = $connection->getPdo()->lastInsertId(); - } - - return is_numeric($id) ? (int) $id : $id; - } - - /** - * Process an "insert get ID" query for ODBC. - * - * @param \Illuminate\Database\Connection $connection - * @return int - * @throws \Exception - */ - protected function processInsertGetIdForOdbc(Connection $connection) - { - $result = $connection->selectFromWriteConnection( - 'SELECT CAST(COALESCE(SCOPE_IDENTITY(), @@IDENTITY) AS int) AS insertid' - ); - - if (! $result) { - throw new Exception('Unable to retrieve lastInsertID for ODBC.'); - } - - $row = $result[0]; - - return is_object($row) ? $row->insertid : $row['insertid']; - } - - /** - * Process the results of a column listing query. - * - * @param array $results - * @return array - */ - public function processColumnListing($results) - { - return array_map(function ($result) { - return ((object) $result)->name; - }, $results); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/QueryException.php b/vendor/laravel/framework/src/Illuminate/Database/QueryException.php deleted file mode 100644 index 9a3687d6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/QueryException.php +++ /dev/null @@ -1,78 +0,0 @@ -sql = $sql; - $this->bindings = $bindings; - $this->code = $previous->getCode(); - $this->message = $this->formatMessage($sql, $bindings, $previous); - - if ($previous instanceof PDOException) { - $this->errorInfo = $previous->errorInfo; - } - } - - /** - * Format the SQL error message. - * - * @param string $sql - * @param array $bindings - * @param \Exception $previous - * @return string - */ - protected function formatMessage($sql, $bindings, $previous) - { - return $previous->getMessage().' (SQL: '.Str::replaceArray('?', $bindings, $sql).')'; - } - - /** - * Get the SQL for the query. - * - * @return string - */ - public function getSql() - { - return $this->sql; - } - - /** - * Get the bindings for the query. - * - * @return array - */ - public function getBindings() - { - return $this->bindings; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/README.md b/vendor/laravel/framework/src/Illuminate/Database/README.md deleted file mode 100755 index b3014b08..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/README.md +++ /dev/null @@ -1,69 +0,0 @@ -## Illuminate Database - -The Illuminate Database component is a full database toolkit for PHP, providing an expressive query builder, ActiveRecord style ORM, and schema builder. It currently supports MySQL, Postgres, SQL Server, and SQLite. It also serves as the database layer of the Laravel PHP framework. - -### Usage Instructions - -First, create a new "Capsule" manager instance. Capsule aims to make configuring the library for usage outside of the Laravel framework as easy as possible. - -```PHP -use Illuminate\Database\Capsule\Manager as Capsule; - -$capsule = new Capsule; - -$capsule->addConnection([ - 'driver' => 'mysql', - 'host' => 'localhost', - 'database' => 'database', - 'username' => 'root', - 'password' => 'password', - 'charset' => 'utf8', - 'collation' => 'utf8_unicode_ci', - 'prefix' => '', -]); - -// Set the event dispatcher used by Eloquent models... (optional) -use Illuminate\Events\Dispatcher; -use Illuminate\Container\Container; -$capsule->setEventDispatcher(new Dispatcher(new Container)); - -// Make this Capsule instance available globally via static methods... (optional) -$capsule->setAsGlobal(); - -// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) -$capsule->bootEloquent(); -``` - -> `composer require "illuminate/events"` required when you need to use observers with Eloquent. - -Once the Capsule instance has been registered. You may use it like so: - -**Using The Query Builder** - -```PHP -$users = Capsule::table('users')->where('votes', '>', 100)->get(); -``` -Other core methods may be accessed directly from the Capsule in the same manner as from the DB facade: -```PHP -$results = Capsule::select('select * from users where id = ?', array(1)); -``` - -**Using The Schema Builder** - -```PHP -Capsule::schema()->create('users', function ($table) { - $table->increments('id'); - $table->string('email')->unique(); - $table->timestamps(); -}); -``` - -**Using The Eloquent ORM** - -```PHP -class User extends Illuminate\Database\Eloquent\Model {} - -$users = User::where('votes', '>', 1)->get(); -``` - -For further documentation on using the various database facilities this library provides, consult the [Laravel framework documentation](https://laravel.com/docs). diff --git a/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php b/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php deleted file mode 100755 index a5ec3218..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php +++ /dev/null @@ -1,66 +0,0 @@ -withTablePrefix(new QueryGrammar); - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\SQLiteBuilder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new SQLiteBuilder($this); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\SQLiteGrammar - */ - protected function getDefaultSchemaGrammar() - { - return $this->withTablePrefix(new SchemaGrammar); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\SQLiteProcessor - */ - protected function getDefaultPostProcessor() - { - return new SQLiteProcessor; - } - - /** - * Get the Doctrine DBAL driver. - * - * @return \Doctrine\DBAL\Driver\PDOSqlite\Driver - */ - protected function getDoctrineDriver() - { - return new DoctrineDriver; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php deleted file mode 100755 index 2342cec2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php +++ /dev/null @@ -1,1263 +0,0 @@ -table = $table; - - if (! is_null($callback)) { - $callback($this); - } - } - - /** - * Execute the blueprint against the database. - * - * @param \Illuminate\Database\Connection $connection - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return void - */ - public function build(Connection $connection, Grammar $grammar) - { - foreach ($this->toSql($connection, $grammar) as $statement) { - $connection->statement($statement); - } - } - - /** - * Get the raw SQL statements for the blueprint. - * - * @param \Illuminate\Database\Connection $connection - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return array - */ - public function toSql(Connection $connection, Grammar $grammar) - { - $this->addImpliedCommands(); - - $statements = []; - - // Each type of command has a corresponding compiler function on the schema - // grammar which is used to build the necessary SQL statements to build - // the blueprint element, so we'll just call that compilers function. - foreach ($this->commands as $command) { - $method = 'compile'.ucfirst($command->name); - - if (method_exists($grammar, $method)) { - if (! is_null($sql = $grammar->$method($this, $command, $connection))) { - $statements = array_merge($statements, (array) $sql); - } - } - } - - return $statements; - } - - /** - * Add the commands that are implied by the blueprint's state. - * - * @return void - */ - protected function addImpliedCommands() - { - if (count($this->getAddedColumns()) > 0 && ! $this->creating()) { - array_unshift($this->commands, $this->createCommand('add')); - } - - if (count($this->getChangedColumns()) > 0 && ! $this->creating()) { - array_unshift($this->commands, $this->createCommand('change')); - } - - $this->addFluentIndexes(); - } - - /** - * Add the index commands fluently specified on columns. - * - * @return void - */ - protected function addFluentIndexes() - { - foreach ($this->columns as $column) { - foreach (['primary', 'unique', 'index', 'spatialIndex'] as $index) { - // If the index has been specified on the given column, but is simply equal - // to "true" (boolean), no name has been specified for this index so the - // index method can be called without a name and it will generate one. - if ($column->{$index} === true) { - $this->{$index}($column->name); - - continue 2; - } - - // If the index has been specified on the given column, and it has a string - // value, we'll go ahead and call the index method and pass the name for - // the index since the developer specified the explicit name for this. - elseif (isset($column->{$index})) { - $this->{$index}($column->name, $column->{$index}); - - continue 2; - } - } - } - } - - /** - * Determine if the blueprint has a create command. - * - * @return bool - */ - protected function creating() - { - return collect($this->commands)->contains(function ($command) { - return $command->name == 'create'; - }); - } - - /** - * Indicate that the table needs to be created. - * - * @return \Illuminate\Support\Fluent - */ - public function create() - { - return $this->addCommand('create'); - } - - /** - * Indicate that the table needs to be temporary. - * - * @return void - */ - public function temporary() - { - $this->temporary = true; - } - - /** - * Indicate that the table should be dropped. - * - * @return \Illuminate\Support\Fluent - */ - public function drop() - { - return $this->addCommand('drop'); - } - - /** - * Indicate that the table should be dropped if it exists. - * - * @return \Illuminate\Support\Fluent - */ - public function dropIfExists() - { - return $this->addCommand('dropIfExists'); - } - - /** - * Indicate that the given columns should be dropped. - * - * @param array|mixed $columns - * @return \Illuminate\Support\Fluent - */ - public function dropColumn($columns) - { - $columns = is_array($columns) ? $columns : func_get_args(); - - return $this->addCommand('dropColumn', compact('columns')); - } - - /** - * Indicate that the given columns should be renamed. - * - * @param string $from - * @param string $to - * @return \Illuminate\Support\Fluent - */ - public function renameColumn($from, $to) - { - return $this->addCommand('renameColumn', compact('from', 'to')); - } - - /** - * Indicate that the given primary key should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropPrimary($index = null) - { - return $this->dropIndexCommand('dropPrimary', 'primary', $index); - } - - /** - * Indicate that the given unique key should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropUnique($index) - { - return $this->dropIndexCommand('dropUnique', 'unique', $index); - } - - /** - * Indicate that the given index should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropIndex($index) - { - return $this->dropIndexCommand('dropIndex', 'index', $index); - } - - /** - * Indicate that the given spatial index should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropSpatialIndex($index) - { - return $this->dropIndexCommand('dropSpatialIndex', 'spatialIndex', $index); - } - - /** - * Indicate that the given foreign key should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropForeign($index) - { - return $this->dropIndexCommand('dropForeign', 'foreign', $index); - } - - /** - * Indicate that the timestamp columns should be dropped. - * - * @return void - */ - public function dropTimestamps() - { - $this->dropColumn('created_at', 'updated_at'); - } - - /** - * Indicate that the timestamp columns should be dropped. - * - * @return void - */ - public function dropTimestampsTz() - { - $this->dropTimestamps(); - } - - /** - * Indicate that the soft delete column should be dropped. - * - * @return void - */ - public function dropSoftDeletes() - { - $this->dropColumn('deleted_at'); - } - - /** - * Indicate that the soft delete column should be dropped. - * - * @return void - */ - public function dropSoftDeletesTz() - { - $this->dropSoftDeletes(); - } - - /** - * Indicate that the remember token column should be dropped. - * - * @return void - */ - public function dropRememberToken() - { - $this->dropColumn('remember_token'); - } - - /** - * Rename the table to a given name. - * - * @param string $to - * @return \Illuminate\Support\Fluent - */ - public function rename($to) - { - return $this->addCommand('rename', compact('to')); - } - - /** - * Specify the primary key(s) for the table. - * - * @param string|array $columns - * @param string $name - * @param string|null $algorithm - * @return \Illuminate\Support\Fluent - */ - public function primary($columns, $name = null, $algorithm = null) - { - return $this->indexCommand('primary', $columns, $name, $algorithm); - } - - /** - * Specify a unique index for the table. - * - * @param string|array $columns - * @param string $name - * @param string|null $algorithm - * @return \Illuminate\Support\Fluent - */ - public function unique($columns, $name = null, $algorithm = null) - { - return $this->indexCommand('unique', $columns, $name, $algorithm); - } - - /** - * Specify an index for the table. - * - * @param string|array $columns - * @param string $name - * @param string|null $algorithm - * @return \Illuminate\Support\Fluent - */ - public function index($columns, $name = null, $algorithm = null) - { - return $this->indexCommand('index', $columns, $name, $algorithm); - } - - /** - * Specify a spatial index for the table. - * - * @param string|array $columns - * @param string $name - * @return \Illuminate\Support\Fluent - */ - public function spatialIndex($columns, $name = null) - { - return $this->indexCommand('spatialIndex', $columns, $name); - } - - /** - * Specify a foreign key for the table. - * - * @param string|array $columns - * @param string $name - * @return \Illuminate\Support\Fluent - */ - public function foreign($columns, $name = null) - { - return $this->indexCommand('foreign', $columns, $name); - } - - /** - * Create a new auto-incrementing integer (4-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function increments($column) - { - return $this->unsignedInteger($column, true); - } - - /** - * Create a new auto-incrementing tiny integer (1-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function tinyIncrements($column) - { - return $this->unsignedTinyInteger($column, true); - } - - /** - * Create a new auto-incrementing small integer (2-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function smallIncrements($column) - { - return $this->unsignedSmallInteger($column, true); - } - - /** - * Create a new auto-incrementing medium integer (3-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function mediumIncrements($column) - { - return $this->unsignedMediumInteger($column, true); - } - - /** - * Create a new auto-incrementing big integer (8-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function bigIncrements($column) - { - return $this->unsignedBigInteger($column, true); - } - - /** - * Create a new char column on the table. - * - * @param string $column - * @param int $length - * @return \Illuminate\Support\Fluent - */ - public function char($column, $length = null) - { - $length = $length ?: Builder::$defaultStringLength; - - return $this->addColumn('char', $column, compact('length')); - } - - /** - * Create a new string column on the table. - * - * @param string $column - * @param int $length - * @return \Illuminate\Support\Fluent - */ - public function string($column, $length = null) - { - $length = $length ?: Builder::$defaultStringLength; - - return $this->addColumn('string', $column, compact('length')); - } - - /** - * Create a new text column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function text($column) - { - return $this->addColumn('text', $column); - } - - /** - * Create a new medium text column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function mediumText($column) - { - return $this->addColumn('mediumText', $column); - } - - /** - * Create a new long text column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function longText($column) - { - return $this->addColumn('longText', $column); - } - - /** - * Create a new integer (4-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function integer($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('integer', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new tiny integer (1-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function tinyInteger($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('tinyInteger', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new small integer (2-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function smallInteger($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('smallInteger', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new medium integer (3-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function mediumInteger($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('mediumInteger', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new big integer (8-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function bigInteger($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('bigInteger', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new unsigned integer (4-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedInteger($column, $autoIncrement = false) - { - return $this->integer($column, $autoIncrement, true); - } - - /** - * Create a new unsigned tiny integer (1-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedTinyInteger($column, $autoIncrement = false) - { - return $this->tinyInteger($column, $autoIncrement, true); - } - - /** - * Create a new unsigned small integer (2-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedSmallInteger($column, $autoIncrement = false) - { - return $this->smallInteger($column, $autoIncrement, true); - } - - /** - * Create a new unsigned medium integer (3-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedMediumInteger($column, $autoIncrement = false) - { - return $this->mediumInteger($column, $autoIncrement, true); - } - - /** - * Create a new unsigned big integer (8-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedBigInteger($column, $autoIncrement = false) - { - return $this->bigInteger($column, $autoIncrement, true); - } - - /** - * Create a new float column on the table. - * - * @param string $column - * @param int $total - * @param int $places - * @return \Illuminate\Support\Fluent - */ - public function float($column, $total = 8, $places = 2) - { - return $this->addColumn('float', $column, compact('total', 'places')); - } - - /** - * Create a new double column on the table. - * - * @param string $column - * @param int|null $total - * @param int|null $places - * @return \Illuminate\Support\Fluent - */ - public function double($column, $total = null, $places = null) - { - return $this->addColumn('double', $column, compact('total', 'places')); - } - - /** - * Create a new decimal column on the table. - * - * @param string $column - * @param int $total - * @param int $places - * @return \Illuminate\Support\Fluent - */ - public function decimal($column, $total = 8, $places = 2) - { - return $this->addColumn('decimal', $column, compact('total', 'places')); - } - - /** - * Create a new unsigned decimal column on the table. - * - * @param string $column - * @param int $total - * @param int $places - * @return \Illuminate\Support\Fluent - */ - public function unsignedDecimal($column, $total = 8, $places = 2) - { - return $this->addColumn('decimal', $column, [ - 'total' => $total, 'places' => $places, 'unsigned' => true, - ]); - } - - /** - * Create a new boolean column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function boolean($column) - { - return $this->addColumn('boolean', $column); - } - - /** - * Create a new enum column on the table. - * - * @param string $column - * @param array $allowed - * @return \Illuminate\Support\Fluent - */ - public function enum($column, array $allowed) - { - return $this->addColumn('enum', $column, compact('allowed')); - } - - /** - * Create a new json column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function json($column) - { - return $this->addColumn('json', $column); - } - - /** - * Create a new jsonb column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function jsonb($column) - { - return $this->addColumn('jsonb', $column); - } - - /** - * Create a new date column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function date($column) - { - return $this->addColumn('date', $column); - } - - /** - * Create a new date-time column on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function dateTime($column, $precision = 0) - { - return $this->addColumn('dateTime', $column, compact('precision')); - } - - /** - * Create a new date-time column (with time zone) on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function dateTimeTz($column, $precision = 0) - { - return $this->addColumn('dateTimeTz', $column, compact('precision')); - } - - /** - * Create a new time column on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function time($column, $precision = 0) - { - return $this->addColumn('time', $column, compact('precision')); - } - - /** - * Create a new time column (with time zone) on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function timeTz($column, $precision = 0) - { - return $this->addColumn('timeTz', $column, compact('precision')); - } - - /** - * Create a new timestamp column on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function timestamp($column, $precision = 0) - { - return $this->addColumn('timestamp', $column, compact('precision')); - } - - /** - * Create a new timestamp (with time zone) column on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function timestampTz($column, $precision = 0) - { - return $this->addColumn('timestampTz', $column, compact('precision')); - } - - /** - * Add nullable creation and update timestamps to the table. - * - * @param int $precision - * @return void - */ - public function timestamps($precision = 0) - { - $this->timestamp('created_at', $precision)->nullable(); - - $this->timestamp('updated_at', $precision)->nullable(); - } - - /** - * Add nullable creation and update timestamps to the table. - * - * Alias for self::timestamps(). - * - * @param int $precision - * @return void - */ - public function nullableTimestamps($precision = 0) - { - $this->timestamps($precision); - } - - /** - * Add creation and update timestampTz columns to the table. - * - * @param int $precision - * @return void - */ - public function timestampsTz($precision = 0) - { - $this->timestampTz('created_at', $precision)->nullable(); - - $this->timestampTz('updated_at', $precision)->nullable(); - } - - /** - * Add a "deleted at" timestamp for the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function softDeletes($column = 'deleted_at', $precision = 0) - { - return $this->timestamp($column, $precision)->nullable(); - } - - /** - * Add a "deleted at" timestampTz for the table. - * - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function softDeletesTz($precision = 0) - { - return $this->timestampTz('deleted_at', $precision)->nullable(); - } - - /** - * Create a new year column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function year($column) - { - return $this->addColumn('year', $column); - } - - /** - * Create a new binary column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function binary($column) - { - return $this->addColumn('binary', $column); - } - - /** - * Create a new uuid column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function uuid($column) - { - return $this->addColumn('uuid', $column); - } - - /** - * Create a new IP address column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function ipAddress($column) - { - return $this->addColumn('ipAddress', $column); - } - - /** - * Create a new MAC address column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function macAddress($column) - { - return $this->addColumn('macAddress', $column); - } - - /** - * Create a new geometry column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function geometry($column) - { - return $this->addColumn('geometry', $column); - } - - /** - * Create a new point column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function point($column) - { - return $this->addColumn('point', $column); - } - - /** - * Create a new linestring column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function lineString($column) - { - return $this->addColumn('linestring', $column); - } - - /** - * Create a new polygon column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function polygon($column) - { - return $this->addColumn('polygon', $column); - } - - /** - * Create a new geometrycollection column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function geometryCollection($column) - { - return $this->addColumn('geometrycollection', $column); - } - - /** - * Create a new multipoint column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function multiPoint($column) - { - return $this->addColumn('multipoint', $column); - } - - /** - * Create a new multilinestring column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function multiLineString($column) - { - return $this->addColumn('multilinestring', $column); - } - - /** - * Create a new multipolygon column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function multiPolygon($column) - { - return $this->addColumn('multipolygon', $column); - } - - /** - * Add the proper columns for a polymorphic table. - * - * @param string $name - * @param string|null $indexName - * @return void - */ - public function morphs($name, $indexName = null) - { - $this->unsignedInteger("{$name}_id"); - - $this->string("{$name}_type"); - - $this->index(["{$name}_id", "{$name}_type"], $indexName); - } - - /** - * Add nullable columns for a polymorphic table. - * - * @param string $name - * @param string|null $indexName - * @return void - */ - public function nullableMorphs($name, $indexName = null) - { - $this->unsignedInteger("{$name}_id")->nullable(); - - $this->string("{$name}_type")->nullable(); - - $this->index(["{$name}_id", "{$name}_type"], $indexName); - } - - /** - * Adds the `remember_token` column to the table. - * - * @return \Illuminate\Support\Fluent - */ - public function rememberToken() - { - return $this->string('remember_token', 100)->nullable(); - } - - /** - * Add a new index command to the blueprint. - * - * @param string $type - * @param string|array $columns - * @param string $index - * @param string|null $algorithm - * @return \Illuminate\Support\Fluent - */ - protected function indexCommand($type, $columns, $index, $algorithm = null) - { - $columns = (array) $columns; - - // If no name was specified for this index, we will create one using a basic - // convention of the table name, followed by the columns, followed by an - // index type, such as primary or index, which makes the index unique. - $index = $index ?: $this->createIndexName($type, $columns); - - return $this->addCommand( - $type, compact('index', 'columns', 'algorithm') - ); - } - - /** - * Create a new drop index command on the blueprint. - * - * @param string $command - * @param string $type - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - protected function dropIndexCommand($command, $type, $index) - { - $columns = []; - - // If the given "index" is actually an array of columns, the developer means - // to drop an index merely by specifying the columns involved without the - // conventional name, so we will build the index name from the columns. - if (is_array($index)) { - $index = $this->createIndexName($type, $columns = $index); - } - - return $this->indexCommand($command, $columns, $index); - } - - /** - * Create a default index name for the table. - * - * @param string $type - * @param array $columns - * @return string - */ - protected function createIndexName($type, array $columns) - { - $index = strtolower($this->table.'_'.implode('_', $columns).'_'.$type); - - return str_replace(['-', '.'], '_', $index); - } - - /** - * Add a new column to the blueprint. - * - * @param string $type - * @param string $name - * @param array $parameters - * @return \Illuminate\Support\Fluent - */ - public function addColumn($type, $name, array $parameters = []) - { - $this->columns[] = $column = new Fluent( - array_merge(compact('type', 'name'), $parameters) - ); - - return $column; - } - - /** - * Remove a column from the schema blueprint. - * - * @param string $name - * @return $this - */ - public function removeColumn($name) - { - $this->columns = array_values(array_filter($this->columns, function ($c) use ($name) { - return $c['attributes']['name'] != $name; - })); - - return $this; - } - - /** - * Add a new command to the blueprint. - * - * @param string $name - * @param array $parameters - * @return \Illuminate\Support\Fluent - */ - protected function addCommand($name, array $parameters = []) - { - $this->commands[] = $command = $this->createCommand($name, $parameters); - - return $command; - } - - /** - * Create a new Fluent command. - * - * @param string $name - * @param array $parameters - * @return \Illuminate\Support\Fluent - */ - protected function createCommand($name, array $parameters = []) - { - return new Fluent(array_merge(compact('name'), $parameters)); - } - - /** - * Get the table the blueprint describes. - * - * @return string - */ - public function getTable() - { - return $this->table; - } - - /** - * Get the columns on the blueprint. - * - * @return \Illuminate\Support\Fluent[] - */ - public function getColumns() - { - return $this->columns; - } - - /** - * Get the commands on the blueprint. - * - * @return \Illuminate\Support\Fluent[] - */ - public function getCommands() - { - return $this->commands; - } - - /** - * Get the columns on the blueprint that should be added. - * - * @return \Illuminate\Support\Fluent[] - */ - public function getAddedColumns() - { - return array_filter($this->columns, function ($column) { - return ! $column->change; - }); - } - - /** - * Get the columns on the blueprint that should be changed. - * - * @return \Illuminate\Support\Fluent[] - */ - public function getChangedColumns() - { - return array_filter($this->columns, function ($column) { - return (bool) $column->change; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php deleted file mode 100755 index 82201153..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php +++ /dev/null @@ -1,304 +0,0 @@ -connection = $connection; - $this->grammar = $connection->getSchemaGrammar(); - } - - /** - * Set the default string length for migrations. - * - * @param int $length - * @return void - */ - public static function defaultStringLength($length) - { - static::$defaultStringLength = $length; - } - - /** - * Determine if the given table exists. - * - * @param string $table - * @return bool - */ - public function hasTable($table) - { - $table = $this->connection->getTablePrefix().$table; - - return count($this->connection->select( - $this->grammar->compileTableExists(), [$table] - )) > 0; - } - - /** - * Determine if the given table has a given column. - * - * @param string $table - * @param string $column - * @return bool - */ - public function hasColumn($table, $column) - { - return in_array( - strtolower($column), array_map('strtolower', $this->getColumnListing($table)) - ); - } - - /** - * Determine if the given table has given columns. - * - * @param string $table - * @param array $columns - * @return bool - */ - public function hasColumns($table, array $columns) - { - $tableColumns = array_map('strtolower', $this->getColumnListing($table)); - - foreach ($columns as $column) { - if (! in_array(strtolower($column), $tableColumns)) { - return false; - } - } - - return true; - } - - /** - * Get the data type for the given column name. - * - * @param string $table - * @param string $column - * @return string - */ - public function getColumnType($table, $column) - { - $table = $this->connection->getTablePrefix().$table; - - return $this->connection->getDoctrineColumn($table, $column)->getType()->getName(); - } - - /** - * Get the column listing for a given table. - * - * @param string $table - * @return array - */ - public function getColumnListing($table) - { - $results = $this->connection->select($this->grammar->compileColumnListing( - $this->connection->getTablePrefix().$table - )); - - return $this->connection->getPostProcessor()->processColumnListing($results); - } - - /** - * Modify a table on the schema. - * - * @param string $table - * @param \Closure $callback - * @return void - */ - public function table($table, Closure $callback) - { - $this->build($this->createBlueprint($table, $callback)); - } - - /** - * Create a new table on the schema. - * - * @param string $table - * @param \Closure $callback - * @return void - */ - public function create($table, Closure $callback) - { - $this->build(tap($this->createBlueprint($table), function ($blueprint) use ($callback) { - $blueprint->create(); - - $callback($blueprint); - })); - } - - /** - * Drop a table from the schema. - * - * @param string $table - * @return void - */ - public function drop($table) - { - $this->build(tap($this->createBlueprint($table), function ($blueprint) { - $blueprint->drop(); - })); - } - - /** - * Drop a table from the schema if it exists. - * - * @param string $table - * @return void - */ - public function dropIfExists($table) - { - $this->build(tap($this->createBlueprint($table), function ($blueprint) { - $blueprint->dropIfExists(); - })); - } - - /** - * Drop all tables from the database. - * - * @return void - * - * @throws \LogicException - */ - public function dropAllTables() - { - throw new LogicException('This database driver does not support dropping all tables.'); - } - - /** - * Rename a table on the schema. - * - * @param string $from - * @param string $to - * @return void - */ - public function rename($from, $to) - { - $this->build(tap($this->createBlueprint($from), function ($blueprint) use ($to) { - $blueprint->rename($to); - })); - } - - /** - * Enable foreign key constraints. - * - * @return bool - */ - public function enableForeignKeyConstraints() - { - return $this->connection->statement( - $this->grammar->compileEnableForeignKeyConstraints() - ); - } - - /** - * Disable foreign key constraints. - * - * @return bool - */ - public function disableForeignKeyConstraints() - { - return $this->connection->statement( - $this->grammar->compileDisableForeignKeyConstraints() - ); - } - - /** - * Execute the blueprint to build / modify the table. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return void - */ - protected function build(Blueprint $blueprint) - { - $blueprint->build($this->connection, $this->grammar); - } - - /** - * Create a new command set with a Closure. - * - * @param string $table - * @param \Closure|null $callback - * @return \Illuminate\Database\Schema\Blueprint - */ - protected function createBlueprint($table, Closure $callback = null) - { - if (isset($this->resolver)) { - return call_user_func($this->resolver, $table, $callback); - } - - return new Blueprint($table, $callback); - } - - /** - * Get the database connection instance. - * - * @return \Illuminate\Database\Connection - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Set the database connection instance. - * - * @param \Illuminate\Database\Connection $connection - * @return $this - */ - public function setConnection(Connection $connection) - { - $this->connection = $connection; - - return $this; - } - - /** - * Set the Schema Blueprint resolver callback. - * - * @param \Closure $resolver - * @return void - */ - public function blueprintResolver(Closure $resolver) - { - $this->resolver = $resolver; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php deleted file mode 100644 index 4751ecbe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php +++ /dev/null @@ -1,205 +0,0 @@ -isDoctrineAvailable()) { - throw new RuntimeException(sprintf( - 'Changing columns for table "%s" requires Doctrine DBAL; install "doctrine/dbal".', - $blueprint->getTable() - )); - } - - $tableDiff = static::getChangedDiff( - $grammar, $blueprint, $schema = $connection->getDoctrineSchemaManager() - ); - - if ($tableDiff !== false) { - return (array) $schema->getDatabasePlatform()->getAlterTableSQL($tableDiff); - } - - return []; - } - - /** - * Get the Doctrine table difference for the given changes. - * - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Doctrine\DBAL\Schema\AbstractSchemaManager $schema - * @return \Doctrine\DBAL\Schema\TableDiff|bool - */ - protected static function getChangedDiff($grammar, Blueprint $blueprint, SchemaManager $schema) - { - $current = $schema->listTableDetails($grammar->getTablePrefix().$blueprint->getTable()); - - return (new Comparator)->diffTable( - $current, static::getTableWithColumnChanges($blueprint, $current) - ); - } - - /** - * Get a copy of the given Doctrine table after making the column changes. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Doctrine\DBAL\Schema\Table $table - * @return \Doctrine\DBAL\Schema\Table - */ - protected static function getTableWithColumnChanges(Blueprint $blueprint, Table $table) - { - $table = clone $table; - - foreach ($blueprint->getChangedColumns() as $fluent) { - $column = static::getDoctrineColumn($table, $fluent); - - // Here we will spin through each fluent column definition and map it to the proper - // Doctrine column definitions - which is necessary because Laravel and Doctrine - // use some different terminology for various column attributes on the tables. - foreach ($fluent->getAttributes() as $key => $value) { - if (! is_null($option = static::mapFluentOptionToDoctrine($key))) { - if (method_exists($column, $method = 'set'.ucfirst($option))) { - $column->{$method}(static::mapFluentValueToDoctrine($option, $value)); - } - } - } - } - - return $table; - } - - /** - * Get the Doctrine column instance for a column change. - * - * @param \Doctrine\DBAL\Schema\Table $table - * @param \Illuminate\Support\Fluent $fluent - * @return \Doctrine\DBAL\Schema\Column - */ - protected static function getDoctrineColumn(Table $table, Fluent $fluent) - { - return $table->changeColumn( - $fluent['name'], static::getDoctrineColumnChangeOptions($fluent) - )->getColumn($fluent['name']); - } - - /** - * Get the Doctrine column change options. - * - * @param \Illuminate\Support\Fluent $fluent - * @return array - */ - protected static function getDoctrineColumnChangeOptions(Fluent $fluent) - { - $options = ['type' => static::getDoctrineColumnType($fluent['type'])]; - - if (in_array($fluent['type'], ['text', 'mediumText', 'longText'])) { - $options['length'] = static::calculateDoctrineTextLength($fluent['type']); - } - - return $options; - } - - /** - * Get the doctrine column type. - * - * @param string $type - * @return \Doctrine\DBAL\Types\Type - */ - protected static function getDoctrineColumnType($type) - { - $type = strtolower($type); - - switch ($type) { - case 'biginteger': - $type = 'bigint'; - break; - case 'smallinteger': - $type = 'smallint'; - break; - case 'mediumtext': - case 'longtext': - $type = 'text'; - break; - case 'binary': - $type = 'blob'; - break; - } - - return Type::getType($type); - } - - /** - * Calculate the proper column length to force the Doctrine text type. - * - * @param string $type - * @return int - */ - protected static function calculateDoctrineTextLength($type) - { - switch ($type) { - case 'mediumText': - return 65535 + 1; - case 'longText': - return 16777215 + 1; - default: - return 255 + 1; - } - } - - /** - * Get the matching Doctrine option for a given Fluent attribute name. - * - * @param string $attribute - * @return string|null - */ - protected static function mapFluentOptionToDoctrine($attribute) - { - switch ($attribute) { - case 'type': - case 'name': - return; - case 'nullable': - return 'notnull'; - case 'total': - return 'precision'; - case 'places': - return 'scale'; - default: - return $attribute; - } - } - - /** - * Get the matching Doctrine value for a given Fluent attribute. - * - * @param string $option - * @param mixed $value - * @return mixed - */ - protected static function mapFluentValueToDoctrine($option, $value) - { - return $option == 'notnull' ? ! $value : $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php deleted file mode 100755 index ddd38385..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php +++ /dev/null @@ -1,255 +0,0 @@ -wrapTable($blueprint), - $this->wrap($command->index) - ); - - // Once we have the initial portion of the SQL statement we will add on the - // key name, table name, and referenced columns. These will complete the - // main portion of the SQL statement and this SQL will almost be done. - $sql .= sprintf('foreign key (%s) references %s (%s)', - $this->columnize($command->columns), - $this->wrapTable($command->on), - $this->columnize((array) $command->references) - ); - - // Once we have the basic foreign key creation statement constructed we can - // build out the syntax for what should happen on an update or delete of - // the affected columns, which will get something like "cascade", etc. - if (! is_null($command->onDelete)) { - $sql .= " on delete {$command->onDelete}"; - } - - if (! is_null($command->onUpdate)) { - $sql .= " on update {$command->onUpdate}"; - } - - return $sql; - } - - /** - * Compile the blueprint's column definitions. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return array - */ - protected function getColumns(Blueprint $blueprint) - { - $columns = []; - - foreach ($blueprint->getAddedColumns() as $column) { - // Each of the column types have their own compiler functions which are tasked - // with turning the column definition into its SQL format for this platform - // used by the connection. The column's modifiers are compiled and added. - $sql = $this->wrap($column).' '.$this->getType($column); - - $columns[] = $this->addModifiers($sql, $blueprint, $column); - } - - return $columns; - } - - /** - * Get the SQL for the column data type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function getType(Fluent $column) - { - return $this->{'type'.ucfirst($column->type)}($column); - } - - /** - * Add the column modifiers to the definition. - * - * @param string $sql - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function addModifiers($sql, Blueprint $blueprint, Fluent $column) - { - foreach ($this->modifiers as $modifier) { - if (method_exists($this, $method = "modify{$modifier}")) { - $sql .= $this->{$method}($blueprint, $column); - } - } - - return $sql; - } - - /** - * Get the primary key command if it exists on the blueprint. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param string $name - * @return \Illuminate\Support\Fluent|null - */ - protected function getCommandByName(Blueprint $blueprint, $name) - { - $commands = $this->getCommandsByName($blueprint, $name); - - if (count($commands) > 0) { - return reset($commands); - } - } - - /** - * Get all of the commands with a given name. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param string $name - * @return array - */ - protected function getCommandsByName(Blueprint $blueprint, $name) - { - return array_filter($blueprint->getCommands(), function ($value) use ($name) { - return $value->name == $name; - }); - } - - /** - * Add a prefix to an array of values. - * - * @param string $prefix - * @param array $values - * @return array - */ - public function prefixArray($prefix, array $values) - { - return array_map(function ($value) use ($prefix) { - return $prefix.' '.$value; - }, $values); - } - - /** - * Wrap a table in keyword identifiers. - * - * @param mixed $table - * @return string - */ - public function wrapTable($table) - { - return parent::wrapTable( - $table instanceof Blueprint ? $table->getTable() : $table - ); - } - - /** - * Wrap a value in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $value - * @param bool $prefixAlias - * @return string - */ - public function wrap($value, $prefixAlias = false) - { - return parent::wrap( - $value instanceof Fluent ? $value->name : $value, $prefixAlias - ); - } - - /** - * Format a value so that it can be used in "default" clauses. - * - * @param mixed $value - * @return string - */ - protected function getDefaultValue($value) - { - if ($value instanceof Expression) { - return $value; - } - - return is_bool($value) - ? "'".(int) $value."'" - : "'".(string) $value."'"; - } - - /** - * Create an empty Doctrine DBAL TableDiff from the Blueprint. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Doctrine\DBAL\Schema\AbstractSchemaManager $schema - * @return \Doctrine\DBAL\Schema\TableDiff - */ - public function getDoctrineTableDiff(Blueprint $blueprint, SchemaManager $schema) - { - $table = $this->getTablePrefix().$blueprint->getTable(); - - return tap(new TableDiff($table), function ($tableDiff) use ($schema, $table) { - $tableDiff->fromTable = $schema->listTableDetails($table); - }); - } - - /** - * Check if this Grammar supports schema changes wrapped in a transaction. - * - * @return bool - */ - public function supportsSchemaTransactions() - { - return $this->transactions; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php deleted file mode 100755 index 149f300a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php +++ /dev/null @@ -1,967 +0,0 @@ -compileCreateTable( - $blueprint, $command, $connection - ); - - // Once we have the primary SQL, we can add the encoding option to the SQL for - // the table. Then, we can check if a storage engine has been supplied for - // the table. If so, we will add the engine declaration to the SQL query. - $sql = $this->compileCreateEncoding( - $sql, $connection, $blueprint - ); - - // Finally, we will append the engine configuration onto this SQL statement as - // the final thing we do before returning this finished SQL. Once this gets - // added the query will be ready to execute against the real connections. - return $this->compileCreateEngine( - $sql, $connection, $blueprint - ); - } - - /** - * Create the main create table clause. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param \Illuminate\Database\Connection $connection - * @return string - */ - protected function compileCreateTable($blueprint, $command, $connection) - { - return sprintf('%s table %s (%s)', - $blueprint->temporary ? 'create temporary' : 'create', - $this->wrapTable($blueprint), - implode(', ', $this->getColumns($blueprint)) - ); - } - - /** - * Append the character set specifications to a command. - * - * @param string $sql - * @param \Illuminate\Database\Connection $connection - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return string - */ - protected function compileCreateEncoding($sql, Connection $connection, Blueprint $blueprint) - { - // First we will set the character set if one has been set on either the create - // blueprint itself or on the root configuration for the connection that the - // table is being created on. We will add these to the create table query. - if (isset($blueprint->charset)) { - $sql .= ' default character set '.$blueprint->charset; - } elseif (! is_null($charset = $connection->getConfig('charset'))) { - $sql .= ' default character set '.$charset; - } - - // Next we will add the collation to the create table statement if one has been - // added to either this create table blueprint or the configuration for this - // connection that the query is targeting. We'll add it to this SQL query. - if (isset($blueprint->collation)) { - $sql .= ' collate '.$blueprint->collation; - } elseif (! is_null($collation = $connection->getConfig('collation'))) { - $sql .= ' collate '.$collation; - } - - return $sql; - } - - /** - * Append the engine specifications to a command. - * - * @param string $sql - * @param \Illuminate\Database\Connection $connection - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return string - */ - protected function compileCreateEngine($sql, Connection $connection, Blueprint $blueprint) - { - if (isset($blueprint->engine)) { - return $sql.' engine = '.$blueprint->engine; - } elseif (! is_null($engine = $connection->getConfig('engine'))) { - return $sql.' engine = '.$engine; - } - - return $sql; - } - - /** - * Compile an add column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileAdd(Blueprint $blueprint, Fluent $command) - { - $columns = $this->prefixArray('add', $this->getColumns($blueprint)); - - return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns); - } - - /** - * Compile a primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compilePrimary(Blueprint $blueprint, Fluent $command) - { - $command->name(null); - - return $this->compileKey($blueprint, $command, 'primary key'); - } - - /** - * Compile a unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileUnique(Blueprint $blueprint, Fluent $command) - { - return $this->compileKey($blueprint, $command, 'unique'); - } - - /** - * Compile a plain index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileKey($blueprint, $command, 'index'); - } - - /** - * Compile a spatial index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileKey($blueprint, $command, 'spatial index'); - } - - /** - * Compile an index creation command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param string $type - * @return string - */ - protected function compileKey(Blueprint $blueprint, Fluent $command, $type) - { - return sprintf('alter table %s add %s %s%s(%s)', - $this->wrapTable($blueprint), - $type, - $this->wrap($command->index), - $command->algorithm ? ' using '.$command->algorithm : '', - $this->columnize($command->columns) - ); - } - - /** - * Compile a drop table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDrop(Blueprint $blueprint, Fluent $command) - { - return 'drop table '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop table (if exists) command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIfExists(Blueprint $blueprint, Fluent $command) - { - return 'drop table if exists '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropColumn(Blueprint $blueprint, Fluent $command) - { - $columns = $this->prefixArray('drop', $this->wrapArray($command->columns)); - - return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns); - } - - /** - * Compile a drop primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropPrimary(Blueprint $blueprint, Fluent $command) - { - return 'alter table '.$this->wrapTable($blueprint).' drop primary key'; - } - - /** - * Compile a drop unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropUnique(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop index {$index}"; - } - - /** - * Compile a drop index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIndex(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop index {$index}"; - } - - /** - * Compile a drop spatial index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileDropIndex($blueprint, $command); - } - - /** - * Compile a drop foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropForeign(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop foreign key {$index}"; - } - - /** - * Compile a rename table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRename(Blueprint $blueprint, Fluent $command) - { - $from = $this->wrapTable($blueprint); - - return "rename table {$from} to ".$this->wrapTable($command->to); - } - - /** - * Compile the SQL needed to drop all tables. - * - * @param array $tables - * @return string - */ - public function compileDropAllTables($tables) - { - return 'drop table '.implode(',', $this->wrapArray($tables)); - } - - /** - * Compile the SQL needed to retrieve all table names. - * - * @return string - */ - public function compileGetAllTables() - { - return 'SHOW FULL TABLES WHERE table_type = \'BASE TABLE\''; - } - - /** - * Compile the command to enable foreign key constraints. - * - * @return string - */ - public function compileEnableForeignKeyConstraints() - { - return 'SET FOREIGN_KEY_CHECKS=1;'; - } - - /** - * Compile the command to disable foreign key constraints. - * - * @return string - */ - public function compileDisableForeignKeyConstraints() - { - return 'SET FOREIGN_KEY_CHECKS=0;'; - } - - /** - * Create the column definition for a char type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeChar(Fluent $column) - { - return "char({$column->length})"; - } - - /** - * Create the column definition for a string type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeString(Fluent $column) - { - return "varchar({$column->length})"; - } - - /** - * Create the column definition for a text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a medium text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumText(Fluent $column) - { - return 'mediumtext'; - } - - /** - * Create the column definition for a long text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLongText(Fluent $column) - { - return 'longtext'; - } - - /** - * Create the column definition for a big integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBigInteger(Fluent $column) - { - return 'bigint'; - } - - /** - * Create the column definition for an integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeInteger(Fluent $column) - { - return 'int'; - } - - /** - * Create the column definition for a medium integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumInteger(Fluent $column) - { - return 'mediumint'; - } - - /** - * Create the column definition for a tiny integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTinyInteger(Fluent $column) - { - return 'tinyint'; - } - - /** - * Create the column definition for a small integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeSmallInteger(Fluent $column) - { - return 'smallint'; - } - - /** - * Create the column definition for a float type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeFloat(Fluent $column) - { - return $this->typeDouble($column); - } - - /** - * Create the column definition for a double type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDouble(Fluent $column) - { - if ($column->total && $column->places) { - return "double({$column->total}, {$column->places})"; - } - - return 'double'; - } - - /** - * Create the column definition for a decimal type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDecimal(Fluent $column) - { - return "decimal({$column->total}, {$column->places})"; - } - - /** - * Create the column definition for a boolean type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBoolean(Fluent $column) - { - return 'tinyint(1)'; - } - - /** - * Create the column definition for an enum type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeEnum(Fluent $column) - { - return "enum('".implode("', '", $column->allowed)."')"; - } - - /** - * Create the column definition for a json type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJson(Fluent $column) - { - return 'json'; - } - - /** - * Create the column definition for a jsonb type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJsonb(Fluent $column) - { - return 'json'; - } - - /** - * Create the column definition for a date type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDate(Fluent $column) - { - return 'date'; - } - - /** - * Create the column definition for a date-time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTime(Fluent $column) - { - return $column->precision ? "datetime($column->precision)" : 'datetime'; - } - - /** - * Create the column definition for a date-time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTimeTz(Fluent $column) - { - return $this->typeDateTime($column); - } - - /** - * Create the column definition for a time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTime(Fluent $column) - { - return $column->precision ? "time($column->precision)" : 'time'; - } - - /** - * Create the column definition for a time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimeTz(Fluent $column) - { - return $this->typeTime($column); - } - - /** - * Create the column definition for a timestamp type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestamp(Fluent $column) - { - $columnType = $column->precision ? "timestamp($column->precision)" : 'timestamp'; - - return $column->useCurrent ? "$columnType default CURRENT_TIMESTAMP" : $columnType; - } - - /** - * Create the column definition for a timestamp (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestampTz(Fluent $column) - { - return $this->typeTimestamp($column); - } - - /** - * Create the column definition for a year type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeYear(Fluent $column) - { - return 'year'; - } - - /** - * Create the column definition for a binary type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBinary(Fluent $column) - { - return 'blob'; - } - - /** - * Create the column definition for a uuid type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeUuid(Fluent $column) - { - return 'char(36)'; - } - - /** - * Create the column definition for an IP address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeIpAddress(Fluent $column) - { - return 'varchar(45)'; - } - - /** - * Create the column definition for a MAC address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMacAddress(Fluent $column) - { - return 'varchar(17)'; - } - - /** - * Create the column definition for a spatial Geometry type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometry(Fluent $column) - { - return 'geometry'; - } - - /** - * Create the column definition for a spatial Point type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePoint(Fluent $column) - { - return 'point'; - } - - /** - * Create the column definition for a spatial LineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeLineString(Fluent $column) - { - return 'linestring'; - } - - /** - * Create the column definition for a spatial Polygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePolygon(Fluent $column) - { - return 'polygon'; - } - - /** - * Create the column definition for a spatial GeometryCollection type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometryCollection(Fluent $column) - { - return 'geometrycollection'; - } - - /** - * Create the column definition for a spatial MultiPoint type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPoint(Fluent $column) - { - return 'multipoint'; - } - - /** - * Create the column definition for a spatial MultiLineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiLineString(Fluent $column) - { - return 'multilinestring'; - } - - /** - * Create the column definition for a spatial MultiPolygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPolygon(Fluent $column) - { - return 'multipolygon'; - } - - /** - * Get the SQL for a generated virtual column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyVirtualAs(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->virtualAs)) { - return " as ({$column->virtualAs})"; - } - } - - /** - * Get the SQL for a generated stored column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyStoredAs(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->storedAs)) { - return " as ({$column->storedAs}) stored"; - } - } - - /** - * Get the SQL for an unsigned column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyUnsigned(Blueprint $blueprint, Fluent $column) - { - if ($column->unsigned) { - return ' unsigned'; - } - } - - /** - * Get the SQL for a character set column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyCharset(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->charset)) { - return ' character set '.$column->charset; - } - } - - /** - * Get the SQL for a collation column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyCollate(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->collation)) { - return ' collate '.$column->collation; - } - } - - /** - * Get the SQL for a nullable column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyNullable(Blueprint $blueprint, Fluent $column) - { - if (is_null($column->virtualAs) && is_null($column->storedAs)) { - return $column->nullable ? ' null' : ' not null'; - } - } - - /** - * Get the SQL for a default column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyDefault(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->default)) { - return ' default '.$this->getDefaultValue($column->default); - } - } - - /** - * Get the SQL for an auto-increment column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyIncrement(Blueprint $blueprint, Fluent $column) - { - if (in_array($column->type, $this->serials) && $column->autoIncrement) { - return ' auto_increment primary key'; - } - } - - /** - * Get the SQL for a "first" column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyFirst(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->first)) { - return ' first'; - } - } - - /** - * Get the SQL for an "after" column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyAfter(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->after)) { - return ' after '.$this->wrap($column->after); - } - } - - /** - * Get the SQL for a "comment" column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyComment(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->comment)) { - return " comment '".addslashes($column->comment)."'"; - } - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - if ($value !== '*') { - return '`'.str_replace('`', '``', $value).'`'; - } - - return $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php deleted file mode 100755 index 5eed79cd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php +++ /dev/null @@ -1,802 +0,0 @@ -temporary ? 'create temporary' : 'create', - $this->wrapTable($blueprint), - implode(', ', $this->getColumns($blueprint)) - ); - } - - /** - * Compile a column addition command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileAdd(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s %s', - $this->wrapTable($blueprint), - implode(', ', $this->prefixArray('add column', $this->getColumns($blueprint))) - ); - } - - /** - * Compile a primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compilePrimary(Blueprint $blueprint, Fluent $command) - { - $columns = $this->columnize($command->columns); - - return 'alter table '.$this->wrapTable($blueprint)." add primary key ({$columns})"; - } - - /** - * Compile a unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileUnique(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s add constraint %s unique (%s)', - $this->wrapTable($blueprint), - $this->wrap($command->index), - $this->columnize($command->columns) - ); - } - - /** - * Compile a plain index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('create index %s on %s%s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $command->algorithm ? ' using '.$command->algorithm : '', - $this->columnize($command->columns) - ); - } - - /** - * Compile a spatial index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileSpatialIndex(Blueprint $blueprint, Fluent $command) - { - $command->algorithm = 'gist'; - - return $this->compileIndex($blueprint, $command); - } - - /** - * Compile a foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileForeign(Blueprint $blueprint, Fluent $command) - { - $sql = parent::compileForeign($blueprint, $command); - - if (! is_null($command->deferrable)) { - $sql .= $command->deferrable ? ' deferrable' : ' not deferrable'; - } - - if ($command->deferrable && ! is_null($command->initiallyImmediate)) { - $sql .= $command->initiallyImmediate ? ' initially immediate' : ' initially deferred'; - } - - return $sql; - } - - /** - * Compile a drop table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDrop(Blueprint $blueprint, Fluent $command) - { - return 'drop table '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop table (if exists) command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIfExists(Blueprint $blueprint, Fluent $command) - { - return 'drop table if exists '.$this->wrapTable($blueprint); - } - - /** - * Compile the SQL needed to drop all tables. - * - * @param string $tables - * @return string - */ - public function compileDropAllTables($tables) - { - return 'drop table "'.implode('","', $tables).'" cascade'; - } - - /** - * Compile the SQL needed to retrieve all table names. - * - * @param string $schema - * @return string - */ - public function compileGetAllTables($schema) - { - return "select tablename from pg_catalog.pg_tables where schemaname = '{$schema}'"; - } - - /** - * Compile a drop column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropColumn(Blueprint $blueprint, Fluent $command) - { - $columns = $this->prefixArray('drop column', $this->wrapArray($command->columns)); - - return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns); - } - - /** - * Compile a drop primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropPrimary(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap("{$blueprint->getTable()}_pkey"); - - return 'alter table '.$this->wrapTable($blueprint)." drop constraint {$index}"; - } - - /** - * Compile a drop unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropUnique(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop constraint {$index}"; - } - - /** - * Compile a drop index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIndex(Blueprint $blueprint, Fluent $command) - { - return "drop index {$this->wrap($command->index)}"; - } - - /** - * Compile a drop spatial index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileDropIndex($blueprint, $command); - } - - /** - * Compile a drop foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropForeign(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop constraint {$index}"; - } - - /** - * Compile a rename table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRename(Blueprint $blueprint, Fluent $command) - { - $from = $this->wrapTable($blueprint); - - return "alter table {$from} rename to ".$this->wrapTable($command->to); - } - - /** - * Compile the command to enable foreign key constraints. - * - * @return string - */ - public function compileEnableForeignKeyConstraints() - { - return 'SET CONSTRAINTS ALL IMMEDIATE;'; - } - - /** - * Compile the command to disable foreign key constraints. - * - * @return string - */ - public function compileDisableForeignKeyConstraints() - { - return 'SET CONSTRAINTS ALL DEFERRED;'; - } - - /** - * Create the column definition for a char type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeChar(Fluent $column) - { - return "char({$column->length})"; - } - - /** - * Create the column definition for a string type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeString(Fluent $column) - { - return "varchar({$column->length})"; - } - - /** - * Create the column definition for a text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a medium text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a long text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLongText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for an integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeInteger(Fluent $column) - { - return $column->autoIncrement ? 'serial' : 'integer'; - } - - /** - * Create the column definition for a big integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBigInteger(Fluent $column) - { - return $column->autoIncrement ? 'bigserial' : 'bigint'; - } - - /** - * Create the column definition for a medium integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumInteger(Fluent $column) - { - return $column->autoIncrement ? 'serial' : 'integer'; - } - - /** - * Create the column definition for a tiny integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTinyInteger(Fluent $column) - { - return $column->autoIncrement ? 'smallserial' : 'smallint'; - } - - /** - * Create the column definition for a small integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeSmallInteger(Fluent $column) - { - return $column->autoIncrement ? 'smallserial' : 'smallint'; - } - - /** - * Create the column definition for a float type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeFloat(Fluent $column) - { - return $this->typeDouble($column); - } - - /** - * Create the column definition for a double type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDouble(Fluent $column) - { - return 'double precision'; - } - - /** - * Create the column definition for a real type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeReal(Fluent $column) - { - return 'real'; - } - - /** - * Create the column definition for a decimal type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDecimal(Fluent $column) - { - return "decimal({$column->total}, {$column->places})"; - } - - /** - * Create the column definition for a boolean type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBoolean(Fluent $column) - { - return 'boolean'; - } - - /** - * Create the column definition for an enum type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeEnum(Fluent $column) - { - $allowed = array_map(function ($a) { - return "'{$a}'"; - }, $column->allowed); - - return "varchar(255) check (\"{$column->name}\" in (".implode(', ', $allowed).'))'; - } - - /** - * Create the column definition for a json type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJson(Fluent $column) - { - return 'json'; - } - - /** - * Create the column definition for a jsonb type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJsonb(Fluent $column) - { - return 'jsonb'; - } - - /** - * Create the column definition for a date type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDate(Fluent $column) - { - return 'date'; - } - - /** - * Create the column definition for a date-time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTime(Fluent $column) - { - return "timestamp($column->precision) without time zone"; - } - - /** - * Create the column definition for a date-time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTimeTz(Fluent $column) - { - return "timestamp($column->precision) with time zone"; - } - - /** - * Create the column definition for a time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTime(Fluent $column) - { - return "time($column->precision) without time zone"; - } - - /** - * Create the column definition for a time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimeTz(Fluent $column) - { - return "time($column->precision) with time zone"; - } - - /** - * Create the column definition for a timestamp type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestamp(Fluent $column) - { - $columnType = "timestamp($column->precision) without time zone"; - - return $column->useCurrent ? "$columnType default CURRENT_TIMESTAMP" : $columnType; - } - - /** - * Create the column definition for a timestamp (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestampTz(Fluent $column) - { - $columnType = "timestamp($column->precision) with time zone"; - - return $column->useCurrent ? "$columnType default CURRENT_TIMESTAMP" : $columnType; - } - - /** - * Create the column definition for a year type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeYear(Fluent $column) - { - return $this->typeInteger($column); - } - - /** - * Create the column definition for a binary type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBinary(Fluent $column) - { - return 'bytea'; - } - - /** - * Create the column definition for a uuid type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeUuid(Fluent $column) - { - return 'uuid'; - } - - /** - * Create the column definition for an IP address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeIpAddress(Fluent $column) - { - return 'inet'; - } - - /** - * Create the column definition for a MAC address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMacAddress(Fluent $column) - { - return 'macaddr'; - } - - /** - * Create the column definition for a spatial Geometry type. - * - * @param \Illuminate\Support\Fluent $column - * @throws \RuntimeException - */ - protected function typeGeometry(Fluent $column) - { - throw new RuntimeException('The database driver in use does not support the Geometry spatial column type.'); - } - - /** - * Create the column definition for a spatial Point type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typePoint(Fluent $column) - { - return $this->formatPostGisType('point'); - } - - /** - * Create the column definition for a spatial LineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLineString(Fluent $column) - { - return $this->formatPostGisType('linestring'); - } - - /** - * Create the column definition for a spatial Polygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typePolygon(Fluent $column) - { - return $this->formatPostGisType('polygon'); - } - - /** - * Create the column definition for a spatial GeometryCollection type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeGeometryCollection(Fluent $column) - { - return $this->formatPostGisType('geometrycollection'); - } - - /** - * Create the column definition for a spatial MultiPoint type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMultiPoint(Fluent $column) - { - return $this->formatPostGisType('multipoint'); - } - - /** - * Create the column definition for a spatial MultiLineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiLineString(Fluent $column) - { - return $this->formatPostGisType('multilinestring'); - } - - /** - * Create the column definition for a spatial MultiPolygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMultiPolygon(Fluent $column) - { - return $this->formatPostGisType('multipolygon'); - } - - /** - * Format the column definition for a PostGIS spatial type. - * - * @param string $type - * @return string - */ - private function formatPostGisType(string $type) - { - return "geography($type, 4326)"; - } - - /** - * Get the SQL for a nullable column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyNullable(Blueprint $blueprint, Fluent $column) - { - return $column->nullable ? ' null' : ' not null'; - } - - /** - * Get the SQL for a default column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyDefault(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->default)) { - return ' default '.$this->getDefaultValue($column->default); - } - } - - /** - * Get the SQL for an auto-increment column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyIncrement(Blueprint $blueprint, Fluent $column) - { - if (in_array($column->type, $this->serials) && $column->autoIncrement) { - return ' primary key'; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php deleted file mode 100644 index a07c4feb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php +++ /dev/null @@ -1,69 +0,0 @@ -getDoctrineColumn( - $grammar->getTablePrefix().$blueprint->getTable(), $command->from - ); - - $schema = $connection->getDoctrineSchemaManager(); - - return (array) $schema->getDatabasePlatform()->getAlterTableSQL(static::getRenamedDiff( - $grammar, $blueprint, $command, $column, $schema - )); - } - - /** - * Get a new column instance with the new column name. - * - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param \Doctrine\DBAL\Schema\Column $column - * @param \Doctrine\DBAL\Schema\AbstractSchemaManager $schema - * @return \Doctrine\DBAL\Schema\TableDiff - */ - protected static function getRenamedDiff(Grammar $grammar, Blueprint $blueprint, Fluent $command, Column $column, SchemaManager $schema) - { - return static::setRenamedColumns( - $grammar->getDoctrineTableDiff($blueprint, $schema), $command, $column - ); - } - - /** - * Set the renamed columns on the table diff. - * - * @param \Doctrine\DBAL\Schema\TableDiff $tableDiff - * @param \Illuminate\Support\Fluent $command - * @param \Doctrine\DBAL\Schema\Column $column - * @return \Doctrine\DBAL\Schema\TableDiff - */ - protected static function setRenamedColumns(TableDiff $tableDiff, Fluent $command, Column $column) - { - $tableDiff->renamedColumns = [ - $command->from => new Column($command->to, $column->getType(), $column->toArray()), - ]; - - return $tableDiff; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php deleted file mode 100755 index 27e372d5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php +++ /dev/null @@ -1,799 +0,0 @@ -wrap(str_replace('.', '__', $table)).')'; - } - - /** - * Compile a create table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileCreate(Blueprint $blueprint, Fluent $command) - { - return sprintf('%s table %s (%s%s%s)', - $blueprint->temporary ? 'create temporary' : 'create', - $this->wrapTable($blueprint), - implode(', ', $this->getColumns($blueprint)), - (string) $this->addForeignKeys($blueprint), - (string) $this->addPrimaryKeys($blueprint) - ); - } - - /** - * Get the foreign key syntax for a table creation statement. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return string|null - */ - protected function addForeignKeys(Blueprint $blueprint) - { - $foreigns = $this->getCommandsByName($blueprint, 'foreign'); - - return collect($foreigns)->reduce(function ($sql, $foreign) { - // Once we have all the foreign key commands for the table creation statement - // we'll loop through each of them and add them to the create table SQL we - // are building, since SQLite needs foreign keys on the tables creation. - $sql .= $this->getForeignKey($foreign); - - if (! is_null($foreign->onDelete)) { - $sql .= " on delete {$foreign->onDelete}"; - } - - // If this foreign key specifies the action to be taken on update we will add - // that to the statement here. We'll append it to this SQL and then return - // the SQL so we can keep adding any other foreign consraints onto this. - if (! is_null($foreign->onUpdate)) { - $sql .= " on update {$foreign->onUpdate}"; - } - - return $sql; - }, ''); - } - - /** - * Get the SQL for the foreign key. - * - * @param \Illuminate\Support\Fluent $foreign - * @return string - */ - protected function getForeignKey($foreign) - { - // We need to columnize the columns that the foreign key is being defined for - // so that it is a properly formatted list. Once we have done this, we can - // return the foreign key SQL declaration to the calling method for use. - return sprintf(', foreign key(%s) references %s(%s)', - $this->columnize($foreign->columns), - $this->wrapTable($foreign->on), - $this->columnize((array) $foreign->references) - ); - } - - /** - * Get the primary key syntax for a table creation statement. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return string|null - */ - protected function addPrimaryKeys(Blueprint $blueprint) - { - if (! is_null($primary = $this->getCommandByName($blueprint, 'primary'))) { - return ", primary key ({$this->columnize($primary->columns)})"; - } - } - - /** - * Compile alter table commands for adding columns. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return array - */ - public function compileAdd(Blueprint $blueprint, Fluent $command) - { - $columns = $this->prefixArray('add column', $this->getColumns($blueprint)); - - return collect($columns)->map(function ($column) use ($blueprint) { - return 'alter table '.$this->wrapTable($blueprint).' '.$column; - })->all(); - } - - /** - * Compile a unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileUnique(Blueprint $blueprint, Fluent $command) - { - return sprintf('create unique index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a plain index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('create index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a spatial index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @throws \RuntimeException - */ - public function compileSpatialIndex(Blueprint $blueprint, Fluent $command) - { - throw new RuntimeException('The database driver in use does not support spatial indexes.'); - } - - /** - * Compile a foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileForeign(Blueprint $blueprint, Fluent $command) - { - // Handled on table creation... - } - - /** - * Compile a drop table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDrop(Blueprint $blueprint, Fluent $command) - { - return 'drop table '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop table (if exists) command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIfExists(Blueprint $blueprint, Fluent $command) - { - return 'drop table if exists '.$this->wrapTable($blueprint); - } - - /** - * Compile the SQL needed to drop all tables. - * - * @return string - */ - public function compileDropAllTables() - { - return "delete from sqlite_master where type in ('table', 'index', 'trigger')"; - } - - /** - * Compile a drop column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param \Illuminate\Database\Connection $connection - * @return array - */ - public function compileDropColumn(Blueprint $blueprint, Fluent $command, Connection $connection) - { - $tableDiff = $this->getDoctrineTableDiff( - $blueprint, $schema = $connection->getDoctrineSchemaManager() - ); - - foreach ($command->columns as $name) { - $tableDiff->removedColumns[$name] = $connection->getDoctrineColumn( - $this->getTablePrefix().$blueprint->getTable(), $name - ); - } - - return (array) $schema->getDatabasePlatform()->getAlterTableSQL($tableDiff); - } - - /** - * Compile a drop unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropUnique(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "drop index {$index}"; - } - - /** - * Compile a drop index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIndex(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "drop index {$index}"; - } - - /** - * Compile a drop spatial index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @throws \RuntimeException - */ - public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command) - { - throw new RuntimeException('The database driver in use does not support spatial indexes.'); - } - - /** - * Compile a rename table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRename(Blueprint $blueprint, Fluent $command) - { - $from = $this->wrapTable($blueprint); - - return "alter table {$from} rename to ".$this->wrapTable($command->to); - } - - /** - * Compile the command to enable foreign key constraints. - * - * @return string - */ - public function compileEnableForeignKeyConstraints() - { - return 'PRAGMA foreign_keys = ON;'; - } - - /** - * Compile the command to disable foreign key constraints. - * - * @return string - */ - public function compileDisableForeignKeyConstraints() - { - return 'PRAGMA foreign_keys = OFF;'; - } - - /** - * Compile the SQL needed to enable a writable schema. - * - * @return string - */ - public function compileEnableWriteableSchema() - { - return 'PRAGMA writable_schema = 1;'; - } - - /** - * Compile the SQL needed to disable a writable schema. - * - * @return string - */ - public function compileDisableWriteableSchema() - { - return 'PRAGMA writable_schema = 0;'; - } - - /** - * Create the column definition for a char type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeChar(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a string type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeString(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a medium text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a long text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLongText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a big integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBigInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a medium integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a tiny integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTinyInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a small integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeSmallInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a float type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeFloat(Fluent $column) - { - return 'float'; - } - - /** - * Create the column definition for a double type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDouble(Fluent $column) - { - return 'float'; - } - - /** - * Create the column definition for a decimal type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDecimal(Fluent $column) - { - return 'numeric'; - } - - /** - * Create the column definition for a boolean type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBoolean(Fluent $column) - { - return 'tinyint(1)'; - } - - /** - * Create the column definition for an enum type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeEnum(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a json type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJson(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a jsonb type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJsonb(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a date type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDate(Fluent $column) - { - return 'date'; - } - - /** - * Create the column definition for a date-time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTime(Fluent $column) - { - return 'datetime'; - } - - /** - * Create the column definition for a date-time (with time zone) type. - * - * Note: "SQLite does not have a storage class set aside for storing dates and/or times." - * @link https://www.sqlite.org/datatype3.html - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTimeTz(Fluent $column) - { - return $this->typeDateTime($column); - } - - /** - * Create the column definition for a time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTime(Fluent $column) - { - return 'time'; - } - - /** - * Create the column definition for a time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimeTz(Fluent $column) - { - return $this->typeTime($column); - } - - /** - * Create the column definition for a timestamp type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestamp(Fluent $column) - { - return $column->useCurrent ? 'datetime default CURRENT_TIMESTAMP' : 'datetime'; - } - - /** - * Create the column definition for a timestamp (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestampTz(Fluent $column) - { - return $this->typeTimestamp($column); - } - - /** - * Create the column definition for a year type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeYear(Fluent $column) - { - return $this->typeInteger($column); - } - - /** - * Create the column definition for a binary type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBinary(Fluent $column) - { - return 'blob'; - } - - /** - * Create the column definition for a uuid type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeUuid(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for an IP address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeIpAddress(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a MAC address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMacAddress(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a spatial Geometry type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometry(Fluent $column) - { - return 'geometry'; - } - - /** - * Create the column definition for a spatial Point type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePoint(Fluent $column) - { - return 'point'; - } - - /** - * Create the column definition for a spatial LineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeLineString(Fluent $column) - { - return 'linestring'; - } - - /** - * Create the column definition for a spatial Polygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePolygon(Fluent $column) - { - return 'polygon'; - } - - /** - * Create the column definition for a spatial GeometryCollection type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometryCollection(Fluent $column) - { - return 'geometrycollection'; - } - - /** - * Create the column definition for a spatial MultiPoint type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPoint(Fluent $column) - { - return 'multipoint'; - } - - /** - * Create the column definition for a spatial MultiLineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiLineString(Fluent $column) - { - return 'multilinestring'; - } - - /** - * Create the column definition for a spatial MultiPolygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPolygon(Fluent $column) - { - return 'multipolygon'; - } - - /** - * Get the SQL for a nullable column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyNullable(Blueprint $blueprint, Fluent $column) - { - return $column->nullable ? ' null' : ' not null'; - } - - /** - * Get the SQL for a default column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyDefault(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->default)) { - return ' default '.$this->getDefaultValue($column->default); - } - } - - /** - * Get the SQL for an auto-increment column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyIncrement(Blueprint $blueprint, Fluent $column) - { - if (in_array($column->type, $this->serials) && $column->autoIncrement) { - return ' primary key autoincrement'; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php deleted file mode 100755 index 40a21c1d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php +++ /dev/null @@ -1,785 +0,0 @@ -getColumns($blueprint)); - - return 'create table '.$this->wrapTable($blueprint)." ($columns)"; - } - - /** - * Compile a column addition table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileAdd(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s add %s', - $this->wrapTable($blueprint), - implode(', ', $this->getColumns($blueprint)) - ); - } - - /** - * Compile a primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compilePrimary(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s add constraint %s primary key (%s)', - $this->wrapTable($blueprint), - $this->wrap($command->index), - $this->columnize($command->columns) - ); - } - - /** - * Compile a unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileUnique(Blueprint $blueprint, Fluent $command) - { - return sprintf('create unique index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a plain index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('create index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a spatial index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('create spatial index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a drop table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDrop(Blueprint $blueprint, Fluent $command) - { - return 'drop table '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop table (if exists) command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIfExists(Blueprint $blueprint, Fluent $command) - { - return sprintf('if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = %s) drop table %s', - "'".str_replace("'", "''", $this->getTablePrefix().$blueprint->getTable())."'", - $this->wrapTable($blueprint) - ); - } - - /** - * Compile the SQL needed to drop all tables. - * - * @return string - */ - public function compileDropAllTables() - { - return "EXEC sp_msforeachtable 'DROP TABLE ?'"; - } - - /** - * Compile a drop column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropColumn(Blueprint $blueprint, Fluent $command) - { - $columns = $this->wrapArray($command->columns); - - return 'alter table '.$this->wrapTable($blueprint).' drop column '.implode(', ', $columns); - } - - /** - * Compile a drop primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropPrimary(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop constraint {$index}"; - } - - /** - * Compile a drop unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropUnique(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "drop index {$index} on {$this->wrapTable($blueprint)}"; - } - - /** - * Compile a drop index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIndex(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "drop index {$index} on {$this->wrapTable($blueprint)}"; - } - - /** - * Compile a drop spatial index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileDropIndex($blueprint, $command); - } - - /** - * Compile a drop foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropForeign(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop constraint {$index}"; - } - - /** - * Compile a rename table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRename(Blueprint $blueprint, Fluent $command) - { - $from = $this->wrapTable($blueprint); - - return "sp_rename {$from}, ".$this->wrapTable($command->to); - } - - /** - * Compile the command to enable foreign key constraints. - * - * @return string - */ - public function compileEnableForeignKeyConstraints() - { - return 'EXEC sp_msforeachtable @command1="print \'?\'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all";'; - } - - /** - * Compile the command to disable foreign key constraints. - * - * @return string - */ - public function compileDisableForeignKeyConstraints() - { - return 'EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";'; - } - - /** - * Create the column definition for a char type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeChar(Fluent $column) - { - return "nchar({$column->length})"; - } - - /** - * Create the column definition for a string type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeString(Fluent $column) - { - return "nvarchar({$column->length})"; - } - - /** - * Create the column definition for a text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeText(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for a medium text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumText(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for a long text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLongText(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for an integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeInteger(Fluent $column) - { - return 'int'; - } - - /** - * Create the column definition for a big integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBigInteger(Fluent $column) - { - return 'bigint'; - } - - /** - * Create the column definition for a medium integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumInteger(Fluent $column) - { - return 'int'; - } - - /** - * Create the column definition for a tiny integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTinyInteger(Fluent $column) - { - return 'tinyint'; - } - - /** - * Create the column definition for a small integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeSmallInteger(Fluent $column) - { - return 'smallint'; - } - - /** - * Create the column definition for a float type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeFloat(Fluent $column) - { - return 'float'; - } - - /** - * Create the column definition for a double type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDouble(Fluent $column) - { - return 'float'; - } - - /** - * Create the column definition for a decimal type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDecimal(Fluent $column) - { - return "decimal({$column->total}, {$column->places})"; - } - - /** - * Create the column definition for a boolean type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBoolean(Fluent $column) - { - return 'bit'; - } - - /** - * Create the column definition for an enum type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeEnum(Fluent $column) - { - return 'nvarchar(255)'; - } - - /** - * Create the column definition for a json type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJson(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for a jsonb type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJsonb(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for a date type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDate(Fluent $column) - { - return 'date'; - } - - /** - * Create the column definition for a date-time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTime(Fluent $column) - { - return $column->precision ? "datetime2($column->precision)" : 'datetime'; - } - - /** - * Create the column definition for a date-time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTimeTz(Fluent $column) - { - return $column->precision ? "datetimeoffset($column->precision)" : 'datetimeoffset'; - } - - /** - * Create the column definition for a time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTime(Fluent $column) - { - return $column->precision ? "time($column->precision)" : 'time'; - } - - /** - * Create the column definition for a time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimeTz(Fluent $column) - { - return $this->typeTime($column); - } - - /** - * Create the column definition for a timestamp type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestamp(Fluent $column) - { - $columnType = $column->precision ? "datetime2($column->precision)" : 'datetime'; - - return $column->useCurrent ? "$columnType default CURRENT_TIMESTAMP" : $columnType; - } - - /** - * Create the column definition for a timestamp (with time zone) type. - * - * @link https://msdn.microsoft.com/en-us/library/bb630289(v=sql.120).aspx - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestampTz(Fluent $column) - { - if ($column->useCurrent) { - $columnType = $column->precision ? "datetimeoffset($column->precision)" : 'datetimeoffset'; - - return "$columnType default CURRENT_TIMESTAMP"; - } - - return "datetimeoffset($column->precision)"; - } - - /** - * Create the column definition for a year type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeYear(Fluent $column) - { - return $this->typeInteger($column); - } - - /** - * Create the column definition for a binary type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBinary(Fluent $column) - { - return 'varbinary(max)'; - } - - /** - * Create the column definition for a uuid type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeUuid(Fluent $column) - { - return 'uniqueidentifier'; - } - - /** - * Create the column definition for an IP address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeIpAddress(Fluent $column) - { - return 'nvarchar(45)'; - } - - /** - * Create the column definition for a MAC address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMacAddress(Fluent $column) - { - return 'nvarchar(17)'; - } - - /** - * Create the column definition for a spatial Geometry type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometry(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial Point type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePoint(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial LineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeLineString(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial Polygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePolygon(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial GeometryCollection type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometryCollection(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial MultiPoint type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPoint(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial MultiLineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiLineString(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial MultiPolygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPolygon(Fluent $column) - { - return 'geography'; - } - - /** - * Get the SQL for a collation column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyCollate(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->collation)) { - return ' collate '.$column->collation; - } - } - - /** - * Get the SQL for a nullable column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyNullable(Blueprint $blueprint, Fluent $column) - { - return $column->nullable ? ' null' : ' not null'; - } - - /** - * Get the SQL for a default column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyDefault(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->default)) { - return ' default '.$this->getDefaultValue($column->default); - } - } - - /** - * Get the SQL for an auto-increment column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyIncrement(Blueprint $blueprint, Fluent $column) - { - if (in_array($column->type, $this->serials) && $column->autoIncrement) { - return ' identity primary key'; - } - } - - /** - * Wrap a table in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $table - * @return string - */ - public function wrapTable($table) - { - if ($table instanceof Blueprint && $table->temporary) { - $this->setTablePrefix('#'); - } - - return parent::wrapTable($table); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php deleted file mode 100755 index 7e4c6d2b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php +++ /dev/null @@ -1,78 +0,0 @@ -connection->getTablePrefix().$table; - - return count($this->connection->select( - $this->grammar->compileTableExists(), [$this->connection->getDatabaseName(), $table] - )) > 0; - } - - /** - * Get the column listing for a given table. - * - * @param string $table - * @return array - */ - public function getColumnListing($table) - { - $table = $this->connection->getTablePrefix().$table; - - $results = $this->connection->select( - $this->grammar->compileColumnListing(), [$this->connection->getDatabaseName(), $table] - ); - - return $this->connection->getPostProcessor()->processColumnListing($results); - } - - /** - * Drop all tables from the database. - * - * @return void - */ - public function dropAllTables() - { - $tables = []; - - foreach ($this->getAllTables() as $row) { - $row = (array) $row; - - $tables[] = reset($row); - } - - if (empty($tables)) { - return; - } - - $this->disableForeignKeyConstraints(); - - $this->connection->statement( - $this->grammar->compileDropAllTables($tables) - ); - - $this->enableForeignKeyConstraints(); - } - - /** - * Get all of the table names for the database. - * - * @return array - */ - protected function getAllTables() - { - return $this->connection->select( - $this->grammar->compileGetAllTables() - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php deleted file mode 100755 index 8fa0a2c1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php +++ /dev/null @@ -1,105 +0,0 @@ -parseSchemaAndTable($table); - - $table = $this->connection->getTablePrefix().$table; - - return count($this->connection->select( - $this->grammar->compileTableExists(), [$schema, $table] - )) > 0; - } - - /** - * Drop all tables from the database. - * - * @return void - */ - public function dropAllTables() - { - $tables = []; - - $excludedTables = ['spatial_ref_sys']; - - foreach ($this->getAllTables() as $row) { - $row = (array) $row; - - $table = reset($row); - - if (! in_array($table, $excludedTables)) { - $tables[] = $table; - } - } - - if (empty($tables)) { - return; - } - - $this->connection->statement( - $this->grammar->compileDropAllTables($tables) - ); - } - - /** - * Get all of the table names for the database. - * - * @return array - */ - protected function getAllTables() - { - return $this->connection->select( - $this->grammar->compileGetAllTables($this->connection->getConfig('schema')) - ); - } - - /** - * Get the column listing for a given table. - * - * @param string $table - * @return array - */ - public function getColumnListing($table) - { - list($schema, $table) = $this->parseSchemaAndTable($table); - - $table = $this->connection->getTablePrefix().$table; - - $results = $this->connection->select( - $this->grammar->compileColumnListing(), [$schema, $table] - ); - - return $this->connection->getPostProcessor()->processColumnListing($results); - } - - /** - * Parse the table name and extract the schema and table. - * - * @param string $table - * @return array - */ - protected function parseSchemaAndTable($table) - { - $table = explode('.', $table); - - if (is_array($schema = $this->connection->getConfig('schema'))) { - if (in_array($table[0], $schema)) { - return [array_shift($table), implode('.', $table)]; - } - - $schema = head($schema); - } - - return [$schema ?: 'public', implode('.', $table)]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php deleted file mode 100644 index 8cfacc11..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php +++ /dev/null @@ -1,34 +0,0 @@ -connection->getDatabaseName() !== ':memory:') { - return $this->refreshDatabaseFile(); - } - - $this->connection->select($this->grammar->compileEnableWriteableSchema()); - - $this->connection->select($this->grammar->compileDropAllTables()); - - $this->connection->select($this->grammar->compileDisableWriteableSchema()); - } - - /** - * Empty the database file. - * - * @return void - */ - public function refreshDatabaseFile() - { - file_put_contents($this->connection->getDatabaseName(), ''); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php deleted file mode 100644 index 2c54282d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php +++ /dev/null @@ -1,20 +0,0 @@ -disableForeignKeyConstraints(); - - $this->connection->statement($this->grammar->compileDropAllTables()); - - $this->enableForeignKeyConstraints(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Seeder.php b/vendor/laravel/framework/src/Illuminate/Database/Seeder.php deleted file mode 100755 index e4d30096..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Seeder.php +++ /dev/null @@ -1,125 +0,0 @@ -command)) { - $this->command->getOutput()->writeln("Seeding: $class"); - } - - $this->resolve($class)->__invoke(); - } - - return $this; - } - - /** - * Silently seed the given connection from the given path. - * - * @param array|string $class - * @return void - */ - public function callSilent($class) - { - $this->call($class, true); - } - - /** - * Resolve an instance of the given seeder class. - * - * @param string $class - * @return \Illuminate\Database\Seeder - */ - protected function resolve($class) - { - if (isset($this->container)) { - $instance = $this->container->make($class); - - $instance->setContainer($this->container); - } else { - $instance = new $class; - } - - if (isset($this->command)) { - $instance->setCommand($this->command); - } - - return $instance; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Container\Container $container - * @return $this - */ - public function setContainer(Container $container) - { - $this->container = $container; - - return $this; - } - - /** - * Set the console command instance. - * - * @param \Illuminate\Console\Command $command - * @return $this - */ - public function setCommand(Command $command) - { - $this->command = $command; - - return $this; - } - - /** - * Run the database seeds. - * - * @return void - * - * @throws \InvalidArgumentException - */ - public function __invoke() - { - if (! method_exists($this, 'run')) { - throw new InvalidArgumentException('Method [run] missing from '.get_class($this)); - } - - return isset($this->container) - ? $this->container->call([$this, 'run']) - : $this->run(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php b/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php deleted file mode 100755 index 95395637..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php +++ /dev/null @@ -1,113 +0,0 @@ -getDriverName() == 'sqlsrv') { - return parent::transaction($callback); - } - - $this->getPdo()->exec('BEGIN TRAN'); - - // We'll simply execute the given callback within a try / catch block - // and if we catch any exception we can rollback the transaction - // so that none of the changes are persisted to the database. - try { - $result = $callback($this); - - $this->getPdo()->exec('COMMIT TRAN'); - } - - // If we catch an exception, we will roll back so nothing gets messed - // up in the database. Then we'll re-throw the exception so it can - // be handled how the developer sees fit for their applications. - catch (Exception $e) { - $this->getPdo()->exec('ROLLBACK TRAN'); - - throw $e; - } catch (Throwable $e) { - $this->getPdo()->exec('ROLLBACK TRAN'); - - throw $e; - } - - return $result; - } - } - - /** - * Get the default query grammar instance. - * - * @return \Illuminate\Database\Query\Grammars\SqlServerGrammar - */ - protected function getDefaultQueryGrammar() - { - return $this->withTablePrefix(new QueryGrammar); - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\SqlServerBuilder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new SqlServerBuilder($this); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\SqlServerGrammar - */ - protected function getDefaultSchemaGrammar() - { - return $this->withTablePrefix(new SchemaGrammar); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\SqlServerProcessor - */ - protected function getDefaultPostProcessor() - { - return new SqlServerProcessor; - } - - /** - * Get the Doctrine DBAL driver. - * - * @return \Doctrine\DBAL\Driver\PDOSqlsrv\Driver - */ - protected function getDoctrineDriver() - { - return new DoctrineDriver; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/composer.json b/vendor/laravel/framework/src/Illuminate/Database/composer.json deleted file mode 100644 index 153abad6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/composer.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "illuminate/database", - "description": "The Illuminate Database package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "keywords": ["laravel", "database", "sql", "orm"], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/container": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Database\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "illuminate/console": "Required to use the database commands (5.5.*).", - "illuminate/events": "Required to use the observers with Eloquent (5.5.*).", - "illuminate/filesystem": "Required to use the migrations (5.5.*).", - "illuminate/pagination": "Required to paginate the result set (5.5.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php b/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php deleted file mode 100755 index 61670ea3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php +++ /dev/null @@ -1,252 +0,0 @@ -key = $key; - $this->cipher = $cipher; - } else { - throw new RuntimeException('The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.'); - } - } - - /** - * Determine if the given key and cipher combination is valid. - * - * @param string $key - * @param string $cipher - * @return bool - */ - public static function supported($key, $cipher) - { - $length = mb_strlen($key, '8bit'); - - return ($cipher === 'AES-128-CBC' && $length === 16) || - ($cipher === 'AES-256-CBC' && $length === 32); - } - - /** - * Create a new encryption key for the given cipher. - * - * @param string $cipher - * @return string - */ - public static function generateKey($cipher) - { - return random_bytes($cipher == 'AES-128-CBC' ? 16 : 32); - } - - /** - * Encrypt the given value. - * - * @param mixed $value - * @param bool $serialize - * @return string - * - * @throws \Illuminate\Contracts\Encryption\EncryptException - */ - public function encrypt($value, $serialize = true) - { - $iv = random_bytes(openssl_cipher_iv_length($this->cipher)); - - // First we will encrypt the value using OpenSSL. After this is encrypted we - // will proceed to calculating a MAC for the encrypted value so that this - // value can be verified later as not having been changed by the users. - $value = \openssl_encrypt( - $serialize ? serialize($value) : $value, - $this->cipher, $this->key, 0, $iv - ); - - if ($value === false) { - throw new EncryptException('Could not encrypt the data.'); - } - - // Once we get the encrypted value we'll go ahead and base64_encode the input - // vector and create the MAC for the encrypted value so we can then verify - // its authenticity. Then, we'll JSON the data into the "payload" array. - $mac = $this->hash($iv = base64_encode($iv), $value); - - $json = json_encode(compact('iv', 'value', 'mac')); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new EncryptException('Could not encrypt the data.'); - } - - return base64_encode($json); - } - - /** - * Encrypt a string without serialization. - * - * @param string $value - * @return string - */ - public function encryptString($value) - { - return $this->encrypt($value, false); - } - - /** - * Decrypt the given value. - * - * @param mixed $payload - * @param bool $unserialize - * @return string - * - * @throws \Illuminate\Contracts\Encryption\DecryptException - */ - public function decrypt($payload, $unserialize = true) - { - $payload = $this->getJsonPayload($payload); - - $iv = base64_decode($payload['iv']); - - // Here we will decrypt the value. If we are able to successfully decrypt it - // we will then unserialize it and return it out to the caller. If we are - // unable to decrypt this value we will throw out an exception message. - $decrypted = \openssl_decrypt( - $payload['value'], $this->cipher, $this->key, 0, $iv - ); - - if ($decrypted === false) { - throw new DecryptException('Could not decrypt the data.'); - } - - return $unserialize ? unserialize($decrypted) : $decrypted; - } - - /** - * Decrypt the given string without unserialization. - * - * @param string $payload - * @return string - */ - public function decryptString($payload) - { - return $this->decrypt($payload, false); - } - - /** - * Create a MAC for the given value. - * - * @param string $iv - * @param mixed $value - * @return string - */ - protected function hash($iv, $value) - { - return hash_hmac('sha256', $iv.$value, $this->key); - } - - /** - * Get the JSON array from the given payload. - * - * @param string $payload - * @return array - * - * @throws \Illuminate\Contracts\Encryption\DecryptException - */ - protected function getJsonPayload($payload) - { - $payload = json_decode(base64_decode($payload), true); - - // If the payload is not valid JSON or does not have the proper keys set we will - // assume it is invalid and bail out of the routine since we will not be able - // to decrypt the given value. We'll also check the MAC for this encryption. - if (! $this->validPayload($payload)) { - throw new DecryptException('The payload is invalid.'); - } - - if (! $this->validMac($payload)) { - throw new DecryptException('The MAC is invalid.'); - } - - return $payload; - } - - /** - * Verify that the encryption payload is valid. - * - * @param mixed $payload - * @return bool - */ - protected function validPayload($payload) - { - return is_array($payload) && isset( - $payload['iv'], $payload['value'], $payload['mac'] - ); - } - - /** - * Determine if the MAC for the given payload is valid. - * - * @param array $payload - * @return bool - */ - protected function validMac(array $payload) - { - $calculated = $this->calculateMac($payload, $bytes = random_bytes(16)); - - return hash_equals( - hash_hmac('sha256', $payload['mac'], $bytes, true), $calculated - ); - } - - /** - * Calculate the hash of the given payload. - * - * @param array $payload - * @param string $bytes - * @return string - */ - protected function calculateMac($payload, $bytes) - { - return hash_hmac( - 'sha256', $this->hash($payload['iv'], $payload['value']), $bytes, true - ); - } - - /** - * Get the encryption key. - * - * @return string - */ - public function getKey() - { - return $this->key; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php deleted file mode 100755 index d75d95a7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php +++ /dev/null @@ -1,48 +0,0 @@ -app->singleton('encrypter', function ($app) { - $config = $app->make('config')->get('app'); - - // If the key starts with "base64:", we will need to decode the key before handing - // it off to the encrypter. Keys may be base-64 encoded for presentation and we - // want to make sure to convert them back to the raw bytes before encrypting. - if (Str::startsWith($key = $this->key($config), 'base64:')) { - $key = base64_decode(substr($key, 7)); - } - - return new Encrypter($key, $config['cipher']); - }); - } - - /** - * Extract the encryption key from the given configuration. - * - * @param array $config - * @return string - */ - protected function key(array $config) - { - return tap($config['key'], function ($key) { - if (empty($key)) { - throw new RuntimeException( - 'No application encryption key has been specified.' - ); - } - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Encryption/composer.json b/vendor/laravel/framework/src/Illuminate/Encryption/composer.json deleted file mode 100644 index 0887e6fa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Encryption/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "illuminate/encryption", - "description": "The Illuminate Encryption package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "ext-mbstring": "*", - "ext-openssl": "*", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Encryption\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php b/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php deleted file mode 100644 index a66b4f99..00000000 --- a/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php +++ /dev/null @@ -1,160 +0,0 @@ -data = $data; - $this->class = $class; - $this->method = $method; - } - - /** - * Handle the queued job. - * - * @param \Illuminate\Container\Container $container - * @return void - */ - public function handle(Container $container) - { - $this->prepareData(); - - $handler = $this->setJobInstanceIfNecessary( - $this->job, $container->make($this->class) - ); - - call_user_func_array( - [$handler, $this->method], $this->data - ); - } - - /** - * Set the job instance of the given class if necessary. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param mixed $instance - * @return mixed - */ - protected function setJobInstanceIfNecessary(Job $job, $instance) - { - if (in_array(InteractsWithQueue::class, class_uses_recursive(get_class($instance)))) { - $instance->setJob($job); - } - - return $instance; - } - - /** - * Call the failed method on the job instance. - * - * The event instance and the exception will be passed. - * - * @param \Exception $e - * @return void - */ - public function failed($e) - { - $this->prepareData(); - - $handler = Container::getInstance()->make($this->class); - - $parameters = array_merge($this->data, [$e]); - - if (method_exists($handler, 'failed')) { - call_user_func_array([$handler, 'failed'], $parameters); - } - } - - /** - * Unserialize the data if needed. - * - * @return void - */ - protected function prepareData() - { - if (is_string($this->data)) { - $this->data = unserialize($this->data); - } - } - - /** - * Get the display name for the queued job. - * - * @return string - */ - public function displayName() - { - return $this->class; - } - - /** - * Prepare the instance for cloning. - * - * @return void - */ - public function __clone() - { - $this->data = array_map(function ($data) { - return is_object($data) ? clone $data : $data; - }, $this->data); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php b/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php deleted file mode 100755 index d99031cf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php +++ /dev/null @@ -1,563 +0,0 @@ -container = $container ?: new Container; - } - - /** - * Register an event listener with the dispatcher. - * - * @param string|array $events - * @param mixed $listener - * @return void - */ - public function listen($events, $listener) - { - foreach ((array) $events as $event) { - if (Str::contains($event, '*')) { - $this->setupWildcardListen($event, $listener); - } else { - $this->listeners[$event][] = $this->makeListener($listener); - } - } - } - - /** - * Setup a wildcard listener callback. - * - * @param string $event - * @param mixed $listener - * @return void - */ - protected function setupWildcardListen($event, $listener) - { - $this->wildcards[$event][] = $this->makeListener($listener, true); - } - - /** - * Determine if a given event has listeners. - * - * @param string $eventName - * @return bool - */ - public function hasListeners($eventName) - { - return isset($this->listeners[$eventName]) || isset($this->wildcards[$eventName]); - } - - /** - * Register an event and payload to be fired later. - * - * @param string $event - * @param array $payload - * @return void - */ - public function push($event, $payload = []) - { - $this->listen($event.'_pushed', function () use ($event, $payload) { - $this->dispatch($event, $payload); - }); - } - - /** - * Flush a set of pushed events. - * - * @param string $event - * @return void - */ - public function flush($event) - { - $this->dispatch($event.'_pushed'); - } - - /** - * Register an event subscriber with the dispatcher. - * - * @param object|string $subscriber - * @return void - */ - public function subscribe($subscriber) - { - $subscriber = $this->resolveSubscriber($subscriber); - - $subscriber->subscribe($this); - } - - /** - * Resolve the subscriber instance. - * - * @param object|string $subscriber - * @return mixed - */ - protected function resolveSubscriber($subscriber) - { - if (is_string($subscriber)) { - return $this->container->make($subscriber); - } - - return $subscriber; - } - - /** - * Fire an event until the first non-null response is returned. - * - * @param string|object $event - * @param mixed $payload - * @return array|null - */ - public function until($event, $payload = []) - { - return $this->dispatch($event, $payload, true); - } - - /** - * Fire an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - public function fire($event, $payload = [], $halt = false) - { - return $this->dispatch($event, $payload, $halt); - } - - /** - * Fire an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - public function dispatch($event, $payload = [], $halt = false) - { - // When the given "event" is actually an object we will assume it is an event - // object and use the class as the event name and this event itself as the - // payload to the handler, which makes object based events quite simple. - list($event, $payload) = $this->parseEventAndPayload( - $event, $payload - ); - - if ($this->shouldBroadcast($payload)) { - $this->broadcastEvent($payload[0]); - } - - $responses = []; - - foreach ($this->getListeners($event) as $listener) { - $response = $listener($event, $payload); - - // If a response is returned from the listener and event halting is enabled - // we will just return this response, and not call the rest of the event - // listeners. Otherwise we will add the response on the response list. - if ($halt && ! is_null($response)) { - return $response; - } - - // If a boolean false is returned from a listener, we will stop propagating - // the event to any further listeners down in the chain, else we keep on - // looping through the listeners and firing every one in our sequence. - if ($response === false) { - break; - } - - $responses[] = $response; - } - - return $halt ? null : $responses; - } - - /** - * Parse the given event and payload and prepare them for dispatching. - * - * @param mixed $event - * @param mixed $payload - * @return array - */ - protected function parseEventAndPayload($event, $payload) - { - if (is_object($event)) { - list($payload, $event) = [[$event], get_class($event)]; - } - - return [$event, Arr::wrap($payload)]; - } - - /** - * Determine if the payload has a broadcastable event. - * - * @param array $payload - * @return bool - */ - protected function shouldBroadcast(array $payload) - { - return isset($payload[0]) && - $payload[0] instanceof ShouldBroadcast && - $this->broadcastWhen($payload[0]); - } - - /** - * Check if event should be broadcasted by condition. - * - * @param mixed $event - * @return bool - */ - protected function broadcastWhen($event) - { - return method_exists($event, 'broadcastWhen') - ? $event->broadcastWhen() : true; - } - - /** - * Broadcast the given event class. - * - * @param \Illuminate\Contracts\Broadcasting\ShouldBroadcast $event - * @return void - */ - protected function broadcastEvent($event) - { - $this->container->make(BroadcastFactory::class)->queue($event); - } - - /** - * Get all of the listeners for a given event name. - * - * @param string $eventName - * @return array - */ - public function getListeners($eventName) - { - $listeners = $this->listeners[$eventName] ?? []; - - $listeners = array_merge( - $listeners, $this->getWildcardListeners($eventName) - ); - - return class_exists($eventName, false) - ? $this->addInterfaceListeners($eventName, $listeners) - : $listeners; - } - - /** - * Get the wildcard listeners for the event. - * - * @param string $eventName - * @return array - */ - protected function getWildcardListeners($eventName) - { - $wildcards = []; - - foreach ($this->wildcards as $key => $listeners) { - if (Str::is($key, $eventName)) { - $wildcards = array_merge($wildcards, $listeners); - } - } - - return $wildcards; - } - - /** - * Add the listeners for the event's interfaces to the given array. - * - * @param string $eventName - * @param array $listeners - * @return array - */ - protected function addInterfaceListeners($eventName, array $listeners = []) - { - foreach (class_implements($eventName) as $interface) { - if (isset($this->listeners[$interface])) { - foreach ($this->listeners[$interface] as $names) { - $listeners = array_merge($listeners, (array) $names); - } - } - } - - return $listeners; - } - - /** - * Register an event listener with the dispatcher. - * - * @param \Closure|string $listener - * @param bool $wildcard - * @return \Closure - */ - public function makeListener($listener, $wildcard = false) - { - if (is_string($listener)) { - return $this->createClassListener($listener, $wildcard); - } - - return function ($event, $payload) use ($listener, $wildcard) { - if ($wildcard) { - return $listener($event, $payload); - } - - return $listener(...array_values($payload)); - }; - } - - /** - * Create a class based listener using the IoC container. - * - * @param string $listener - * @param bool $wildcard - * @return \Closure - */ - public function createClassListener($listener, $wildcard = false) - { - return function ($event, $payload) use ($listener, $wildcard) { - if ($wildcard) { - return call_user_func($this->createClassCallable($listener), $event, $payload); - } - - return call_user_func_array( - $this->createClassCallable($listener), $payload - ); - }; - } - - /** - * Create the class based event callable. - * - * @param string $listener - * @return callable - */ - protected function createClassCallable($listener) - { - list($class, $method) = $this->parseClassCallable($listener); - - if ($this->handlerShouldBeQueued($class)) { - return $this->createQueuedHandlerCallable($class, $method); - } - - return [$this->container->make($class), $method]; - } - - /** - * Parse the class listener into class and method. - * - * @param string $listener - * @return array - */ - protected function parseClassCallable($listener) - { - return Str::parseCallback($listener, 'handle'); - } - - /** - * Determine if the event handler class should be queued. - * - * @param string $class - * @return bool - */ - protected function handlerShouldBeQueued($class) - { - try { - return (new ReflectionClass($class))->implementsInterface( - ShouldQueue::class - ); - } catch (Exception $e) { - return false; - } - } - - /** - * Create a callable for putting an event handler on the queue. - * - * @param string $class - * @param string $method - * @return \Closure - */ - protected function createQueuedHandlerCallable($class, $method) - { - return function () use ($class, $method) { - $arguments = array_map(function ($a) { - return is_object($a) ? clone $a : $a; - }, func_get_args()); - - if ($this->handlerWantsToBeQueued($class, $arguments)) { - $this->queueHandler($class, $method, $arguments); - } - }; - } - - /** - * Determine if the event handler wants to be queued. - * - * @param string $class - * @param array $arguments - * @return bool - */ - protected function handlerWantsToBeQueued($class, $arguments) - { - if (method_exists($class, 'shouldQueue')) { - return $this->container->make($class)->shouldQueue($arguments[0]); - } - - return true; - } - - /** - * Queue the handler class. - * - * @param string $class - * @param string $method - * @param array $arguments - * @return void - */ - protected function queueHandler($class, $method, $arguments) - { - list($listener, $job) = $this->createListenerAndJob($class, $method, $arguments); - - $connection = $this->resolveQueue()->connection( - $listener->connection ?? null - ); - - $queue = $listener->queue ?? null; - - isset($listener->delay) - ? $connection->laterOn($queue, $listener->delay, $job) - : $connection->pushOn($queue, $job); - } - - /** - * Create the listener and job for a queued listener. - * - * @param string $class - * @param string $method - * @param array $arguments - * @return array - */ - protected function createListenerAndJob($class, $method, $arguments) - { - $listener = (new ReflectionClass($class))->newInstanceWithoutConstructor(); - - return [$listener, $this->propagateListenerOptions( - $listener, new CallQueuedListener($class, $method, $arguments) - )]; - } - - /** - * Propagate listener options to the job. - * - * @param mixed $listener - * @param mixed $job - * @return mixed - */ - protected function propagateListenerOptions($listener, $job) - { - return tap($job, function ($job) use ($listener) { - $job->tries = $listener->tries ?? null; - $job->timeout = $listener->timeout ?? null; - $job->timeoutAt = method_exists($listener, 'retryUntil') - ? $listener->retryUntil() : null; - }); - } - - /** - * Remove a set of listeners from the dispatcher. - * - * @param string $event - * @return void - */ - public function forget($event) - { - if (Str::contains($event, '*')) { - unset($this->wildcards[$event]); - } else { - unset($this->listeners[$event]); - } - } - - /** - * Forget all of the pushed listeners. - * - * @return void - */ - public function forgetPushed() - { - foreach ($this->listeners as $key => $value) { - if (Str::endsWith($key, '_pushed')) { - $this->forget($key); - } - } - } - - /** - * Get the queue implementation from the resolver. - * - * @return \Illuminate\Contracts\Queue\Queue - */ - protected function resolveQueue() - { - return call_user_func($this->queueResolver); - } - - /** - * Set the queue resolver implementation. - * - * @param callable $resolver - * @return $this - */ - public function setQueueResolver(callable $resolver) - { - $this->queueResolver = $resolver; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php deleted file mode 100755 index fa3ed6f6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php +++ /dev/null @@ -1,23 +0,0 @@ -app->singleton('events', function ($app) { - return (new Dispatcher($app))->setQueueResolver(function () use ($app) { - return $app->make(QueueFactoryContract::class); - }); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Events/composer.json b/vendor/laravel/framework/src/Illuminate/Events/composer.json deleted file mode 100755 index 772cab00..00000000 --- a/vendor/laravel/framework/src/Illuminate/Events/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/events", - "description": "The Illuminate Events package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/container": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Events\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php b/vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php deleted file mode 100644 index deb5fe5d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php +++ /dev/null @@ -1,77 +0,0 @@ -key = $key; - $this->repository = $repository; - - if (! is_null($expire)) { - $this->expire = (int) ceil($expire / 60); - } - } - - /** - * Load the cache. - * - * @return void - */ - public function load() - { - $contents = $this->repository->get($this->key); - - if (! is_null($contents)) { - $this->setFromStorage($contents); - } - } - - /** - * Persist the cache. - * - * @return void - */ - public function save() - { - $contents = $this->getForStorage(); - - if (! is_null($this->expire)) { - $this->repository->put($this->key, $contents, $this->expire); - } else { - $this->repository->forever($this->key, $contents); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php b/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php deleted file mode 100644 index 75ce9d08..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php +++ /dev/null @@ -1,566 +0,0 @@ -isFile($path)) { - return $lock ? $this->sharedGet($path) : file_get_contents($path); - } - - throw new FileNotFoundException("File does not exist at path {$path}"); - } - - /** - * Get contents of a file with shared access. - * - * @param string $path - * @return string - */ - public function sharedGet($path) - { - $contents = ''; - - $handle = fopen($path, 'rb'); - - if ($handle) { - try { - if (flock($handle, LOCK_SH)) { - clearstatcache(true, $path); - - $contents = fread($handle, $this->size($path) ?: 1); - - flock($handle, LOCK_UN); - } - } finally { - fclose($handle); - } - } - - return $contents; - } - - /** - * Get the returned value of a file. - * - * @param string $path - * @return mixed - * - * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - */ - public function getRequire($path) - { - if ($this->isFile($path)) { - return require $path; - } - - throw new FileNotFoundException("File does not exist at path {$path}"); - } - - /** - * Require the given file once. - * - * @param string $file - * @return mixed - */ - public function requireOnce($file) - { - require_once $file; - } - - /** - * Get the MD5 hash of the file at the given path. - * - * @param string $path - * @return string - */ - public function hash($path) - { - return md5_file($path); - } - - /** - * Write the contents of a file. - * - * @param string $path - * @param string $contents - * @param bool $lock - * @return int - */ - public function put($path, $contents, $lock = false) - { - return file_put_contents($path, $contents, $lock ? LOCK_EX : 0); - } - - /** - * Prepend to a file. - * - * @param string $path - * @param string $data - * @return int - */ - public function prepend($path, $data) - { - if ($this->exists($path)) { - return $this->put($path, $data.$this->get($path)); - } - - return $this->put($path, $data); - } - - /** - * Append to a file. - * - * @param string $path - * @param string $data - * @return int - */ - public function append($path, $data) - { - return file_put_contents($path, $data, FILE_APPEND); - } - - /** - * Get or set UNIX mode of a file or directory. - * - * @param string $path - * @param int $mode - * @return mixed - */ - public function chmod($path, $mode = null) - { - if ($mode) { - return chmod($path, $mode); - } - - return substr(sprintf('%o', fileperms($path)), -4); - } - - /** - * Delete the file at a given path. - * - * @param string|array $paths - * @return bool - */ - public function delete($paths) - { - $paths = is_array($paths) ? $paths : func_get_args(); - - $success = true; - - foreach ($paths as $path) { - try { - if (! @unlink($path)) { - $success = false; - } - } catch (ErrorException $e) { - $success = false; - } - } - - return $success; - } - - /** - * Move a file to a new location. - * - * @param string $path - * @param string $target - * @return bool - */ - public function move($path, $target) - { - return rename($path, $target); - } - - /** - * Copy a file to a new location. - * - * @param string $path - * @param string $target - * @return bool - */ - public function copy($path, $target) - { - return copy($path, $target); - } - - /** - * Create a hard link to the target file or directory. - * - * @param string $target - * @param string $link - * @return void - */ - public function link($target, $link) - { - if (! windows_os()) { - return symlink($target, $link); - } - - $mode = $this->isDirectory($target) ? 'J' : 'H'; - - exec("mklink /{$mode} \"{$link}\" \"{$target}\""); - } - - /** - * Extract the file name from a file path. - * - * @param string $path - * @return string - */ - public function name($path) - { - return pathinfo($path, PATHINFO_FILENAME); - } - - /** - * Extract the trailing name component from a file path. - * - * @param string $path - * @return string - */ - public function basename($path) - { - return pathinfo($path, PATHINFO_BASENAME); - } - - /** - * Extract the parent directory from a file path. - * - * @param string $path - * @return string - */ - public function dirname($path) - { - return pathinfo($path, PATHINFO_DIRNAME); - } - - /** - * Extract the file extension from a file path. - * - * @param string $path - * @return string - */ - public function extension($path) - { - return pathinfo($path, PATHINFO_EXTENSION); - } - - /** - * Get the file type of a given file. - * - * @param string $path - * @return string - */ - public function type($path) - { - return filetype($path); - } - - /** - * Get the mime-type of a given file. - * - * @param string $path - * @return string|false - */ - public function mimeType($path) - { - return finfo_file(finfo_open(FILEINFO_MIME_TYPE), $path); - } - - /** - * Get the file size of a given file. - * - * @param string $path - * @return int - */ - public function size($path) - { - return filesize($path); - } - - /** - * Get the file's last modification time. - * - * @param string $path - * @return int - */ - public function lastModified($path) - { - return filemtime($path); - } - - /** - * Determine if the given path is a directory. - * - * @param string $directory - * @return bool - */ - public function isDirectory($directory) - { - return is_dir($directory); - } - - /** - * Determine if the given path is readable. - * - * @param string $path - * @return bool - */ - public function isReadable($path) - { - return is_readable($path); - } - - /** - * Determine if the given path is writable. - * - * @param string $path - * @return bool - */ - public function isWritable($path) - { - return is_writable($path); - } - - /** - * Determine if the given path is a file. - * - * @param string $file - * @return bool - */ - public function isFile($file) - { - return is_file($file); - } - - /** - * Find path names matching a given pattern. - * - * @param string $pattern - * @param int $flags - * @return array - */ - public function glob($pattern, $flags = 0) - { - return glob($pattern, $flags); - } - - /** - * Get an array of all files in a directory. - * - * @param string $directory - * @param bool $hidden - * @return \Symfony\Component\Finder\SplFileInfo[] - */ - public function files($directory, $hidden = false) - { - return iterator_to_array( - Finder::create()->files()->ignoreDotFiles(! $hidden)->in($directory)->depth(0), - false - ); - } - - /** - * Get all of the files from the given directory (recursive). - * - * @param string $directory - * @param bool $hidden - * @return \Symfony\Component\Finder\SplFileInfo[] - */ - public function allFiles($directory, $hidden = false) - { - return iterator_to_array( - Finder::create()->files()->ignoreDotFiles(! $hidden)->in($directory), - false - ); - } - - /** - * Get all of the directories within a given directory. - * - * @param string $directory - * @return array - */ - public function directories($directory) - { - $directories = []; - - foreach (Finder::create()->in($directory)->directories()->depth(0) as $dir) { - $directories[] = $dir->getPathname(); - } - - return $directories; - } - - /** - * Create a directory. - * - * @param string $path - * @param int $mode - * @param bool $recursive - * @param bool $force - * @return bool - */ - public function makeDirectory($path, $mode = 0755, $recursive = false, $force = false) - { - if ($force) { - return @mkdir($path, $mode, $recursive); - } - - return mkdir($path, $mode, $recursive); - } - - /** - * Move a directory. - * - * @param string $from - * @param string $to - * @param bool $overwrite - * @return bool - */ - public function moveDirectory($from, $to, $overwrite = false) - { - if ($overwrite && $this->isDirectory($to)) { - if (! $this->deleteDirectory($to)) { - return false; - } - } - - return @rename($from, $to) === true; - } - - /** - * Copy a directory from one location to another. - * - * @param string $directory - * @param string $destination - * @param int $options - * @return bool - */ - public function copyDirectory($directory, $destination, $options = null) - { - if (! $this->isDirectory($directory)) { - return false; - } - - $options = $options ?: FilesystemIterator::SKIP_DOTS; - - // If the destination directory does not actually exist, we will go ahead and - // create it recursively, which just gets the destination prepared to copy - // the files over. Once we make the directory we'll proceed the copying. - if (! $this->isDirectory($destination)) { - $this->makeDirectory($destination, 0777, true); - } - - $items = new FilesystemIterator($directory, $options); - - foreach ($items as $item) { - // As we spin through items, we will check to see if the current file is actually - // a directory or a file. When it is actually a directory we will need to call - // back into this function recursively to keep copying these nested folders. - $target = $destination.'/'.$item->getBasename(); - - if ($item->isDir()) { - $path = $item->getPathname(); - - if (! $this->copyDirectory($path, $target, $options)) { - return false; - } - } - - // If the current items is just a regular file, we will just copy this to the new - // location and keep looping. If for some reason the copy fails we'll bail out - // and return false, so the developer is aware that the copy process failed. - else { - if (! $this->copy($item->getPathname(), $target)) { - return false; - } - } - } - - return true; - } - - /** - * Recursively delete a directory. - * - * The directory itself may be optionally preserved. - * - * @param string $directory - * @param bool $preserve - * @return bool - */ - public function deleteDirectory($directory, $preserve = false) - { - if (! $this->isDirectory($directory)) { - return false; - } - - $items = new FilesystemIterator($directory); - - foreach ($items as $item) { - // If the item is a directory, we can just recurse into the function and - // delete that sub-directory otherwise we'll just delete the file and - // keep iterating through each file until the directory is cleaned. - if ($item->isDir() && ! $item->isLink()) { - $this->deleteDirectory($item->getPathname()); - } - - // If the item is just a file, we can go ahead and delete it since we're - // just looping through and waxing all of the files in this directory - // and calling directories recursively, so we delete the real path. - else { - $this->delete($item->getPathname()); - } - } - - if (! $preserve) { - @rmdir($directory); - } - - return true; - } - - /** - * Empty the specified directory of all files and folders. - * - * @param string $directory - * @return bool - */ - public function cleanDirectory($directory) - { - return $this->deleteDirectory($directory, true); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php deleted file mode 100644 index 81653450..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php +++ /dev/null @@ -1,684 +0,0 @@ -driver = $driver; - } - - /** - * Assert that the given file exists. - * - * @param string $path - * @return void - */ - public function assertExists($path) - { - PHPUnit::assertTrue( - $this->exists($path), "Unable to find a file at path [{$path}]." - ); - } - - /** - * Assert that the given file does not exist. - * - * @param string $path - * @return void - */ - public function assertMissing($path) - { - PHPUnit::assertFalse( - $this->exists($path), "Found unexpected file at path [{$path}]." - ); - } - - /** - * Determine if a file exists. - * - * @param string $path - * @return bool - */ - public function exists($path) - { - return $this->driver->has($path); - } - - /** - * Get the full path for the file at the given "short" path. - * - * @param string $path - * @return string - */ - public function path($path) - { - return $this->driver->getAdapter()->getPathPrefix().$path; - } - - /** - * Get the contents of a file. - * - * @param string $path - * @return string - * - * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - */ - public function get($path) - { - try { - return $this->driver->read($path); - } catch (FileNotFoundException $e) { - throw new ContractFileNotFoundException($path, $e->getCode(), $e); - } - } - - /** - * Create a streamed response for a given file. - * - * @param string $path - * @param string|null $name - * @param array|null $headers - * @param string|null $disposition - * @return \Symfony\Component\HttpFoundation\StreamedResponse - */ - public function response($path, $name = null, array $headers = [], $disposition = 'inline') - { - $response = new StreamedResponse; - - $disposition = $response->headers->makeDisposition($disposition, $name ?? basename($path)); - - $response->headers->replace($headers + [ - 'Content-Type' => $this->mimeType($path), - 'Content-Length' => $this->size($path), - 'Content-Disposition' => $disposition, - ]); - - $response->setCallback(function () use ($path) { - $stream = $this->driver->readStream($path); - fpassthru($stream); - fclose($stream); - }); - - return $response; - } - - /** - * Create a streamed download response for a given file. - * - * @param string $path - * @param string|null $name - * @param array|null $headers - * @return \Symfony\Component\HttpFoundation\StreamedResponse - */ - public function download($path, $name = null, array $headers = []) - { - return $this->response($path, $name, $headers, 'attachment'); - } - - /** - * Write the contents of a file. - * - * @param string $path - * @param string|resource $contents - * @param mixed $options - * @return bool - */ - public function put($path, $contents, $options = []) - { - $options = is_string($options) - ? ['visibility' => $options] - : (array) $options; - - // If the given contents is actually a file or uploaded file instance than we will - // automatically store the file using a stream. This provides a convenient path - // for the developer to store streams without managing them manually in code. - if ($contents instanceof File || - $contents instanceof UploadedFile) { - return $this->putFile($path, $contents, $options); - } - - return is_resource($contents) - ? $this->driver->putStream($path, $contents, $options) - : $this->driver->put($path, $contents, $options); - } - - /** - * Store the uploaded file on the disk. - * - * @param string $path - * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile $file - * @param array $options - * @return string|false - */ - public function putFile($path, $file, $options = []) - { - return $this->putFileAs($path, $file, $file->hashName(), $options); - } - - /** - * Store the uploaded file on the disk with a given name. - * - * @param string $path - * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile $file - * @param string $name - * @param array $options - * @return string|false - */ - public function putFileAs($path, $file, $name, $options = []) - { - $stream = fopen($file->getRealPath(), 'r+'); - - // Next, we will format the path of the file and store the file using a stream since - // they provide better performance than alternatives. Once we write the file this - // stream will get closed automatically by us so the developer doesn't have to. - $result = $this->put( - $path = trim($path.'/'.$name, '/'), $stream, $options - ); - - if (is_resource($stream)) { - fclose($stream); - } - - return $result ? $path : false; - } - - /** - * Get the visibility for the given path. - * - * @param string $path - * @return string - */ - public function getVisibility($path) - { - if ($this->driver->getVisibility($path) == AdapterInterface::VISIBILITY_PUBLIC) { - return FilesystemContract::VISIBILITY_PUBLIC; - } - - return FilesystemContract::VISIBILITY_PRIVATE; - } - - /** - * Set the visibility for the given path. - * - * @param string $path - * @param string $visibility - * @return void - */ - public function setVisibility($path, $visibility) - { - return $this->driver->setVisibility($path, $this->parseVisibility($visibility)); - } - - /** - * Prepend to a file. - * - * @param string $path - * @param string $data - * @param string $separator - * @return int - */ - public function prepend($path, $data, $separator = PHP_EOL) - { - if ($this->exists($path)) { - return $this->put($path, $data.$separator.$this->get($path)); - } - - return $this->put($path, $data); - } - - /** - * Append to a file. - * - * @param string $path - * @param string $data - * @param string $separator - * @return int - */ - public function append($path, $data, $separator = PHP_EOL) - { - if ($this->exists($path)) { - return $this->put($path, $this->get($path).$separator.$data); - } - - return $this->put($path, $data); - } - - /** - * Delete the file at a given path. - * - * @param string|array $paths - * @return bool - */ - public function delete($paths) - { - $paths = is_array($paths) ? $paths : func_get_args(); - - $success = true; - - foreach ($paths as $path) { - try { - if (! $this->driver->delete($path)) { - $success = false; - } - } catch (FileNotFoundException $e) { - $success = false; - } - } - - return $success; - } - - /** - * Copy a file to a new location. - * - * @param string $from - * @param string $to - * @return bool - */ - public function copy($from, $to) - { - return $this->driver->copy($from, $to); - } - - /** - * Move a file to a new location. - * - * @param string $from - * @param string $to - * @return bool - */ - public function move($from, $to) - { - return $this->driver->rename($from, $to); - } - - /** - * Get the file size of a given file. - * - * @param string $path - * @return int - */ - public function size($path) - { - return $this->driver->getSize($path); - } - - /** - * Get the mime-type of a given file. - * - * @param string $path - * @return string|false - */ - public function mimeType($path) - { - return $this->driver->getMimetype($path); - } - - /** - * Get the file's last modification time. - * - * @param string $path - * @return int - */ - public function lastModified($path) - { - return $this->driver->getTimestamp($path); - } - - /** - * Get the URL for the file at the given path. - * - * @param string $path - * @return string - */ - public function url($path) - { - $adapter = $this->driver->getAdapter(); - - if ($adapter instanceof CachedAdapter) { - $adapter = $adapter->getAdapter(); - } - - if (method_exists($adapter, 'getUrl')) { - return $adapter->getUrl($path); - } elseif ($adapter instanceof AwsS3Adapter) { - return $this->getAwsUrl($adapter, $path); - } elseif ($adapter instanceof RackspaceAdapter) { - return $this->getRackspaceUrl($adapter, $path); - } elseif ($adapter instanceof LocalAdapter) { - return $this->getLocalUrl($path); - } else { - throw new RuntimeException('This driver does not support retrieving URLs.'); - } - } - - /** - * Get the URL for the file at the given path. - * - * @param \League\Flysystem\AwsS3v3\AwsS3Adapter $adapter - * @param string $path - * @return string - */ - protected function getAwsUrl($adapter, $path) - { - // If an explicit base URL has been set on the disk configuration then we will use - // it as the base URL instead of the default path. This allows the developer to - // have full control over the base path for this filesystem's generated URLs. - if (! is_null($url = $this->driver->getConfig()->get('url'))) { - return $this->concatPathToUrl($url, $adapter->getPathPrefix().$path); - } - - return $adapter->getClient()->getObjectUrl( - $adapter->getBucket(), $adapter->getPathPrefix().$path - ); - } - - /** - * Get the URL for the file at the given path. - * - * @param \League\Flysystem\Rackspace\RackspaceAdapter $adapter - * @param string $path - * @return string - */ - protected function getRackspaceUrl($adapter, $path) - { - return (string) $adapter->getContainer()->getObject($path)->getPublicUrl(); - } - - /** - * Get the URL for the file at the given path. - * - * @param string $path - * @return string - */ - protected function getLocalUrl($path) - { - $config = $this->driver->getConfig(); - - // If an explicit base URL has been set on the disk configuration then we will use - // it as the base URL instead of the default path. This allows the developer to - // have full control over the base path for this filesystem's generated URLs. - if ($config->has('url')) { - return $this->concatPathToUrl($config->get('url'), $path); - } - - $path = '/storage/'.$path; - - // If the path contains "storage/public", it probably means the developer is using - // the default disk to generate the path instead of the "public" disk like they - // are really supposed to use. We will remove the public from this path here. - if (Str::contains($path, '/storage/public/')) { - return Str::replaceFirst('/public/', '/', $path); - } - - return $path; - } - - /** - * Get a temporary URL for the file at the given path. - * - * @param string $path - * @param \DateTimeInterface $expiration - * @param array $options - * @return string - */ - public function temporaryUrl($path, $expiration, array $options = []) - { - $adapter = $this->driver->getAdapter(); - - if ($adapter instanceof CachedAdapter) { - $adapter = $adapter->getAdapter(); - } - - if (method_exists($adapter, 'getTemporaryUrl')) { - return $adapter->getTemporaryUrl($path, $expiration, $options); - } elseif ($adapter instanceof AwsS3Adapter) { - return $this->getAwsTemporaryUrl($adapter, $path, $expiration, $options); - } elseif ($adapter instanceof RackspaceAdapter) { - return $this->getRackspaceTemporaryUrl($adapter, $path, $expiration, $options); - } else { - throw new RuntimeException('This driver does not support creating temporary URLs.'); - } - } - - /** - * Get a temporary URL for the file at the given path. - * - * @param \League\Flysystem\AwsS3v3\AwsS3Adapter $adapter - * @param string $path - * @param \DateTimeInterface $expiration - * @param array $options - * @return string - */ - public function getAwsTemporaryUrl($adapter, $path, $expiration, $options) - { - $client = $adapter->getClient(); - - $command = $client->getCommand('GetObject', array_merge([ - 'Bucket' => $adapter->getBucket(), - 'Key' => $adapter->getPathPrefix().$path, - ], $options)); - - return (string) $client->createPresignedRequest( - $command, $expiration - )->getUri(); - } - - /** - * Get a temporary URL for the file at the given path. - * - * @param \League\Flysystem\Rackspace\RackspaceAdapter $adapter - * @param string $path - * @param \DateTimeInterface $expiration - * @param array $options - * @return string - */ - public function getRackspaceTemporaryUrl($adapter, $path, $expiration, $options) - { - return $adapter->getContainer()->getObject($path)->getTemporaryUrl( - Carbon::now()->diffInSeconds($expiration), - $options['method'] ?? 'GET', - $options['forcePublicUrl'] ?? true - ); - } - - /** - * Concatenate a path to a URL. - * - * @param string $url - * @param string $path - * @return string - */ - protected function concatPathToUrl($url, $path) - { - return rtrim($url, '/').'/'.ltrim($path, '/'); - } - - /** - * Get an array of all files in a directory. - * - * @param string|null $directory - * @param bool $recursive - * @return array - */ - public function files($directory = null, $recursive = false) - { - $contents = $this->driver->listContents($directory, $recursive); - - return $this->filterContentsByType($contents, 'file'); - } - - /** - * Get all of the files from the given directory (recursive). - * - * @param string|null $directory - * @return array - */ - public function allFiles($directory = null) - { - return $this->files($directory, true); - } - - /** - * Get all of the directories within a given directory. - * - * @param string|null $directory - * @param bool $recursive - * @return array - */ - public function directories($directory = null, $recursive = false) - { - $contents = $this->driver->listContents($directory, $recursive); - - return $this->filterContentsByType($contents, 'dir'); - } - - /** - * Get all (recursive) of the directories within a given directory. - * - * @param string|null $directory - * @return array - */ - public function allDirectories($directory = null) - { - return $this->directories($directory, true); - } - - /** - * Create a directory. - * - * @param string $path - * @return bool - */ - public function makeDirectory($path) - { - return $this->driver->createDir($path); - } - - /** - * Recursively delete a directory. - * - * @param string $directory - * @return bool - */ - public function deleteDirectory($directory) - { - return $this->driver->deleteDir($directory); - } - - /** - * Flush the Flysystem cache. - * - * @return void - */ - public function flushCache() - { - $adapter = $this->driver->getAdapter(); - - if ($adapter instanceof CachedAdapter) { - $adapter->getCache()->flush(); - } - } - - /** - * Get the Flysystem driver. - * - * @return \League\Flysystem\FilesystemInterface - */ - public function getDriver() - { - return $this->driver; - } - - /** - * Filter directory contents by type. - * - * @param array $contents - * @param string $type - * @return array - */ - protected function filterContentsByType($contents, $type) - { - return Collection::make($contents) - ->where('type', $type) - ->pluck('path') - ->values() - ->all(); - } - - /** - * Parse the given visibility value. - * - * @param string|null $visibility - * @return string|null - * - * @throws \InvalidArgumentException - */ - protected function parseVisibility($visibility) - { - if (is_null($visibility)) { - return; - } - - switch ($visibility) { - case FilesystemContract::VISIBILITY_PUBLIC: - return AdapterInterface::VISIBILITY_PUBLIC; - case FilesystemContract::VISIBILITY_PRIVATE: - return AdapterInterface::VISIBILITY_PRIVATE; - } - - throw new InvalidArgumentException('Unknown visibility: '.$visibility); - } - - /** - * Pass dynamic methods call onto Flysystem. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, array $parameters) - { - return call_user_func_array([$this->driver, $method], $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php deleted file mode 100644 index 37147b3f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php +++ /dev/null @@ -1,370 +0,0 @@ -app = $app; - } - - /** - * Get a filesystem instance. - * - * @param string $name - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function drive($name = null) - { - return $this->disk($name); - } - - /** - * Get a filesystem instance. - * - * @param string $name - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function disk($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return $this->disks[$name] = $this->get($name); - } - - /** - * Get a default cloud filesystem instance. - * - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function cloud() - { - $name = $this->getDefaultCloudDriver(); - - return $this->disks[$name] = $this->get($name); - } - - /** - * Attempt to get the disk from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - protected function get($name) - { - return $this->disks[$name] ?? $this->resolve($name); - } - - /** - * Resolve the given disk. - * - * @param string $name - * @return \Illuminate\Contracts\Filesystem\Filesystem - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($config); - } - - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (method_exists($this, $driverMethod)) { - return $this->{$driverMethod}($config); - } else { - throw new InvalidArgumentException("Driver [{$config['driver']}] is not supported."); - } - } - - /** - * Call a custom driver creator. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - protected function callCustomCreator(array $config) - { - $driver = $this->customCreators[$config['driver']]($this->app, $config); - - if ($driver instanceof FilesystemInterface) { - return $this->adapt($driver); - } - - return $driver; - } - - /** - * Create an instance of the local driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function createLocalDriver(array $config) - { - $permissions = $config['permissions'] ?? []; - - $links = ($config['links'] ?? null) === 'skip' - ? LocalAdapter::SKIP_LINKS - : LocalAdapter::DISALLOW_LINKS; - - return $this->adapt($this->createFlysystem(new LocalAdapter( - $config['root'], LOCK_EX, $links, $permissions - ), $config)); - } - - /** - * Create an instance of the ftp driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function createFtpDriver(array $config) - { - return $this->adapt($this->createFlysystem( - new FtpAdapter($config), $config - )); - } - - /** - * Create an instance of the Amazon S3 driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Cloud - */ - public function createS3Driver(array $config) - { - $s3Config = $this->formatS3Config($config); - - $root = $s3Config['root'] ?? null; - - $options = $config['options'] ?? []; - - return $this->adapt($this->createFlysystem( - new S3Adapter(new S3Client($s3Config), $s3Config['bucket'], $root, $options), $config - )); - } - - /** - * Format the given S3 configuration with the default options. - * - * @param array $config - * @return array - */ - protected function formatS3Config(array $config) - { - $config += ['version' => 'latest']; - - if ($config['key'] && $config['secret']) { - $config['credentials'] = Arr::only($config, ['key', 'secret']); - } - - return $config; - } - - /** - * Create an instance of the Rackspace driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Cloud - */ - public function createRackspaceDriver(array $config) - { - $client = new Rackspace($config['endpoint'], [ - 'username' => $config['username'], 'apiKey' => $config['key'], - ]); - - $root = $config['root'] ?? null; - - return $this->adapt($this->createFlysystem( - new RackspaceAdapter($this->getRackspaceContainer($client, $config), $root), $config - )); - } - - /** - * Get the Rackspace Cloud Files container. - * - * @param \OpenCloud\Rackspace $client - * @param array $config - * @return \OpenCloud\ObjectStore\Resource\Container - */ - protected function getRackspaceContainer(Rackspace $client, array $config) - { - $urlType = $config['url_type'] ?? null; - - $store = $client->objectStoreService('cloudFiles', $config['region'], $urlType); - - return $store->getContainer($config['container']); - } - - /** - * Create a Flysystem instance with the given adapter. - * - * @param \League\Flysystem\AdapterInterface $adapter - * @param array $config - * @return \League\Flysystem\FlysystemInterface - */ - protected function createFlysystem(AdapterInterface $adapter, array $config) - { - $cache = Arr::pull($config, 'cache'); - - $config = Arr::only($config, ['visibility', 'disable_asserts', 'url']); - - if ($cache) { - $adapter = new CachedAdapter($adapter, $this->createCacheStore($cache)); - } - - return new Flysystem($adapter, count($config) > 0 ? $config : null); - } - - /** - * Create a cache store instance. - * - * @param mixed $config - * @return \League\Flysystem\Cached\CacheInterface - * - * @throws \InvalidArgumentException - */ - protected function createCacheStore($config) - { - if ($config === true) { - return new MemoryStore; - } - - return new Cache( - $this->app['cache']->store($config['store']), - $config['prefix'] ?? 'flysystem', - $config['expire'] ?? null - ); - } - - /** - * Adapt the filesystem implementation. - * - * @param \League\Flysystem\FilesystemInterface $filesystem - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - protected function adapt(FilesystemInterface $filesystem) - { - return new FilesystemAdapter($filesystem); - } - - /** - * Set the given disk instance. - * - * @param string $name - * @param mixed $disk - * @return void - */ - public function set($name, $disk) - { - $this->disks[$name] = $disk; - } - - /** - * Get the filesystem connection configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["filesystems.disks.{$name}"]; - } - - /** - * Get the default driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['filesystems.default']; - } - - /** - * Get the default cloud driver name. - * - * @return string - */ - public function getDefaultCloudDriver() - { - return $this->app['config']['filesystems.cloud']; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback; - - return $this; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->disk()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php deleted file mode 100644 index 69322705..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php +++ /dev/null @@ -1,82 +0,0 @@ -registerNativeFilesystem(); - - $this->registerFlysystem(); - } - - /** - * Register the native filesystem implementation. - * - * @return void - */ - protected function registerNativeFilesystem() - { - $this->app->singleton('files', function () { - return new Filesystem; - }); - } - - /** - * Register the driver based filesystem. - * - * @return void - */ - protected function registerFlysystem() - { - $this->registerManager(); - - $this->app->singleton('filesystem.disk', function () { - return $this->app['filesystem']->disk($this->getDefaultDriver()); - }); - - $this->app->singleton('filesystem.cloud', function () { - return $this->app['filesystem']->disk($this->getCloudDriver()); - }); - } - - /** - * Register the filesystem manager. - * - * @return void - */ - protected function registerManager() - { - $this->app->singleton('filesystem', function () { - return new FilesystemManager($this->app); - }); - } - - /** - * Get the default file driver. - * - * @return string - */ - protected function getDefaultDriver() - { - return $this->app['config']['filesystems.default']; - } - - /** - * Get the default cloud based file driver. - * - * @return string - */ - protected function getCloudDriver() - { - return $this->app['config']['filesystems.cloud']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json b/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json deleted file mode 100644 index 3f091942..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "illuminate/filesystem", - "description": "The Illuminate Filesystem package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*", - "symfony/finder": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\Filesystem\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "league/flysystem": "Required to use the Flysystem local and FTP drivers (~1.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", - "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php b/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php deleted file mode 100755 index 63f38913..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php +++ /dev/null @@ -1,243 +0,0 @@ -aliases = $aliases; - } - - /** - * Get or create the singleton alias loader instance. - * - * @param array $aliases - * @return \Illuminate\Foundation\AliasLoader - */ - public static function getInstance(array $aliases = []) - { - if (is_null(static::$instance)) { - return static::$instance = new static($aliases); - } - - $aliases = array_merge(static::$instance->getAliases(), $aliases); - - static::$instance->setAliases($aliases); - - return static::$instance; - } - - /** - * Load a class alias if it is registered. - * - * @param string $alias - * @return bool|null - */ - public function load($alias) - { - if (static::$facadeNamespace && strpos($alias, static::$facadeNamespace) === 0) { - $this->loadFacade($alias); - - return true; - } - - if (isset($this->aliases[$alias])) { - return class_alias($this->aliases[$alias], $alias); - } - } - - /** - * Load a real-time facade for the given alias. - * - * @param string $alias - * @return void - */ - protected function loadFacade($alias) - { - require $this->ensureFacadeExists($alias); - } - - /** - * Ensure that the given alias has an existing real-time facade class. - * - * @param string $alias - * @return string - */ - protected function ensureFacadeExists($alias) - { - if (file_exists($path = storage_path('framework/cache/facade-'.sha1($alias).'.php'))) { - return $path; - } - - file_put_contents($path, $this->formatFacadeStub( - $alias, file_get_contents(__DIR__.'/stubs/facade.stub') - )); - - return $path; - } - - /** - * Format the facade stub with the proper namespace and class. - * - * @param string $alias - * @param string $stub - * @return string - */ - protected function formatFacadeStub($alias, $stub) - { - $replacements = [ - str_replace('/', '\\', dirname(str_replace('\\', '/', $alias))), - class_basename($alias), - substr($alias, strlen(static::$facadeNamespace)), - ]; - - return str_replace( - ['DummyNamespace', 'DummyClass', 'DummyTarget'], $replacements, $stub - ); - } - - /** - * Add an alias to the loader. - * - * @param string $class - * @param string $alias - * @return void - */ - public function alias($class, $alias) - { - $this->aliases[$class] = $alias; - } - - /** - * Register the loader on the auto-loader stack. - * - * @return void - */ - public function register() - { - if (! $this->registered) { - $this->prependToLoaderStack(); - - $this->registered = true; - } - } - - /** - * Prepend the load method to the auto-loader stack. - * - * @return void - */ - protected function prependToLoaderStack() - { - spl_autoload_register([$this, 'load'], true, true); - } - - /** - * Get the registered aliases. - * - * @return array - */ - public function getAliases() - { - return $this->aliases; - } - - /** - * Set the registered aliases. - * - * @param array $aliases - * @return void - */ - public function setAliases(array $aliases) - { - $this->aliases = $aliases; - } - - /** - * Indicates if the loader has been registered. - * - * @return bool - */ - public function isRegistered() - { - return $this->registered; - } - - /** - * Set the "registered" state of the loader. - * - * @param bool $value - * @return void - */ - public function setRegistered($value) - { - $this->registered = $value; - } - - /** - * Set the real-time facade namespace. - * - * @param string $namespace - * @return void - */ - public static function setFacadeNamespace($namespace) - { - static::$facadeNamespace = rtrim($namespace, '\\').'\\'; - } - - /** - * Set the value of the singleton alias loader. - * - * @param \Illuminate\Foundation\AliasLoader $loader - * @return void - */ - public static function setInstance($loader) - { - static::$instance = $loader; - } - - /** - * Clone method. - * - * @return void - */ - private function __clone() - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php b/vendor/laravel/framework/src/Illuminate/Foundation/Application.php deleted file mode 100755 index 48084375..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php +++ /dev/null @@ -1,1196 +0,0 @@ -setBasePath($basePath); - } - - $this->registerBaseBindings(); - - $this->registerBaseServiceProviders(); - - $this->registerCoreContainerAliases(); - } - - /** - * Get the version number of the application. - * - * @return string - */ - public function version() - { - return static::VERSION; - } - - /** - * Register the basic bindings into the container. - * - * @return void - */ - protected function registerBaseBindings() - { - static::setInstance($this); - - $this->instance('app', $this); - - $this->instance(Container::class, $this); - - $this->instance(PackageManifest::class, new PackageManifest( - new Filesystem, $this->basePath(), $this->getCachedPackagesPath() - )); - } - - /** - * Register all of the base service providers. - * - * @return void - */ - protected function registerBaseServiceProviders() - { - $this->register(new EventServiceProvider($this)); - - $this->register(new LogServiceProvider($this)); - - $this->register(new RoutingServiceProvider($this)); - } - - /** - * Run the given array of bootstrap classes. - * - * @param array $bootstrappers - * @return void - */ - public function bootstrapWith(array $bootstrappers) - { - $this->hasBeenBootstrapped = true; - - foreach ($bootstrappers as $bootstrapper) { - $this['events']->fire('bootstrapping: '.$bootstrapper, [$this]); - - $this->make($bootstrapper)->bootstrap($this); - - $this['events']->fire('bootstrapped: '.$bootstrapper, [$this]); - } - } - - /** - * Register a callback to run after loading the environment. - * - * @param \Closure $callback - * @return void - */ - public function afterLoadingEnvironment(Closure $callback) - { - return $this->afterBootstrapping( - LoadEnvironmentVariables::class, $callback - ); - } - - /** - * Register a callback to run before a bootstrapper. - * - * @param string $bootstrapper - * @param \Closure $callback - * @return void - */ - public function beforeBootstrapping($bootstrapper, Closure $callback) - { - $this['events']->listen('bootstrapping: '.$bootstrapper, $callback); - } - - /** - * Register a callback to run after a bootstrapper. - * - * @param string $bootstrapper - * @param \Closure $callback - * @return void - */ - public function afterBootstrapping($bootstrapper, Closure $callback) - { - $this['events']->listen('bootstrapped: '.$bootstrapper, $callback); - } - - /** - * Determine if the application has been bootstrapped before. - * - * @return bool - */ - public function hasBeenBootstrapped() - { - return $this->hasBeenBootstrapped; - } - - /** - * Set the base path for the application. - * - * @param string $basePath - * @return $this - */ - public function setBasePath($basePath) - { - $this->basePath = rtrim($basePath, '\/'); - - $this->bindPathsInContainer(); - - return $this; - } - - /** - * Bind all of the application paths in the container. - * - * @return void - */ - protected function bindPathsInContainer() - { - $this->instance('path', $this->path()); - $this->instance('path.base', $this->basePath()); - $this->instance('path.lang', $this->langPath()); - $this->instance('path.config', $this->configPath()); - $this->instance('path.public', $this->publicPath()); - $this->instance('path.storage', $this->storagePath()); - $this->instance('path.database', $this->databasePath()); - $this->instance('path.resources', $this->resourcePath()); - $this->instance('path.bootstrap', $this->bootstrapPath()); - } - - /** - * Get the path to the application "app" directory. - * - * @param string $path Optionally, a path to append to the app path - * @return string - */ - public function path($path = '') - { - return $this->basePath.DIRECTORY_SEPARATOR.'app'.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the base path of the Laravel installation. - * - * @param string $path Optionally, a path to append to the base path - * @return string - */ - public function basePath($path = '') - { - return $this->basePath.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the path to the bootstrap directory. - * - * @param string $path Optionally, a path to append to the bootstrap path - * @return string - */ - public function bootstrapPath($path = '') - { - return $this->basePath.DIRECTORY_SEPARATOR.'bootstrap'.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the path to the application configuration files. - * - * @param string $path Optionally, a path to append to the config path - * @return string - */ - public function configPath($path = '') - { - return $this->basePath.DIRECTORY_SEPARATOR.'config'.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the path to the database directory. - * - * @param string $path Optionally, a path to append to the database path - * @return string - */ - public function databasePath($path = '') - { - return ($this->databasePath ?: $this->basePath.DIRECTORY_SEPARATOR.'database').($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Set the database directory. - * - * @param string $path - * @return $this - */ - public function useDatabasePath($path) - { - $this->databasePath = $path; - - $this->instance('path.database', $path); - - return $this; - } - - /** - * Get the path to the language files. - * - * @return string - */ - public function langPath() - { - return $this->resourcePath().DIRECTORY_SEPARATOR.'lang'; - } - - /** - * Get the path to the public / web directory. - * - * @return string - */ - public function publicPath() - { - return $this->basePath.DIRECTORY_SEPARATOR.'public'; - } - - /** - * Get the path to the storage directory. - * - * @return string - */ - public function storagePath() - { - return $this->storagePath ?: $this->basePath.DIRECTORY_SEPARATOR.'storage'; - } - - /** - * Set the storage directory. - * - * @param string $path - * @return $this - */ - public function useStoragePath($path) - { - $this->storagePath = $path; - - $this->instance('path.storage', $path); - - return $this; - } - - /** - * Get the path to the resources directory. - * - * @param string $path - * @return string - */ - public function resourcePath($path = '') - { - return $this->basePath.DIRECTORY_SEPARATOR.'resources'.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the path to the environment file directory. - * - * @return string - */ - public function environmentPath() - { - return $this->environmentPath ?: $this->basePath; - } - - /** - * Set the directory for the environment file. - * - * @param string $path - * @return $this - */ - public function useEnvironmentPath($path) - { - $this->environmentPath = $path; - - return $this; - } - - /** - * Set the environment file to be loaded during bootstrapping. - * - * @param string $file - * @return $this - */ - public function loadEnvironmentFrom($file) - { - $this->environmentFile = $file; - - return $this; - } - - /** - * Get the environment file the application is using. - * - * @return string - */ - public function environmentFile() - { - return $this->environmentFile ?: '.env'; - } - - /** - * Get the fully qualified path to the environment file. - * - * @return string - */ - public function environmentFilePath() - { - return $this->environmentPath().'/'.$this->environmentFile(); - } - - /** - * Get or check the current application environment. - * - * @return string|bool - */ - public function environment() - { - if (func_num_args() > 0) { - $patterns = is_array(func_get_arg(0)) ? func_get_arg(0) : func_get_args(); - - foreach ($patterns as $pattern) { - if (Str::is($pattern, $this['env'])) { - return true; - } - } - - return false; - } - - return $this['env']; - } - - /** - * Determine if application is in local environment. - * - * @return bool - */ - public function isLocal() - { - return $this['env'] == 'local'; - } - - /** - * Detect the application's current environment. - * - * @param \Closure $callback - * @return string - */ - public function detectEnvironment(Closure $callback) - { - $args = $_SERVER['argv'] ?? null; - - return $this['env'] = (new EnvironmentDetector)->detect($callback, $args); - } - - /** - * Determine if we are running in the console. - * - * @return bool - */ - public function runningInConsole() - { - return php_sapi_name() == 'cli' || php_sapi_name() == 'phpdbg'; - } - - /** - * Determine if we are running unit tests. - * - * @return bool - */ - public function runningUnitTests() - { - return $this['env'] == 'testing'; - } - - /** - * Register all of the configured providers. - * - * @return void - */ - public function registerConfiguredProviders() - { - $providers = Collection::make($this->config['app.providers']) - ->partition(function ($provider) { - return Str::startsWith($provider, 'Illuminate\\'); - }); - - $providers->splice(1, 0, [$this->make(PackageManifest::class)->providers()]); - - (new ProviderRepository($this, new Filesystem, $this->getCachedServicesPath())) - ->load($providers->collapse()->toArray()); - } - - /** - * Register a service provider with the application. - * - * @param \Illuminate\Support\ServiceProvider|string $provider - * @param array $options - * @param bool $force - * @return \Illuminate\Support\ServiceProvider - */ - public function register($provider, $options = [], $force = false) - { - if (($registered = $this->getProvider($provider)) && ! $force) { - return $registered; - } - - // If the given "provider" is a string, we will resolve it, passing in the - // application instance automatically for the developer. This is simply - // a more convenient way of specifying your service provider classes. - if (is_string($provider)) { - $provider = $this->resolveProvider($provider); - } - - if (method_exists($provider, 'register')) { - $provider->register(); - } - - $this->markAsRegistered($provider); - - // If the application has already booted, we will call this boot method on - // the provider class so it has an opportunity to do its boot logic and - // will be ready for any usage by this developer's application logic. - if ($this->booted) { - $this->bootProvider($provider); - } - - return $provider; - } - - /** - * Get the registered service provider instance if it exists. - * - * @param \Illuminate\Support\ServiceProvider|string $provider - * @return \Illuminate\Support\ServiceProvider|null - */ - public function getProvider($provider) - { - return array_values($this->getProviders($provider))[0] ?? null; - } - - /** - * Get the registered service provider instances if any exist. - * - * @param \Illuminate\Support\ServiceProvider|string $provider - * @return array - */ - public function getProviders($provider) - { - $name = is_string($provider) ? $provider : get_class($provider); - - return Arr::where($this->serviceProviders, function ($value) use ($name) { - return $value instanceof $name; - }); - } - - /** - * Resolve a service provider instance from the class name. - * - * @param string $provider - * @return \Illuminate\Support\ServiceProvider - */ - public function resolveProvider($provider) - { - return new $provider($this); - } - - /** - * Mark the given provider as registered. - * - * @param \Illuminate\Support\ServiceProvider $provider - * @return void - */ - protected function markAsRegistered($provider) - { - $this->serviceProviders[] = $provider; - - $this->loadedProviders[get_class($provider)] = true; - } - - /** - * Load and boot all of the remaining deferred providers. - * - * @return void - */ - public function loadDeferredProviders() - { - // We will simply spin through each of the deferred providers and register each - // one and boot them if the application has booted. This should make each of - // the remaining services available to this application for immediate use. - foreach ($this->deferredServices as $service => $provider) { - $this->loadDeferredProvider($service); - } - - $this->deferredServices = []; - } - - /** - * Load the provider for a deferred service. - * - * @param string $service - * @return void - */ - public function loadDeferredProvider($service) - { - if (! isset($this->deferredServices[$service])) { - return; - } - - $provider = $this->deferredServices[$service]; - - // If the service provider has not already been loaded and registered we can - // register it with the application and remove the service from this list - // of deferred services, since it will already be loaded on subsequent. - if (! isset($this->loadedProviders[$provider])) { - $this->registerDeferredProvider($provider, $service); - } - } - - /** - * Register a deferred provider and service. - * - * @param string $provider - * @param string|null $service - * @return void - */ - public function registerDeferredProvider($provider, $service = null) - { - // Once the provider that provides the deferred service has been registered we - // will remove it from our local list of the deferred services with related - // providers so that this container does not try to resolve it out again. - if ($service) { - unset($this->deferredServices[$service]); - } - - $this->register($instance = new $provider($this)); - - if (! $this->booted) { - $this->booting(function () use ($instance) { - $this->bootProvider($instance); - }); - } - } - - /** - * Resolve the given type from the container. - * - * (Overriding Container::make) - * - * @param string $abstract - * @param array $parameters - * @return mixed - */ - public function make($abstract, array $parameters = []) - { - $abstract = $this->getAlias($abstract); - - if (isset($this->deferredServices[$abstract]) && ! isset($this->instances[$abstract])) { - $this->loadDeferredProvider($abstract); - } - - return parent::make($abstract, $parameters); - } - - /** - * Determine if the given abstract type has been bound. - * - * (Overriding Container::bound) - * - * @param string $abstract - * @return bool - */ - public function bound($abstract) - { - return isset($this->deferredServices[$abstract]) || parent::bound($abstract); - } - - /** - * Determine if the application has booted. - * - * @return bool - */ - public function isBooted() - { - return $this->booted; - } - - /** - * Boot the application's service providers. - * - * @return void - */ - public function boot() - { - if ($this->booted) { - return; - } - - // Once the application has booted we will also fire some "booted" callbacks - // for any listeners that need to do work after this initial booting gets - // finished. This is useful when ordering the boot-up processes we run. - $this->fireAppCallbacks($this->bootingCallbacks); - - array_walk($this->serviceProviders, function ($p) { - $this->bootProvider($p); - }); - - $this->booted = true; - - $this->fireAppCallbacks($this->bootedCallbacks); - } - - /** - * Boot the given service provider. - * - * @param \Illuminate\Support\ServiceProvider $provider - * @return mixed - */ - protected function bootProvider(ServiceProvider $provider) - { - if (method_exists($provider, 'boot')) { - return $this->call([$provider, 'boot']); - } - } - - /** - * Register a new boot listener. - * - * @param mixed $callback - * @return void - */ - public function booting($callback) - { - $this->bootingCallbacks[] = $callback; - } - - /** - * Register a new "booted" listener. - * - * @param mixed $callback - * @return void - */ - public function booted($callback) - { - $this->bootedCallbacks[] = $callback; - - if ($this->isBooted()) { - $this->fireAppCallbacks([$callback]); - } - } - - /** - * Call the booting callbacks for the application. - * - * @param array $callbacks - * @return void - */ - protected function fireAppCallbacks(array $callbacks) - { - foreach ($callbacks as $callback) { - call_user_func($callback, $this); - } - } - - /** - * {@inheritdoc} - */ - public function handle(SymfonyRequest $request, $type = self::MASTER_REQUEST, $catch = true) - { - return $this[HttpKernelContract::class]->handle(Request::createFromBase($request)); - } - - /** - * Determine if middleware has been disabled for the application. - * - * @return bool - */ - public function shouldSkipMiddleware() - { - return $this->bound('middleware.disable') && - $this->make('middleware.disable') === true; - } - - /** - * Get the path to the cached services.php file. - * - * @return string - */ - public function getCachedServicesPath() - { - return $this->bootstrapPath().'/cache/services.php'; - } - - /** - * Get the path to the cached packages.php file. - * - * @return string - */ - public function getCachedPackagesPath() - { - return $this->bootstrapPath().'/cache/packages.php'; - } - - /** - * Determine if the application configuration is cached. - * - * @return bool - */ - public function configurationIsCached() - { - return file_exists($this->getCachedConfigPath()); - } - - /** - * Get the path to the configuration cache file. - * - * @return string - */ - public function getCachedConfigPath() - { - return $this->bootstrapPath().'/cache/config.php'; - } - - /** - * Determine if the application routes are cached. - * - * @return bool - */ - public function routesAreCached() - { - return $this['files']->exists($this->getCachedRoutesPath()); - } - - /** - * Get the path to the routes cache file. - * - * @return string - */ - public function getCachedRoutesPath() - { - return $this->bootstrapPath().'/cache/routes.php'; - } - - /** - * Determine if the application is currently down for maintenance. - * - * @return bool - */ - public function isDownForMaintenance() - { - return file_exists($this->storagePath().'/framework/down'); - } - - /** - * Throw an HttpException with the given data. - * - * @param int $code - * @param string $message - * @param array $headers - * @return void - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - */ - public function abort($code, $message = '', array $headers = []) - { - if ($code == 404) { - throw new NotFoundHttpException($message); - } - - throw new HttpException($code, $message, null, $headers); - } - - /** - * Register a terminating callback with the application. - * - * @param \Closure $callback - * @return $this - */ - public function terminating(Closure $callback) - { - $this->terminatingCallbacks[] = $callback; - - return $this; - } - - /** - * Terminate the application. - * - * @return void - */ - public function terminate() - { - foreach ($this->terminatingCallbacks as $terminating) { - $this->call($terminating); - } - } - - /** - * Get the service providers that have been loaded. - * - * @return array - */ - public function getLoadedProviders() - { - return $this->loadedProviders; - } - - /** - * Get the application's deferred services. - * - * @return array - */ - public function getDeferredServices() - { - return $this->deferredServices; - } - - /** - * Set the application's deferred services. - * - * @param array $services - * @return void - */ - public function setDeferredServices(array $services) - { - $this->deferredServices = $services; - } - - /** - * Add an array of services to the application's deferred services. - * - * @param array $services - * @return void - */ - public function addDeferredServices(array $services) - { - $this->deferredServices = array_merge($this->deferredServices, $services); - } - - /** - * Determine if the given service is a deferred service. - * - * @param string $service - * @return bool - */ - public function isDeferredService($service) - { - return isset($this->deferredServices[$service]); - } - - /** - * Configure the real-time facade namespace. - * - * @param string $namespace - * @return void - */ - public function provideFacades($namespace) - { - AliasLoader::setFacadeNamespace($namespace); - } - - /** - * Define a callback to be used to configure Monolog. - * - * @param callable $callback - * @return $this - */ - public function configureMonologUsing(callable $callback) - { - $this->monologConfigurator = $callback; - - return $this; - } - - /** - * Determine if the application has a custom Monolog configurator. - * - * @return bool - */ - public function hasMonologConfigurator() - { - return ! is_null($this->monologConfigurator); - } - - /** - * Get the custom Monolog configurator for the application. - * - * @return callable - */ - public function getMonologConfigurator() - { - return $this->monologConfigurator; - } - - /** - * Get the current application locale. - * - * @return string - */ - public function getLocale() - { - return $this['config']->get('app.locale'); - } - - /** - * Set the current application locale. - * - * @param string $locale - * @return void - */ - public function setLocale($locale) - { - $this['config']->set('app.locale', $locale); - - $this['translator']->setLocale($locale); - - $this['events']->dispatch(new Events\LocaleUpdated($locale)); - } - - /** - * Determine if application locale is the given locale. - * - * @param string $locale - * @return bool - */ - public function isLocale($locale) - { - return $this->getLocale() == $locale; - } - - /** - * Register the core class aliases in the container. - * - * @return void - */ - public function registerCoreContainerAliases() - { - foreach ([ - 'app' => [\Illuminate\Foundation\Application::class, \Illuminate\Contracts\Container\Container::class, \Illuminate\Contracts\Foundation\Application::class, \Psr\Container\ContainerInterface::class], - 'auth' => [\Illuminate\Auth\AuthManager::class, \Illuminate\Contracts\Auth\Factory::class], - 'auth.driver' => [\Illuminate\Contracts\Auth\Guard::class], - 'blade.compiler' => [\Illuminate\View\Compilers\BladeCompiler::class], - 'cache' => [\Illuminate\Cache\CacheManager::class, \Illuminate\Contracts\Cache\Factory::class], - 'cache.store' => [\Illuminate\Cache\Repository::class, \Illuminate\Contracts\Cache\Repository::class], - 'config' => [\Illuminate\Config\Repository::class, \Illuminate\Contracts\Config\Repository::class], - 'cookie' => [\Illuminate\Cookie\CookieJar::class, \Illuminate\Contracts\Cookie\Factory::class, \Illuminate\Contracts\Cookie\QueueingFactory::class], - 'encrypter' => [\Illuminate\Encryption\Encrypter::class, \Illuminate\Contracts\Encryption\Encrypter::class], - 'db' => [\Illuminate\Database\DatabaseManager::class], - 'db.connection' => [\Illuminate\Database\Connection::class, \Illuminate\Database\ConnectionInterface::class], - 'events' => [\Illuminate\Events\Dispatcher::class, \Illuminate\Contracts\Events\Dispatcher::class], - 'files' => [\Illuminate\Filesystem\Filesystem::class], - 'filesystem' => [\Illuminate\Filesystem\FilesystemManager::class, \Illuminate\Contracts\Filesystem\Factory::class], - 'filesystem.disk' => [\Illuminate\Contracts\Filesystem\Filesystem::class], - 'filesystem.cloud' => [\Illuminate\Contracts\Filesystem\Cloud::class], - 'hash' => [\Illuminate\Contracts\Hashing\Hasher::class], - 'translator' => [\Illuminate\Translation\Translator::class, \Illuminate\Contracts\Translation\Translator::class], - 'log' => [\Illuminate\Log\Writer::class, \Illuminate\Contracts\Logging\Log::class, \Psr\Log\LoggerInterface::class], - 'mailer' => [\Illuminate\Mail\Mailer::class, \Illuminate\Contracts\Mail\Mailer::class, \Illuminate\Contracts\Mail\MailQueue::class], - 'auth.password' => [\Illuminate\Auth\Passwords\PasswordBrokerManager::class, \Illuminate\Contracts\Auth\PasswordBrokerFactory::class], - 'auth.password.broker' => [\Illuminate\Auth\Passwords\PasswordBroker::class, \Illuminate\Contracts\Auth\PasswordBroker::class], - 'queue' => [\Illuminate\Queue\QueueManager::class, \Illuminate\Contracts\Queue\Factory::class, \Illuminate\Contracts\Queue\Monitor::class], - 'queue.connection' => [\Illuminate\Contracts\Queue\Queue::class], - 'queue.failer' => [\Illuminate\Queue\Failed\FailedJobProviderInterface::class], - 'redirect' => [\Illuminate\Routing\Redirector::class], - 'redis' => [\Illuminate\Redis\RedisManager::class, \Illuminate\Contracts\Redis\Factory::class], - 'request' => [\Illuminate\Http\Request::class, \Symfony\Component\HttpFoundation\Request::class], - 'router' => [\Illuminate\Routing\Router::class, \Illuminate\Contracts\Routing\Registrar::class, \Illuminate\Contracts\Routing\BindingRegistrar::class], - 'session' => [\Illuminate\Session\SessionManager::class], - 'session.store' => [\Illuminate\Session\Store::class, \Illuminate\Contracts\Session\Session::class], - 'url' => [\Illuminate\Routing\UrlGenerator::class, \Illuminate\Contracts\Routing\UrlGenerator::class], - 'validator' => [\Illuminate\Validation\Factory::class, \Illuminate\Contracts\Validation\Factory::class], - 'view' => [\Illuminate\View\Factory::class, \Illuminate\Contracts\View\Factory::class], - ] as $key => $aliases) { - foreach ($aliases as $alias) { - $this->alias($key, $alias); - } - } - } - - /** - * Flush the container of all bindings and resolved instances. - * - * @return void - */ - public function flush() - { - parent::flush(); - - $this->buildStack = []; - $this->loadedProviders = []; - $this->bootedCallbacks = []; - $this->bootingCallbacks = []; - $this->deferredServices = []; - $this->reboundCallbacks = []; - $this->serviceProviders = []; - $this->resolvingCallbacks = []; - $this->afterResolvingCallbacks = []; - $this->globalResolvingCallbacks = []; - } - - /** - * Get the application namespace. - * - * @return string - * - * @throws \RuntimeException - */ - public function getNamespace() - { - if (! is_null($this->namespace)) { - return $this->namespace; - } - - $composer = json_decode(file_get_contents(base_path('composer.json')), true); - - foreach ((array) data_get($composer, 'autoload.psr-4') as $namespace => $path) { - foreach ((array) $path as $pathChoice) { - if (realpath(app_path()) == realpath(base_path().'/'.$pathChoice)) { - return $this->namespace = $namespace; - } - } - } - - throw new RuntimeException('Unable to detect application namespace.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php deleted file mode 100644 index 9e8e33bd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php +++ /dev/null @@ -1,44 +0,0 @@ -forUser($this)->check($ability, $arguments); - } - - /** - * Determine if the entity does not have a given ability. - * - * @param string $ability - * @param array|mixed $arguments - * @return bool - */ - public function cant($ability, $arguments = []) - { - return ! $this->can($ability, $arguments); - } - - /** - * Determine if the entity does not have a given ability. - * - * @param string $ability - * @param array|mixed $arguments - * @return bool - */ - public function cannot($ability, $arguments = []) - { - return $this->cant($ability, $arguments); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php deleted file mode 100644 index ece53587..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php +++ /dev/null @@ -1,126 +0,0 @@ -parseAbilityAndArguments($ability, $arguments); - - return app(Gate::class)->authorize($ability, $arguments); - } - - /** - * Authorize a given action for a user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user - * @param mixed $ability - * @param mixed|array $arguments - * @return \Illuminate\Auth\Access\Response - * - * @throws \Illuminate\Auth\Access\AuthorizationException - */ - public function authorizeForUser($user, $ability, $arguments = []) - { - list($ability, $arguments) = $this->parseAbilityAndArguments($ability, $arguments); - - return app(Gate::class)->forUser($user)->authorize($ability, $arguments); - } - - /** - * Guesses the ability's name if it wasn't provided. - * - * @param mixed $ability - * @param mixed|array $arguments - * @return array - */ - protected function parseAbilityAndArguments($ability, $arguments) - { - if (is_string($ability) && strpos($ability, '\\') === false) { - return [$ability, $arguments]; - } - - $method = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3)[2]['function']; - - return [$this->normalizeGuessedAbilityName($method), $ability]; - } - - /** - * Normalize the ability name that has been guessed from the method name. - * - * @param string $ability - * @return string - */ - protected function normalizeGuessedAbilityName($ability) - { - $map = $this->resourceAbilityMap(); - - return $map[$ability] ?? $ability; - } - - /** - * Authorize a resource action based on the incoming request. - * - * @param string $model - * @param string|null $parameter - * @param array $options - * @param \Illuminate\Http\Request|null $request - * @return void - */ - public function authorizeResource($model, $parameter = null, array $options = [], $request = null) - { - $parameter = $parameter ?: Str::snake(class_basename($model)); - - $middleware = []; - - foreach ($this->resourceAbilityMap() as $method => $ability) { - $modelName = in_array($method, $this->resourceMethodsWithoutModels()) ? $model : $parameter; - - $middleware["can:{$ability},{$modelName}"][] = $method; - } - - foreach ($middleware as $middlewareName => $methods) { - $this->middleware($middlewareName, $options)->only($methods); - } - } - - /** - * Get the map of resource methods to ability names. - * - * @return array - */ - protected function resourceAbilityMap() - { - return [ - 'show' => 'view', - 'create' => 'create', - 'store' => 'create', - 'edit' => 'update', - 'update' => 'update', - 'destroy' => 'delete', - ]; - } - - /** - * Get the list of resource methods which do not have model parameters. - * - * @return array - */ - protected function resourceMethodsWithoutModels() - { - return ['index', 'create', 'store']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php deleted file mode 100644 index 00712c13..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php +++ /dev/null @@ -1,169 +0,0 @@ -validateLogin($request); - - // If the class is using the ThrottlesLogins trait, we can automatically throttle - // the login attempts for this application. We'll key this by the username and - // the IP address of the client making these requests into this application. - if ($this->hasTooManyLoginAttempts($request)) { - $this->fireLockoutEvent($request); - - return $this->sendLockoutResponse($request); - } - - if ($this->attemptLogin($request)) { - return $this->sendLoginResponse($request); - } - - // If the login attempt was unsuccessful we will increment the number of attempts - // to login and redirect the user back to the login form. Of course, when this - // user surpasses their maximum number of attempts they will get locked out. - $this->incrementLoginAttempts($request); - - return $this->sendFailedLoginResponse($request); - } - - /** - * Validate the user login request. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function validateLogin(Request $request) - { - $this->validate($request, [ - $this->username() => 'required|string', - 'password' => 'required|string', - ]); - } - - /** - * Attempt to log the user into the application. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function attemptLogin(Request $request) - { - return $this->guard()->attempt( - $this->credentials($request), $request->filled('remember') - ); - } - - /** - * Get the needed authorization credentials from the request. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function credentials(Request $request) - { - return $request->only($this->username(), 'password'); - } - - /** - * Send the response after the user was authenticated. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - protected function sendLoginResponse(Request $request) - { - $request->session()->regenerate(); - - $this->clearLoginAttempts($request); - - return $this->authenticated($request, $this->guard()->user()) - ?: redirect()->intended($this->redirectPath()); - } - - /** - * The user has been authenticated. - * - * @param \Illuminate\Http\Request $request - * @param mixed $user - * @return mixed - */ - protected function authenticated(Request $request, $user) - { - // - } - - /** - * Get the failed login response instance. - * - * @param \Illuminate\Http\Request $request - * @return \Symfony\Component\HttpFoundation\Response - * - * @throws ValidationException - */ - protected function sendFailedLoginResponse(Request $request) - { - throw ValidationException::withMessages([ - $this->username() => [trans('auth.failed')], - ]); - } - - /** - * Get the login username to be used by the controller. - * - * @return string - */ - public function username() - { - return 'email'; - } - - /** - * Log the user out of the application. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - public function logout(Request $request) - { - $this->guard()->logout(); - - $request->session()->invalidate(); - - return redirect('/'); - } - - /** - * Get the guard to be used during authentication. - * - * @return \Illuminate\Contracts\Auth\StatefulGuard - */ - protected function guard() - { - return Auth::guard(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php deleted file mode 100644 index cc992290..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php +++ /dev/null @@ -1,20 +0,0 @@ -redirectTo(); - } - - return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php deleted file mode 100644 index f3238f28..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php +++ /dev/null @@ -1,62 +0,0 @@ -validator($request->all())->validate(); - - event(new Registered($user = $this->create($request->all()))); - - $this->guard()->login($user); - - return $this->registered($request, $user) - ?: redirect($this->redirectPath()); - } - - /** - * Get the guard to be used during registration. - * - * @return \Illuminate\Contracts\Auth\StatefulGuard - */ - protected function guard() - { - return Auth::guard(); - } - - /** - * The user has been registered. - * - * @param \Illuminate\Http\Request $request - * @param mixed $user - * @return mixed - */ - protected function registered(Request $request, $user) - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php deleted file mode 100644 index d8bea843..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php +++ /dev/null @@ -1,161 +0,0 @@ -with( - ['token' => $token, 'email' => $request->email] - ); - } - - /** - * Reset the given user's password. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - public function reset(Request $request) - { - $this->validate($request, $this->rules(), $this->validationErrorMessages()); - - // Here we will attempt to reset the user's password. If it is successful we - // will update the password on an actual user model and persist it to the - // database. Otherwise we will parse the error and return the response. - $response = $this->broker()->reset( - $this->credentials($request), function ($user, $password) { - $this->resetPassword($user, $password); - } - ); - - // If the password was successfully reset, we will redirect the user back to - // the application's home authenticated view. If there is an error we can - // redirect them back to where they came from with their error message. - return $response == Password::PASSWORD_RESET - ? $this->sendResetResponse($response) - : $this->sendResetFailedResponse($request, $response); - } - - /** - * Get the password reset validation rules. - * - * @return array - */ - protected function rules() - { - return [ - 'token' => 'required', - 'email' => 'required|email', - 'password' => 'required|confirmed|min:6', - ]; - } - - /** - * Get the password reset validation error messages. - * - * @return array - */ - protected function validationErrorMessages() - { - return []; - } - - /** - * Get the password reset credentials from the request. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function credentials(Request $request) - { - return $request->only( - 'email', 'password', 'password_confirmation', 'token' - ); - } - - /** - * Reset the given user's password. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @param string $password - * @return void - */ - protected function resetPassword($user, $password) - { - $user->password = Hash::make($password); - - $user->setRememberToken(Str::random(60)); - - $user->save(); - - event(new PasswordReset($user)); - - $this->guard()->login($user); - } - - /** - * Get the response for a successful password reset. - * - * @param string $response - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - protected function sendResetResponse($response) - { - return redirect($this->redirectPath()) - ->with('status', trans($response)); - } - - /** - * Get the response for a failed password reset. - * - * @param \Illuminate\Http\Request $request - * @param string $response - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - protected function sendResetFailedResponse(Request $request, $response) - { - return redirect()->back() - ->withInput($request->only('email')) - ->withErrors(['email' => trans($response)]); - } - - /** - * Get the broker to be used during password reset. - * - * @return \Illuminate\Contracts\Auth\PasswordBroker - */ - public function broker() - { - return Password::broker(); - } - - /** - * Get the guard to be used during password reset. - * - * @return \Illuminate\Contracts\Auth\StatefulGuard - */ - protected function guard() - { - return Auth::guard(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php deleted file mode 100644 index edab2112..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php +++ /dev/null @@ -1,87 +0,0 @@ -validateEmail($request); - - // We will send the password reset link to this user. Once we have attempted - // to send the link, we will examine the response then see the message we - // need to show to the user. Finally, we'll send out a proper response. - $response = $this->broker()->sendResetLink( - $request->only('email') - ); - - return $response == Password::RESET_LINK_SENT - ? $this->sendResetLinkResponse($response) - : $this->sendResetLinkFailedResponse($request, $response); - } - - /** - * Validate the email for the given request. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function validateEmail(Request $request) - { - $this->validate($request, ['email' => 'required|email']); - } - - /** - * Get the response for a successful password reset link. - * - * @param string $response - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - protected function sendResetLinkResponse($response) - { - return back()->with('status', trans($response)); - } - - /** - * Get the response for a failed password reset link. - * - * @param \Illuminate\Http\Request $request - * @param string $response - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - protected function sendResetLinkFailedResponse(Request $request, $response) - { - return back()->withErrors( - ['email' => trans($response)] - ); - } - - /** - * Get the broker to be used during password reset. - * - * @return \Illuminate\Contracts\Auth\PasswordBroker - */ - public function broker() - { - return Password::broker(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php deleted file mode 100644 index 8ba6e289..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php +++ /dev/null @@ -1,120 +0,0 @@ -limiter()->tooManyAttempts( - $this->throttleKey($request), $this->maxAttempts(), $this->decayMinutes() - ); - } - - /** - * Increment the login attempts for the user. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function incrementLoginAttempts(Request $request) - { - $this->limiter()->hit( - $this->throttleKey($request), $this->decayMinutes() - ); - } - - /** - * Redirect the user after determining they are locked out. - * - * @param \Illuminate\Http\Request $request - * @return void - * @throws \Illuminate\Validation\ValidationException - */ - protected function sendLockoutResponse(Request $request) - { - $seconds = $this->limiter()->availableIn( - $this->throttleKey($request) - ); - - throw ValidationException::withMessages([ - $this->username() => [Lang::get('auth.throttle', ['seconds' => $seconds])], - ])->status(423); - } - - /** - * Clear the login locks for the given user credentials. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function clearLoginAttempts(Request $request) - { - $this->limiter()->clear($this->throttleKey($request)); - } - - /** - * Fire an event when a lockout occurs. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function fireLockoutEvent(Request $request) - { - event(new Lockout($request)); - } - - /** - * Get the throttle key for the given request. - * - * @param \Illuminate\Http\Request $request - * @return string - */ - protected function throttleKey(Request $request) - { - return Str::lower($request->input($this->username())).'|'.$request->ip(); - } - - /** - * Get the rate limiter instance. - * - * @return \Illuminate\Cache\RateLimiter - */ - protected function limiter() - { - return app(RateLimiter::class); - } - - /** - * Get the maximum number of attempts to allow. - * - * @return int - */ - public function maxAttempts() - { - return property_exists($this, 'maxAttempts') ? $this->maxAttempts : 5; - } - - /** - * Get the number of minutes to throttle for. - * - * @return int - */ - public function decayMinutes() - { - return property_exists($this, 'decayMinutes') ? $this->decayMinutes : 1; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php deleted file mode 100644 index 5c847785..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php +++ /dev/null @@ -1,19 +0,0 @@ -boot(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php deleted file mode 100644 index b7edb683..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php +++ /dev/null @@ -1,161 +0,0 @@ -app = $app; - - error_reporting(-1); - - set_error_handler([$this, 'handleError']); - - set_exception_handler([$this, 'handleException']); - - register_shutdown_function([$this, 'handleShutdown']); - - if (! $app->environment('testing')) { - ini_set('display_errors', 'Off'); - } - } - - /** - * Convert PHP errors to ErrorException instances. - * - * @param int $level - * @param string $message - * @param string $file - * @param int $line - * @param array $context - * @return void - * - * @throws \ErrorException - */ - public function handleError($level, $message, $file = '', $line = 0, $context = []) - { - if (error_reporting() & $level) { - throw new ErrorException($message, 0, $level, $file, $line); - } - } - - /** - * Handle an uncaught exception from the application. - * - * Note: Most exceptions can be handled via the try / catch block in - * the HTTP and Console kernels. But, fatal error exceptions must - * be handled differently since they are not normal exceptions. - * - * @param \Throwable $e - * @return void - */ - public function handleException($e) - { - if (! $e instanceof Exception) { - $e = new FatalThrowableError($e); - } - - try { - $this->getExceptionHandler()->report($e); - } catch (Exception $e) { - // - } - - if ($this->app->runningInConsole()) { - $this->renderForConsole($e); - } else { - $this->renderHttpResponse($e); - } - } - - /** - * Render an exception to the console. - * - * @param \Exception $e - * @return void - */ - protected function renderForConsole(Exception $e) - { - $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e); - } - - /** - * Render an exception as an HTTP response and send it. - * - * @param \Exception $e - * @return void - */ - protected function renderHttpResponse(Exception $e) - { - $this->getExceptionHandler()->render($this->app['request'], $e)->send(); - } - - /** - * Handle the PHP shutdown event. - * - * @return void - */ - public function handleShutdown() - { - if (! is_null($error = error_get_last()) && $this->isFatal($error['type'])) { - $this->handleException($this->fatalExceptionFromError($error, 0)); - } - } - - /** - * Create a new fatal exception instance from an error array. - * - * @param array $error - * @param int|null $traceOffset - * @return \Symfony\Component\Debug\Exception\FatalErrorException - */ - protected function fatalExceptionFromError(array $error, $traceOffset = null) - { - return new FatalErrorException( - $error['message'], $error['type'], 0, $error['file'], $error['line'], $traceOffset - ); - } - - /** - * Determine if the error type is fatal. - * - * @param int $type - * @return bool - */ - protected function isFatal($type) - { - return in_array($type, [E_COMPILE_ERROR, E_CORE_ERROR, E_ERROR, E_PARSE]); - } - - /** - * Get an instance of the exception handler. - * - * @return \Illuminate\Contracts\Debug\ExceptionHandler - */ - protected function getExceptionHandler() - { - return $this->app->make(ExceptionHandler::class); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php deleted file mode 100644 index 859b1229..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php +++ /dev/null @@ -1,115 +0,0 @@ -getCachedConfigPath())) { - $items = require $cached; - - $loadedFromCache = true; - } - - // Next we will spin through all of the configuration files in the configuration - // directory and load each one into the repository. This will make all of the - // options available to the developer for use in various parts of this app. - $app->instance('config', $config = new Repository($items)); - - if (! isset($loadedFromCache)) { - $this->loadConfigurationFiles($app, $config); - } - - // Finally, we will set the application's environment based on the configuration - // values that were loaded. We will pass a callback which will be used to get - // the environment in a web context where an "--env" switch is not present. - $app->detectEnvironment(function () use ($config) { - return $config->get('app.env', 'production'); - }); - - date_default_timezone_set($config->get('app.timezone', 'UTC')); - - mb_internal_encoding('UTF-8'); - } - - /** - * Load the configuration items from all of the files. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @param \Illuminate\Contracts\Config\Repository $repository - * @return void - * @throws \Exception - */ - protected function loadConfigurationFiles(Application $app, RepositoryContract $repository) - { - $files = $this->getConfigurationFiles($app); - - if (! isset($files['app'])) { - throw new Exception('Unable to load the "app" configuration file.'); - } - - foreach ($files as $key => $path) { - $repository->set($key, require $path); - } - } - - /** - * Get all of the configuration files for the application. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return array - */ - protected function getConfigurationFiles(Application $app) - { - $files = []; - - $configPath = realpath($app->configPath()); - - foreach (Finder::create()->files()->name('*.php')->in($configPath) as $file) { - $directory = $this->getNestedDirectory($file, $configPath); - - $files[$directory.basename($file->getRealPath(), '.php')] = $file->getRealPath(); - } - - ksort($files, SORT_NATURAL); - - return $files; - } - - /** - * Get the configuration file nesting path. - * - * @param \SplFileInfo $file - * @param string $configPath - * @return string - */ - protected function getNestedDirectory(SplFileInfo $file, $configPath) - { - $directory = $file->getPath(); - - if ($nested = trim(str_replace($configPath, '', $directory), DIRECTORY_SEPARATOR)) { - $nested = str_replace(DIRECTORY_SEPARATOR, '.', $nested).'.'; - } - - return $nested; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php deleted file mode 100644 index cc9196dc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php +++ /dev/null @@ -1,75 +0,0 @@ -configurationIsCached()) { - return; - } - - $this->checkForSpecificEnvironmentFile($app); - - try { - (new Dotenv($app->environmentPath(), $app->environmentFile()))->load(); - } catch (InvalidPathException $e) { - // - } - } - - /** - * Detect if a custom environment file matching the APP_ENV exists. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return void - */ - protected function checkForSpecificEnvironmentFile($app) - { - if ($app->runningInConsole() && ($input = new ArgvInput)->hasParameterOption('--env')) { - if ($this->setEnvironmentFilePath( - $app, $app->environmentFile().'.'.$input->getParameterOption('--env') - )) { - return; - } - } - - if (! env('APP_ENV')) { - return; - } - - $this->setEnvironmentFilePath( - $app, $app->environmentFile().'.'.env('APP_ENV') - ); - } - - /** - * Load a custom environment file. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @param string $file - * @return bool - */ - protected function setEnvironmentFilePath($app, $file) - { - if (file_exists($app->environmentPath().'/'.$file)) { - $app->loadEnvironmentFrom($file); - - return true; - } - - return false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php deleted file mode 100644 index 62a42d07..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php +++ /dev/null @@ -1,29 +0,0 @@ -make('config')->get('app.aliases', []), - $app->make(PackageManifest::class)->aliases() - ))->register(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php deleted file mode 100644 index f18375cf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php +++ /dev/null @@ -1,19 +0,0 @@ -registerConfiguredProviders(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php deleted file mode 100644 index fda735ba..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php +++ /dev/null @@ -1,35 +0,0 @@ -make('config')->get('app.url', 'http://localhost'); - - $components = parse_url($uri); - - $server = $_SERVER; - - if (isset($components['path'])) { - $server = array_merge($server, [ - 'SCRIPT_FILENAME' => $components['path'], - 'SCRIPT_NAME' => $components['path'], - ]); - } - - $app->instance('request', Request::create( - $uri, 'GET', [], [], [], $server - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php deleted file mode 100644 index 62c465fe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php +++ /dev/null @@ -1,27 +0,0 @@ -dispatch($job); - } - - /** - * Dispatch a job to its appropriate handler in the current process. - * - * @param mixed $job - * @return mixed - */ - public function dispatchNow($job) - { - return app(Dispatcher::class)->dispatchNow($job); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php deleted file mode 100644 index b3455367..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php +++ /dev/null @@ -1,45 +0,0 @@ -class = $class; - $this->chain = $chain; - } - - /** - * Dispatch the job with the given arguments. - * - * @return \Illuminate\Foundation\Bus\PendingDispatch - */ - public function dispatch() - { - return (new PendingDispatch( - new $this->class(...func_get_args()) - ))->chain($this->chain); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php deleted file mode 100644 index 8ae625aa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php +++ /dev/null @@ -1,114 +0,0 @@ -job = $job; - } - - /** - * Set the desired connection for the job. - * - * @param string|null $connection - * @return $this - */ - public function onConnection($connection) - { - $this->job->onConnection($connection); - - return $this; - } - - /** - * Set the desired queue for the job. - * - * @param string|null $queue - * @return $this - */ - public function onQueue($queue) - { - $this->job->onQueue($queue); - - return $this; - } - - /** - * Set the desired connection for the chain. - * - * @param string|null $connection - * @return $this - */ - public function allOnConnection($connection) - { - $this->job->allOnConnection($connection); - - return $this; - } - - /** - * Set the desired queue for the chain. - * - * @param string|null $queue - * @return $this - */ - public function allOnQueue($queue) - { - $this->job->allOnQueue($queue); - - return $this; - } - - /** - * Set the desired delay for the job. - * - * @param \DateTime|int|null $delay - * @return $this - */ - public function delay($delay) - { - $this->job->delay($delay); - - return $this; - } - - /** - * Set the jobs that should run if this job is successful. - * - * @param array $chain - * @return $this - */ - public function chain($chain) - { - $this->job->chain($chain); - - return $this; - } - - /** - * Handle the object's destruction. - * - * @return void - */ - public function __destruct() - { - app(Dispatcher::class)->dispatch($this->job); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php b/vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php deleted file mode 100644 index fcda187f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php +++ /dev/null @@ -1,65 +0,0 @@ -getComposer()->getConfig()->get('vendor-dir').'/autoload.php'; - - static::clearCompiled(); - } - - /** - * Handle the post-update Composer event. - * - * @param \Composer\Script\Event $event - * @return void - */ - public static function postUpdate(Event $event) - { - require_once $event->getComposer()->getConfig()->get('vendor-dir').'/autoload.php'; - - static::clearCompiled(); - } - - /** - * Handle the post-autoload-dump Composer event. - * - * @param \Composer\Script\Event $event - * @return void - */ - public static function postAutoloadDump(Event $event) - { - require_once $event->getComposer()->getConfig()->get('vendor-dir').'/autoload.php'; - - static::clearCompiled(); - } - - /** - * Clear the cached Laravel bootstrapping files. - * - * @return void - */ - protected static function clearCompiled() - { - $laravel = new Application(getcwd()); - - if (file_exists($servicesPath = $laravel->getCachedServicesPath())) { - @unlink($servicesPath); - } - - if (file_exists($packagesPath = $laravel->getCachedPackagesPath())) { - @unlink($packagesPath); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php deleted file mode 100644 index e92b7a8f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php +++ /dev/null @@ -1,296 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->currentRoot = trim($this->laravel->getNamespace(), '\\'); - - $this->setAppDirectoryNamespace(); - $this->setBootstrapNamespaces(); - $this->setConfigNamespaces(); - $this->setComposerNamespace(); - $this->setDatabaseFactoryNamespaces(); - - $this->info('Application namespace set!'); - - $this->composer->dumpAutoloads(); - - $this->call('clear-compiled'); - } - - /** - * Set the namespace on the files in the app directory. - * - * @return void - */ - protected function setAppDirectoryNamespace() - { - $files = Finder::create() - ->in($this->laravel['path']) - ->contains($this->currentRoot) - ->name('*.php'); - - foreach ($files as $file) { - $this->replaceNamespace($file->getRealPath()); - } - } - - /** - * Replace the App namespace at the given path. - * - * @param string $path - * @return void - */ - protected function replaceNamespace($path) - { - $search = [ - 'namespace '.$this->currentRoot.';', - $this->currentRoot.'\\', - ]; - - $replace = [ - 'namespace '.$this->argument('name').';', - $this->argument('name').'\\', - ]; - - $this->replaceIn($path, $search, $replace); - } - - /** - * Set the bootstrap namespaces. - * - * @return void - */ - protected function setBootstrapNamespaces() - { - $search = [ - $this->currentRoot.'\\Http', - $this->currentRoot.'\\Console', - $this->currentRoot.'\\Exceptions', - ]; - - $replace = [ - $this->argument('name').'\\Http', - $this->argument('name').'\\Console', - $this->argument('name').'\\Exceptions', - ]; - - $this->replaceIn($this->getBootstrapPath(), $search, $replace); - } - - /** - * Set the namespace in the appropriate configuration files. - * - * @return void - */ - protected function setConfigNamespaces() - { - $this->setAppConfigNamespaces(); - $this->setAuthConfigNamespace(); - $this->setServicesConfigNamespace(); - } - - /** - * Set the application provider namespaces. - * - * @return void - */ - protected function setAppConfigNamespaces() - { - $search = [ - $this->currentRoot.'\\Providers', - $this->currentRoot.'\\Http\\Controllers\\', - ]; - - $replace = [ - $this->argument('name').'\\Providers', - $this->argument('name').'\\Http\\Controllers\\', - ]; - - $this->replaceIn($this->getConfigPath('app'), $search, $replace); - } - - /** - * Set the authentication User namespace. - * - * @return void - */ - protected function setAuthConfigNamespace() - { - $this->replaceIn( - $this->getConfigPath('auth'), - $this->currentRoot.'\\User', - $this->argument('name').'\\User' - ); - } - - /** - * Set the services User namespace. - * - * @return void - */ - protected function setServicesConfigNamespace() - { - $this->replaceIn( - $this->getConfigPath('services'), - $this->currentRoot.'\\User', - $this->argument('name').'\\User' - ); - } - - /** - * Set the PSR-4 namespace in the Composer file. - * - * @return void - */ - protected function setComposerNamespace() - { - $this->replaceIn( - $this->getComposerPath(), - str_replace('\\', '\\\\', $this->currentRoot).'\\\\', - str_replace('\\', '\\\\', $this->argument('name')).'\\\\' - ); - } - - /** - * Set the namespace in database factory files. - * - * @return void - */ - protected function setDatabaseFactoryNamespaces() - { - $files = Finder::create() - ->in(database_path('factories')) - ->contains($this->currentRoot) - ->name('*.php'); - - foreach ($files as $file) { - $this->replaceIn( - $file->getRealPath(), - $this->currentRoot, $this->argument('name') - ); - } - } - - /** - * Replace the given string in the given file. - * - * @param string $path - * @param string|array $search - * @param string|array $replace - * @return void - */ - protected function replaceIn($path, $search, $replace) - { - if ($this->files->exists($path)) { - $this->files->put($path, str_replace($search, $replace, $this->files->get($path))); - } - } - - /** - * Get the path to the bootstrap/app.php file. - * - * @return string - */ - protected function getBootstrapPath() - { - return $this->laravel->bootstrapPath().'/app.php'; - } - - /** - * Get the path to the Composer.json file. - * - * @return string - */ - protected function getComposerPath() - { - return base_path('composer.json'); - } - - /** - * Get the path to the given configuration file. - * - * @param string $name - * @return string - */ - protected function getConfigPath($name) - { - return $this->laravel['path.config'].'/'.$name.'.php'; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['name', InputArgument::REQUIRED, 'The desired namespace.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php deleted file mode 100644 index 3aff6d26..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php +++ /dev/null @@ -1,40 +0,0 @@ -laravel->getCachedServicesPath())) { - @unlink($servicesPath); - } - - if (file_exists($packagesPath = $this->laravel->getCachedPackagesPath())) { - @unlink($packagesPath); - } - - $this->info('The compiled services & packages files have been removed.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php deleted file mode 100644 index 1e34b86d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php +++ /dev/null @@ -1,71 +0,0 @@ -callback = $callback; - $this->signature = $signature; - - parent::__construct(); - } - - /** - * Execute the console command. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @return mixed - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $inputs = array_merge($input->getArguments(), $input->getOptions()); - - $parameters = []; - - foreach ((new ReflectionFunction($this->callback))->getParameters() as $parameter) { - if (isset($inputs[$parameter->name])) { - $parameters[$parameter->name] = $inputs[$parameter->name]; - } - } - - return $this->laravel->call( - $this->callback->bindTo($this, $this), $parameters - ); - } - - /** - * Set the description for the command. - * - * @param string $description - * @return $this - */ - public function describe($description) - { - $this->setDescription($description); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php deleted file mode 100644 index edd85ee5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php +++ /dev/null @@ -1,76 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->call('config:clear'); - - $config = $this->getFreshConfiguration(); - - $this->files->put( - $this->laravel->getCachedConfigPath(), 'info('Configuration cached successfully!'); - } - - /** - * Boot a fresh copy of the application configuration. - * - * @return array - */ - protected function getFreshConfiguration() - { - $app = require $this->laravel->bootstrapPath().'/app.php'; - - $app->make(ConsoleKernelContract::class)->bootstrap(); - - return $app['config']->all(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php deleted file mode 100644 index d20e2d85..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php +++ /dev/null @@ -1,55 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->files->delete($this->laravel->getCachedConfigPath()); - - $this->info('Configuration cache cleared!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php deleted file mode 100644 index a9b164b9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php +++ /dev/null @@ -1,90 +0,0 @@ -option('command'), $stub); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return __DIR__.'/stubs/console.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Console\Commands'; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['name', InputArgument::REQUIRED, 'The name of the command.'], - ]; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['command', null, InputOption::VALUE_OPTIONAL, 'The terminal command that should be assigned.', 'command:name'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php deleted file mode 100644 index 0cd685e5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php +++ /dev/null @@ -1,67 +0,0 @@ -getDownFilePayload(), JSON_PRETTY_PRINT) - ); - - $this->comment('Application is now in maintenance mode.'); - } - - /** - * Get the payload to be placed in the "down" file. - * - * @return array - */ - protected function getDownFilePayload() - { - return [ - 'time' => $this->currentTime(), - 'message' => $this->option('message'), - 'retry' => $this->getRetryTime(), - ]; - } - - /** - * Get the number of seconds the client should wait before retrying their request. - * - * @return int|null - */ - protected function getRetryTime() - { - $retry = $this->option('retry'); - - return is_numeric($retry) && $retry > 0 ? (int) $retry : null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php deleted file mode 100644 index ab3bb320..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php +++ /dev/null @@ -1,32 +0,0 @@ -line('Current application environment: '.$this->laravel['env'].''); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php deleted file mode 100644 index 0c6a4a7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php +++ /dev/null @@ -1,78 +0,0 @@ -laravel->getProviders(EventServiceProvider::class); - - foreach ($providers as $provider) { - foreach ($provider->listens() as $event => $listeners) { - $this->makeEventAndListeners($event, $listeners); - } - } - - $this->info('Events and listeners generated successfully!'); - } - - /** - * Make the event and listeners for the given event. - * - * @param string $event - * @param array $listeners - * @return void - */ - protected function makeEventAndListeners($event, $listeners) - { - if (! Str::contains($event, '\\')) { - return; - } - - $this->callSilent('make:event', ['name' => $event]); - - $this->makeListeners($event, $listeners); - } - - /** - * Make the listeners for the given event. - * - * @param string $event - * @param array $listeners - * @return void - */ - protected function makeListeners($event, $listeners) - { - foreach ($listeners as $listener) { - $listener = preg_replace('/@.+$/', '', $listener); - - $this->callSilent('make:listener', array_filter( - ['name' => $listener, '--event' => $event] - )); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php deleted file mode 100644 index f18719aa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php +++ /dev/null @@ -1,61 +0,0 @@ -option('render')) { - return $this->option('report') - ? __DIR__.'/stubs/exception-render-report.stub' - : __DIR__.'/stubs/exception-render.stub'; - } - - return $this->option('report') - ? __DIR__.'/stubs/exception-report.stub' - : __DIR__.'/stubs/exception.stub'; - } - - /** - * Determine if the class already exists. - * - * @param string $rawName - * @return bool - */ - protected function alreadyExists($rawName) - { - return class_exists($this->rootNamespace().'Exceptions\\'.$rawName); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Exceptions'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['render', null, InputOption::VALUE_NONE, 'Create the exception with an empty render method.'], - - ['report', null, InputOption::VALUE_NONE, 'Create the exception with an empty report method.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php deleted file mode 100644 index af006720..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php +++ /dev/null @@ -1,65 +0,0 @@ -option('sync') - ? __DIR__.'/stubs/job.stub' - : __DIR__.'/stubs/job-queued.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Jobs'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['sync', null, InputOption::VALUE_NONE, 'Indicates that job should be synchronous.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php deleted file mode 100644 index fd392537..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php +++ /dev/null @@ -1,366 +0,0 @@ -app = $app; - $this->events = $events; - - $this->app->booted(function () { - $this->defineConsoleSchedule(); - }); - } - - /** - * Define the application's command schedule. - * - * @return void - */ - protected function defineConsoleSchedule() - { - $this->app->singleton(Schedule::class, function ($app) { - return new Schedule; - }); - - $schedule = $this->app->make(Schedule::class); - - $this->schedule($schedule); - } - - /** - * Run the console application. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @return int - */ - public function handle($input, $output = null) - { - try { - $this->bootstrap(); - - return $this->getArtisan()->run($input, $output); - } catch (Exception $e) { - $this->reportException($e); - - $this->renderException($output, $e); - - return 1; - } catch (Throwable $e) { - $e = new FatalThrowableError($e); - - $this->reportException($e); - - $this->renderException($output, $e); - - return 1; - } - } - - /** - * Terminate the application. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param int $status - * @return void - */ - public function terminate($input, $status) - { - $this->app->terminate(); - } - - /** - * Define the application's command schedule. - * - * @param \Illuminate\Console\Scheduling\Schedule $schedule - * @return void - */ - protected function schedule(Schedule $schedule) - { - // - } - - /** - * Register the Closure based commands for the application. - * - * @return void - */ - protected function commands() - { - // - } - - /** - * Register a Closure based command with the application. - * - * @param string $signature - * @param \Closure $callback - * @return \Illuminate\Foundation\Console\ClosureCommand - */ - public function command($signature, Closure $callback) - { - $command = new ClosureCommand($signature, $callback); - - Artisan::starting(function ($artisan) use ($command) { - $artisan->add($command); - }); - - return $command; - } - - /** - * Register all of the commands in the given directory. - * - * @param array|string $paths - * @return void - */ - protected function load($paths) - { - $paths = array_unique(is_array($paths) ? $paths : (array) $paths); - - $paths = array_filter($paths, function ($path) { - return is_dir($path); - }); - - if (empty($paths)) { - return; - } - - $namespace = $this->app->getNamespace(); - - foreach ((new Finder)->in($paths)->files() as $command) { - $command = $namespace.str_replace( - ['/', '.php'], - ['\\', ''], - Str::after($command->getPathname(), app_path().DIRECTORY_SEPARATOR) - ); - - if (is_subclass_of($command, Command::class) && - ! (new ReflectionClass($command))->isAbstract()) { - Artisan::starting(function ($artisan) use ($command) { - $artisan->resolve($command); - }); - } - } - } - - /** - * Register the given command with the console application. - * - * @param \Symfony\Component\Console\Command\Command $command - * @return void - */ - public function registerCommand($command) - { - $this->getArtisan()->add($command); - } - - /** - * Run an Artisan console command by name. - * - * @param string $command - * @param array $parameters - * @param \Symfony\Component\Console\Output\OutputInterface $outputBuffer - * @return int - */ - public function call($command, array $parameters = [], $outputBuffer = null) - { - $this->bootstrap(); - - return $this->getArtisan()->call($command, $parameters, $outputBuffer); - } - - /** - * Queue the given console command. - * - * @param string $command - * @param array $parameters - * @return \Illuminate\Foundation\Bus\PendingDispatch - */ - public function queue($command, array $parameters = []) - { - return QueuedCommand::dispatch(func_get_args()); - } - - /** - * Get all of the commands registered with the console. - * - * @return array - */ - public function all() - { - $this->bootstrap(); - - return $this->getArtisan()->all(); - } - - /** - * Get the output for the last run command. - * - * @return string - */ - public function output() - { - $this->bootstrap(); - - return $this->getArtisan()->output(); - } - - /** - * Bootstrap the application for artisan commands. - * - * @return void - */ - public function bootstrap() - { - if (! $this->app->hasBeenBootstrapped()) { - $this->app->bootstrapWith($this->bootstrappers()); - } - - $this->app->loadDeferredProviders(); - - if (! $this->commandsLoaded) { - $this->commands(); - - $this->commandsLoaded = true; - } - } - - /** - * Get the Artisan application instance. - * - * @return \Illuminate\Console\Application - */ - protected function getArtisan() - { - if (is_null($this->artisan)) { - return $this->artisan = (new Artisan($this->app, $this->events, $this->app->version())) - ->resolveCommands($this->commands); - } - - return $this->artisan; - } - - /** - * Set the Artisan application instance. - * - * @param \Illuminate\Console\Application $artisan - * @return void - */ - public function setArtisan($artisan) - { - $this->artisan = $artisan; - } - - /** - * Get the bootstrap classes for the application. - * - * @return array - */ - protected function bootstrappers() - { - return $this->bootstrappers; - } - - /** - * Report the exception to the exception handler. - * - * @param \Exception $e - * @return void - */ - protected function reportException(Exception $e) - { - $this->app[ExceptionHandler::class]->report($e); - } - - /** - * Report the exception to the exception handler. - * - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @param \Exception $e - * @return void - */ - protected function renderException($output, Exception $e) - { - $this->app[ExceptionHandler::class]->renderForConsole($output, $e); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php deleted file mode 100644 index 52ac6ea0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php +++ /dev/null @@ -1,111 +0,0 @@ -generateRandomKey(); - - if ($this->option('show')) { - return $this->line(''.$key.''); - } - - // Next, we will replace the application key in the environment file so it is - // automatically setup for this developer. This key gets generated using a - // secure random byte generator and is later base64 encoded for storage. - if (! $this->setKeyInEnvironmentFile($key)) { - return; - } - - $this->laravel['config']['app.key'] = $key; - - $this->info("Application key [$key] set successfully."); - } - - /** - * Generate a random key for the application. - * - * @return string - */ - protected function generateRandomKey() - { - return 'base64:'.base64_encode( - Encrypter::generateKey($this->laravel['config']['app.cipher']) - ); - } - - /** - * Set the application key in the environment file. - * - * @param string $key - * @return bool - */ - protected function setKeyInEnvironmentFile($key) - { - $currentKey = $this->laravel['config']['app.key']; - - if (strlen($currentKey) !== 0 && (! $this->confirmToProceed())) { - return false; - } - - $this->writeNewEnvironmentFileWith($key); - - return true; - } - - /** - * Write a new environment file with the given key. - * - * @param string $key - * @return void - */ - protected function writeNewEnvironmentFileWith($key) - { - file_put_contents($this->laravel->environmentFilePath(), preg_replace( - $this->keyReplacementPattern(), - 'APP_KEY='.$key, - file_get_contents($this->laravel->environmentFilePath()) - )); - } - - /** - * Get a regex pattern that will match env APP_KEY with any random key. - * - * @return string - */ - protected function keyReplacementPattern() - { - $escaped = preg_quote('='.$this->laravel['config']['app.key'], '/'); - - return "/^APP_KEY{$escaped}/m"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php deleted file mode 100644 index ce3e25ef..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php +++ /dev/null @@ -1,112 +0,0 @@ -option('event'); - - if (! Str::startsWith($event, [ - $this->laravel->getNamespace(), - 'Illuminate', - '\\', - ])) { - $event = $this->laravel->getNamespace().'Events\\'.$event; - } - - $stub = str_replace( - 'DummyEvent', class_basename($event), parent::buildClass($name) - ); - - return str_replace( - 'DummyFullEvent', $event, $stub - ); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - if ($this->option('queued')) { - return $this->option('event') - ? __DIR__.'/stubs/listener-queued.stub' - : __DIR__.'/stubs/listener-queued-duck.stub'; - } - - return $this->option('event') - ? __DIR__.'/stubs/listener.stub' - : __DIR__.'/stubs/listener-duck.stub'; - } - - /** - * Determine if the class already exists. - * - * @param string $rawName - * @return bool - */ - protected function alreadyExists($rawName) - { - return class_exists($rawName); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Listeners'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['event', 'e', InputOption::VALUE_OPTIONAL, 'The event class being listened for.'], - - ['queued', null, InputOption::VALUE_NONE, 'Indicates the event listener should be queued.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php deleted file mode 100644 index 6b97fa98..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php +++ /dev/null @@ -1,116 +0,0 @@ -option('force')) { - return; - } - - if ($this->option('markdown')) { - $this->writeMarkdownTemplate(); - } - } - - /** - * Write the Markdown template for the mailable. - * - * @return void - */ - protected function writeMarkdownTemplate() - { - $path = resource_path('views/'.str_replace('.', '/', $this->option('markdown'))).'.blade.php'; - - if (! $this->files->isDirectory(dirname($path))) { - $this->files->makeDirectory(dirname($path), 0755, true); - } - - $this->files->put($path, file_get_contents(__DIR__.'/stubs/markdown.stub')); - } - - /** - * Build the class with the given name. - * - * @param string $name - * @return string - */ - protected function buildClass($name) - { - $class = parent::buildClass($name); - - if ($this->option('markdown')) { - $class = str_replace('DummyView', $this->option('markdown'), $class); - } - - return $class; - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->option('markdown') - ? __DIR__.'/stubs/markdown-mail.stub' - : __DIR__.'/stubs/mail.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Mail'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['force', 'f', InputOption::VALUE_NONE, 'Create the class even if the mailable already exists.'], - - ['markdown', 'm', InputOption::VALUE_OPTIONAL, 'Create a new Markdown template for the mailable.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php deleted file mode 100644 index 96427b81..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php +++ /dev/null @@ -1,156 +0,0 @@ -option('force')) { - return; - } - - if ($this->option('all')) { - $this->input->setOption('factory', true); - $this->input->setOption('migration', true); - $this->input->setOption('controller', true); - $this->input->setOption('resource', true); - } - - if ($this->option('factory')) { - $this->createFactory(); - } - - if ($this->option('migration')) { - $this->createMigration(); - } - - if ($this->option('controller') || $this->option('resource')) { - $this->createController(); - } - } - - /** - * Create a model factory for the model. - * - * @return void - */ - protected function createFactory() - { - $this->call('make:factory', [ - 'name' => $this->argument('name').'Factory', - '--model' => $this->argument('name'), - ]); - } - - /** - * Create a migration file for the model. - * - * @return void - */ - protected function createMigration() - { - $table = Str::plural(Str::snake(class_basename($this->argument('name')))); - - $this->call('make:migration', [ - 'name' => "create_{$table}_table", - '--create' => $table, - ]); - } - - /** - * Create a controller for the model. - * - * @return void - */ - protected function createController() - { - $controller = Str::studly(class_basename($this->argument('name'))); - - $modelName = $this->qualifyClass($this->getNameInput()); - - $this->call('make:controller', [ - 'name' => "{$controller}Controller", - '--model' => $this->option('resource') ? $modelName : null, - ]); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - if ($this->option('pivot')) { - return __DIR__.'/stubs/pivot.model.stub'; - } - - return __DIR__.'/stubs/model.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['all', 'a', InputOption::VALUE_NONE, 'Generate a migration, factory, and resource controller for the model'], - - ['controller', 'c', InputOption::VALUE_NONE, 'Create a new controller for the model'], - - ['factory', 'f', InputOption::VALUE_NONE, 'Create a new factory for the model'], - - ['force', null, InputOption::VALUE_NONE, 'Create the class even if the model already exists.'], - - ['migration', 'm', InputOption::VALUE_NONE, 'Create a new migration file for the model.'], - - ['pivot', 'p', InputOption::VALUE_NONE, 'Indicates if the generated model should be a custom intermediate table model.'], - - ['resource', 'r', InputOption::VALUE_NONE, 'Indicates if the generated controller should be a resource controller.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php deleted file mode 100644 index 43c62678..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php +++ /dev/null @@ -1,116 +0,0 @@ -option('force')) { - return; - } - - if ($this->option('markdown')) { - $this->writeMarkdownTemplate(); - } - } - - /** - * Write the Markdown template for the mailable. - * - * @return void - */ - protected function writeMarkdownTemplate() - { - $path = resource_path('views/'.str_replace('.', '/', $this->option('markdown'))).'.blade.php'; - - if (! $this->files->isDirectory(dirname($path))) { - $this->files->makeDirectory(dirname($path), 0755, true); - } - - $this->files->put($path, file_get_contents(__DIR__.'/stubs/markdown.stub')); - } - - /** - * Build the class with the given name. - * - * @param string $name - * @return string - */ - protected function buildClass($name) - { - $class = parent::buildClass($name); - - if ($this->option('markdown')) { - $class = str_replace('DummyView', $this->option('markdown'), $class); - } - - return $class; - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->option('markdown') - ? __DIR__.'/stubs/markdown-notification.stub' - : __DIR__.'/stubs/notification.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Notifications'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['force', 'f', InputOption::VALUE_NONE, 'Create the class even if the notification already exists.'], - - ['markdown', 'm', InputOption::VALUE_OPTIONAL, 'Create a new Markdown template for the notification.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php deleted file mode 100644 index 1694d583..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php +++ /dev/null @@ -1,47 +0,0 @@ -build(); - - foreach (array_keys($manifest->manifest) as $package) { - $this->line("Discovered Package: {$package}"); - } - - $this->info('Package manifest generated successfully.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php deleted file mode 100644 index 3f31ab4c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php +++ /dev/null @@ -1,140 +0,0 @@ -replaceUserNamespace( - parent::buildClass($name) - ); - - $model = $this->option('model'); - - return $model ? $this->replaceModel($stub, $model) : $stub; - } - - /** - * Replace the User model namespace. - * - * @param string $stub - * @return string - */ - protected function replaceUserNamespace($stub) - { - if (! config('auth.providers.users.model')) { - return $stub; - } - - return str_replace( - $this->rootNamespace().'User', - config('auth.providers.users.model'), - $stub - ); - } - - /** - * Replace the model for the given stub. - * - * @param string $stub - * @param string $model - * @return string - */ - protected function replaceModel($stub, $model) - { - $model = str_replace('/', '\\', $model); - - $namespaceModel = $this->laravel->getNamespace().$model; - - if (Str::startsWith($model, '\\')) { - $stub = str_replace('NamespacedDummyModel', trim($model, '\\'), $stub); - } else { - $stub = str_replace('NamespacedDummyModel', $namespaceModel, $stub); - } - - $stub = str_replace( - "use {$namespaceModel};\nuse {$namespaceModel};", "use {$namespaceModel};", $stub - ); - - $model = class_basename(trim($model, '\\')); - - $dummyUser = class_basename(config('auth.providers.users.model')); - - $dummyModel = Str::camel($model) === 'user' ? 'model' : Str::camel($model); - - $stub = str_replace('DummyModel', $model, $stub); - - $stub = str_replace('dummyModel', $dummyModel, $stub); - - $stub = str_replace('DummyUser', $dummyUser, $stub); - - return str_replace('dummyPluralModel', Str::plural($dummyModel), $stub); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->option('model') - ? __DIR__.'/stubs/policy.stub' - : __DIR__.'/stubs/policy.plain.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Policies'; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getOptions() - { - return [ - ['model', 'm', InputOption::VALUE_OPTIONAL, 'The model that the policy applies to.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php deleted file mode 100644 index e43abe34..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php +++ /dev/null @@ -1,92 +0,0 @@ -argument('type'))) { - return call_user_func(static::$macros[$this->argument('type')], $this); - } - - if (! in_array($this->argument('type'), ['none', 'bootstrap', 'vue', 'react'])) { - throw new InvalidArgumentException('Invalid preset.'); - } - - return $this->{$this->argument('type')}(); - } - - /** - * Install the "fresh" preset. - * - * @return void - */ - protected function none() - { - Presets\None::install(); - - $this->info('Frontend scaffolding removed successfully.'); - } - - /** - * Install the "bootstrap" preset. - * - * @return void - */ - protected function bootstrap() - { - Presets\Bootstrap::install(); - - $this->info('Bootstrap scaffolding installed successfully.'); - $this->comment('Please run "npm install && npm run dev" to compile your fresh scaffolding.'); - } - - /** - * Install the "vue" preset. - * - * @return void - */ - protected function vue() - { - Presets\Vue::install(); - - $this->info('Vue scaffolding installed successfully.'); - $this->comment('Please run "npm install && npm run dev" to compile your fresh scaffolding.'); - } - - /** - * Install the "react" preset. - * - * @return void - */ - protected function react() - { - Presets\React::install(); - - $this->info('React scaffolding installed successfully.'); - $this->comment('Please run "npm install && npm run dev" to compile your fresh scaffolding.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php deleted file mode 100644 index 36004f0d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php +++ /dev/null @@ -1,43 +0,0 @@ - '^3.3.7', - 'jquery' => '^3.1.1', - ] + $packages; - } - - /** - * Update the Sass files for the application. - * - * @return void - */ - protected static function updateSass() - { - copy(__DIR__.'/bootstrap-stubs/_variables.scss', resource_path('assets/sass/_variables.scss')); - copy(__DIR__.'/bootstrap-stubs/app.scss', resource_path('assets/sass/app.scss')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php deleted file mode 100644 index 750c3b45..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php +++ /dev/null @@ -1,58 +0,0 @@ -deleteDirectory(resource_path('assets/js/components')); - $filesystem->delete(resource_path('assets/sass/_variables.scss')); - $filesystem->deleteDirectory(base_path('node_modules')); - $filesystem->deleteDirectory(public_path('css')); - $filesystem->deleteDirectory(public_path('js')); - }); - } - - /** - * Update the given package array. - * - * @param array $packages - * @return array - */ - protected static function updatePackageArray(array $packages) - { - unset( - $packages['bootstrap-sass'], - $packages['jquery'], - $packages['vue'], - $packages['babel-preset-react'], - $packages['react'], - $packages['react-dom'] - ); - - return $packages; - } - - /** - * Write the stubs for the Sass and JavaScript files. - * - * @return void - */ - protected static function updateBootstrapping() - { - file_put_contents(resource_path('assets/sass/app.scss'), ''.PHP_EOL); - copy(__DIR__.'/none-stubs/app.js', resource_path('assets/js/app.js')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php deleted file mode 100644 index acea75c2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php +++ /dev/null @@ -1,61 +0,0 @@ -isDirectory($directory = resource_path('assets/js/components'))) { - $filesystem->makeDirectory($directory, 0755, true); - } - } - - /** - * Update the "package.json" file. - * - * @return void - */ - protected static function updatePackages() - { - if (! file_exists(base_path('package.json'))) { - return; - } - - $packages = json_decode(file_get_contents(base_path('package.json')), true); - - $packages['devDependencies'] = static::updatePackageArray( - $packages['devDependencies'] - ); - - ksort($packages['devDependencies']); - - file_put_contents( - base_path('package.json'), - json_encode($packages, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT).PHP_EOL - ); - } - - /** - * Remove the installed Node modules. - * - * @return void - */ - protected static function removeNodeModules() - { - tap(new Filesystem, function ($files) { - $files->deleteDirectory(base_path('node_modules')); - - $files->delete(base_path('yarn.lock')); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php deleted file mode 100644 index 8ecdeead..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php +++ /dev/null @@ -1,76 +0,0 @@ - '^6.23.0', - 'react' => '^15.4.2', - 'react-dom' => '^15.4.2', - ] + Arr::except($packages, ['vue']); - } - - /** - * Update the Webpack configuration. - * - * @return void - */ - protected static function updateWebpackConfiguration() - { - copy(__DIR__.'/react-stubs/webpack.mix.js', base_path('webpack.mix.js')); - } - - /** - * Update the example component. - * - * @return void - */ - protected static function updateComponent() - { - (new Filesystem)->delete( - resource_path('assets/js/components/ExampleComponent.vue') - ); - - copy( - __DIR__.'/react-stubs/Example.js', - resource_path('assets/js/components/Example.js') - ); - } - - /** - * Update the bootstrapping files. - * - * @return void - */ - protected static function updateBootstrapping() - { - copy(__DIR__.'/react-stubs/app.js', resource_path('assets/js/app.js')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php deleted file mode 100644 index 5a85dafd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php +++ /dev/null @@ -1,76 +0,0 @@ - '^2.5.7'] + Arr::except($packages, [ - 'babel-preset-react', - 'react', - 'react-dom', - ]); - } - - /** - * Update the Webpack configuration. - * - * @return void - */ - protected static function updateWebpackConfiguration() - { - copy(__DIR__.'/vue-stubs/webpack.mix.js', base_path('webpack.mix.js')); - } - - /** - * Update the example component. - * - * @return void - */ - protected static function updateComponent() - { - (new Filesystem)->delete( - resource_path('assets/js/components/Example.js') - ); - - copy( - __DIR__.'/vue-stubs/ExampleComponent.vue', - resource_path('assets/js/components/ExampleComponent.vue') - ); - } - - /** - * Update the bootstrapping files. - * - * @return void - */ - protected static function updateBootstrapping() - { - copy(__DIR__.'/vue-stubs/app.js', resource_path('assets/js/app.js')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss deleted file mode 100644 index 53202ac1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss +++ /dev/null @@ -1,38 +0,0 @@ - -// Body -$body-bg: #f5f8fa; - -// Borders -$laravel-border-color: darken($body-bg, 10%); -$list-group-border: $laravel-border-color; -$navbar-default-border: $laravel-border-color; -$panel-default-border: $laravel-border-color; -$panel-inner-border: $laravel-border-color; - -// Brands -$brand-primary: #3097D1; -$brand-info: #8eb4cb; -$brand-success: #2ab27b; -$brand-warning: #cbb956; -$brand-danger: #bf5329; - -// Typography -$icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/"; -$font-family-sans-serif: "Raleway", sans-serif; -$font-size-base: 14px; -$line-height-base: 1.6; -$text-color: #636b6f; - -// Navbar -$navbar-default-bg: #fff; - -// Buttons -$btn-default-color: $text-color; - -// Inputs -$input-border: lighten($text-color, 40%); -$input-border-focus: lighten($brand-primary, 25%); -$input-color-placeholder: lighten($text-color, 30%); - -// Panels -$panel-default-heading-bg: #fff; diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss deleted file mode 100644 index 1bbc5508..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss +++ /dev/null @@ -1,9 +0,0 @@ - -// Fonts -@import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600"); - -// Variables -@import "variables"; - -// Bootstrap -@import "~bootstrap-sass/assets/stylesheets/bootstrap"; diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js deleted file mode 100644 index e34e8a47..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js +++ /dev/null @@ -1,8 +0,0 @@ - -/** - * First, we will load all of this project's Javascript utilities and other - * dependencies. Then, we will be ready to develop a robust and powerful - * application frontend using useful Laravel and JavaScript libraries. - */ - -require('./bootstrap'); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js deleted file mode 100644 index 21f77f24..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js +++ /dev/null @@ -1,26 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; - -export default class Example extends Component { - render() { - return ( -
-
-
-
-
Example Component
- -
- I'm an example component! -
-
-
-
-
- ); - } -} - -if (document.getElementById('example')) { - ReactDOM.render(, document.getElementById('example')); -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js deleted file mode 100644 index 583ecced..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js +++ /dev/null @@ -1,16 +0,0 @@ - -/** - * First we will load all of this project's JavaScript dependencies which - * includes React and other helpers. It's a great starting point while - * building robust, powerful web applications using React + Laravel. - */ - -require('./bootstrap'); - -/** - * Next, we will create a fresh React component instance and attach it to - * the page. Then, you may begin adding components to this application - * or customize the JavaScript scaffolding to fit your unique needs. - */ - -require('./components/Example'); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js deleted file mode 100644 index 291598ad..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js +++ /dev/null @@ -1,15 +0,0 @@ -let mix = require('laravel-mix'); - -/* - |-------------------------------------------------------------------------- - | Mix Asset Management - |-------------------------------------------------------------------------- - | - | Mix provides a clean, fluent API for defining some Webpack build steps - | for your Laravel application. By default, we are compiling the Sass - | file for the application as well as bundling up all the JS files. - | - */ - -mix.react('resources/assets/js/app.js', 'public/js') - .sass('resources/assets/sass/app.scss', 'public/css'); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue deleted file mode 100644 index 601e61cf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js deleted file mode 100644 index 98eca79f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js +++ /dev/null @@ -1,22 +0,0 @@ - -/** - * First we will load all of this project's JavaScript dependencies which - * includes Vue and other libraries. It is a great starting point when - * building robust, powerful web applications using Vue and Laravel. - */ - -require('./bootstrap'); - -window.Vue = require('vue'); - -/** - * Next, we will create a fresh Vue application instance and attach it to - * the page. Then, you may begin adding components to this application - * or customize the JavaScript scaffolding to fit your unique needs. - */ - -Vue.component('example-component', require('./components/ExampleComponent.vue')); - -const app = new Vue({ - el: '#app' -}); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js deleted file mode 100644 index 72fdbb16..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js +++ /dev/null @@ -1,15 +0,0 @@ -let mix = require('laravel-mix'); - -/* - |-------------------------------------------------------------------------- - | Mix Asset Management - |-------------------------------------------------------------------------- - | - | Mix provides a clean, fluent API for defining some Webpack build steps - | for your Laravel application. By default, we are compiling the Sass - | file for the application as well as bundling up all the JS files. - | - */ - -mix.js('resources/assets/js/app.js', 'public/js') - .sass('resources/assets/sass/app.scss', 'public/css'); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php deleted file mode 100644 index fa887edb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php +++ /dev/null @@ -1,50 +0,0 @@ -data = $data; - } - - /** - * Handle the job. - * - * @param \Illuminate\Contracts\Console\Kernel $kernel - * @return void - */ - public function handle(KernelContract $kernel) - { - call_user_func_array([$kernel, 'call'], $this->data); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php deleted file mode 100644 index 95b7a87b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php +++ /dev/null @@ -1,50 +0,0 @@ -collection()) { - $this->type = 'Resource collection'; - } - - parent::handle(); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->collection() - ? __DIR__.'/stubs/resource-collection.stub' - : __DIR__.'/stubs/resource.stub'; - } - - /** - * Determine if the command is generating a resource collection. - * - * @return bool - */ - protected function collection() - { - return $this->option('collection') || - Str::endsWith($this->argument('name'), 'Collection'); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Http\Resources'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['collection', 'c', InputOption::VALUE_NONE, 'Create a resource collection.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php deleted file mode 100644 index 84c11b53..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php +++ /dev/null @@ -1,109 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->call('route:clear'); - - $routes = $this->getFreshApplicationRoutes(); - - if (count($routes) == 0) { - return $this->error("Your application doesn't have any routes."); - } - - foreach ($routes as $route) { - $route->prepareForSerialization(); - } - - $this->files->put( - $this->laravel->getCachedRoutesPath(), $this->buildRouteCacheFile($routes) - ); - - $this->info('Routes cached successfully!'); - } - - /** - * Boot a fresh copy of the application and get the routes. - * - * @return \Illuminate\Routing\RouteCollection - */ - protected function getFreshApplicationRoutes() - { - return tap($this->getFreshApplication()['router']->getRoutes(), function ($routes) { - $routes->refreshNameLookups(); - $routes->refreshActionLookups(); - }); - } - - /** - * Get a fresh application instance. - * - * @return \Illuminate\Foundation\Application - */ - protected function getFreshApplication() - { - return tap(require $this->laravel->bootstrapPath().'/app.php', function ($app) { - $app->make(ConsoleKernelContract::class)->bootstrap(); - }); - } - - /** - * Build the route cache file. - * - * @param \Illuminate\Routing\RouteCollection $routes - * @return string - */ - protected function buildRouteCacheFile(RouteCollection $routes) - { - $stub = $this->files->get(__DIR__.'/stubs/routes.stub'); - - return str_replace('{{routes}}', base64_encode(serialize($routes)), $stub); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php deleted file mode 100644 index 03fab1d9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php +++ /dev/null @@ -1,55 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->files->delete($this->laravel->getCachedRoutesPath()); - - $this->info('Route cache cleared!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php deleted file mode 100644 index b5cbb335..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php +++ /dev/null @@ -1,192 +0,0 @@ -router = $router; - $this->routes = $router->getRoutes(); - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (count($this->routes) == 0) { - return $this->error("Your application doesn't have any routes."); - } - - $this->displayRoutes($this->getRoutes()); - } - - /** - * Compile the routes into a displayable format. - * - * @return array - */ - protected function getRoutes() - { - $routes = collect($this->routes)->map(function ($route) { - return $this->getRouteInformation($route); - })->all(); - - if ($sort = $this->option('sort')) { - $routes = $this->sortRoutes($sort, $routes); - } - - if ($this->option('reverse')) { - $routes = array_reverse($routes); - } - - return array_filter($routes); - } - - /** - * Get the route information for a given route. - * - * @param \Illuminate\Routing\Route $route - * @return array - */ - protected function getRouteInformation(Route $route) - { - return $this->filterRoute([ - 'host' => $route->domain(), - 'method' => implode('|', $route->methods()), - 'uri' => $route->uri(), - 'name' => $route->getName(), - 'action' => $route->getActionName(), - 'middleware' => $this->getMiddleware($route), - ]); - } - - /** - * Sort the routes by a given element. - * - * @param string $sort - * @param array $routes - * @return array - */ - protected function sortRoutes($sort, $routes) - { - return Arr::sort($routes, function ($route) use ($sort) { - return $route[$sort]; - }); - } - - /** - * Display the route information on the console. - * - * @param array $routes - * @return void - */ - protected function displayRoutes(array $routes) - { - $this->table($this->headers, $routes); - } - - /** - * Get before filters. - * - * @param \Illuminate\Routing\Route $route - * @return string - */ - protected function getMiddleware($route) - { - return collect($route->gatherMiddleware())->map(function ($middleware) { - return $middleware instanceof Closure ? 'Closure' : $middleware; - })->implode(','); - } - - /** - * Filter the route by URI and / or name. - * - * @param array $route - * @return array|null - */ - protected function filterRoute(array $route) - { - if (($this->option('name') && ! Str::contains($route['name'], $this->option('name'))) || - $this->option('path') && ! Str::contains($route['uri'], $this->option('path')) || - $this->option('method') && ! Str::contains($route['method'], strtoupper($this->option('method')))) { - return; - } - - return $route; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['method', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by method.'], - - ['name', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by name.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by path.'], - - ['reverse', 'r', InputOption::VALUE_NONE, 'Reverse the ordering of the routes.'], - - ['sort', null, InputOption::VALUE_OPTIONAL, 'The column (host, method, uri, name, action, middleware) to sort by.', 'uri'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php deleted file mode 100644 index 2b699535..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php +++ /dev/null @@ -1,50 +0,0 @@ -line("Laravel development server started: host()}:{$this->port()}>"); - - passthru($this->serverCommand()); - } - - /** - * Get the full server command. - * - * @return string - */ - protected function serverCommand() - { - return sprintf('%s -S %s:%s %s/server.php', - ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)), - $this->host(), - $this->port(), - ProcessUtils::escapeArgument(base_path()) - ); - } - - /** - * Get the host for the command. - * - * @return string - */ - protected function host() - { - return $this->input->getOption('host'); - } - - /** - * Get the port for the command. - * - * @return string - */ - protected function port() - { - return $this->input->getOption('port'); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on.', '127.0.0.1'], - - ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', 8000], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php deleted file mode 100644 index 11e5c148..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php +++ /dev/null @@ -1,40 +0,0 @@ -error('The "public/storage" directory already exists.'); - } - - $this->laravel->make('files')->link( - storage_path('app/public'), public_path('storage') - ); - - $this->info('The [public/storage] directory has been linked.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php deleted file mode 100644 index ea08d7cf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php +++ /dev/null @@ -1,82 +0,0 @@ -option('unit')) { - return __DIR__.'/stubs/unit-test.stub'; - } - - return __DIR__.'/stubs/test.stub'; - } - - /** - * Get the destination class path. - * - * @param string $name - * @return string - */ - protected function getPath($name) - { - $name = Str::replaceFirst($this->rootNamespace(), '', $name); - - return base_path('tests').str_replace('\\', '/', $name).'.php'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - if ($this->option('unit')) { - return $rootNamespace.'\Unit'; - } else { - return $rootNamespace.'\Feature'; - } - } - - /** - * Get the root namespace for the class. - * - * @return string - */ - protected function rootNamespace() - { - return 'Tests'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php deleted file mode 100644 index 80554564..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php +++ /dev/null @@ -1,34 +0,0 @@ -info('Application is now live.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php deleted file mode 100644 index 686f26b7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php +++ /dev/null @@ -1,275 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->determineWhatShouldBePublished(); - - foreach ($this->tags ?: [null] as $tag) { - $this->publishTag($tag); - } - - $this->info('Publishing complete.'); - } - - /** - * Determine the provider or tag(s) to publish. - * - * @return void - */ - protected function determineWhatShouldBePublished() - { - if ($this->option('all')) { - return; - } - - list($this->provider, $this->tags) = [ - $this->option('provider'), (array) $this->option('tag'), - ]; - - if (! $this->provider && ! $this->tags) { - $this->promptForProviderOrTag(); - } - } - - /** - * Prompt for which provider or tag to publish. - * - * @return void - */ - protected function promptForProviderOrTag() - { - $choice = $this->choice( - "Which provider or tag's files would you like to publish?", - $choices = $this->publishableChoices() - ); - - if ($choice == $choices[0] || is_null($choice)) { - return; - } - - $this->parseChoice($choice); - } - - /** - * The choices available via the prompt. - * - * @return array - */ - protected function publishableChoices() - { - return array_merge( - ['Publish files from all providers and tags listed below'], - preg_filter('/^/', 'Provider: ', Arr::sort(ServiceProvider::publishableProviders())), - preg_filter('/^/', 'Tag: ', Arr::sort(ServiceProvider::publishableGroups())) - ); - } - - /** - * Parse the answer that was given via the prompt. - * - * @param string $choice - * @return void - */ - protected function parseChoice($choice) - { - list($type, $value) = explode(': ', strip_tags($choice)); - - if ($type == 'Provider') { - $this->provider = $value; - } elseif ($type == 'Tag') { - $this->tags = [$value]; - } - } - - /** - * Publishes the assets for a tag. - * - * @param string $tag - * @return mixed - */ - protected function publishTag($tag) - { - foreach ($this->pathsToPublish($tag) as $from => $to) { - $this->publishItem($from, $to); - } - } - - /** - * Get all of the paths to publish. - * - * @param string $tag - * @return array - */ - protected function pathsToPublish($tag) - { - return ServiceProvider::pathsToPublish( - $this->provider, $tag - ); - } - - /** - * Publish the given item from and to the given location. - * - * @param string $from - * @param string $to - * @return void - */ - protected function publishItem($from, $to) - { - if ($this->files->isFile($from)) { - return $this->publishFile($from, $to); - } elseif ($this->files->isDirectory($from)) { - return $this->publishDirectory($from, $to); - } - - $this->error("Can't locate path: <{$from}>"); - } - - /** - * Publish the file to the given path. - * - * @param string $from - * @param string $to - * @return void - */ - protected function publishFile($from, $to) - { - if (! $this->files->exists($to) || $this->option('force')) { - $this->createParentDirectory(dirname($to)); - - $this->files->copy($from, $to); - - $this->status($from, $to, 'File'); - } - } - - /** - * Publish the directory to the given directory. - * - * @param string $from - * @param string $to - * @return void - */ - protected function publishDirectory($from, $to) - { - $this->moveManagedFiles(new MountManager([ - 'from' => new Flysystem(new LocalAdapter($from)), - 'to' => new Flysystem(new LocalAdapter($to)), - ])); - - $this->status($from, $to, 'Directory'); - } - - /** - * Move all the files in the given MountManager. - * - * @param \League\Flysystem\MountManager $manager - * @return void - */ - protected function moveManagedFiles($manager) - { - foreach ($manager->listContents('from://', true) as $file) { - if ($file['type'] === 'file' && (! $manager->has('to://'.$file['path']) || $this->option('force'))) { - $manager->put('to://'.$file['path'], $manager->read('from://'.$file['path'])); - } - } - } - - /** - * Create the directory to house the published files if needed. - * - * @param string $directory - * @return void - */ - protected function createParentDirectory($directory) - { - if (! $this->files->isDirectory($directory)) { - $this->files->makeDirectory($directory, 0755, true); - } - } - - /** - * Write a status message to the console. - * - * @param string $from - * @param string $to - * @param string $type - * @return void - */ - protected function status($from, $to, $type) - { - $from = str_replace(base_path(), '', realpath($from)); - - $to = str_replace(base_path(), '', realpath($to)); - - $this->line('Copied '.$type.' ['.$from.'] To ['.$to.']'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php deleted file mode 100644 index 6f3e23ff..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php +++ /dev/null @@ -1,64 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $path = $this->laravel['config']['view.compiled']; - - if (! $path) { - throw new RuntimeException('View path not found.'); - } - - foreach ($this->files->glob("{$path}/*") as $view) { - $this->files->delete($view); - } - - $this->info('Compiled views cleared!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub deleted file mode 100644 index 9b770d9c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub +++ /dev/null @@ -1,42 +0,0 @@ -view('view.name'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub deleted file mode 100644 index 25a0cdc8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub +++ /dev/null @@ -1,33 +0,0 @@ -markdown('DummyView'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub deleted file mode 100644 index f554b2c3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub +++ /dev/null @@ -1,58 +0,0 @@ -markdown('DummyView'); - } - - /** - * Get the array representation of the notification. - * - * @param mixed $notifiable - * @return array - */ - public function toArray($notifiable) - { - return [ - // - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub deleted file mode 100644 index bc414282..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub +++ /dev/null @@ -1,12 +0,0 @@ -@component('mail::message') -# Introduction - -The body of your message. - -@component('mail::button', ['url' => '']) -Button Text -@endcomponent - -Thanks,
-{{ config('app.name') }} -@endcomponent diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub deleted file mode 100644 index f01a8333..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub +++ /dev/null @@ -1,10 +0,0 @@ -line('The introduction to the notification.') - ->action('Notification Action', url('/')) - ->line('Thank you for using our application!'); - } - - /** - * Get the array representation of the notification. - * - * @param mixed $notifiable - * @return array - */ - public function toArray($notifiable) - { - return [ - // - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/pivot.model.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/pivot.model.stub deleted file mode 100644 index 6a7352bc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/pivot.model.stub +++ /dev/null @@ -1,10 +0,0 @@ -setRoutes( - unserialize(base64_decode('{{routes}}')) -); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub deleted file mode 100644 index 826af0d6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub +++ /dev/null @@ -1,40 +0,0 @@ -assertTrue(true); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub deleted file mode 100644 index 173fb8d8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub +++ /dev/null @@ -1,20 +0,0 @@ -assertTrue(true); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php b/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php deleted file mode 100644 index 205f73bc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php +++ /dev/null @@ -1,69 +0,0 @@ -detectConsoleEnvironment($callback, $consoleArgs); - } - - return $this->detectWebEnvironment($callback); - } - - /** - * Set the application environment for a web request. - * - * @param \Closure $callback - * @return string - */ - protected function detectWebEnvironment(Closure $callback) - { - return call_user_func($callback); - } - - /** - * Set the application environment from command-line arguments. - * - * @param \Closure $callback - * @param array $args - * @return string - */ - protected function detectConsoleEnvironment(Closure $callback, array $args) - { - // First we will check if an environment argument was passed via console arguments - // and if it was that automatically overrides as the environment. Otherwise, we - // will check the environment as a "web" request like a typical HTTP request. - if (! is_null($value = $this->getEnvironmentArgument($args))) { - return head(array_slice(explode('=', $value), 1)); - } - - return $this->detectWebEnvironment($callback); - } - - /** - * Get the environment argument from the console. - * - * @param array $args - * @return string|null - */ - protected function getEnvironmentArgument(array $args) - { - return Arr::first($args, function ($value) { - return Str::startsWith($value, '--env'); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php b/vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php deleted file mode 100644 index 0018295b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php +++ /dev/null @@ -1,26 +0,0 @@ -locale = $locale; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php deleted file mode 100644 index f3813825..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php +++ /dev/null @@ -1,493 +0,0 @@ -container = $container; - } - - /** - * Report or log an exception. - * - * @param \Exception $e - * @return mixed - * - * @throws \Exception - */ - public function report(Exception $e) - { - if ($this->shouldntReport($e)) { - return; - } - - if (method_exists($e, 'report')) { - return $e->report(); - } - - try { - $logger = $this->container->make(LoggerInterface::class); - } catch (Exception $ex) { - throw $e; // throw the original exception - } - - $logger->error( - $e->getMessage(), - array_merge($this->context(), ['exception' => $e] - )); - } - - /** - * Determine if the exception should be reported. - * - * @param \Exception $e - * @return bool - */ - public function shouldReport(Exception $e) - { - return ! $this->shouldntReport($e); - } - - /** - * Determine if the exception is in the "do not report" list. - * - * @param \Exception $e - * @return bool - */ - protected function shouldntReport(Exception $e) - { - $dontReport = array_merge($this->dontReport, $this->internalDontReport); - - return ! is_null(Arr::first($dontReport, function ($type) use ($e) { - return $e instanceof $type; - })); - } - - /** - * Get the default context variables for logging. - * - * @return array - */ - protected function context() - { - try { - return array_filter([ - 'userId' => Auth::id(), - 'email' => Auth::user() ? Auth::user()->email : null, - ]); - } catch (Throwable $e) { - return []; - } - } - - /** - * Render an exception into a response. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Symfony\Component\HttpFoundation\Response - */ - public function render($request, Exception $e) - { - if (method_exists($e, 'render') && $response = $e->render($request)) { - return Router::toResponse($request, $response); - } elseif ($e instanceof Responsable) { - return $e->toResponse($request); - } - - $e = $this->prepareException($e); - - if ($e instanceof HttpResponseException) { - return $e->getResponse(); - } elseif ($e instanceof AuthenticationException) { - return $this->unauthenticated($request, $e); - } elseif ($e instanceof ValidationException) { - return $this->convertValidationExceptionToResponse($e, $request); - } - - return $request->expectsJson() - ? $this->prepareJsonResponse($request, $e) - : $this->prepareResponse($request, $e); - } - - /** - * Prepare exception for rendering. - * - * @param \Exception $e - * @return \Exception - */ - protected function prepareException(Exception $e) - { - if ($e instanceof ModelNotFoundException) { - $e = new NotFoundHttpException($e->getMessage(), $e); - } elseif ($e instanceof AuthorizationException) { - $e = new AccessDeniedHttpException($e->getMessage(), $e); - } elseif ($e instanceof TokenMismatchException) { - $e = new HttpException(419, $e->getMessage(), $e); - } - - return $e; - } - - /** - * Convert an authentication exception into a response. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Auth\AuthenticationException $exception - * @return \Illuminate\Http\Response - */ - protected function unauthenticated($request, AuthenticationException $exception) - { - return $request->expectsJson() - ? response()->json(['message' => $exception->getMessage()], 401) - : redirect()->guest(route('login')); - } - - /** - * Create a response object from the given validation exception. - * - * @param \Illuminate\Validation\ValidationException $e - * @param \Illuminate\Http\Request $request - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function convertValidationExceptionToResponse(ValidationException $e, $request) - { - if ($e->response) { - return $e->response; - } - - return $request->expectsJson() - ? $this->invalidJson($request, $e) - : $this->invalid($request, $e); - } - - /** - * Convert a validation exception into a response. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Validation\ValidationException $exception - * @return \Illuminate\Http\Response - */ - protected function invalid($request, ValidationException $exception) - { - $url = $exception->redirectTo ?? url()->previous(); - - return redirect($url) - ->withInput($request->except($this->dontFlash)) - ->withErrors( - $exception->errors(), - $exception->errorBag - ); - } - - /** - * Convert a validation exception into a JSON response. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Validation\ValidationException $exception - * @return \Illuminate\Http\JsonResponse - */ - protected function invalidJson($request, ValidationException $exception) - { - return response()->json([ - 'message' => $exception->getMessage(), - 'errors' => $exception->errors(), - ], $exception->status); - } - - /** - * Prepare a response for the given exception. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function prepareResponse($request, Exception $e) - { - if (! $this->isHttpException($e) && config('app.debug')) { - return $this->toIlluminateResponse( - $this->convertExceptionToResponse($e), $e - ); - } - - if (! $this->isHttpException($e)) { - $e = new HttpException(500, $e->getMessage()); - } - - return $this->toIlluminateResponse( - $this->renderHttpException($e), $e - ); - } - - /** - * Create a Symfony response for the given exception. - * - * @param \Exception $e - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function convertExceptionToResponse(Exception $e) - { - $headers = $this->isHttpException($e) ? $e->getHeaders() : []; - - $statusCode = $this->isHttpException($e) ? $e->getStatusCode() : 500; - - try { - $content = config('app.debug') && class_exists(Whoops::class) - ? $this->renderExceptionWithWhoops($e) - : $this->renderExceptionWithSymfony($e, config('app.debug')); - } catch (Exception $e) { - $content = $content ?? $this->renderExceptionWithSymfony($e, config('app.debug')); - } - - return SymfonyResponse::create( - $content, $statusCode, $headers - ); - } - - /** - * Render an exception to a string using "Whoops". - * - * @param \Exception $e - * @return string - */ - protected function renderExceptionWithWhoops(Exception $e) - { - return tap(new Whoops, function ($whoops) { - $whoops->pushHandler($this->whoopsHandler()); - - $whoops->writeToOutput(false); - - $whoops->allowQuit(false); - } - )->handleException($e); - } - - /** - * Render an exception to a string using Symfony. - * - * @param \Exception $e - * @param bool $debug - * @return string - */ - protected function renderExceptionWithSymfony(Exception $e, $debug) - { - return (new SymfonyExceptionHandler($debug))->getHtml( - FlattenException::create($e) - ); - } - - /** - * Get the Whoops handler for the application. - * - * @return \Whoops\Handler\Handler - */ - protected function whoopsHandler() - { - return tap(new PrettyPageHandler, function ($handler) { - $files = new Filesystem; - - $handler->handleUnconditionally(true); - - foreach (config('app.debug_blacklist', []) as $key => $secrets) { - foreach ($secrets as $secret) { - $handler->blacklist($key, $secret); - } - } - - if (config('app.editor', false)) { - $handler->setEditor(config('app.editor')); - } - - $handler->setApplicationPaths( - array_flip(Arr::except( - array_flip($files->directories(base_path())), [base_path('vendor')] - )) - ); - }); - } - - /** - * Render the given HttpException. - * - * @param \Symfony\Component\HttpKernel\Exception\HttpException $e - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function renderHttpException(HttpException $e) - { - $status = $e->getStatusCode(); - - $paths = collect(config('view.paths')); - - view()->replaceNamespace('errors', $paths->map(function ($path) { - return "{$path}/errors"; - })->push(__DIR__.'/views')->all()); - - if (view()->exists($view = "errors::{$status}")) { - return response()->view($view, ['exception' => $e], $status, $e->getHeaders()); - } - - return $this->convertExceptionToResponse($e); - } - - /** - * Map the given exception into an Illuminate response. - * - * @param \Symfony\Component\HttpFoundation\Response $response - * @param \Exception $e - * @return \Illuminate\Http\Response - */ - protected function toIlluminateResponse($response, Exception $e) - { - if ($response instanceof SymfonyRedirectResponse) { - $response = new RedirectResponse( - $response->getTargetUrl(), $response->getStatusCode(), $response->headers->all() - ); - } else { - $response = new Response( - $response->getContent(), $response->getStatusCode(), $response->headers->all() - ); - } - - return $response->withException($e); - } - - /** - * Prepare a JSON response for the given exception. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Illuminate\Http\JsonResponse - */ - protected function prepareJsonResponse($request, Exception $e) - { - $status = $this->isHttpException($e) ? $e->getStatusCode() : 500; - - $headers = $this->isHttpException($e) ? $e->getHeaders() : []; - - return new JsonResponse( - $this->convertExceptionToArray($e), $status, $headers, - JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES - ); - } - - /** - * Convert the given exception to an array. - * - * @param \Exception $e - * @return array - */ - protected function convertExceptionToArray(Exception $e) - { - return config('app.debug') ? [ - 'message' => $e->getMessage(), - 'exception' => get_class($e), - 'file' => $e->getFile(), - 'line' => $e->getLine(), - 'trace' => collect($e->getTrace())->map(function ($trace) { - return Arr::except($trace, ['args']); - })->all(), - ] : [ - 'message' => $this->isHttpException($e) ? $e->getMessage() : 'Server Error', - ]; - } - - /** - * Render an exception to the console. - * - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @param \Exception $e - * @return void - */ - public function renderForConsole($output, Exception $e) - { - (new ConsoleApplication)->renderException($e, $output); - } - - /** - * Determine if the given exception is an HTTP exception. - * - * @param \Exception $e - * @return bool - */ - protected function isHttpException(Exception $e) - { - return $e instanceof HttpException; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php deleted file mode 100644 index ff4eb30f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Page Not Found') - -@section('message', 'Sorry, the page you are looking for could not be found.') diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php deleted file mode 100644 index 84258cc9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Page Expired') - -@section('message') - The page has expired due to inactivity. -

- Please refresh and try again. -@stop diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php deleted file mode 100644 index fc1930fd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Error') - -@section('message', 'Too many requests.') diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php deleted file mode 100644 index 333e9880..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Error') - -@section('message', 'Whoops, looks like something went wrong.') diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php deleted file mode 100644 index 7d7d211f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Service Unavailable') - -@section('message', 'Be right back.') diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php deleted file mode 100644 index 27513d0b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - @yield('title') - - - - - - - - -
-
-
- @yield('message') -
-
-
- - diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php deleted file mode 100644 index d6f71e03..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php +++ /dev/null @@ -1,33 +0,0 @@ -request = $request; - $this->response = $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php deleted file mode 100644 index 6d5a2ab7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php +++ /dev/null @@ -1,54 +0,0 @@ -wentDownAt = Carbon::createFromTimestamp($time); - - if ($retryAfter) { - $this->retryAfter = $retryAfter; - - $this->willBeAvailableAt = Carbon::createFromTimestamp($time)->addSeconds($this->retryAfter); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php deleted file mode 100644 index 3f57a2a8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php +++ /dev/null @@ -1,227 +0,0 @@ -container->make(ValidationFactory::class); - - if (method_exists($this, 'validator')) { - $validator = $this->container->call([$this, 'validator'], compact('factory')); - } else { - $validator = $this->createDefaultValidator($factory); - } - - if (method_exists($this, 'withValidator')) { - $this->withValidator($validator); - } - - return $validator; - } - - /** - * Create the default validator instance. - * - * @param \Illuminate\Contracts\Validation\Factory $factory - * @return \Illuminate\Contracts\Validation\Validator - */ - protected function createDefaultValidator(ValidationFactory $factory) - { - return $factory->make( - $this->validationData(), $this->container->call([$this, 'rules']), - $this->messages(), $this->attributes() - ); - } - - /** - * Get data to be validated from the request. - * - * @return array - */ - protected function validationData() - { - return $this->all(); - } - - /** - * Handle a failed validation attempt. - * - * @param \Illuminate\Contracts\Validation\Validator $validator - * @return void - * - * @throws \Illuminate\Validation\ValidationException - */ - protected function failedValidation(Validator $validator) - { - throw (new ValidationException($validator)) - ->errorBag($this->errorBag) - ->redirectTo($this->getRedirectUrl()); - } - - /** - * Get the URL to redirect to on a validation error. - * - * @return string - */ - protected function getRedirectUrl() - { - $url = $this->redirector->getUrlGenerator(); - - if ($this->redirect) { - return $url->to($this->redirect); - } elseif ($this->redirectRoute) { - return $url->route($this->redirectRoute); - } elseif ($this->redirectAction) { - return $url->action($this->redirectAction); - } - - return $url->previous(); - } - - /** - * Determine if the request passes the authorization check. - * - * @return bool - */ - protected function passesAuthorization() - { - if (method_exists($this, 'authorize')) { - return $this->container->call([$this, 'authorize']); - } - - return false; - } - - /** - * Handle a failed authorization attempt. - * - * @return void - * - * @throws \Illuminate\Auth\Access\AuthorizationException - */ - protected function failedAuthorization() - { - throw new AuthorizationException('This action is unauthorized.'); - } - - /** - * Get the validated data from the request. - * - * @return array - */ - public function validated() - { - $rules = $this->container->call([$this, 'rules']); - - return $this->only(collect($rules)->keys()->map(function ($rule) { - return str_contains($rule, '.') ? explode('.', $rule)[0] : $rule; - })->unique()->toArray()); - } - - /** - * Get custom messages for validator errors. - * - * @return array - */ - public function messages() - { - return []; - } - - /** - * Get custom attributes for validator errors. - * - * @return array - */ - public function attributes() - { - return []; - } - - /** - * Set the Redirector instance. - * - * @param \Illuminate\Routing\Redirector $redirector - * @return $this - */ - public function setRedirector(Redirector $redirector) - { - $this->redirector = $redirector; - - return $this; - } - - /** - * Set the container implementation. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return $this - */ - public function setContainer(Container $container) - { - $this->container = $container; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php deleted file mode 100644 index 04f0e4a0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php +++ /dev/null @@ -1,338 +0,0 @@ -app = $app; - $this->router = $router; - - $router->middlewarePriority = $this->middlewarePriority; - - foreach ($this->middlewareGroups as $key => $middleware) { - $router->middlewareGroup($key, $middleware); - } - - foreach ($this->routeMiddleware as $key => $middleware) { - $router->aliasMiddleware($key, $middleware); - } - } - - /** - * Handle an incoming HTTP request. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - public function handle($request) - { - try { - $request->enableHttpMethodParameterOverride(); - - $response = $this->sendRequestThroughRouter($request); - } catch (Exception $e) { - $this->reportException($e); - - $response = $this->renderException($request, $e); - } catch (Throwable $e) { - $this->reportException($e = new FatalThrowableError($e)); - - $response = $this->renderException($request, $e); - } - - $this->app['events']->dispatch( - new Events\RequestHandled($request, $response) - ); - - return $response; - } - - /** - * Send the given request through the middleware / router. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - protected function sendRequestThroughRouter($request) - { - $this->app->instance('request', $request); - - Facade::clearResolvedInstance('request'); - - $this->bootstrap(); - - return (new Pipeline($this->app)) - ->send($request) - ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware) - ->then($this->dispatchToRouter()); - } - - /** - * Bootstrap the application for HTTP requests. - * - * @return void - */ - public function bootstrap() - { - if (! $this->app->hasBeenBootstrapped()) { - $this->app->bootstrapWith($this->bootstrappers()); - } - } - - /** - * Get the route dispatcher callback. - * - * @return \Closure - */ - protected function dispatchToRouter() - { - return function ($request) { - $this->app->instance('request', $request); - - return $this->router->dispatch($request); - }; - } - - /** - * Call the terminate method on any terminable middleware. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Http\Response $response - * @return void - */ - public function terminate($request, $response) - { - $this->terminateMiddleware($request, $response); - - $this->app->terminate(); - } - - /** - * Call the terminate method on any terminable middleware. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Http\Response $response - * @return void - */ - protected function terminateMiddleware($request, $response) - { - $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge( - $this->gatherRouteMiddleware($request), - $this->middleware - ); - - foreach ($middlewares as $middleware) { - if (! is_string($middleware)) { - continue; - } - - list($name) = $this->parseMiddleware($middleware); - - $instance = $this->app->make($name); - - if (method_exists($instance, 'terminate')) { - $instance->terminate($request, $response); - } - } - } - - /** - * Gather the route middleware for the given request. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function gatherRouteMiddleware($request) - { - if ($route = $request->route()) { - return $this->router->gatherRouteMiddleware($route); - } - - return []; - } - - /** - * Parse a middleware string to get the name and parameters. - * - * @param string $middleware - * @return array - */ - protected function parseMiddleware($middleware) - { - list($name, $parameters) = array_pad(explode(':', $middleware, 2), 2, []); - - if (is_string($parameters)) { - $parameters = explode(',', $parameters); - } - - return [$name, $parameters]; - } - - /** - * Determine if the kernel has a given middleware. - * - * @param string $middleware - * @return bool - */ - public function hasMiddleware($middleware) - { - return in_array($middleware, $this->middleware); - } - - /** - * Add a new middleware to beginning of the stack if it does not already exist. - * - * @param string $middleware - * @return $this - */ - public function prependMiddleware($middleware) - { - if (array_search($middleware, $this->middleware) === false) { - array_unshift($this->middleware, $middleware); - } - - return $this; - } - - /** - * Add a new middleware to end of the stack if it does not already exist. - * - * @param string $middleware - * @return $this - */ - public function pushMiddleware($middleware) - { - if (array_search($middleware, $this->middleware) === false) { - $this->middleware[] = $middleware; - } - - return $this; - } - - /** - * Get the bootstrap classes for the application. - * - * @return array - */ - protected function bootstrappers() - { - return $this->bootstrappers; - } - - /** - * Report the exception to the exception handler. - * - * @param \Exception $e - * @return void - */ - protected function reportException(Exception $e) - { - $this->app[ExceptionHandler::class]->report($e); - } - - /** - * Render the exception to a response. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function renderException($request, Exception $e) - { - return $this->app[ExceptionHandler::class]->render($request, $e); - } - - /** - * Get the Laravel application instance. - * - * @return \Illuminate\Contracts\Foundation\Application - */ - public function getApplication() - { - return $this->app; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php deleted file mode 100644 index 6de75096..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php +++ /dev/null @@ -1,48 +0,0 @@ -app = $app; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - */ - public function handle($request, Closure $next) - { - if ($this->app->isDownForMaintenance()) { - $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true); - - throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']); - } - - return $next($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php deleted file mode 100644 index 813c9cf1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php +++ /dev/null @@ -1,18 +0,0 @@ -attributes = $attributes; - - $this->clean($request); - - return $next($request); - } - - /** - * Clean the request's data. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function clean($request) - { - $this->cleanParameterBag($request->query); - - if ($request->isJson()) { - $this->cleanParameterBag($request->json()); - } else { - $this->cleanParameterBag($request->request); - } - } - - /** - * Clean the data in the parameter bag. - * - * @param \Symfony\Component\HttpFoundation\ParameterBag $bag - * @return void - */ - protected function cleanParameterBag(ParameterBag $bag) - { - $bag->replace($this->cleanArray($bag->all())); - } - - /** - * Clean the data in the given array. - * - * @param array $data - * @return array - */ - protected function cleanArray(array $data) - { - return collect($data)->map(function ($value, $key) { - return $this->cleanValue($key, $value); - })->all(); - } - - /** - * Clean the given value. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function cleanValue($key, $value) - { - if (is_array($value)) { - return $this->cleanArray($value); - } - - return $this->transform($key, $value); - } - - /** - * Transform the given value. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function transform($key, $value) - { - return $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php deleted file mode 100644 index 4c8d1ddb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php +++ /dev/null @@ -1,31 +0,0 @@ -except, true)) { - return $value; - } - - return is_string($value) ? trim($value) : $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php deleted file mode 100644 index adc5f5a3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php +++ /dev/null @@ -1,55 +0,0 @@ -getPostMaxSize(); - - if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) { - throw new PostTooLargeException; - } - - return $next($request); - } - - /** - * Determine the server 'post_max_size' as bytes. - * - * @return int - */ - protected function getPostMaxSize() - { - if (is_numeric($postMaxSize = ini_get('post_max_size'))) { - return (int) $postMaxSize; - } - - $metric = strtoupper(substr($postMaxSize, -1)); - $postMaxSize = (int) $postMaxSize; - - switch ($metric) { - case 'K': - return $postMaxSize * 1024; - case 'M': - return $postMaxSize * 1048576; - case 'G': - return $postMaxSize * 1073741824; - default: - return $postMaxSize; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php deleted file mode 100644 index a33e2095..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php +++ /dev/null @@ -1,167 +0,0 @@ -app = $app; - $this->encrypter = $encrypter; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - * - * @throws \Illuminate\Session\TokenMismatchException - */ - public function handle($request, Closure $next) - { - if ( - $this->isReading($request) || - $this->runningUnitTests() || - $this->inExceptArray($request) || - $this->tokensMatch($request) - ) { - return $this->addCookieToResponse($request, $next($request)); - } - - throw new TokenMismatchException; - } - - /** - * Determine if the HTTP request uses a ‘read’ verb. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function isReading($request) - { - return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); - } - - /** - * Determine if the application is running unit tests. - * - * @return bool - */ - protected function runningUnitTests() - { - return $this->app->runningInConsole() && $this->app->runningUnitTests(); - } - - /** - * Determine if the request has a URI that should pass through CSRF verification. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function inExceptArray($request) - { - foreach ($this->except as $except) { - if ($except !== '/') { - $except = trim($except, '/'); - } - - if ($request->fullUrlIs($except) || $request->is($except)) { - return true; - } - } - - return false; - } - - /** - * Determine if the session and input CSRF tokens match. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function tokensMatch($request) - { - $token = $this->getTokenFromRequest($request); - - return is_string($request->session()->token()) && - is_string($token) && - hash_equals($request->session()->token(), $token); - } - - /** - * Get the CSRF token from the request. - * - * @param \Illuminate\Http\Request $request - * @return string - */ - protected function getTokenFromRequest($request) - { - $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN'); - - if (! $token && $header = $request->header('X-XSRF-TOKEN')) { - $token = $this->encrypter->decrypt($header); - } - - return $token; - } - - /** - * Add the CSRF token to the response cookies. - * - * @param \Illuminate\Http\Request $request - * @param \Symfony\Component\HttpFoundation\Response $response - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function addCookieToResponse($request, $response) - { - $config = config('session'); - - $response->headers->setCookie( - new Cookie( - 'XSRF-TOKEN', $request->session()->token(), $this->availableAt(60 * $config['lifetime']), - $config['path'], $config['domain'], $config['secure'], false, false, $config['same_site'] ?? null - ) - ); - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php b/vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php deleted file mode 100644 index 5216088a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php +++ /dev/null @@ -1,34 +0,0 @@ -random(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php b/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php deleted file mode 100644 index 0c488011..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php +++ /dev/null @@ -1,172 +0,0 @@ -files = $files; - $this->basePath = $basePath; - $this->manifestPath = $manifestPath; - $this->vendorPath = $basePath.'/vendor'; - } - - /** - * Get all of the service provider class names for all packages. - * - * @return array - */ - public function providers() - { - return collect($this->getManifest())->flatMap(function ($configuration) { - return (array) ($configuration['providers'] ?? []); - })->filter()->all(); - } - - /** - * Get all of the aliases for all packages. - * - * @return array - */ - public function aliases() - { - return collect($this->getManifest())->flatMap(function ($configuration) { - return (array) ($configuration['aliases'] ?? []); - })->filter()->all(); - } - - /** - * Get the current package manifest. - * - * @return array - */ - protected function getManifest() - { - if (! is_null($this->manifest)) { - return $this->manifest; - } - - if (! file_exists($this->manifestPath)) { - $this->build(); - } - - return $this->manifest = file_exists($this->manifestPath) ? - $this->files->getRequire($this->manifestPath) : []; - } - - /** - * Build the manifest and write it to disk. - * - * @return void - */ - public function build() - { - $packages = []; - - if ($this->files->exists($path = $this->vendorPath.'/composer/installed.json')) { - $packages = json_decode($this->files->get($path), true); - } - - $ignoreAll = in_array('*', $ignore = $this->packagesToIgnore()); - - $this->write(collect($packages)->mapWithKeys(function ($package) { - return [$this->format($package['name']) => $package['extra']['laravel'] ?? []]; - })->each(function ($configuration) use (&$ignore) { - $ignore = array_merge($ignore, $configuration['dont-discover'] ?? []); - })->reject(function ($configuration, $package) use ($ignore, $ignoreAll) { - return $ignoreAll || in_array($package, $ignore); - })->filter()->all()); - } - - /** - * Format the given package name. - * - * @param string $package - * @return string - */ - protected function format($package) - { - return str_replace($this->vendorPath.'/', '', $package); - } - - /** - * Get all of the package names that should be ignored. - * - * @return array - */ - protected function packagesToIgnore() - { - if (! file_exists($this->basePath.'/composer.json')) { - return []; - } - - return json_decode(file_get_contents( - $this->basePath.'/composer.json' - ), true)['extra']['laravel']['dont-discover'] ?? []; - } - - /** - * Write the given manifest array to disk. - * - * @param array $manifest - * @return void - * @throws \Exception - */ - protected function write(array $manifest) - { - if (! is_writable(dirname($this->manifestPath))) { - throw new Exception('The '.dirname($this->manifestPath).' directory must be present and writable.'); - } - - $this->files->put( - $this->manifestPath, 'app = $app; - $this->files = $files; - $this->manifestPath = $manifestPath; - } - - /** - * Register the application service providers. - * - * @param array $providers - * @return void - */ - public function load(array $providers) - { - $manifest = $this->loadManifest(); - - // First we will load the service manifest, which contains information on all - // service providers registered with the application and which services it - // provides. This is used to know which services are "deferred" loaders. - if ($this->shouldRecompile($manifest, $providers)) { - $manifest = $this->compileManifest($providers); - } - - // Next, we will register events to load the providers for each of the events - // that it has requested. This allows the service provider to defer itself - // while still getting automatically loaded when a certain event occurs. - foreach ($manifest['when'] as $provider => $events) { - $this->registerLoadEvents($provider, $events); - } - - // We will go ahead and register all of the eagerly loaded providers with the - // application so their services can be registered with the application as - // a provided service. Then we will set the deferred service list on it. - foreach ($manifest['eager'] as $provider) { - $this->app->register($provider); - } - - $this->app->addDeferredServices($manifest['deferred']); - } - - /** - * Load the service provider manifest JSON file. - * - * @return array|null - */ - public function loadManifest() - { - // The service manifest is a file containing a JSON representation of every - // service provided by the application and whether its provider is using - // deferred loading or should be eagerly loaded on each request to us. - if ($this->files->exists($this->manifestPath)) { - $manifest = $this->files->getRequire($this->manifestPath); - - if ($manifest) { - return array_merge(['when' => []], $manifest); - } - } - } - - /** - * Determine if the manifest should be compiled. - * - * @param array $manifest - * @param array $providers - * @return bool - */ - public function shouldRecompile($manifest, $providers) - { - return is_null($manifest) || $manifest['providers'] != $providers; - } - - /** - * Register the load events for the given provider. - * - * @param string $provider - * @param array $events - * @return void - */ - protected function registerLoadEvents($provider, array $events) - { - if (count($events) < 1) { - return; - } - - $this->app->make('events')->listen($events, function () use ($provider) { - $this->app->register($provider); - }); - } - - /** - * Compile the application service manifest file. - * - * @param array $providers - * @return array - */ - protected function compileManifest($providers) - { - // The service manifest should contain a list of all of the providers for - // the application so we can compare it on each request to the service - // and determine if the manifest should be recompiled or is current. - $manifest = $this->freshManifest($providers); - - foreach ($providers as $provider) { - $instance = $this->createProvider($provider); - - // When recompiling the service manifest, we will spin through each of the - // providers and check if it's a deferred provider or not. If so we'll - // add it's provided services to the manifest and note the provider. - if ($instance->isDeferred()) { - foreach ($instance->provides() as $service) { - $manifest['deferred'][$service] = $provider; - } - - $manifest['when'][$provider] = $instance->when(); - } - - // If the service providers are not deferred, we will simply add it to an - // array of eagerly loaded providers that will get registered on every - // request to this application instead of "lazy" loading every time. - else { - $manifest['eager'][] = $provider; - } - } - - return $this->writeManifest($manifest); - } - - /** - * Create a fresh service manifest data structure. - * - * @param array $providers - * @return array - */ - protected function freshManifest(array $providers) - { - return ['providers' => $providers, 'eager' => [], 'deferred' => []]; - } - - /** - * Write the service manifest file to disk. - * - * @param array $manifest - * @return array - * - * @throws \Exception - */ - public function writeManifest($manifest) - { - if (! is_writable(dirname($this->manifestPath))) { - throw new Exception('The bootstrap/cache directory must be present and writable.'); - } - - $this->files->put( - $this->manifestPath, ' []], $manifest); - } - - /** - * Create a new provider instance. - * - * @param string $provider - * @return \Illuminate\Support\ServiceProvider - */ - public function createProvider($provider) - { - return new $provider($this->app); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php deleted file mode 100755 index d7174081..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php +++ /dev/null @@ -1,967 +0,0 @@ - 'command.cache.clear', - 'CacheForget' => 'command.cache.forget', - 'ClearCompiled' => 'command.clear-compiled', - 'ClearResets' => 'command.auth.resets.clear', - 'ConfigCache' => 'command.config.cache', - 'ConfigClear' => 'command.config.clear', - 'Down' => 'command.down', - 'Environment' => 'command.environment', - 'KeyGenerate' => 'command.key.generate', - 'Migrate' => 'command.migrate', - 'MigrateFresh' => 'command.migrate.fresh', - 'MigrateInstall' => 'command.migrate.install', - 'MigrateRefresh' => 'command.migrate.refresh', - 'MigrateReset' => 'command.migrate.reset', - 'MigrateRollback' => 'command.migrate.rollback', - 'MigrateStatus' => 'command.migrate.status', - 'Optimize' => 'command.optimize', - 'PackageDiscover' => 'command.package.discover', - 'Preset' => 'command.preset', - 'QueueFailed' => 'command.queue.failed', - 'QueueFlush' => 'command.queue.flush', - 'QueueForget' => 'command.queue.forget', - 'QueueListen' => 'command.queue.listen', - 'QueueRestart' => 'command.queue.restart', - 'QueueRetry' => 'command.queue.retry', - 'QueueWork' => 'command.queue.work', - 'RouteCache' => 'command.route.cache', - 'RouteClear' => 'command.route.clear', - 'RouteList' => 'command.route.list', - 'Seed' => 'command.seed', - 'ScheduleFinish' => ScheduleFinishCommand::class, - 'ScheduleRun' => ScheduleRunCommand::class, - 'StorageLink' => 'command.storage.link', - 'Up' => 'command.up', - 'ViewClear' => 'command.view.clear', - ]; - - /** - * The commands to be registered. - * - * @var array - */ - protected $devCommands = [ - 'AppName' => 'command.app.name', - 'AuthMake' => 'command.auth.make', - 'CacheTable' => 'command.cache.table', - 'ConsoleMake' => 'command.console.make', - 'ControllerMake' => 'command.controller.make', - 'EventGenerate' => 'command.event.generate', - 'EventMake' => 'command.event.make', - 'ExceptionMake' => 'command.exception.make', - 'FactoryMake' => 'command.factory.make', - 'JobMake' => 'command.job.make', - 'ListenerMake' => 'command.listener.make', - 'MailMake' => 'command.mail.make', - 'MiddlewareMake' => 'command.middleware.make', - 'MigrateMake' => 'command.migrate.make', - 'ModelMake' => 'command.model.make', - 'NotificationMake' => 'command.notification.make', - 'NotificationTable' => 'command.notification.table', - 'PolicyMake' => 'command.policy.make', - 'ProviderMake' => 'command.provider.make', - 'QueueFailedTable' => 'command.queue.failed-table', - 'QueueTable' => 'command.queue.table', - 'RequestMake' => 'command.request.make', - 'ResourceMake' => 'command.resource.make', - 'RuleMake' => 'command.rule.make', - 'SeederMake' => 'command.seeder.make', - 'SessionTable' => 'command.session.table', - 'Serve' => 'command.serve', - 'TestMake' => 'command.test.make', - 'VendorPublish' => 'command.vendor.publish', - ]; - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - $this->registerCommands(array_merge( - $this->commands, $this->devCommands - )); - } - - /** - * Register the given commands. - * - * @param array $commands - * @return void - */ - protected function registerCommands(array $commands) - { - foreach (array_keys($commands) as $command) { - call_user_func_array([$this, "register{$command}Command"], []); - } - - $this->commands(array_values($commands)); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerAppNameCommand() - { - $this->app->singleton('command.app.name', function ($app) { - return new AppNameCommand($app['composer'], $app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerAuthMakeCommand() - { - $this->app->singleton('command.auth.make', function ($app) { - return new AuthMakeCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerCacheClearCommand() - { - $this->app->singleton('command.cache.clear', function ($app) { - return new CacheClearCommand($app['cache'], $app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerCacheForgetCommand() - { - $this->app->singleton('command.cache.forget', function ($app) { - return new CacheForgetCommand($app['cache']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerCacheTableCommand() - { - $this->app->singleton('command.cache.table', function ($app) { - return new CacheTableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerClearCompiledCommand() - { - $this->app->singleton('command.clear-compiled', function () { - return new ClearCompiledCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerClearResetsCommand() - { - $this->app->singleton('command.auth.resets.clear', function () { - return new ClearResetsCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerConfigCacheCommand() - { - $this->app->singleton('command.config.cache', function ($app) { - return new ConfigCacheCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerConfigClearCommand() - { - $this->app->singleton('command.config.clear', function ($app) { - return new ConfigClearCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerConsoleMakeCommand() - { - $this->app->singleton('command.console.make', function ($app) { - return new ConsoleMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerControllerMakeCommand() - { - $this->app->singleton('command.controller.make', function ($app) { - return new ControllerMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerEventGenerateCommand() - { - $this->app->singleton('command.event.generate', function () { - return new EventGenerateCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerEventMakeCommand() - { - $this->app->singleton('command.event.make', function ($app) { - return new EventMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerExceptionMakeCommand() - { - $this->app->singleton('command.exception.make', function ($app) { - return new ExceptionMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerFactoryMakeCommand() - { - $this->app->singleton('command.factory.make', function ($app) { - return new FactoryMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerDownCommand() - { - $this->app->singleton('command.down', function () { - return new DownCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerEnvironmentCommand() - { - $this->app->singleton('command.environment', function () { - return new EnvironmentCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerJobMakeCommand() - { - $this->app->singleton('command.job.make', function ($app) { - return new JobMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerKeyGenerateCommand() - { - $this->app->singleton('command.key.generate', function () { - return new KeyGenerateCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerListenerMakeCommand() - { - $this->app->singleton('command.listener.make', function ($app) { - return new ListenerMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMailMakeCommand() - { - $this->app->singleton('command.mail.make', function ($app) { - return new MailMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMiddlewareMakeCommand() - { - $this->app->singleton('command.middleware.make', function ($app) { - return new MiddlewareMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateCommand() - { - $this->app->singleton('command.migrate', function ($app) { - return new MigrateCommand($app['migrator']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateFreshCommand() - { - $this->app->singleton('command.migrate.fresh', function () { - return new MigrateFreshCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateInstallCommand() - { - $this->app->singleton('command.migrate.install', function ($app) { - return new MigrateInstallCommand($app['migration.repository']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateMakeCommand() - { - $this->app->singleton('command.migrate.make', function ($app) { - // Once we have the migration creator registered, we will create the command - // and inject the creator. The creator is responsible for the actual file - // creation of the migrations, and may be extended by these developers. - $creator = $app['migration.creator']; - - $composer = $app['composer']; - - return new MigrateMakeCommand($creator, $composer); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateRefreshCommand() - { - $this->app->singleton('command.migrate.refresh', function () { - return new MigrateRefreshCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateResetCommand() - { - $this->app->singleton('command.migrate.reset', function ($app) { - return new MigrateResetCommand($app['migrator']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateRollbackCommand() - { - $this->app->singleton('command.migrate.rollback', function ($app) { - return new MigrateRollbackCommand($app['migrator']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateStatusCommand() - { - $this->app->singleton('command.migrate.status', function ($app) { - return new MigrateStatusCommand($app['migrator']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerModelMakeCommand() - { - $this->app->singleton('command.model.make', function ($app) { - return new ModelMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerNotificationMakeCommand() - { - $this->app->singleton('command.notification.make', function ($app) { - return new NotificationMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerOptimizeCommand() - { - $this->app->singleton('command.optimize', function ($app) { - return new OptimizeCommand($app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerPackageDiscoverCommand() - { - $this->app->singleton('command.package.discover', function ($app) { - return new PackageDiscoverCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerPresetCommand() - { - $this->app->singleton('command.preset', function () { - return new PresetCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerProviderMakeCommand() - { - $this->app->singleton('command.provider.make', function ($app) { - return new ProviderMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueFailedCommand() - { - $this->app->singleton('command.queue.failed', function () { - return new ListFailedQueueCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueForgetCommand() - { - $this->app->singleton('command.queue.forget', function () { - return new ForgetFailedQueueCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueFlushCommand() - { - $this->app->singleton('command.queue.flush', function () { - return new FlushFailedQueueCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueListenCommand() - { - $this->app->singleton('command.queue.listen', function ($app) { - return new QueueListenCommand($app['queue.listener']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueRestartCommand() - { - $this->app->singleton('command.queue.restart', function () { - return new QueueRestartCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueRetryCommand() - { - $this->app->singleton('command.queue.retry', function () { - return new QueueRetryCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueWorkCommand() - { - $this->app->singleton('command.queue.work', function ($app) { - return new QueueWorkCommand($app['queue.worker']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueFailedTableCommand() - { - $this->app->singleton('command.queue.failed-table', function ($app) { - return new FailedTableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueTableCommand() - { - $this->app->singleton('command.queue.table', function ($app) { - return new TableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRequestMakeCommand() - { - $this->app->singleton('command.request.make', function ($app) { - return new RequestMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerResourceMakeCommand() - { - $this->app->singleton('command.resource.make', function ($app) { - return new ResourceMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRuleMakeCommand() - { - $this->app->singleton('command.rule.make', function ($app) { - return new RuleMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerSeederMakeCommand() - { - $this->app->singleton('command.seeder.make', function ($app) { - return new SeederMakeCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerSessionTableCommand() - { - $this->app->singleton('command.session.table', function ($app) { - return new SessionTableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerStorageLinkCommand() - { - $this->app->singleton('command.storage.link', function () { - return new StorageLinkCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRouteCacheCommand() - { - $this->app->singleton('command.route.cache', function ($app) { - return new RouteCacheCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRouteClearCommand() - { - $this->app->singleton('command.route.clear', function ($app) { - return new RouteClearCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRouteListCommand() - { - $this->app->singleton('command.route.list', function ($app) { - return new RouteListCommand($app['router']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerSeedCommand() - { - $this->app->singleton('command.seed', function ($app) { - return new SeedCommand($app['db']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerScheduleFinishCommand() - { - $this->app->singleton(ScheduleFinishCommand::class); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerScheduleRunCommand() - { - $this->app->singleton(ScheduleRunCommand::class); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerServeCommand() - { - $this->app->singleton('command.serve', function () { - return new ServeCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerTestMakeCommand() - { - $this->app->singleton('command.test.make', function ($app) { - return new TestMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerUpCommand() - { - $this->app->singleton('command.up', function () { - return new UpCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerVendorPublishCommand() - { - $this->app->singleton('command.vendor.publish', function ($app) { - return new VendorPublishCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerViewClearCommand() - { - $this->app->singleton('command.view.clear', function ($app) { - return new ViewClearCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerPolicyMakeCommand() - { - $this->app->singleton('command.policy.make', function ($app) { - return new PolicyMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerNotificationTableCommand() - { - $this->app->singleton('command.notification.table', function ($app) { - return new NotificationTableCommand($app['files'], $app['composer']); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return array_merge(array_values($this->commands), array_values($this->devCommands)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php deleted file mode 100755 index 295ca960..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php +++ /dev/null @@ -1,38 +0,0 @@ -app->singleton('composer', function ($app) { - return new Composer($app['files'], $app->basePath()); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['composer']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php deleted file mode 100644 index 8e92d28c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php +++ /dev/null @@ -1,27 +0,0 @@ -app->afterResolving(ValidatesWhenResolved::class, function ($resolved) { - $resolved->validate(); - }); - - $this->app->resolving(FormRequest::class, function ($request, $app) { - $this->initializeRequest($request, $app['request']); - - $request->setContainer($app)->setRedirector($app->make(Redirector::class)); - }); - } - - /** - * Initialize the form request with data from the given request. - * - * @param \Illuminate\Foundation\Http\FormRequest $form - * @param \Symfony\Component\HttpFoundation\Request $current - * @return void - */ - protected function initializeRequest(FormRequest $form, Request $current) - { - $files = $current->files->all(); - - $files = is_array($files) ? array_filter($files) : $files; - - $form->initialize( - $current->query->all(), $current->request->all(), $current->attributes->all(), - $current->cookies->all(), $files, $current->server->all(), $current->getContent() - ); - - $form->setJson($current->json()); - - if ($session = $current->getSession()) { - $form->setLaravelSession($session); - } - - $form->setUserResolver($current->getUserResolver()); - - $form->setRouteResolver($current->getRouteResolver()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php deleted file mode 100644 index 9b5c6799..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php +++ /dev/null @@ -1,46 +0,0 @@ -registerRequestValidate(); - } - - /** - * Register the "validate" macro on the request. - * - * @return void - */ - public function registerRequestValidate() - { - Request::macro('validate', function (array $rules, ...$params) { - validator()->validate($this->all(), $rules, ...$params); - - return $this->only(collect($rules)->keys()->map(function ($rule) { - return str_contains($rule, '.') ? explode('.', $rule)[0] : $rule; - })->unique()->toArray()); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php deleted file mode 100644 index 880370a9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,36 +0,0 @@ -policies as $key => $value) { - Gate::policy($key, $value); - } - } - - /** - * {@inheritdoc} - */ - public function register() - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php deleted file mode 100644 index 307f2cef..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php +++ /dev/null @@ -1,59 +0,0 @@ -listens() as $event => $listeners) { - foreach ($listeners as $listener) { - Event::listen($event, $listener); - } - } - - foreach ($this->subscribe as $subscriber) { - Event::subscribe($subscriber); - } - } - - /** - * {@inheritdoc} - */ - public function register() - { - // - } - - /** - * Get the events and handlers. - * - * @return array - */ - public function listens() - { - return $this->listen; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php deleted file mode 100644 index c753447b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php +++ /dev/null @@ -1,101 +0,0 @@ -setRootControllerNamespace(); - - if ($this->app->routesAreCached()) { - $this->loadCachedRoutes(); - } else { - $this->loadRoutes(); - - $this->app->booted(function () { - $this->app['router']->getRoutes()->refreshNameLookups(); - $this->app['router']->getRoutes()->refreshActionLookups(); - }); - } - } - - /** - * Set the root controller namespace for the application. - * - * @return void - */ - protected function setRootControllerNamespace() - { - if (! is_null($this->namespace)) { - $this->app[UrlGenerator::class]->setRootControllerNamespace($this->namespace); - } - } - - /** - * Load the cached routes for the application. - * - * @return void - */ - protected function loadCachedRoutes() - { - $this->app->booted(function () { - require $this->app->getCachedRoutesPath(); - }); - } - - /** - * Load the application routes. - * - * @return void - */ - protected function loadRoutes() - { - if (method_exists($this, 'map')) { - $this->app->call([$this, 'map']); - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - // - } - - /** - * Pass dynamic methods onto the router instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return call_user_func_array( - [$this->app->make(Router::class), $method], $parameters - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php deleted file mode 100644 index 94f477e4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php +++ /dev/null @@ -1,147 +0,0 @@ -be($user, $driver); - - return $this; - } - - /** - * Set the currently logged in user for the application. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string|null $driver - * @return void - */ - public function be(UserContract $user, $driver = null) - { - $this->app['auth']->guard($driver)->setUser($user); - - $this->app['auth']->shouldUse($driver); - } - - /** - * Assert that the user is authenticated. - * - * @param string|null $guard - * @return $this - */ - public function assertAuthenticated($guard = null) - { - $this->assertTrue($this->isAuthenticated($guard), 'The user is not authenticated'); - - return $this; - } - - /** - * Assert that the user is not authenticated. - * - * @param string|null $guard - * @return $this - */ - public function assertGuest($guard = null) - { - $this->assertFalse($this->isAuthenticated($guard), 'The user is authenticated'); - - return $this; - } - - /** - * Return true if the user is authenticated, false otherwise. - * - * @param string|null $guard - * @return bool - */ - protected function isAuthenticated($guard = null) - { - return $this->app->make('auth')->guard($guard)->check(); - } - - /** - * Assert that the user is authenticated as the given user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string|null $guard - * @return $this - */ - public function assertAuthenticatedAs($user, $guard = null) - { - $expected = $this->app->make('auth')->guard($guard)->user(); - - $this->assertNotNull($expected, 'The current user is not authenticated.'); - - $this->assertInstanceOf( - get_class($expected), $user, - 'The currently authenticated user is not who was expected' - ); - - $this->assertSame( - $expected->getAuthIdentifier(), $user->getAuthIdentifier(), - 'The currently authenticated user is not who was expected' - ); - - return $this; - } - - /** - * Assert that the given credentials are valid. - * - * @param array $credentials - * @param string|null $guard - * @return $this - */ - public function assertCredentials(array $credentials, $guard = null) - { - $this->assertTrue( - $this->hasCredentials($credentials, $guard), 'The given credentials are invalid.' - ); - - return $this; - } - - /** - * Assert that the given credentials are invalid. - * - * @param array $credentials - * @param string|null $guard - * @return $this - */ - public function assertInvalidCredentials(array $credentials, $guard = null) - { - $this->assertFalse( - $this->hasCredentials($credentials, $guard), 'The given credentials are valid.' - ); - - return $this; - } - - /** - * Return true if the credentials are valid, false otherwise. - * - * @param array $credentials - * @param string|null $guard - * @return bool - */ - protected function hasCredentials(array $credentials, $guard = null) - { - $provider = $this->app->make('auth')->guard($guard)->getProvider(); - - $user = $provider->retrieveByCredentials($credentials); - - return $user && $provider->validateCredentials($user, $credentials); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php deleted file mode 100644 index ba078b31..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php +++ /dev/null @@ -1,20 +0,0 @@ -app[Kernel::class]->call($command, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php deleted file mode 100644 index 5a0ad1e0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php +++ /dev/null @@ -1,32 +0,0 @@ -instance($abstract, $instance); - } - - /** - * Register an instance of an object in the container. - * - * @param string $abstract - * @param object $instance - * @return object - */ - protected function instance($abstract, $instance) - { - $this->app->instance($abstract, $instance); - - return $instance; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php deleted file mode 100644 index 7c30907e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php +++ /dev/null @@ -1,91 +0,0 @@ -assertThat( - $table, new HasInDatabase($this->getConnection($connection), $data) - ); - - return $this; - } - - /** - * Assert that a given where condition does not exist in the database. - * - * @param string $table - * @param array $data - * @param string $connection - * @return $this - */ - protected function assertDatabaseMissing($table, array $data, $connection = null) - { - $constraint = new ReverseConstraint( - new HasInDatabase($this->getConnection($connection), $data) - ); - - $this->assertThat($table, $constraint); - - return $this; - } - - /** - * Assert the given record has been deleted. - * - * @param string $table - * @param array $data - * @param string $connection - * @return $this - */ - protected function assertSoftDeleted($table, array $data, $connection = null) - { - $this->assertThat( - $table, new SoftDeletedInDatabase($this->getConnection($connection), $data) - ); - - return $this; - } - - /** - * Get the database connection. - * - * @param string|null $connection - * @return \Illuminate\Database\Connection - */ - protected function getConnection($connection = null) - { - $database = $this->app->make('db'); - - $connection = $connection ?: $database->getDefaultConnection(); - - return $database->connection($connection); - } - - /** - * Seed a given database connection. - * - * @param string $class - * @return $this - */ - public function seed($class = 'DatabaseSeeder') - { - $this->artisan('db:seed', ['--class' => $class]); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php deleted file mode 100644 index 6967a58c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php +++ /dev/null @@ -1,136 +0,0 @@ -originalExceptionHandler) { - $this->app->instance(ExceptionHandler::class, $this->originalExceptionHandler); - } - - return $this; - } - - /** - * Only handle the given exceptions via the exception handler. - * - * @param array $exceptions - * @return $this - */ - protected function handleExceptions(array $exceptions) - { - return $this->withoutExceptionHandling($exceptions); - } - - /** - * Only handle validation exceptions via the exception handler. - * - * @return $this - */ - protected function handleValidationExceptions() - { - return $this->handleExceptions([ValidationException::class]); - } - - /** - * Disable exception handling for the test. - * - * @param array $except - * @return $this - */ - protected function withoutExceptionHandling(array $except = []) - { - if ($this->originalExceptionHandler == null) { - $this->originalExceptionHandler = app(ExceptionHandler::class); - } - - $this->app->instance(ExceptionHandler::class, new class($this->originalExceptionHandler, $except) implements ExceptionHandler { - protected $except; - protected $originalHandler; - - /** - * Create a new class instance. - * - * @param \Illuminate\Contracts\Debug\ExceptionHandler $originalHandler - * @param array $except - * @return void - */ - public function __construct($originalHandler, $except = []) - { - $this->except = $except; - $this->originalHandler = $originalHandler; - } - - /** - * Report the given exception. - * - * @param \Exception $e - * @return void - */ - public function report(Exception $e) - { - // - } - - /** - * Render the given exception. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return mixed - * - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException|\Exception - */ - public function render($request, Exception $e) - { - if ($e instanceof NotFoundHttpException) { - throw new NotFoundHttpException( - "{$request->method()} {$request->url()}", null, $e->getCode() - ); - } - - foreach ($this->except as $class) { - if ($e instanceof $class) { - return $this->originalHandler->render($request, $e); - } - } - - throw $e; - } - - /** - * Render the exception for the console. - * - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @param \Exception $e - * @return void - */ - public function renderForConsole($output, Exception $e) - { - (new ConsoleApplication)->renderException($e, $output); - } - }); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php deleted file mode 100644 index 4a18aec2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php +++ /dev/null @@ -1,109 +0,0 @@ -markTestSkipped('Trying default host/port failed, please set environment variable REDIS_HOST & REDIS_PORT to enable '.__CLASS__); - - return; - } - - foreach ($this->redisDriverProvider() as $driver) { - $this->redis[$driver[0]] = new RedisManager($driver[0], [ - 'cluster' => false, - 'default' => [ - 'host' => $host, - 'port' => $port, - 'database' => 5, - 'timeout' => 0.5, - ], - ]); - } - - try { - $this->redis['predis']->connection()->flushdb(); - } catch (\Exception $e) { - if ($host === '127.0.0.1' && $port === 6379 && getenv('REDIS_HOST') === false) { - $this->markTestSkipped('Trying default host/port failed, please set environment variable REDIS_HOST & REDIS_PORT to enable '.__CLASS__); - static::$connectionFailedOnceWithDefaultsSkip = true; - - return; - } - } - } - - /** - * Teardown redis connection. - * - * @return void - */ - public function tearDownRedis() - { - $this->redis['predis']->connection()->flushdb(); - - foreach ($this->redisDriverProvider() as $driver) { - $this->redis[$driver[0]]->connection()->disconnect(); - } - } - - /** - * Get redis driver provider. - * - * @return array - */ - public function redisDriverProvider() - { - $providers = [ - ['predis'], - ]; - - if (extension_loaded('redis')) { - $providers[] = ['phpredis']; - } - - return $providers; - } - - /** - * Run test if redis is available. - * - * @param callable $callback - * @return void - */ - public function ifRedisAvailable($callback) - { - $this->setUpRedis(); - - $callback(); - - $this->tearDownRedis(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php deleted file mode 100644 index 9d72e7c3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php +++ /dev/null @@ -1,64 +0,0 @@ -session($data); - - return $this; - } - - /** - * Set the session to the given array. - * - * @param array $data - * @return $this - */ - public function session(array $data) - { - $this->startSession(); - - foreach ($data as $key => $value) { - $this->app['session']->put($key, $value); - } - - return $this; - } - - /** - * Start the session for the application. - * - * @return $this - */ - protected function startSession() - { - if (! $this->app['session']->isStarted()) { - $this->app['session']->start(); - } - - return $this; - } - - /** - * Flush all of the current session data. - * - * @return $this - */ - public function flushSession() - { - $this->startSession(); - - $this->app['session']->flush(); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php deleted file mode 100644 index 084337ae..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php +++ /dev/null @@ -1,460 +0,0 @@ -defaultHeaders = array_merge($this->defaultHeaders, $headers); - - return $this; - } - - /** - * Add a header to be sent with the request. - * - * @param string $name - * @param string $value - * @return $this - */ - public function withHeader(string $name, string $value) - { - $this->defaultHeaders[$name] = $value; - - return $this; - } - - /** - * Flush all the configured headers. - * - * @return $this - */ - public function flushHeaders() - { - $this->defaultHeaders = []; - - return $this; - } - - /** - * Define a set of server variables to be sent with the requests. - * - * @param array $server - * @return $this - */ - public function withServerVariables(array $server) - { - $this->serverVariables = $server; - - return $this; - } - - /** - * Disable middleware for the test. - * - * @param string|array $middleware - * @return $this - */ - public function withoutMiddleware($middleware = null) - { - if (is_null($middleware)) { - $this->app->instance('middleware.disable', true); - - return $this; - } - - foreach ((array) $middleware as $abstract) { - $this->app->instance($abstract, new class { - public function handle($request, $next) - { - return $next($request); - } - }); - } - - return $this; - } - - /** - * Enable the given middleware for the test. - * - * @param string|array $middleware - * @return $this - */ - public function withMiddleware($middleware = null) - { - if (is_null($middleware)) { - unset($this->app['middleware.disable']); - - return $this; - } - - foreach ((array) $middleware as $abstract) { - unset($this->app[$abstract]); - } - - return $this; - } - - /** - * Automatically follow any redirects returned from the response. - * - * @return $this - */ - public function followingRedirects() - { - $this->followRedirects = true; - - return $this; - } - - /** - * Set the referer header to simulate a previous request. - * - * @param string $url - * @return $this - */ - public function from(string $url) - { - return $this->withHeader('referer', $url); - } - - /** - * Visit the given URI with a GET request. - * - * @param string $uri - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function get($uri, array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('GET', $uri, [], [], [], $server); - } - - /** - * Visit the given URI with a GET request, expecting a JSON response. - * - * @param string $uri - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function getJson($uri, array $headers = []) - { - return $this->json('GET', $uri, [], $headers); - } - - /** - * Visit the given URI with a POST request. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function post($uri, array $data = [], array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('POST', $uri, $data, [], [], $server); - } - - /** - * Visit the given URI with a POST request, expecting a JSON response. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function postJson($uri, array $data = [], array $headers = []) - { - return $this->json('POST', $uri, $data, $headers); - } - - /** - * Visit the given URI with a PUT request. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function put($uri, array $data = [], array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('PUT', $uri, $data, [], [], $server); - } - - /** - * Visit the given URI with a PUT request, expecting a JSON response. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function putJson($uri, array $data = [], array $headers = []) - { - return $this->json('PUT', $uri, $data, $headers); - } - - /** - * Visit the given URI with a PATCH request. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function patch($uri, array $data = [], array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('PATCH', $uri, $data, [], [], $server); - } - - /** - * Visit the given URI with a PATCH request, expecting a JSON response. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function patchJson($uri, array $data = [], array $headers = []) - { - return $this->json('PATCH', $uri, $data, $headers); - } - - /** - * Visit the given URI with a DELETE request. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function delete($uri, array $data = [], array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('DELETE', $uri, $data, [], [], $server); - } - - /** - * Visit the given URI with a DELETE request, expecting a JSON response. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function deleteJson($uri, array $data = [], array $headers = []) - { - return $this->json('DELETE', $uri, $data, $headers); - } - - /** - * Call the given URI with a JSON request. - * - * @param string $method - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function json($method, $uri, array $data = [], array $headers = []) - { - $files = $this->extractFilesFromDataArray($data); - - $content = json_encode($data); - - $headers = array_merge([ - 'CONTENT_LENGTH' => mb_strlen($content, '8bit'), - 'CONTENT_TYPE' => 'application/json', - 'Accept' => 'application/json', - ], $headers); - - return $this->call( - $method, $uri, [], [], $files, $this->transformHeadersToServerVars($headers), $content - ); - } - - /** - * Call the given URI and return the Response. - * - * @param string $method - * @param string $uri - * @param array $parameters - * @param array $cookies - * @param array $files - * @param array $server - * @param string $content - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null) - { - $kernel = $this->app->make(HttpKernel::class); - - $files = array_merge($files, $this->extractFilesFromDataArray($parameters)); - - $symfonyRequest = SymfonyRequest::create( - $this->prepareUrlForRequest($uri), $method, $parameters, - $cookies, $files, array_replace($this->serverVariables, $server), $content - ); - - $response = $kernel->handle( - $request = Request::createFromBase($symfonyRequest) - ); - - if ($this->followRedirects) { - $response = $this->followRedirects($response); - } - - $kernel->terminate($request, $response); - - return $this->createTestResponse($response); - } - - /** - * Turn the given URI into a fully qualified URL. - * - * @param string $uri - * @return string - */ - protected function prepareUrlForRequest($uri) - { - if (Str::startsWith($uri, '/')) { - $uri = substr($uri, 1); - } - - if (! Str::startsWith($uri, 'http')) { - $uri = config('app.url').'/'.$uri; - } - - return trim($uri, '/'); - } - - /** - * Transform headers array to array of $_SERVER vars with HTTP_* format. - * - * @param array $headers - * @return array - */ - protected function transformHeadersToServerVars(array $headers) - { - return collect(array_merge($this->defaultHeaders, $headers))->mapWithKeys(function ($value, $name) { - $name = strtr(strtoupper($name), '-', '_'); - - return [$this->formatServerHeaderKey($name) => $value]; - })->all(); - } - - /** - * Format the header name for the server array. - * - * @param string $name - * @return string - */ - protected function formatServerHeaderKey($name) - { - if (! Str::startsWith($name, 'HTTP_') && $name != 'CONTENT_TYPE' && $name != 'REMOTE_ADDR') { - return 'HTTP_'.$name; - } - - return $name; - } - - /** - * Extract the file uploads from the given data array. - * - * @param array $data - * @return array - */ - protected function extractFilesFromDataArray(&$data) - { - $files = []; - - foreach ($data as $key => $value) { - if ($value instanceof SymfonyUploadedFile) { - $files[$key] = $value; - - unset($data[$key]); - } - - if (is_array($value)) { - $files[$key] = $this->extractFilesFromDataArray($value); - - $data[$key] = $value; - } - } - - return $files; - } - - /** - * Follow a redirect chain until a non-redirect is received. - * - * @param \Illuminate\Http\Response $response - * @return \Illuminate\Http\Response - */ - protected function followRedirects($response) - { - while ($response->isRedirect()) { - $response = $this->get($response->headers->get('Location')); - } - - $this->followRedirects = false; - - return $response; - } - - /** - * Create the test response instance from the given response. - * - * @param \Illuminate\Http\Response $response - * @return \Illuminate\Foundation\Testing\TestResponse - */ - protected function createTestResponse($response) - { - return TestResponse::fromBaseResponse($response); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php deleted file mode 100644 index e0c48029..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php +++ /dev/null @@ -1,283 +0,0 @@ -withoutEvents(); - - $this->beforeApplicationDestroyed(function () use ($events) { - $fired = $this->getFiredEvents($events); - - $this->assertEmpty( - $eventsNotFired = array_diff($events, $fired), - 'These expected events were not fired: ['.implode(', ', $eventsNotFired).']' - ); - }); - - return $this; - } - - /** - * Specify a list of events that should not be fired for the given operation. - * - * These events will be mocked, so that handlers will not actually be executed. - * - * @param array|string $events - * @return $this - */ - public function doesntExpectEvents($events) - { - $events = is_array($events) ? $events : func_get_args(); - - $this->withoutEvents(); - - $this->beforeApplicationDestroyed(function () use ($events) { - $this->assertEmpty( - $fired = $this->getFiredEvents($events), - 'These unexpected events were fired: ['.implode(', ', $fired).']' - ); - }); - - return $this; - } - - /** - * Mock the event dispatcher so all events are silenced and collected. - * - * @return $this - */ - protected function withoutEvents() - { - $mock = Mockery::mock(EventsDispatcherContract::class)->shouldIgnoreMissing(); - - $mock->shouldReceive('fire', 'dispatch')->andReturnUsing(function ($called) { - $this->firedEvents[] = $called; - }); - - $this->app->instance('events', $mock); - - return $this; - } - - /** - * Filter the given events against the fired events. - * - * @param array $events - * @return array - */ - protected function getFiredEvents(array $events) - { - return $this->getDispatched($events, $this->firedEvents); - } - - /** - * Specify a list of jobs that should be dispatched for the given operation. - * - * These jobs will be mocked, so that handlers will not actually be executed. - * - * @param array|string $jobs - * @return $this - */ - protected function expectsJobs($jobs) - { - $jobs = is_array($jobs) ? $jobs : func_get_args(); - - $this->withoutJobs(); - - $this->beforeApplicationDestroyed(function () use ($jobs) { - $dispatched = $this->getDispatchedJobs($jobs); - - $this->assertEmpty( - $jobsNotDispatched = array_diff($jobs, $dispatched), - 'These expected jobs were not dispatched: ['.implode(', ', $jobsNotDispatched).']' - ); - }); - - return $this; - } - - /** - * Specify a list of jobs that should not be dispatched for the given operation. - * - * These jobs will be mocked, so that handlers will not actually be executed. - * - * @param array|string $jobs - * @return $this - */ - protected function doesntExpectJobs($jobs) - { - $jobs = is_array($jobs) ? $jobs : func_get_args(); - - $this->withoutJobs(); - - $this->beforeApplicationDestroyed(function () use ($jobs) { - $this->assertEmpty( - $dispatched = $this->getDispatchedJobs($jobs), - 'These unexpected jobs were dispatched: ['.implode(', ', $dispatched).']' - ); - }); - - return $this; - } - - /** - * Mock the job dispatcher so all jobs are silenced and collected. - * - * @return $this - */ - protected function withoutJobs() - { - $mock = Mockery::mock(BusDispatcherContract::class); - - $mock->shouldReceive('dispatch', 'dispatchNow')->andReturnUsing(function ($dispatched) { - $this->dispatchedJobs[] = $dispatched; - }); - - $this->app->instance( - BusDispatcherContract::class, $mock - ); - - return $this; - } - - /** - * Filter the given jobs against the dispatched jobs. - * - * @param array $jobs - * @return array - */ - protected function getDispatchedJobs(array $jobs) - { - return $this->getDispatched($jobs, $this->dispatchedJobs); - } - - /** - * Filter the given classes against an array of dispatched classes. - * - * @param array $classes - * @param array $dispatched - * @return array - */ - protected function getDispatched(array $classes, array $dispatched) - { - return array_filter($classes, function ($class) use ($dispatched) { - return $this->wasDispatched($class, $dispatched); - }); - } - - /** - * Check if the given class exists in an array of dispatched classes. - * - * @param string $needle - * @param array $haystack - * @return bool - */ - protected function wasDispatched($needle, array $haystack) - { - foreach ($haystack as $dispatched) { - if ((is_string($dispatched) && ($dispatched === $needle || is_subclass_of($dispatched, $needle))) || - $dispatched instanceof $needle) { - return true; - } - } - - return false; - } - - /** - * Mock the notification dispatcher so all notifications are silenced. - * - * @return $this - */ - protected function withoutNotifications() - { - $mock = Mockery::mock(NotificationDispatcher::class); - - $mock->shouldReceive('send')->andReturnUsing(function ($notifiable, $instance, $channels = []) { - $this->dispatchedNotifications[] = compact( - 'notifiable', 'instance', 'channels' - ); - }); - - $this->app->instance(NotificationDispatcher::class, $mock); - - return $this; - } - - /** - * Specify a notification that is expected to be dispatched. - * - * @param mixed $notifiable - * @param string $notification - * @return $this - */ - protected function expectsNotification($notifiable, $notification) - { - $this->withoutNotifications(); - - $this->beforeApplicationDestroyed(function () use ($notifiable, $notification) { - foreach ($this->dispatchedNotifications as $dispatched) { - $notified = $dispatched['notifiable']; - - if (($notified === $notifiable || - $notified->getKey() == $notifiable->getKey()) && - get_class($dispatched['instance']) === $notification - ) { - return $this; - } - } - - $this->fail('The following expected notification were not dispatched: ['.$notification.']'); - }); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php deleted file mode 100644 index 413ccad8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php +++ /dev/null @@ -1,103 +0,0 @@ -data = $data; - - $this->database = $database; - } - - /** - * Check if the data is found in the given table. - * - * @param string $table - * @return bool - */ - public function matches($table) - { - return $this->database->table($table)->where($this->data)->count() > 0; - } - - /** - * Get the description of the failure. - * - * @param string $table - * @return string - */ - public function failureDescription($table) - { - return sprintf( - "a row in the table [%s] matches the attributes %s.\n\n%s", - $table, $this->toString(JSON_PRETTY_PRINT), $this->getAdditionalInfo($table) - ); - } - - /** - * Get additional info about the records found in the database table. - * - * @param string $table - * @return string - */ - protected function getAdditionalInfo($table) - { - $results = $this->database->table($table)->get(); - - if ($results->isEmpty()) { - return 'The table is empty'; - } - - $description = 'Found: '.json_encode($results->take($this->show), JSON_PRETTY_PRINT); - - if ($results->count() > $this->show) { - $description .= sprintf(' and %s others', $results->count() - $this->show); - } - - return $description; - } - - /** - * Get a string representation of the object. - * - * @param int $options - * @return string - */ - public function toString($options = 0) - { - return json_encode($this->data, $options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php deleted file mode 100644 index 7d44997a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php +++ /dev/null @@ -1,103 +0,0 @@ -data = $data; - - $this->database = $database; - } - - /** - * Check if the data is found in the given table. - * - * @param string $table - * @return bool - */ - public function matches($table) - { - return $this->database->table($table) - ->where($this->data)->whereNotNull('deleted_at')->count() > 0; - } - - /** - * Get the description of the failure. - * - * @param string $table - * @return string - */ - public function failureDescription($table) - { - return sprintf( - "any soft deleted row in the table [%s] matches the attributes %s.\n\n%s", - $table, $this->toString(), $this->getAdditionalInfo($table) - ); - } - - /** - * Get additional info about the records found in the database table. - * - * @param string $table - * @return string - */ - protected function getAdditionalInfo($table) - { - $results = $this->database->table($table)->get(); - - if ($results->isEmpty()) { - return 'The table is empty'; - } - - $description = 'Found: '.json_encode($results->take($this->show), JSON_PRETTY_PRINT); - - if ($results->count() > $this->show) { - $description .= sprintf(' and %s others', $results->count() - $this->show); - } - - return $description; - } - - /** - * Get a string representation of the object. - * - * @return string - */ - public function toString() - { - return json_encode($this->data); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php deleted file mode 100644 index 889a4532..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php +++ /dev/null @@ -1,26 +0,0 @@ -artisan('migrate:fresh'); - - $this->app[Kernel::class]->setArtisan(null); - - $this->beforeApplicationDestroyed(function () { - $this->artisan('migrate:rollback'); - - RefreshDatabaseState::$migrated = false; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php deleted file mode 100644 index 9870153b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php +++ /dev/null @@ -1,40 +0,0 @@ -app->make('db'); - - foreach ($this->connectionsToTransact() as $name) { - $database->connection($name)->beginTransaction(); - } - - $this->beforeApplicationDestroyed(function () use ($database) { - foreach ($this->connectionsToTransact() as $name) { - $connection = $database->connection($name); - - $connection->rollBack(); - $connection->disconnect(); - } - }); - } - - /** - * The database connections that should have transactions. - * - * @return array - */ - protected function connectionsToTransact() - { - return property_exists($this, 'connectionsToTransact') - ? $this->connectionsToTransact : [null]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php deleted file mode 100644 index 537b9e0c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php +++ /dev/null @@ -1,10 +0,0 @@ -usingInMemoryDatabase() - ? $this->refreshInMemoryDatabase() - : $this->refreshTestDatabase(); - } - - /** - * Determine if an in-memory database is being used. - * - * @return bool - */ - protected function usingInMemoryDatabase() - { - return config('database.connections')[ - config('database.default') - ]['database'] == ':memory:'; - } - - /** - * Refresh the in-memory database. - * - * @return void - */ - protected function refreshInMemoryDatabase() - { - $this->artisan('migrate'); - - $this->app[Kernel::class]->setArtisan(null); - } - - /** - * Refresh a conventional test database. - * - * @return void - */ - protected function refreshTestDatabase() - { - if (! RefreshDatabaseState::$migrated) { - $this->artisan('migrate:fresh'); - - $this->app[Kernel::class]->setArtisan(null); - - RefreshDatabaseState::$migrated = true; - } - - $this->beginDatabaseTransaction(); - } - - /** - * Begin a database transaction on the testing database. - * - * @return void - */ - public function beginDatabaseTransaction() - { - $database = $this->app->make('db'); - - foreach ($this->connectionsToTransact() as $name) { - $database->connection($name)->beginTransaction(); - } - - $this->beforeApplicationDestroyed(function () use ($database) { - foreach ($this->connectionsToTransact() as $name) { - $connection = $database->connection($name); - - $connection->rollBack(); - $connection->disconnect(); - } - }); - } - - /** - * The database connections that should have transactions. - * - * @return array - */ - protected function connectionsToTransact() - { - return property_exists($this, 'connectionsToTransact') - ? $this->connectionsToTransact : [null]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php deleted file mode 100644 index 1f330873..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php +++ /dev/null @@ -1,13 +0,0 @@ -app) { - $this->refreshApplication(); - } - - $this->setUpTraits(); - - foreach ($this->afterApplicationCreatedCallbacks as $callback) { - call_user_func($callback); - } - - Facade::clearResolvedInstances(); - - Model::setEventDispatcher($this->app['events']); - - $this->setUpHasRun = true; - } - - /** - * Refresh the application instance. - * - * @return void - */ - protected function refreshApplication() - { - $this->app = $this->createApplication(); - } - - /** - * Boot the testing helper traits. - * - * @return array - */ - protected function setUpTraits() - { - $uses = array_flip(class_uses_recursive(static::class)); - - if (isset($uses[RefreshDatabase::class])) { - $this->refreshDatabase(); - } - - if (isset($uses[DatabaseMigrations::class])) { - $this->runDatabaseMigrations(); - } - - if (isset($uses[DatabaseTransactions::class])) { - $this->beginDatabaseTransaction(); - } - - if (isset($uses[WithoutMiddleware::class])) { - $this->disableMiddlewareForAllTests(); - } - - if (isset($uses[WithoutEvents::class])) { - $this->disableEventsForAllTests(); - } - - if (isset($uses[WithFaker::class])) { - $this->setUpFaker(); - } - - return $uses; - } - - /** - * Clean up the testing environment before the next test. - * - * @return void - */ - protected function tearDown() - { - if ($this->app) { - foreach ($this->beforeApplicationDestroyedCallbacks as $callback) { - call_user_func($callback); - } - - $this->app->flush(); - - $this->app = null; - } - - $this->setUpHasRun = false; - - if (property_exists($this, 'serverVariables')) { - $this->serverVariables = []; - } - - if (property_exists($this, 'defaultHeaders')) { - $this->defaultHeaders = []; - } - - if (class_exists('Mockery')) { - if ($container = Mockery::getContainer()) { - $this->addToAssertionCount($container->mockery_getExpectationCount()); - } - - Mockery::close(); - } - - if (class_exists(Carbon::class)) { - Carbon::setTestNow(); - } - - $this->afterApplicationCreatedCallbacks = []; - $this->beforeApplicationDestroyedCallbacks = []; - - Artisan::forgetBootstrappers(); - } - - /** - * Register a callback to be run after the application is created. - * - * @param callable $callback - * @return void - */ - public function afterApplicationCreated(callable $callback) - { - $this->afterApplicationCreatedCallbacks[] = $callback; - - if ($this->setUpHasRun) { - call_user_func($callback); - } - } - - /** - * Register a callback to be run before the application is destroyed. - * - * @param callable $callback - * @return void - */ - protected function beforeApplicationDestroyed(callable $callback) - { - $this->beforeApplicationDestroyedCallbacks[] = $callback; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php deleted file mode 100644 index 0b7206ad..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php +++ /dev/null @@ -1,805 +0,0 @@ -baseResponse = $response; - } - - /** - * Create a new TestResponse from another response. - * - * @param \Illuminate\Http\Response $response - * @return static - */ - public static function fromBaseResponse($response) - { - return new static($response); - } - - /** - * Assert that the response has a successful status code. - * - * @return $this - */ - public function assertSuccessful() - { - PHPUnit::assertTrue( - $this->isSuccessful(), - 'Response status code ['.$this->getStatusCode().'] is not a successful status code.' - ); - - return $this; - } - - /** - * Assert that the response has the given status code. - * - * @param int $status - * @return $this - */ - public function assertStatus($status) - { - $actual = $this->getStatusCode(); - - PHPUnit::assertTrue( - $actual === $status, - "Expected status code {$status} but received {$actual}." - ); - - return $this; - } - - /** - * Assert whether the response is redirecting to a given URI. - * - * @param string $uri - * @return $this - */ - public function assertRedirect($uri = null) - { - PHPUnit::assertTrue( - $this->isRedirect(), 'Response status code ['.$this->getStatusCode().'] is not a redirect status code.' - ); - - if (! is_null($uri)) { - PHPUnit::assertEquals(app('url')->to($uri), $this->headers->get('Location')); - } - - return $this; - } - - /** - * Asserts that the response contains the given header and equals the optional value. - * - * @param string $headerName - * @param mixed $value - * @return $this - */ - public function assertHeader($headerName, $value = null) - { - PHPUnit::assertTrue( - $this->headers->has($headerName), "Header [{$headerName}] not present on response." - ); - - $actual = $this->headers->get($headerName); - - if (! is_null($value)) { - PHPUnit::assertEquals( - $value, $this->headers->get($headerName), - "Header [{$headerName}] was found, but value [{$actual}] does not match [{$value}]." - ); - } - - return $this; - } - - /** - * Asserts that the response does not contains the given header. - * - * @param string $headerName - * @return $this - */ - public function assertHeaderMissing($headerName) - { - PHPUnit::assertFalse( - $this->headers->has($headerName), "Unexpected header [{$headerName}] is present on response." - ); - - return $this; - } - - /** - * Asserts that the response contains the given cookie and equals the optional value. - * - * @param string $cookieName - * @param mixed $value - * @return $this - */ - public function assertPlainCookie($cookieName, $value = null) - { - $this->assertCookie($cookieName, $value, false); - - return $this; - } - - /** - * Asserts that the response contains the given cookie and equals the optional value. - * - * @param string $cookieName - * @param mixed $value - * @param bool $encrypted - * @return $this - */ - public function assertCookie($cookieName, $value = null, $encrypted = true) - { - PHPUnit::assertNotNull( - $cookie = $this->getCookie($cookieName), - "Cookie [{$cookieName}] not present on response." - ); - - if (! $cookie || is_null($value)) { - return $this; - } - - $cookieValue = $cookie->getValue(); - - $actual = $encrypted - ? app('encrypter')->decrypt($cookieValue) : $cookieValue; - - PHPUnit::assertEquals( - $value, $actual, - "Cookie [{$cookieName}] was found, but value [{$actual}] does not match [{$value}]." - ); - - return $this; - } - - /** - * Asserts that the response contains the given cookie and is expired. - * - * @param string $cookieName - * @return $this - */ - public function assertCookieExpired($cookieName) - { - PHPUnit::assertNotNull( - $cookie = $this->getCookie($cookieName), - "Cookie [{$cookieName}] not present on response." - ); - - $expiresAt = Carbon::createFromTimestamp($cookie->getExpiresTime()); - - PHPUnit::assertTrue( - $expiresAt->lessThan(Carbon::now()), - "Cookie [{$cookieName}] is not expired, it expires at [{$expiresAt}]." - ); - - return $this; - } - - /** - * Asserts that the response does not contains the given cookie. - * - * @param string $cookieName - * @return $this - */ - public function assertCookieMissing($cookieName) - { - PHPUnit::assertNull( - $this->getCookie($cookieName), - "Cookie [{$cookieName}] is present on response." - ); - - return $this; - } - - /** - * Get the given cookie from the response. - * - * @param string $cookieName - * @return \Symfony\Component\HttpFoundation\Cookie|null - */ - protected function getCookie($cookieName) - { - foreach ($this->headers->getCookies() as $cookie) { - if ($cookie->getName() === $cookieName) { - return $cookie; - } - } - } - - /** - * Assert that the given string is contained within the response. - * - * @param string $value - * @return $this - */ - public function assertSee($value) - { - PHPUnit::assertContains($value, $this->getContent()); - - return $this; - } - - /** - * Assert that the given string is contained within the response text. - * - * @param string $value - * @return $this - */ - public function assertSeeText($value) - { - PHPUnit::assertContains($value, strip_tags($this->getContent())); - - return $this; - } - - /** - * Assert that the given string is not contained within the response. - * - * @param string $value - * @return $this - */ - public function assertDontSee($value) - { - PHPUnit::assertNotContains($value, $this->getContent()); - - return $this; - } - - /** - * Assert that the given string is not contained within the response text. - * - * @param string $value - * @return $this - */ - public function assertDontSeeText($value) - { - PHPUnit::assertNotContains($value, strip_tags($this->getContent())); - - return $this; - } - - /** - * Assert that the response is a superset of the given JSON. - * - * @param array $data - * @param bool $strict - * @return $this - */ - public function assertJson(array $data, $strict = false) - { - PHPUnit::assertArraySubset( - $data, $this->decodeResponseJson(), $strict, $this->assertJsonMessage($data) - ); - - return $this; - } - - /** - * Get the assertion message for assertJson. - * - * @param array $data - * @return string - */ - protected function assertJsonMessage(array $data) - { - $expected = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); - - $actual = json_encode($this->decodeResponseJson(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); - - return 'Unable to find JSON: '.PHP_EOL.PHP_EOL. - "[{$expected}]".PHP_EOL.PHP_EOL. - 'within response JSON:'.PHP_EOL.PHP_EOL. - "[{$actual}].".PHP_EOL.PHP_EOL; - } - - /** - * Assert that the response has the exact given JSON. - * - * @param array $data - * @return $this - */ - public function assertExactJson(array $data) - { - $actual = json_encode(Arr::sortRecursive( - (array) $this->decodeResponseJson() - )); - - PHPUnit::assertEquals(json_encode(Arr::sortRecursive($data)), $actual); - - return $this; - } - - /** - * Assert that the response contains the given JSON fragment. - * - * @param array $data - * @return $this - */ - public function assertJsonFragment(array $data) - { - $actual = json_encode(Arr::sortRecursive( - (array) $this->decodeResponseJson() - )); - - foreach (Arr::sortRecursive($data) as $key => $value) { - $expected = substr(json_encode([$key => $value]), 1, -1); - - PHPUnit::assertTrue( - Str::contains($actual, $expected), - 'Unable to find JSON fragment: '.PHP_EOL.PHP_EOL. - "[{$expected}]".PHP_EOL.PHP_EOL. - 'within'.PHP_EOL.PHP_EOL. - "[{$actual}]." - ); - } - - return $this; - } - - /** - * Assert that the response does not contain the given JSON fragment. - * - * @param array $data - * @param bool $exact - * @return $this - */ - public function assertJsonMissing(array $data, $exact = false) - { - if ($exact) { - return $this->assertJsonMissingExact($data); - } - - $actual = json_encode(Arr::sortRecursive( - (array) $this->decodeResponseJson() - )); - - foreach (Arr::sortRecursive($data) as $key => $value) { - $unexpected = substr(json_encode([$key => $value]), 1, -1); - - PHPUnit::assertFalse( - Str::contains($actual, $unexpected), - 'Found unexpected JSON fragment: '.PHP_EOL.PHP_EOL. - "[{$unexpected}]".PHP_EOL.PHP_EOL. - 'within'.PHP_EOL.PHP_EOL. - "[{$actual}]." - ); - } - - return $this; - } - - /** - * Assert that the response does not contain the exact JSON fragment. - * - * @param array $data - * @return $this - */ - public function assertJsonMissingExact(array $data) - { - $actual = json_encode(Arr::sortRecursive( - (array) $this->decodeResponseJson() - )); - - foreach (Arr::sortRecursive($data) as $key => $value) { - $unexpected = substr(json_encode([$key => $value]), 1, -1); - - if (! Str::contains($actual, $unexpected)) { - return $this; - } - } - - PHPUnit::fail( - 'Found unexpected JSON fragment: '.PHP_EOL.PHP_EOL. - '['.json_encode($data).']'.PHP_EOL.PHP_EOL. - 'within'.PHP_EOL.PHP_EOL. - "[{$actual}]." - ); - } - - /** - * Assert that the response has a given JSON structure. - * - * @param array|null $structure - * @param array|null $responseData - * @return $this - */ - public function assertJsonStructure(array $structure = null, $responseData = null) - { - if (is_null($structure)) { - return $this->assertJson($this->json()); - } - - if (is_null($responseData)) { - $responseData = $this->decodeResponseJson(); - } - - foreach ($structure as $key => $value) { - if (is_array($value) && $key === '*') { - PHPUnit::assertInternalType('array', $responseData); - - foreach ($responseData as $responseDataItem) { - $this->assertJsonStructure($structure['*'], $responseDataItem); - } - } elseif (is_array($value)) { - PHPUnit::assertArrayHasKey($key, $responseData); - - $this->assertJsonStructure($structure[$key], $responseData[$key]); - } else { - PHPUnit::assertArrayHasKey($value, $responseData); - } - } - - return $this; - } - - /** - * Assert that the response JSON has the expected count of items at the given key. - * - * @param int $count - * @param string|null $key - * @return $this - */ - public function assertJsonCount(int $count, $key = null) - { - if ($key) { - PHPUnit::assertCount( - $count, data_get($this->json(), $key), - "Failed to assert that the response count matched the expected {$count}" - ); - - return $this; - } - - PHPUnit::assertCount($count, - $this->json(), - "Failed to assert that the response count matched the expected {$count}" - ); - - return $this; - } - - /** - * Assert that the response has the given JSON validation errors for the given keys. - * - * @param string|array $keys - * @return $this - */ - public function assertJsonValidationErrors($keys) - { - $errors = $this->json()['errors']; - - foreach (Arr::wrap($keys) as $key) { - PHPUnit::assertTrue( - isset($errors[$key]), - "Failed to find a validation error in the response for key: '{$key}'" - ); - } - - return $this; - } - - /** - * Validate and return the decoded response JSON. - * - * @return array - */ - public function decodeResponseJson() - { - $decodedResponse = json_decode($this->getContent(), true); - - if (is_null($decodedResponse) || $decodedResponse === false) { - if ($this->exception) { - throw $this->exception; - } else { - PHPUnit::fail('Invalid JSON was returned from the route.'); - } - } - - return $decodedResponse; - } - - /** - * Validate and return the decoded response JSON. - * - * @return array - */ - public function json() - { - return $this->decodeResponseJson(); - } - - /** - * Assert that the response view equals the given value. - * - * @param string $value - * @return $this - */ - public function assertViewIs($value) - { - $this->ensureResponseHasView(); - - PHPUnit::assertEquals($value, $this->original->getName()); - - return $this; - } - - /** - * Assert that the response view has a given piece of bound data. - * - * @param string|array $key - * @param mixed $value - * @return $this - */ - public function assertViewHas($key, $value = null) - { - if (is_array($key)) { - return $this->assertViewHasAll($key); - } - - $this->ensureResponseHasView(); - - if (is_null($value)) { - PHPUnit::assertArrayHasKey($key, $this->original->getData()); - } elseif ($value instanceof Closure) { - PHPUnit::assertTrue($value($this->original->$key)); - } else { - PHPUnit::assertEquals($value, $this->original->$key); - } - - return $this; - } - - /** - * Assert that the response view has a given list of bound data. - * - * @param array $bindings - * @return $this - */ - public function assertViewHasAll(array $bindings) - { - foreach ($bindings as $key => $value) { - if (is_int($key)) { - $this->assertViewHas($value); - } else { - $this->assertViewHas($key, $value); - } - } - - return $this; - } - - /** - * Assert that the response view is missing a piece of bound data. - * - * @param string $key - * @return $this - */ - public function assertViewMissing($key) - { - $this->ensureResponseHasView(); - - PHPUnit::assertArrayNotHasKey($key, $this->original->getData()); - - return $this; - } - - /** - * Ensure that the response has a view as its original content. - * - * @return $this - */ - protected function ensureResponseHasView() - { - if (! isset($this->original) || ! $this->original instanceof View) { - return PHPUnit::fail('The response is not a view.'); - } - - return $this; - } - - /** - * Assert that the session has a given value. - * - * @param string|array $key - * @param mixed $value - * @return $this - */ - public function assertSessionHas($key, $value = null) - { - if (is_array($key)) { - return $this->assertSessionHasAll($key); - } - - if (is_null($value)) { - PHPUnit::assertTrue( - $this->session()->has($key), - "Session is missing expected key [{$key}]." - ); - } else { - PHPUnit::assertEquals($value, app('session.store')->get($key)); - } - - return $this; - } - - /** - * Assert that the session has a given list of values. - * - * @param array $bindings - * @return $this - */ - public function assertSessionHasAll(array $bindings) - { - foreach ($bindings as $key => $value) { - if (is_int($key)) { - $this->assertSessionHas($value); - } else { - $this->assertSessionHas($key, $value); - } - } - - return $this; - } - - /** - * Assert that the session has the given errors. - * - * @param string|array $keys - * @param mixed $format - * @param string $errorBag - * @return $this - */ - public function assertSessionHasErrors($keys = [], $format = null, $errorBag = 'default') - { - $this->assertSessionHas('errors'); - - $keys = (array) $keys; - - $errors = app('session.store')->get('errors')->getBag($errorBag); - - foreach ($keys as $key => $value) { - if (is_int($key)) { - PHPUnit::assertTrue($errors->has($value), "Session missing error: $value"); - } else { - PHPUnit::assertContains($value, $errors->get($key, $format)); - } - } - - return $this; - } - - /** - * Assert that the session has the given errors. - * - * @param string $errorBag - * @param string|array $keys - * @param mixed $format - * @return $this - */ - public function assertSessionHasErrorsIn($errorBag, $keys = [], $format = null) - { - return $this->assertSessionHasErrors($keys, $format, $errorBag); - } - - /** - * Assert that the session does not have a given key. - * - * @param string|array $key - * @return $this - */ - public function assertSessionMissing($key) - { - if (is_array($key)) { - foreach ($key as $value) { - $this->assertSessionMissing($value); - } - } else { - PHPUnit::assertFalse( - $this->session()->has($key), - "Session has unexpected key [{$key}]." - ); - } - - return $this; - } - - /** - * Get the current session store. - * - * @return \Illuminate\Session\Store - */ - protected function session() - { - return app('session.store'); - } - - /** - * Dump the content from the response. - * - * @return void - */ - public function dump() - { - $content = $this->getContent(); - - $json = json_decode($content); - - if (json_last_error() === JSON_ERROR_NONE) { - $content = $json; - } - - dd($content); - } - - /** - * Dynamically access base response parameters. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->baseResponse->{$key}; - } - - /** - * Proxy isset() checks to the underlying base response. - * - * @param string $key - * @return mixed - */ - public function __isset($key) - { - return isset($this->baseResponse->{$key}); - } - - /** - * Handle dynamic calls into macros or pass missing methods to the base response. - * - * @param string $method - * @param array $args - * @return mixed - */ - public function __call($method, $args) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $args); - } - - return $this->baseResponse->{$method}(...$args); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php deleted file mode 100644 index 8eff5d41..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php +++ /dev/null @@ -1,47 +0,0 @@ -faker = $this->makeFaker(); - } - - /** - * Get the default Faker instance for a given locale. - * - * @param string $locale - * @return \Faker\Generator - */ - protected function faker($locale = null) - { - return is_null($locale) ? $this->faker : $this->makeFaker($locale); - } - - /** - * Create a Faker instance for the given locale. - * - * @param string $locale - * @return \Faker\Generator - */ - protected function makeFaker($locale = null) - { - return Factory::create($locale ?? Factory::DEFAULT_LOCALE); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php deleted file mode 100644 index fa5df3ce..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php +++ /dev/null @@ -1,22 +0,0 @@ -withoutEvents(); - } else { - throw new Exception('Unable to disable events. ApplicationTrait not used.'); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php deleted file mode 100644 index 269b532d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php +++ /dev/null @@ -1,22 +0,0 @@ -withoutMiddleware(); - } else { - throw new Exception('Unable to disable middleware. MakesHttpRequests trait not used.'); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php b/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php deleted file mode 100644 index 1463f68a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php +++ /dev/null @@ -1,98 +0,0 @@ -getValidationFactory()->make($request->all(), $validator); - } - - $validator->validate(); - - return $this->extractInputFromRules($request, $validator->getRules()); - } - - /** - * Validate the given request with the given rules. - * - * @param \Illuminate\Http\Request $request - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return array - */ - public function validate(Request $request, array $rules, - array $messages = [], array $customAttributes = []) - { - $this->getValidationFactory() - ->make($request->all(), $rules, $messages, $customAttributes) - ->validate(); - - return $this->extractInputFromRules($request, $rules); - } - - /** - * Get the request input based on the given validation rules. - * - * @param \Illuminate\Http\Request $request - * @param array $rules - * @return array - */ - protected function extractInputFromRules(Request $request, array $rules) - { - return $request->only(collect($rules)->keys()->map(function ($rule) { - return Str::contains($rule, '.') ? explode('.', $rule)[0] : $rule; - })->unique()->toArray()); - } - - /** - * Validate the given request with the given rules. - * - * @param string $errorBag - * @param \Illuminate\Http\Request $request - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return array - * - * @throws \Illuminate\Validation\ValidationException - */ - public function validateWithBag($errorBag, Request $request, array $rules, - array $messages = [], array $customAttributes = []) - { - try { - return $this->validate($request, $rules, $messages, $customAttributes); - } catch (ValidationException $e) { - $e->errorBag = $errorBag; - - throw $e; - } - } - - /** - * Get a validation factory instance. - * - * @return \Illuminate\Contracts\Validation\Factory - */ - protected function getValidationFactory() - { - return app(Factory::class); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php b/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php deleted file mode 100644 index cabf0407..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php +++ /dev/null @@ -1,979 +0,0 @@ -abort($code, $message, $headers); - } -} - -if (! function_exists('abort_if')) { - /** - * Throw an HttpException with the given data if the given condition is true. - * - * @param bool $boolean - * @param int $code - * @param string $message - * @param array $headers - * @return void - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - */ - function abort_if($boolean, $code, $message = '', array $headers = []) - { - if ($boolean) { - abort($code, $message, $headers); - } - } -} - -if (! function_exists('abort_unless')) { - /** - * Throw an HttpException with the given data unless the given condition is true. - * - * @param bool $boolean - * @param int $code - * @param string $message - * @param array $headers - * @return void - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - */ - function abort_unless($boolean, $code, $message = '', array $headers = []) - { - if (! $boolean) { - abort($code, $message, $headers); - } - } -} - -if (! function_exists('action')) { - /** - * Generate the URL to a controller action. - * - * @param string $name - * @param array $parameters - * @param bool $absolute - * @return string - */ - function action($name, $parameters = [], $absolute = true) - { - return app('url')->action($name, $parameters, $absolute); - } -} - -if (! function_exists('app')) { - /** - * Get the available container instance. - * - * @param string $abstract - * @param array $parameters - * @return mixed|\Illuminate\Foundation\Application - */ - function app($abstract = null, array $parameters = []) - { - if (is_null($abstract)) { - return Container::getInstance(); - } - - return Container::getInstance()->make($abstract, $parameters); - } -} - -if (! function_exists('app_path')) { - /** - * Get the path to the application folder. - * - * @param string $path - * @return string - */ - function app_path($path = '') - { - return app('path').($path ? DIRECTORY_SEPARATOR.$path : $path); - } -} - -if (! function_exists('asset')) { - /** - * Generate an asset path for the application. - * - * @param string $path - * @param bool $secure - * @return string - */ - function asset($path, $secure = null) - { - return app('url')->asset($path, $secure); - } -} - -if (! function_exists('auth')) { - /** - * Get the available auth instance. - * - * @param string|null $guard - * @return \Illuminate\Contracts\Auth\Factory|\Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard - */ - function auth($guard = null) - { - if (is_null($guard)) { - return app(AuthFactory::class); - } - - return app(AuthFactory::class)->guard($guard); - } -} - -if (! function_exists('back')) { - /** - * Create a new redirect response to the previous location. - * - * @param int $status - * @param array $headers - * @param mixed $fallback - * @return \Illuminate\Http\RedirectResponse - */ - function back($status = 302, $headers = [], $fallback = false) - { - return app('redirect')->back($status, $headers, $fallback); - } -} - -if (! function_exists('base_path')) { - /** - * Get the path to the base of the install. - * - * @param string $path - * @return string - */ - function base_path($path = '') - { - return app()->basePath().($path ? DIRECTORY_SEPARATOR.$path : $path); - } -} - -if (! function_exists('bcrypt')) { - /** - * Hash the given value. - * - * @param string $value - * @param array $options - * @return string - */ - function bcrypt($value, $options = []) - { - return app('hash')->make($value, $options); - } -} - -if (! function_exists('broadcast')) { - /** - * Begin broadcasting an event. - * - * @param mixed|null $event - * @return \Illuminate\Broadcasting\PendingBroadcast - */ - function broadcast($event = null) - { - return app(BroadcastFactory::class)->event($event); - } -} - -if (! function_exists('cache')) { - /** - * Get / set the specified cache value. - * - * If an array is passed, we'll assume you want to put to the cache. - * - * @param dynamic key|key,default|data,expiration|null - * @return mixed|\Illuminate\Cache\CacheManager - * - * @throws \Exception - */ - function cache() - { - $arguments = func_get_args(); - - if (empty($arguments)) { - return app('cache'); - } - - if (is_string($arguments[0])) { - return app('cache')->get($arguments[0], $arguments[1] ?? null); - } - - if (! is_array($arguments[0])) { - throw new Exception( - 'When setting a value in the cache, you must pass an array of key / value pairs.' - ); - } - - if (! isset($arguments[1])) { - throw new Exception( - 'You must specify an expiration time when setting a value in the cache.' - ); - } - - return app('cache')->put(key($arguments[0]), reset($arguments[0]), $arguments[1]); - } -} - -if (! function_exists('config')) { - /** - * Get / set the specified configuration value. - * - * If an array is passed as the key, we will assume you want to set an array of values. - * - * @param array|string $key - * @param mixed $default - * @return mixed|\Illuminate\Config\Repository - */ - function config($key = null, $default = null) - { - if (is_null($key)) { - return app('config'); - } - - if (is_array($key)) { - return app('config')->set($key); - } - - return app('config')->get($key, $default); - } -} - -if (! function_exists('config_path')) { - /** - * Get the configuration path. - * - * @param string $path - * @return string - */ - function config_path($path = '') - { - return app()->make('path.config').($path ? DIRECTORY_SEPARATOR.$path : $path); - } -} - -if (! function_exists('cookie')) { - /** - * Create a new cookie instance. - * - * @param string $name - * @param string $value - * @param int $minutes - * @param string $path - * @param string $domain - * @param bool $secure - * @param bool $httpOnly - * @param bool $raw - * @param string|null $sameSite - * @return \Illuminate\Cookie\CookieJar|\Symfony\Component\HttpFoundation\Cookie - */ - function cookie($name = null, $value = null, $minutes = 0, $path = null, $domain = null, $secure = false, $httpOnly = true, $raw = false, $sameSite = null) - { - $cookie = app(CookieFactory::class); - - if (is_null($name)) { - return $cookie; - } - - return $cookie->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite); - } -} - -if (! function_exists('csrf_field')) { - /** - * Generate a CSRF token form field. - * - * @return \Illuminate\Support\HtmlString - */ - function csrf_field() - { - return new HtmlString(''); - } -} - -if (! function_exists('csrf_token')) { - /** - * Get the CSRF token value. - * - * @return string - * - * @throws \RuntimeException - */ - function csrf_token() - { - $session = app('session'); - - if (isset($session)) { - return $session->token(); - } - - throw new RuntimeException('Application session store not set.'); - } -} - -if (! function_exists('database_path')) { - /** - * Get the database path. - * - * @param string $path - * @return string - */ - function database_path($path = '') - { - return app()->databasePath($path); - } -} - -if (! function_exists('decrypt')) { - /** - * Decrypt the given value. - * - * @param string $value - * @return string - */ - function decrypt($value) - { - return app('encrypter')->decrypt($value); - } -} - -if (! function_exists('dispatch')) { - /** - * Dispatch a job to its appropriate handler. - * - * @param mixed $job - * @return \Illuminate\Foundation\Bus\PendingDispatch - */ - function dispatch($job) - { - return new PendingDispatch($job); - } -} - -if (! function_exists('dispatch_now')) { - /** - * Dispatch a command to its appropriate handler in the current process. - * - * @param mixed $job - * @param mixed $handler - * @return mixed - */ - function dispatch_now($job, $handler = null) - { - return app(Dispatcher::class)->dispatchNow($job, $handler); - } -} - -if (! function_exists('elixir')) { - /** - * Get the path to a versioned Elixir file. - * - * @param string $file - * @param string $buildDirectory - * @return string - * - * @throws \InvalidArgumentException - */ - function elixir($file, $buildDirectory = 'build') - { - static $manifest = []; - static $manifestPath; - - if (empty($manifest) || $manifestPath !== $buildDirectory) { - $path = public_path($buildDirectory.'/rev-manifest.json'); - - if (file_exists($path)) { - $manifest = json_decode(file_get_contents($path), true); - $manifestPath = $buildDirectory; - } - } - - $file = ltrim($file, '/'); - - if (isset($manifest[$file])) { - return '/'.trim($buildDirectory.'/'.$manifest[$file], '/'); - } - - $unversioned = public_path($file); - - if (file_exists($unversioned)) { - return '/'.trim($file, '/'); - } - - throw new InvalidArgumentException("File {$file} not defined in asset manifest."); - } -} - -if (! function_exists('encrypt')) { - /** - * Encrypt the given value. - * - * @param mixed $value - * @return string - */ - function encrypt($value) - { - return app('encrypter')->encrypt($value); - } -} - -if (! function_exists('event')) { - /** - * Dispatch an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - function event(...$args) - { - return app('events')->dispatch(...$args); - } -} - -if (! function_exists('factory')) { - /** - * Create a model factory builder for a given class, name, and amount. - * - * @param dynamic class|class,name|class,amount|class,name,amount - * @return \Illuminate\Database\Eloquent\FactoryBuilder - */ - function factory() - { - $factory = app(EloquentFactory::class); - - $arguments = func_get_args(); - - if (isset($arguments[1]) && is_string($arguments[1])) { - return $factory->of($arguments[0], $arguments[1])->times($arguments[2] ?? null); - } elseif (isset($arguments[1])) { - return $factory->of($arguments[0])->times($arguments[1]); - } - - return $factory->of($arguments[0]); - } -} - -if (! function_exists('info')) { - /** - * Write some information to the log. - * - * @param string $message - * @param array $context - * @return void - */ - function info($message, $context = []) - { - app('log')->info($message, $context); - } -} - -if (! function_exists('logger')) { - /** - * Log a debug message to the logs. - * - * @param string $message - * @param array $context - * @return \Illuminate\Contracts\Logging\Log|null - */ - function logger($message = null, array $context = []) - { - if (is_null($message)) { - return app('log'); - } - - return app('log')->debug($message, $context); - } -} - -if (! function_exists('method_field')) { - /** - * Generate a form field to spoof the HTTP verb used by forms. - * - * @param string $method - * @return \Illuminate\Support\HtmlString - */ - function method_field($method) - { - return new HtmlString(''); - } -} - -if (! function_exists('mix')) { - /** - * Get the path to a versioned Mix file. - * - * @param string $path - * @param string $manifestDirectory - * @return \Illuminate\Support\HtmlString - * - * @throws \Exception - */ - function mix($path, $manifestDirectory = '') - { - static $manifests = []; - - if (! Str::startsWith($path, '/')) { - $path = "/{$path}"; - } - - if ($manifestDirectory && ! Str::startsWith($manifestDirectory, '/')) { - $manifestDirectory = "/{$manifestDirectory}"; - } - - if (file_exists(public_path($manifestDirectory.'/hot'))) { - $url = file_get_contents(public_path($manifestDirectory.'/hot')); - - if (Str::startsWith($url, ['http://', 'https://'])) { - return new HtmlString(Str::after($url, ':').$path); - } - - return new HtmlString("//localhost:8080{$path}"); - } - - $manifestPath = public_path($manifestDirectory.'/mix-manifest.json'); - - if (! isset($manifests[$manifestPath])) { - if (! file_exists($manifestPath)) { - throw new Exception('The Mix manifest does not exist.'); - } - - $manifests[$manifestPath] = json_decode(file_get_contents($manifestPath), true); - } - - $manifest = $manifests[$manifestPath]; - - if (! isset($manifest[$path])) { - report(new Exception("Unable to locate Mix file: {$path}.")); - - if (! app('config')->get('app.debug')) { - return $path; - } - } - - return new HtmlString($manifestDirectory.$manifest[$path]); - } -} - -if (! function_exists('now')) { - /** - * Create a new Carbon instance for the current time. - * - * @param \DateTimeZone|string|null $tz - * @return \Illuminate\Support\Carbon - */ - function now($tz = null) - { - return Carbon::now($tz); - } -} - -if (! function_exists('old')) { - /** - * Retrieve an old input item. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - function old($key = null, $default = null) - { - return app('request')->old($key, $default); - } -} - -if (! function_exists('policy')) { - /** - * Get a policy instance for a given class. - * - * @param object|string $class - * @return mixed - * - * @throws \InvalidArgumentException - */ - function policy($class) - { - return app(Gate::class)->getPolicyFor($class); - } -} - -if (! function_exists('public_path')) { - /** - * Get the path to the public folder. - * - * @param string $path - * @return string - */ - function public_path($path = '') - { - return app()->make('path.public').($path ? DIRECTORY_SEPARATOR.ltrim($path, DIRECTORY_SEPARATOR) : $path); - } -} - -if (! function_exists('redirect')) { - /** - * Get an instance of the redirector. - * - * @param string|null $to - * @param int $status - * @param array $headers - * @param bool $secure - * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse - */ - function redirect($to = null, $status = 302, $headers = [], $secure = null) - { - if (is_null($to)) { - return app('redirect'); - } - - return app('redirect')->to($to, $status, $headers, $secure); - } -} - -if (! function_exists('report')) { - /** - * Report an exception. - * - * @param \Exception $exception - * @return void - */ - function report($exception) - { - if ($exception instanceof Throwable && - ! $exception instanceof Exception) { - $exception = new FatalThrowableError($exception); - } - - app(ExceptionHandler::class)->report($exception); - } -} - -if (! function_exists('request')) { - /** - * Get an instance of the current request or an input item from the request. - * - * @param array|string $key - * @param mixed $default - * @return \Illuminate\Http\Request|string|array - */ - function request($key = null, $default = null) - { - if (is_null($key)) { - return app('request'); - } - - if (is_array($key)) { - return app('request')->only($key); - } - - $value = app('request')->__get($key); - - return is_null($value) ? value($default) : $value; - } -} - -if (! function_exists('rescue')) { - /** - * Catch a potential exception and return a default value. - * - * @param callable $callback - * @param mixed $rescue - * @return mixed - */ - function rescue(callable $callback, $rescue = null) - { - try { - return $callback(); - } catch (Throwable $e) { - report($e); - - return value($rescue); - } - } -} - -if (! function_exists('resolve')) { - /** - * Resolve a service from the container. - * - * @param string $name - * @return mixed - */ - function resolve($name) - { - return app($name); - } -} - -if (! function_exists('resource_path')) { - /** - * Get the path to the resources folder. - * - * @param string $path - * @return string - */ - function resource_path($path = '') - { - return app()->resourcePath($path); - } -} - -if (! function_exists('response')) { - /** - * Return a new response from the application. - * - * @param string $content - * @param int $status - * @param array $headers - * @return \Symfony\Component\HttpFoundation\Response|\Illuminate\Contracts\Routing\ResponseFactory - */ - function response($content = '', $status = 200, array $headers = []) - { - $factory = app(ResponseFactory::class); - - if (func_num_args() === 0) { - return $factory; - } - - return $factory->make($content, $status, $headers); - } -} - -if (! function_exists('route')) { - /** - * Generate the URL to a named route. - * - * @param string $name - * @param array $parameters - * @param bool $absolute - * @return string - */ - function route($name, $parameters = [], $absolute = true) - { - return app('url')->route($name, $parameters, $absolute); - } -} - -if (! function_exists('secure_asset')) { - /** - * Generate an asset path for the application. - * - * @param string $path - * @return string - */ - function secure_asset($path) - { - return asset($path, true); - } -} - -if (! function_exists('secure_url')) { - /** - * Generate a HTTPS url for the application. - * - * @param string $path - * @param mixed $parameters - * @return string - */ - function secure_url($path, $parameters = []) - { - return url($path, $parameters, true); - } -} - -if (! function_exists('session')) { - /** - * Get / set the specified session value. - * - * If an array is passed as the key, we will assume you want to set an array of values. - * - * @param array|string $key - * @param mixed $default - * @return mixed|\Illuminate\Session\Store|\Illuminate\Session\SessionManager - */ - function session($key = null, $default = null) - { - if (is_null($key)) { - return app('session'); - } - - if (is_array($key)) { - return app('session')->put($key); - } - - return app('session')->get($key, $default); - } -} - -if (! function_exists('storage_path')) { - /** - * Get the path to the storage folder. - * - * @param string $path - * @return string - */ - function storage_path($path = '') - { - return app('path.storage').($path ? DIRECTORY_SEPARATOR.$path : $path); - } -} - -if (! function_exists('today')) { - /** - * Create a new Carbon instance for the current date. - * - * @param \DateTimeZone|string|null $tz - * @return \Illuminate\Support\Carbon - */ - function today($tz = null) - { - return Carbon::today($tz); - } -} - -if (! function_exists('trans')) { - /** - * Translate the given message. - * - * @param string $key - * @param array $replace - * @param string $locale - * @return \Illuminate\Contracts\Translation\Translator|string|array|null - */ - function trans($key = null, $replace = [], $locale = null) - { - if (is_null($key)) { - return app('translator'); - } - - return app('translator')->trans($key, $replace, $locale); - } -} - -if (! function_exists('trans_choice')) { - /** - * Translates the given message based on a count. - * - * @param string $key - * @param int|array|\Countable $number - * @param array $replace - * @param string $locale - * @return string - */ - function trans_choice($key, $number, array $replace = [], $locale = null) - { - return app('translator')->transChoice($key, $number, $replace, $locale); - } -} - -if (! function_exists('__')) { - /** - * Translate the given message. - * - * @param string $key - * @param array $replace - * @param string $locale - * @return string|array|null - */ - function __($key, $replace = [], $locale = null) - { - return app('translator')->getFromJson($key, $replace, $locale); - } -} - -if (! function_exists('url')) { - /** - * Generate a url for the application. - * - * @param string $path - * @param mixed $parameters - * @param bool $secure - * @return \Illuminate\Contracts\Routing\UrlGenerator|string - */ - function url($path = null, $parameters = [], $secure = null) - { - if (is_null($path)) { - return app(UrlGenerator::class); - } - - return app(UrlGenerator::class)->to($path, $parameters, $secure); - } -} - -if (! function_exists('validator')) { - /** - * Create a new Validator instance. - * - * @param array $data - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return \Illuminate\Contracts\Validation\Validator - */ - function validator(array $data = [], array $rules = [], array $messages = [], array $customAttributes = []) - { - $factory = app(ValidationFactory::class); - - if (func_num_args() === 0) { - return $factory; - } - - return $factory->make($data, $rules, $messages, $customAttributes); - } -} - -if (! function_exists('view')) { - /** - * Get the evaluated view contents for the given view. - * - * @param string $view - * @param array $data - * @param array $mergeData - * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory - */ - function view($view = null, $data = [], $mergeData = []) - { - $factory = app(ViewFactory::class); - - if (func_num_args() === 0) { - return $factory; - } - - return $factory->make($view, $data, $mergeData); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub b/vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub deleted file mode 100644 index aadbe746..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub +++ /dev/null @@ -1,21 +0,0 @@ - $this->cost($options), - ]); - - if ($hash === false) { - throw new RuntimeException('Bcrypt hashing not supported.'); - } - - return $hash; - } - - /** - * Check the given plain value against a hash. - * - * @param string $value - * @param string $hashedValue - * @param array $options - * @return bool - */ - public function check($value, $hashedValue, array $options = []) - { - if (strlen($hashedValue) === 0) { - return false; - } - - return password_verify($value, $hashedValue); - } - - /** - * Check if the given hash has been hashed using the given options. - * - * @param string $hashedValue - * @param array $options - * @return bool - */ - public function needsRehash($hashedValue, array $options = []) - { - return password_needs_rehash($hashedValue, PASSWORD_BCRYPT, [ - 'cost' => $this->cost($options), - ]); - } - - /** - * Set the default password work factor. - * - * @param int $rounds - * @return $this - */ - public function setRounds($rounds) - { - $this->rounds = (int) $rounds; - - return $this; - } - - /** - * Extract the cost value from the options array. - * - * @param array $options - * @return int - */ - protected function cost(array $options = []) - { - return $options['rounds'] ?? $this->rounds; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php deleted file mode 100755 index 85581f40..00000000 --- a/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php +++ /dev/null @@ -1,37 +0,0 @@ -app->singleton('hash', function () { - return new BcryptHasher; - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['hash']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/composer.json b/vendor/laravel/framework/src/Illuminate/Hashing/composer.json deleted file mode 100755 index d727f86c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Hashing/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "illuminate/hashing", - "description": "The Illuminate Hashing package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Hashing\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php deleted file mode 100644 index 492c131b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php +++ /dev/null @@ -1,157 +0,0 @@ -header('CONTENT_TYPE'), ['/json', '+json']); - } - - /** - * Determine if the current request probably expects a JSON response. - * - * @return bool - */ - public function expectsJson() - { - return ($this->ajax() && ! $this->pjax()) || $this->wantsJson(); - } - - /** - * Determine if the current request is asking for JSON in return. - * - * @return bool - */ - public function wantsJson() - { - $acceptable = $this->getAcceptableContentTypes(); - - return isset($acceptable[0]) && Str::contains($acceptable[0], ['/json', '+json']); - } - - /** - * Determines whether the current requests accepts a given content type. - * - * @param string|array $contentTypes - * @return bool - */ - public function accepts($contentTypes) - { - $accepts = $this->getAcceptableContentTypes(); - - if (count($accepts) === 0) { - return true; - } - - $types = (array) $contentTypes; - - foreach ($accepts as $accept) { - if ($accept === '*/*' || $accept === '*') { - return true; - } - - foreach ($types as $type) { - if ($this->matchesType($accept, $type) || $accept === strtok($type, '/').'/*') { - return true; - } - } - } - - return false; - } - - /** - * Return the most suitable content type from the given array based on content negotiation. - * - * @param string|array $contentTypes - * @return string|null - */ - public function prefers($contentTypes) - { - $accepts = $this->getAcceptableContentTypes(); - - $contentTypes = (array) $contentTypes; - - foreach ($accepts as $accept) { - if (in_array($accept, ['*/*', '*'])) { - return $contentTypes[0]; - } - - foreach ($contentTypes as $contentType) { - $type = $contentType; - - if (! is_null($mimeType = $this->getMimeType($contentType))) { - $type = $mimeType; - } - - if ($this->matchesType($type, $accept) || $accept === strtok($type, '/').'/*') { - return $contentType; - } - } - } - } - - /** - * Determines whether a request accepts JSON. - * - * @return bool - */ - public function acceptsJson() - { - return $this->accepts('application/json'); - } - - /** - * Determines whether a request accepts HTML. - * - * @return bool - */ - public function acceptsHtml() - { - return $this->accepts('text/html'); - } - - /** - * Get the data format expected in the response. - * - * @param string $default - * @return string - */ - public function format($default = 'html') - { - foreach ($this->getAcceptableContentTypes() as $type) { - if ($format = $this->getFormat($type)) { - return $format; - } - } - - return $default; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php deleted file mode 100644 index 221d9387..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php +++ /dev/null @@ -1,64 +0,0 @@ -hasSession() ? $this->session()->getOldInput($key, $default) : $default; - } - - /** - * Flash the input for the current request to the session. - * - * @return void - */ - public function flash() - { - $this->session()->flashInput($this->input()); - } - - /** - * Flash only some of the input to the session. - * - * @param array|mixed $keys - * @return void - */ - public function flashOnly($keys) - { - $this->session()->flashInput( - $this->only(is_array($keys) ? $keys : func_get_args()) - ); - } - - /** - * Flash only some of the input to the session. - * - * @param array|mixed $keys - * @return void - */ - public function flashExcept($keys) - { - $this->session()->flashInput( - $this->except(is_array($keys) ? $keys : func_get_args()) - ); - } - - /** - * Flush all of the old input from the session. - * - * @return void - */ - public function flush() - { - $this->session()->flashInput([]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php deleted file mode 100644 index c66c49e7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php +++ /dev/null @@ -1,375 +0,0 @@ -retrieveItem('server', $key, $default); - } - - /** - * Determine if a header is set on the request. - * - * @param string $key - * @return bool - */ - public function hasHeader($key) - { - return ! is_null($this->header($key)); - } - - /** - * Retrieve a header from the request. - * - * @param string $key - * @param string|array|null $default - * @return string|array - */ - public function header($key = null, $default = null) - { - return $this->retrieveItem('headers', $key, $default); - } - - /** - * Get the bearer token from the request headers. - * - * @return string|null - */ - public function bearerToken() - { - $header = $this->header('Authorization', ''); - - if (Str::startsWith($header, 'Bearer ')) { - return Str::substr($header, 7); - } - } - - /** - * Determine if the request contains a given input item key. - * - * @param string|array $key - * @return bool - */ - public function exists($key) - { - return $this->has($key); - } - - /** - * Determine if the request contains a given input item key. - * - * @param string|array $key - * @return bool - */ - public function has($key) - { - $keys = is_array($key) ? $key : func_get_args(); - - $input = $this->all(); - - foreach ($keys as $value) { - if (! Arr::has($input, $value)) { - return false; - } - } - - return true; - } - - /** - * Determine if the request contains any of the given inputs. - * - * @param dynamic $key - * @return bool - */ - public function hasAny(...$keys) - { - $input = $this->all(); - - foreach ($keys as $key) { - if (Arr::has($input, $key)) { - return true; - } - } - - return false; - } - - /** - * Determine if the request contains a non-empty value for an input item. - * - * @param string|array $key - * @return bool - */ - public function filled($key) - { - $keys = is_array($key) ? $key : func_get_args(); - - foreach ($keys as $value) { - if ($this->isEmptyString($value)) { - return false; - } - } - - return true; - } - - /** - * Determine if the given input key is an empty string for "has". - * - * @param string $key - * @return bool - */ - protected function isEmptyString($key) - { - $value = $this->input($key); - - return ! is_bool($value) && ! is_array($value) && trim((string) $value) === ''; - } - - /** - * Get the keys for all of the input and files. - * - * @return array - */ - public function keys() - { - return array_merge(array_keys($this->input()), $this->files->keys()); - } - - /** - * Get all of the input and files for the request. - * - * @param array|mixed $keys - * @return array - */ - public function all($keys = null) - { - $input = array_replace_recursive($this->input(), $this->allFiles()); - - if (! $keys) { - return $input; - } - - $results = []; - - foreach (is_array($keys) ? $keys : func_get_args() as $key) { - Arr::set($results, $key, Arr::get($input, $key)); - } - - return $results; - } - - /** - * Retrieve an input item from the request. - * - * @param string $key - * @param string|array|null $default - * @return string|array - */ - public function input($key = null, $default = null) - { - return data_get( - $this->getInputSource()->all() + $this->query->all(), $key, $default - ); - } - - /** - * Get a subset containing the provided keys with values from the input data. - * - * @param array|mixed $keys - * @return array - */ - public function only($keys) - { - $results = []; - - $input = $this->all(); - - $placeholder = new stdClass; - - foreach (is_array($keys) ? $keys : func_get_args() as $key) { - $value = data_get($input, $key, $placeholder); - - if ($value !== $placeholder) { - Arr::set($results, $key, $value); - } - } - - return $results; - } - - /** - * Get all of the input except for a specified array of items. - * - * @param array|mixed $keys - * @return array - */ - public function except($keys) - { - $keys = is_array($keys) ? $keys : func_get_args(); - - $results = $this->all(); - - Arr::forget($results, $keys); - - return $results; - } - - /** - * Retrieve a query string item from the request. - * - * @param string $key - * @param string|array|null $default - * @return string|array - */ - public function query($key = null, $default = null) - { - return $this->retrieveItem('query', $key, $default); - } - - /** - * Retrieve a request payload item from the request. - * - * @param string $key - * @param string|array|null $default - * - * @return string|array - */ - public function post($key = null, $default = null) - { - return $this->retrieveItem('request', $key, $default); - } - - /** - * Determine if a cookie is set on the request. - * - * @param string $key - * @return bool - */ - public function hasCookie($key) - { - return ! is_null($this->cookie($key)); - } - - /** - * Retrieve a cookie from the request. - * - * @param string $key - * @param string|array|null $default - * @return string|array - */ - public function cookie($key = null, $default = null) - { - return $this->retrieveItem('cookies', $key, $default); - } - - /** - * Get an array of all of the files on the request. - * - * @return array - */ - public function allFiles() - { - $files = $this->files->all(); - - return $this->convertedFiles - ? $this->convertedFiles - : $this->convertedFiles = $this->convertUploadedFiles($files); - } - - /** - * Convert the given array of Symfony UploadedFiles to custom Laravel UploadedFiles. - * - * @param array $files - * @return array - */ - protected function convertUploadedFiles(array $files) - { - return array_map(function ($file) { - if (is_null($file) || (is_array($file) && empty(array_filter($file)))) { - return $file; - } - - return is_array($file) - ? $this->convertUploadedFiles($file) - : UploadedFile::createFromBase($file); - }, $files); - } - - /** - * Determine if the uploaded data contains a file. - * - * @param string $key - * @return bool - */ - public function hasFile($key) - { - if (! is_array($files = $this->file($key))) { - $files = [$files]; - } - - foreach ($files as $file) { - if ($this->isValidFile($file)) { - return true; - } - } - - return false; - } - - /** - * Check that the given file is a valid file instance. - * - * @param mixed $file - * @return bool - */ - protected function isValidFile($file) - { - return $file instanceof SplFileInfo && $file->getPath() !== ''; - } - - /** - * Retrieve a file from the request. - * - * @param string $key - * @param mixed $default - * @return \Illuminate\Http\UploadedFile|array|null - */ - public function file($key = null, $default = null) - { - return data_get($this->allFiles(), $key, $default); - } - - /** - * Retrieve a parameter item from a given source. - * - * @param string $source - * @param string $key - * @param string|array|null $default - * @return string|array - */ - protected function retrieveItem($source, $key, $default) - { - if (is_null($key)) { - return $this->$source->all(); - } - - return $this->$source->get($key, $default); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php b/vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php deleted file mode 100644 index b27052f0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php +++ /dev/null @@ -1,37 +0,0 @@ -response = $response; - } - - /** - * Get the underlying response instance. - * - * @return \Symfony\Component\HttpFoundation\Response - */ - public function getResponse() - { - return $this->response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php b/vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php deleted file mode 100644 index 640b8ec7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php +++ /dev/null @@ -1,23 +0,0 @@ -getRealPath(); - } - - /** - * Get the file's extension. - * - * @return string - */ - public function extension() - { - return $this->guessExtension(); - } - - /** - * Get the file's extension supplied by the client. - * - * @return string - */ - public function clientExtension() - { - return $this->guessClientExtension(); - } - - /** - * Get a filename for the file. - * - * @param string $path - * @return string - */ - public function hashName($path = null) - { - if ($path) { - $path = rtrim($path, '/').'/'; - } - - $hash = $this->hashName ?: $this->hashName = Str::random(40); - - return $path.$hash.'.'.$this->guessExtension(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php b/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php deleted file mode 100755 index 3e065d86..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php +++ /dev/null @@ -1,114 +0,0 @@ -encodingOptions = $options; - - parent::__construct($data, $status, $headers); - } - - /** - * Sets the JSONP callback. - * - * @param string|null $callback - * @return $this - */ - public function withCallback($callback = null) - { - return $this->setCallback($callback); - } - - /** - * Get the json_decoded data from the response. - * - * @param bool $assoc - * @param int $depth - * @return mixed - */ - public function getData($assoc = false, $depth = 512) - { - return json_decode($this->data, $assoc, $depth); - } - - /** - * {@inheritdoc} - */ - public function setData($data = []) - { - $this->original = $data; - - if ($data instanceof Jsonable) { - $this->data = $data->toJson($this->encodingOptions); - } elseif ($data instanceof JsonSerializable) { - $this->data = json_encode($data->jsonSerialize(), $this->encodingOptions); - } elseif ($data instanceof Arrayable) { - $this->data = json_encode($data->toArray(), $this->encodingOptions); - } else { - $this->data = json_encode($data, $this->encodingOptions); - } - - if (! $this->hasValidJson(json_last_error())) { - throw new InvalidArgumentException(json_last_error_msg()); - } - - return $this->update(); - } - - /** - * Determine if an error occurred during JSON encoding. - * - * @param int $jsonError - * @return bool - */ - protected function hasValidJson($jsonError) - { - return $jsonError === JSON_ERROR_NONE || - ($jsonError === JSON_ERROR_UNSUPPORTED_TYPE && - $this->hasEncodingOption(JSON_PARTIAL_OUTPUT_ON_ERROR)); - } - - /** - * {@inheritdoc} - */ - public function setEncodingOptions($options) - { - $this->encodingOptions = (int) $options; - - return $this->setData($this->getData()); - } - - /** - * Determine if a JSON encoding option is set. - * - * @param int $option - * @return bool - */ - public function hasEncodingOption($option) - { - return (bool) ($this->encodingOptions & $option); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php b/vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php deleted file mode 100644 index 2a93e21d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php +++ /dev/null @@ -1,27 +0,0 @@ -isNotModified($request); - } - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php b/vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php deleted file mode 100644 index 66edce44..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php +++ /dev/null @@ -1,24 +0,0 @@ -headers->set('X-Frame-Options', 'SAMEORIGIN', false); - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php b/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php deleted file mode 100755 index 0a462ffd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php +++ /dev/null @@ -1,238 +0,0 @@ - $value]; - - foreach ($key as $k => $v) { - $this->session->flash($k, $v); - } - - return $this; - } - - /** - * Add multiple cookies to the response. - * - * @param array $cookies - * @return $this - */ - public function withCookies(array $cookies) - { - foreach ($cookies as $cookie) { - $this->headers->setCookie($cookie); - } - - return $this; - } - - /** - * Flash an array of input to the session. - * - * @param array $input - * @return $this - */ - public function withInput(array $input = null) - { - $this->session->flashInput($this->removeFilesFromInput( - ! is_null($input) ? $input : $this->request->input() - )); - - return $this; - } - - /** - * Remove all uploaded files form the given input array. - * - * @param array $input - * @return array - */ - protected function removeFilesFromInput(array $input) - { - foreach ($input as $key => $value) { - if (is_array($value)) { - $input[$key] = $this->removeFilesFromInput($value); - } - - if ($value instanceof SymfonyUploadedFile) { - unset($input[$key]); - } - } - - return $input; - } - - /** - * Flash an array of input to the session. - * - * @return $this - */ - public function onlyInput() - { - return $this->withInput($this->request->only(func_get_args())); - } - - /** - * Flash an array of input to the session. - * - * @return \Illuminate\Http\RedirectResponse - */ - public function exceptInput() - { - return $this->withInput($this->request->except(func_get_args())); - } - - /** - * Flash a container of errors to the session. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array|string $provider - * @param string $key - * @return $this - */ - public function withErrors($provider, $key = 'default') - { - $value = $this->parseErrors($provider); - - $errors = $this->session->get('errors', new ViewErrorBag); - - if (! $errors instanceof ViewErrorBag) { - $errors = new ViewErrorBag; - } - - $this->session->flash( - 'errors', $errors->put($key, $value) - ); - - return $this; - } - - /** - * Parse the given errors into an appropriate value. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array|string $provider - * @return \Illuminate\Support\MessageBag - */ - protected function parseErrors($provider) - { - if ($provider instanceof MessageProvider) { - return $provider->getMessageBag(); - } - - return new MessageBag((array) $provider); - } - - /** - * Get the original response content. - * - * @return null - */ - public function getOriginalContent() - { - // - } - - /** - * Get the request instance. - * - * @return \Illuminate\Http\Request|null - */ - public function getRequest() - { - return $this->request; - } - - /** - * Set the request instance. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - public function setRequest(Request $request) - { - $this->request = $request; - } - - /** - * Get the session store implementation. - * - * @return \Illuminate\Session\Store|null - */ - public function getSession() - { - return $this->session; - } - - /** - * Set the session store implementation. - * - * @param \Illuminate\Session\Store $session - * @return void - */ - public function setSession(SessionStore $session) - { - $this->session = $session; - } - - /** - * Dynamically bind flash data in the session. - * - * @param string $method - * @param array $parameters - * @return $this - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if (Str::startsWith($method, 'with')) { - return $this->with(Str::snake(substr($method, 4)), $parameters[0]); - } - - throw new BadMethodCallException( - "Method [$method] does not exist on Redirect." - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Request.php b/vendor/laravel/framework/src/Illuminate/Http/Request.php deleted file mode 100644 index 6916063e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Request.php +++ /dev/null @@ -1,624 +0,0 @@ -getMethod(); - } - - /** - * Get the root URL for the application. - * - * @return string - */ - public function root() - { - return rtrim($this->getSchemeAndHttpHost().$this->getBaseUrl(), '/'); - } - - /** - * Get the URL (no query string) for the request. - * - * @return string - */ - public function url() - { - return rtrim(preg_replace('/\?.*/', '', $this->getUri()), '/'); - } - - /** - * Get the full URL for the request. - * - * @return string - */ - public function fullUrl() - { - $query = $this->getQueryString(); - - $question = $this->getBaseUrl().$this->getPathInfo() == '/' ? '/?' : '?'; - - return $query ? $this->url().$question.$query : $this->url(); - } - - /** - * Get the full URL for the request with the added query string parameters. - * - * @param array $query - * @return string - */ - public function fullUrlWithQuery(array $query) - { - $question = $this->getBaseUrl().$this->getPathInfo() == '/' ? '/?' : '?'; - - return count($this->query()) > 0 - ? $this->url().$question.http_build_query(array_merge($this->query(), $query)) - : $this->fullUrl().$question.http_build_query($query); - } - - /** - * Get the current path info for the request. - * - * @return string - */ - public function path() - { - $pattern = trim($this->getPathInfo(), '/'); - - return $pattern == '' ? '/' : $pattern; - } - - /** - * Get the current decoded path info for the request. - * - * @return string - */ - public function decodedPath() - { - return rawurldecode($this->path()); - } - - /** - * Get a segment from the URI (1 based index). - * - * @param int $index - * @param string|null $default - * @return string|null - */ - public function segment($index, $default = null) - { - return Arr::get($this->segments(), $index - 1, $default); - } - - /** - * Get all of the segments for the request path. - * - * @return array - */ - public function segments() - { - $segments = explode('/', $this->decodedPath()); - - return array_values(array_filter($segments, function ($value) { - return $value !== ''; - })); - } - - /** - * Determine if the current request URI matches a pattern. - * - * @param dynamic $patterns - * @return bool - */ - public function is(...$patterns) - { - foreach ($patterns as $pattern) { - if (Str::is($pattern, $this->decodedPath())) { - return true; - } - } - - return false; - } - - /** - * Determine if the route name matches a given pattern. - * - * @param dynamic $patterns - * @return bool - */ - public function routeIs(...$patterns) - { - return $this->route() && $this->route()->named(...$patterns); - } - - /** - * Determine if the current request URL and query string matches a pattern. - * - * @param dynamic $patterns - * @return bool - */ - public function fullUrlIs(...$patterns) - { - $url = $this->fullUrl(); - - foreach ($patterns as $pattern) { - if (Str::is($pattern, $url)) { - return true; - } - } - - return false; - } - - /** - * Determine if the request is the result of an AJAX call. - * - * @return bool - */ - public function ajax() - { - return $this->isXmlHttpRequest(); - } - - /** - * Determine if the request is the result of an PJAX call. - * - * @return bool - */ - public function pjax() - { - return $this->headers->get('X-PJAX') == true; - } - - /** - * Determine if the request is over HTTPS. - * - * @return bool - */ - public function secure() - { - return $this->isSecure(); - } - - /** - * Get the client IP address. - * - * @return string - */ - public function ip() - { - return $this->getClientIp(); - } - - /** - * Get the client IP addresses. - * - * @return array - */ - public function ips() - { - return $this->getClientIps(); - } - - /** - * Get the client user agent. - * - * @return string - */ - public function userAgent() - { - return $this->headers->get('User-Agent'); - } - - /** - * Merge new input into the current request's input array. - * - * @param array $input - * @return \Illuminate\Http\Request - */ - public function merge(array $input) - { - $this->getInputSource()->add($input); - - return $this; - } - - /** - * Replace the input for the current request. - * - * @param array $input - * @return \Illuminate\Http\Request - */ - public function replace(array $input) - { - $this->getInputSource()->replace($input); - - return $this; - } - - /** - * Get the JSON payload for the request. - * - * @param string $key - * @param mixed $default - * @return \Symfony\Component\HttpFoundation\ParameterBag|mixed - */ - public function json($key = null, $default = null) - { - if (! isset($this->json)) { - $this->json = new ParameterBag((array) json_decode($this->getContent(), true)); - } - - if (is_null($key)) { - return $this->json; - } - - return data_get($this->json->all(), $key, $default); - } - - /** - * Get the input source for the request. - * - * @return \Symfony\Component\HttpFoundation\ParameterBag - */ - protected function getInputSource() - { - if ($this->isJson()) { - return $this->json(); - } - - return $this->getRealMethod() == 'GET' ? $this->query : $this->request; - } - - /** - * Create an Illuminate request from a Symfony instance. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @return \Illuminate\Http\Request - */ - public static function createFromBase(SymfonyRequest $request) - { - if ($request instanceof static) { - return $request; - } - - $content = $request->content; - - $request = (new static)->duplicate( - $request->query->all(), $request->request->all(), $request->attributes->all(), - $request->cookies->all(), $request->files->all(), $request->server->all() - ); - - $request->content = $content; - - $request->request = $request->getInputSource(); - - return $request; - } - - /** - * {@inheritdoc} - */ - public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null) - { - return parent::duplicate($query, $request, $attributes, $cookies, $this->filterFiles($files), $server); - } - - /** - * Filter the given array of files, removing any empty values. - * - * @param mixed $files - * @return mixed - */ - protected function filterFiles($files) - { - if (! $files) { - return; - } - - foreach ($files as $key => $file) { - if (is_array($file)) { - $files[$key] = $this->filterFiles($files[$key]); - } - - if (empty($files[$key])) { - unset($files[$key]); - } - } - - return $files; - } - - /** - * Get the session associated with the request. - * - * @return \Illuminate\Session\Store - * - * @throws \RuntimeException - */ - public function session() - { - if (! $this->hasSession()) { - throw new RuntimeException('Session store not set on request.'); - } - - return $this->getSession(); - } - - /** - * Set the session instance on the request. - * - * @param \Illuminate\Contracts\Session\Session $session - * @return void - */ - public function setLaravelSession($session) - { - $this->session = $session; - } - - /** - * Get the user making the request. - * - * @param string|null $guard - * @return mixed - */ - public function user($guard = null) - { - return call_user_func($this->getUserResolver(), $guard); - } - - /** - * Get the route handling the request. - * - * @param string|null $param - * - * @return \Illuminate\Routing\Route|object|string - */ - public function route($param = null) - { - $route = call_user_func($this->getRouteResolver()); - - if (is_null($route) || is_null($param)) { - return $route; - } - - return $route->parameter($param); - } - - /** - * Get a unique fingerprint for the request / route / IP address. - * - * @return string - * - * @throws \RuntimeException - */ - public function fingerprint() - { - if (! $route = $this->route()) { - throw new RuntimeException('Unable to generate fingerprint. Route unavailable.'); - } - - return sha1(implode('|', array_merge( - $route->methods(), [$route->getDomain(), $route->uri(), $this->ip()] - ))); - } - - /** - * Set the JSON payload for the request. - * - * @param \Symfony\Component\HttpFoundation\ParameterBag $json - * @return $this - */ - public function setJson($json) - { - $this->json = $json; - - return $this; - } - - /** - * Get the user resolver callback. - * - * @return \Closure - */ - public function getUserResolver() - { - return $this->userResolver ?: function () { - // - }; - } - - /** - * Set the user resolver callback. - * - * @param \Closure $callback - * @return $this - */ - public function setUserResolver(Closure $callback) - { - $this->userResolver = $callback; - - return $this; - } - - /** - * Get the route resolver callback. - * - * @return \Closure - */ - public function getRouteResolver() - { - return $this->routeResolver ?: function () { - // - }; - } - - /** - * Set the route resolver callback. - * - * @param \Closure $callback - * @return $this - */ - public function setRouteResolver(Closure $callback) - { - $this->routeResolver = $callback; - - return $this; - } - - /** - * Get all of the input and files for the request. - * - * @return array - */ - public function toArray() - { - return $this->all(); - } - - /** - * Determine if the given offset exists. - * - * @param string $offset - * @return bool - */ - public function offsetExists($offset) - { - return array_key_exists( - $offset, $this->all() + $this->route()->parameters() - ); - } - - /** - * Get the value at the given offset. - * - * @param string $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->__get($offset); - } - - /** - * Set the value at the given offset. - * - * @param string $offset - * @param mixed $value - * @return void - */ - public function offsetSet($offset, $value) - { - $this->getInputSource()->set($offset, $value); - } - - /** - * Remove the value at the given offset. - * - * @param string $offset - * @return void - */ - public function offsetUnset($offset) - { - $this->getInputSource()->remove($offset); - } - - /** - * Check if an input element is set on the request. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return ! is_null($this->__get($key)); - } - - /** - * Get an input element from the request. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - if (array_key_exists($key, $this->all())) { - return data_get($this->all(), $key); - } - - return $this->route($key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php deleted file mode 100644 index 66e6a8b1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php +++ /dev/null @@ -1,59 +0,0 @@ -collects(); - - $this->collection = $collects && ! $resource->first() instanceof $collects - ? $resource->mapInto($collects) - : $resource->toBase(); - - return $resource instanceof AbstractPaginator - ? $resource->setCollection($this->collection) - : $this->collection; - } - - /** - * Get the resource that this resource collects. - * - * @return string|null - */ - protected function collects() - { - if ($this->collects) { - return $this->collects; - } - - if (Str::endsWith(class_basename($this), 'Collection') && - class_exists($class = Str::replaceLast('Collection', '', get_class($this)))) { - return $class; - } - } - - /** - * Get an iterator for the resource collection. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return $this->collection->getIterator(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php deleted file mode 100644 index 30030556..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php +++ /dev/null @@ -1,178 +0,0 @@ - $value) { - $index++; - - if (is_array($value)) { - $data[$key] = $this->filter($value); - - continue; - } - - if (is_numeric($key) && $value instanceof MergeValue) { - return $this->merge($data, $index, $this->filter($value->data)); - } - - if (($value instanceof PotentiallyMissing && $value->isMissing()) || - ($value instanceof self && - $value->resource instanceof PotentiallyMissing && - $value->isMissing())) { - unset($data[$key]); - - $index--; - } - - if ($value instanceof self && is_null($value->resource)) { - $data[$key] = null; - } - } - - return $data; - } - - /** - * Merge the given data in at the given index. - * - * @param array $data - * @param int $index - * @param array $merge - * @return array - */ - protected function merge($data, $index, $merge) - { - if (array_values($data) === $data) { - return array_merge( - array_merge(array_slice($data, 0, $index, true), $merge), - $this->filter(array_slice($data, $index + 1, null, true)) - ); - } - - return array_slice($data, 0, $index, true) + - $merge + - $this->filter(array_slice($data, $index + 1, null, true)); - } - - /** - * Retrieve a value based on a given condition. - * - * @param bool $condition - * @param mixed $value - * @param mixed $default - * @return \Illuminate\Http\Resources\MissingValue|mixed - */ - protected function when($condition, $value, $default = null) - { - if ($condition) { - return value($value); - } - - return func_num_args() === 3 ? value($default) : new MissingValue; - } - - /** - * Merge a value based on a given condition. - * - * @param bool $condition - * @param mixed $value - * @return \Illuminate\Http\Resources\MissingValue|mixed - */ - protected function mergeWhen($condition, $value) - { - return $condition ? new MergeValue(value($value)) : new MissingValue; - } - - /** - * Merge the given attributes. - * - * @param array $attributes - * @return \Illuminate\Http\Resources\MergeValue - */ - protected function attributes($attributes) - { - return new MergeValue( - Arr::only($this->resource->toArray(), $attributes) - ); - } - - /** - * Retrieve a relationship if it has been loaded. - * - * @param string $relationship - * @param mixed $value - * @param mixed $default - * @return \Illuminate\Http\Resources\MissingValue|mixed - */ - protected function whenLoaded($relationship, $value = null, $default = null) - { - if (func_num_args() < 3) { - $default = new MissingValue; - } - - if (! $this->resource->relationLoaded($relationship)) { - return $default; - } - - if (func_num_args() === 1) { - return $this->resource->{$relationship}; - } - - if ($this->resource->{$relationship} === null) { - return null; - } - - return value($value); - } - - /** - * Execute a callback if the given pivot table has been loaded. - * - * @param string $table - * @param mixed $value - * @param mixed $default - * @return \Illuminate\Http\Resources\MissingValue|mixed - */ - protected function whenPivotLoaded($table, $value, $default = null) - { - if (func_num_args() === 2) { - $default = new MissingValue; - } - - return $this->when( - $this->resource->pivot && - ($this->resource->pivot instanceof $table || - $this->resource->pivot->getTable() === $table), - ...[$value, $default] - ); - } - - /** - * Transform the given value if it is present. - * - * @param mixed $value - * @param callable $callback - * @param mixed $default - * @return mixed - */ - protected function transform($value, callable $callback, $default = null) - { - return transform( - $value, $callback, func_num_args() === 3 ? $default : new MissingValue - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php deleted file mode 100644 index 6f642c49..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php +++ /dev/null @@ -1,130 +0,0 @@ -resource->getRouteKey(); - } - - /** - * Get the route key for the resource. - * - * @return string - */ - public function getRouteKeyName() - { - return $this->resource->getRouteKeyName(); - } - - /** - * Retrieve the model for a bound value. - * - * @param mixed $value - * @return void - * @throws \Exception - */ - public function resolveRouteBinding($value) - { - throw new Exception('Resources may not be implicitly resolved from route bindings.'); - } - - /** - * Determine if the given attribute exists. - * - * @param mixed $offset - * @return bool - */ - public function offsetExists($offset) - { - return array_key_exists($offset, $this->resource); - } - - /** - * Get the value for a given offset. - * - * @param mixed $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->resource[$offset]; - } - - /** - * Set the value for a given offset. - * - * @param mixed $offset - * @param mixed $value - * @return void - */ - public function offsetSet($offset, $value) - { - $this->resource[$offset] = $value; - } - - /** - * Unset the value for a given offset. - * - * @param mixed $offset - * @return void - */ - public function offsetUnset($offset) - { - unset($this->resource[$offset]); - } - - /** - * Determine if an attribute exists on the resource. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return isset($this->resource->{$key}); - } - - /** - * Unset an attribute on the resource. - * - * @param string $key - * @return void - */ - public function __unset($key) - { - unset($this->resource->{$key}); - } - - /** - * Dynamically get properties from the underlying resource. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->resource->{$key}; - } - - /** - * Dynamically pass method calls to the underlying resource. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->resource->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php deleted file mode 100644 index a5831364..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php +++ /dev/null @@ -1,27 +0,0 @@ -collects = $collects; - - parent::__construct($resource); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php deleted file mode 100644 index f42bd248..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php +++ /dev/null @@ -1,80 +0,0 @@ -json( - $this->wrap( - $this->resource->resolve($request), - array_merge_recursive( - $this->paginationInformation($request), - $this->resource->with($request), - $this->resource->additional - ) - ), - $this->calculateStatus() - ), function ($response) use ($request) { - $this->resource->withResponse($request, $response); - }); - } - - /** - * Add the pagination information to the response. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function paginationInformation($request) - { - $paginated = $this->resource->resource->toArray(); - - return [ - 'links' => $this->paginationLinks($paginated), - 'meta' => $this->meta($paginated), - ]; - } - - /** - * Get the pagination links for the response. - * - * @param array $paginated - * @return array - */ - protected function paginationLinks($paginated) - { - return [ - 'first' => $paginated['first_page_url'] ?? null, - 'last' => $paginated['last_page_url'] ?? null, - 'prev' => $paginated['prev_page_url'] ?? null, - 'next' => $paginated['next_page_url'] ?? null, - ]; - } - - /** - * Gather the meta data for the response. - * - * @param array $paginated - * @return array - */ - protected function meta($paginated) - { - return Arr::except($paginated, [ - 'data', - 'first_page_url', - 'last_page_url', - 'prev_page_url', - 'next_page_url', - ]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php deleted file mode 100644 index 685f5697..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php +++ /dev/null @@ -1,206 +0,0 @@ -resource = $resource; - } - - /** - * Create a new resource instance. - * - * @param dynamic $parameters - * @return static - */ - public static function make(...$parameters) - { - return new static(...$parameters); - } - - /** - * Create new anonymous resource collection. - * - * @param mixed $resource - * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection - */ - public static function collection($resource) - { - return new AnonymousResourceCollection($resource, get_called_class()); - } - - /** - * Resolve the resource to an array. - * - * @param \Illuminate\Http\Request|null $request - * @return array - */ - public function resolve($request = null) - { - $data = $this->toArray( - $request = $request ?: Container::getInstance()->make('request') - ); - - if (is_array($data)) { - $data = $data; - } elseif ($data instanceof Arrayable || $data instanceof Collection) { - $data = $data->toArray(); - } elseif ($data instanceof JsonSerializable) { - $data = $data->jsonSerialize(); - } - - return $this->filter((array) $data); - } - - /** - * Transform the resource into an array. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - public function toArray($request) - { - return $this->resource->toArray(); - } - - /** - * Get any additional data that should be returned with the resource array. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - public function with($request) - { - return $this->with; - } - - /** - * Add additional meta data to the resource response. - * - * @param array $data - * @return $this - */ - public function additional(array $data) - { - $this->additional = $data; - - return $this; - } - - /** - * Customize the response for a request. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Http\JsonResponse $response - * @return void - */ - public function withResponse($request, $response) - { - // - } - - /** - * Set the string that should wrap the outer-most resource array. - * - * @param string $value - * @return void - */ - public static function wrap($value) - { - static::$wrap = $value; - } - - /** - * Disable wrapping of the outer-most resource array. - * - * @return void - */ - public static function withoutWrapping() - { - static::$wrap = null; - } - - /** - * Transform the resource into an HTTP response. - * - * @param \Illuminate\Http\Request|null $request - * @return \Illuminate\Http\JsonResponse - */ - public function response($request = null) - { - return $this->toResponse( - $request ?: Container::getInstance()->make('request') - ); - } - - /** - * Create an HTTP response that represents the object. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse - */ - public function toResponse($request) - { - return (new ResourceResponse($this))->toResponse($request); - } - - /** - * Prepare the resource for JSON serialization. - * - * @return array - */ - public function jsonSerialize() - { - return $this->resolve(Container::getInstance()->make('request')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php deleted file mode 100644 index 2858244e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php +++ /dev/null @@ -1,63 +0,0 @@ -resource = $this->collectResource($resource); - } - - /** - * Transform the resource into a JSON array. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - public function toArray($request) - { - return $this->collection->map->toArray($request)->all(); - } - - /** - * Create an HTTP response that represents the object. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse - */ - public function toResponse($request) - { - return $this->resource instanceof AbstractPaginator - ? (new PaginatedResourceResponse($this))->toResponse($request) - : parent::toResponse($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php deleted file mode 100644 index b9b4edb9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php +++ /dev/null @@ -1,118 +0,0 @@ -resource = $resource; - } - - /** - * Create an HTTP response that represents the object. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse - */ - public function toResponse($request) - { - return tap(response()->json( - $this->wrap( - $this->resource->resolve($request), - $this->resource->with($request), - $this->resource->additional - ), - $this->calculateStatus() - ), function ($response) use ($request) { - $this->resource->withResponse($request, $response); - }); - } - - /** - * Wrap the given data if necessary. - * - * @param array $data - * @param array $with - * @param array $additional - * @return array - */ - protected function wrap($data, $with = [], $additional = []) - { - if ($data instanceof Collection) { - $data = $data->all(); - } - - if ($this->haveDefaultWrapperAndDataIsUnwrapped($data)) { - $data = [$this->wrapper() => $data]; - } elseif ($this->haveAdditionalInformationAndDataIsUnwrapped($data, $with, $additional)) { - $data = [($this->wrapper() ?? 'data') => $data]; - } - - return array_merge_recursive($data, $with, $additional); - } - - /** - * Determine if we have a default wrapper and the given data is unwrapped. - * - * @param array $data - * @return bool - */ - protected function haveDefaultWrapperAndDataIsUnwrapped($data) - { - return $this->wrapper() && ! array_key_exists($this->wrapper(), $data); - } - - /** - * Determine if "with" data has been added and our data is unwrapped. - * - * @param array $data - * @param array $with - * @param array $additional - * @return bool - */ - protected function haveAdditionalInformationAndDataIsUnwrapped($data, $with, $additional) - { - return (! empty($with) || ! empty($additional)) && - (! $this->wrapper() || - ! array_key_exists($this->wrapper(), $data)); - } - - /** - * Get the default data wrapper for the resource. - * - * @return string - */ - protected function wrapper() - { - return get_class($this->resource)::$wrap; - } - - /** - * Calculate the appropriate status code for the response. - * - * @return int - */ - protected function calculateStatus() - { - return $this->resource->resource instanceof Model && - $this->resource->resource->wasRecentlyCreated ? 201 : 200; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php deleted file mode 100644 index 9894f389..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php +++ /dev/null @@ -1,26 +0,0 @@ -data = $data instanceof Collection ? $data->all() : $data; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php deleted file mode 100644 index d0d8dfa7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php +++ /dev/null @@ -1,16 +0,0 @@ -original = $content; - - // If the content is "JSONable" we will set the appropriate header and convert - // the content to JSON. This is useful when returning something like models - // from routes that will be automatically transformed to their JSON form. - if ($this->shouldBeJson($content)) { - $this->header('Content-Type', 'application/json'); - - $content = $this->morphToJson($content); - } - - // If this content implements the "Renderable" interface then we will call the - // render method on the object so we will avoid any "__toString" exceptions - // that might be thrown and have their errors obscured by PHP's handling. - elseif ($content instanceof Renderable) { - $content = $content->render(); - } - - parent::setContent($content); - - return $this; - } - - /** - * Determine if the given content should be turned into JSON. - * - * @param mixed $content - * @return bool - */ - protected function shouldBeJson($content) - { - return $content instanceof Arrayable || - $content instanceof Jsonable || - $content instanceof ArrayObject || - $content instanceof JsonSerializable || - is_array($content); - } - - /** - * Morph the given content into JSON. - * - * @param mixed $content - * @return string - */ - protected function morphToJson($content) - { - if ($content instanceof Jsonable) { - return $content->toJson(); - } elseif ($content instanceof Arrayable) { - return json_encode($content->toArray()); - } - - return json_encode($content); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php b/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php deleted file mode 100644 index d6237d3d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php +++ /dev/null @@ -1,141 +0,0 @@ -getStatusCode(); - } - - /** - * Get the content of the response. - * - * @return string - */ - public function content() - { - return $this->getContent(); - } - - /** - * Get the original response content. - * - * @return mixed - */ - public function getOriginalContent() - { - $original = $this->original; - - return $original instanceof self ? $original->{__FUNCTION__}() : $original; - } - - /** - * Set a header on the Response. - * - * @param string $key - * @param array|string $values - * @param bool $replace - * @return $this - */ - public function header($key, $values, $replace = true) - { - $this->headers->set($key, $values, $replace); - - return $this; - } - - /** - * Add an array of headers to the response. - * - * @param \Symfony\Component\HttpFoundation\HeaderBag|array $headers - * @return $this - */ - public function withHeaders($headers) - { - if ($headers instanceof HeaderBag) { - $headers = $headers->all(); - } - - foreach ($headers as $key => $value) { - $this->headers->set($key, $value); - } - - return $this; - } - - /** - * Add a cookie to the response. - * - * @param \Symfony\Component\HttpFoundation\Cookie|mixed $cookie - * @return $this - */ - public function cookie($cookie) - { - return call_user_func_array([$this, 'withCookie'], func_get_args()); - } - - /** - * Add a cookie to the response. - * - * @param \Symfony\Component\HttpFoundation\Cookie|mixed $cookie - * @return $this - */ - public function withCookie($cookie) - { - if (is_string($cookie) && function_exists('cookie')) { - $cookie = call_user_func_array('cookie', func_get_args()); - } - - $this->headers->setCookie($cookie); - - return $this; - } - - /** - * Set the exception to attach to the response. - * - * @param \Exception $e - * @return $this - */ - public function withException(Exception $e) - { - $this->exception = $e; - - return $this; - } - - /** - * Throws the response in a HttpResponseException instance. - * - * @throws \Illuminate\Http\Exceptions\HttpResponseException - */ - public function throwResponse() - { - throw new HttpResponseException($this); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Testing/File.php b/vendor/laravel/framework/src/Illuminate/Http/Testing/File.php deleted file mode 100644 index 1560973d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Testing/File.php +++ /dev/null @@ -1,115 +0,0 @@ -name = $name; - $this->tempFile = $tempFile; - - parent::__construct( - $this->tempFilePath(), $name, $this->getMimeType(), - filesize($this->tempFilePath()), null, true - ); - } - - /** - * Create a new fake file. - * - * @param string $name - * @param int $kilobytes - * @return \Illuminate\Http\Testing\File - */ - public static function create($name, $kilobytes = 0) - { - return (new FileFactory)->create($name, $kilobytes); - } - - /** - * Create a new fake image. - * - * @param string $name - * @param int $width - * @param int $height - * @return \Illuminate\Http\Testing\File - */ - public static function image($name, $width = 10, $height = 10) - { - return (new FileFactory)->image($name, $width, $height); - } - - /** - * Set the "size" of the file in kilobytes. - * - * @param int $kilobytes - * @return $this - */ - public function size($kilobytes) - { - $this->sizeToReport = $kilobytes * 1024; - - return $this; - } - - /** - * Get the size of the file. - * - * @return int - */ - public function getSize() - { - return $this->sizeToReport ?: parent::getSize(); - } - - /** - * Get the MIME type for the file. - * - * @return string - */ - public function getMimeType() - { - return MimeType::from($this->name); - } - - /** - * Get the path to the temporary file. - * - * @return string - */ - protected function tempFilePath() - { - return stream_get_meta_data($this->tempFile)['uri']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php b/vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php deleted file mode 100644 index 0a677d7d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php +++ /dev/null @@ -1,51 +0,0 @@ -sizeToReport = $kilobytes * 1024; - }); - } - - /** - * Create a new fake image. - * - * @param string $name - * @param int $width - * @param int $height - * @return \Illuminate\Http\Testing\File - */ - public function image($name, $width = 10, $height = 10) - { - return new File($name, $this->generateImage($width, $height)); - } - - /** - * Generate a dummy image of the given width and height. - * - * @param int $width - * @param int $height - * @return resource - */ - protected function generateImage($width, $height) - { - return tap(tmpfile(), function ($temp) use ($width, $height) { - ob_start(); - - imagepng(imagecreatetruecolor($width, $height)); - - fwrite($temp, ob_get_clean()); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php b/vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php deleted file mode 100644 index b4212ae2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php +++ /dev/null @@ -1,827 +0,0 @@ - 'application/andrew-inset', - 'aw' => 'application/applixware', - 'atom' => 'application/atom+xml', - 'atomcat' => 'application/atomcat+xml', - 'atomsvc' => 'application/atomsvc+xml', - 'ccxml' => 'application/ccxml+xml', - 'cdmia' => 'application/cdmi-capability', - 'cdmic' => 'application/cdmi-container', - 'cdmid' => 'application/cdmi-domain', - 'cdmio' => 'application/cdmi-object', - 'cdmiq' => 'application/cdmi-queue', - 'cu' => 'application/cu-seeme', - 'davmount' => 'application/davmount+xml', - 'dbk' => 'application/docbook+xml', - 'dssc' => 'application/dssc+der', - 'xdssc' => 'application/dssc+xml', - 'ecma' => 'application/ecmascript', - 'emma' => 'application/emma+xml', - 'epub' => 'application/epub+zip', - 'exi' => 'application/exi', - 'pfr' => 'application/font-tdpfr', - 'gml' => 'application/gml+xml', - 'gpx' => 'application/gpx+xml', - 'gxf' => 'application/gxf', - 'stk' => 'application/hyperstudio', - 'ink' => 'application/inkml+xml', - 'ipfix' => 'application/ipfix', - 'jar' => 'application/java-archive', - 'ser' => 'application/java-serialized-object', - 'class' => 'application/java-vm', - 'js' => 'application/javascript', - 'json' => 'application/json', - 'jsonml' => 'application/jsonml+json', - 'lostxml' => 'application/lost+xml', - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'mads' => 'application/mads+xml', - 'mrc' => 'application/marc', - 'mrcx' => 'application/marcxml+xml', - 'ma' => 'application/mathematica', - 'mathml' => 'application/mathml+xml', - 'mbox' => 'application/mbox', - 'mscml' => 'application/mediaservercontrol+xml', - 'metalink' => 'application/metalink+xml', - 'meta4' => 'application/metalink4+xml', - 'mets' => 'application/mets+xml', - 'mods' => 'application/mods+xml', - 'm21' => 'application/mp21', - 'mp4s' => 'application/mp4', - 'doc' => 'application/msword', - 'mxf' => 'application/mxf', - 'bin' => 'application/octet-stream', - 'oda' => 'application/oda', - 'opf' => 'application/oebps-package+xml', - 'ogx' => 'application/ogg', - 'omdoc' => 'application/omdoc+xml', - 'onetoc' => 'application/onenote', - 'oxps' => 'application/oxps', - 'xer' => 'application/patch-ops-error+xml', - 'pdf' => 'application/pdf', - 'pgp' => 'application/pgp-encrypted', - 'asc' => 'application/pgp-signature', - 'prf' => 'application/pics-rules', - 'p10' => 'application/pkcs10', - 'p7m' => 'application/pkcs7-mime', - 'p7s' => 'application/pkcs7-signature', - 'p8' => 'application/pkcs8', - 'ac' => 'application/pkix-attr-cert', - 'cer' => 'application/pkix-cert', - 'crl' => 'application/pkix-crl', - 'pkipath' => 'application/pkix-pkipath', - 'pki' => 'application/pkixcmp', - 'pls' => 'application/pls+xml', - 'ai' => 'application/postscript', - 'cww' => 'application/prs.cww', - 'pskcxml' => 'application/pskc+xml', - 'rdf' => 'application/rdf+xml', - 'rif' => 'application/reginfo+xml', - 'rnc' => 'application/relax-ng-compact-syntax', - 'rl' => 'application/resource-lists+xml', - 'rld' => 'application/resource-lists-diff+xml', - 'rs' => 'application/rls-services+xml', - 'gbr' => 'application/rpki-ghostbusters', - 'mft' => 'application/rpki-manifest', - 'roa' => 'application/rpki-roa', - 'rsd' => 'application/rsd+xml', - 'rss' => 'application/rss+xml', - 'sbml' => 'application/sbml+xml', - 'scq' => 'application/scvp-cv-request', - 'scs' => 'application/scvp-cv-response', - 'spq' => 'application/scvp-vp-request', - 'spp' => 'application/scvp-vp-response', - 'sdp' => 'application/sdp', - 'setpay' => 'application/set-payment-initiation', - 'setreg' => 'application/set-registration-initiation', - 'shf' => 'application/shf+xml', - 'smi' => 'application/smil+xml', - 'rq' => 'application/sparql-query', - 'srx' => 'application/sparql-results+xml', - 'gram' => 'application/srgs', - 'grxml' => 'application/srgs+xml', - 'sru' => 'application/sru+xml', - 'ssdl' => 'application/ssdl+xml', - 'ssml' => 'application/ssml+xml', - 'tei' => 'application/tei+xml', - 'tfi' => 'application/thraud+xml', - 'tsd' => 'application/timestamped-data', - 'plb' => 'application/vnd.3gpp.pic-bw-large', - 'psb' => 'application/vnd.3gpp.pic-bw-small', - 'pvb' => 'application/vnd.3gpp.pic-bw-var', - 'tcap' => 'application/vnd.3gpp2.tcap', - 'pwn' => 'application/vnd.3m.post-it-notes', - 'aso' => 'application/vnd.accpac.simply.aso', - 'imp' => 'application/vnd.accpac.simply.imp', - 'acu' => 'application/vnd.acucobol', - 'atc' => 'application/vnd.acucorp', - 'air' => 'application/vnd.adobe.air-application-installer-package+zip', - 'fcdt' => 'application/vnd.adobe.formscentral.fcdt', - 'fxp' => 'application/vnd.adobe.fxp', - 'xdp' => 'application/vnd.adobe.xdp+xml', - 'xfdf' => 'application/vnd.adobe.xfdf', - 'ahead' => 'application/vnd.ahead.space', - 'azf' => 'application/vnd.airzip.filesecure.azf', - 'azs' => 'application/vnd.airzip.filesecure.azs', - 'azw' => 'application/vnd.amazon.ebook', - 'acc' => 'application/vnd.americandynamics.acc', - 'ami' => 'application/vnd.amiga.ami', - 'apk' => 'application/vnd.android.package-archive', - 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', - 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', - 'atx' => 'application/vnd.antix.game-component', - 'mpkg' => 'application/vnd.apple.installer+xml', - 'm3u8' => 'application/vnd.apple.mpegurl', - 'swi' => 'application/vnd.aristanetworks.swi', - 'iota' => 'application/vnd.astraea-software.iota', - 'aep' => 'application/vnd.audiograph', - 'mpm' => 'application/vnd.blueice.multipass', - 'bmi' => 'application/vnd.bmi', - 'rep' => 'application/vnd.businessobjects', - 'cdxml' => 'application/vnd.chemdraw+xml', - 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', - 'cdy' => 'application/vnd.cinderella', - 'cla' => 'application/vnd.claymore', - 'rp9' => 'application/vnd.cloanto.rp9', - 'c4g' => 'application/vnd.clonk.c4group', - 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', - 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', - 'csp' => 'application/vnd.commonspace', - 'cdbcmsg' => 'application/vnd.contact.cmsg', - 'cmc' => 'application/vnd.cosmocaller', - 'clkx' => 'application/vnd.crick.clicker', - 'clkk' => 'application/vnd.crick.clicker.keyboard', - 'clkp' => 'application/vnd.crick.clicker.palette', - 'clkt' => 'application/vnd.crick.clicker.template', - 'clkw' => 'application/vnd.crick.clicker.wordbank', - 'wbs' => 'application/vnd.criticaltools.wbs+xml', - 'pml' => 'application/vnd.ctc-posml', - 'ppd' => 'application/vnd.cups-ppd', - 'car' => 'application/vnd.curl.car', - 'pcurl' => 'application/vnd.curl.pcurl', - 'dart' => 'application/vnd.dart', - 'rdz' => 'application/vnd.data-vision.rdz', - 'uvf' => 'application/vnd.dece.data', - 'uvt' => 'application/vnd.dece.ttml+xml', - 'uvx' => 'application/vnd.dece.unspecified', - 'uvz' => 'application/vnd.dece.zip', - 'fe_launch' => 'application/vnd.denovo.fcselayout-link', - 'dna' => 'application/vnd.dna', - 'mlp' => 'application/vnd.dolby.mlp', - 'dpg' => 'application/vnd.dpgraph', - 'dfac' => 'application/vnd.dreamfactory', - 'kpxx' => 'application/vnd.ds-keypoint', - 'ait' => 'application/vnd.dvb.ait', - 'svc' => 'application/vnd.dvb.service', - 'geo' => 'application/vnd.dynageo', - 'mag' => 'application/vnd.ecowin.chart', - 'nml' => 'application/vnd.enliven', - 'esf' => 'application/vnd.epson.esf', - 'msf' => 'application/vnd.epson.msf', - 'qam' => 'application/vnd.epson.quickanime', - 'slt' => 'application/vnd.epson.salt', - 'ssf' => 'application/vnd.epson.ssf', - 'es3' => 'application/vnd.eszigno3+xml', - 'ez2' => 'application/vnd.ezpix-album', - 'ez3' => 'application/vnd.ezpix-package', - 'fdf' => 'application/vnd.fdf', - 'mseed' => 'application/vnd.fdsn.mseed', - 'seed' => 'application/vnd.fdsn.seed', - 'gph' => 'application/vnd.flographit', - 'ftc' => 'application/vnd.fluxtime.clip', - 'fm' => 'application/vnd.framemaker', - 'fnc' => 'application/vnd.frogans.fnc', - 'ltf' => 'application/vnd.frogans.ltf', - 'fsc' => 'application/vnd.fsc.weblaunch', - 'oas' => 'application/vnd.fujitsu.oasys', - 'oa2' => 'application/vnd.fujitsu.oasys2', - 'oa3' => 'application/vnd.fujitsu.oasys3', - 'fg5' => 'application/vnd.fujitsu.oasysgp', - 'bh2' => 'application/vnd.fujitsu.oasysprs', - 'ddd' => 'application/vnd.fujixerox.ddd', - 'xdw' => 'application/vnd.fujixerox.docuworks', - 'xbd' => 'application/vnd.fujixerox.docuworks.binder', - 'fzs' => 'application/vnd.fuzzysheet', - 'txd' => 'application/vnd.genomatix.tuxedo', - 'ggb' => 'application/vnd.geogebra.file', - 'ggt' => 'application/vnd.geogebra.tool', - 'gex' => 'application/vnd.geometry-explorer', - 'gxt' => 'application/vnd.geonext', - 'g2w' => 'application/vnd.geoplan', - 'g3w' => 'application/vnd.geospace', - 'gmx' => 'application/vnd.gmx', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'kmz' => 'application/vnd.google-earth.kmz', - 'gqf' => 'application/vnd.grafeq', - 'gac' => 'application/vnd.groove-account', - 'ghf' => 'application/vnd.groove-help', - 'gim' => 'application/vnd.groove-identity-message', - 'grv' => 'application/vnd.groove-injector', - 'gtm' => 'application/vnd.groove-tool-message', - 'tpl' => 'application/vnd.groove-tool-template', - 'vcg' => 'application/vnd.groove-vcard', - 'hal' => 'application/vnd.hal+xml', - 'zmm' => 'application/vnd.handheld-entertainment+xml', - 'hbci' => 'application/vnd.hbci', - 'les' => 'application/vnd.hhe.lesson-player', - 'hpgl' => 'application/vnd.hp-hpgl', - 'hpid' => 'application/vnd.hp-hpid', - 'hps' => 'application/vnd.hp-hps', - 'jlt' => 'application/vnd.hp-jlyt', - 'pcl' => 'application/vnd.hp-pcl', - 'pclxl' => 'application/vnd.hp-pclxl', - 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', - 'mpy' => 'application/vnd.ibm.minipay', - 'afp' => 'application/vnd.ibm.modcap', - 'irm' => 'application/vnd.ibm.rights-management', - 'sc' => 'application/vnd.ibm.secure-container', - 'icc' => 'application/vnd.iccprofile', - 'igl' => 'application/vnd.igloader', - 'ivp' => 'application/vnd.immervision-ivp', - 'ivu' => 'application/vnd.immervision-ivu', - 'igm' => 'application/vnd.insors.igm', - 'xpw' => 'application/vnd.intercon.formnet', - 'i2g' => 'application/vnd.intergeo', - 'qbo' => 'application/vnd.intu.qbo', - 'qfx' => 'application/vnd.intu.qfx', - 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', - 'irp' => 'application/vnd.irepository.package+xml', - 'xpr' => 'application/vnd.is-xpr', - 'fcs' => 'application/vnd.isac.fcs', - 'jam' => 'application/vnd.jam', - 'rms' => 'application/vnd.jcp.javame.midlet-rms', - 'jisp' => 'application/vnd.jisp', - 'joda' => 'application/vnd.joost.joda-archive', - 'ktz' => 'application/vnd.kahootz', - 'karbon' => 'application/vnd.kde.karbon', - 'chrt' => 'application/vnd.kde.kchart', - 'kfo' => 'application/vnd.kde.kformula', - 'flw' => 'application/vnd.kde.kivio', - 'kon' => 'application/vnd.kde.kontour', - 'kpr' => 'application/vnd.kde.kpresenter', - 'ksp' => 'application/vnd.kde.kspread', - 'kwd' => 'application/vnd.kde.kword', - 'htke' => 'application/vnd.kenameaapp', - 'kia' => 'application/vnd.kidspiration', - 'kne' => 'application/vnd.kinar', - 'skp' => 'application/vnd.koan', - 'sse' => 'application/vnd.kodak-descriptor', - 'lasxml' => 'application/vnd.las.las+xml', - 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', - 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', - '123' => 'application/vnd.lotus-1-2-3', - 'apr' => 'application/vnd.lotus-approach', - 'pre' => 'application/vnd.lotus-freelance', - 'nsf' => 'application/vnd.lotus-notes', - 'org' => 'application/vnd.lotus-organizer', - 'scm' => 'application/vnd.lotus-screencam', - 'lwp' => 'application/vnd.lotus-wordpro', - 'portpkg' => 'application/vnd.macports.portpkg', - 'mcd' => 'application/vnd.mcd', - 'mc1' => 'application/vnd.medcalcdata', - 'cdkey' => 'application/vnd.mediastation.cdkey', - 'mwf' => 'application/vnd.mfer', - 'mfm' => 'application/vnd.mfmp', - 'flo' => 'application/vnd.micrografx.flo', - 'igx' => 'application/vnd.micrografx.igx', - 'mif' => 'application/vnd.mif', - 'daf' => 'application/vnd.mobius.daf', - 'dis' => 'application/vnd.mobius.dis', - 'mbk' => 'application/vnd.mobius.mbk', - 'mqy' => 'application/vnd.mobius.mqy', - 'msl' => 'application/vnd.mobius.msl', - 'plc' => 'application/vnd.mobius.plc', - 'txf' => 'application/vnd.mobius.txf', - 'mpn' => 'application/vnd.mophun.application', - 'mpc' => 'application/vnd.mophun.certificate', - 'xul' => 'application/vnd.mozilla.xul+xml', - 'cil' => 'application/vnd.ms-artgalry', - 'cab' => 'application/vnd.ms-cab-compressed', - 'xls' => 'application/vnd.ms-excel', - 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12', - 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12', - 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12', - 'eot' => 'application/vnd.ms-fontobject', - 'chm' => 'application/vnd.ms-htmlhelp', - 'ims' => 'application/vnd.ms-ims', - 'lrm' => 'application/vnd.ms-lrm', - 'thmx' => 'application/vnd.ms-officetheme', - 'cat' => 'application/vnd.ms-pki.seccat', - 'stl' => 'application/vnd.ms-pki.stl', - 'ppt' => 'application/vnd.ms-powerpoint', - 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12', - 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12', - 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', - 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', - 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12', - 'mpp' => 'application/vnd.ms-project', - 'docm' => 'application/vnd.ms-word.document.macroenabled.12', - 'dotm' => 'application/vnd.ms-word.template.macroenabled.12', - 'wps' => 'application/vnd.ms-works', - 'wpl' => 'application/vnd.ms-wpl', - 'xps' => 'application/vnd.ms-xpsdocument', - 'mseq' => 'application/vnd.mseq', - 'mus' => 'application/vnd.musician', - 'msty' => 'application/vnd.muvee.style', - 'taglet' => 'application/vnd.mynfc', - 'nlu' => 'application/vnd.neurolanguage.nlu', - 'ntf' => 'application/vnd.nitf', - 'nnd' => 'application/vnd.noblenet-directory', - 'nns' => 'application/vnd.noblenet-sealer', - 'nnw' => 'application/vnd.noblenet-web', - 'ngdat' => 'application/vnd.nokia.n-gage.data', - 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', - 'rpst' => 'application/vnd.nokia.radio-preset', - 'rpss' => 'application/vnd.nokia.radio-presets', - 'edm' => 'application/vnd.novadigm.edm', - 'edx' => 'application/vnd.novadigm.edx', - 'ext' => 'application/vnd.novadigm.ext', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'otc' => 'application/vnd.oasis.opendocument.chart-template', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odft' => 'application/vnd.oasis.opendocument.formula-template', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'oti' => 'application/vnd.oasis.opendocument.image-template', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'xo' => 'application/vnd.olpc-sugar', - 'dd2' => 'application/vnd.oma.dd2+xml', - 'oxt' => 'application/vnd.openofficeorg.extension', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'mgp' => 'application/vnd.osgeo.mapguide.package', - 'dp' => 'application/vnd.osgi.dp', - 'esa' => 'application/vnd.osgi.subsystem', - 'pdb' => 'application/vnd.palm', - 'paw' => 'application/vnd.pawaafile', - 'str' => 'application/vnd.pg.format', - 'ei6' => 'application/vnd.pg.osasli', - 'efif' => 'application/vnd.picsel', - 'wg' => 'application/vnd.pmi.widget', - 'plf' => 'application/vnd.pocketlearn', - 'pbd' => 'application/vnd.powerbuilder6', - 'box' => 'application/vnd.previewsystems.box', - 'mgz' => 'application/vnd.proteus.magazine', - 'qps' => 'application/vnd.publishare-delta-tree', - 'ptid' => 'application/vnd.pvi.ptid1', - 'qxd' => 'application/vnd.quark.quarkxpress', - 'bed' => 'application/vnd.realvnc.bed', - 'mxl' => 'application/vnd.recordare.musicxml', - 'musicxml' => 'application/vnd.recordare.musicxml+xml', - 'cryptonote' => 'application/vnd.rig.cryptonote', - 'cod' => 'application/vnd.rim.cod', - 'rm' => 'application/vnd.rn-realmedia', - 'rmvb' => 'application/vnd.rn-realmedia-vbr', - 'link66' => 'application/vnd.route66.link66+xml', - 'st' => 'application/vnd.sailingtracker.track', - 'see' => 'application/vnd.seemail', - 'sema' => 'application/vnd.sema', - 'semd' => 'application/vnd.semd', - 'semf' => 'application/vnd.semf', - 'ifm' => 'application/vnd.shana.informed.formdata', - 'itp' => 'application/vnd.shana.informed.formtemplate', - 'iif' => 'application/vnd.shana.informed.interchange', - 'ipk' => 'application/vnd.shana.informed.package', - 'twd' => 'application/vnd.simtech-mindmapper', - 'mmf' => 'application/vnd.smaf', - 'teacher' => 'application/vnd.smart.teacher', - 'sdkm' => 'application/vnd.solent.sdkm+xml', - 'dxp' => 'application/vnd.spotfire.dxp', - 'sfs' => 'application/vnd.spotfire.sfs', - 'sdc' => 'application/vnd.stardivision.calc', - 'sda' => 'application/vnd.stardivision.draw', - 'sdd' => 'application/vnd.stardivision.impress', - 'smf' => 'application/vnd.stardivision.math', - 'sdw' => 'application/vnd.stardivision.writer', - 'sgl' => 'application/vnd.stardivision.writer-global', - 'smzip' => 'application/vnd.stepmania.package', - 'sm' => 'application/vnd.stepmania.stepchart', - 'sxc' => 'application/vnd.sun.xml.calc', - 'stc' => 'application/vnd.sun.xml.calc.template', - 'sxd' => 'application/vnd.sun.xml.draw', - 'std' => 'application/vnd.sun.xml.draw.template', - 'sxi' => 'application/vnd.sun.xml.impress', - 'sti' => 'application/vnd.sun.xml.impress.template', - 'sxm' => 'application/vnd.sun.xml.math', - 'sxw' => 'application/vnd.sun.xml.writer', - 'sxg' => 'application/vnd.sun.xml.writer.global', - 'stw' => 'application/vnd.sun.xml.writer.template', - 'sus' => 'application/vnd.sus-calendar', - 'svd' => 'application/vnd.svd', - 'sis' => 'application/vnd.symbian.install', - 'xsm' => 'application/vnd.syncml+xml', - 'bdm' => 'application/vnd.syncml.dm+wbxml', - 'xdm' => 'application/vnd.syncml.dm+xml', - 'tao' => 'application/vnd.tao.intent-module-archive', - 'pcap' => 'application/vnd.tcpdump.pcap', - 'tmo' => 'application/vnd.tmobile-livetv', - 'tpt' => 'application/vnd.trid.tpt', - 'mxs' => 'application/vnd.triscape.mxs', - 'tra' => 'application/vnd.trueapp', - 'ufd' => 'application/vnd.ufdl', - 'utz' => 'application/vnd.uiq.theme', - 'umj' => 'application/vnd.umajin', - 'unityweb' => 'application/vnd.unity', - 'uoml' => 'application/vnd.uoml+xml', - 'vcx' => 'application/vnd.vcx', - 'vsd' => 'application/vnd.visio', - 'vis' => 'application/vnd.visionary', - 'vsf' => 'application/vnd.vsf', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'wmlsc' => 'application/vnd.wap.wmlscriptc', - 'wtb' => 'application/vnd.webturbo', - 'nbp' => 'application/vnd.wolfram.player', - 'wpd' => 'application/vnd.wordperfect', - 'wqd' => 'application/vnd.wqd', - 'stf' => 'application/vnd.wt.stf', - 'xar' => 'application/vnd.xara', - 'xfdl' => 'application/vnd.xfdl', - 'hvd' => 'application/vnd.yamaha.hv-dic', - 'hvs' => 'application/vnd.yamaha.hv-script', - 'hvp' => 'application/vnd.yamaha.hv-voice', - 'osf' => 'application/vnd.yamaha.openscoreformat', - 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', - 'saf' => 'application/vnd.yamaha.smaf-audio', - 'spf' => 'application/vnd.yamaha.smaf-phrase', - 'cmp' => 'application/vnd.yellowriver-custom-menu', - 'zir' => 'application/vnd.zul', - 'zaz' => 'application/vnd.zzazz.deck+xml', - 'vxml' => 'application/voicexml+xml', - 'wgt' => 'application/widget', - 'hlp' => 'application/winhlp', - 'wsdl' => 'application/wsdl+xml', - 'wspolicy' => 'application/wspolicy+xml', - '7z' => 'application/x-7z-compressed', - 'abw' => 'application/x-abiword', - 'ace' => 'application/x-ace-compressed', - 'dmg' => 'application/x-apple-diskimage', - 'aab' => 'application/x-authorware-bin', - 'aam' => 'application/x-authorware-map', - 'aas' => 'application/x-authorware-seg', - 'bcpio' => 'application/x-bcpio', - 'torrent' => 'application/x-bittorrent', - 'blb' => 'application/x-blorb', - 'bz' => 'application/x-bzip', - 'bz2' => 'application/x-bzip2', - 'cbr' => 'application/x-cbr', - 'vcd' => 'application/x-cdlink', - 'cfs' => 'application/x-cfs-compressed', - 'chat' => 'application/x-chat', - 'pgn' => 'application/x-chess-pgn', - 'nsc' => 'application/x-conference', - 'cpio' => 'application/x-cpio', - 'csh' => 'application/x-csh', - 'deb' => 'application/x-debian-package', - 'dgc' => 'application/x-dgc-compressed', - 'dir' => 'application/x-director', - 'wad' => 'application/x-doom', - 'ncx' => 'application/x-dtbncx+xml', - 'dtb' => 'application/x-dtbook+xml', - 'res' => 'application/x-dtbresource+xml', - 'dvi' => 'application/x-dvi', - 'evy' => 'application/x-envoy', - 'eva' => 'application/x-eva', - 'bdf' => 'application/x-font-bdf', - 'gsf' => 'application/x-font-ghostscript', - 'psf' => 'application/x-font-linux-psf', - 'otf' => 'application/x-font-otf', - 'pcf' => 'application/x-font-pcf', - 'snf' => 'application/x-font-snf', - 'ttf' => 'application/x-font-ttf', - 'pfa' => 'application/x-font-type1', - 'woff' => 'application/x-font-woff', - 'arc' => 'application/x-freearc', - 'spl' => 'application/x-futuresplash', - 'gca' => 'application/x-gca-compressed', - 'ulx' => 'application/x-glulx', - 'gnumeric' => 'application/x-gnumeric', - 'gramps' => 'application/x-gramps-xml', - 'gtar' => 'application/x-gtar', - 'hdf' => 'application/x-hdf', - 'install' => 'application/x-install-instructions', - 'iso' => 'application/x-iso9660-image', - 'jnlp' => 'application/x-java-jnlp-file', - 'latex' => 'application/x-latex', - 'lzh' => 'application/x-lzh-compressed', - 'mie' => 'application/x-mie', - 'prc' => 'application/x-mobipocket-ebook', - 'application' => 'application/x-ms-application', - 'lnk' => 'application/x-ms-shortcut', - 'wmd' => 'application/x-ms-wmd', - 'wmz' => 'application/x-ms-wmz', - 'xbap' => 'application/x-ms-xbap', - 'mdb' => 'application/x-msaccess', - 'obd' => 'application/x-msbinder', - 'crd' => 'application/x-mscardfile', - 'clp' => 'application/x-msclip', - 'exe' => 'application/x-msdownload', - 'mvb' => 'application/x-msmediaview', - 'wmf' => 'application/x-msmetafile', - 'mny' => 'application/x-msmoney', - 'pub' => 'application/x-mspublisher', - 'scd' => 'application/x-msschedule', - 'trm' => 'application/x-msterminal', - 'wri' => 'application/x-mswrite', - 'nc' => 'application/x-netcdf', - 'nzb' => 'application/x-nzb', - 'p12' => 'application/x-pkcs12', - 'p7b' => 'application/x-pkcs7-certificates', - 'p7r' => 'application/x-pkcs7-certreqresp', - 'rar' => 'application/x-rar', - 'ris' => 'application/x-research-info-systems', - 'sh' => 'application/x-sh', - 'shar' => 'application/x-shar', - 'swf' => 'application/x-shockwave-flash', - 'xap' => 'application/x-silverlight-app', - 'sql' => 'application/x-sql', - 'sit' => 'application/x-stuffit', - 'sitx' => 'application/x-stuffitx', - 'srt' => 'application/x-subrip', - 'sv4cpio' => 'application/x-sv4cpio', - 'sv4crc' => 'application/x-sv4crc', - 't3' => 'application/x-t3vm-image', - 'gam' => 'application/x-tads', - 'tar' => 'application/x-tar', - 'tcl' => 'application/x-tcl', - 'tex' => 'application/x-tex', - 'tfm' => 'application/x-tex-tfm', - 'texinfo' => 'application/x-texinfo', - 'obj' => 'application/x-tgif', - 'ustar' => 'application/x-ustar', - 'src' => 'application/x-wais-source', - 'der' => 'application/x-x509-ca-cert', - 'fig' => 'application/x-xfig', - 'xlf' => 'application/x-xliff+xml', - 'xpi' => 'application/x-xpinstall', - 'xz' => 'application/x-xz', - 'z1' => 'application/x-zmachine', - 'xaml' => 'application/xaml+xml', - 'xdf' => 'application/xcap-diff+xml', - 'xenc' => 'application/xenc+xml', - 'xhtml' => 'application/xhtml+xml', - 'xml' => 'application/xml', - 'dtd' => 'application/xml-dtd', - 'xop' => 'application/xop+xml', - 'xpl' => 'application/xproc+xml', - 'xslt' => 'application/xslt+xml', - 'xspf' => 'application/xspf+xml', - 'mxml' => 'application/xv+xml', - 'yang' => 'application/yang', - 'yin' => 'application/yin+xml', - 'zip' => 'application/zip', - 'adp' => 'audio/adpcm', - 'au' => 'audio/basic', - 'mid' => 'audio/midi', - 'mp3' => 'audio/mpeg', - 'mp4a' => 'audio/mp4', - 'mpga' => 'audio/mpeg', - 'oga' => 'audio/ogg', - 's3m' => 'audio/s3m', - 'sil' => 'audio/silk', - 'uva' => 'audio/vnd.dece.audio', - 'eol' => 'audio/vnd.digital-winds', - 'dra' => 'audio/vnd.dra', - 'dts' => 'audio/vnd.dts', - 'dtshd' => 'audio/vnd.dts.hd', - 'lvp' => 'audio/vnd.lucent.voice', - 'pya' => 'audio/vnd.ms-playready.media.pya', - 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', - 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', - 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', - 'rip' => 'audio/vnd.rip', - 'weba' => 'audio/webm', - 'aac' => 'audio/x-aac', - 'aif' => 'audio/x-aiff', - 'caf' => 'audio/x-caf', - 'flac' => 'audio/x-flac', - 'mka' => 'audio/x-matroska', - 'm3u' => 'audio/x-mpegurl', - 'wax' => 'audio/x-ms-wax', - 'wma' => 'audio/x-ms-wma', - 'ram' => 'audio/x-pn-realaudio', - 'rmp' => 'audio/x-pn-realaudio-plugin', - 'wav' => 'audio/x-wav', - 'xm' => 'audio/xm', - 'cdx' => 'chemical/x-cdx', - 'cif' => 'chemical/x-cif', - 'cmdf' => 'chemical/x-cmdf', - 'cml' => 'chemical/x-cml', - 'csml' => 'chemical/x-csml', - 'xyz' => 'chemical/x-xyz', - 'bmp' => 'image/bmp', - 'cgm' => 'image/cgm', - 'g3' => 'image/g3fax', - 'gif' => 'image/gif', - 'ief' => 'image/ief', - 'jpg' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'ktx' => 'image/ktx', - 'png' => 'image/png', - 'btif' => 'image/prs.btif', - 'sgi' => 'image/sgi', - 'svg' => 'image/svg+xml', - 'tiff' => 'image/tiff', - 'psd' => 'image/vnd.adobe.photoshop', - 'uvi' => 'image/vnd.dece.graphic', - 'djvu' => 'image/vnd.djvu', - 'dwg' => 'image/vnd.dwg', - 'dxf' => 'image/vnd.dxf', - 'fbs' => 'image/vnd.fastbidsheet', - 'fpx' => 'image/vnd.fpx', - 'fst' => 'image/vnd.fst', - 'mmr' => 'image/vnd.fujixerox.edmics-mmr', - 'rlc' => 'image/vnd.fujixerox.edmics-rlc', - 'mdi' => 'image/vnd.ms-modi', - 'wdp' => 'image/vnd.ms-photo', - 'npx' => 'image/vnd.net-fpx', - 'wbmp' => 'image/vnd.wap.wbmp', - 'xif' => 'image/vnd.xiff', - 'webp' => 'image/webp', - '3ds' => 'image/x-3ds', - 'ras' => 'image/x-cmu-raster', - 'cmx' => 'image/x-cmx', - 'fh' => 'image/x-freehand', - 'ico' => 'image/x-icon', - 'sid' => 'image/x-mrsid-image', - 'pcx' => 'image/x-pcx', - 'pic' => 'image/x-pict', - 'pnm' => 'image/x-portable-anymap', - 'pbm' => 'image/x-portable-bitmap', - 'pgm' => 'image/x-portable-graymap', - 'ppm' => 'image/x-portable-pixmap', - 'rgb' => 'image/x-rgb', - 'tga' => 'image/x-tga', - 'xbm' => 'image/x-xbitmap', - 'xpm' => 'image/x-xpixmap', - 'xwd' => 'image/x-xwindowdump', - 'eml' => 'message/rfc822', - 'igs' => 'model/iges', - 'msh' => 'model/mesh', - 'dae' => 'model/vnd.collada+xml', - 'dwf' => 'model/vnd.dwf', - 'gdl' => 'model/vnd.gdl', - 'gtw' => 'model/vnd.gtw', - 'mts' => 'model/vnd.mts', - 'vtu' => 'model/vnd.vtu', - 'wrl' => 'model/vrml', - 'x3db' => 'model/x3d+binary', - 'x3dv' => 'model/x3d+vrml', - 'x3d' => 'model/x3d+xml', - 'appcache' => 'text/cache-manifest', - 'ics' => 'text/calendar', - 'css' => 'text/css', - 'csv' => 'text/csv', - 'html' => 'text/html', - 'n3' => 'text/n3', - 'txt' => 'text/plain', - 'dsc' => 'text/prs.lines.tag', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'sgml' => 'text/sgml', - 'tsv' => 'text/tab-separated-values', - 't' => 'text/troff', - 'ttl' => 'text/turtle', - 'uri' => 'text/uri-list', - 'vcard' => 'text/vcard', - 'curl' => 'text/vnd.curl', - 'dcurl' => 'text/vnd.curl.dcurl', - 'scurl' => 'text/vnd.curl.scurl', - 'mcurl' => 'text/vnd.curl.mcurl', - 'sub' => 'text/vnd.dvb.subtitle', - 'fly' => 'text/vnd.fly', - 'flx' => 'text/vnd.fmi.flexstor', - 'gv' => 'text/vnd.graphviz', - '3dml' => 'text/vnd.in3d.3dml', - 'spot' => 'text/vnd.in3d.spot', - 'jad' => 'text/vnd.sun.j2me.app-descriptor', - 'wml' => 'text/vnd.wap.wml', - 'wmls' => 'text/vnd.wap.wmlscript', - 's' => 'text/x-asm', - 'c' => 'text/x-c', - 'f' => 'text/x-fortran', - 'p' => 'text/x-pascal', - 'java' => 'text/x-java-source', - 'opml' => 'text/x-opml', - 'nfo' => 'text/x-nfo', - 'etx' => 'text/x-setext', - 'sfv' => 'text/x-sfv', - 'uu' => 'text/x-uuencode', - 'vcs' => 'text/x-vcalendar', - 'vcf' => 'text/x-vcard', - '3gp' => 'video/3gpp', - '3g2' => 'video/3gpp2', - 'h261' => 'video/h261', - 'h263' => 'video/h263', - 'h264' => 'video/h264', - 'jpgv' => 'video/jpeg', - 'jpm' => 'video/jpm', - 'mj2' => 'video/mj2', - 'mp4' => 'video/mp4', - 'mpeg' => 'video/mpeg', - 'ogv' => 'video/ogg', - 'mov' => 'video/quicktime', - 'qt' => 'video/quicktime', - 'uvh' => 'video/vnd.dece.hd', - 'uvm' => 'video/vnd.dece.mobile', - 'uvp' => 'video/vnd.dece.pd', - 'uvs' => 'video/vnd.dece.sd', - 'uvv' => 'video/vnd.dece.video', - 'dvb' => 'video/vnd.dvb.file', - 'fvt' => 'video/vnd.fvt', - 'mxu' => 'video/vnd.mpegurl', - 'pyv' => 'video/vnd.ms-playready.media.pyv', - 'uvu' => 'video/vnd.uvvu.mp4', - 'viv' => 'video/vnd.vivo', - 'webm' => 'video/webm', - 'f4v' => 'video/x-f4v', - 'fli' => 'video/x-fli', - 'flv' => 'video/x-flv', - 'm4v' => 'video/x-m4v', - 'mkv' => 'video/x-matroska', - 'mng' => 'video/x-mng', - 'asf' => 'video/x-ms-asf', - 'vob' => 'video/x-ms-vob', - 'wm' => 'video/x-ms-wm', - 'wmv' => 'video/x-ms-wmv', - 'wmx' => 'video/x-ms-wmx', - 'wvx' => 'video/x-ms-wvx', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie', - 'smv' => 'video/x-smv', - 'ice' => 'x-conference/x-cooltalk', - ]; - - /** - * Get the MIME type for a file based on the file's extension. - * - * @param string $filename - * @return string - */ - public static function from($filename) - { - $extension = pathinfo($filename, PATHINFO_EXTENSION); - - return self::getMimeTypeFromExtension($extension); - } - - /** - * Get the MIME type for a given extension or return all mimes. - * - * @param string $extension - * @return string|array - */ - public static function get($extension = null) - { - return $extension ? self::getMimeTypeFromExtension($extension) : self::$mimes; - } - - /** - * Search for the extension of a given MIME type. - * - * @param string $mimeType - * @return string|null - */ - public static function search($mimeType) - { - return array_search($mimeType, self::$mimes) ?: null; - } - - /** - * Get the MIME type for a given extension. - * - * @param string $extension - * @return string - */ - protected static function getMimeTypeFromExtension($extension) - { - return self::$mimes[$extension] ?? 'application/octet-stream'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php b/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php deleted file mode 100644 index 8ed7e7f9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php +++ /dev/null @@ -1,122 +0,0 @@ -storeAs($path, $this->hashName(), $this->parseOptions($options)); - } - - /** - * Store the uploaded file on a filesystem disk with public visibility. - * - * @param string $path - * @param array|string $options - * @return string|false - */ - public function storePublicly($path, $options = []) - { - $options = $this->parseOptions($options); - - $options['visibility'] = 'public'; - - return $this->storeAs($path, $this->hashName(), $options); - } - - /** - * Store the uploaded file on a filesystem disk with public visibility. - * - * @param string $path - * @param string $name - * @param array|string $options - * @return string|false - */ - public function storePubliclyAs($path, $name, $options = []) - { - $options = $this->parseOptions($options); - - $options['visibility'] = 'public'; - - return $this->storeAs($path, $name, $options); - } - - /** - * Store the uploaded file on a filesystem disk. - * - * @param string $path - * @param string $name - * @param array|string $options - * @return string|false - */ - public function storeAs($path, $name, $options = []) - { - $options = $this->parseOptions($options); - - $disk = Arr::pull($options, 'disk'); - - return Container::getInstance()->make(FilesystemFactory::class)->disk($disk)->putFileAs( - $path, $this, $name, $options - ); - } - - /** - * Create a new file instance from a base instance. - * - * @param \Symfony\Component\HttpFoundation\File\UploadedFile $file - * @param bool $test - * @return static - */ - public static function createFromBase(SymfonyUploadedFile $file, $test = false) - { - return $file instanceof static ? $file : new static( - $file->getPathname(), - $file->getClientOriginalName(), - $file->getClientMimeType(), - $file->getClientSize(), - $file->getError(), - $test - ); - } - - /** - * Parse and format the given options. - * - * @param array|string $options - * @return array - */ - protected function parseOptions($options) - { - if (is_string($options)) { - $options = ['disk' => $options]; - } - - return $options; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/composer.json b/vendor/laravel/framework/src/Illuminate/Http/composer.json deleted file mode 100755 index a634cd28..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "illuminate/http", - "description": "The Illuminate Http package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/session": "5.5.*", - "illuminate/support": "5.5.*", - "symfony/http-foundation": "~3.3", - "symfony/http-kernel": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\Http\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php b/vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php deleted file mode 100644 index 312b343a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php +++ /dev/null @@ -1,42 +0,0 @@ -level = $level; - $this->message = $message; - $this->context = $context; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php deleted file mode 100644 index 700bb6e1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php +++ /dev/null @@ -1,159 +0,0 @@ -app->singleton('log', function () { - return $this->createLogger(); - }); - } - - /** - * Create the logger. - * - * @return \Illuminate\Log\Writer - */ - public function createLogger() - { - $log = new Writer( - new Monolog($this->channel()), $this->app['events'] - ); - - if ($this->app->hasMonologConfigurator()) { - call_user_func($this->app->getMonologConfigurator(), $log->getMonolog()); - } else { - $this->configureHandler($log); - } - - return $log; - } - - /** - * Get the name of the log "channel". - * - * @return string - */ - protected function channel() - { - if ($this->app->bound('config') && - $channel = $this->app->make('config')->get('app.log_channel')) { - return $channel; - } - - return $this->app->bound('env') ? $this->app->environment() : 'production'; - } - - /** - * Configure the Monolog handlers for the application. - * - * @param \Illuminate\Log\Writer $log - * @return void - */ - protected function configureHandler(Writer $log) - { - $this->{'configure'.ucfirst($this->handler()).'Handler'}($log); - } - - /** - * Configure the Monolog handlers for the application. - * - * @param \Illuminate\Log\Writer $log - * @return void - */ - protected function configureSingleHandler(Writer $log) - { - $log->useFiles( - $this->app->storagePath().'/logs/laravel.log', - $this->logLevel() - ); - } - - /** - * Configure the Monolog handlers for the application. - * - * @param \Illuminate\Log\Writer $log - * @return void - */ - protected function configureDailyHandler(Writer $log) - { - $log->useDailyFiles( - $this->app->storagePath().'/logs/laravel.log', $this->maxFiles(), - $this->logLevel() - ); - } - - /** - * Configure the Monolog handlers for the application. - * - * @param \Illuminate\Log\Writer $log - * @return void - */ - protected function configureSyslogHandler(Writer $log) - { - $log->useSyslog('laravel', $this->logLevel()); - } - - /** - * Configure the Monolog handlers for the application. - * - * @param \Illuminate\Log\Writer $log - * @return void - */ - protected function configureErrorlogHandler(Writer $log) - { - $log->useErrorLog($this->logLevel()); - } - - /** - * Get the default log handler. - * - * @return string - */ - protected function handler() - { - if ($this->app->bound('config')) { - return $this->app->make('config')->get('app.log', 'single'); - } - - return 'single'; - } - - /** - * Get the log level for the application. - * - * @return string - */ - protected function logLevel() - { - if ($this->app->bound('config')) { - return $this->app->make('config')->get('app.log_level', 'debug'); - } - - return 'debug'; - } - - /** - * Get the maximum number of log files for the application. - * - * @return int - */ - protected function maxFiles() - { - if ($this->app->bound('config')) { - return $this->app->make('config')->get('app.log_max_files', 5); - } - - return 0; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/Writer.php b/vendor/laravel/framework/src/Illuminate/Log/Writer.php deleted file mode 100755 index acf77b2d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/Writer.php +++ /dev/null @@ -1,377 +0,0 @@ - MonologLogger::DEBUG, - 'info' => MonologLogger::INFO, - 'notice' => MonologLogger::NOTICE, - 'warning' => MonologLogger::WARNING, - 'error' => MonologLogger::ERROR, - 'critical' => MonologLogger::CRITICAL, - 'alert' => MonologLogger::ALERT, - 'emergency' => MonologLogger::EMERGENCY, - ]; - - /** - * Create a new log writer instance. - * - * @param \Monolog\Logger $monolog - * @param \Illuminate\Contracts\Events\Dispatcher|null $dispatcher - * @return void - */ - public function __construct(MonologLogger $monolog, Dispatcher $dispatcher = null) - { - $this->monolog = $monolog; - - if (isset($dispatcher)) { - $this->dispatcher = $dispatcher; - } - } - - /** - * Log an emergency message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function emergency($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log an alert message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function alert($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a critical message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function critical($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log an error message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function error($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a warning message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function warning($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a notice to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function notice($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log an informational message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function info($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a debug message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function debug($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a message to the logs. - * - * @param string $level - * @param string $message - * @param array $context - * @return void - */ - public function log($level, $message, array $context = []) - { - $this->writeLog($level, $message, $context); - } - - /** - * Dynamically pass log calls into the writer. - * - * @param string $level - * @param string $message - * @param array $context - * @return void - */ - public function write($level, $message, array $context = []) - { - $this->writeLog($level, $message, $context); - } - - /** - * Write a message to Monolog. - * - * @param string $level - * @param string $message - * @param array $context - * @return void - */ - protected function writeLog($level, $message, $context) - { - $this->fireLogEvent($level, $message = $this->formatMessage($message), $context); - - $this->monolog->{$level}($message, $context); - } - - /** - * Register a file log handler. - * - * @param string $path - * @param string $level - * @return void - */ - public function useFiles($path, $level = 'debug') - { - $this->monolog->pushHandler($handler = new StreamHandler($path, $this->parseLevel($level))); - - $handler->setFormatter($this->getDefaultFormatter()); - } - - /** - * Register a daily file log handler. - * - * @param string $path - * @param int $days - * @param string $level - * @return void - */ - public function useDailyFiles($path, $days = 0, $level = 'debug') - { - $this->monolog->pushHandler( - $handler = new RotatingFileHandler($path, $days, $this->parseLevel($level)) - ); - - $handler->setFormatter($this->getDefaultFormatter()); - } - - /** - * Register a Syslog handler. - * - * @param string $name - * @param string $level - * @param mixed $facility - * @return \Psr\Log\LoggerInterface - */ - public function useSyslog($name = 'laravel', $level = 'debug', $facility = LOG_USER) - { - return $this->monolog->pushHandler(new SyslogHandler($name, $facility, $level)); - } - - /** - * Register an error_log handler. - * - * @param string $level - * @param int $messageType - * @return void - */ - public function useErrorLog($level = 'debug', $messageType = ErrorLogHandler::OPERATING_SYSTEM) - { - $this->monolog->pushHandler( - new ErrorLogHandler($messageType, $this->parseLevel($level)) - ); - } - - /** - * Register a new callback handler for when a log event is triggered. - * - * @param \Closure $callback - * @return void - * - * @throws \RuntimeException - */ - public function listen(Closure $callback) - { - if (! isset($this->dispatcher)) { - throw new RuntimeException('Events dispatcher has not been set.'); - } - - $this->dispatcher->listen(MessageLogged::class, $callback); - } - - /** - * Fires a log event. - * - * @param string $level - * @param string $message - * @param array $context - * @return void - */ - protected function fireLogEvent($level, $message, array $context = []) - { - // If the event dispatcher is set, we will pass along the parameters to the - // log listeners. These are useful for building profilers or other tools - // that aggregate all of the log messages for a given "request" cycle. - if (isset($this->dispatcher)) { - $this->dispatcher->dispatch(new MessageLogged($level, $message, $context)); - } - } - - /** - * Format the parameters for the logger. - * - * @param mixed $message - * @return mixed - */ - protected function formatMessage($message) - { - if (is_array($message)) { - return var_export($message, true); - } elseif ($message instanceof Jsonable) { - return $message->toJson(); - } elseif ($message instanceof Arrayable) { - return var_export($message->toArray(), true); - } - - return $message; - } - - /** - * Parse the string level into a Monolog constant. - * - * @param string $level - * @return int - * - * @throws \InvalidArgumentException - */ - protected function parseLevel($level) - { - if (isset($this->levels[$level])) { - return $this->levels[$level]; - } - - throw new InvalidArgumentException('Invalid log level.'); - } - - /** - * Get the underlying Monolog instance. - * - * @return \Monolog\Logger - */ - public function getMonolog() - { - return $this->monolog; - } - - /** - * Get a default Monolog formatter instance. - * - * @return \Monolog\Formatter\LineFormatter - */ - protected function getDefaultFormatter() - { - return tap(new LineFormatter(null, null, true, true), function ($formatter) { - $formatter->includeStacktraces(); - }); - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public function getEventDispatcher() - { - return $this->dispatcher; - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $dispatcher - * @return void - */ - public function setEventDispatcher(Dispatcher $dispatcher) - { - $this->dispatcher = $dispatcher; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/composer.json b/vendor/laravel/framework/src/Illuminate/Log/composer.json deleted file mode 100755 index 5fe13643..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/log", - "description": "The Illuminate Log package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*", - "monolog/monolog": "~1.11" - }, - "autoload": { - "psr-4": { - "Illuminate\\Log\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php b/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php deleted file mode 100644 index 17bc2573..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php +++ /dev/null @@ -1,24 +0,0 @@ -message = $message; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php b/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php deleted file mode 100644 index 8af4a0e9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php +++ /dev/null @@ -1,24 +0,0 @@ -message = $message; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php deleted file mode 100755 index e185c379..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php +++ /dev/null @@ -1,145 +0,0 @@ -registerSwiftMailer(); - - $this->registerIlluminateMailer(); - - $this->registerMarkdownRenderer(); - } - - /** - * Register the Illuminate mailer instance. - * - * @return void - */ - protected function registerIlluminateMailer() - { - $this->app->singleton('mailer', function ($app) { - $config = $app->make('config')->get('mail'); - - // Once we have create the mailer instance, we will set a container instance - // on the mailer. This allows us to resolve mailer classes via containers - // for maximum testability on said classes instead of passing Closures. - $mailer = new Mailer( - $app['view'], $app['swift.mailer'], $app['events'] - ); - - if ($app->bound('queue')) { - $mailer->setQueue($app['queue']); - } - - // Next we will set all of the global addresses on this mailer, which allows - // for easy unification of all "from" addresses as well as easy debugging - // of sent messages since they get be sent into a single email address. - foreach (['from', 'reply_to', 'to'] as $type) { - $this->setGlobalAddress($mailer, $config, $type); - } - - return $mailer; - }); - } - - /** - * Set a global address on the mailer by type. - * - * @param \Illuminate\Mail\Mailer $mailer - * @param array $config - * @param string $type - * @return void - */ - protected function setGlobalAddress($mailer, array $config, $type) - { - $address = Arr::get($config, $type); - - if (is_array($address) && isset($address['address'])) { - $mailer->{'always'.Str::studly($type)}($address['address'], $address['name']); - } - } - - /** - * Register the Swift Mailer instance. - * - * @return void - */ - public function registerSwiftMailer() - { - $this->registerSwiftTransport(); - - // Once we have the transporter registered, we will register the actual Swift - // mailer instance, passing in the transport instances, which allows us to - // override this transporter instances during app start-up if necessary. - $this->app->singleton('swift.mailer', function ($app) { - return new Swift_Mailer($app['swift.transport']->driver()); - }); - } - - /** - * Register the Swift Transport instance. - * - * @return void - */ - protected function registerSwiftTransport() - { - $this->app->singleton('swift.transport', function ($app) { - return new TransportManager($app); - }); - } - - /** - * Register the Markdown renderer instance. - * - * @return void - */ - protected function registerMarkdownRenderer() - { - if ($this->app->runningInConsole()) { - $this->publishes([ - __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/mail'), - ], 'laravel-mail'); - } - - $this->app->singleton(Markdown::class, function ($app) { - $config = $app->make('config'); - - return new Markdown($app->make('view'), [ - 'theme' => $config->get('mail.markdown.theme', 'default'), - 'paths' => $config->get('mail.markdown.paths', []), - ]); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'mailer', 'swift.mailer', 'swift.transport', Markdown::class, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php b/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php deleted file mode 100644 index 86ea7a7e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php +++ /dev/null @@ -1,695 +0,0 @@ -call([$this, 'build']); - - $mailer->send($this->buildView(), $this->buildViewData(), function ($message) { - $this->buildFrom($message) - ->buildRecipients($message) - ->buildSubject($message) - ->buildAttachments($message) - ->runCallbacks($message); - }); - } - - /** - * Queue the message for sending. - * - * @param \Illuminate\Contracts\Queue\Factory $queue - * @return mixed - */ - public function queue(Queue $queue) - { - if (property_exists($this, 'delay')) { - return $this->later($this->delay, $queue); - } - - $connection = property_exists($this, 'connection') ? $this->connection : null; - - $queueName = property_exists($this, 'queue') ? $this->queue : null; - - return $queue->connection($connection)->pushOn( - $queueName ?: null, new SendQueuedMailable($this) - ); - } - - /** - * Deliver the queued message after the given delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param \Illuminate\Contracts\Queue\Factory $queue - * @return mixed - */ - public function later($delay, Queue $queue) - { - $connection = property_exists($this, 'connection') ? $this->connection : null; - - $queueName = property_exists($this, 'queue') ? $this->queue : null; - - return $queue->connection($connection)->laterOn( - $queueName ?: null, $delay, new SendQueuedMailable($this) - ); - } - - /** - * Render the mailable into a view. - * - * @return \Illuminate\View\View - */ - public function render() - { - Container::getInstance()->call([$this, 'build']); - - return Container::getInstance()->make('mailer')->render( - $this->buildView(), $this->buildViewData() - ); - } - - /** - * Build the view for the message. - * - * @return array|string - */ - protected function buildView() - { - if (isset($this->markdown)) { - return $this->buildMarkdownView(); - } - - if (isset($this->view, $this->textView)) { - return [$this->view, $this->textView]; - } elseif (isset($this->textView)) { - return ['text' => $this->textView]; - } - - return $this->view; - } - - /** - * Build the Markdown view for the message. - * - * @return array - */ - protected function buildMarkdownView() - { - $markdown = Container::getInstance()->make(Markdown::class); - - if (isset($this->theme)) { - $markdown->theme($this->theme); - } - - $data = $this->buildViewData(); - - return [ - 'html' => $markdown->render($this->markdown, $data), - 'text' => $this->buildMarkdownText($markdown, $data), - ]; - } - - /** - * Build the view data for the message. - * - * @return array - */ - public function buildViewData() - { - $data = $this->viewData; - - foreach ((new ReflectionClass($this))->getProperties(ReflectionProperty::IS_PUBLIC) as $property) { - if ($property->getDeclaringClass()->getName() != self::class) { - $data[$property->getName()] = $property->getValue($this); - } - } - - return $data; - } - - /** - * Build the text view for a Markdown message. - * - * @param \Illuminate\Mail\Markdown $markdown - * @param array $data - * @return string - */ - protected function buildMarkdownText($markdown, $data) - { - return $this->textView - ?? $markdown->renderText($this->markdown, $data); - } - - /** - * Add the sender to the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function buildFrom($message) - { - if (! empty($this->from)) { - $message->from($this->from[0]['address'], $this->from[0]['name']); - } - - return $this; - } - - /** - * Add all of the recipients to the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function buildRecipients($message) - { - foreach (['to', 'cc', 'bcc', 'replyTo'] as $type) { - foreach ($this->{$type} as $recipient) { - $message->{$type}($recipient['address'], $recipient['name']); - } - } - - return $this; - } - - /** - * Set the subject for the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function buildSubject($message) - { - if ($this->subject) { - $message->subject($this->subject); - } else { - $message->subject(Str::title(Str::snake(class_basename($this), ' '))); - } - - return $this; - } - - /** - * Add all of the attachments to the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function buildAttachments($message) - { - foreach ($this->attachments as $attachment) { - $message->attach($attachment['file'], $attachment['options']); - } - - foreach ($this->rawAttachments as $attachment) { - $message->attachData( - $attachment['data'], $attachment['name'], $attachment['options'] - ); - } - - return $this; - } - - /** - * Run the callbacks for the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function runCallbacks($message) - { - foreach ($this->callbacks as $callback) { - $callback($message->getSwiftMessage()); - } - - return $this; - } - - /** - * Set the priority of this message. - * - * The value is an integer where 1 is the highest priority and 5 is the lowest. - * - * @param int $level - * @return $this - */ - public function priority($level = 3) - { - $this->callbacks[] = function ($message) use ($level) { - $message->setPriority($level); - }; - - return $this; - } - - /** - * Set the sender of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function from($address, $name = null) - { - return $this->setAddress($address, $name, 'from'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasFrom($address, $name = null) - { - return $this->hasRecipient($address, $name, 'from'); - } - - /** - * Set the recipients of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function to($address, $name = null) - { - return $this->setAddress($address, $name, 'to'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasTo($address, $name = null) - { - return $this->hasRecipient($address, $name, 'to'); - } - - /** - * Set the recipients of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function cc($address, $name = null) - { - return $this->setAddress($address, $name, 'cc'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasCc($address, $name = null) - { - return $this->hasRecipient($address, $name, 'cc'); - } - - /** - * Set the recipients of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function bcc($address, $name = null) - { - return $this->setAddress($address, $name, 'bcc'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasBcc($address, $name = null) - { - return $this->hasRecipient($address, $name, 'bcc'); - } - - /** - * Set the "reply to" address of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function replyTo($address, $name = null) - { - return $this->setAddress($address, $name, 'replyTo'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasReplyTo($address, $name = null) - { - return $this->hasRecipient($address, $name, 'replyTo'); - } - - /** - * Set the recipients of the message. - * - * All recipients are stored internally as [['name' => ?, 'address' => ?]] - * - * @param object|array|string $address - * @param string|null $name - * @param string $property - * @return $this - */ - protected function setAddress($address, $name = null, $property = 'to') - { - foreach ($this->addressesToArray($address, $name) as $recipient) { - $recipient = $this->normalizeRecipient($recipient); - - $this->{$property}[] = [ - 'name' => $recipient->name ?? null, - 'address' => $recipient->email, - ]; - } - - return $this; - } - - /** - * Convert the given recipient arguments to an array. - * - * @param object|array|string $address - * @param string|null $name - * @return array - */ - protected function addressesToArray($address, $name) - { - if (! is_array($address) && ! $address instanceof Collection) { - $address = is_string($name) ? [['name' => $name, 'email' => $address]] : [$address]; - } - - return $address; - } - - /** - * Convert the given recipient into an object. - * - * @param mixed $recipient - * @return object - */ - protected function normalizeRecipient($recipient) - { - if (is_array($recipient)) { - return (object) $recipient; - } elseif (is_string($recipient)) { - return (object) ['email' => $recipient]; - } - - return $recipient; - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @param string $property - * @return bool - */ - protected function hasRecipient($address, $name = null, $property = 'to') - { - $expected = $this->normalizeRecipient( - $this->addressesToArray($address, $name)[0] - ); - - $expected = [ - 'name' => $expected->name ?? null, - 'address' => $expected->email, - ]; - - return collect($this->{$property})->contains(function ($actual) use ($expected) { - if (! isset($expected['name'])) { - return $actual['address'] == $expected['address']; - } - - return $actual == $expected; - }); - } - - /** - * Set the subject of the message. - * - * @param string $subject - * @return $this - */ - public function subject($subject) - { - $this->subject = $subject; - - return $this; - } - - /** - * Set the Markdown template for the message. - * - * @param string $view - * @param array $data - * @return $this - */ - public function markdown($view, array $data = []) - { - $this->markdown = $view; - $this->viewData = array_merge($this->viewData, $data); - - return $this; - } - - /** - * Set the view and view data for the message. - * - * @param string $view - * @param array $data - * @return $this - */ - public function view($view, array $data = []) - { - $this->view = $view; - $this->viewData = array_merge($this->viewData, $data); - - return $this; - } - - /** - * Set the plain text view for the message. - * - * @param string $textView - * @param array $data - * @return $this - */ - public function text($textView, array $data = []) - { - $this->textView = $textView; - $this->viewData = array_merge($this->viewData, $data); - - return $this; - } - - /** - * Set the view data for the message. - * - * @param string|array $key - * @param mixed $value - * @return $this - */ - public function with($key, $value = null) - { - if (is_array($key)) { - $this->viewData = array_merge($this->viewData, $key); - } else { - $this->viewData[$key] = $value; - } - - return $this; - } - - /** - * Attach a file to the message. - * - * @param string $file - * @param array $options - * @return $this - */ - public function attach($file, array $options = []) - { - $this->attachments[] = compact('file', 'options'); - - return $this; - } - - /** - * Attach in-memory data as an attachment. - * - * @param string $data - * @param string $name - * @param array $options - * @return $this - */ - public function attachData($data, $name, array $options = []) - { - $this->rawAttachments[] = compact('data', 'name', 'options'); - - return $this; - } - - /** - * Register a callback to be called with the Swift message instance. - * - * @param callable $callback - * @return $this - */ - public function withSwiftMessage($callback) - { - $this->callbacks[] = $callback; - - return $this; - } - - /** - * Dynamically bind parameters to the message. - * - * @param string $method - * @param array $parameters - * @return $this - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (Str::startsWith($method, 'with')) { - return $this->with(Str::snake(substr($method, 4)), $parameters[0]); - } - - throw new BadMethodCallException("Method [$method] does not exist on mailable."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php b/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php deleted file mode 100755 index 039e6415..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php +++ /dev/null @@ -1,554 +0,0 @@ -views = $views; - $this->swift = $swift; - $this->events = $events; - } - - /** - * Set the global from address and name. - * - * @param string $address - * @param string|null $name - * @return void - */ - public function alwaysFrom($address, $name = null) - { - $this->from = compact('address', 'name'); - } - - /** - * Set the global reply-to address and name. - * - * @param string $address - * @param string|null $name - * @return void - */ - public function alwaysReplyTo($address, $name = null) - { - $this->replyTo = compact('address', 'name'); - } - - /** - * Set the global to address and name. - * - * @param string $address - * @param string|null $name - * @return void - */ - public function alwaysTo($address, $name = null) - { - $this->to = compact('address', 'name'); - } - - /** - * Begin the process of mailing a mailable class instance. - * - * @param mixed $users - * @return \Illuminate\Mail\PendingMail - */ - public function to($users) - { - return (new PendingMail($this))->to($users); - } - - /** - * Begin the process of mailing a mailable class instance. - * - * @param mixed $users - * @return \Illuminate\Mail\PendingMail - */ - public function bcc($users) - { - return (new PendingMail($this))->bcc($users); - } - - /** - * Send a new message when only a raw text part. - * - * @param string $text - * @param mixed $callback - * @return void - */ - public function raw($text, $callback) - { - return $this->send(['raw' => $text], [], $callback); - } - - /** - * Send a new message when only a plain part. - * - * @param string $view - * @param array $data - * @param mixed $callback - * @return void - */ - public function plain($view, array $data, $callback) - { - return $this->send(['text' => $view], $data, $callback); - } - - /** - * Render the given message as a view. - * - * @param string|array $view - * @param array $data - * @return string - */ - public function render($view, array $data = []) - { - // First we need to parse the view, which could either be a string or an array - // containing both an HTML and plain text versions of the view which should - // be used when sending an e-mail. We will extract both of them out here. - list($view, $plain, $raw) = $this->parseView($view); - - $data['message'] = $this->createMessage(); - - return $this->renderView($view, $data); - } - - /** - * Send a new message using a view. - * - * @param string|array|MailableContract $view - * @param array $data - * @param \Closure|string $callback - * @return void - */ - public function send($view, array $data = [], $callback = null) - { - if ($view instanceof MailableContract) { - return $this->sendMailable($view); - } - - // First we need to parse the view, which could either be a string or an array - // containing both an HTML and plain text versions of the view which should - // be used when sending an e-mail. We will extract both of them out here. - list($view, $plain, $raw) = $this->parseView($view); - - $data['message'] = $message = $this->createMessage(); - - // Once we have retrieved the view content for the e-mail we will set the body - // of this message using the HTML type, which will provide a simple wrapper - // to creating view based emails that are able to receive arrays of data. - $this->addContent($message, $view, $plain, $raw, $data); - - call_user_func($callback, $message); - - // If a global "to" address has been set, we will set that address on the mail - // message. This is primarily useful during local development in which each - // message should be delivered into a single mail address for inspection. - if (isset($this->to['address'])) { - $this->setGlobalTo($message); - } - - // Next we will determine if the message should be sent. We give the developer - // one final chance to stop this message and then we will send it to all of - // its recipients. We will then fire the sent event for the sent message. - $swiftMessage = $message->getSwiftMessage(); - - if ($this->shouldSendMessage($swiftMessage)) { - $this->sendSwiftMessage($swiftMessage); - - $this->dispatchSentEvent($message); - } - } - - /** - * Send the given mailable. - * - * @param \Illuminate\Contracts\Mail\Mailable $mailable - * @return mixed - */ - protected function sendMailable(MailableContract $mailable) - { - return $mailable instanceof ShouldQueue - ? $mailable->queue($this->queue) : $mailable->send($this); - } - - /** - * Parse the given view name or array. - * - * @param string|array $view - * @return array - * - * @throws \InvalidArgumentException - */ - protected function parseView($view) - { - if (is_string($view)) { - return [$view, null, null]; - } - - // If the given view is an array with numeric keys, we will just assume that - // both a "pretty" and "plain" view were provided, so we will return this - // array as is, since it should contain both views with numerical keys. - if (is_array($view) && isset($view[0])) { - return [$view[0], $view[1], null]; - } - - // If this view is an array but doesn't contain numeric keys, we will assume - // the views are being explicitly specified and will extract them via the - // named keys instead, allowing the developers to use one or the other. - if (is_array($view)) { - return [ - $view['html'] ?? null, - $view['text'] ?? null, - $view['raw'] ?? null, - ]; - } - - throw new InvalidArgumentException('Invalid view.'); - } - - /** - * Add the content to a given message. - * - * @param \Illuminate\Mail\Message $message - * @param string $view - * @param string $plain - * @param string $raw - * @param array $data - * @return void - */ - protected function addContent($message, $view, $plain, $raw, $data) - { - if (isset($view)) { - $message->setBody($this->renderView($view, $data), 'text/html'); - } - - if (isset($plain)) { - $method = isset($view) ? 'addPart' : 'setBody'; - - $message->$method($this->renderView($plain, $data), 'text/plain'); - } - - if (isset($raw)) { - $method = (isset($view) || isset($plain)) ? 'addPart' : 'setBody'; - - $message->$method($raw, 'text/plain'); - } - } - - /** - * Render the given view. - * - * @param string $view - * @param array $data - * @return string - */ - protected function renderView($view, $data) - { - return $view instanceof Htmlable - ? $view->toHtml() - : $this->views->make($view, $data)->render(); - } - - /** - * Set the global "to" address on the given message. - * - * @param \Illuminate\Mail\Message $message - * @return void - */ - protected function setGlobalTo($message) - { - $message->to($this->to['address'], $this->to['name'], true); - $message->cc(null, null, true); - $message->bcc(null, null, true); - } - - /** - * Queue a new e-mail message for sending. - * - * @param string|array|MailableContract $view - * @param string|null $queue - * @return mixed - */ - public function queue($view, $queue = null) - { - if (! $view instanceof MailableContract) { - throw new InvalidArgumentException('Only mailables may be queued.'); - } - - return $view->queue(is_null($queue) ? $this->queue : $queue); - } - - /** - * Queue a new e-mail message for sending on the given queue. - * - * @param string $queue - * @param string|array $view - * @return mixed - */ - public function onQueue($queue, $view) - { - return $this->queue($view, $queue); - } - - /** - * Queue a new e-mail message for sending on the given queue. - * - * This method didn't match rest of framework's "onQueue" phrasing. Added "onQueue". - * - * @param string $queue - * @param string|array $view - * @return mixed - */ - public function queueOn($queue, $view) - { - return $this->onQueue($queue, $view); - } - - /** - * Queue a new e-mail message for sending after (n) seconds. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string|array|MailableContract $view - * @param string|null $queue - * @return mixed - */ - public function later($delay, $view, $queue = null) - { - if (! $view instanceof MailableContract) { - throw new InvalidArgumentException('Only mailables may be queued.'); - } - - return $view->later($delay, is_null($queue) ? $this->queue : $queue); - } - - /** - * Queue a new e-mail message for sending after (n) seconds on the given queue. - * - * @param string $queue - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string|array $view - * @return mixed - */ - public function laterOn($queue, $delay, $view) - { - return $this->later($delay, $view, $queue); - } - - /** - * Create a new message instance. - * - * @return \Illuminate\Mail\Message - */ - protected function createMessage() - { - $message = new Message($this->swift->createMessage('message')); - - // If a global from address has been specified we will set it on every message - // instance so the developer does not have to repeat themselves every time - // they create a new message. We'll just go ahead and push this address. - if (! empty($this->from['address'])) { - $message->from($this->from['address'], $this->from['name']); - } - - // When a global reply address was specified we will set this on every message - // instance so the developer does not have to repeat themselves every time - // they create a new message. We will just go ahead and push this address. - if (! empty($this->replyTo['address'])) { - $message->replyTo($this->replyTo['address'], $this->replyTo['name']); - } - - return $message; - } - - /** - * Send a Swift Message instance. - * - * @param \Swift_Message $message - * @return void - */ - protected function sendSwiftMessage($message) - { - try { - return $this->swift->send($message, $this->failedRecipients); - } finally { - $this->forceReconnection(); - } - } - - /** - * Determines if the message can be sent. - * - * @param \Swift_Message $message - * @return bool - */ - protected function shouldSendMessage($message) - { - if (! $this->events) { - return true; - } - - return $this->events->until( - new Events\MessageSending($message) - ) !== false; - } - - /** - * Dispatch the message sent event. - * - * @param \Illuminate\Mail\Message $message - * @return void - */ - protected function dispatchSentEvent($message) - { - if ($this->events) { - $this->events->dispatch( - new Events\MessageSent($message->getSwiftMessage()) - ); - } - } - - /** - * Force the transport to re-connect. - * - * This will prevent errors in daemon queue situations. - * - * @return void - */ - protected function forceReconnection() - { - $this->getSwiftMailer()->getTransport()->stop(); - } - - /** - * Get the view factory instance. - * - * @return \Illuminate\Contracts\View\Factory - */ - public function getViewFactory() - { - return $this->views; - } - - /** - * Get the Swift Mailer instance. - * - * @return \Swift_Mailer - */ - public function getSwiftMailer() - { - return $this->swift; - } - - /** - * Get the array of failed recipients. - * - * @return array - */ - public function failures() - { - return $this->failedRecipients; - } - - /** - * Set the Swift Mailer instance. - * - * @param \Swift_Mailer $swift - * @return void - */ - public function setSwiftMailer($swift) - { - $this->swift = $swift; - } - - /** - * Set the queue manager instance. - * - * @param \Illuminate\Contracts\Queue\Factory $queue - * @return $this - */ - public function setQueue(QueueContract $queue) - { - $this->queue = $queue; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Markdown.php b/vendor/laravel/framework/src/Illuminate/Mail/Markdown.php deleted file mode 100644 index ab9ed3ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Markdown.php +++ /dev/null @@ -1,160 +0,0 @@ -view = $view; - $this->theme = $options['theme'] ?? 'default'; - $this->loadComponentsFrom($options['paths'] ?? []); - } - - /** - * Render the Markdown template into HTML. - * - * @param string $view - * @param array $data - * @param \TijsVerkoyen\CssToInlineStyles\CssToInlineStyles|null $inliner - * @return \Illuminate\Support\HtmlString - */ - public function render($view, array $data = [], $inliner = null) - { - $this->view->flushFinderCache(); - - $contents = $this->view->replaceNamespace( - 'mail', $this->htmlComponentPaths() - )->make($view, $data)->render(); - - return new HtmlString(($inliner ?: new CssToInlineStyles)->convert( - $contents, $this->view->make('mail::themes.'.$this->theme)->render() - )); - } - - /** - * Render the Markdown template into HTML. - * - * @param string $view - * @param array $data - * @return \Illuminate\Support\HtmlString - */ - public function renderText($view, array $data = []) - { - $this->view->flushFinderCache(); - - $contents = $this->view->replaceNamespace( - 'mail', $this->markdownComponentPaths() - )->make($view, $data)->render(); - - return new HtmlString( - html_entity_decode(preg_replace("/[\r\n]{2,}/", "\n\n", $contents), ENT_QUOTES, 'UTF-8') - ); - } - - /** - * Parse the given Markdown text into HTML. - * - * @param string $text - * @return \Illuminate\Support\HtmlString - */ - public static function parse($text) - { - $parsedown = new Parsedown; - - return new HtmlString($parsedown->text($text)); - } - - /** - * Get the HTML component paths. - * - * @return array - */ - public function htmlComponentPaths() - { - return array_map(function ($path) { - return $path.'/html'; - }, $this->componentPaths()); - } - - /** - * Get the Markdown component paths. - * - * @return array - */ - public function markdownComponentPaths() - { - return array_map(function ($path) { - return $path.'/markdown'; - }, $this->componentPaths()); - } - - /** - * Get the component paths. - * - * @return array - */ - protected function componentPaths() - { - return array_unique(array_merge($this->componentPaths, [ - __DIR__.'/resources/views', - ])); - } - - /** - * Register new mail component paths. - * - * @param array $paths - * @return void - */ - public function loadComponentsFrom(array $paths = []) - { - $this->componentPaths = $paths; - } - - /** - * Set the default theme to be used. - * - * @param string $theme - * @return $this - */ - public function theme($theme) - { - $this->theme = $theme; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Message.php b/vendor/laravel/framework/src/Illuminate/Mail/Message.php deleted file mode 100755 index 69324fc8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Message.php +++ /dev/null @@ -1,328 +0,0 @@ -swift = $swift; - } - - /** - * Add a "from" address to the message. - * - * @param string|array $address - * @param string|null $name - * @return $this - */ - public function from($address, $name = null) - { - $this->swift->setFrom($address, $name); - - return $this; - } - - /** - * Set the "sender" of the message. - * - * @param string|array $address - * @param string|null $name - * @return $this - */ - public function sender($address, $name = null) - { - $this->swift->setSender($address, $name); - - return $this; - } - - /** - * Set the "return path" of the message. - * - * @param string $address - * @return $this - */ - public function returnPath($address) - { - $this->swift->setReturnPath($address); - - return $this; - } - - /** - * Add a recipient to the message. - * - * @param string|array $address - * @param string|null $name - * @param bool $override - * @return $this - */ - public function to($address, $name = null, $override = false) - { - if ($override) { - $this->swift->setTo($address, $name); - - return $this; - } - - return $this->addAddresses($address, $name, 'To'); - } - - /** - * Add a carbon copy to the message. - * - * @param string|array $address - * @param string|null $name - * @param bool $override - * @return $this - */ - public function cc($address, $name = null, $override = false) - { - if ($override) { - $this->swift->setCc($address, $name); - - return $this; - } - - return $this->addAddresses($address, $name, 'Cc'); - } - - /** - * Add a blind carbon copy to the message. - * - * @param string|array $address - * @param string|null $name - * @param bool $override - * @return $this - */ - public function bcc($address, $name = null, $override = false) - { - if ($override) { - $this->swift->setBcc($address, $name); - - return $this; - } - - return $this->addAddresses($address, $name, 'Bcc'); - } - - /** - * Add a reply to address to the message. - * - * @param string|array $address - * @param string|null $name - * @return $this - */ - public function replyTo($address, $name = null) - { - return $this->addAddresses($address, $name, 'ReplyTo'); - } - - /** - * Add a recipient to the message. - * - * @param string|array $address - * @param string $name - * @param string $type - * @return $this - */ - protected function addAddresses($address, $name, $type) - { - if (is_array($address)) { - $this->swift->{"set{$type}"}($address, $name); - } else { - $this->swift->{"add{$type}"}($address, $name); - } - - return $this; - } - - /** - * Set the subject of the message. - * - * @param string $subject - * @return $this - */ - public function subject($subject) - { - $this->swift->setSubject($subject); - - return $this; - } - - /** - * Set the message priority level. - * - * @param int $level - * @return $this - */ - public function priority($level) - { - $this->swift->setPriority($level); - - return $this; - } - - /** - * Attach a file to the message. - * - * @param string $file - * @param array $options - * @return $this - */ - public function attach($file, array $options = []) - { - $attachment = $this->createAttachmentFromPath($file); - - return $this->prepAttachment($attachment, $options); - } - - /** - * Create a Swift Attachment instance. - * - * @param string $file - * @return \Swift_Mime_Attachment - */ - protected function createAttachmentFromPath($file) - { - return Swift_Attachment::fromPath($file); - } - - /** - * Attach in-memory data as an attachment. - * - * @param string $data - * @param string $name - * @param array $options - * @return $this - */ - public function attachData($data, $name, array $options = []) - { - $attachment = $this->createAttachmentFromData($data, $name); - - return $this->prepAttachment($attachment, $options); - } - - /** - * Create a Swift Attachment instance from data. - * - * @param string $data - * @param string $name - * @return \Swift_Attachment - */ - protected function createAttachmentFromData($data, $name) - { - return new Swift_Attachment($data, $name); - } - - /** - * Embed a file in the message and get the CID. - * - * @param string $file - * @return string - */ - public function embed($file) - { - if (isset($this->embeddedFiles[$file])) { - return $this->embeddedFiles[$file]; - } - - return $this->embeddedFiles[$file] = $this->swift->embed( - Swift_Image::fromPath($file) - ); - } - - /** - * Embed in-memory data in the message and get the CID. - * - * @param string $data - * @param string $name - * @param string|null $contentType - * @return string - */ - public function embedData($data, $name, $contentType = null) - { - $image = new Swift_Image($data, $name, $contentType); - - return $this->swift->embed($image); - } - - /** - * Prepare and attach the given attachment. - * - * @param \Swift_Attachment $attachment - * @param array $options - * @return $this - */ - protected function prepAttachment($attachment, $options = []) - { - // First we will check for a MIME type on the message, which instructs the - // mail client on what type of attachment the file is so that it may be - // downloaded correctly by the user. The MIME option is not required. - if (isset($options['mime'])) { - $attachment->setContentType($options['mime']); - } - - // If an alternative name was given as an option, we will set that on this - // attachment so that it will be downloaded with the desired names from - // the developer, otherwise the default file names will get assigned. - if (isset($options['as'])) { - $attachment->setFilename($options['as']); - } - - $this->swift->attach($attachment); - - return $this; - } - - /** - * Get the underlying Swift Message instance. - * - * @return \Swift_Message - */ - public function getSwiftMessage() - { - return $this->swift; - } - - /** - * Dynamically pass missing methods to the Swift instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - $callable = [$this->swift, $method]; - - return call_user_func_array($callable, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php b/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php deleted file mode 100644 index e3af961a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php +++ /dev/null @@ -1,154 +0,0 @@ -mailer = $mailer; - } - - /** - * Set the recipients of the message. - * - * @param mixed $users - * @return $this - */ - public function to($users) - { - $this->to = $users; - - return $this; - } - - /** - * Set the recipients of the message. - * - * @param mixed $users - * @return $this - */ - public function cc($users) - { - $this->cc = $users; - - return $this; - } - - /** - * Set the recipients of the message. - * - * @param mixed $users - * @return $this - */ - public function bcc($users) - { - $this->bcc = $users; - - return $this; - } - - /** - * Send a new mailable message instance. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function send(Mailable $mailable) - { - if ($mailable instanceof ShouldQueue) { - return $this->queue($mailable); - } - - return $this->mailer->send($this->fill($mailable)); - } - - /** - * Send a mailable message immediately. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function sendNow(Mailable $mailable) - { - return $this->mailer->send($this->fill($mailable)); - } - - /** - * Push the given mailable onto the queue. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function queue(Mailable $mailable) - { - $mailable = $this->fill($mailable); - - if (isset($mailable->delay)) { - return $this->mailer->later($mailable->delay, $mailable); - } - - return $this->mailer->queue($mailable); - } - - /** - * Deliver the queued message after the given delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function later($delay, Mailable $mailable) - { - return $this->mailer->later($delay, $this->fill($mailable)); - } - - /** - * Populate the mailable with the addresses. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return \Illuminate\Mail\Mailable - */ - protected function fill(Mailable $mailable) - { - return $mailable->to($this->to) - ->cc($this->cc) - ->bcc($this->bcc); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php b/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php deleted file mode 100644 index 0ed9bdeb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php +++ /dev/null @@ -1,87 +0,0 @@ -mailable = $mailable; - $this->tries = property_exists($mailable, 'tries') ? $mailable->tries : null; - $this->timeout = property_exists($mailable, 'timeout') ? $mailable->timeout : null; - } - - /** - * Handle the queued job. - * - * @param \Illuminate\Contracts\Mail\Mailer $mailer - * @return void - */ - public function handle(MailerContract $mailer) - { - $this->mailable->send($mailer); - } - - /** - * Get the display name for the queued job. - * - * @return string - */ - public function displayName() - { - return get_class($this->mailable); - } - - /** - * Call the failed method on the mailable instance. - * - * @param \Exception $e - * @return void - */ - public function failed($e) - { - if (method_exists($this->mailable, 'failed')) { - $this->mailable->failed($e); - } - } - - /** - * Prepare the instance for cloning. - * - * @return void - */ - public function __clone() - { - $this->mailable = clone $this->mailable; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php deleted file mode 100644 index 766af833..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php +++ /dev/null @@ -1,58 +0,0 @@ -messages = new Collection; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $this->messages[] = $message; - - return $this->numberOfRecipients($message); - } - - /** - * Retrieve the collection of messages. - * - * @return \Illuminate\Support\Collection - */ - public function messages() - { - return $this->messages; - } - - /** - * Clear all of the messages from the local collection. - * - * @return \Illuminate\Support\Collection - */ - public function flush() - { - return $this->messages = new Collection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php deleted file mode 100644 index 273fb782..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php +++ /dev/null @@ -1,59 +0,0 @@ -logger = $logger; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $this->logger->debug($this->getMimeEntityString($message)); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } - - /** - * Get a loggable string out of a Swiftmailer entity. - * - * @param \Swift_Mime_SimpleMimeEntity $entity - * @return string - */ - protected function getMimeEntityString(Swift_Mime_SimpleMimeEntity $entity) - { - $string = (string) $entity->getHeaders().PHP_EOL.$entity->getBody(); - - foreach ($entity->getChildren() as $children) { - $string .= PHP_EOL.PHP_EOL.$this->getMimeEntityString($children); - } - - return $string; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php deleted file mode 100644 index bac82932..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php +++ /dev/null @@ -1,168 +0,0 @@ -key = $key; - $this->client = $client; - $this->setDomain($domain); - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $to = $this->getTo($message); - - $message->setBcc([]); - - $this->client->post($this->url, $this->payload($message, $to)); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } - - /** - * Get the HTTP payload for sending the Mailgun message. - * - * @param \Swift_Mime_SimpleMessage $message - * @param string $to - * @return array - */ - protected function payload(Swift_Mime_SimpleMessage $message, $to) - { - return [ - 'auth' => [ - 'api', - $this->key, - ], - 'multipart' => [ - [ - 'name' => 'to', - 'contents' => $to, - ], - [ - 'name' => 'message', - 'contents' => $message->toString(), - 'filename' => 'message.mime', - ], - ], - ]; - } - - /** - * Get the "to" payload field for the API request. - * - * @param \Swift_Mime_SimpleMessage $message - * @return string - */ - protected function getTo(Swift_Mime_SimpleMessage $message) - { - return collect($this->allContacts($message))->map(function ($display, $address) { - return $display ? $display." <{$address}>" : $address; - })->values()->implode(','); - } - - /** - * Get all of the contacts for the message. - * - * @param \Swift_Mime_SimpleMessage $message - * @return array - */ - protected function allContacts(Swift_Mime_SimpleMessage $message) - { - return array_merge( - (array) $message->getTo(), (array) $message->getCc(), (array) $message->getBcc() - ); - } - - /** - * Get the API key being used by the transport. - * - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * Set the API key being used by the transport. - * - * @param string $key - * @return string - */ - public function setKey($key) - { - return $this->key = $key; - } - - /** - * Get the domain being used by the transport. - * - * @return string - */ - public function getDomain() - { - return $this->domain; - } - - /** - * Set the domain being used by the transport. - * - * @param string $domain - * @return string - */ - public function setDomain($domain) - { - $this->url = 'https://api.mailgun.net/v3/'.$domain.'/messages.mime'; - - return $this->domain = $domain; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php deleted file mode 100644 index 685b0275..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php +++ /dev/null @@ -1,105 +0,0 @@ -key = $key; - $this->client = $client; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $this->client->post('https://mandrillapp.com/api/1.0/messages/send-raw.json', [ - 'form_params' => [ - 'key' => $this->key, - 'to' => $this->getTo($message), - 'raw_message' => $message->toString(), - 'async' => true, - ], - ]); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } - - /** - * Get all the addresses this message should be sent to. - * - * Note that Mandrill still respects CC, BCC headers in raw message itself. - * - * @param \Swift_Mime_SimpleMessage $message - * @return array - */ - protected function getTo(Swift_Mime_SimpleMessage $message) - { - $to = []; - - if ($message->getTo()) { - $to = array_merge($to, array_keys($message->getTo())); - } - - if ($message->getCc()) { - $to = array_merge($to, array_keys($message->getCc())); - } - - if ($message->getBcc()) { - $to = array_merge($to, array_keys($message->getBcc())); - } - - return $to; - } - - /** - * Get the API key being used by the transport. - * - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * Set the API key being used by the transport. - * - * @param string $key - * @return string - */ - public function setKey($key) - { - return $this->key = $key; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php deleted file mode 100644 index c3afe3f5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php +++ /dev/null @@ -1,48 +0,0 @@ -ses = $ses; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $headers = $message->getHeaders(); - - $headers->addTextHeader('X-SES-Message-ID', $this->ses->sendRawEmail([ - 'Source' => key($message->getSender() ?: $message->getFrom()), - 'RawMessage' => [ - 'Data' => $message->toString(), - ], - ])->get('MessageId')); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php deleted file mode 100644 index cc58eac6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php +++ /dev/null @@ -1,159 +0,0 @@ -key = $key; - $this->client = $client; - $this->options = $options; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $recipients = $this->getRecipients($message); - - $message->setBcc([]); - - $response = $this->client->post('https://api.sparkpost.com/api/v1/transmissions', [ - 'headers' => [ - 'Authorization' => $this->key, - ], - 'json' => array_merge([ - 'recipients' => $recipients, - 'content' => [ - 'email_rfc822' => $message->toString(), - ], - ], $this->options), - ]); - - $message->getHeaders()->addTextHeader( - 'X-SparkPost-Transmission-ID', $this->getTransmissionId($response) - ); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } - - /** - * Get all the addresses this message should be sent to. - * - * Note that SparkPost still respects CC, BCC headers in raw message itself. - * - * @param \Swift_Mime_SimpleMessage $message - * @return array - */ - protected function getRecipients(Swift_Mime_SimpleMessage $message) - { - $recipients = []; - - foreach ((array) $message->getTo() as $email => $name) { - $recipients[] = ['address' => compact('name', 'email')]; - } - - foreach ((array) $message->getCc() as $email => $name) { - $recipients[] = ['address' => compact('name', 'email')]; - } - - foreach ((array) $message->getBcc() as $email => $name) { - $recipients[] = ['address' => compact('name', 'email')]; - } - - return $recipients; - } - - /** - * Get the transmission ID from the response. - * - * @param \GuzzleHttp\Psr7\Response $response - * @return string - */ - protected function getTransmissionId($response) - { - return object_get( - json_decode($response->getBody()->getContents()), 'results.id' - ); - } - - /** - * Get the API key being used by the transport. - * - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * Set the API key being used by the transport. - * - * @param string $key - * @return string - */ - public function setKey($key) - { - return $this->key = $key; - } - - /** - * Get the transmission options being used by the transport. - * - * @return array - */ - public function getOptions() - { - return $this->options; - } - - /** - * Set the transmission options being used by the transport. - * - * @param array $options - * @return array - */ - public function setOptions(array $options) - { - return $this->options = $options; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php deleted file mode 100644 index bc257499..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php +++ /dev/null @@ -1,108 +0,0 @@ -plugins, $plugin); - } - - /** - * Iterate through registered plugins and execute plugins' methods. - * - * @param \Swift_Mime_SimpleMessage $message - * @return void - */ - protected function beforeSendPerformed(Swift_Mime_SimpleMessage $message) - { - $event = new Swift_Events_SendEvent($this, $message); - - foreach ($this->plugins as $plugin) { - if (method_exists($plugin, 'beforeSendPerformed')) { - $plugin->beforeSendPerformed($event); - } - } - } - - /** - * Iterate through registered plugins and execute plugins' methods. - * - * @param \Swift_Mime_SimpleMessage $message - * @return void - */ - protected function sendPerformed(Swift_Mime_SimpleMessage $message) - { - $event = new Swift_Events_SendEvent($this, $message); - - foreach ($this->plugins as $plugin) { - if (method_exists($plugin, 'sendPerformed')) { - $plugin->sendPerformed($event); - } - } - } - - /** - * Get the number of recipients. - * - * @param \Swift_Mime_SimpleMessage $message - * @return int - */ - protected function numberOfRecipients(Swift_Mime_SimpleMessage $message) - { - return count(array_merge( - (array) $message->getTo(), (array) $message->getCc(), (array) $message->getBcc() - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php b/vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php deleted file mode 100644 index 782d2d39..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php +++ /dev/null @@ -1,206 +0,0 @@ -app->make('config')->get('mail'); - - // The Swift SMTP transport instance will allow us to use any SMTP backend - // for delivering mail such as Sendgrid, Amazon SES, or a custom server - // a developer has available. We will just pass this configured host. - $transport = new SmtpTransport($config['host'], $config['port']); - - if (isset($config['encryption'])) { - $transport->setEncryption($config['encryption']); - } - - // Once we have the transport we will check for the presence of a username - // and password. If we have it we will set the credentials on the Swift - // transporter instance so that we'll properly authenticate delivery. - if (isset($config['username'])) { - $transport->setUsername($config['username']); - - $transport->setPassword($config['password']); - } - - // Next we will set any stream context options specified for the transport - // and then return it. The option is not required any may not be inside - // the configuration array at all so we'll verify that before adding. - if (isset($config['stream'])) { - $transport->setStreamOptions($config['stream']); - } - - return $transport; - } - - /** - * Create an instance of the Sendmail Swift Transport driver. - * - * @return \Swift_SendmailTransport - */ - protected function createSendmailDriver() - { - return new SendmailTransport($this->app['config']['mail']['sendmail']); - } - - /** - * Create an instance of the Amazon SES Swift Transport driver. - * - * @return \Swift_SendmailTransport - */ - protected function createSesDriver() - { - $config = array_merge($this->app['config']->get('services.ses', []), [ - 'version' => 'latest', 'service' => 'email', - ]); - - return new SesTransport(new SesClient( - $this->addSesCredentials($config) - )); - } - - /** - * Add the SES credentials to the configuration array. - * - * @param array $config - * @return array - */ - protected function addSesCredentials(array $config) - { - if ($config['key'] && $config['secret']) { - $config['credentials'] = Arr::only($config, ['key', 'secret']); - } - - return $config; - } - - /** - * Create an instance of the Mail Swift Transport driver. - * - * @return \Swift_SendmailTransport - */ - protected function createMailDriver() - { - return new MailTransport; - } - - /** - * Create an instance of the Mailgun Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\MailgunTransport - */ - protected function createMailgunDriver() - { - $config = $this->app['config']->get('services.mailgun', []); - - return new MailgunTransport( - $this->guzzle($config), - $config['secret'], $config['domain'] - ); - } - - /** - * Create an instance of the Mandrill Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\MandrillTransport - */ - protected function createMandrillDriver() - { - $config = $this->app['config']->get('services.mandrill', []); - - return new MandrillTransport( - $this->guzzle($config), $config['secret'] - ); - } - - /** - * Create an instance of the SparkPost Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\SparkPostTransport - */ - protected function createSparkPostDriver() - { - $config = $this->app['config']->get('services.sparkpost', []); - - return new SparkPostTransport( - $this->guzzle($config), $config['secret'], $config['options'] ?? [] - ); - } - - /** - * Create an instance of the Log Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\LogTransport - */ - protected function createLogDriver() - { - return new LogTransport($this->app->make(LoggerInterface::class)); - } - - /** - * Create an instance of the Array Swift Transport Driver. - * - * @return \Illuminate\Mail\Transport\ArrayTransport - */ - protected function createArrayDriver() - { - return new ArrayTransport; - } - - /** - * Get a fresh Guzzle HTTP client instance. - * - * @param array $config - * @return \GuzzleHttp\Client - */ - protected function guzzle($config) - { - return new HttpClient(Arr::add( - $config['guzzle'] ?? [], 'connect_timeout', 60 - )); - } - - /** - * Get the default mail driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['mail.driver']; - } - - /** - * Set the default mail driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['mail.driver'] = $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/composer.json b/vendor/laravel/framework/src/Illuminate/Mail/composer.json deleted file mode 100755 index 6343a923..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "illuminate/mail", - "description": "The Illuminate Mail package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "erusev/parsedown": "~1.6", - "illuminate/container": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*", - "psr/log": "~1.0", - "swiftmailer/swiftmailer": "~6.0", - "tijsverkoyen/css-to-inline-styles": "~2.2" - }, - "autoload": { - "psr-4": { - "Illuminate\\Mail\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "aws/aws-sdk-php": "Required to use the SES mail driver (~3.0).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers (~6.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php deleted file mode 100644 index c7aae1b8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php +++ /dev/null @@ -1,19 +0,0 @@ - - - - -
- - - - -
- - - - -
- {{ $slot }} -
-
-
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php deleted file mode 100644 index c3f9360a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php deleted file mode 100644 index eefabab9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - - - - {{ $slot }} - - - diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php deleted file mode 100644 index 991ae52a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - -
- - {{ $header or '' }} - - - - - - - {{ $footer or '' }} -
- - - - - -
- {{ Illuminate\Mail\Markdown::parse($slot) }} - - {{ $subcopy or '' }} -
-
-
- - diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php deleted file mode 100644 index 2ad23a66..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@component('mail::layout') - {{-- Header --}} - @slot('header') - @component('mail::header', ['url' => config('app.url')]) - {{ config('app.name') }} - @endcomponent - @endslot - - {{-- Body --}} - {{ $slot }} - - {{-- Subcopy --}} - @isset($subcopy) - @slot('subcopy') - @component('mail::subcopy') - {{ $subcopy }} - @endcomponent - @endslot - @endisset - - {{-- Footer --}} - @slot('footer') - @component('mail::footer') - © {{ date('Y') }} {{ config('app.name') }}. All rights reserved. - @endcomponent - @endslot -@endcomponent diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php deleted file mode 100644 index f3970802..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php +++ /dev/null @@ -1,13 +0,0 @@ - - - - -
- - - - -
- {{ Illuminate\Mail\Markdown::parse($slot) }} -
-
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php deleted file mode 100644 index 0debcf8a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - - - - -
- {{ Illuminate\Mail\Markdown::parse($slot) }} -
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php deleted file mode 100644 index 8e79081c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php +++ /dev/null @@ -1,13 +0,0 @@ - - - - -
- - - - -
- {{ $slot }} -
-
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php deleted file mode 100644 index c3df7b4c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - - - - -
- {{ Illuminate\Mail\Markdown::parse($slot) }} -
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php deleted file mode 100644 index a5f3348b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php +++ /dev/null @@ -1,3 +0,0 @@ -
-{{ Illuminate\Mail\Markdown::parse($slot) }} -
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css deleted file mode 100644 index b78b27da..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css +++ /dev/null @@ -1,287 +0,0 @@ -/* Base */ - -body, body *:not(html):not(style):not(br):not(tr):not(code) { - font-family: Avenir, Helvetica, sans-serif; - box-sizing: border-box; -} - -body { - background-color: #f5f8fa; - color: #74787E; - height: 100%; - hyphens: auto; - line-height: 1.4; - margin: 0; - -moz-hyphens: auto; - -ms-word-break: break-all; - width: 100% !important; - -webkit-hyphens: auto; - -webkit-text-size-adjust: none; - word-break: break-all; - word-break: break-word; -} - -p, -ul, -ol, -blockquote { - line-height: 1.4; - text-align: left; -} - -a { - color: #3869D4; -} - -a img { - border: none; -} - -/* Typography */ - -h1 { - color: #2F3133; - font-size: 19px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -h2 { - color: #2F3133; - font-size: 16px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -h3 { - color: #2F3133; - font-size: 14px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -p { - color: #74787E; - font-size: 16px; - line-height: 1.5em; - margin-top: 0; - text-align: left; -} - -p.sub { - font-size: 12px; -} - -img { - max-width: 100%; -} - -/* Layout */ - -.wrapper { - background-color: #f5f8fa; - margin: 0; - padding: 0; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.content { - margin: 0; - padding: 0; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -/* Header */ - -.header { - padding: 25px 0; - text-align: center; -} - -.header a { - color: #bbbfc3; - font-size: 19px; - font-weight: bold; - text-decoration: none; - text-shadow: 0 1px 0 white; -} - -/* Body */ - -.body { - background-color: #FFFFFF; - border-bottom: 1px solid #EDEFF2; - border-top: 1px solid #EDEFF2; - margin: 0; - padding: 0; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.inner-body { - background-color: #FFFFFF; - margin: 0 auto; - padding: 0; - width: 570px; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 570px; -} - -/* Subcopy */ - -.subcopy { - border-top: 1px solid #EDEFF2; - margin-top: 25px; - padding-top: 25px; -} - -.subcopy p { - font-size: 12px; -} - -/* Footer */ - -.footer { - margin: 0 auto; - padding: 0; - text-align: center; - width: 570px; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 570px; -} - -.footer p { - color: #AEAEAE; - font-size: 12px; - text-align: center; -} - -/* Tables */ - -.table table { - margin: 30px auto; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.table th { - border-bottom: 1px solid #EDEFF2; - padding-bottom: 8px; - margin: 0; -} - -.table td { - color: #74787E; - font-size: 15px; - line-height: 18px; - padding: 10px 0; - margin: 0; -} - -.content-cell { - padding: 35px; -} - -/* Buttons */ - -.action { - margin: 30px auto; - padding: 0; - text-align: center; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.button { - border-radius: 3px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16); - color: #FFF; - display: inline-block; - text-decoration: none; - -webkit-text-size-adjust: none; -} - -.button-blue { - background-color: #3097D1; - border-top: 10px solid #3097D1; - border-right: 18px solid #3097D1; - border-bottom: 10px solid #3097D1; - border-left: 18px solid #3097D1; -} - -.button-green { - background-color: #2ab27b; - border-top: 10px solid #2ab27b; - border-right: 18px solid #2ab27b; - border-bottom: 10px solid #2ab27b; - border-left: 18px solid #2ab27b; -} - -.button-red { - background-color: #bf5329; - border-top: 10px solid #bf5329; - border-right: 18px solid #bf5329; - border-bottom: 10px solid #bf5329; - border-left: 18px solid #bf5329; -} - -/* Panels */ - -.panel { - margin: 0 0 21px; -} - -.panel-content { - background-color: #EDEFF2; - padding: 16px; -} - -.panel-item { - padding: 0; -} - -.panel-item p:last-of-type { - margin-bottom: 0; - padding-bottom: 0; -} - -/* Promotions */ - -.promotion { - background-color: #FFFFFF; - border: 2px dashed #9BA2AB; - margin: 0; - margin-bottom: 25px; - margin-top: 25px; - padding: 24px; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.promotion h1 { - text-align: center; -} - -.promotion p { - font-size: 15px; - text-align: center; -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/button.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/button.blade.php deleted file mode 100644 index 97444ebd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/button.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }}: {{ $url }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/footer.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/footer.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/footer.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/header.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/header.blade.php deleted file mode 100644 index aaa3e575..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/header.blade.php +++ /dev/null @@ -1 +0,0 @@ -[{{ $slot }}]({{ $url }}) diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/layout.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/layout.blade.php deleted file mode 100644 index 9378baa0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/layout.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -{!! strip_tags($header) !!} - -{!! strip_tags($slot) !!} -@isset($subcopy) - -{!! strip_tags($subcopy) !!} -@endisset - -{!! strip_tags($footer) !!} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/message.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/message.blade.php deleted file mode 100644 index b409c71c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/message.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@component('mail::layout') - {{-- Header --}} - @slot('header') - @component('mail::header', ['url' => config('app.url')]) - {{ config('app.name') }} - @endcomponent - @endslot - - {{-- Body --}} - {{ $slot }} - - {{-- Subcopy --}} - @isset($subcopy) - @slot('subcopy') - @component('mail::subcopy') - {{ $subcopy }} - @endcomponent - @endslot - @endisset - - {{-- Footer --}} - @slot('footer') - @component('mail::footer') - © {{ date('Y') }} {{ config('app.name') }}. All rights reserved. - @endcomponent - @endslot -@endcomponent diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/panel.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/panel.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/panel.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion/button.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion/button.blade.php deleted file mode 100644 index aaa3e575..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion/button.blade.php +++ /dev/null @@ -1 +0,0 @@ -[{{ $slot }}]({{ $url }}) diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/subcopy.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/subcopy.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/subcopy.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/table.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/table.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/table.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Action.php b/vendor/laravel/framework/src/Illuminate/Notifications/Action.php deleted file mode 100644 index 071db2d9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Action.php +++ /dev/null @@ -1,33 +0,0 @@ -url = $url; - $this->text = $text; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php b/vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php deleted file mode 100644 index d820239f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php +++ /dev/null @@ -1,72 +0,0 @@ -routes[$channel] = $route; - - return $this; - } - - /** - * Send the given notification. - * - * @param mixed $notification - * @return void - */ - public function notify($notification) - { - app(Dispatcher::class)->send($this, $notification); - } - - /** - * Send the given notification immediately. - * - * @param mixed $notification - * @return void - */ - public function notifyNow($notification) - { - app(Dispatcher::class)->sendNow($this, $notification); - } - - /** - * Get the notification routing information for the given driver. - * - * @param string $driver - * @return mixed - */ - public function routeNotificationFor($driver) - { - return $this->routes[$driver] ?? null; - } - - /** - * Get the value of the notifiable's primary key. - * - * @return mixed - */ - public function getKey() - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php b/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php deleted file mode 100644 index eb8c4f29..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php +++ /dev/null @@ -1,171 +0,0 @@ -app->make(Bus::class), $this->app->make(Dispatcher::class)) - )->send($notifiables, $notification); - } - - /** - * Send the given notification immediately. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @param array|null $channels - * @return void - */ - public function sendNow($notifiables, $notification, array $channels = null) - { - return (new NotificationSender( - $this, $this->app->make(Bus::class), $this->app->make(Dispatcher::class)) - )->sendNow($notifiables, $notification, $channels); - } - - /** - * Get a channel instance. - * - * @param string|null $name - * @return mixed - */ - public function channel($name = null) - { - return $this->driver($name); - } - - /** - * Create an instance of the database driver. - * - * @return \Illuminate\Notifications\Channels\DatabaseChannel - */ - protected function createDatabaseDriver() - { - return $this->app->make(Channels\DatabaseChannel::class); - } - - /** - * Create an instance of the broadcast driver. - * - * @return \Illuminate\Notifications\Channels\BroadcastChannel - */ - protected function createBroadcastDriver() - { - return $this->app->make(Channels\BroadcastChannel::class); - } - - /** - * Create an instance of the mail driver. - * - * @return \Illuminate\Notifications\Channels\MailChannel - */ - protected function createMailDriver() - { - return $this->app->make(Channels\MailChannel::class); - } - - /** - * Create an instance of the Nexmo driver. - * - * @return \Illuminate\Notifications\Channels\NexmoSmsChannel - */ - protected function createNexmoDriver() - { - return new Channels\NexmoSmsChannel( - new NexmoClient(new NexmoCredentials( - $this->app['config']['services.nexmo.key'], - $this->app['config']['services.nexmo.secret'] - )), - $this->app['config']['services.nexmo.sms_from'] - ); - } - - /** - * Create an instance of the Slack driver. - * - * @return \Illuminate\Notifications\Channels\SlackWebhookChannel - */ - protected function createSlackDriver() - { - return new Channels\SlackWebhookChannel(new HttpClient); - } - - /** - * Create a new driver instance. - * - * @param string $driver - * @return mixed - * - * @throws \InvalidArgumentException - */ - protected function createDriver($driver) - { - try { - return parent::createDriver($driver); - } catch (InvalidArgumentException $e) { - if (class_exists($driver)) { - return $this->app->make($driver); - } - - throw $e; - } - } - - /** - * Get the default channel driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->defaultChannel; - } - - /** - * Get the default channel driver name. - * - * @return string - */ - public function deliversVia() - { - return $this->getDefaultDriver(); - } - - /** - * Set the default channel driver name. - * - * @param string $channel - * @return void - */ - public function deliverVia($channel) - { - $this->defaultChannel = $channel; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php deleted file mode 100644 index 63f85ce7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php +++ /dev/null @@ -1,77 +0,0 @@ -events = $events; - } - - /** - * Send the given notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return array|null - */ - public function send($notifiable, Notification $notification) - { - $message = $this->getData($notifiable, $notification); - - $event = new BroadcastNotificationCreated( - $notifiable, $notification, is_array($message) ? $message : $message->data - ); - - if ($message instanceof BroadcastMessage) { - $event->onConnection($message->connection) - ->onQueue($message->queue); - } - - return $this->events->dispatch($event); - } - - /** - * Get the data for the notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return mixed - * - * @throws \RuntimeException - */ - protected function getData($notifiable, Notification $notification) - { - if (method_exists($notification, 'toBroadcast')) { - return $notification->toBroadcast($notifiable); - } - - if (method_exists($notification, 'toArray')) { - return $notification->toArray($notifiable); - } - - throw new RuntimeException( - 'Notification is missing toArray method.' - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php deleted file mode 100644 index 41767c3e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php +++ /dev/null @@ -1,51 +0,0 @@ -routeNotificationFor('database')->create([ - 'id' => $notification->id, - 'type' => get_class($notification), - 'data' => $this->getData($notifiable, $notification), - 'read_at' => null, - ]); - } - - /** - * Get the data for the notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return array - * - * @throws \RuntimeException - */ - protected function getData($notifiable, Notification $notification) - { - if (method_exists($notification, 'toDatabase')) { - return is_array($data = $notification->toDatabase($notifiable)) - ? $data : $data->data; - } - - if (method_exists($notification, 'toArray')) { - return $notification->toArray($notifiable); - } - - throw new RuntimeException( - 'Notification is missing toDatabase / toArray method.' - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php deleted file mode 100644 index a584e393..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php +++ /dev/null @@ -1,201 +0,0 @@ -mailer = $mailer; - $this->markdown = $markdown; - } - - /** - * Send the given notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return void - */ - public function send($notifiable, Notification $notification) - { - $message = $notification->toMail($notifiable); - - if (! $notifiable->routeNotificationFor('mail') && - ! $message instanceof Mailable) { - return; - } - - if ($message instanceof Mailable) { - return $message->send($this->mailer); - } - - $this->mailer->send( - $this->buildView($message), - $message->data(), - $this->messageBuilder($notifiable, $notification, $message) - ); - } - - /** - * Get the mailer Closure for the message. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return \Closure - */ - protected function messageBuilder($notifiable, $notification, $message) - { - return function ($mailMessage) use ($notifiable, $notification, $message) { - $this->buildMessage($mailMessage, $notifiable, $notification, $message); - }; - } - - /** - * Build the notification's view. - * - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return string|array - */ - protected function buildView($message) - { - if ($message->view) { - return $message->view; - } - - return [ - 'html' => $this->markdown->render($message->markdown, $message->data()), - 'text' => $this->markdown->renderText($message->markdown, $message->data()), - ]; - } - - /** - * Build the mail message. - * - * @param \Illuminate\Mail\Message $mailMessage - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return void - */ - protected function buildMessage($mailMessage, $notifiable, $notification, $message) - { - $this->addressMessage($mailMessage, $notifiable, $message); - - $mailMessage->subject($message->subject ?: Str::title( - Str::snake(class_basename($notification), ' ') - )); - - $this->addAttachments($mailMessage, $message); - - if (! is_null($message->priority)) { - $mailMessage->setPriority($message->priority); - } - } - - /** - * Address the mail message. - * - * @param \Illuminate\Mail\Message $mailMessage - * @param mixed $notifiable - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return void - */ - protected function addressMessage($mailMessage, $notifiable, $message) - { - $this->addSender($mailMessage, $message); - - $mailMessage->to($this->getRecipients($notifiable, $message)); - - if ($message->cc) { - $mailMessage->cc($message->cc[0], Arr::get($message->cc, 1)); - } - - if ($message->bcc) { - $mailMessage->bcc($message->bcc[0], Arr::get($message->bcc, 1)); - } - } - - /** - * Add the "from" and "reply to" addresses to the message. - * - * @param \Illuminate\Mail\Message $mailMessage - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return void - */ - protected function addSender($mailMessage, $message) - { - if (! empty($message->from)) { - $mailMessage->from($message->from[0], Arr::get($message->from, 1)); - } - - if (! empty($message->replyTo)) { - $mailMessage->replyTo($message->replyTo[0], Arr::get($message->replyTo, 1)); - } - } - - /** - * Get the recipients of the given message. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return mixed - */ - protected function getRecipients($notifiable, $message) - { - if (is_string($recipients = $notifiable->routeNotificationFor('mail'))) { - $recipients = [$recipients]; - } - - return collect($recipients)->map(function ($recipient) { - return is_string($recipient) ? $recipient : $recipient->email; - })->all(); - } - - /** - * Add the attachments to the message. - * - * @param \Illuminate\Mail\Message $mailMessage - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return void - */ - protected function addAttachments($mailMessage, $message) - { - foreach ($message->attachments as $attachment) { - $mailMessage->attach($attachment['file'], $attachment['options']); - } - - foreach ($message->rawAttachments as $attachment) { - $mailMessage->attachData($attachment['data'], $attachment['name'], $attachment['options']); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php deleted file mode 100644 index 61933242..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php +++ /dev/null @@ -1,64 +0,0 @@ -from = $from; - $this->nexmo = $nexmo; - } - - /** - * Send the given notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return \Nexmo\Message\Message - */ - public function send($notifiable, Notification $notification) - { - if (! $to = $notifiable->routeNotificationFor('nexmo')) { - return; - } - - $message = $notification->toNexmo($notifiable); - - if (is_string($message)) { - $message = new NexmoMessage($message); - } - - return $this->nexmo->message()->send([ - 'type' => $message->type, - 'from' => $message->from ?: $this->from, - 'to' => $to, - 'text' => trim($message->content), - ]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php deleted file mode 100644 index afe370f7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php +++ /dev/null @@ -1,120 +0,0 @@ -http = $http; - } - - /** - * Send the given notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return \Psr\Http\Message\ResponseInterface - */ - public function send($notifiable, Notification $notification) - { - if (! $url = $notifiable->routeNotificationFor('slack')) { - return; - } - - $this->http->post($url, $this->buildJsonPayload( - $notification->toSlack($notifiable) - )); - } - - /** - * Build up a JSON payload for the Slack webhook. - * - * @param \Illuminate\Notifications\Messages\SlackMessage $message - * @return array - */ - protected function buildJsonPayload(SlackMessage $message) - { - $optionalFields = array_filter([ - 'channel' => data_get($message, 'channel'), - 'icon_emoji' => data_get($message, 'icon'), - 'icon_url' => data_get($message, 'image'), - 'link_names' => data_get($message, 'linkNames'), - 'unfurl_links' => data_get($message, 'unfurlLinks'), - 'unfurl_media' => data_get($message, 'unfurlMedia'), - 'username' => data_get($message, 'username'), - ]); - - return array_merge([ - 'json' => array_merge([ - 'text' => $message->content, - 'attachments' => $this->attachments($message), - ], $optionalFields), - ], $message->http); - } - - /** - * Format the message's attachments. - * - * @param \Illuminate\Notifications\Messages\SlackMessage $message - * @return array - */ - protected function attachments(SlackMessage $message) - { - return collect($message->attachments)->map(function ($attachment) use ($message) { - return array_filter([ - 'author_icon' => $attachment->authorIcon, - 'author_link' => $attachment->authorLink, - 'author_name' => $attachment->authorName, - 'color' => $attachment->color ?: $message->color(), - 'fallback' => $attachment->fallback, - 'fields' => $this->fields($attachment), - 'footer' => $attachment->footer, - 'footer_icon' => $attachment->footerIcon, - 'image_url' => $attachment->imageUrl, - 'mrkdwn_in' => $attachment->markdown, - 'text' => $attachment->content, - 'thumb_url' => $attachment->thumbUrl, - 'title' => $attachment->title, - 'title_link' => $attachment->url, - 'ts' => $attachment->timestamp, - ]); - })->all(); - } - - /** - * Format the attachment's fields. - * - * @param \Illuminate\Notifications\Messages\SlackAttachment $attachment - * @return array - */ - protected function fields(SlackAttachment $attachment) - { - return collect($attachment->fields)->map(function ($value, $key) { - if ($value instanceof SlackAttachmentField) { - return $value->toArray(); - } - - return ['title' => $key, 'value' => $value, 'short' => true]; - })->values()->all(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php b/vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php deleted file mode 100644 index 23982808..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php +++ /dev/null @@ -1,81 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $fullPath = $this->createBaseMigration(); - - $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/notifications.stub')); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the notifications. - * - * @return string - */ - protected function createBaseMigration() - { - $name = 'create_notifications_table'; - - $path = $this->laravel->databasePath().'/migrations'; - - return $this->laravel['migration.creator']->create($name, $path); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub b/vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub deleted file mode 100644 index fb16d5bc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub +++ /dev/null @@ -1,35 +0,0 @@ -uuid('id')->primary(); - $table->string('type'); - $table->morphs('notifiable'); - $table->text('data'); - $table->timestamp('read_at')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('notifications'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php b/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php deleted file mode 100644 index 1c1b6bbe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php +++ /dev/null @@ -1,102 +0,0 @@ - 'array', - 'read_at' => 'datetime', - ]; - - /** - * Get the notifiable entity that the notification belongs to. - */ - public function notifiable() - { - return $this->morphTo(); - } - - /** - * Mark the notification as read. - * - * @return void - */ - public function markAsRead() - { - if (is_null($this->read_at)) { - $this->forceFill(['read_at' => $this->freshTimestamp()])->save(); - } - } - - /** - * Mark the notification as unread. - * - * @return void - */ - public function markAsUnread() - { - if (! is_null($this->read_at)) { - $this->forceFill(['read_at' => null])->save(); - } - } - - /** - * Determine if a notification has been read. - * - * @return bool - */ - public function read() - { - return $this->read_at !== null; - } - - /** - * Determine if a notification has not been read. - * - * @return bool - */ - public function unread() - { - return $this->read_at === null; - } - - /** - * Create a new database notification collection instance. - * - * @param array $models - * @return \Illuminate\Notifications\DatabaseNotificationCollection - */ - public function newCollection(array $models = []) - { - return new DatabaseNotificationCollection($models); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php b/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php deleted file mode 100644 index fc7b4702..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php +++ /dev/null @@ -1,32 +0,0 @@ -each(function ($notification) { - $notification->markAsRead(); - }); - } - - /** - * Mark all notifications as unread. - * - * @return void - */ - public function markAsUnread() - { - $this->each(function ($notification) { - $notification->markAsUnread(); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php b/vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php deleted file mode 100644 index c93fe5c5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php +++ /dev/null @@ -1,94 +0,0 @@ -data = $data; - $this->notifiable = $notifiable; - $this->notification = $notification; - } - - /** - * Get the channels the event should broadcast on. - * - * @return array - */ - public function broadcastOn() - { - $channels = $this->notification->broadcastOn(); - - if (! empty($channels)) { - return $channels; - } - - return [new PrivateChannel($this->channelName())]; - } - - /** - * Get the data that should be sent with the broadcasted event. - * - * @return array - */ - public function broadcastWith() - { - return array_merge($this->data, [ - 'id' => $this->notification->id, - 'type' => get_class($this->notification), - ]); - } - - /** - * Get the broadcast channel name for the event. - * - * @return string - */ - protected function channelName() - { - if (method_exists($this->notifiable, 'receivesBroadcastNotificationsOn')) { - return $this->notifiable->receivesBroadcastNotificationsOn($this->notification); - } - - $class = str_replace('\\', '.', get_class($this->notifiable)); - - return $class.'.'.$this->notifiable->getKey(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php b/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php deleted file mode 100644 index 1ddd9653..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php +++ /dev/null @@ -1,51 +0,0 @@ -data = $data; - $this->channel = $channel; - $this->notifiable = $notifiable; - $this->notification = $notification; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php b/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php deleted file mode 100644 index 81a218ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php +++ /dev/null @@ -1,42 +0,0 @@ -channel = $channel; - $this->notifiable = $notifiable; - $this->notification = $notification; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php b/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php deleted file mode 100644 index 725d880f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php +++ /dev/null @@ -1,51 +0,0 @@ -channel = $channel; - $this->response = $response; - $this->notifiable = $notifiable; - $this->notification = $notification; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php b/vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php deleted file mode 100644 index 0b938b01..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php +++ /dev/null @@ -1,33 +0,0 @@ -morphMany(DatabaseNotification::class, 'notifiable') - ->orderBy('created_at', 'desc'); - } - - /** - * Get the entity's read notifications. - */ - public function readNotifications() - { - return $this->notifications() - ->whereNotNull('read_at'); - } - - /** - * Get the entity's unread notifications. - */ - public function unreadNotifications() - { - return $this->notifications() - ->whereNull('read_at'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php deleted file mode 100644 index 9884a8fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php +++ /dev/null @@ -1,41 +0,0 @@ -data = $data; - } - - /** - * Set the message data. - * - * @param array $data - * @return $this - */ - public function data($data) - { - $this->data = $data; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php deleted file mode 100644 index 55707a7c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php +++ /dev/null @@ -1,24 +0,0 @@ -data = $data; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php deleted file mode 100644 index 4a0f7afc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php +++ /dev/null @@ -1,233 +0,0 @@ -view = $view; - $this->viewData = $data; - - $this->markdown = null; - - return $this; - } - - /** - * Set the Markdown template for the notification. - * - * @param string $view - * @param array $data - * @return $this - */ - public function markdown($view, array $data = []) - { - $this->markdown = $view; - $this->viewData = $data; - - $this->view = null; - - return $this; - } - - /** - * Set the default markdown template. - * - * @param string $template - * @return $this - */ - public function template($template) - { - $this->markdown = $template; - - return $this; - } - - /** - * Set the from address for the mail message. - * - * @param string $address - * @param string|null $name - * @return $this - */ - public function from($address, $name = null) - { - $this->from = [$address, $name]; - - return $this; - } - - /** - * Set the "reply to" address of the message. - * - * @param array|string $address - * @param string|null $name - * @return $this - */ - public function replyTo($address, $name = null) - { - $this->replyTo = [$address, $name]; - - return $this; - } - - /** - * Set the cc address for the mail message. - * - * @param string $address - * @param string|null $name - * @return $this - */ - public function cc($address, $name = null) - { - $this->cc = [$address, $name]; - - return $this; - } - - /** - * Set the bcc address for the mail message. - * - * @param string $address - * @param string|null $name - * @return $this - */ - public function bcc($address, $name = null) - { - $this->bcc = [$address, $name]; - - return $this; - } - - /** - * Attach a file to the message. - * - * @param string $file - * @param array $options - * @return $this - */ - public function attach($file, array $options = []) - { - $this->attachments[] = compact('file', 'options'); - - return $this; - } - - /** - * Attach in-memory data as an attachment. - * - * @param string $data - * @param string $name - * @param array $options - * @return $this - */ - public function attachData($data, $name, array $options = []) - { - $this->rawAttachments[] = compact('data', 'name', 'options'); - - return $this; - } - - /** - * Set the priority of this message. - * - * The value is an integer where 1 is the highest priority and 5 is the lowest. - * - * @param int $level - * @return $this - */ - public function priority($level) - { - $this->priority = $level; - - return $this; - } - - /** - * Get the data array for the mail message. - * - * @return array - */ - public function data() - { - return array_merge($this->toArray(), $this->viewData); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php deleted file mode 100644 index 293cf032..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php +++ /dev/null @@ -1,76 +0,0 @@ -content = $content; - } - - /** - * Set the message content. - * - * @param string $content - * @return $this - */ - public function content($content) - { - $this->content = $content; - - return $this; - } - - /** - * Set the phone number the message should be sent from. - * - * @param string $from - * @return $this - */ - public function from($from) - { - $this->from = $from; - - return $this; - } - - /** - * Set the message type. - * - * @return $this - */ - public function unicode() - { - $this->type = 'unicode'; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php deleted file mode 100644 index 395983c0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php +++ /dev/null @@ -1,224 +0,0 @@ -level = 'success'; - - return $this; - } - - /** - * Indicate that the notification gives information about an error. - * - * @return $this - */ - public function error() - { - $this->level = 'error'; - - return $this; - } - - /** - * Set the "level" of the notification (success, error, etc.). - * - * @param string $level - * @return $this - */ - public function level($level) - { - $this->level = $level; - - return $this; - } - - /** - * Set the subject of the notification. - * - * @param string $subject - * @return $this - */ - public function subject($subject) - { - $this->subject = $subject; - - return $this; - } - - /** - * Set the greeting of the notification. - * - * @param string $greeting - * @return $this - */ - public function greeting($greeting) - { - $this->greeting = $greeting; - - return $this; - } - - /** - * Set the salutation of the notification. - * - * @param string $salutation - * @return $this - */ - public function salutation($salutation) - { - $this->salutation = $salutation; - - return $this; - } - - /** - * Add a line of text to the notification. - * - * @param mixed $line - * @return $this - */ - public function line($line) - { - return $this->with($line); - } - - /** - * Add a line of text to the notification. - * - * @param mixed $line - * @return $this - */ - public function with($line) - { - if ($line instanceof Action) { - $this->action($line->text, $line->url); - } elseif (! $this->actionText) { - $this->introLines[] = $this->formatLine($line); - } else { - $this->outroLines[] = $this->formatLine($line); - } - - return $this; - } - - /** - * Format the given line of text. - * - * @param \Illuminate\Contracts\Support\Htmlable|string|array $line - * @return \Illuminate\Contracts\Support\Htmlable|string - */ - protected function formatLine($line) - { - if ($line instanceof Htmlable) { - return $line; - } - - if (is_array($line)) { - return implode(' ', array_map('trim', $line)); - } - - return trim(implode(' ', array_map('trim', preg_split('/\\r\\n|\\r|\\n/', $line)))); - } - - /** - * Configure the "call to action" button. - * - * @param string $text - * @param string $url - * @return $this - */ - public function action($text, $url) - { - $this->actionText = $text; - $this->actionUrl = $url; - - return $this; - } - - /** - * Get an array representation of the message. - * - * @return array - */ - public function toArray() - { - return [ - 'level' => $this->level, - 'subject' => $this->subject, - 'greeting' => $this->greeting, - 'salutation' => $this->salutation, - 'introLines' => $this->introLines, - 'outroLines' => $this->outroLines, - 'actionText' => $this->actionText, - 'actionUrl' => $this->actionUrl, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php deleted file mode 100644 index c949a5e0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php +++ /dev/null @@ -1,301 +0,0 @@ -title = $title; - $this->url = $url; - - return $this; - } - - /** - * Set the content (text) of the attachment. - * - * @param string $content - * @return $this - */ - public function content($content) - { - $this->content = $content; - - return $this; - } - - /** - * A plain-text summary of the attachment. - * - * @param string $fallback - * @return $this - */ - public function fallback($fallback) - { - $this->fallback = $fallback; - - return $this; - } - - /** - * Set the color of the attachment. - * - * @param string $color - * @return $this - */ - public function color($color) - { - $this->color = $color; - - return $this; - } - - /** - * Add a field to the attachment. - * - * @param \Closure|string $title - * @param string $content - * @return $this - */ - public function field($title, $content = '') - { - if (is_callable($title)) { - $callback = $title; - - $callback($attachmentField = new SlackAttachmentField); - - $this->fields[] = $attachmentField; - - return $this; - } - - $this->fields[$title] = $content; - - return $this; - } - - /** - * Set the fields of the attachment. - * - * @param array $fields - * @return $this - */ - public function fields(array $fields) - { - $this->fields = $fields; - - return $this; - } - - /** - * Set the fields containing markdown. - * - * @param array $fields - * @return $this - */ - public function markdown(array $fields) - { - $this->markdown = $fields; - - return $this; - } - - /** - * Set the image URL. - * - * @param string $url - * @return $this - */ - public function image($url) - { - $this->imageUrl = $url; - - return $this; - } - - /** - * Set the URL to the attachment thumbnail. - * - * @param string $url - * @return $this - */ - public function thumb($url) - { - $this->thumbUrl = $url; - - return $this; - } - - /** - * Set the author of the attachment. - * - * @param string $name - * @param string|null $link - * @param string|null $icon - * @return $this - */ - public function author($name, $link = null, $icon = null) - { - $this->authorName = $name; - $this->authorLink = $link; - $this->authorIcon = $icon; - - return $this; - } - - /** - * Set the footer content. - * - * @param string $footer - * @return $this - */ - public function footer($footer) - { - $this->footer = $footer; - - return $this; - } - - /** - * Set the footer icon. - * - * @param string $icon - * @return $this - */ - public function footerIcon($icon) - { - $this->footerIcon = $icon; - - return $this; - } - - /** - * Set the timestamp. - * - * @param \DateTimeInterface|\DateInterval|int $timestamp - * @return $this - */ - public function timestamp($timestamp) - { - $this->timestamp = $this->availableAt($timestamp); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php deleted file mode 100644 index f63bb267..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php +++ /dev/null @@ -1,79 +0,0 @@ -title = $title; - - return $this; - } - - /** - * Set the content of the field. - * - * @param string $content - * @return $this - */ - public function content($content) - { - $this->content = $content; - - return $this; - } - - /** - * Indicates that the content should not be displayed side-by-side with other fields. - * - * @return $this - */ - public function long() - { - $this->short = false; - - return $this; - } - - /** - * Get the array representation of the attachment field. - * - * @return array - */ - public function toArray() - { - return [ - 'title' => $this->title, - 'value' => $this->content, - 'short' => $this->short, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php deleted file mode 100644 index 039fa725..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php +++ /dev/null @@ -1,261 +0,0 @@ -level = 'success'; - - return $this; - } - - /** - * Indicate that the notification gives information about a warning. - * - * @return $this - */ - public function warning() - { - $this->level = 'warning'; - - return $this; - } - - /** - * Indicate that the notification gives information about an error. - * - * @return $this - */ - public function error() - { - $this->level = 'error'; - - return $this; - } - - /** - * Set a custom username and optional emoji icon for the Slack message. - * - * @param string $username - * @param string|null $icon - * @return $this - */ - public function from($username, $icon = null) - { - $this->username = $username; - - if (! is_null($icon)) { - $this->icon = $icon; - } - - return $this; - } - - /** - * Set a custom image icon the message should use. - * - * @param string $image - * @return $this - */ - public function image($image) - { - $this->image = $image; - - return $this; - } - - /** - * Set the Slack channel the message should be sent to. - * - * @param string $channel - * @return $this - */ - public function to($channel) - { - $this->channel = $channel; - - return $this; - } - - /** - * Set the content of the Slack message. - * - * @param string $content - * @return $this - */ - public function content($content) - { - $this->content = $content; - - return $this; - } - - /** - * Define an attachment for the message. - * - * @param \Closure $callback - * @return $this - */ - public function attachment(Closure $callback) - { - $this->attachments[] = $attachment = new SlackAttachment; - - $callback($attachment); - - return $this; - } - - /** - * Get the color for the message. - * - * @return string - */ - public function color() - { - switch ($this->level) { - case 'success': - return 'good'; - case 'error': - return 'danger'; - case 'warning': - return 'warning'; - } - } - - /** - * Find and link channel names and usernames. - * - * @return $this - */ - public function linkNames() - { - $this->linkNames = 1; - - return $this; - } - - /** - * Find and link channel names and usernames. - * - * @param string $unfurl - * @return $this - */ - public function unfurlLinks($unfurl) - { - $this->unfurlLinks = $unfurl; - - return $this; - } - - /** - * Find and link channel names and usernames. - * - * @param string $unfurl - * @return $this - */ - public function unfurlMedia($unfurl) - { - $this->unfurlMedia = $unfurl; - - return $this; - } - - /** - * Set additional request options for the Guzzle HTTP client. - * - * @param array $options - * @return $this - */ - public function http(array $options) - { - $this->http = $options; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php b/vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php deleted file mode 100644 index 82381e1e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php +++ /dev/null @@ -1,8 +0,0 @@ -bus = $bus; - $this->events = $events; - $this->manager = $manager; - } - - /** - * Send the given notification to the given notifiable entities. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @return void - */ - public function send($notifiables, $notification) - { - $notifiables = $this->formatNotifiables($notifiables); - - if ($notification instanceof ShouldQueue) { - return $this->queueNotification($notifiables, $notification); - } - - return $this->sendNow($notifiables, $notification); - } - - /** - * Send the given notification immediately. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @param array $channels - * @return void - */ - public function sendNow($notifiables, $notification, array $channels = null) - { - $notifiables = $this->formatNotifiables($notifiables); - - $original = clone $notification; - - foreach ($notifiables as $notifiable) { - if (empty($viaChannels = $channels ?: $notification->via($notifiable))) { - continue; - } - - $notificationId = Uuid::uuid4()->toString(); - - foreach ((array) $viaChannels as $channel) { - $this->sendToNotifiable($notifiable, $notificationId, clone $original, $channel); - } - } - } - - /** - * Send the given notification to the given notifiable via a channel. - * - * @param mixed $notifiable - * @param string $id - * @param mixed $notification - * @param string $channel - * @return void - */ - protected function sendToNotifiable($notifiable, $id, $notification, $channel) - { - if (! $notification->id) { - $notification->id = $id; - } - - if (! $this->shouldSendNotification($notifiable, $notification, $channel)) { - return; - } - - $response = $this->manager->driver($channel)->send($notifiable, $notification); - - $this->events->dispatch( - new Events\NotificationSent($notifiable, $notification, $channel, $response) - ); - } - - /** - * Determines if the notification can be sent. - * - * @param mixed $notifiable - * @param mixed $notification - * @param string $channel - * @return bool - */ - protected function shouldSendNotification($notifiable, $notification, $channel) - { - return $this->events->until( - new Events\NotificationSending($notifiable, $notification, $channel) - ) !== false; - } - - /** - * Queue the given notification instances. - * - * @param mixed $notifiables - * @param array[\Illuminate\Notifications\Channels\Notification] $notification - * @return void - */ - protected function queueNotification($notifiables, $notification) - { - $notifiables = $this->formatNotifiables($notifiables); - - $original = clone $notification; - - foreach ($notifiables as $notifiable) { - $notificationId = Uuid::uuid4()->toString(); - - foreach ($original->via($notifiable) as $channel) { - $notification = clone $original; - - $notification->id = $notificationId; - - $this->bus->dispatch( - (new SendQueuedNotifications($notifiable, $notification, [$channel])) - ->onConnection($notification->connection) - ->onQueue($notification->queue) - ->delay($notification->delay) - ); - } - } - } - - /** - * Format the notifiables into a Collection / array if necessary. - * - * @param mixed $notifiables - * @return \Illuminate\Database\Eloquent\Collection|array - */ - protected function formatNotifiables($notifiables) - { - if (! $notifiables instanceof Collection && ! is_array($notifiables)) { - return $notifiables instanceof Model - ? new ModelCollection([$notifiables]) : [$notifiables]; - } - - return $notifiables; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php deleted file mode 100644 index e8909f45..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php +++ /dev/null @@ -1,46 +0,0 @@ -loadViewsFrom(__DIR__.'/resources/views', 'notifications'); - - if ($this->app->runningInConsole()) { - $this->publishes([ - __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/notifications'), - ], 'laravel-notifications'); - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - $this->app->singleton(ChannelManager::class, function ($app) { - return new ChannelManager($app); - }); - - $this->app->alias( - ChannelManager::class, DispatcherContract::class - ); - - $this->app->alias( - ChannelManager::class, FactoryContract::class - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php b/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php deleted file mode 100644 index 779d5b8f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php +++ /dev/null @@ -1,54 +0,0 @@ -send($this, $instance); - } - - /** - * Send the given notification immediately. - * - * @param mixed $instance - * @param array|null $channels - * @return void - */ - public function notifyNow($instance, array $channels = null) - { - app(Dispatcher::class)->sendNow($this, $instance, $channels); - } - - /** - * Get the notification routing information for the given driver. - * - * @param string $driver - * @return mixed - */ - public function routeNotificationFor($driver) - { - if (method_exists($this, $method = 'routeNotificationFor'.Str::studly($driver))) { - return $this->{$method}(); - } - - switch ($driver) { - case 'database': - return $this->notifications(); - case 'mail': - return $this->email; - case 'nexmo': - return $this->phone_number; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php b/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php deleted file mode 100644 index 31fdd9b6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php +++ /dev/null @@ -1,93 +0,0 @@ -channels = $channels; - $this->notifiables = $notifiables; - $this->notification = $notification; - } - - /** - * Send the notifications. - * - * @param \Illuminate\Notifications\ChannelManager $manager - * @return void - */ - public function handle(ChannelManager $manager) - { - $manager->sendNow($this->notifiables, $this->notification, $this->channels); - } - - /** - * Get the display name for the queued job. - * - * @return string - */ - public function displayName() - { - return get_class($this->notification); - } - - /** - * Call the failed method on the notification instance. - * - * @param \Exception $e - * @return void - */ - public function failed($e) - { - if (method_exists($this->notification, 'failed')) { - $this->notification->failed($e); - } - } - - /** - * Prepare the instance for cloning. - * - * @return void - */ - public function __clone() - { - $this->notifiables = clone $this->notifiables; - $this->notification = clone $this->notification; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/composer.json b/vendor/laravel/framework/src/Illuminate/Notifications/composer.json deleted file mode 100644 index 3e7264f9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/composer.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "illuminate/notifications", - "description": "The Illuminate Notifications package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/broadcasting": "5.5.*", - "illuminate/bus": "5.5.*", - "illuminate/container": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/filesystem": "5.5.*", - "illuminate/mail": "5.5.*", - "illuminate/queue": "5.5.*", - "illuminate/support": "5.5.*", - "ramsey/uuid": "~3.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Notifications\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "guzzlehttp/guzzle": "Required to use the Slack transport (~6.0)", - "illuminate/database": "Required to use the database transport (5.5.*).", - "nexmo/client": "Required to use the Nexmo transport (~1.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php b/vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php deleted file mode 100644 index abfaa88e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php +++ /dev/null @@ -1,58 +0,0 @@ -@component('mail::message') -{{-- Greeting --}} -@if (! empty($greeting)) -# {{ $greeting }} -@else -@if ($level == 'error') -# Whoops! -@else -# Hello! -@endif -@endif - -{{-- Intro Lines --}} -@foreach ($introLines as $line) -{{ $line }} - -@endforeach - -{{-- Action Button --}} -@isset($actionText) - -@component('mail::button', ['url' => $actionUrl, 'color' => $color]) -{{ $actionText }} -@endcomponent -@endisset - -{{-- Outro Lines --}} -@foreach ($outroLines as $line) -{{ $line }} - -@endforeach - -{{-- Salutation --}} -@if (! empty($salutation)) -{{ $salutation }} -@else -Regards,
{{ config('app.name') }} -@endif - -{{-- Subcopy --}} -@isset($actionText) -@component('mail::subcopy') -If you’re having trouble clicking the "{{ $actionText }}" button, copy and paste the URL below -into your web browser: [{{ $actionUrl }}]({{ $actionUrl }}) -@endcomponent -@endisset -@endcomponent diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php deleted file mode 100644 index 0917ee87..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php +++ /dev/null @@ -1,589 +0,0 @@ -= 1 && filter_var($page, FILTER_VALIDATE_INT) !== false; - } - - /** - * Get the URL for the previous page. - * - * @return string|null - */ - public function previousPageUrl() - { - if ($this->currentPage() > 1) { - return $this->url($this->currentPage() - 1); - } - } - - /** - * Create a range of pagination URLs. - * - * @param int $start - * @param int $end - * @return array - */ - public function getUrlRange($start, $end) - { - return collect(range($start, $end))->mapWithKeys(function ($page) { - return [$page => $this->url($page)]; - })->all(); - } - - /** - * Get the URL for a given page number. - * - * @param int $page - * @return string - */ - public function url($page) - { - if ($page <= 0) { - $page = 1; - } - - // If we have any extra query string key / value pairs that need to be added - // onto the URL, we will put them in query string form and then attach it - // to the URL. This allows for extra information like sortings storage. - $parameters = [$this->pageName => $page]; - - if (count($this->query) > 0) { - $parameters = array_merge($this->query, $parameters); - } - - return $this->path - .(Str::contains($this->path, '?') ? '&' : '?') - .http_build_query($parameters, '', '&') - .$this->buildFragment(); - } - - /** - * Get / set the URL fragment to be appended to URLs. - * - * @param string|null $fragment - * @return $this|string|null - */ - public function fragment($fragment = null) - { - if (is_null($fragment)) { - return $this->fragment; - } - - $this->fragment = $fragment; - - return $this; - } - - /** - * Add a set of query string values to the paginator. - * - * @param array|string $key - * @param string|null $value - * @return $this - */ - public function appends($key, $value = null) - { - if (is_array($key)) { - return $this->appendArray($key); - } - - return $this->addQuery($key, $value); - } - - /** - * Add an array of query string values. - * - * @param array $keys - * @return $this - */ - protected function appendArray(array $keys) - { - foreach ($keys as $key => $value) { - $this->addQuery($key, $value); - } - - return $this; - } - - /** - * Add a query string value to the paginator. - * - * @param string $key - * @param string $value - * @return $this - */ - protected function addQuery($key, $value) - { - if ($key !== $this->pageName) { - $this->query[$key] = $value; - } - - return $this; - } - - /** - * Build the full fragment portion of a URL. - * - * @return string - */ - protected function buildFragment() - { - return $this->fragment ? '#'.$this->fragment : ''; - } - - /** - * Get the slice of items being paginated. - * - * @return array - */ - public function items() - { - return $this->items->all(); - } - - /** - * Get the number of the first item in the slice. - * - * @return int - */ - public function firstItem() - { - return count($this->items) > 0 ? ($this->currentPage - 1) * $this->perPage + 1 : null; - } - - /** - * Get the number of the last item in the slice. - * - * @return int - */ - public function lastItem() - { - return count($this->items) > 0 ? $this->firstItem() + $this->count() - 1 : null; - } - - /** - * Get the number of items shown per page. - * - * @return int - */ - public function perPage() - { - return $this->perPage; - } - - /** - * Determine if there are enough items to split into multiple pages. - * - * @return bool - */ - public function hasPages() - { - return $this->currentPage() != 1 || $this->hasMorePages(); - } - - /** - * Determine if the paginator is on the first page. - * - * @return bool - */ - public function onFirstPage() - { - return $this->currentPage() <= 1; - } - - /** - * Get the current page. - * - * @return int - */ - public function currentPage() - { - return $this->currentPage; - } - - /** - * Get the query string variable used to store the page. - * - * @return string - */ - public function getPageName() - { - return $this->pageName; - } - - /** - * Set the query string variable used to store the page. - * - * @param string $name - * @return $this - */ - public function setPageName($name) - { - $this->pageName = $name; - - return $this; - } - - /** - * Set the base path to assign to all URLs. - * - * @param string $path - * @return $this - */ - public function withPath($path) - { - return $this->setPath($path); - } - - /** - * Set the base path to assign to all URLs. - * - * @param string $path - * @return $this - */ - public function setPath($path) - { - $this->path = $path; - - return $this; - } - - /** - * Resolve the current request path or return the default value. - * - * @param string $default - * @return string - */ - public static function resolveCurrentPath($default = '/') - { - if (isset(static::$currentPathResolver)) { - return call_user_func(static::$currentPathResolver); - } - - return $default; - } - - /** - * Set the current request path resolver callback. - * - * @param \Closure $resolver - * @return void - */ - public static function currentPathResolver(Closure $resolver) - { - static::$currentPathResolver = $resolver; - } - - /** - * Resolve the current page or return the default value. - * - * @param string $pageName - * @param int $default - * @return int - */ - public static function resolveCurrentPage($pageName = 'page', $default = 1) - { - if (isset(static::$currentPageResolver)) { - return call_user_func(static::$currentPageResolver, $pageName); - } - - return $default; - } - - /** - * Set the current page resolver callback. - * - * @param \Closure $resolver - * @return void - */ - public static function currentPageResolver(Closure $resolver) - { - static::$currentPageResolver = $resolver; - } - - /** - * Get an instance of the view factory from the resolver. - * - * @return \Illuminate\Contracts\View\Factory - */ - public static function viewFactory() - { - return call_user_func(static::$viewFactoryResolver); - } - - /** - * Set the view factory resolver callback. - * - * @param \Closure $resolver - * @return void - */ - public static function viewFactoryResolver(Closure $resolver) - { - static::$viewFactoryResolver = $resolver; - } - - /** - * Set the default pagination view. - * - * @param string $view - * @return void - */ - public static function defaultView($view) - { - static::$defaultView = $view; - } - - /** - * Set the default "simple" pagination view. - * - * @param string $view - * @return void - */ - public static function defaultSimpleView($view) - { - static::$defaultSimpleView = $view; - } - - /** - * Get an iterator for the items. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return $this->items->getIterator(); - } - - /** - * Determine if the list of items is empty or not. - * - * @return bool - */ - public function isEmpty() - { - return $this->items->isEmpty(); - } - - /** - * Determine if the list of items is not empty. - * - * @return bool - */ - public function isNotEmpty() - { - return $this->items->isNotEmpty(); - } - - /** - * Get the number of items for the current page. - * - * @return int - */ - public function count() - { - return $this->items->count(); - } - - /** - * Get the paginator's underlying collection. - * - * @return \Illuminate\Support\Collection - */ - public function getCollection() - { - return $this->items; - } - - /** - * Set the paginator's underlying collection. - * - * @param \Illuminate\Support\Collection $collection - * @return $this - */ - public function setCollection(Collection $collection) - { - $this->items = $collection; - - return $this; - } - - /** - * Determine if the given item exists. - * - * @param mixed $key - * @return bool - */ - public function offsetExists($key) - { - return $this->items->has($key); - } - - /** - * Get the item at the given offset. - * - * @param mixed $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->items->get($key); - } - - /** - * Set the item at the given offset. - * - * @param mixed $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->items->put($key, $value); - } - - /** - * Unset the item at the given key. - * - * @param mixed $key - * @return void - */ - public function offsetUnset($key) - { - $this->items->forget($key); - } - - /** - * Render the contents of the paginator to HTML. - * - * @return string - */ - public function toHtml() - { - return (string) $this->render(); - } - - /** - * Make dynamic calls into the collection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->getCollection()->$method(...$parameters); - } - - /** - * Render the contents of the paginator when casting to string. - * - * @return string - */ - public function __toString() - { - return (string) $this->render(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php deleted file mode 100644 index 5a7094ea..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php +++ /dev/null @@ -1,199 +0,0 @@ - $value) { - $this->{$key} = $value; - } - - $this->total = $total; - $this->perPage = $perPage; - $this->lastPage = max((int) ceil($total / $perPage), 1); - $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path; - $this->currentPage = $this->setCurrentPage($currentPage, $this->pageName); - $this->items = $items instanceof Collection ? $items : Collection::make($items); - } - - /** - * Get the current page for the request. - * - * @param int $currentPage - * @param string $pageName - * @return int - */ - protected function setCurrentPage($currentPage, $pageName) - { - $currentPage = $currentPage ?: static::resolveCurrentPage($pageName); - - return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1; - } - - /** - * Render the paginator using the given view. - * - * @param string|null $view - * @param array $data - * @return \Illuminate\Support\HtmlString - */ - public function links($view = null, $data = []) - { - return $this->render($view, $data); - } - - /** - * Render the paginator using the given view. - * - * @param string|null $view - * @param array $data - * @return \Illuminate\Support\HtmlString - */ - public function render($view = null, $data = []) - { - return new HtmlString(static::viewFactory()->make($view ?: static::$defaultView, array_merge($data, [ - 'paginator' => $this, - 'elements' => $this->elements(), - ]))->render()); - } - - /** - * Get the array of elements to pass to the view. - * - * @return array - */ - protected function elements() - { - $window = UrlWindow::make($this); - - return array_filter([ - $window['first'], - is_array($window['slider']) ? '...' : null, - $window['slider'], - is_array($window['last']) ? '...' : null, - $window['last'], - ]); - } - - /** - * Get the total number of items being paginated. - * - * @return int - */ - public function total() - { - return $this->total; - } - - /** - * Determine if there are more items in the data source. - * - * @return bool - */ - public function hasMorePages() - { - return $this->currentPage() < $this->lastPage(); - } - - /** - * Get the URL for the next page. - * - * @return string|null - */ - public function nextPageUrl() - { - if ($this->lastPage() > $this->currentPage()) { - return $this->url($this->currentPage() + 1); - } - } - - /** - * Get the last page. - * - * @return int - */ - public function lastPage() - { - return $this->lastPage; - } - - /** - * Get the instance as an array. - * - * @return array - */ - public function toArray() - { - return [ - 'current_page' => $this->currentPage(), - 'data' => $this->items->toArray(), - 'first_page_url' => $this->url(1), - 'from' => $this->firstItem(), - 'last_page' => $this->lastPage(), - 'last_page_url' => $this->url($this->lastPage()), - 'next_page_url' => $this->nextPageUrl(), - 'path' => $this->path, - 'per_page' => $this->perPage(), - 'prev_page_url' => $this->previousPageUrl(), - 'to' => $this->lastItem(), - 'total' => $this->total(), - ]; - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Convert the object to its JSON representation. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php deleted file mode 100755 index ed58ccf6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php +++ /dev/null @@ -1,50 +0,0 @@ -loadViewsFrom(__DIR__.'/resources/views', 'pagination'); - - if ($this->app->runningInConsole()) { - $this->publishes([ - __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/pagination'), - ], 'laravel-pagination'); - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - Paginator::viewFactoryResolver(function () { - return $this->app['view']; - }); - - Paginator::currentPathResolver(function () { - return $this->app['request']->url(); - }); - - Paginator::currentPageResolver(function ($pageName = 'page') { - $page = $this->app['request']->input($pageName); - - if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) { - return (int) $page; - } - - return 1; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php deleted file mode 100644 index a159d041..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php +++ /dev/null @@ -1,177 +0,0 @@ - $value) { - $this->{$key} = $value; - } - - $this->perPage = $perPage; - $this->currentPage = $this->setCurrentPage($currentPage); - $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path; - - $this->setItems($items); - } - - /** - * Get the current page for the request. - * - * @param int $currentPage - * @return int - */ - protected function setCurrentPage($currentPage) - { - $currentPage = $currentPage ?: static::resolveCurrentPage(); - - return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1; - } - - /** - * Set the items for the paginator. - * - * @param mixed $items - * @return void - */ - protected function setItems($items) - { - $this->items = $items instanceof Collection ? $items : Collection::make($items); - - $this->hasMore = $this->items->count() > $this->perPage; - - $this->items = $this->items->slice(0, $this->perPage); - } - - /** - * Get the URL for the next page. - * - * @return string|null - */ - public function nextPageUrl() - { - if ($this->hasMorePages()) { - return $this->url($this->currentPage() + 1); - } - } - - /** - * Render the paginator using the given view. - * - * @param string|null $view - * @param array $data - * @return string - */ - public function links($view = null, $data = []) - { - return $this->render($view, $data); - } - - /** - * Render the paginator using the given view. - * - * @param string|null $view - * @param array $data - * @return string - */ - public function render($view = null, $data = []) - { - return new HtmlString( - static::viewFactory()->make($view ?: static::$defaultSimpleView, array_merge($data, [ - 'paginator' => $this, - ]))->render() - ); - } - - /** - * Manually indicate that the paginator does have more pages. - * - * @param bool $hasMore - * @return $this - */ - public function hasMorePagesWhen($hasMore = true) - { - $this->hasMore = $hasMore; - - return $this; - } - - /** - * Determine if there are more items in the data source. - * - * @return bool - */ - public function hasMorePages() - { - return $this->hasMore; - } - - /** - * Get the instance as an array. - * - * @return array - */ - public function toArray() - { - return [ - 'current_page' => $this->currentPage(), - 'data' => $this->items->toArray(), - 'first_page_url' => $this->url(1), - 'from' => $this->firstItem(), - 'next_page_url' => $this->nextPageUrl(), - 'path' => $this->path, - 'per_page' => $this->perPage(), - 'prev_page_url' => $this->previousPageUrl(), - 'to' => $this->lastItem(), - ]; - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Convert the object to its JSON representation. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php b/vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php deleted file mode 100644 index 6ec0b0c9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php +++ /dev/null @@ -1,218 +0,0 @@ -paginator = $paginator; - } - - /** - * Create a new URL window instance. - * - * @param \Illuminate\Contracts\Pagination\LengthAwarePaginator $paginator - * @param int $onEachSide - * @return array - */ - public static function make(PaginatorContract $paginator, $onEachSide = 3) - { - return (new static($paginator))->get($onEachSide); - } - - /** - * Get the window of URLs to be shown. - * - * @param int $onEachSide - * @return array - */ - public function get($onEachSide = 3) - { - if ($this->paginator->lastPage() < ($onEachSide * 2) + 6) { - return $this->getSmallSlider(); - } - - return $this->getUrlSlider($onEachSide); - } - - /** - * Get the slider of URLs there are not enough pages to slide. - * - * @return array - */ - protected function getSmallSlider() - { - return [ - 'first' => $this->paginator->getUrlRange(1, $this->lastPage()), - 'slider' => null, - 'last' => null, - ]; - } - - /** - * Create a URL slider links. - * - * @param int $onEachSide - * @return array - */ - protected function getUrlSlider($onEachSide) - { - $window = $onEachSide * 2; - - if (! $this->hasPages()) { - return ['first' => null, 'slider' => null, 'last' => null]; - } - - // If the current page is very close to the beginning of the page range, we will - // just render the beginning of the page range, followed by the last 2 of the - // links in this list, since we will not have room to create a full slider. - if ($this->currentPage() <= $window) { - return $this->getSliderTooCloseToBeginning($window); - } - - // If the current page is close to the ending of the page range we will just get - // this first couple pages, followed by a larger window of these ending pages - // since we're too close to the end of the list to create a full on slider. - elseif ($this->currentPage() > ($this->lastPage() - $window)) { - return $this->getSliderTooCloseToEnding($window); - } - - // If we have enough room on both sides of the current page to build a slider we - // will surround it with both the beginning and ending caps, with this window - // of pages in the middle providing a Google style sliding paginator setup. - return $this->getFullSlider($onEachSide); - } - - /** - * Get the slider of URLs when too close to beginning of window. - * - * @param int $window - * @return array - */ - protected function getSliderTooCloseToBeginning($window) - { - return [ - 'first' => $this->paginator->getUrlRange(1, $window + 2), - 'slider' => null, - 'last' => $this->getFinish(), - ]; - } - - /** - * Get the slider of URLs when too close to ending of window. - * - * @param int $window - * @return array - */ - protected function getSliderTooCloseToEnding($window) - { - $last = $this->paginator->getUrlRange( - $this->lastPage() - ($window + 2), - $this->lastPage() - ); - - return [ - 'first' => $this->getStart(), - 'slider' => null, - 'last' => $last, - ]; - } - - /** - * Get the slider of URLs when a full slider can be made. - * - * @param int $onEachSide - * @return array - */ - protected function getFullSlider($onEachSide) - { - return [ - 'first' => $this->getStart(), - 'slider' => $this->getAdjacentUrlRange($onEachSide), - 'last' => $this->getFinish(), - ]; - } - - /** - * Get the page range for the current page window. - * - * @param int $onEachSide - * @return array - */ - public function getAdjacentUrlRange($onEachSide) - { - return $this->paginator->getUrlRange( - $this->currentPage() - $onEachSide, - $this->currentPage() + $onEachSide - ); - } - - /** - * Get the starting URLs of a pagination slider. - * - * @return array - */ - public function getStart() - { - return $this->paginator->getUrlRange(1, 2); - } - - /** - * Get the ending URLs of a pagination slider. - * - * @return array - */ - public function getFinish() - { - return $this->paginator->getUrlRange( - $this->lastPage() - 1, - $this->lastPage() - ); - } - - /** - * Determine if the underlying paginator being presented has pages to show. - * - * @return bool - */ - public function hasPages() - { - return $this->paginator->lastPage() > 1; - } - - /** - * Get the current page from the paginator. - * - * @return int - */ - protected function currentPage() - { - return $this->paginator->currentPage(); - } - - /** - * Get the last page from the paginator. - * - * @return int - */ - protected function lastPage() - { - return $this->paginator->lastPage(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/composer.json b/vendor/laravel/framework/src/Illuminate/Pagination/composer.json deleted file mode 100755 index 48bcc062..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "illuminate/pagination", - "description": "The Illuminate Pagination package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Pagination\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php deleted file mode 100644 index 3f984557..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php +++ /dev/null @@ -1,36 +0,0 @@ -@if ($paginator->hasPages()) -
    - {{-- Previous Page Link --}} - @if ($paginator->onFirstPage()) -
  • «
  • - @else -
  • - @endif - - {{-- Pagination Elements --}} - @foreach ($elements as $element) - {{-- "Three Dots" Separator --}} - @if (is_string($element)) -
  • {{ $element }}
  • - @endif - - {{-- Array Of Links --}} - @if (is_array($element)) - @foreach ($element as $page => $url) - @if ($page == $paginator->currentPage()) -
  • {{ $page }}
  • - @else -
  • {{ $page }}
  • - @endif - @endforeach - @endif - @endforeach - - {{-- Next Page Link --}} - @if ($paginator->hasMorePages()) -
  • - @else -
  • »
  • - @endif -
-@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php deleted file mode 100644 index 4e795ff4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php +++ /dev/null @@ -1,36 +0,0 @@ -@if ($paginator->hasPages()) -
    - {{-- Previous Page Link --}} - @if ($paginator->onFirstPage()) -
  • «
  • - @else -
  • - @endif - - {{-- Pagination Elements --}} - @foreach ($elements as $element) - {{-- "Three Dots" Separator --}} - @if (is_string($element)) -
  • {{ $element }}
  • - @endif - - {{-- Array Of Links --}} - @if (is_array($element)) - @foreach ($element as $page => $url) - @if ($page == $paginator->currentPage()) -
  • {{ $page }}
  • - @else -
  • {{ $page }}
  • - @endif - @endforeach - @endif - @endforeach - - {{-- Next Page Link --}} - @if ($paginator->hasMorePages()) -
  • - @else -
  • »
  • - @endif -
-@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php deleted file mode 100644 index c6e0d210..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php +++ /dev/null @@ -1,36 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php deleted file mode 100644 index a9a18d32..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php +++ /dev/null @@ -1,17 +0,0 @@ -@if ($paginator->hasPages()) -
    - {{-- Previous Page Link --}} - @if ($paginator->onFirstPage()) -
  • @lang('pagination.previous')
  • - @else -
  • - @endif - - {{-- Next Page Link --}} - @if ($paginator->hasMorePages()) -
  • - @else -
  • @lang('pagination.next')
  • - @endif -
-@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php deleted file mode 100644 index 18016092..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php +++ /dev/null @@ -1,17 +0,0 @@ -@if ($paginator->hasPages()) -
    - {{-- Previous Page Link --}} - @if ($paginator->onFirstPage()) -
  • @lang('pagination.previous')
  • - @else -
  • - @endif - - {{-- Next Page Link --}} - @if ($paginator->hasMorePages()) -
  • - @else -
  • @lang('pagination.next')
  • - @endif -
-@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php b/vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php deleted file mode 100644 index 87331a57..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php +++ /dev/null @@ -1,74 +0,0 @@ -container = $container; - } - - /** - * Define the default named pipeline. - * - * @param \Closure $callback - * @return void - */ - public function defaults(Closure $callback) - { - return $this->pipeline('default', $callback); - } - - /** - * Define a new named pipeline. - * - * @param string $name - * @param \Closure $callback - * @return void - */ - public function pipeline($name, Closure $callback) - { - $this->pipelines[$name] = $callback; - } - - /** - * Send an object through one of the available pipelines. - * - * @param mixed $object - * @param string|null $pipeline - * @return mixed - */ - public function pipe($object, $pipeline = null) - { - $pipeline = $pipeline ?: 'default'; - - return call_user_func( - $this->pipelines[$pipeline], new Pipeline($this->container), $object - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php b/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php deleted file mode 100644 index e227a583..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php +++ /dev/null @@ -1,186 +0,0 @@ -container = $container; - } - - /** - * Set the object being sent through the pipeline. - * - * @param mixed $passable - * @return $this - */ - public function send($passable) - { - $this->passable = $passable; - - return $this; - } - - /** - * Set the array of pipes. - * - * @param array|mixed $pipes - * @return $this - */ - public function through($pipes) - { - $this->pipes = is_array($pipes) ? $pipes : func_get_args(); - - return $this; - } - - /** - * Set the method to call on the pipes. - * - * @param string $method - * @return $this - */ - public function via($method) - { - $this->method = $method; - - return $this; - } - - /** - * Run the pipeline with a final destination callback. - * - * @param \Closure $destination - * @return mixed - */ - public function then(Closure $destination) - { - $pipeline = array_reduce( - array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) - ); - - return $pipeline($this->passable); - } - - /** - * Get the final piece of the Closure onion. - * - * @param \Closure $destination - * @return \Closure - */ - protected function prepareDestination(Closure $destination) - { - return function ($passable) use ($destination) { - return $destination($passable); - }; - } - - /** - * Get a Closure that represents a slice of the application onion. - * - * @return \Closure - */ - protected function carry() - { - return function ($stack, $pipe) { - return function ($passable) use ($stack, $pipe) { - if (is_callable($pipe)) { - // If the pipe is an instance of a Closure, we will just call it directly but - // otherwise we'll resolve the pipes out of the container and call it with - // the appropriate method and arguments, returning the results back out. - return $pipe($passable, $stack); - } elseif (! is_object($pipe)) { - list($name, $parameters) = $this->parsePipeString($pipe); - - // If the pipe is a string we will parse the string and resolve the class out - // of the dependency injection container. We can then build a callable and - // execute the pipe function giving in the parameters that are required. - $pipe = $this->getContainer()->make($name); - - $parameters = array_merge([$passable, $stack], $parameters); - } else { - // If the pipe is already an object we'll just make a callable and pass it to - // the pipe as-is. There is no need to do any extra parsing and formatting - // since the object we're given was already a fully instantiated object. - $parameters = [$passable, $stack]; - } - - return method_exists($pipe, $this->method) - ? $pipe->{$this->method}(...$parameters) - : $pipe(...$parameters); - }; - }; - } - - /** - * Parse full pipe string to get name and parameters. - * - * @param string $pipe - * @return array - */ - protected function parsePipeString($pipe) - { - list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); - - if (is_string($parameters)) { - $parameters = explode(',', $parameters); - } - - return [$name, $parameters]; - } - - /** - * Get the container instance. - * - * @return \Illuminate\Contracts\Container\Container - * @throws \RuntimeException - */ - protected function getContainer() - { - if (! $this->container) { - throw new RuntimeException('A container instance has not been passed to the Pipeline.'); - } - - return $this->container; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php deleted file mode 100644 index d8291873..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php +++ /dev/null @@ -1,40 +0,0 @@ -app->singleton( - PipelineHubContract::class, Hub::class - ); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - PipelineHubContract::class, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json b/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json deleted file mode 100644 index 3b85f815..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "illuminate/pipeline", - "description": "The Illuminate Pipeline package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Pipeline\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php deleted file mode 100755 index 8f585bb3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php +++ /dev/null @@ -1,163 +0,0 @@ -default = $default; - $this->timeToRun = $timeToRun; - $this->pheanstalk = $pheanstalk; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - $queue = $this->getQueue($queue); - - return (int) $this->pheanstalk->statsTube($queue)->current_jobs_ready; - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - return $this->pushRaw($this->createPayload($job, $data), $queue); - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - return $this->pheanstalk->useTube($this->getQueue($queue))->put( - $payload, Pheanstalk::DEFAULT_PRIORITY, Pheanstalk::DEFAULT_DELAY, $this->timeToRun - ); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - $pheanstalk = $this->pheanstalk->useTube($this->getQueue($queue)); - - return $pheanstalk->put( - $this->createPayload($job, $data), - Pheanstalk::DEFAULT_PRIORITY, - $this->secondsUntil($delay), - $this->timeToRun - ); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - $queue = $this->getQueue($queue); - - $job = $this->pheanstalk->watchOnly($queue)->reserve(0); - - if ($job instanceof PheanstalkJob) { - return new BeanstalkdJob( - $this->container, $this->pheanstalk, $job, $this->connectionName, $queue - ); - } - } - - /** - * Delete a message from the Beanstalk queue. - * - * @param string $queue - * @param string $id - * @return void - */ - public function deleteMessage($queue, $id) - { - $queue = $this->getQueue($queue); - - $this->pheanstalk->useTube($queue)->delete(new PheanstalkJob($id, '')); - } - - /** - * Get the queue or return the default. - * - * @param string|null $queue - * @return string - */ - public function getQueue($queue) - { - return $queue ?: $this->default; - } - - /** - * Get the underlying Pheanstalk instance. - * - * @return \Pheanstalk\Pheanstalk - */ - public function getPheanstalk() - { - return $this->pheanstalk; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php b/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php deleted file mode 100644 index 15b83862..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php +++ /dev/null @@ -1,152 +0,0 @@ -dispatcher = $dispatcher; - } - - /** - * Handle the queued job. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param array $data - * @return void - */ - public function call(Job $job, array $data) - { - try { - $command = $this->setJobInstanceIfNecessary( - $job, unserialize($data['command']) - ); - } catch (ModelNotFoundException $e) { - return $this->handleModelNotFound($job, $e); - } - - $this->dispatcher->dispatchNow( - $command, $this->resolveHandler($job, $command) - ); - - if (! $job->hasFailed() && ! $job->isReleased()) { - $this->ensureNextJobInChainIsDispatched($command); - } - - if (! $job->isDeletedOrReleased()) { - $job->delete(); - } - } - - /** - * Resolve the handler for the given command. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param mixed $command - * @return mixed - */ - protected function resolveHandler($job, $command) - { - $handler = $this->dispatcher->getCommandHandler($command) ?: null; - - if ($handler) { - $this->setJobInstanceIfNecessary($job, $handler); - } - - return $handler; - } - - /** - * Set the job instance of the given class if necessary. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param mixed $instance - * @return mixed - */ - protected function setJobInstanceIfNecessary(Job $job, $instance) - { - if (in_array(InteractsWithQueue::class, class_uses_recursive(get_class($instance)))) { - $instance->setJob($job); - } - - return $instance; - } - - /** - * Ensure the next job in the chain is dispatched if applicable. - * - * @param mixed $command - * @return void - */ - protected function ensureNextJobInChainIsDispatched($command) - { - if (method_exists($command, 'dispatchNextJobInChain')) { - $command->dispatchNextJobInChain(); - } - } - - /** - * Handle a model not found exception. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function handleModelNotFound(Job $job, $e) - { - $class = $job->resolveName(); - - try { - $shouldDelete = (new ReflectionClass($class)) - ->getDefaultProperties()['deleteWhenMissingModels'] ?? false; - } catch (Exception $e) { - $shouldDelete = false; - } - - if ($shouldDelete) { - return $job->delete(); - } - - return FailingJob::handle( - $job->getConnectionName(), $job, $e - ); - } - - /** - * Call the failed method on the job instance. - * - * The exception that caused the failure will be passed. - * - * @param array $data - * @param \Exception $e - * @return void - */ - public function failed(array $data, $e) - { - $command = unserialize($data['command']); - - if (method_exists($command, 'failed')) { - $command->failed($e); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php b/vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php deleted file mode 100644 index 310621a2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php +++ /dev/null @@ -1,187 +0,0 @@ -setupContainer($container ?: new Container); - - // Once we have the container setup, we will setup the default configuration - // options in the container "config" bindings. This just makes this queue - // manager behave correctly since all the correct binding are in place. - $this->setupDefaultConfiguration(); - - $this->setupManager(); - - $this->registerConnectors(); - } - - /** - * Setup the default queue configuration options. - * - * @return void - */ - protected function setupDefaultConfiguration() - { - $this->container['config']['queue.default'] = 'default'; - } - - /** - * Build the queue manager instance. - * - * @return void - */ - protected function setupManager() - { - $this->manager = new QueueManager($this->container); - } - - /** - * Register the default connectors that the component ships with. - * - * @return void - */ - protected function registerConnectors() - { - $provider = new QueueServiceProvider($this->container); - - $provider->registerConnectors($this->manager); - } - - /** - * Get a connection instance from the global manager. - * - * @param string $connection - * @return \Illuminate\Contracts\Queue\Queue - */ - public static function connection($connection = null) - { - return static::$instance->getConnection($connection); - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @param string $connection - * @return mixed - */ - public static function push($job, $data = '', $queue = null, $connection = null) - { - return static::$instance->connection($connection)->push($job, $data, $queue); - } - - /** - * Push a new an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string $queue - * @param string $connection - * @return mixed - */ - public static function bulk($jobs, $data = '', $queue = null, $connection = null) - { - return static::$instance->connection($connection)->bulk($jobs, $data, $queue); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @param string $connection - * @return mixed - */ - public static function later($delay, $job, $data = '', $queue = null, $connection = null) - { - return static::$instance->connection($connection)->later($delay, $job, $data, $queue); - } - - /** - * Get a registered connection instance. - * - * @param string $name - * @return \Illuminate\Contracts\Queue\Queue - */ - public function getConnection($name = null) - { - return $this->manager->connection($name); - } - - /** - * Register a connection with the manager. - * - * @param array $config - * @param string $name - * @return void - */ - public function addConnection(array $config, $name = 'default') - { - $this->container['config']["queue.connections.{$name}"] = $config; - } - - /** - * Get the queue manager instance. - * - * @return \Illuminate\Queue\QueueManager - */ - public function getQueueManager() - { - return $this->manager; - } - - /** - * Pass dynamic instance methods to the manager. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->manager->$method(...$parameters); - } - - /** - * Dynamically pass methods to the default connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public static function __callStatic($method, $parameters) - { - return static::connection()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php deleted file mode 100755 index ae0e6265..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php +++ /dev/null @@ -1,40 +0,0 @@ -pheanstalk($config), $config['queue'], $retryAfter); - } - - /** - * Create a Pheanstalk instance. - * - * @param array $config - * @return \Pheanstalk\Pheanstalk - */ - protected function pheanstalk(array $config) - { - return new Pheanstalk( - $config['host'], - $config['port'] ?? PheanstalkInterface::DEFAULT_PORT, - $config['timeout'] ?? Connection::DEFAULT_CONNECT_TIMEOUT, - $config['persistent'] ?? false - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php deleted file mode 100755 index 617bf09d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -connections = $connections; - } - - /** - * Establish a queue connection. - * - * @param array $config - * @return \Illuminate\Contracts\Queue\Queue - */ - public function connect(array $config) - { - return new DatabaseQueue( - $this->connections->connection($config['connection'] ?? null), - $config['table'], - $config['queue'], - $config['retry_after'] ?? 60 - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php deleted file mode 100644 index 39de4800..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php +++ /dev/null @@ -1,19 +0,0 @@ -redis = $redis; - $this->connection = $connection; - } - - /** - * Establish a queue connection. - * - * @param array $config - * @return \Illuminate\Contracts\Queue\Queue - */ - public function connect(array $config) - { - return new RedisQueue( - $this->redis, $config['queue'], - $config['connection'] ?? $this->connection, - $config['retry_after'] ?? 60 - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php deleted file mode 100755 index 9b1ceaad..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php +++ /dev/null @@ -1,46 +0,0 @@ -getDefaultConfiguration($config); - - if ($config['key'] && $config['secret']) { - $config['credentials'] = Arr::only($config, ['key', 'secret']); - } - - return new SqsQueue( - new SqsClient($config), $config['queue'], $config['prefix'] ?? '' - ); - } - - /** - * Get the default configuration for SQS. - * - * @param array $config - * @return array - */ - protected function getDefaultConfiguration(array $config) - { - return array_merge([ - 'version' => 'latest', - 'http' => [ - 'timeout' => 60, - 'connect_timeout' => 60, - ], - ], $config); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php deleted file mode 100755 index 4269b803..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php +++ /dev/null @@ -1,19 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $table = $this->laravel['config']['queue.failed.table']; - - $this->replaceMigration( - $this->createBaseMigration($table), $table, Str::studly($table) - ); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the table. - * - * @param string $table - * @return string - */ - protected function createBaseMigration($table = 'failed_jobs') - { - return $this->laravel['migration.creator']->create( - 'create_'.$table.'_table', $this->laravel->databasePath().'/migrations' - ); - } - - /** - * Replace the generated migration with the failed job table stub. - * - * @param string $path - * @param string $table - * @param string $tableClassName - * @return void - */ - protected function replaceMigration($path, $table, $tableClassName) - { - $stub = str_replace( - ['{{table}}', '{{tableClassName}}'], - [$table, $tableClassName], - $this->files->get(__DIR__.'/stubs/failed_jobs.stub') - ); - - $this->files->put($path, $stub); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php deleted file mode 100644 index 550b8600..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php +++ /dev/null @@ -1,34 +0,0 @@ -laravel['queue.failer']->flush(); - - $this->info('All failed jobs deleted successfully!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php deleted file mode 100644 index dc04d948..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php +++ /dev/null @@ -1,36 +0,0 @@ -laravel['queue.failer']->forget($this->argument('id'))) { - $this->info('Failed job deleted successfully!'); - } else { - $this->error('No failed job matches the given ID.'); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php deleted file mode 100644 index be46d960..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php +++ /dev/null @@ -1,118 +0,0 @@ -getFailedJobs()) == 0) { - return $this->info('No failed jobs!'); - } - - $this->displayFailedJobs($jobs); - } - - /** - * Compile the failed jobs into a displayable format. - * - * @return array - */ - protected function getFailedJobs() - { - $failed = $this->laravel['queue.failer']->all(); - - return collect($failed)->map(function ($failed) { - return $this->parseFailedJob((array) $failed); - })->filter()->all(); - } - - /** - * Parse the failed job row. - * - * @param array $failed - * @return array - */ - protected function parseFailedJob(array $failed) - { - $row = array_values(Arr::except($failed, ['payload', 'exception'])); - - array_splice($row, 3, 0, $this->extractJobName($failed['payload'])); - - return $row; - } - - /** - * Extract the failed job name from payload. - * - * @param string $payload - * @return string|null - */ - private function extractJobName($payload) - { - $payload = json_decode($payload, true); - - if ($payload && (! isset($payload['data']['command']))) { - return $payload['job'] ?? null; - } elseif ($payload && isset($payload['data']['command'])) { - return $this->matchJobName($payload); - } - } - - /** - * Match the job name from the payload. - * - * @param array $payload - * @return string - */ - protected function matchJobName($payload) - { - preg_match('/"([^"]+)"/', $payload['data']['command'], $matches); - - if (isset($matches[1])) { - return $matches[1]; - } - - return $payload['job'] ?? null; - } - - /** - * Display the failed jobs in the console. - * - * @param array $jobs - * @return void - */ - protected function displayFailedJobs(array $jobs) - { - $this->table($this->headers, $jobs); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php deleted file mode 100755 index fca4cd08..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php +++ /dev/null @@ -1,114 +0,0 @@ -setOutputHandler($this->listener = $listener); - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - // We need to get the right queue for the connection which is set in the queue - // configuration file for the application. We will pull it based on the set - // connection being run for the queue operation currently being executed. - $queue = $this->getQueue( - $connection = $this->input->getArgument('connection') - ); - - $this->listener->listen( - $connection, $queue, $this->gatherOptions() - ); - } - - /** - * Get the name of the queue connection to listen on. - * - * @param string $connection - * @return string - */ - protected function getQueue($connection) - { - $connection = $connection ?: $this->laravel['config']['queue.default']; - - return $this->input->getOption('queue') ?: $this->laravel['config']->get( - "queue.connections.{$connection}.queue", 'default' - ); - } - - /** - * Get the listener options for the command. - * - * @return \Illuminate\Queue\ListenerOptions - */ - protected function gatherOptions() - { - return new ListenerOptions( - $this->option('env'), $this->option('delay'), - $this->option('memory'), $this->option('timeout'), - $this->option('sleep'), $this->option('tries'), - $this->option('force') - ); - } - - /** - * Set the options on the queue listener. - * - * @param \Illuminate\Queue\Listener $listener - * @return void - */ - protected function setOutputHandler(Listener $listener) - { - $listener->setOutputHandler(function ($type, $line) { - $this->output->write($line); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php deleted file mode 100644 index 1b340415..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php +++ /dev/null @@ -1,37 +0,0 @@ -laravel['cache']->forever('illuminate:queue:restart', $this->currentTime()); - - $this->info('Broadcasting queue restart signal.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php deleted file mode 100644 index 5ea49d53..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php +++ /dev/null @@ -1,93 +0,0 @@ -getJobIds() as $id) { - $job = $this->laravel['queue.failer']->find($id); - - if (is_null($job)) { - $this->error("Unable to find failed job with ID [{$id}]."); - } else { - $this->retryJob($job); - - $this->info("The failed job [{$id}] has been pushed back onto the queue!"); - - $this->laravel['queue.failer']->forget($id); - } - } - } - - /** - * Get the job IDs to be retried. - * - * @return array - */ - protected function getJobIds() - { - $ids = (array) $this->argument('id'); - - if (count($ids) === 1 && $ids[0] === 'all') { - $ids = Arr::pluck($this->laravel['queue.failer']->all(), 'id'); - } - - return $ids; - } - - /** - * Retry the queue job. - * - * @param \stdClass $job - * @return void - */ - protected function retryJob($job) - { - $this->laravel['queue']->connection($job->connection)->pushRaw( - $this->resetAttempts($job->payload), $job->queue - ); - } - - /** - * Reset the payload attempts. - * - * Applicable to Redis jobs which store attempts in their payload. - * - * @param string $payload - * @return string - */ - protected function resetAttempts($payload) - { - $payload = json_decode($payload, true); - - if (isset($payload['attempts'])) { - $payload['attempts'] = 0; - } - - return json_encode($payload); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php deleted file mode 100644 index 50f1f011..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php +++ /dev/null @@ -1,102 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $table = $this->laravel['config']['queue.connections.database.table']; - - $this->replaceMigration( - $this->createBaseMigration($table), $table, Str::studly($table) - ); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the table. - * - * @param string $table - * @return string - */ - protected function createBaseMigration($table = 'jobs') - { - return $this->laravel['migration.creator']->create( - 'create_'.$table.'_table', $this->laravel->databasePath().'/migrations' - ); - } - - /** - * Replace the generated migration with the job table stub. - * - * @param string $path - * @param string $table - * @param string $tableClassName - * @return void - */ - protected function replaceMigration($path, $table, $tableClassName) - { - $stub = str_replace( - ['{{table}}', '{{tableClassName}}'], - [$table, $tableClassName], - $this->files->get(__DIR__.'/stubs/jobs.stub') - ); - - $this->files->put($path, $stub); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php deleted file mode 100644 index 750d1339..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php +++ /dev/null @@ -1,213 +0,0 @@ -worker = $worker; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if ($this->downForMaintenance() && $this->option('once')) { - return $this->worker->sleep($this->option('sleep')); - } - - // We'll listen to the processed and failed events so we can write information - // to the console as jobs are processed, which will let the developer watch - // which jobs are coming through a queue and be informed on its progress. - $this->listenForEvents(); - - $connection = $this->argument('connection') - ?: $this->laravel['config']['queue.default']; - - // We need to get the right queue for the connection which is set in the queue - // configuration file for the application. We will pull it based on the set - // connection being run for the queue operation currently being executed. - $queue = $this->getQueue($connection); - - $this->runWorker( - $connection, $queue - ); - } - - /** - * Run the worker instance. - * - * @param string $connection - * @param string $queue - * @return array - */ - protected function runWorker($connection, $queue) - { - $this->worker->setCache($this->laravel['cache']->driver()); - - return $this->worker->{$this->option('once') ? 'runNextJob' : 'daemon'}( - $connection, $queue, $this->gatherWorkerOptions() - ); - } - - /** - * Gather all of the queue worker options as a single object. - * - * @return \Illuminate\Queue\WorkerOptions - */ - protected function gatherWorkerOptions() - { - return new WorkerOptions( - $this->option('delay'), $this->option('memory'), - $this->option('timeout'), $this->option('sleep'), - $this->option('tries'), $this->option('force') - ); - } - - /** - * Listen for the queue events in order to update the console output. - * - * @return void - */ - protected function listenForEvents() - { - $this->laravel['events']->listen(JobProcessing::class, function ($event) { - $this->writeOutput($event->job, 'starting'); - }); - - $this->laravel['events']->listen(JobProcessed::class, function ($event) { - $this->writeOutput($event->job, 'success'); - }); - - $this->laravel['events']->listen(JobFailed::class, function ($event) { - $this->writeOutput($event->job, 'failed'); - - $this->logFailedJob($event); - }); - } - - /** - * Write the status output for the queue worker. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param string $status - * @return void - */ - protected function writeOutput(Job $job, $status) - { - switch ($status) { - case 'starting': - return $this->writeStatus($job, 'Processing', 'comment'); - case 'success': - return $this->writeStatus($job, 'Processed', 'info'); - case 'failed': - return $this->writeStatus($job, 'Failed', 'error'); - } - } - - /** - * Format the status output for the queue worker. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param string $status - * @param string $type - * @return void - */ - protected function writeStatus(Job $job, $status, $type) - { - $this->output->writeln(sprintf( - "<{$type}>[%s] %s %s", - Carbon::now()->format('Y-m-d H:i:s'), - str_pad("{$status}:", 11), $job->resolveName() - )); - } - - /** - * Store a failed job event. - * - * @param \Illuminate\Queue\Events\JobFailed $event - * @return void - */ - protected function logFailedJob(JobFailed $event) - { - $this->laravel['queue.failer']->log( - $event->connectionName, $event->job->getQueue(), - $event->job->getRawBody(), $event->exception - ); - } - - /** - * Get the queue name for the worker. - * - * @param string $connection - * @return string - */ - protected function getQueue($connection) - { - return $this->option('queue') ?: $this->laravel['config']->get( - "queue.connections.{$connection}.queue", 'default' - ); - } - - /** - * Determine if the worker should run in maintenance mode. - * - * @return bool - */ - protected function downForMaintenance() - { - return $this->option('force') ? false : $this->laravel->isDownForMaintenance(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub b/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub deleted file mode 100644 index 037b5ee2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub +++ /dev/null @@ -1,35 +0,0 @@ -bigIncrements('id'); - $table->text('connection'); - $table->text('queue'); - $table->longText('payload'); - $table->longText('exception'); - $table->timestamp('failed_at')->useCurrent(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('{{table}}'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub b/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub deleted file mode 100644 index 8440bebf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub +++ /dev/null @@ -1,36 +0,0 @@ -bigIncrements('id'); - $table->string('queue')->index(); - $table->longText('payload'); - $table->unsignedTinyInteger('attempts'); - $table->unsignedInteger('reserved_at')->nullable(); - $table->unsignedInteger('available_at'); - $table->unsignedInteger('created_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('{{table}}'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php deleted file mode 100644 index 181fa2d6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php +++ /dev/null @@ -1,330 +0,0 @@ -table = $table; - $this->default = $default; - $this->database = $database; - $this->retryAfter = $retryAfter; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - return $this->database->table($this->table) - ->where('queue', $this->getQueue($queue)) - ->count(); - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - return $this->pushToDatabase($queue, $this->createPayload($job, $data)); - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - return $this->pushToDatabase($queue, $payload); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return void - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->pushToDatabase($queue, $this->createPayload($job, $data), $delay); - } - - /** - * Push an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function bulk($jobs, $data = '', $queue = null) - { - $queue = $this->getQueue($queue); - - $availableAt = $this->availableAt(); - - return $this->database->table($this->table)->insert(collect((array) $jobs)->map( - function ($job) use ($queue, $data, $availableAt) { - return $this->buildDatabaseRecord($queue, $this->createPayload($job, $data), $availableAt); - } - )->all()); - } - - /** - * Release a reserved job back onto the queue. - * - * @param string $queue - * @param \Illuminate\Queue\Jobs\DatabaseJobRecord $job - * @param int $delay - * @return mixed - */ - public function release($queue, $job, $delay) - { - return $this->pushToDatabase($queue, $job->payload, $delay, $job->attempts); - } - - /** - * Push a raw payload to the database with a given delay. - * - * @param string|null $queue - * @param string $payload - * @param \DateTimeInterface|\DateInterval|int $delay - * @param int $attempts - * @return mixed - */ - protected function pushToDatabase($queue, $payload, $delay = 0, $attempts = 0) - { - return $this->database->table($this->table)->insertGetId($this->buildDatabaseRecord( - $this->getQueue($queue), $payload, $this->availableAt($delay), $attempts - )); - } - - /** - * Create an array to insert for the given job. - * - * @param string|null $queue - * @param string $payload - * @param int $availableAt - * @param int $attempts - * @return array - */ - protected function buildDatabaseRecord($queue, $payload, $availableAt, $attempts = 0) - { - return [ - 'queue' => $queue, - 'attempts' => $attempts, - 'reserved_at' => null, - 'available_at' => $availableAt, - 'created_at' => $this->currentTime(), - 'payload' => $payload, - ]; - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - * @throws \Exception|\Throwable - */ - public function pop($queue = null) - { - $queue = $this->getQueue($queue); - - try { - $this->database->beginTransaction(); - - if ($job = $this->getNextAvailableJob($queue)) { - return $this->marshalJob($queue, $job); - } - - $this->database->commit(); - } catch (Throwable $e) { - $this->database->rollBack(); - - throw $e; - } - } - - /** - * Get the next available job for the queue. - * - * @param string|null $queue - * @return \Illuminate\Queue\Jobs\DatabaseJobRecord|null - */ - protected function getNextAvailableJob($queue) - { - $job = $this->database->table($this->table) - ->lockForUpdate() - ->where('queue', $this->getQueue($queue)) - ->where(function ($query) { - $this->isAvailable($query); - $this->isReservedButExpired($query); - }) - ->orderBy('id', 'asc') - ->first(); - - return $job ? new DatabaseJobRecord((object) $job) : null; - } - - /** - * Modify the query to check for available jobs. - * - * @param \Illuminate\Database\Query\Builder $query - * @return void - */ - protected function isAvailable($query) - { - $query->where(function ($query) { - $query->whereNull('reserved_at') - ->where('available_at', '<=', $this->currentTime()); - }); - } - - /** - * Modify the query to check for jobs that are reserved but have expired. - * - * @param \Illuminate\Database\Query\Builder $query - * @return void - */ - protected function isReservedButExpired($query) - { - $expiration = Carbon::now()->subSeconds($this->retryAfter)->getTimestamp(); - - $query->orWhere(function ($query) use ($expiration) { - $query->where('reserved_at', '<=', $expiration); - }); - } - - /** - * Marshal the reserved job into a DatabaseJob instance. - * - * @param string $queue - * @param \Illuminate\Queue\Jobs\DatabaseJobRecord $job - * @return \Illuminate\Queue\Jobs\DatabaseJob - */ - protected function marshalJob($queue, $job) - { - $job = $this->markJobAsReserved($job); - - $this->database->commit(); - - return new DatabaseJob( - $this->container, $this, $job, $this->connectionName, $queue - ); - } - - /** - * Mark the given job ID as reserved. - * - * @param \Illuminate\Queue\Jobs\DatabaseJobRecord $job - * @return \Illuminate\Queue\Jobs\DatabaseJobRecord - */ - protected function markJobAsReserved($job) - { - $this->database->table($this->table)->where('id', $job->id)->update([ - 'reserved_at' => $job->touch(), - 'attempts' => $job->increment(), - ]); - - return $job; - } - - /** - * Delete a reserved job from the queue. - * - * @param string $queue - * @param string $id - * @return void - * @throws \Exception|\Throwable - */ - public function deleteReserved($queue, $id) - { - $this->database->transaction(function () use ($id) { - if ($this->database->table($this->table)->lockForUpdate()->find($id)) { - $this->database->table($this->table)->where('id', $id)->delete(); - } - }); - } - - /** - * Get the queue or return the default. - * - * @param string|null $queue - * @return string - */ - public function getQueue($queue) - { - return $queue ?: $this->default; - } - - /** - * Get the underlying database instance. - * - * @return \Illuminate\Database\Connection - */ - public function getDatabase() - { - return $this->database; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php deleted file mode 100644 index dc7940e1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php +++ /dev/null @@ -1,42 +0,0 @@ -job = $job; - $this->exception = $exception; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php deleted file mode 100644 index 49b84f7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php +++ /dev/null @@ -1,42 +0,0 @@ -job = $job; - $this->exception = $exception; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php deleted file mode 100644 index f8abefb6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php +++ /dev/null @@ -1,33 +0,0 @@ -job = $job; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php deleted file mode 100644 index 3dd97248..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php +++ /dev/null @@ -1,33 +0,0 @@ -job = $job; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php deleted file mode 100644 index f9538e4c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php +++ /dev/null @@ -1,33 +0,0 @@ -queue = $queue; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php deleted file mode 100644 index 6c51209c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php +++ /dev/null @@ -1,8 +0,0 @@ -table = $table; - $this->resolver = $resolver; - $this->database = $database; - } - - /** - * Log a failed job into storage. - * - * @param string $connection - * @param string $queue - * @param string $payload - * @param \Exception $exception - * @return int|null - */ - public function log($connection, $queue, $payload, $exception) - { - $failed_at = Carbon::now(); - - $exception = (string) $exception; - - return $this->getTable()->insertGetId(compact( - 'connection', 'queue', 'payload', 'exception', 'failed_at' - )); - } - - /** - * Get a list of all of the failed jobs. - * - * @return array - */ - public function all() - { - return $this->getTable()->orderBy('id', 'desc')->get()->all(); - } - - /** - * Get a single failed job. - * - * @param mixed $id - * @return object|null - */ - public function find($id) - { - return $this->getTable()->find($id); - } - - /** - * Delete a single failed job from storage. - * - * @param mixed $id - * @return bool - */ - public function forget($id) - { - return $this->getTable()->where('id', $id)->delete() > 0; - } - - /** - * Flush all of the failed jobs from storage. - * - * @return void - */ - public function flush() - { - $this->getTable()->delete(); - } - - /** - * Get a new query builder instance for the table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function getTable() - { - return $this->resolver->connection($this->database)->table($this->table); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php b/vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php deleted file mode 100644 index b818636e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php +++ /dev/null @@ -1,47 +0,0 @@ -markAsFailed(); - - if ($job->isDeleted()) { - return; - } - - try { - // If the job has failed, we will delete it, call the "failed" method and then call - // an event indicating the job has failed so it can be logged if needed. This is - // to allow every developer to better keep monitor of their failed queue jobs. - $job->delete(); - - $job->failed($e); - } finally { - static::events()->dispatch(new JobFailed( - $connectionName, $job, $e ?: new ManuallyFailedException - )); - } - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - protected static function events() - { - return Container::getInstance()->make(Dispatcher::class); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php deleted file mode 100644 index 20bcecb7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php +++ /dev/null @@ -1,76 +0,0 @@ -job ? $this->job->attempts() : 1; - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - if ($this->job) { - return $this->job->delete(); - } - } - - /** - * Fail the job from the queue. - * - * @param \Throwable $exception - * @return void - */ - public function fail($exception = null) - { - if ($this->job) { - FailingJob::handle($this->job->getConnectionName(), $this->job, $exception); - } - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - if ($this->job) { - return $this->job->release($delay); - } - } - - /** - * Set the base queue job instance. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @return $this - */ - public function setJob(JobContract $job) - { - $this->job = $job; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php b/vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php deleted file mode 100644 index 788fa660..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php +++ /dev/null @@ -1,19 +0,0 @@ -job = $job; - $this->queue = $queue; - $this->container = $container; - $this->pheanstalk = $pheanstalk; - $this->connectionName = $connectionName; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - parent::release($delay); - - $priority = Pheanstalk::DEFAULT_PRIORITY; - - $this->pheanstalk->release($this->job, $priority, $delay); - } - - /** - * Bury the job in the queue. - * - * @return void - */ - public function bury() - { - parent::release(); - - $this->pheanstalk->bury($this->job); - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - parent::delete(); - - $this->pheanstalk->delete($this->job); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - $stats = $this->pheanstalk->statsJob($this->job); - - return (int) $stats->reserves; - } - - /** - * Get the job identifier. - * - * @return int - */ - public function getJobId() - { - return $this->job->getId(); - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->job->getData(); - } - - /** - * Get the underlying Pheanstalk instance. - * - * @return \Pheanstalk\Pheanstalk - */ - public function getPheanstalk() - { - return $this->pheanstalk; - } - - /** - * Get the underlying Pheanstalk job. - * - * @return \Pheanstalk\Job - */ - public function getPheanstalkJob() - { - return $this->job; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php deleted file mode 100644 index 9b57fb0a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php +++ /dev/null @@ -1,100 +0,0 @@ -job = $job; - $this->queue = $queue; - $this->database = $database; - $this->container = $container; - $this->connectionName = $connectionName; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return mixed - */ - public function release($delay = 0) - { - parent::release($delay); - - $this->delete(); - - return $this->database->release($this->queue, $this->job, $delay); - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - parent::delete(); - - $this->database->deleteReserved($this->queue, $this->job->id); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - return (int) $this->job->attempts; - } - - /** - * Get the job identifier. - * - * @return string - */ - public function getJobId() - { - return $this->job->id; - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->job->payload; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php deleted file mode 100644 index b4b57254..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php +++ /dev/null @@ -1,63 +0,0 @@ -record = $record; - } - - /** - * Increment the number of times the job has been attempted. - * - * @return int - */ - public function increment() - { - $this->record->attempts++; - - return $this->record->attempts; - } - - /** - * Update the "reserved at" timestamp of the job. - * - * @return int - */ - public function touch() - { - $this->record->reserved_at = $this->currentTime(); - - return $this->record->reserved_at; - } - - /** - * Dynamically access the underlying job information. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->record->{$key}; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php deleted file mode 100755 index 20b48222..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php +++ /dev/null @@ -1,271 +0,0 @@ -payload(); - - list($class, $method) = JobName::parse($payload['job']); - - ($this->instance = $this->resolve($class))->{$method}($this, $payload['data']); - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - $this->deleted = true; - } - - /** - * Determine if the job has been deleted. - * - * @return bool - */ - public function isDeleted() - { - return $this->deleted; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - $this->released = true; - } - - /** - * Determine if the job was released back into the queue. - * - * @return bool - */ - public function isReleased() - { - return $this->released; - } - - /** - * Determine if the job has been deleted or released. - * - * @return bool - */ - public function isDeletedOrReleased() - { - return $this->isDeleted() || $this->isReleased(); - } - - /** - * Determine if the job has been marked as a failure. - * - * @return bool - */ - public function hasFailed() - { - return $this->failed; - } - - /** - * Mark the job as "failed". - * - * @return void - */ - public function markAsFailed() - { - $this->failed = true; - } - - /** - * Process an exception that caused the job to fail. - * - * @param \Exception $e - * @return void - */ - public function failed($e) - { - $this->markAsFailed(); - - $payload = $this->payload(); - - list($class, $method) = JobName::parse($payload['job']); - - if (method_exists($this->instance = $this->resolve($class), 'failed')) { - $this->instance->failed($payload['data'], $e); - } - } - - /** - * Resolve the given class. - * - * @param string $class - * @return mixed - */ - protected function resolve($class) - { - return $this->container->make($class); - } - - /** - * Get the decoded body of the job. - * - * @return array - */ - public function payload() - { - return json_decode($this->getRawBody(), true); - } - - /** - * Get the number of times to attempt a job. - * - * @return int|null - */ - public function maxTries() - { - return $this->payload()['maxTries'] ?? null; - } - - /** - * Get the number of seconds the job can run. - * - * @return int|null - */ - public function timeout() - { - return $this->payload()['timeout'] ?? null; - } - - /** - * Get the timestamp indicating when the job should timeout. - * - * @return int|null - */ - public function timeoutAt() - { - return $this->payload()['timeoutAt'] ?? null; - } - - /** - * Get the name of the queued job class. - * - * @return string - */ - public function getName() - { - return $this->payload()['job']; - } - - /** - * Get the resolved name of the queued job class. - * - * Resolves the name of "wrapped" jobs such as class-based handlers. - * - * @return string - */ - public function resolveName() - { - return JobName::resolve($this->getName(), $this->payload()); - } - - /** - * Get the name of the connection the job belongs to. - * - * @return string - */ - public function getConnectionName() - { - return $this->connectionName; - } - - /** - * Get the name of the queue the job belongs to. - * - * @return string - */ - public function getQueue() - { - return $this->queue; - } - - /** - * Get the service container instance. - * - * @return \Illuminate\Container\Container - */ - public function getContainer() - { - return $this->container; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php deleted file mode 100644 index 0db53bb4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php +++ /dev/null @@ -1,35 +0,0 @@ -job = $job; - $this->redis = $redis; - $this->queue = $queue; - $this->reserved = $reserved; - $this->container = $container; - $this->connectionName = $connectionName; - - $this->decoded = $this->payload(); - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->job; - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - parent::delete(); - - $this->redis->deleteReserved($this->queue, $this); - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - parent::release($delay); - - $this->redis->deleteAndRelease($this->queue, $this, $delay); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - return ($this->decoded['attempts'] ?? null) + 1; - } - - /** - * Get the job identifier. - * - * @return string - */ - public function getJobId() - { - return $this->decoded['id'] ?? null; - } - - /** - * Get the underlying Redis factory implementation. - * - * @return \Illuminate\Contracts\Redis\Factory - */ - public function getRedisQueue() - { - return $this->redis; - } - - /** - * Get the underlying reserved Redis job. - * - * @return string - */ - public function getReservedJob() - { - return $this->reserved; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php deleted file mode 100755 index 962d7584..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php +++ /dev/null @@ -1,124 +0,0 @@ -sqs = $sqs; - $this->job = $job; - $this->queue = $queue; - $this->container = $container; - $this->connectionName = $connectionName; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - parent::release($delay); - - $this->sqs->changeMessageVisibility([ - 'QueueUrl' => $this->queue, - 'ReceiptHandle' => $this->job['ReceiptHandle'], - 'VisibilityTimeout' => $delay, - ]); - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - parent::delete(); - - $this->sqs->deleteMessage([ - 'QueueUrl' => $this->queue, 'ReceiptHandle' => $this->job['ReceiptHandle'], - ]); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - return (int) $this->job['Attributes']['ApproximateReceiveCount']; - } - - /** - * Get the job identifier. - * - * @return string - */ - public function getJobId() - { - return $this->job['MessageId']; - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->job['Body']; - } - - /** - * Get the underlying SQS client instance. - * - * @return \Aws\Sqs\SqsClient - */ - public function getSqs() - { - return $this->sqs; - } - - /** - * Get the underlying raw SQS job. - * - * @return array - */ - public function getSqsJob() - { - return $this->job; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php deleted file mode 100755 index 9aafb8a9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php +++ /dev/null @@ -1,91 +0,0 @@ -queue = $queue; - $this->payload = $payload; - $this->container = $container; - $this->connectionName = $connectionName; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - parent::release($delay); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - return 1; - } - - /** - * Get the job identifier. - * - * @return string - */ - public function getJobId() - { - return ''; - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->payload; - } - - /** - * Get the name of the queue the job belongs to. - * - * @return string - */ - public function getQueue() - { - return 'sync'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Listener.php b/vendor/laravel/framework/src/Illuminate/Queue/Listener.php deleted file mode 100755 index ccd62df3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Listener.php +++ /dev/null @@ -1,248 +0,0 @@ -commandPath = $commandPath; - $this->workerCommand = $this->buildCommandTemplate(); - } - - /** - * Build the environment specific worker command. - * - * @return string - */ - protected function buildCommandTemplate() - { - $command = 'queue:work %s --once --queue=%s --delay=%s --memory=%s --sleep=%s --tries=%s'; - - return "{$this->phpBinary()} {$this->artisanBinary()} {$command}"; - } - - /** - * Get the PHP binary. - * - * @return string - */ - protected function phpBinary() - { - return ProcessUtils::escapeArgument( - (new PhpExecutableFinder)->find(false) - ); - } - - /** - * Get the Artisan binary. - * - * @return string - */ - protected function artisanBinary() - { - return defined('ARTISAN_BINARY') - ? ProcessUtils::escapeArgument(ARTISAN_BINARY) - : 'artisan'; - } - - /** - * Listen to the given queue connection. - * - * @param string $connection - * @param string $queue - * @param \Illuminate\Queue\ListenerOptions $options - * @return void - */ - public function listen($connection, $queue, ListenerOptions $options) - { - $process = $this->makeProcess($connection, $queue, $options); - - while (true) { - $this->runProcess($process, $options->memory); - } - } - - /** - * Create a new Symfony process for the worker. - * - * @param string $connection - * @param string $queue - * @param \Illuminate\Queue\ListenerOptions $options - * @return \Symfony\Component\Process\Process - */ - public function makeProcess($connection, $queue, ListenerOptions $options) - { - $command = $this->workerCommand; - - // If the environment is set, we will append it to the command string so the - // workers will run under the specified environment. Otherwise, they will - // just run under the production environment which is not always right. - if (isset($options->environment)) { - $command = $this->addEnvironment($command, $options); - } - - // Next, we will just format out the worker commands with all of the various - // options available for the command. This will produce the final command - // line that we will pass into a Symfony process object for processing. - $command = $this->formatCommand( - $command, $connection, $queue, $options - ); - - return new Process( - $command, $this->commandPath, null, null, $options->timeout - ); - } - - /** - * Add the environment option to the given command. - * - * @param string $command - * @param \Illuminate\Queue\ListenerOptions $options - * @return string - */ - protected function addEnvironment($command, ListenerOptions $options) - { - return $command.' --env='.ProcessUtils::escapeArgument($options->environment); - } - - /** - * Format the given command with the listener options. - * - * @param string $command - * @param string $connection - * @param string $queue - * @param \Illuminate\Queue\ListenerOptions $options - * @return string - */ - protected function formatCommand($command, $connection, $queue, ListenerOptions $options) - { - return sprintf( - $command, - ProcessUtils::escapeArgument($connection), - ProcessUtils::escapeArgument($queue), - $options->delay, $options->memory, - $options->sleep, $options->maxTries - ); - } - - /** - * Run the given process. - * - * @param \Symfony\Component\Process\Process $process - * @param int $memory - * @return void - */ - public function runProcess(Process $process, $memory) - { - $process->run(function ($type, $line) { - $this->handleWorkerOutput($type, $line); - }); - - // Once we have run the job we'll go check if the memory limit has been exceeded - // for the script. If it has, we will kill this script so the process manager - // will restart this with a clean slate of memory automatically on exiting. - if ($this->memoryExceeded($memory)) { - $this->stop(); - } - } - - /** - * Handle output from the worker process. - * - * @param int $type - * @param string $line - * @return void - */ - protected function handleWorkerOutput($type, $line) - { - if (isset($this->outputHandler)) { - call_user_func($this->outputHandler, $type, $line); - } - } - - /** - * Determine if the memory limit has been exceeded. - * - * @param int $memoryLimit - * @return bool - */ - public function memoryExceeded($memoryLimit) - { - return (memory_get_usage() / 1024 / 1024) >= $memoryLimit; - } - - /** - * Stop listening and bail out of the script. - * - * @return void - */ - public function stop() - { - die; - } - - /** - * Set the output handler callback. - * - * @param \Closure $outputHandler - * @return void - */ - public function setOutputHandler(Closure $outputHandler) - { - $this->outputHandler = $outputHandler; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php b/vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php deleted file mode 100644 index a1b90143..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php +++ /dev/null @@ -1,32 +0,0 @@ -environment = $environment; - - parent::__construct($delay, $memory, $timeout, $sleep, $maxTries, $force); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php b/vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php deleted file mode 100644 index 93ac0478..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php +++ /dev/null @@ -1,103 +0,0 @@ -push($job, $data, $queue); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param string $queue - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @return mixed - */ - public function laterOn($queue, $delay, $job, $data = '') - { - return $this->later($delay, $job, $data, $queue); - } - - /** - * Push an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function bulk($jobs, $data = '', $queue = null) - { - foreach ((array) $jobs as $job) { - $this->push($job, $data, $queue); - } - } - - /** - * Create a payload string from the given job and data. - * - * @param string $job - * @param mixed $data - * @return string - * - * @throws \Illuminate\Queue\InvalidPayloadException - */ - protected function createPayload($job, $data = '') - { - $payload = json_encode($this->createPayloadArray($job, $data)); - - if (JSON_ERROR_NONE !== json_last_error()) { - throw new InvalidPayloadException( - 'Unable to JSON encode payload. Error code: '.json_last_error() - ); - } - - return $payload; - } - - /** - * Create a payload array from the given job and data. - * - * @param string $job - * @param mixed $data - * @return array - */ - protected function createPayloadArray($job, $data = '') - { - return is_object($job) - ? $this->createObjectPayload($job) - : $this->createStringPayload($job, $data); - } - - /** - * Create a payload for an object-based queue handler. - * - * @param mixed $job - * @return array - */ - protected function createObjectPayload($job) - { - return [ - 'displayName' => $this->getDisplayName($job), - 'job' => 'Illuminate\Queue\CallQueuedHandler@call', - 'maxTries' => $job->tries ?? null, - 'timeout' => $job->timeout ?? null, - 'timeoutAt' => $this->getJobExpiration($job), - 'data' => [ - 'commandName' => get_class($job), - 'command' => serialize(clone $job), - ], - ]; - } - - /** - * Get the display name for the given job. - * - * @param mixed $job - * @return string - */ - protected function getDisplayName($job) - { - return method_exists($job, 'displayName') - ? $job->displayName() : get_class($job); - } - - /** - * Get the expiration timestamp for an object-based queue handler. - * - * @param mixed $job - * @return mixed - */ - public function getJobExpiration($job) - { - if (! method_exists($job, 'retryUntil') && ! isset($job->timeoutAt)) { - return; - } - - $expiration = $job->timeoutAt ?? $job->retryUntil(); - - return $expiration instanceof DateTimeInterface - ? $expiration->getTimestamp() : $expiration; - } - - /** - * Create a typical, string based queue payload array. - * - * @param string $job - * @param mixed $data - * @return array - */ - protected function createStringPayload($job, $data) - { - return [ - 'displayName' => is_string($job) ? explode('@', $job)[0] : null, - 'job' => $job, 'maxTries' => null, - 'timeout' => null, 'data' => $data, - ]; - } - - /** - * Get the connection name for the queue. - * - * @return string - */ - public function getConnectionName() - { - return $this->connectionName; - } - - /** - * Set the connection name for the queue. - * - * @param string $name - * @return $this - */ - public function setConnectionName($name) - { - $this->connectionName = $name; - - return $this; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Container\Container $container - * @return void - */ - public function setContainer(Container $container) - { - $this->container = $container; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php b/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php deleted file mode 100755 index f9bb7f6a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php +++ /dev/null @@ -1,270 +0,0 @@ -app = $app; - } - - /** - * Register an event listener for the before job event. - * - * @param mixed $callback - * @return void - */ - public function before($callback) - { - $this->app['events']->listen(Events\JobProcessing::class, $callback); - } - - /** - * Register an event listener for the after job event. - * - * @param mixed $callback - * @return void - */ - public function after($callback) - { - $this->app['events']->listen(Events\JobProcessed::class, $callback); - } - - /** - * Register an event listener for the exception occurred job event. - * - * @param mixed $callback - * @return void - */ - public function exceptionOccurred($callback) - { - $this->app['events']->listen(Events\JobExceptionOccurred::class, $callback); - } - - /** - * Register an event listener for the daemon queue loop. - * - * @param mixed $callback - * @return void - */ - public function looping($callback) - { - $this->app['events']->listen(Events\Looping::class, $callback); - } - - /** - * Register an event listener for the failed job event. - * - * @param mixed $callback - * @return void - */ - public function failing($callback) - { - $this->app['events']->listen(Events\JobFailed::class, $callback); - } - - /** - * Register an event listener for the daemon queue stopping. - * - * @param mixed $callback - * @return void - */ - public function stopping($callback) - { - $this->app['events']->listen(Events\WorkerStopping::class, $callback); - } - - /** - * Determine if the driver is connected. - * - * @param string $name - * @return bool - */ - public function connected($name = null) - { - return isset($this->connections[$name ?: $this->getDefaultDriver()]); - } - - /** - * Resolve a queue connection instance. - * - * @param string $name - * @return \Illuminate\Contracts\Queue\Queue - */ - public function connection($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - // If the connection has not been resolved yet we will resolve it now as all - // of the connections are resolved when they are actually needed so we do - // not make any unnecessary connection to the various queue end-points. - if (! isset($this->connections[$name])) { - $this->connections[$name] = $this->resolve($name); - - $this->connections[$name]->setContainer($this->app); - } - - return $this->connections[$name]; - } - - /** - * Resolve a queue connection. - * - * @param string $name - * @return \Illuminate\Contracts\Queue\Queue - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - return $this->getConnector($config['driver']) - ->connect($config) - ->setConnectionName($name); - } - - /** - * Get the connector for a given driver. - * - * @param string $driver - * @return \Illuminate\Queue\Connectors\ConnectorInterface - * - * @throws \InvalidArgumentException - */ - protected function getConnector($driver) - { - if (! isset($this->connectors[$driver])) { - throw new InvalidArgumentException("No connector for [$driver]"); - } - - return call_user_func($this->connectors[$driver]); - } - - /** - * Add a queue connection resolver. - * - * @param string $driver - * @param \Closure $resolver - * @return void - */ - public function extend($driver, Closure $resolver) - { - return $this->addConnector($driver, $resolver); - } - - /** - * Add a queue connection resolver. - * - * @param string $driver - * @param \Closure $resolver - * @return void - */ - public function addConnector($driver, Closure $resolver) - { - $this->connectors[$driver] = $resolver; - } - - /** - * Get the queue connection configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - if (! is_null($name) && $name !== 'null') { - return $this->app['config']["queue.connections.{$name}"]; - } - - return ['driver' => 'null']; - } - - /** - * Get the name of the default queue connection. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['queue.default']; - } - - /** - * Set the name of the default queue connection. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['queue.default'] = $name; - } - - /** - * Get the full name for the given connection. - * - * @param string $connection - * @return string - */ - public function getName($connection = null) - { - return $connection ?: $this->getDefaultDriver(); - } - - /** - * Determine if the application is in maintenance mode. - * - * @return bool - */ - public function isDownForMaintenance() - { - return $this->app->isDownForMaintenance(); - } - - /** - * Dynamically pass calls to the default connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->connection()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php deleted file mode 100755 index 2ad923ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php +++ /dev/null @@ -1,230 +0,0 @@ -registerManager(); - - $this->registerConnection(); - - $this->registerWorker(); - - $this->registerListener(); - - $this->registerFailedJobServices(); - } - - /** - * Register the queue manager. - * - * @return void - */ - protected function registerManager() - { - $this->app->singleton('queue', function ($app) { - // Once we have an instance of the queue manager, we will register the various - // resolvers for the queue connectors. These connectors are responsible for - // creating the classes that accept queue configs and instantiate queues. - return tap(new QueueManager($app), function ($manager) { - $this->registerConnectors($manager); - }); - }); - } - - /** - * Register the default queue connection binding. - * - * @return void - */ - protected function registerConnection() - { - $this->app->singleton('queue.connection', function ($app) { - return $app['queue']->connection(); - }); - } - - /** - * Register the connectors on the queue manager. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - public function registerConnectors($manager) - { - foreach (['Null', 'Sync', 'Database', 'Redis', 'Beanstalkd', 'Sqs'] as $connector) { - $this->{"register{$connector}Connector"}($manager); - } - } - - /** - * Register the Null queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerNullConnector($manager) - { - $manager->addConnector('null', function () { - return new NullConnector; - }); - } - - /** - * Register the Sync queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerSyncConnector($manager) - { - $manager->addConnector('sync', function () { - return new SyncConnector; - }); - } - - /** - * Register the database queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerDatabaseConnector($manager) - { - $manager->addConnector('database', function () { - return new DatabaseConnector($this->app['db']); - }); - } - - /** - * Register the Redis queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerRedisConnector($manager) - { - $manager->addConnector('redis', function () { - return new RedisConnector($this->app['redis']); - }); - } - - /** - * Register the Beanstalkd queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerBeanstalkdConnector($manager) - { - $manager->addConnector('beanstalkd', function () { - return new BeanstalkdConnector; - }); - } - - /** - * Register the Amazon SQS queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerSqsConnector($manager) - { - $manager->addConnector('sqs', function () { - return new SqsConnector; - }); - } - - /** - * Register the queue worker. - * - * @return void - */ - protected function registerWorker() - { - $this->app->singleton('queue.worker', function () { - return new Worker( - $this->app['queue'], $this->app['events'], $this->app[ExceptionHandler::class] - ); - }); - } - - /** - * Register the queue listener. - * - * @return void - */ - protected function registerListener() - { - $this->app->singleton('queue.listener', function () { - return new Listener($this->app->basePath()); - }); - } - - /** - * Register the failed job services. - * - * @return void - */ - protected function registerFailedJobServices() - { - $this->app->singleton('queue.failer', function () { - $config = $this->app['config']['queue.failed']; - - return isset($config['table']) - ? $this->databaseFailedJobProvider($config) - : new NullFailedJobProvider; - }); - } - - /** - * Create a new database failed job provider. - * - * @param array $config - * @return \Illuminate\Queue\Failed\DatabaseFailedJobProvider - */ - protected function databaseFailedJobProvider($config) - { - return new DatabaseFailedJobProvider( - $this->app['db'], $config['database'], $config['table'] - ); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'queue', 'queue.worker', 'queue.listener', - 'queue.failer', 'queue.connection', - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/README.md b/vendor/laravel/framework/src/Illuminate/Queue/README.md deleted file mode 100644 index d0f2ba4a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/README.md +++ /dev/null @@ -1,34 +0,0 @@ -## Illuminate Queue - -The Laravel Queue component provides a unified API across a variety of different queue services. Queues allow you to defer the processing of a time consuming task, such as sending an e-mail, until a later time, thus drastically speeding up the web requests to your application. - -### Usage Instructions - -First, create a new Queue `Capsule` manager instance. Similar to the "Capsule" provided for the Eloquent ORM, the queue Capsule aims to make configuring the library for usage outside of the Laravel framework as easy as possible. - -```PHP -use Illuminate\Queue\Capsule\Manager as Queue; - -$queue = new Queue; - -$queue->addConnection([ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', -]); - -// Make this Capsule instance available globally via static methods... (optional) -$queue->setAsGlobal(); -``` - -Once the Capsule instance has been registered. You may use it like so: - -```PHP -// As an instance... -$queue->push('SendEmail', array('message' => $message)); - -// If setAsGlobal has been called... -Queue::push('SendEmail', array('message' => $message)); -``` - -For further documentation on using the queue, consult the [Laravel framework documentation](https://laravel.com/docs). diff --git a/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php deleted file mode 100644 index b0bb6401..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php +++ /dev/null @@ -1,279 +0,0 @@ -redis = $redis; - $this->default = $default; - $this->connection = $connection; - $this->retryAfter = $retryAfter; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - $queue = $this->getQueue($queue); - - return $this->getConnection()->eval( - LuaScripts::size(), 3, $queue, $queue.':delayed', $queue.':reserved' - ); - } - - /** - * Push a new job onto the queue. - * - * @param object|string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - return $this->pushRaw($this->createPayload($job, $data), $queue); - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - $this->getConnection()->rpush($this->getQueue($queue), $payload); - - return json_decode($payload, true)['id'] ?? null; - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param object|string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->laterRaw($delay, $this->createPayload($job, $data), $queue); - } - - /** - * Push a raw job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $payload - * @param string $queue - * @return mixed - */ - protected function laterRaw($delay, $payload, $queue = null) - { - $this->getConnection()->zadd( - $this->getQueue($queue).':delayed', $this->availableAt($delay), $payload - ); - - return json_decode($payload, true)['id'] ?? null; - } - - /** - * Create a payload string from the given job and data. - * - * @param string $job - * @param mixed $data - * @return string - */ - protected function createPayloadArray($job, $data = '') - { - return array_merge(parent::createPayloadArray($job, $data), [ - 'id' => $this->getRandomId(), - 'attempts' => 0, - ]); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - $this->migrate($prefixed = $this->getQueue($queue)); - - list($job, $reserved) = $this->retrieveNextJob($prefixed); - - if ($reserved) { - return new RedisJob( - $this->container, $this, $job, - $reserved, $this->connectionName, $queue ?: $this->default - ); - } - } - - /** - * Migrate any delayed or expired jobs onto the primary queue. - * - * @param string $queue - * @return void - */ - protected function migrate($queue) - { - $this->migrateExpiredJobs($queue.':delayed', $queue); - - if (! is_null($this->retryAfter)) { - $this->migrateExpiredJobs($queue.':reserved', $queue); - } - } - - /** - * Migrate the delayed jobs that are ready to the regular queue. - * - * @param string $from - * @param string $to - * @return array - */ - public function migrateExpiredJobs($from, $to) - { - return $this->getConnection()->eval( - LuaScripts::migrateExpiredJobs(), 2, $from, $to, $this->currentTime() - ); - } - - /** - * Retrieve the next job from the queue. - * - * @param string $queue - * @return array - */ - protected function retrieveNextJob($queue) - { - return $this->getConnection()->eval( - LuaScripts::pop(), 2, $queue, $queue.':reserved', - $this->availableAt($this->retryAfter) - ); - } - - /** - * Delete a reserved job from the queue. - * - * @param string $queue - * @param \Illuminate\Queue\Jobs\RedisJob $job - * @return void - */ - public function deleteReserved($queue, $job) - { - $this->getConnection()->zrem($this->getQueue($queue).':reserved', $job->getReservedJob()); - } - - /** - * Delete a reserved job from the reserved queue and release it. - * - * @param string $queue - * @param \Illuminate\Queue\Jobs\RedisJob $job - * @param int $delay - * @return void - */ - public function deleteAndRelease($queue, $job, $delay) - { - $queue = $this->getQueue($queue); - - $this->getConnection()->eval( - LuaScripts::release(), 2, $queue.':delayed', $queue.':reserved', - $job->getReservedJob(), $this->availableAt($delay) - ); - } - - /** - * Get a random ID string. - * - * @return string - */ - protected function getRandomId() - { - return Str::random(32); - } - - /** - * Get the queue or return the default. - * - * @param string|null $queue - * @return string - */ - public function getQueue($queue) - { - return 'queues:'.($queue ?: $this->default); - } - - /** - * Get the connection for the queue. - * - * @return \Illuminate\Redis\Connections\Connection - */ - protected function getConnection() - { - return $this->redis->connection($this->connection); - } - - /** - * Get the underlying Redis instance. - * - * @return \Illuminate\Contracts\Redis\Factory - */ - public function getRedis() - { - return $this->redis; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php b/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php deleted file mode 100644 index d4d06d42..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php +++ /dev/null @@ -1,85 +0,0 @@ -getQueueableClass(), - $value->getQueueableIds(), - $value->getQueueableConnection() - ); - } - - if ($value instanceof QueueableEntity) { - return new ModelIdentifier( - get_class($value), - $value->getQueueableId(), - $value->getQueueableConnection() - ); - } - - return $value; - } - - /** - * Get the restored property value after deserialization. - * - * @param mixed $value - * @return mixed - */ - protected function getRestoredPropertyValue($value) - { - if (! $value instanceof ModelIdentifier) { - return $value; - } - - return is_array($value->id) - ? $this->restoreCollection($value) - : $this->getQueryForModelRestoration((new $value->class)->setConnection($value->connection), $value->id) - ->useWritePdo()->firstOrFail(); - } - - /** - * Restore a queueable collection instance. - * - * @param \Illuminate\Contracts\Database\ModelIdentifier $value - * @return \Illuminate\Database\Eloquent\Collection - */ - protected function restoreCollection($value) - { - if (! $value->class || count($value->id) === 0) { - return new EloquentCollection; - } - - return $this->getQueryForModelRestoration( - (new $value->class)->setConnection($value->connection), $value->id - )->useWritePdo()->get(); - } - - /** - * Get the query for restoration. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @param array|int $ids - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function getQueryForModelRestoration($model, $ids) - { - return $model->newQueryForRestoration($ids); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php b/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php deleted file mode 100644 index 62f7e721..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php +++ /dev/null @@ -1,58 +0,0 @@ -getProperties(); - - foreach ($properties as $property) { - $property->setValue($this, $this->getSerializedPropertyValue( - $this->getPropertyValue($property) - )); - } - - return array_map(function ($p) { - return $p->getName(); - }, $properties); - } - - /** - * Restore the model after serialization. - * - * @return void - */ - public function __wakeup() - { - foreach ((new ReflectionClass($this))->getProperties() as $property) { - $property->setValue($this, $this->getRestoredPropertyValue( - $this->getPropertyValue($property) - )); - } - } - - /** - * Get the property value for the given property. - * - * @param \ReflectionProperty $property - * @return mixed - */ - protected function getPropertyValue(ReflectionProperty $property) - { - $property->setAccessible(true); - - return $property->getValue($this); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php deleted file mode 100755 index c8bd3aec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php +++ /dev/null @@ -1,155 +0,0 @@ -sqs = $sqs; - $this->prefix = $prefix; - $this->default = $default; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - $response = $this->sqs->getQueueAttributes([ - 'QueueUrl' => $this->getQueue($queue), - 'AttributeNames' => ['ApproximateNumberOfMessages'], - ]); - - $attributes = $response->get('Attributes'); - - return (int) $attributes['ApproximateNumberOfMessages']; - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - return $this->pushRaw($this->createPayload($job, $data), $queue); - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - return $this->sqs->sendMessage([ - 'QueueUrl' => $this->getQueue($queue), 'MessageBody' => $payload, - ])->get('MessageId'); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->sqs->sendMessage([ - 'QueueUrl' => $this->getQueue($queue), - 'MessageBody' => $this->createPayload($job, $data), - 'DelaySeconds' => $this->secondsUntil($delay), - ])->get('MessageId'); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - $response = $this->sqs->receiveMessage([ - 'QueueUrl' => $queue = $this->getQueue($queue), - 'AttributeNames' => ['ApproximateReceiveCount'], - ]); - - if (! is_null($response['Messages']) && count($response['Messages']) > 0) { - return new SqsJob( - $this->container, $this->sqs, $response['Messages'][0], - $this->connectionName, $queue - ); - } - } - - /** - * Get the queue or return the default. - * - * @param string|null $queue - * @return string - */ - public function getQueue($queue) - { - $queue = $queue ?: $this->default; - - return filter_var($queue, FILTER_VALIDATE_URL) === false - ? rtrim($this->prefix, '/').'/'.$queue : $queue; - } - - /** - * Get the underlying SQS instance. - * - * @return \Aws\Sqs\SqsClient - */ - public function getSqs() - { - return $this->sqs; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php deleted file mode 100755 index bc455391..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php +++ /dev/null @@ -1,161 +0,0 @@ -resolveJob($this->createPayload($job, $data), $queue); - - try { - $this->raiseBeforeJobEvent($queueJob); - - $queueJob->fire(); - - $this->raiseAfterJobEvent($queueJob); - } catch (Exception $e) { - $this->handleException($queueJob, $e); - } catch (Throwable $e) { - $this->handleException($queueJob, new FatalThrowableError($e)); - } - - return 0; - } - - /** - * Resolve a Sync job instance. - * - * @param string $payload - * @param string $queue - * @return \Illuminate\Queue\Jobs\SyncJob - */ - protected function resolveJob($payload, $queue) - { - return new SyncJob($this->container, $payload, $this->connectionName, $queue); - } - - /** - * Raise the before queue job event. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @return void - */ - protected function raiseBeforeJobEvent(Job $job) - { - if ($this->container->bound('events')) { - $this->container['events']->dispatch(new Events\JobProcessing($this->connectionName, $job)); - } - } - - /** - * Raise the after queue job event. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @return void - */ - protected function raiseAfterJobEvent(Job $job) - { - if ($this->container->bound('events')) { - $this->container['events']->dispatch(new Events\JobProcessed($this->connectionName, $job)); - } - } - - /** - * Raise the exception occurred queue job event. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function raiseExceptionOccurredJobEvent(Job $job, $e) - { - if ($this->container->bound('events')) { - $this->container['events']->dispatch(new Events\JobExceptionOccurred($this->connectionName, $job, $e)); - } - } - - /** - * Handle an exception that occurred while processing a job. - * - * @param \Illuminate\Queue\Jobs\Job $queueJob - * @param \Exception $e - * @return void - * - * @throws \Exception - */ - protected function handleException($queueJob, $e) - { - $this->raiseExceptionOccurredJobEvent($queueJob, $e); - - FailingJob::handle($this->connectionName, $queueJob, $e); - - throw $e; - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - // - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->push($job, $data, $queue); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Worker.php b/vendor/laravel/framework/src/Illuminate/Queue/Worker.php deleted file mode 100644 index 68de894d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Worker.php +++ /dev/null @@ -1,639 +0,0 @@ -events = $events; - $this->manager = $manager; - $this->exceptions = $exceptions; - } - - /** - * Listen to the given queue in a loop. - * - * @param string $connectionName - * @param string $queue - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - */ - public function daemon($connectionName, $queue, WorkerOptions $options) - { - $this->listenForSignals(); - - $lastRestart = $this->getTimestampOfLastQueueRestart(); - - while (true) { - // Before reserving any jobs, we will make sure this queue is not paused and - // if it is we will just pause this worker for a given amount of time and - // make sure we do not need to kill this worker process off completely. - if (! $this->daemonShouldRun($options, $connectionName, $queue)) { - $this->pauseWorker($options, $lastRestart); - - continue; - } - - // First, we will attempt to get the next job off of the queue. We will also - // register the timeout handler and reset the alarm for this job so it is - // not stuck in a frozen state forever. Then, we can fire off this job. - $job = $this->getNextJob( - $this->manager->connection($connectionName), $queue - ); - - $this->registerTimeoutHandler($job, $options); - - // If the daemon should run (not in maintenance mode, etc.), then we can run - // fire off this job for processing. Otherwise, we will need to sleep the - // worker so no more jobs are processed until they should be processed. - if ($job) { - $this->runJob($job, $connectionName, $options); - } else { - $this->sleep($options->sleep); - } - - // Finally, we will check to see if we have exceeded our memory limits or if - // the queue should restart based on other indications. If so, we'll stop - // this worker and let whatever is "monitoring" it restart the process. - $this->stopIfNecessary($options, $lastRestart); - } - } - - /** - * Register the worker timeout handler (PHP 7.1+). - * - * @param \Illuminate\Contracts\Queue\Job|null $job - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - */ - protected function registerTimeoutHandler($job, WorkerOptions $options) - { - if ($this->supportsAsyncSignals()) { - // We will register a signal handler for the alarm signal so that we can kill this - // process if it is running too long because it has frozen. This uses the async - // signals supported in recent versions of PHP to accomplish it conveniently. - pcntl_signal(SIGALRM, function () { - $this->kill(1); - }); - - pcntl_alarm( - max($this->timeoutForJob($job, $options), 0) - ); - } - } - - /** - * Get the appropriate timeout for the given job. - * - * @param \Illuminate\Contracts\Queue\Job|null $job - * @param \Illuminate\Queue\WorkerOptions $options - * @return int - */ - protected function timeoutForJob($job, WorkerOptions $options) - { - return $job && ! is_null($job->timeout()) ? $job->timeout() : $options->timeout; - } - - /** - * Determine if the daemon should process on this iteration. - * - * @param \Illuminate\Queue\WorkerOptions $options - * @param string $connectionName - * @param string $queue - * @return bool - */ - protected function daemonShouldRun(WorkerOptions $options, $connectionName, $queue) - { - return ! (($this->manager->isDownForMaintenance() && ! $options->force) || - $this->paused || - $this->events->until(new Events\Looping($connectionName, $queue)) === false); - } - - /** - * Pause the worker for the current loop. - * - * @param \Illuminate\Queue\WorkerOptions $options - * @param int $lastRestart - * @return void - */ - protected function pauseWorker(WorkerOptions $options, $lastRestart) - { - $this->sleep($options->sleep > 0 ? $options->sleep : 1); - - $this->stopIfNecessary($options, $lastRestart); - } - - /** - * Stop the process if necessary. - * - * @param \Illuminate\Queue\WorkerOptions $options - * @param int $lastRestart - */ - protected function stopIfNecessary(WorkerOptions $options, $lastRestart) - { - if ($this->shouldQuit) { - $this->kill(); - } - - if ($this->memoryExceeded($options->memory)) { - $this->stop(12); - } elseif ($this->queueShouldRestart($lastRestart)) { - $this->stop(); - } - } - - /** - * Process the next job on the queue. - * - * @param string $connectionName - * @param string $queue - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - */ - public function runNextJob($connectionName, $queue, WorkerOptions $options) - { - $job = $this->getNextJob( - $this->manager->connection($connectionName), $queue - ); - - // If we're able to pull a job off of the stack, we will process it and then return - // from this method. If there is no job on the queue, we will "sleep" the worker - // for the specified number of seconds, then keep processing jobs after sleep. - if ($job) { - return $this->runJob($job, $connectionName, $options); - } - - $this->sleep($options->sleep); - } - - /** - * Get the next job from the queue connection. - * - * @param \Illuminate\Contracts\Queue\Queue $connection - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - protected function getNextJob($connection, $queue) - { - try { - foreach (explode(',', $queue) as $queue) { - if (! is_null($job = $connection->pop($queue))) { - return $job; - } - } - } catch (Exception $e) { - $this->exceptions->report($e); - - $this->stopWorkerIfLostConnection($e); - } catch (Throwable $e) { - $this->exceptions->report($e = new FatalThrowableError($e)); - - $this->stopWorkerIfLostConnection($e); - } - } - - /** - * Process the given job. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param string $connectionName - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - */ - protected function runJob($job, $connectionName, WorkerOptions $options) - { - try { - return $this->process($connectionName, $job, $options); - } catch (Exception $e) { - $this->exceptions->report($e); - - $this->stopWorkerIfLostConnection($e); - } catch (Throwable $e) { - $this->exceptions->report($e = new FatalThrowableError($e)); - - $this->stopWorkerIfLostConnection($e); - } - } - - /** - * Stop the worker if we have lost connection to a database. - * - * @param \Exception $e - * @return void - */ - protected function stopWorkerIfLostConnection($e) - { - if ($this->causedByLostConnection($e)) { - $this->shouldQuit = true; - } - } - - /** - * Process the given job from the queue. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - * - * @throws \Throwable - */ - public function process($connectionName, $job, WorkerOptions $options) - { - try { - // First we will raise the before job event and determine if the job has already ran - // over its maximum attempt limits, which could primarily happen when this job is - // continually timing out and not actually throwing any exceptions from itself. - $this->raiseBeforeJobEvent($connectionName, $job); - - $this->markJobAsFailedIfAlreadyExceedsMaxAttempts( - $connectionName, $job, (int) $options->maxTries - ); - - // Here we will fire off the job and let it process. We will catch any exceptions so - // they can be reported to the developers logs, etc. Once the job is finished the - // proper events will be fired to let any listeners know this job has finished. - $job->fire(); - - $this->raiseAfterJobEvent($connectionName, $job); - } catch (Exception $e) { - $this->handleJobException($connectionName, $job, $options, $e); - } catch (Throwable $e) { - $this->handleJobException( - $connectionName, $job, $options, new FatalThrowableError($e) - ); - } - } - - /** - * Handle an exception that occurred while the job was running. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Illuminate\Queue\WorkerOptions $options - * @param \Exception $e - * @return void - * - * @throws \Exception - */ - protected function handleJobException($connectionName, $job, WorkerOptions $options, $e) - { - try { - // First, we will go ahead and mark the job as failed if it will exceed the maximum - // attempts it is allowed to run the next time we process it. If so we will just - // go ahead and mark it as failed now so we do not have to release this again. - if (! $job->hasFailed()) { - $this->markJobAsFailedIfWillExceedMaxAttempts( - $connectionName, $job, (int) $options->maxTries, $e - ); - } - - $this->raiseExceptionOccurredJobEvent( - $connectionName, $job, $e - ); - } finally { - // If we catch an exception, we will attempt to release the job back onto the queue - // so it is not lost entirely. This'll let the job be retried at a later time by - // another listener (or this same one). We will re-throw this exception after. - if (! $job->isDeleted() && ! $job->isReleased() && ! $job->hasFailed()) { - $job->release($options->delay); - } - } - - throw $e; - } - - /** - * Mark the given job as failed if it has exceeded the maximum allowed attempts. - * - * This will likely be because the job previously exceeded a timeout. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param int $maxTries - * @return void - */ - protected function markJobAsFailedIfAlreadyExceedsMaxAttempts($connectionName, $job, $maxTries) - { - $maxTries = ! is_null($job->maxTries()) ? $job->maxTries() : $maxTries; - - $timeoutAt = $job->timeoutAt(); - - if ($timeoutAt && Carbon::now()->getTimestamp() <= $timeoutAt) { - return; - } - - if (! $timeoutAt && ($maxTries === 0 || $job->attempts() <= $maxTries)) { - return; - } - - $this->failJob($connectionName, $job, $e = new MaxAttemptsExceededException( - $job->resolveName().' has been attempted too many times or run too long. The job may have previously timed out.' - )); - - throw $e; - } - - /** - * Mark the given job as failed if it has exceeded the maximum allowed attempts. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param int $maxTries - * @param \Exception $e - * @return void - */ - protected function markJobAsFailedIfWillExceedMaxAttempts($connectionName, $job, $maxTries, $e) - { - $maxTries = ! is_null($job->maxTries()) ? $job->maxTries() : $maxTries; - - if ($job->timeoutAt() && $job->timeoutAt() <= Carbon::now()->getTimestamp()) { - $this->failJob($connectionName, $job, $e); - } - - if ($maxTries > 0 && $job->attempts() >= $maxTries) { - $this->failJob($connectionName, $job, $e); - } - } - - /** - * Mark the given job as failed and raise the relevant event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function failJob($connectionName, $job, $e) - { - return FailingJob::handle($connectionName, $job, $e); - } - - /** - * Raise the before queue job event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @return void - */ - protected function raiseBeforeJobEvent($connectionName, $job) - { - $this->events->dispatch(new Events\JobProcessing( - $connectionName, $job - )); - } - - /** - * Raise the after queue job event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @return void - */ - protected function raiseAfterJobEvent($connectionName, $job) - { - $this->events->dispatch(new Events\JobProcessed( - $connectionName, $job - )); - } - - /** - * Raise the exception occurred queue job event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function raiseExceptionOccurredJobEvent($connectionName, $job, $e) - { - $this->events->dispatch(new Events\JobExceptionOccurred( - $connectionName, $job, $e - )); - } - - /** - * Raise the failed queue job event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function raiseFailedJobEvent($connectionName, $job, $e) - { - $this->events->dispatch(new Events\JobFailed( - $connectionName, $job, $e - )); - } - - /** - * Determine if the queue worker should restart. - * - * @param int|null $lastRestart - * @return bool - */ - protected function queueShouldRestart($lastRestart) - { - return $this->getTimestampOfLastQueueRestart() != $lastRestart; - } - - /** - * Get the last queue restart timestamp, or null. - * - * @return int|null - */ - protected function getTimestampOfLastQueueRestart() - { - if ($this->cache) { - return $this->cache->get('illuminate:queue:restart'); - } - } - - /** - * Enable async signals for the process. - * - * @return void - */ - protected function listenForSignals() - { - if ($this->supportsAsyncSignals()) { - pcntl_async_signals(true); - - pcntl_signal(SIGTERM, function () { - $this->shouldQuit = true; - }); - - pcntl_signal(SIGUSR2, function () { - $this->paused = true; - }); - - pcntl_signal(SIGCONT, function () { - $this->paused = false; - }); - } - } - - /** - * Determine if "async" signals are supported. - * - * @return bool - */ - protected function supportsAsyncSignals() - { - return version_compare(PHP_VERSION, '7.1.0') >= 0 && - extension_loaded('pcntl'); - } - - /** - * Determine if the memory limit has been exceeded. - * - * @param int $memoryLimit - * @return bool - */ - public function memoryExceeded($memoryLimit) - { - return (memory_get_usage() / 1024 / 1024) >= $memoryLimit; - } - - /** - * Stop listening and bail out of the script. - * - * @param int $status - * @return void - */ - public function stop($status = 0) - { - $this->events->dispatch(new Events\WorkerStopping); - - exit($status); - } - - /** - * Kill the process. - * - * @param int $status - * @return void - */ - public function kill($status = 0) - { - $this->events->dispatch(new Events\WorkerStopping); - - if (extension_loaded('posix')) { - posix_kill(getmypid(), SIGKILL); - } - - exit($status); - } - - /** - * Sleep the script for a given number of seconds. - * - * @param int|float $seconds - * @return void - */ - public function sleep($seconds) - { - if ($seconds < 1) { - usleep($seconds * 1000000); - } else { - sleep($seconds); - } - } - - /** - * Set the cache repository implementation. - * - * @param \Illuminate\Contracts\Cache\Repository $cache - * @return void - */ - public function setCache(CacheContract $cache) - { - $this->cache = $cache; - } - - /** - * Get the queue manager instance. - * - * @return \Illuminate\Queue\QueueManager - */ - public function getManager() - { - return $this->manager; - } - - /** - * Set the queue manager instance. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - public function setManager(QueueManager $manager) - { - $this->manager = $manager; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php b/vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php deleted file mode 100644 index 3549f441..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php +++ /dev/null @@ -1,69 +0,0 @@ -delay = $delay; - $this->sleep = $sleep; - $this->force = $force; - $this->memory = $memory; - $this->timeout = $timeout; - $this->maxTries = $maxTries; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/composer.json b/vendor/laravel/framework/src/Illuminate/Queue/composer.json deleted file mode 100644 index 8d1edc88..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/composer.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "illuminate/queue", - "description": "The Illuminate Queue package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/console": "5.5.*", - "illuminate/container": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/database": "5.5.*", - "illuminate/filesystem": "5.5.*", - "illuminate/support": "5.5.*", - "symfony/debug": "~3.3", - "symfony/process": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\Queue\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "aws/aws-sdk-php": "Required to use the SQS queue driver (~3.0).", - "illuminate/redis": "Required to use the Redis queue driver (5.5.*).", - "pda/pheanstalk": "Required to use the Beanstalk queue driver (~3.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php deleted file mode 100644 index c5b524a0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php +++ /dev/null @@ -1,110 +0,0 @@ -client; - } - - /** - * Subscribe to a set of given channels for messages. - * - * @param array|string $channels - * @param \Closure $callback - * @return void - */ - public function subscribe($channels, Closure $callback) - { - return $this->createSubscription($channels, $callback, __FUNCTION__); - } - - /** - * Subscribe to a set of given channels with wildcards. - * - * @param array|string $channels - * @param \Closure $callback - * @return void - */ - public function psubscribe($channels, Closure $callback) - { - return $this->createSubscription($channels, $callback, __FUNCTION__); - } - - /** - * Run a command against the Redis database. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function command($method, array $parameters = []) - { - return $this->client->{$method}(...$parameters); - } - - /** - * Pass other method calls down to the underlying client. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->command($method, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php deleted file mode 100644 index e246fe6a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php +++ /dev/null @@ -1,8 +0,0 @@ -client = $client; - } - - /** - * Returns the value of the given key. - * - * @param string $key - * @return string|null - */ - public function get($key) - { - $result = $this->client->get($key); - - return $result !== false ? $result : null; - } - - /** - * Get the values of all the given keys. - * - * @param array $keys - * @return array - */ - public function mget(array $keys) - { - return array_map(function ($value) { - return $value !== false ? $value : null; - }, $this->client->mget($keys)); - } - - /** - * Determine if the given keys exist. - * - * @param dynamic $keys - * @return int - */ - public function exists(...$keys) - { - $keys = collect($keys)->map(function ($key) { - return $this->applyPrefix($key); - })->all(); - - return $this->executeRaw(array_merge(['exists'], $keys)); - } - - /** - * Set the string value in argument as value of the key. - * - * @param string $key - * @param mixed $value - * @param string|null $expireResolution - * @param int|null $expireTTL - * @param string|null $flag - * @return bool - */ - public function set($key, $value, $expireResolution = null, $expireTTL = null, $flag = null) - { - return $this->command('set', [ - $key, - $value, - $expireResolution ? [$flag, $expireResolution => $expireTTL] : null, - ]); - } - - /** - * Set the given key if it doesn't exist. - * - * @param string $key - * @param string $value - * @return int - */ - public function setnx($key, $value) - { - return (int) $this->client->setnx($key, $value); - } - - /** - * Get the value of the given hash fields. - * - * @param string $key - * @param dynamic $dictionary - * @return int - */ - public function hmget($key, ...$dictionary) - { - if (count($dictionary) == 1) { - $dictionary = $dictionary[0]; - } - - return array_values($this->command('hmget', [$key, $dictionary])); - } - - /** - * Set the given hash fields to their respective values. - * - * @param string $key - * @param dynamic $dictionary - * @return int - */ - public function hmset($key, ...$dictionary) - { - if (count($dictionary) == 1) { - $dictionary = $dictionary[0]; - } else { - $input = collect($dictionary); - - $dictionary = $input->nth(2)->combine($input->nth(2, 1))->toArray(); - } - - return $this->command('hmset', [$key, $dictionary]); - } - - /** - * Set the given hash field if it doesn't exist. - * - * @param string $hash - * @param string $key - * @param string $value - * @return int - */ - public function hsetnx($hash, $key, $value) - { - return (int) $this->client->hsetnx($hash, $key, $value); - } - - /** - * Removes the first count occurrences of the value element from the list. - * - * @param string $key - * @param int $count - * @param $value $value - * @return int|false - */ - public function lrem($key, $count, $value) - { - return $this->command('lrem', [$key, $value, $count]); - } - - /** - * Removes and returns a random element from the set value at key. - * - * @param string $key - * @param int|null $count - * @return mixed|false - */ - public function spop($key, $count = null) - { - return $this->command('spop', [$key]); - } - - /** - * Add one or more members to a sorted set or update its score if it already exists. - * - * @param string $key - * @param dynamic $dictionary - * @return int - */ - public function zadd($key, ...$dictionary) - { - if (is_array(end($dictionary))) { - foreach (array_pop($dictionary) as $member => $score) { - $dictionary[] = $score; - $dictionary[] = $member; - } - } - - $key = $this->applyPrefix($key); - - return $this->executeRaw(array_merge(['zadd', $key], $dictionary)); - } - - /** - * Return elements with score between $min and $max. - * - * @param string $key - * @param mixed $min - * @param mixed $max - * @param array $options - * @return int - */ - public function zrangebyscore($key, $min, $max, $options = []) - { - if (isset($options['limit'])) { - $options['limit'] = [ - $options['limit']['offset'], - $options['limit']['count'], - ]; - } - - return $this->command('zRangeByScore', [$key, $min, $max, $options]); - } - - /** - * Return elements with score between $min and $max. - * - * @param string $key - * @param mixed $min - * @param mixed $max - * @param array $options - * @return int - */ - public function zrevrangebyscore($key, $min, $max, $options = []) - { - if (isset($options['limit'])) { - $options['limit'] = [ - $options['limit']['offset'], - $options['limit']['count'], - ]; - } - - return $this->command('zRevRangeByScore', [$key, $min, $max, $options]); - } - - /** - * Find the intersection between sets and store in a new set. - * - * @param string $output - * @param array $keys - * @param array $options - * @return int - */ - public function zinterstore($output, $keys, $options = []) - { - return $this->zInter($output, $keys, - $options['weights'] ?? null, - $options['aggregate'] ?? 'sum' - ); - } - - /** - * Find the union between sets and store in a new set. - * - * @param string $output - * @param array $keys - * @param array $options - * @return int - */ - public function zunionstore($output, $keys, $options = []) - { - return $this->zUnion($output, $keys, - $options['weights'] ?? null, - $options['aggregate'] ?? 'sum' - ); - } - - /** - * Execute commands in a pipeline. - * - * @param callable $callback - * @return \Redis|array - */ - public function pipeline(callable $callback = null) - { - $pipeline = $this->client()->pipeline(); - - return is_null($callback) - ? $pipeline - : tap($pipeline, $callback)->exec(); - } - - /** - * Execute commands in a transaction. - * - * @param callable $callback - * @return \Redis|array - */ - public function transaction(callable $callback = null) - { - $transaction = $this->client()->multi(); - - return is_null($callback) - ? $transaction - : tap($transaction, $callback)->exec(); - } - - /** - * Evaluate a LUA script serverside, from the SHA1 hash of the script instead of the script itself. - * - * @param string $script - * @param int $numkeys - * @param mixed $arguments - * @return mixed - */ - public function evalsha($script, $numkeys, ...$arguments) - { - return $this->command('evalsha', [ - $this->script('load', $script), $arguments, $numkeys, - ]); - } - - /** - * Evaluate a script and retunr its result. - * - * @param string $script - * @param int $numberOfKeys - * @param dynamic $arguments - * @return mixed - */ - public function eval($script, $numberOfKeys, ...$arguments) - { - return $this->client->eval($script, $arguments, $numberOfKeys); - } - - /** - * Subscribe to a set of given channels for messages. - * - * @param array|string $channels - * @param \Closure $callback - * @return void - */ - public function subscribe($channels, Closure $callback) - { - $this->client->subscribe((array) $channels, function ($redis, $channel, $message) use ($callback) { - $callback($message, $channel); - }); - } - - /** - * Subscribe to a set of given channels with wildcards. - * - * @param array|string $channels - * @param \Closure $callback - * @return void - */ - public function psubscribe($channels, Closure $callback) - { - $this->client->psubscribe((array) $channels, function ($redis, $pattern, $channel, $message) use ($callback) { - $callback($message, $channel); - }); - } - - /** - * Subscribe to a set of given channels for messages. - * - * @param array|string $channels - * @param \Closure $callback - * @param string $method - * @return void - */ - public function createSubscription($channels, Closure $callback, $method = 'subscribe') - { - // - } - - /** - * Execute a raw command. - * - * @param array $parameters - * @return mixed - */ - public function executeRaw(array $parameters) - { - return $this->command('rawCommand', $parameters); - } - - /** - * Disconnects from the Redis instance. - * - * @return void - */ - public function disconnect() - { - $this->client->close(); - } - - /** - * Apply prefix to the given key if necessary. - * - * @param string $key - * @return string - */ - private function applyPrefix($key) - { - $prefix = (string) $this->client->getOption(Redis::OPT_PREFIX); - - return $prefix.$key; - } - - /** - * Pass other method calls down to the underlying client. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - $method = strtolower($method); - - return parent::__call($method, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php deleted file mode 100644 index 399be1ea..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php +++ /dev/null @@ -1,8 +0,0 @@ -client = $client; - } - - /** - * Subscribe to a set of given channels for messages. - * - * @param array|string $channels - * @param \Closure $callback - * @param string $method - * @return void - */ - public function createSubscription($channels, Closure $callback, $method = 'subscribe') - { - $loop = $this->pubSubLoop(); - - call_user_func_array([$loop, $method], (array) $channels); - - foreach ($loop as $message) { - if ($message->kind === 'message' || $message->kind === 'pmessage') { - call_user_func($callback, $message->payload, $message->channel); - } - } - - unset($loop); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php b/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php deleted file mode 100644 index 78f3e718..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php +++ /dev/null @@ -1,117 +0,0 @@ -createClient(array_merge( - $config, $options, Arr::pull($config, 'options', []) - ))); - } - - /** - * Create a new clustered Predis connection. - * - * @param array $config - * @param array $clusterOptions - * @param array $options - * @return \Illuminate\Redis\Connections\PhpRedisClusterConnection - */ - public function connectToCluster(array $config, array $clusterOptions, array $options) - { - $options = array_merge($options, $clusterOptions, Arr::pull($config, 'options', [])); - - return new PhpRedisClusterConnection($this->createRedisClusterInstance( - array_map([$this, 'buildClusterConnectionString'], $config), $options - )); - } - - /** - * Build a single cluster seed string from array. - * - * @param array $server - * @return string - */ - protected function buildClusterConnectionString(array $server) - { - return $server['host'].':'.$server['port'].'?'.http_build_query(Arr::only($server, [ - 'database', 'password', 'prefix', 'read_timeout', - ])); - } - - /** - * Create the Redis client instance. - * - * @param array $config - * @return \Redis - */ - protected function createClient(array $config) - { - return tap(new Redis, function ($client) use ($config) { - $this->establishConnection($client, $config); - - if (! empty($config['password'])) { - $client->auth($config['password']); - } - - if (! empty($config['database'])) { - $client->select($config['database']); - } - - if (! empty($config['prefix'])) { - $client->setOption(Redis::OPT_PREFIX, $config['prefix']); - } - - if (! empty($config['read_timeout'])) { - $client->setOption(Redis::OPT_READ_TIMEOUT, $config['read_timeout']); - } - }); - } - - /** - * Establish a connection with the Redis host. - * - * @param \Redis $client - * @param array $config - * @return void - */ - protected function establishConnection($client, array $config) - { - $client->{($config['persistent'] ?? false) === true ? 'pconnect' : 'connect'}( - $config['host'], $config['port'], Arr::get($config, 'timeout', 0) - ); - } - - /** - * Create a new redis cluster instance. - * - * @param array $servers - * @param array $options - * @return \RedisCluster - */ - protected function createRedisClusterInstance(array $servers, array $options) - { - return new RedisCluster( - null, - array_values($servers), - $options['timeout'] ?? 0, - $options['read_timeout'] ?? 0, - isset($options['persistent']) && $options['persistent'] - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php b/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php deleted file mode 100644 index 8b1a46b1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php +++ /dev/null @@ -1,44 +0,0 @@ - 10.0], $options, Arr::pull($config, 'options', []) - ); - - return new PredisConnection(new Client($config, $formattedOptions)); - } - - /** - * Create a new clustered Predis connection. - * - * @param array $config - * @param array $clusterOptions - * @param array $options - * @return \Illuminate\Redis\Connections\PredisClusterConnection - */ - public function connectToCluster(array $config, array $clusterOptions, array $options) - { - $clusterSpecificOptions = Arr::pull($config, 'options', []); - - return new PredisClusterConnection(new Client(array_values($config), array_merge( - $options, $clusterOptions, $clusterSpecificOptions - ))); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php deleted file mode 100644 index c6db2e20..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php +++ /dev/null @@ -1,130 +0,0 @@ -name = $name; - $this->redis = $redis; - $this->maxLocks = $maxLocks; - $this->releaseAfter = $releaseAfter; - } - - /** - * Attempt to acquire the lock for the given number of seconds. - * - * @param int $timeout - * @param callable|null $callback - * @return bool - * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException - */ - public function block($timeout, $callback = null) - { - $starting = time(); - - while (! $slot = $this->acquire()) { - if (time() - $timeout >= $starting) { - throw new LimiterTimeoutException; - } - - usleep(250 * 1000); - } - - if (is_callable($callback)) { - return tap($callback(), function () use ($slot) { - $this->release($slot); - }); - } - - return true; - } - - /** - * Attempt to acquire the lock. - * - * @return mixed - */ - protected function acquire() - { - $slots = array_map(function ($i) { - return $this->name.$i; - }, range(1, $this->maxLocks)); - - return $this->redis->eval($this->luaScript(), count($slots), - ...array_merge($slots, [$this->name, $this->releaseAfter]) - ); - } - - /** - * Get the Lua script for acquiring a lock. - * - * KEYS - The keys that represent available slots - * ARGV[1] - The limiter name - * ARGV[2] - The number of seconds the slot should be reserved - * - * @return string - */ - protected function luaScript() - { - return <<<'LUA' -for index, value in pairs(redis.call('mget', unpack(KEYS))) do - if not value then - redis.call('set', ARGV[1]..index, "1", "EX", ARGV[2]) - return ARGV[1]..index - end -end -LUA; - } - - /** - * Release the lock. - * - * @param string $key - * @return void - */ - protected function release($key) - { - $this->redis->del($key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php deleted file mode 100644 index 10a614f7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php +++ /dev/null @@ -1,122 +0,0 @@ -name = $name; - $this->connection = $connection; - } - - /** - * Set the maximum number of locks that can obtained per time window. - * - * @param int $maxLocks - * @return $this - */ - public function limit($maxLocks) - { - $this->maxLocks = $maxLocks; - - return $this; - } - - /** - * Set the number of seconds until the lock will be released. - * - * @param int $releaseAfter - * @return $this - */ - public function releaseAfter($releaseAfter) - { - $this->releaseAfter = $this->secondsUntil($releaseAfter); - - return $this; - } - - /** - * Set the amount of time to block until a lock is available. - * - * @param int $timeout - * @return $this - */ - public function block($timeout) - { - $this->timeout = $timeout; - - return $this; - } - - /** - * Execute the given callback if a lock is obtained, otherwise call the failure callback. - * - * @param callable $callback - * @param callable|null $failure - * @return mixed - * - * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException - */ - public function then(callable $callback, callable $failure = null) - { - try { - return (new ConcurrencyLimiter( - $this->connection, $this->name, $this->maxLocks, $this->releaseAfter - ))->block($this->timeout, $callback); - } catch (LimiterTimeoutException $e) { - if ($failure) { - return $failure($e); - } - - throw $e; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php deleted file mode 100644 index 0cd0ab26..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php +++ /dev/null @@ -1,147 +0,0 @@ -name = $name; - $this->decay = $decay; - $this->redis = $redis; - $this->maxLocks = $maxLocks; - } - - /** - * Attempt to acquire the lock for the given number of seconds. - * - * @param int $timeout - * @param callable|null $callback - * @return bool - * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException - */ - public function block($timeout, $callback = null) - { - $starting = time(); - - while (! $this->acquire()) { - if (time() - $timeout >= $starting) { - throw new LimiterTimeoutException; - } - - usleep(750 * 1000); - } - - if (is_callable($callback)) { - $callback(); - } - - return true; - } - - /** - * Attempt to acquire the lock. - * - * @return bool - */ - public function acquire() - { - $results = $this->redis->eval($this->luaScript(), 1, - $this->name, microtime(true), time(), $this->decay, $this->maxLocks - ); - - $this->decaysAt = $results[1]; - - $this->remaining = max(0, $results[2]); - - return (bool) $results[0]; - } - - /** - * Get the Lua script for acquiring a lock. - * - * KEYS[1] - The limiter name - * ARGV[1] - Current time in microseconds - * ARGV[2] - Current time in seconds - * ARGV[3] - Duration of the bucket - * ARGV[4] - Allowed number of tasks - * - * @return string - */ - protected function luaScript() - { - return <<<'LUA' -local function reset() - redis.call('HMSET', KEYS[1], 'start', ARGV[2], 'end', ARGV[2] + ARGV[3], 'count', 1) - return redis.call('EXPIRE', KEYS[1], ARGV[3] * 2) -end - -if redis.call('EXISTS', KEYS[1]) == 0 then - return {reset(), ARGV[2] + ARGV[3], ARGV[4] - 1} -end - -if ARGV[1] >= redis.call('HGET', KEYS[1], 'start') and ARGV[1] <= redis.call('HGET', KEYS[1], 'end') then - return { - tonumber(redis.call('HINCRBY', KEYS[1], 'count', 1)) <= tonumber(ARGV[4]), - redis.call('HGET', KEYS[1], 'end'), - ARGV[4] - redis.call('HGET', KEYS[1], 'count') - } -end - -return {reset(), ARGV[2] + ARGV[3], ARGV[4] - 1} -LUA; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php deleted file mode 100644 index 096e50c7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php +++ /dev/null @@ -1,122 +0,0 @@ -name = $name; - $this->connection = $connection; - } - - /** - * Set the maximum number of locks that can obtained per time window. - * - * @param int $maxLocks - * @return $this - */ - public function allow($maxLocks) - { - $this->maxLocks = $maxLocks; - - return $this; - } - - /** - * Set the amount of time the lock window is maintained. - * - * @param int $decay - * @return $this - */ - public function every($decay) - { - $this->decay = $this->secondsUntil($decay); - - return $this; - } - - /** - * Set the amount of time to block until a lock is available. - * - * @param int $timeout - * @return $this - */ - public function block($timeout) - { - $this->timeout = $timeout; - - return $this; - } - - /** - * Execute the given callback if a lock is obtained, otherwise call the failure callback. - * - * @param callable $callback - * @param callable|null $failure - * @return mixed - * - * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException - */ - public function then(callable $callback, callable $failure = null) - { - try { - return (new DurationLimiter( - $this->connection, $this->name, $this->maxLocks, $this->decay - ))->block($this->timeout, $callback); - } catch (LimiterTimeoutException $e) { - if ($failure) { - return $failure($e); - } - - throw $e; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php b/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php deleted file mode 100644 index 3217916d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php +++ /dev/null @@ -1,142 +0,0 @@ -driver = $driver; - $this->config = $config; - } - - /** - * Get a Redis connection by name. - * - * @param string|null $name - * @return \Illuminate\Redis\Connections\Connection - */ - public function connection($name = null) - { - $name = $name ?: 'default'; - - if (isset($this->connections[$name])) { - return $this->connections[$name]; - } - - return $this->connections[$name] = $this->resolve($name); - } - - /** - * Resolve the given connection by name. - * - * @param string|null $name - * @return \Illuminate\Redis\Connections\Connection - * - * @throws \InvalidArgumentException - */ - public function resolve($name = null) - { - $name = $name ?: 'default'; - - $options = $this->config['options'] ?? []; - - if (isset($this->config[$name])) { - return $this->connector()->connect($this->config[$name], $options); - } - - if (isset($this->config['clusters'][$name])) { - return $this->resolveCluster($name); - } - - throw new InvalidArgumentException( - "Redis connection [{$name}] not configured." - ); - } - - /** - * Resolve the given cluster connection by name. - * - * @param string $name - * @return \Illuminate\Redis\Connections\Connection - */ - protected function resolveCluster($name) - { - $clusterOptions = $this->config['clusters']['options'] ?? []; - - return $this->connector()->connectToCluster( - $this->config['clusters'][$name], $clusterOptions, $this->config['options'] ?? [] - ); - } - - /** - * Get the connector instance for the current driver. - * - * @return \Illuminate\Redis\Connectors\PhpRedisConnector|\Illuminate\Redis\Connectors\PredisConnector - */ - protected function connector() - { - switch ($this->driver) { - case 'predis': - return new Connectors\PredisConnector; - case 'phpredis': - return new Connectors\PhpRedisConnector; - } - } - - /** - * Return all of the created connections. - * - * @return array - */ - public function connections() - { - return $this->connections; - } - - /** - * Pass methods onto the default Redis connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->connection()->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php deleted file mode 100755 index 20d78e60..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php +++ /dev/null @@ -1,44 +0,0 @@ -app->singleton('redis', function ($app) { - $config = $app->make('config')->get('database.redis'); - - return new RedisManager(Arr::pull($config, 'client', 'predis'), $config); - }); - - $this->app->bind('redis.connection', function ($app) { - return $app['redis']->connection(); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['redis', 'redis.connection']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/composer.json b/vendor/laravel/framework/src/Illuminate/Redis/composer.json deleted file mode 100755 index 741a13ed..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/redis", - "description": "The Illuminate Redis package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*", - "predis/predis": "~1.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Redis\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php deleted file mode 100755 index 4ce15afd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php +++ /dev/null @@ -1,172 +0,0 @@ -option('parent')) { - return __DIR__.'/stubs/controller.nested.stub'; - } elseif ($this->option('model')) { - return __DIR__.'/stubs/controller.model.stub'; - } elseif ($this->option('resource')) { - return __DIR__.'/stubs/controller.stub'; - } - - return __DIR__.'/stubs/controller.plain.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Http\Controllers'; - } - - /** - * Build the class with the given name. - * - * Remove the base controller import if we are already in base namespace. - * - * @param string $name - * @return string - */ - protected function buildClass($name) - { - $controllerNamespace = $this->getNamespace($name); - - $replace = []; - - if ($this->option('parent')) { - $replace = $this->buildParentReplacements(); - } - - if ($this->option('model')) { - $replace = $this->buildModelReplacements($replace); - } - - $replace["use {$controllerNamespace}\Controller;\n"] = ''; - - return str_replace( - array_keys($replace), array_values($replace), parent::buildClass($name) - ); - } - - /** - * Build the replacements for a parent controller. - * - * @return array - */ - protected function buildParentReplacements() - { - $parentModelClass = $this->parseModel($this->option('parent')); - - if (! class_exists($parentModelClass)) { - if ($this->confirm("A {$parentModelClass} model does not exist. Do you want to generate it?", true)) { - $this->call('make:model', ['name' => $parentModelClass]); - } - } - - return [ - 'ParentDummyFullModelClass' => $parentModelClass, - 'ParentDummyModelClass' => class_basename($parentModelClass), - 'ParentDummyModelVariable' => lcfirst(class_basename($parentModelClass)), - ]; - } - - /** - * Build the model replacement values. - * - * @param array $replace - * @return array - */ - protected function buildModelReplacements(array $replace) - { - $modelClass = $this->parseModel($this->option('model')); - - if (! class_exists($modelClass)) { - if ($this->confirm("A {$modelClass} model does not exist. Do you want to generate it?", true)) { - $this->call('make:model', ['name' => $modelClass]); - } - } - - return array_merge($replace, [ - 'DummyFullModelClass' => $modelClass, - 'DummyModelClass' => class_basename($modelClass), - 'DummyModelVariable' => lcfirst(class_basename($modelClass)), - ]); - } - - /** - * Get the fully-qualified model class name. - * - * @param string $model - * @return string - */ - protected function parseModel($model) - { - if (preg_match('([^A-Za-z0-9_/\\\\])', $model)) { - throw new InvalidArgumentException('Model name contains invalid characters.'); - } - - $model = trim(str_replace('/', '\\', $model), '\\'); - - if (! Str::startsWith($model, $rootNamespace = $this->laravel->getNamespace())) { - $model = $rootNamespace.$model; - } - - return $model; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['model', 'm', InputOption::VALUE_OPTIONAL, 'Generate a resource controller for the given model.'], - - ['resource', 'r', InputOption::VALUE_NONE, 'Generate a resource controller class.'], - - ['parent', 'p', InputOption::VALUE_OPTIONAL, 'Generate a nested resource controller class.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php deleted file mode 100644 index e41813d3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php +++ /dev/null @@ -1,50 +0,0 @@ -middleware[] = [ - 'middleware' => $m, - 'options' => &$options, - ]; - } - - return new ControllerMiddlewareOptions($options); - } - - /** - * Get the middleware assigned to the controller. - * - * @return array - */ - public function getMiddleware() - { - return $this->middleware; - } - - /** - * Execute an action on the controller. - * - * @param string $method - * @param array $parameters - * @return \Symfony\Component\HttpFoundation\Response - */ - public function callAction($method, $parameters) - { - return call_user_func_array([$this, $method], $parameters); - } - - /** - * Handle calls to missing methods on the controller. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php b/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php deleted file mode 100644 index 673a333f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php +++ /dev/null @@ -1,81 +0,0 @@ -container = $container; - } - - /** - * Dispatch a request to a given controller and method. - * - * @param \Illuminate\Routing\Route $route - * @param mixed $controller - * @param string $method - * @return mixed - */ - public function dispatch(Route $route, $controller, $method) - { - $parameters = $this->resolveClassMethodDependencies( - $route->parametersWithoutNulls(), $controller, $method - ); - - if (method_exists($controller, 'callAction')) { - return $controller->callAction($method, $parameters); - } - - return $controller->{$method}(...array_values($parameters)); - } - - /** - * Get the middleware for the controller instance. - * - * @param \Illuminate\Routing\Controller $controller - * @param string $method - * @return array - */ - public function getMiddleware($controller, $method) - { - if (! method_exists($controller, 'getMiddleware')) { - return []; - } - - return collect($controller->getMiddleware())->reject(function ($data) use ($method) { - return static::methodExcludedByOptions($method, $data['options']); - })->pluck('middleware')->all(); - } - - /** - * Determine if the given options exclude a particular method. - * - * @param string $method - * @param array $options - * @return bool - */ - protected static function methodExcludedByOptions($method, array $options) - { - return (isset($options['only']) && ! in_array($method, (array) $options['only'])) || - (! empty($options['except']) && in_array($method, (array) $options['except'])); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php b/vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php deleted file mode 100644 index 13ef1898..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php +++ /dev/null @@ -1,50 +0,0 @@ -options = &$options; - } - - /** - * Set the controller methods the middleware should apply to. - * - * @param array|string|dynamic $methods - * @return $this - */ - public function only($methods) - { - $this->options['only'] = is_array($methods) ? $methods : func_get_args(); - - return $this; - } - - /** - * Set the controller methods the middleware should exclude. - * - * @param array|string|dynamic $methods - * @return $this - */ - public function except($methods) - { - $this->options['except'] = is_array($methods) ? $methods : func_get_args(); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php b/vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php deleted file mode 100644 index c8486071..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php +++ /dev/null @@ -1,33 +0,0 @@ -route = $route; - $this->request = $request; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php b/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php deleted file mode 100644 index 1853b2af..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php +++ /dev/null @@ -1,19 +0,0 @@ -getName()}] [URI: {$route->uri()}]."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php b/vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php deleted file mode 100644 index 1f52fc16..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php +++ /dev/null @@ -1,60 +0,0 @@ -parameters(); - - foreach ($route->signatureParameters(UrlRoutable::class) as $parameter) { - if (! $parameterName = static::getParameterName($parameter->name, $parameters)) { - continue; - } - - $parameterValue = $parameters[$parameterName]; - - if ($parameterValue instanceof UrlRoutable) { - continue; - } - - $instance = $container->make($parameter->getClass()->name); - - if (! $model = $instance->resolveRouteBinding($parameterValue)) { - throw (new ModelNotFoundException)->setModel(get_class($instance)); - } - - $route->setParameter($parameterName, $model); - } - } - - /** - * Return the parameter name if it exists in the given parameters. - * - * @param string $name - * @param array $parameters - * @return string|null - */ - protected static function getParameterName($name, $parameters) - { - if (array_key_exists($name, $parameters)) { - return $name; - } - - if (array_key_exists($snakedName = Str::snake($name), $parameters)) { - return $snakedName; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php deleted file mode 100644 index 76f9d878..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php +++ /dev/null @@ -1,25 +0,0 @@ -getCompiled()->getHostRegex())) { - return true; - } - - return preg_match($route->getCompiled()->getHostRegex(), $request->getHost()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php deleted file mode 100644 index f9cf155d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php +++ /dev/null @@ -1,21 +0,0 @@ -getMethod(), $route->methods()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php deleted file mode 100644 index fd5d5af8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php +++ /dev/null @@ -1,27 +0,0 @@ -httpOnly()) { - return ! $request->secure(); - } elseif ($route->secure()) { - return $request->secure(); - } - - return true; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php deleted file mode 100644 index 6a54d129..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php +++ /dev/null @@ -1,23 +0,0 @@ -path() == '/' ? '/' : '/'.$request->path(); - - return preg_match($route->getCompiled()->getRegex(), rawurldecode($path)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php deleted file mode 100644 index 0f178f13..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php +++ /dev/null @@ -1,18 +0,0 @@ -router = $router; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - $this->router->substituteBindings($route = $request->route()); - - $this->router->substituteImplicitBindings($route); - - return $next($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php deleted file mode 100644 index a448ced1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php +++ /dev/null @@ -1,193 +0,0 @@ -limiter = $limiter; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param int|string $maxAttempts - * @param float|int $decayMinutes - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - */ - public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1) - { - $key = $this->resolveRequestSignature($request); - - $maxAttempts = $this->resolveMaxAttempts($request, $maxAttempts); - - if ($this->limiter->tooManyAttempts($key, $maxAttempts, $decayMinutes)) { - throw $this->buildException($key, $maxAttempts); - } - - $this->limiter->hit($key, $decayMinutes); - - $response = $next($request); - - return $this->addHeaders( - $response, $maxAttempts, - $this->calculateRemainingAttempts($key, $maxAttempts) - ); - } - - /** - * Resolve the number of attempts if the user is authenticated or not. - * - * @param \Illuminate\Http\Request $request - * @param int|string $maxAttempts - * @return int - */ - protected function resolveMaxAttempts($request, $maxAttempts) - { - if (Str::contains($maxAttempts, '|')) { - $maxAttempts = explode('|', $maxAttempts, 2)[$request->user() ? 1 : 0]; - } - - return (int) $maxAttempts; - } - - /** - * Resolve request signature. - * - * @param \Illuminate\Http\Request $request - * @return string - * @throws \RuntimeException - */ - protected function resolveRequestSignature($request) - { - if ($user = $request->user()) { - return sha1($user->getAuthIdentifier()); - } - - if ($route = $request->route()) { - return sha1($route->getDomain().'|'.$request->ip()); - } - - throw new RuntimeException( - 'Unable to generate the request signature. Route unavailable.' - ); - } - - /** - * Create a 'too many attempts' exception. - * - * @param string $key - * @param int $maxAttempts - * @return \Symfony\Component\HttpKernel\Exception\HttpException - */ - protected function buildException($key, $maxAttempts) - { - $retryAfter = $this->getTimeUntilNextRetry($key); - - $headers = $this->getHeaders( - $maxAttempts, - $this->calculateRemainingAttempts($key, $maxAttempts, $retryAfter), - $retryAfter - ); - - return new HttpException( - 429, 'Too Many Attempts.', null, $headers - ); - } - - /** - * Get the number of seconds until the next retry. - * - * @param string $key - * @return int - */ - protected function getTimeUntilNextRetry($key) - { - return $this->limiter->availableIn($key); - } - - /** - * Add the limit header information to the given response. - * - * @param \Symfony\Component\HttpFoundation\Response $response - * @param int $maxAttempts - * @param int $remainingAttempts - * @param int|null $retryAfter - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function addHeaders(Response $response, $maxAttempts, $remainingAttempts, $retryAfter = null) - { - $response->headers->add( - $this->getHeaders($maxAttempts, $remainingAttempts, $retryAfter) - ); - - return $response; - } - - /** - * Get the limit headers information. - * - * @param int $maxAttempts - * @param int $remainingAttempts - * @param int|null $retryAfter - * @return array - */ - protected function getHeaders($maxAttempts, $remainingAttempts, $retryAfter = null) - { - $headers = [ - 'X-RateLimit-Limit' => $maxAttempts, - 'X-RateLimit-Remaining' => $remainingAttempts, - ]; - - if (! is_null($retryAfter)) { - $headers['Retry-After'] = $retryAfter; - $headers['X-RateLimit-Reset'] = $this->availableAt($retryAfter); - } - - return $headers; - } - - /** - * Calculate the number of remaining attempts. - * - * @param string $key - * @param int $maxAttempts - * @param int|null $retryAfter - * @return int - */ - protected function calculateRemainingAttempts($key, $maxAttempts, $retryAfter = null) - { - if (is_null($retryAfter)) { - return $this->limiter->retriesLeft($key, $maxAttempts); - } - - return 0; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php deleted file mode 100644 index c6f3ff60..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php +++ /dev/null @@ -1,119 +0,0 @@ -redis = $redis; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param int|string $maxAttempts - * @param float|int $decayMinutes - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - */ - public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1) - { - $key = $this->resolveRequestSignature($request); - - $maxAttempts = $this->resolveMaxAttempts($request, $maxAttempts); - - if ($this->tooManyAttempts($key, $maxAttempts, $decayMinutes)) { - throw $this->buildException($key, $maxAttempts); - } - - $response = $next($request); - - return $this->addHeaders( - $response, $maxAttempts, - $this->calculateRemainingAttempts($key, $maxAttempts) - ); - } - - /** - * Determine if the given key has been "accessed" too many times. - * - * @param string $key - * @param int $maxAttempts - * @param int $decayMinutes - * @return mixed - */ - protected function tooManyAttempts($key, $maxAttempts, $decayMinutes) - { - $limiter = new DurationLimiter( - $this->redis, $key, $maxAttempts, $decayMinutes * 60 - ); - - return tap(! $limiter->acquire(), function () use ($limiter) { - list($this->decaysAt, $this->remaining) = [ - $limiter->decaysAt, $limiter->remaining, - ]; - }); - } - - /** - * Calculate the number of remaining attempts. - * - * @param string $key - * @param int $maxAttempts - * @param int|null $retryAfter - * @return int - */ - protected function calculateRemainingAttempts($key, $maxAttempts, $retryAfter = null) - { - if (is_null($retryAfter)) { - return $this->remaining; - } - - return 0; - } - - /** - * Get the number of seconds until the lock is released. - * - * @param string $key - * @return int - */ - protected function getTimeUntilNextRetry($key) - { - return $this->decaysAt - $this->currentTime(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php b/vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php deleted file mode 100644 index ad67b46c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php +++ /dev/null @@ -1,85 +0,0 @@ -name = $name; - $this->options = $options; - $this->registrar = $registrar; - $this->controller = $controller; - } - - /** - * Set the methods the controller should apply to. - * - * @param array|string|dynamic $methods - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function only($methods) - { - $this->options['only'] = is_array($methods) ? $methods : func_get_args(); - - return $this; - } - - /** - * Set the methods the controller should exclude. - * - * @param array|string|dynamic $methods - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function except($methods) - { - $this->options['except'] = is_array($methods) ? $methods : func_get_args(); - - return $this; - } - - /** - * Set the route names for controller actions. - * - * @param array|string $names - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function names($names) - { - $this->options['names'] = $names; - - return $this; - } - - /** - * Set the route name for a controller action. - * - * @param string $method - * @param string $name - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function name($method, $name) - { - $this->options['names'][$method] = $name; - - return $this; - } - - /** - * Override the route parameter names. - * - * @param array|string $parameters - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function parameters($parameters) - { - $this->options['parameters'] = $parameters; - - return $this; - } - - /** - * Override a route parameter's name. - * - * @param string $previous - * @param string $new - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function parameter($previous, $new) - { - $this->options['parameters'][$previous] = $new; - - return $this; - } - - /** - * Set a middleware to the resource. - * - * @param mixed $middleware - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function middleware($middleware) - { - $this->options['middleware'] = $middleware; - - return $this; - } - - /** - * Handle the object's destruction. - * - * @return void - */ - public function __destruct() - { - $this->registrar->register($this->name, $this->controller, $this->options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php b/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php deleted file mode 100644 index 17a7d8f2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php +++ /dev/null @@ -1,91 +0,0 @@ -handleException($passable, $e); - } catch (Throwable $e) { - return $this->handleException($passable, new FatalThrowableError($e)); - } - }; - } - - /** - * Get a Closure that represents a slice of the application onion. - * - * @return \Closure - */ - protected function carry() - { - return function ($stack, $pipe) { - return function ($passable) use ($stack, $pipe) { - try { - $slice = parent::carry(); - - $callable = $slice($stack, $pipe); - - return $callable($passable); - } catch (Exception $e) { - return $this->handleException($passable, $e); - } catch (Throwable $e) { - return $this->handleException($passable, new FatalThrowableError($e)); - } - }; - }; - } - - /** - * Handle the given exception. - * - * @param mixed $passable - * @param \Exception $e - * @return mixed - * - * @throws \Exception - */ - protected function handleException($passable, Exception $e) - { - if (! $this->container->bound(ExceptionHandler::class) || - ! $passable instanceof Request) { - throw $e; - } - - $handler = $this->container->make(ExceptionHandler::class); - - $handler->report($e); - - $response = $handler->render($passable, $e); - - if (method_exists($response, 'withException')) { - $response->withException($e); - } - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php b/vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php deleted file mode 100644 index 82dbf337..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php +++ /dev/null @@ -1,21 +0,0 @@ -generator = $generator; - } - - /** - * Create a new redirect response to the "home" route. - * - * @param int $status - * @return \Illuminate\Http\RedirectResponse - */ - public function home($status = 302) - { - return $this->to($this->generator->route('home'), $status); - } - - /** - * Create a new redirect response to the previous location. - * - * @param int $status - * @param array $headers - * @param mixed $fallback - * @return \Illuminate\Http\RedirectResponse - */ - public function back($status = 302, $headers = [], $fallback = false) - { - return $this->createRedirect($this->generator->previous($fallback), $status, $headers); - } - - /** - * Create a new redirect response to the current URI. - * - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function refresh($status = 302, $headers = []) - { - return $this->to($this->generator->getRequest()->path(), $status, $headers); - } - - /** - * Create a new redirect response, while putting the current URL in the session. - * - * @param string $path - * @param int $status - * @param array $headers - * @param bool $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function guest($path, $status = 302, $headers = [], $secure = null) - { - $this->session->put('url.intended', $this->generator->full()); - - return $this->to($path, $status, $headers, $secure); - } - - /** - * Create a new redirect response to the previously intended location. - * - * @param string $default - * @param int $status - * @param array $headers - * @param bool $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function intended($default = '/', $status = 302, $headers = [], $secure = null) - { - $path = $this->session->pull('url.intended', $default); - - return $this->to($path, $status, $headers, $secure); - } - - /** - * Create a new redirect response to the given path. - * - * @param string $path - * @param int $status - * @param array $headers - * @param bool $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function to($path, $status = 302, $headers = [], $secure = null) - { - return $this->createRedirect($this->generator->to($path, [], $secure), $status, $headers); - } - - /** - * Create a new redirect response to an external URL (no validation). - * - * @param string $path - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function away($path, $status = 302, $headers = []) - { - return $this->createRedirect($path, $status, $headers); - } - - /** - * Create a new redirect response to the given HTTPS path. - * - * @param string $path - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function secure($path, $status = 302, $headers = []) - { - return $this->to($path, $status, $headers, true); - } - - /** - * Create a new redirect response to a named route. - * - * @param string $route - * @param array $parameters - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function route($route, $parameters = [], $status = 302, $headers = []) - { - return $this->to($this->generator->route($route, $parameters), $status, $headers); - } - - /** - * Create a new redirect response to a controller action. - * - * @param string $action - * @param array $parameters - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function action($action, $parameters = [], $status = 302, $headers = []) - { - return $this->to($this->generator->action($action, $parameters), $status, $headers); - } - - /** - * Create a new redirect response. - * - * @param string $path - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - protected function createRedirect($path, $status, $headers) - { - return tap(new RedirectResponse($path, $status, $headers), function ($redirect) { - if (isset($this->session)) { - $redirect->setSession($this->session); - } - - $redirect->setRequest($this->generator->getRequest()); - }); - } - - /** - * Get the URL generator instance. - * - * @return \Illuminate\Routing\UrlGenerator - */ - public function getUrlGenerator() - { - return $this->generator; - } - - /** - * Set the active session store. - * - * @param \Illuminate\Session\Store $session - * @return void - */ - public function setSession(SessionStore $session) - { - $this->session = $session; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php b/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php deleted file mode 100644 index 5209e9e9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php +++ /dev/null @@ -1,440 +0,0 @@ - 'create', - 'edit' => 'edit', - ]; - - /** - * Create a new resource registrar instance. - * - * @param \Illuminate\Routing\Router $router - * @return void - */ - public function __construct(Router $router) - { - $this->router = $router; - } - - /** - * Route a resource to a controller. - * - * @param string $name - * @param string $controller - * @param array $options - * @return void - */ - public function register($name, $controller, array $options = []) - { - if (isset($options['parameters']) && ! isset($this->parameters)) { - $this->parameters = $options['parameters']; - } - - // If the resource name contains a slash, we will assume the developer wishes to - // register these resource routes with a prefix so we will set that up out of - // the box so they don't have to mess with it. Otherwise, we will continue. - if (Str::contains($name, '/')) { - $this->prefixedResource($name, $controller, $options); - - return; - } - - // We need to extract the base resource from the resource name. Nested resources - // are supported in the framework, but we need to know what name to use for a - // place-holder on the route parameters, which should be the base resources. - $base = $this->getResourceWildcard(last(explode('.', $name))); - - $defaults = $this->resourceDefaults; - - foreach ($this->getResourceMethods($defaults, $options) as $m) { - $this->{'addResource'.ucfirst($m)}($name, $base, $controller, $options); - } - } - - /** - * Build a set of prefixed resource routes. - * - * @param string $name - * @param string $controller - * @param array $options - * @return void - */ - protected function prefixedResource($name, $controller, array $options) - { - list($name, $prefix) = $this->getResourcePrefix($name); - - // We need to extract the base resource from the resource name. Nested resources - // are supported in the framework, but we need to know what name to use for a - // place-holder on the route parameters, which should be the base resources. - $callback = function ($me) use ($name, $controller, $options) { - $me->resource($name, $controller, $options); - }; - - return $this->router->group(compact('prefix'), $callback); - } - - /** - * Extract the resource and prefix from a resource name. - * - * @param string $name - * @return array - */ - protected function getResourcePrefix($name) - { - $segments = explode('/', $name); - - // To get the prefix, we will take all of the name segments and implode them on - // a slash. This will generate a proper URI prefix for us. Then we take this - // last segment, which will be considered the final resources name we use. - $prefix = implode('/', array_slice($segments, 0, -1)); - - return [end($segments), $prefix]; - } - - /** - * Get the applicable resource methods. - * - * @param array $defaults - * @param array $options - * @return array - */ - protected function getResourceMethods($defaults, $options) - { - if (isset($options['only'])) { - return array_intersect($defaults, (array) $options['only']); - } elseif (isset($options['except'])) { - return array_diff($defaults, (array) $options['except']); - } - - return $defaults; - } - - /** - * Add the index method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceIndex($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name); - - $action = $this->getResourceAction($name, $controller, 'index', $options); - - return $this->router->get($uri, $action); - } - - /** - * Add the create method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceCreate($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/'.static::$verbs['create']; - - $action = $this->getResourceAction($name, $controller, 'create', $options); - - return $this->router->get($uri, $action); - } - - /** - * Add the store method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceStore($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name); - - $action = $this->getResourceAction($name, $controller, 'store', $options); - - return $this->router->post($uri, $action); - } - - /** - * Add the show method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceShow($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/{'.$base.'}'; - - $action = $this->getResourceAction($name, $controller, 'show', $options); - - return $this->router->get($uri, $action); - } - - /** - * Add the edit method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceEdit($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/{'.$base.'}/'.static::$verbs['edit']; - - $action = $this->getResourceAction($name, $controller, 'edit', $options); - - return $this->router->get($uri, $action); - } - - /** - * Add the update method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceUpdate($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/{'.$base.'}'; - - $action = $this->getResourceAction($name, $controller, 'update', $options); - - return $this->router->match(['PUT', 'PATCH'], $uri, $action); - } - - /** - * Add the destroy method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceDestroy($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/{'.$base.'}'; - - $action = $this->getResourceAction($name, $controller, 'destroy', $options); - - return $this->router->delete($uri, $action); - } - - /** - * Get the base resource URI for a given resource. - * - * @param string $resource - * @return string - */ - public function getResourceUri($resource) - { - if (! Str::contains($resource, '.')) { - return $resource; - } - - // Once we have built the base URI, we'll remove the parameter holder for this - // base resource name so that the individual route adders can suffix these - // paths however they need to, as some do not have any parameters at all. - $segments = explode('.', $resource); - - $uri = $this->getNestedResourceUri($segments); - - return str_replace('/{'.$this->getResourceWildcard(end($segments)).'}', '', $uri); - } - - /** - * Get the URI for a nested resource segment array. - * - * @param array $segments - * @return string - */ - protected function getNestedResourceUri(array $segments) - { - // We will spin through the segments and create a place-holder for each of the - // resource segments, as well as the resource itself. Then we should get an - // entire string for the resource URI that contains all nested resources. - return implode('/', array_map(function ($s) { - return $s.'/{'.$this->getResourceWildcard($s).'}'; - }, $segments)); - } - - /** - * Format a resource parameter for usage. - * - * @param string $value - * @return string - */ - public function getResourceWildcard($value) - { - if (isset($this->parameters[$value])) { - $value = $this->parameters[$value]; - } elseif (isset(static::$parameterMap[$value])) { - $value = static::$parameterMap[$value]; - } elseif ($this->parameters === 'singular' || static::$singularParameters) { - $value = Str::singular($value); - } - - return str_replace('-', '_', $value); - } - - /** - * Get the action array for a resource route. - * - * @param string $resource - * @param string $controller - * @param string $method - * @param array $options - * @return array - */ - protected function getResourceAction($resource, $controller, $method, $options) - { - $name = $this->getResourceRouteName($resource, $method, $options); - - $action = ['as' => $name, 'uses' => $controller.'@'.$method]; - - if (isset($options['middleware'])) { - $action['middleware'] = $options['middleware']; - } - - return $action; - } - - /** - * Get the name for a given resource. - * - * @param string $resource - * @param string $method - * @param array $options - * @return string - */ - protected function getResourceRouteName($resource, $method, $options) - { - $name = $resource; - - // If the names array has been provided to us we will check for an entry in the - // array first. We will also check for the specific method within this array - // so the names may be specified on a more "granular" level using methods. - if (isset($options['names'])) { - if (is_string($options['names'])) { - $name = $options['names']; - } elseif (isset($options['names'][$method])) { - return $options['names'][$method]; - } - } - - // If a global prefix has been assigned to all names for this resource, we will - // grab that so we can prepend it onto the name when we create this name for - // the resource action. Otherwise we'll just use an empty string for here. - $prefix = isset($options['as']) ? $options['as'].'.' : ''; - - return trim(sprintf('%s%s.%s', $prefix, $name, $method), '.'); - } - - /** - * Set or unset the unmapped global parameters to singular. - * - * @param bool $singular - * @return void - */ - public static function singularParameters($singular = true) - { - static::$singularParameters = (bool) $singular; - } - - /** - * Get the global parameter map. - * - * @return array - */ - public static function getParameters() - { - return static::$parameterMap; - } - - /** - * Set the global parameter mapping. - * - * @param array $parameters - * @return void - */ - public static function setParameters(array $parameters = []) - { - static::$parameterMap = $parameters; - } - - /** - * Get or set the action verbs used in the resource URIs. - * - * @param array $verbs - * @return array - */ - public static function verbs(array $verbs = []) - { - if (empty($verbs)) { - return static::$verbs; - } else { - static::$verbs = array_merge(static::$verbs, $verbs); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php b/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php deleted file mode 100644 index 0fe01512..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php +++ /dev/null @@ -1,215 +0,0 @@ -view = $view; - $this->redirector = $redirector; - } - - /** - * Return a new response from the application. - * - * @param string $content - * @param int $status - * @param array $headers - * @return \Illuminate\Http\Response - */ - public function make($content = '', $status = 200, array $headers = []) - { - return new Response($content, $status, $headers); - } - - /** - * Return a new view response from the application. - * - * @param string $view - * @param array $data - * @param int $status - * @param array $headers - * @return \Illuminate\Http\Response - */ - public function view($view, $data = [], $status = 200, array $headers = []) - { - return $this->make($this->view->make($view, $data), $status, $headers); - } - - /** - * Return a new JSON response from the application. - * - * @param mixed $data - * @param int $status - * @param array $headers - * @param int $options - * @return \Illuminate\Http\JsonResponse - */ - public function json($data = [], $status = 200, array $headers = [], $options = 0) - { - return new JsonResponse($data, $status, $headers, $options); - } - - /** - * Return a new JSONP response from the application. - * - * @param string $callback - * @param mixed $data - * @param int $status - * @param array $headers - * @param int $options - * @return \Illuminate\Http\JsonResponse - */ - public function jsonp($callback, $data = [], $status = 200, array $headers = [], $options = 0) - { - return $this->json($data, $status, $headers, $options)->setCallback($callback); - } - - /** - * Return a new streamed response from the application. - * - * @param \Closure $callback - * @param int $status - * @param array $headers - * @return \Symfony\Component\HttpFoundation\StreamedResponse - */ - public function stream($callback, $status = 200, array $headers = []) - { - return new StreamedResponse($callback, $status, $headers); - } - - /** - * Create a new file download response. - * - * @param \SplFileInfo|string $file - * @param string $name - * @param array $headers - * @param string|null $disposition - * @return \Symfony\Component\HttpFoundation\BinaryFileResponse - */ - public function download($file, $name = null, array $headers = [], $disposition = 'attachment') - { - $response = new BinaryFileResponse($file, 200, $headers, true, $disposition); - - if (! is_null($name)) { - return $response->setContentDisposition($disposition, $name, str_replace('%', '', Str::ascii($name))); - } - - return $response; - } - - /** - * Return the raw contents of a binary file. - * - * @param \SplFileInfo|string $file - * @param array $headers - * @return \Symfony\Component\HttpFoundation\BinaryFileResponse - */ - public function file($file, array $headers = []) - { - return new BinaryFileResponse($file, 200, $headers); - } - - /** - * Create a new redirect response to the given path. - * - * @param string $path - * @param int $status - * @param array $headers - * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectTo($path, $status = 302, $headers = [], $secure = null) - { - return $this->redirector->to($path, $status, $headers, $secure); - } - - /** - * Create a new redirect response to a named route. - * - * @param string $route - * @param array $parameters - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectToRoute($route, $parameters = [], $status = 302, $headers = []) - { - return $this->redirector->route($route, $parameters, $status, $headers); - } - - /** - * Create a new redirect response to a controller action. - * - * @param string $action - * @param array $parameters - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectToAction($action, $parameters = [], $status = 302, $headers = []) - { - return $this->redirector->action($action, $parameters, $status, $headers); - } - - /** - * Create a new redirect response, while putting the current URL in the session. - * - * @param string $path - * @param int $status - * @param array $headers - * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectGuest($path, $status = 302, $headers = [], $secure = null) - { - return $this->redirector->guest($path, $status, $headers, $secure); - } - - /** - * Create a new redirect response to the previously intended location. - * - * @param string $default - * @param int $status - * @param array $headers - * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null) - { - return $this->redirector->intended($default, $status, $headers, $secure); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Route.php b/vendor/laravel/framework/src/Illuminate/Routing/Route.php deleted file mode 100755 index 7725fc75..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Route.php +++ /dev/null @@ -1,898 +0,0 @@ -uri = $uri; - $this->methods = (array) $methods; - $this->action = $this->parseAction($action); - - if (in_array('GET', $this->methods) && ! in_array('HEAD', $this->methods)) { - $this->methods[] = 'HEAD'; - } - - if (isset($this->action['prefix'])) { - $this->prefix($this->action['prefix']); - } - } - - /** - * Parse the route action into a standard array. - * - * @param callable|array|null $action - * @return array - * - * @throws \UnexpectedValueException - */ - protected function parseAction($action) - { - return RouteAction::parse($this->uri, $action); - } - - /** - * Run the route action and return the response. - * - * @return mixed - */ - public function run() - { - $this->container = $this->container ?: new Container; - - try { - if ($this->isControllerAction()) { - return $this->runController(); - } - - return $this->runCallable(); - } catch (HttpResponseException $e) { - return $e->getResponse(); - } - } - - /** - * Checks whether the route's action is a controller. - * - * @return bool - */ - protected function isControllerAction() - { - return is_string($this->action['uses']); - } - - /** - * Run the route action and return the response. - * - * @return mixed - */ - protected function runCallable() - { - $callable = $this->action['uses']; - - return $callable(...array_values($this->resolveMethodDependencies( - $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses']) - ))); - } - - /** - * Run the route action and return the response. - * - * @return mixed - * - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - */ - protected function runController() - { - return $this->controllerDispatcher()->dispatch( - $this, $this->getController(), $this->getControllerMethod() - ); - } - - /** - * Get the controller instance for the route. - * - * @return mixed - */ - public function getController() - { - if (! $this->controller) { - $class = $this->parseControllerCallback()[0]; - - $this->controller = $this->container->make(ltrim($class, '\\')); - } - - return $this->controller; - } - - /** - * Get the controller method used for the route. - * - * @return string - */ - protected function getControllerMethod() - { - return $this->parseControllerCallback()[1]; - } - - /** - * Parse the controller. - * - * @return array - */ - protected function parseControllerCallback() - { - return Str::parseCallback($this->action['uses']); - } - - /** - * Determine if the route matches given request. - * - * @param \Illuminate\Http\Request $request - * @param bool $includingMethod - * @return bool - */ - public function matches(Request $request, $includingMethod = true) - { - $this->compileRoute(); - - foreach ($this->getValidators() as $validator) { - if (! $includingMethod && $validator instanceof MethodValidator) { - continue; - } - - if (! $validator->matches($this, $request)) { - return false; - } - } - - return true; - } - - /** - * Compile the route into a Symfony CompiledRoute instance. - * - * @return \Symfony\Component\Routing\CompiledRoute - */ - protected function compileRoute() - { - if (! $this->compiled) { - $this->compiled = (new RouteCompiler($this))->compile(); - } - - return $this->compiled; - } - - /** - * Bind the route to a given request for execution. - * - * @param \Illuminate\Http\Request $request - * @return $this - */ - public function bind(Request $request) - { - $this->compileRoute(); - - $this->parameters = (new RouteParameterBinder($this)) - ->parameters($request); - - return $this; - } - - /** - * Determine if the route has parameters. - * - * @return bool - */ - public function hasParameters() - { - return isset($this->parameters); - } - - /** - * Determine a given parameter exists from the route. - * - * @param string $name - * @return bool - */ - public function hasParameter($name) - { - if ($this->hasParameters()) { - return array_key_exists($name, $this->parameters()); - } - - return false; - } - - /** - * Get a given parameter from the route. - * - * @param string $name - * @param mixed $default - * @return string|object - */ - public function parameter($name, $default = null) - { - return Arr::get($this->parameters(), $name, $default); - } - - /** - * Set a parameter to the given value. - * - * @param string $name - * @param mixed $value - * @return void - */ - public function setParameter($name, $value) - { - $this->parameters(); - - $this->parameters[$name] = $value; - } - - /** - * Unset a parameter on the route if it is set. - * - * @param string $name - * @return void - */ - public function forgetParameter($name) - { - $this->parameters(); - - unset($this->parameters[$name]); - } - - /** - * Get the key / value list of parameters for the route. - * - * @return array - * - * @throws \LogicException - */ - public function parameters() - { - if (isset($this->parameters)) { - return $this->parameters; - } - - throw new LogicException('Route is not bound.'); - } - - /** - * Get the key / value list of parameters without null values. - * - * @return array - */ - public function parametersWithoutNulls() - { - return array_filter($this->parameters(), function ($p) { - return ! is_null($p); - }); - } - - /** - * Get all of the parameter names for the route. - * - * @return array - */ - public function parameterNames() - { - if (isset($this->parameterNames)) { - return $this->parameterNames; - } - - return $this->parameterNames = $this->compileParameterNames(); - } - - /** - * Get the parameter names for the route. - * - * @return array - */ - protected function compileParameterNames() - { - preg_match_all('/\{(.*?)\}/', $this->getDomain().$this->uri, $matches); - - return array_map(function ($m) { - return trim($m, '?'); - }, $matches[1]); - } - - /** - * Get the parameters that are listed in the route / controller signature. - * - * @param string|null $subClass - * @return array - */ - public function signatureParameters($subClass = null) - { - return RouteSignatureParameters::fromAction($this->action, $subClass); - } - - /** - * Set a default value for the route. - * - * @param string $key - * @param mixed $value - * @return $this - */ - public function defaults($key, $value) - { - $this->defaults[$key] = $value; - - return $this; - } - - /** - * Set a regular expression requirement on the route. - * - * @param array|string $name - * @param string $expression - * @return $this - */ - public function where($name, $expression = null) - { - foreach ($this->parseWhere($name, $expression) as $name => $expression) { - $this->wheres[$name] = $expression; - } - - return $this; - } - - /** - * Parse arguments to the where method into an array. - * - * @param array|string $name - * @param string $expression - * @return array - */ - protected function parseWhere($name, $expression) - { - return is_array($name) ? $name : [$name => $expression]; - } - - /** - * Set a list of regular expression requirements on the route. - * - * @param array $wheres - * @return $this - */ - protected function whereArray(array $wheres) - { - foreach ($wheres as $name => $expression) { - $this->where($name, $expression); - } - - return $this; - } - - /** - * Mark this route as a fallback route. - * - * @return $this - */ - public function fallback() - { - $this->isFallback = true; - - return $this; - } - - /** - * Get the HTTP verbs the route responds to. - * - * @return array - */ - public function methods() - { - return $this->methods; - } - - /** - * Determine if the route only responds to HTTP requests. - * - * @return bool - */ - public function httpOnly() - { - return in_array('http', $this->action, true); - } - - /** - * Determine if the route only responds to HTTPS requests. - * - * @return bool - */ - public function httpsOnly() - { - return $this->secure(); - } - - /** - * Determine if the route only responds to HTTPS requests. - * - * @return bool - */ - public function secure() - { - return in_array('https', $this->action, true); - } - - /** - * Get or set the domain for the route. - * - * @param string|null $domain - * @return $this|string|null - */ - public function domain($domain = null) - { - if (is_null($domain)) { - return $this->getDomain(); - } - - $this->action['domain'] = $domain; - - return $this; - } - - /** - * Get the domain defined for the route. - * - * @return string|null - */ - public function getDomain() - { - return isset($this->action['domain']) - ? str_replace(['http://', 'https://'], '', $this->action['domain']) : null; - } - - /** - * Get the prefix of the route instance. - * - * @return string - */ - public function getPrefix() - { - return $this->action['prefix'] ?? null; - } - - /** - * Add a prefix to the route URI. - * - * @param string $prefix - * @return $this - */ - public function prefix($prefix) - { - $uri = rtrim($prefix, '/').'/'.ltrim($this->uri, '/'); - - $this->uri = trim($uri, '/'); - - return $this; - } - - /** - * Get the URI associated with the route. - * - * @return string - */ - public function uri() - { - return $this->uri; - } - - /** - * Set the URI that the route responds to. - * - * @param string $uri - * @return $this - */ - public function setUri($uri) - { - $this->uri = $uri; - - return $this; - } - - /** - * Get the name of the route instance. - * - * @return string - */ - public function getName() - { - return $this->action['as'] ?? null; - } - - /** - * Add or change the route name. - * - * @param string $name - * @return $this - */ - public function name($name) - { - $this->action['as'] = isset($this->action['as']) ? $this->action['as'].$name : $name; - - return $this; - } - - /** - * Determine whether the route's name matches the given patterns. - * - * @param dynamic $patterns - * @return bool - */ - public function named(...$patterns) - { - if (is_null($routeName = $this->getName())) { - return false; - } - - foreach ($patterns as $pattern) { - if (Str::is($pattern, $routeName)) { - return true; - } - } - - return false; - } - - /** - * Set the handler for the route. - * - * @param \Closure|string $action - * @return $this - */ - public function uses($action) - { - $action = is_string($action) ? $this->addGroupNamespaceToStringUses($action) : $action; - - return $this->setAction(array_merge($this->action, $this->parseAction([ - 'uses' => $action, - 'controller' => $action, - ]))); - } - - /** - * Parse a string based action for the "uses" fluent method. - * - * @param string $action - * @return string - */ - protected function addGroupNamespaceToStringUses($action) - { - $groupStack = last($this->router->getGroupStack()); - - if (isset($groupStack['namespace']) && strpos($action, '\\') !== 0) { - return $groupStack['namespace'].'\\'.$action; - } - - return $action; - } - - /** - * Get the action name for the route. - * - * @return string - */ - public function getActionName() - { - return $this->action['controller'] ?? 'Closure'; - } - - /** - * Get the method name of the route action. - * - * @return string - */ - public function getActionMethod() - { - return Arr::last(explode('@', $this->getActionName())); - } - - /** - * Get the action array or one of its properties for the route. - * - * @param string|null $key - * @return mixed - */ - public function getAction($key = null) - { - return Arr::get($this->action, $key); - } - - /** - * Set the action array for the route. - * - * @param array $action - * @return $this - */ - public function setAction(array $action) - { - $this->action = $action; - - return $this; - } - - /** - * Get all middleware, including the ones from the controller. - * - * @return array - */ - public function gatherMiddleware() - { - if (! is_null($this->computedMiddleware)) { - return $this->computedMiddleware; - } - - $this->computedMiddleware = []; - - return $this->computedMiddleware = array_unique(array_merge( - $this->middleware(), $this->controllerMiddleware() - ), SORT_REGULAR); - } - - /** - * Get or set the middlewares attached to the route. - * - * @param array|string|null $middleware - * @return $this|array - */ - public function middleware($middleware = null) - { - if (is_null($middleware)) { - return (array) ($this->action['middleware'] ?? []); - } - - if (is_string($middleware)) { - $middleware = func_get_args(); - } - - $this->action['middleware'] = array_merge( - (array) ($this->action['middleware'] ?? []), $middleware - ); - - return $this; - } - - /** - * Get the middleware for the route's controller. - * - * @return array - */ - public function controllerMiddleware() - { - if (! $this->isControllerAction()) { - return []; - } - - return $this->controllerDispatcher()->getMiddleware( - $this->getController(), $this->getControllerMethod() - ); - } - - /** - * Get the dispatcher for the route's controller. - * - * @return \Illuminate\Routing\Contracts\ControllerDispatcher - */ - public function controllerDispatcher() - { - if ($this->container->bound(ControllerDispatcherContract::class)) { - return $this->container->make(ControllerDispatcherContract::class); - } - - return new ControllerDispatcher($this->container); - } - - /** - * Get the route validators for the instance. - * - * @return array - */ - public static function getValidators() - { - if (isset(static::$validators)) { - return static::$validators; - } - - // To match the route, we will use a chain of responsibility pattern with the - // validator implementations. We will spin through each one making sure it - // passes and then we will know if the route as a whole matches request. - return static::$validators = [ - new UriValidator, new MethodValidator, - new SchemeValidator, new HostValidator, - ]; - } - - /** - * Get the compiled version of the route. - * - * @return \Symfony\Component\Routing\CompiledRoute - */ - public function getCompiled() - { - return $this->compiled; - } - - /** - * Set the router instance on the route. - * - * @param \Illuminate\Routing\Router $router - * @return $this - */ - public function setRouter(Router $router) - { - $this->router = $router; - - return $this; - } - - /** - * Set the container instance on the route. - * - * @param \Illuminate\Container\Container $container - * @return $this - */ - public function setContainer(Container $container) - { - $this->container = $container; - - return $this; - } - - /** - * Prepare the route instance for serialization. - * - * @return void - * - * @throws \LogicException - */ - public function prepareForSerialization() - { - if ($this->action['uses'] instanceof Closure) { - throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure."); - } - - $this->compileRoute(); - - unset($this->router, $this->container); - } - - /** - * Dynamically access route parameters. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->parameter($key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php deleted file mode 100644 index 678806ba..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php +++ /dev/null @@ -1,89 +0,0 @@ - $action]; - } - - // If no "uses" property has been set, we will dig through the array to find a - // Closure instance within this list. We will set the first Closure we come - // across into the "uses" property that will get fired off by this route. - elseif (! isset($action['uses'])) { - $action['uses'] = static::findCallable($action); - } - - if (is_string($action['uses']) && ! Str::contains($action['uses'], '@')) { - $action['uses'] = static::makeInvokable($action['uses']); - } - - return $action; - } - - /** - * Get an action for a route that has no action. - * - * @param string $uri - * @return array - */ - protected static function missingAction($uri) - { - return ['uses' => function () use ($uri) { - throw new LogicException("Route for [{$uri}] has no action."); - }]; - } - - /** - * Find the callable in an action array. - * - * @param array $action - * @return callable - */ - protected static function findCallable(array $action) - { - return Arr::first($action, function ($value, $key) { - return is_callable($value) && is_numeric($key); - }); - } - - /** - * Make an action for an invokable controller. - * - * @param string $action - * @return string - */ - protected static function makeInvokable($action) - { - if (! method_exists($action, '__invoke')) { - throw new UnexpectedValueException("Invalid route action: [{$action}]."); - } - - return $action.'@__invoke'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php deleted file mode 100644 index 51053199..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php +++ /dev/null @@ -1,82 +0,0 @@ -make($class), $method]; - - return call_user_func($callable, $value, $route); - }; - } - - /** - * Create a Route model binding for a model. - * - * @param \Illuminate\Container\Container $container - * @param string $class - * @param \Closure|null $callback - * @return \Closure - */ - public static function forModel($container, $class, $callback = null) - { - return function ($value) use ($container, $class, $callback) { - if (is_null($value)) { - return; - } - - // For model binders, we will attempt to retrieve the models using the first - // method on the model instance. If we cannot retrieve the models we'll - // throw a not found exception otherwise we will return the instance. - $instance = $container->make($class); - - if ($model = $instance->resolveRouteBinding($value)) { - return $model; - } - - // If a callback was supplied to the method we will call that to determine - // what we should do when the model is not found. This just gives these - // developer a little greater flexibility to decide what will happen. - if ($callback instanceof Closure) { - return call_user_func($callback, $value); - } - - throw (new ModelNotFoundException)->setModel($class); - }; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php deleted file mode 100644 index f2338527..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php +++ /dev/null @@ -1,351 +0,0 @@ -addToCollections($route); - - $this->addLookups($route); - - return $route; - } - - /** - * Add the given route to the arrays of routes. - * - * @param \Illuminate\Routing\Route $route - * @return void - */ - protected function addToCollections($route) - { - $domainAndUri = $route->getDomain().$route->uri(); - - foreach ($route->methods() as $method) { - $this->routes[$method][$domainAndUri] = $route; - } - - $this->allRoutes[$method.$domainAndUri] = $route; - } - - /** - * Add the route to any look-up tables if necessary. - * - * @param \Illuminate\Routing\Route $route - * @return void - */ - protected function addLookups($route) - { - // If the route has a name, we will add it to the name look-up table so that we - // will quickly be able to find any route associate with a name and not have - // to iterate through every route every time we need to perform a look-up. - $action = $route->getAction(); - - if (isset($action['as'])) { - $this->nameList[$action['as']] = $route; - } - - // When the route is routing to a controller we will also store the action that - // is used by the route. This will let us reverse route to controllers while - // processing a request and easily generate URLs to the given controllers. - if (isset($action['controller'])) { - $this->addToActionList($action, $route); - } - } - - /** - * Add a route to the controller action dictionary. - * - * @param array $action - * @param \Illuminate\Routing\Route $route - * @return void - */ - protected function addToActionList($action, $route) - { - $this->actionList[trim($action['controller'], '\\')] = $route; - } - - /** - * Refresh the name look-up table. - * - * This is done in case any names are fluently defined or if routes are overwritten. - * - * @return void - */ - public function refreshNameLookups() - { - $this->nameList = []; - - foreach ($this->allRoutes as $route) { - if ($route->getName()) { - $this->nameList[$route->getName()] = $route; - } - } - } - - /** - * Refresh the action look-up table. - * - * This is done in case any actions are overwritten with new controllers. - * - * @return void - */ - public function refreshActionLookups() - { - $this->actionList = []; - - foreach ($this->allRoutes as $route) { - if (isset($route->getAction()['controller'])) { - $this->addToActionList($route->getAction(), $route); - } - } - } - - /** - * Find the first route matching a given request. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Routing\Route - * - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - */ - public function match(Request $request) - { - $routes = $this->get($request->getMethod()); - - // First, we will see if we can find a matching route for this current request - // method. If we can, great, we can just return it so that it can be called - // by the consumer. Otherwise we will check for routes with another verb. - $route = $this->matchAgainstRoutes($routes, $request); - - if (! is_null($route)) { - return $route->bind($request); - } - - // If no route was found we will now check if a matching route is specified by - // another HTTP verb. If it is we will need to throw a MethodNotAllowed and - // inform the user agent of which HTTP verb it should use for this route. - $others = $this->checkForAlternateVerbs($request); - - if (count($others) > 0) { - return $this->getRouteForMethods($request, $others); - } - - throw new NotFoundHttpException; - } - - /** - * Determine if a route in the array matches the request. - * - * @param array $routes - * @param \Illuminate\http\Request $request - * @param bool $includingMethod - * @return \Illuminate\Routing\Route|null - */ - protected function matchAgainstRoutes(array $routes, $request, $includingMethod = true) - { - list($fallbacks, $routes) = collect($routes)->partition(function ($route) { - return $route->isFallback; - }); - - return $routes->merge($fallbacks)->first(function ($value) use ($request, $includingMethod) { - return $value->matches($request, $includingMethod); - }); - } - - /** - * Determine if any routes match on another HTTP verb. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function checkForAlternateVerbs($request) - { - $methods = array_diff(Router::$verbs, [$request->getMethod()]); - - // Here we will spin through all verbs except for the current request verb and - // check to see if any routes respond to them. If they do, we will return a - // proper error response with the correct headers on the response string. - $others = []; - - foreach ($methods as $method) { - if (! is_null($this->matchAgainstRoutes($this->get($method), $request, false))) { - $others[] = $method; - } - } - - return $others; - } - - /** - * Get a route (if necessary) that responds when other available methods are present. - * - * @param \Illuminate\Http\Request $request - * @param array $methods - * @return \Illuminate\Routing\Route - * - * @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException - */ - protected function getRouteForMethods($request, array $methods) - { - if ($request->method() == 'OPTIONS') { - return (new Route('OPTIONS', $request->path(), function () use ($methods) { - return new Response('', 200, ['Allow' => implode(',', $methods)]); - }))->bind($request); - } - - $this->methodNotAllowed($methods); - } - - /** - * Throw a method not allowed HTTP exception. - * - * @param array $others - * @return void - * - * @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException - */ - protected function methodNotAllowed(array $others) - { - throw new MethodNotAllowedHttpException($others); - } - - /** - * Get routes from the collection by method. - * - * @param string|null $method - * @return array - */ - public function get($method = null) - { - return is_null($method) ? $this->getRoutes() : Arr::get($this->routes, $method, []); - } - - /** - * Determine if the route collection contains a given named route. - * - * @param string $name - * @return bool - */ - public function hasNamedRoute($name) - { - return ! is_null($this->getByName($name)); - } - - /** - * Get a route instance by its name. - * - * @param string $name - * @return \Illuminate\Routing\Route|null - */ - public function getByName($name) - { - return $this->nameList[$name] ?? null; - } - - /** - * Get a route instance by its controller action. - * - * @param string $action - * @return \Illuminate\Routing\Route|null - */ - public function getByAction($action) - { - return $this->actionList[$action] ?? null; - } - - /** - * Get all of the routes in the collection. - * - * @return array - */ - public function getRoutes() - { - return array_values($this->allRoutes); - } - - /** - * Get all of the routes keyed by their HTTP verb / method. - * - * @return array - */ - public function getRoutesByMethod() - { - return $this->routes; - } - - /** - * Get all of the routes keyed by their name. - * - * @return array - */ - public function getRoutesByName() - { - return $this->nameList; - } - - /** - * Get an iterator for the items. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->getRoutes()); - } - - /** - * Count the number of items in the collection. - * - * @return int - */ - public function count() - { - return count($this->getRoutes()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php deleted file mode 100644 index 5fb1e30e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php +++ /dev/null @@ -1,54 +0,0 @@ -route = $route; - } - - /** - * Compile the route. - * - * @return \Symfony\Component\Routing\CompiledRoute - */ - public function compile() - { - $optionals = $this->getOptionalParameters(); - - $uri = preg_replace('/\{(\w+?)\?\}/', '{$1}', $this->route->uri()); - - return ( - new SymfonyRoute($uri, $optionals, $this->route->wheres, [], $this->route->getDomain() ?: '') - )->compile(); - } - - /** - * Get the optional parameters for the route. - * - * @return array - */ - protected function getOptionalParameters() - { - preg_match_all('/\{(\w+?)\?\}/', $this->route->uri(), $matches); - - return isset($matches[1]) ? array_fill_keys($matches[1], null) : []; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php deleted file mode 100644 index 2db31c07..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php +++ /dev/null @@ -1,111 +0,0 @@ -resolveMethodDependencies( - $parameters, new ReflectionMethod($instance, $method) - ); - } - - /** - * Resolve the given method's type-hinted dependencies. - * - * @param array $parameters - * @param \ReflectionFunctionAbstract $reflector - * @return array - */ - public function resolveMethodDependencies(array $parameters, ReflectionFunctionAbstract $reflector) - { - $instanceCount = 0; - - $values = array_values($parameters); - - foreach ($reflector->getParameters() as $key => $parameter) { - $instance = $this->transformDependency( - $parameter, $parameters - ); - - if (! is_null($instance)) { - $instanceCount++; - - $this->spliceIntoParameters($parameters, $key, $instance); - } elseif (! isset($values[$key - $instanceCount]) && - $parameter->isDefaultValueAvailable()) { - $this->spliceIntoParameters($parameters, $key, $parameter->getDefaultValue()); - } - } - - return $parameters; - } - - /** - * Attempt to transform the given parameter into a class instance. - * - * @param \ReflectionParameter $parameter - * @param array $parameters - * @return mixed - */ - protected function transformDependency(ReflectionParameter $parameter, $parameters) - { - $class = $parameter->getClass(); - - // If the parameter has a type-hinted class, we will check to see if it is already in - // the list of parameters. If it is we will just skip it as it is probably a model - // binding and we do not want to mess with those; otherwise, we resolve it here. - if ($class && ! $this->alreadyInParameters($class->name, $parameters)) { - return $parameter->isDefaultValueAvailable() - ? $parameter->getDefaultValue() - : $this->container->make($class->name); - } - } - - /** - * Determine if an object of the given class is in a list of parameters. - * - * @param string $class - * @param array $parameters - * @return bool - */ - protected function alreadyInParameters($class, array $parameters) - { - return ! is_null(Arr::first($parameters, function ($value) use ($class) { - return $value instanceof $class; - })); - } - - /** - * Splice the given value into the parameter list. - * - * @param array $parameters - * @param string $offset - * @param mixed $value - * @return void - */ - protected function spliceIntoParameters(array &$parameters, $offset, $value) - { - array_splice( - $parameters, $offset, 0, [$value] - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php deleted file mode 100644 index ba33beeb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php +++ /dev/null @@ -1,95 +0,0 @@ - static::formatNamespace($new, $old), - 'prefix' => static::formatPrefix($new, $old), - 'where' => static::formatWhere($new, $old), - ]); - - return array_merge_recursive(Arr::except( - $old, ['namespace', 'prefix', 'where', 'as'] - ), $new); - } - - /** - * Format the namespace for the new group attributes. - * - * @param array $new - * @param array $old - * @return string|null - */ - protected static function formatNamespace($new, $old) - { - if (isset($new['namespace'])) { - return isset($old['namespace']) - ? trim($old['namespace'], '\\').'\\'.trim($new['namespace'], '\\') - : trim($new['namespace'], '\\'); - } - - return $old['namespace'] ?? null; - } - - /** - * Format the prefix for the new group attributes. - * - * @param array $new - * @param array $old - * @return string|null - */ - protected static function formatPrefix($new, $old) - { - $old = $old['prefix'] ?? null; - - return isset($new['prefix']) ? trim($old, '/').'/'.trim($new['prefix'], '/') : $old; - } - - /** - * Format the "wheres" for the new group attributes. - * - * @param array $new - * @param array $old - * @return array - */ - protected static function formatWhere($new, $old) - { - return array_merge( - $old['where'] ?? [], - $new['where'] ?? [] - ); - } - - /** - * Format the "as" clause of the new group attributes. - * - * @param array $new - * @param array $old - * @return array - */ - protected static function formatAs($new, $old) - { - if (isset($old['as'])) { - $new['as'] = $old['as'].($new['as'] ?? ''); - } - - return $new; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php deleted file mode 100644 index 53e766ef..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php +++ /dev/null @@ -1,120 +0,0 @@ -route = $route; - } - - /** - * Get the parameters for the route. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - public function parameters($request) - { - // If the route has a regular expression for the host part of the URI, we will - // compile that and get the parameter matches for this domain. We will then - // merge them into this parameters array so that this array is completed. - $parameters = $this->bindPathParameters($request); - - // If the route has a regular expression for the host part of the URI, we will - // compile that and get the parameter matches for this domain. We will then - // merge them into this parameters array so that this array is completed. - if (! is_null($this->route->compiled->getHostRegex())) { - $parameters = $this->bindHostParameters( - $request, $parameters - ); - } - - return $this->replaceDefaults($parameters); - } - - /** - * Get the parameter matches for the path portion of the URI. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function bindPathParameters($request) - { - $path = '/'.ltrim($request->decodedPath(), '/'); - - preg_match($this->route->compiled->getRegex(), $path, $matches); - - return $this->matchToKeys(array_slice($matches, 1)); - } - - /** - * Extract the parameter list from the host part of the request. - * - * @param \Illuminate\Http\Request $request - * @param array $parameters - * @return array - */ - protected function bindHostParameters($request, $parameters) - { - preg_match($this->route->compiled->getHostRegex(), $request->getHost(), $matches); - - return array_merge($this->matchToKeys(array_slice($matches, 1)), $parameters); - } - - /** - * Combine a set of parameter matches with the route's keys. - * - * @param array $matches - * @return array - */ - protected function matchToKeys(array $matches) - { - if (empty($parameterNames = $this->route->parameterNames())) { - return []; - } - - $parameters = array_intersect_key($matches, array_flip($parameterNames)); - - return array_filter($parameters, function ($value) { - return is_string($value) && strlen($value) > 0; - }); - } - - /** - * Replace null parameters with their defaults. - * - * @param array $parameters - * @return array - */ - protected function replaceDefaults(array $parameters) - { - foreach ($parameters as $key => $value) { - $parameters[$key] = $value ?? Arr::get($this->route->defaults, $key); - } - - foreach ($this->route->defaults as $key => $value) { - if (! isset($parameters[$key])) { - $parameters[$key] = $value; - } - } - - return $parameters; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php deleted file mode 100644 index 58acdf2f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php +++ /dev/null @@ -1,180 +0,0 @@ - 'as', - ]; - - /** - * Create a new route registrar instance. - * - * @param \Illuminate\Routing\Router $router - * @return void - */ - public function __construct(Router $router) - { - $this->router = $router; - } - - /** - * Set the value for a given attribute. - * - * @param string $key - * @param mixed $value - * @return $this - * - * @throws \InvalidArgumentException - */ - public function attribute($key, $value) - { - if (! in_array($key, $this->allowedAttributes)) { - throw new InvalidArgumentException("Attribute [{$key}] does not exist."); - } - - $this->attributes[Arr::get($this->aliases, $key, $key)] = $value; - - return $this; - } - - /** - * Route a resource to a controller. - * - * @param string $name - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function resource($name, $controller, array $options = []) - { - return $this->router->resource($name, $controller, $this->attributes + $options); - } - - /** - * Create a route group with shared attributes. - * - * @param \Closure|string $callback - * @return void - */ - public function group($callback) - { - $this->router->group($this->attributes, $callback); - } - - /** - * Register a new route with the given verbs. - * - * @param array|string $methods - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function match($methods, $uri, $action = null) - { - return $this->router->match($methods, $uri, $this->compileAction($action)); - } - - /** - * Register a new route with the router. - * - * @param string $method - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - protected function registerRoute($method, $uri, $action = null) - { - if (! is_array($action)) { - $action = array_merge($this->attributes, $action ? ['uses' => $action] : []); - } - - return $this->router->{$method}($uri, $this->compileAction($action)); - } - - /** - * Compile the action into an array including the attributes. - * - * @param \Closure|array|string|null $action - * @return array - */ - protected function compileAction($action) - { - if (is_null($action)) { - return $this->attributes; - } - - if (is_string($action) || $action instanceof Closure) { - $action = ['uses' => $action]; - } - - return array_merge($this->attributes, $action); - } - - /** - * Dynamically handle calls into the route registrar. - * - * @param string $method - * @param array $parameters - * @return \Illuminate\Routing\Route|$this - */ - public function __call($method, $parameters) - { - if (in_array($method, $this->passthru)) { - return $this->registerRoute($method, ...$parameters); - } - - if (in_array($method, $this->allowedAttributes)) { - if ($method == 'middleware') { - return $this->attribute($method, is_array($parameters[0]) ? $parameters[0] : $parameters); - } - - return $this->attribute($method, $parameters[0]); - } - - throw new BadMethodCallException("Method [{$method}] does not exist."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php deleted file mode 100644 index c09baeb9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php +++ /dev/null @@ -1,45 +0,0 @@ -getParameters(); - - return is_null($subClass) ? $parameters : array_filter($parameters, function ($p) use ($subClass) { - return $p->getClass() && $p->getClass()->isSubclassOf($subClass); - }); - } - - /** - * Get the parameters for the given class / method by string. - * - * @param string $uses - * @return array - */ - protected static function fromClassMethodString($uses) - { - list($class, $method) = Str::parseCallback($uses); - - if (! method_exists($class, $method) && is_callable($class, $method)) { - return []; - } - - return (new ReflectionMethod($class, $method))->getParameters(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php deleted file mode 100644 index b5a4c1cb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php +++ /dev/null @@ -1,307 +0,0 @@ - '/', - '%40' => '@', - '%3A' => ':', - '%3B' => ';', - '%2C' => ',', - '%3D' => '=', - '%2B' => '+', - '%21' => '!', - '%2A' => '*', - '%7C' => '|', - '%3F' => '?', - '%26' => '&', - '%23' => '#', - '%25' => '%', - ]; - - /** - * Create a new Route URL generator. - * - * @param \Illuminate\Routing\UrlGenerator $url - * @param \Illuminate\Http\Request $request - * @return void - */ - public function __construct($url, $request) - { - $this->url = $url; - $this->request = $request; - } - - /** - * Generate a URL for the given route. - * - * @param \Illuminate\Routing\Route $route - * @param array $parameters - * @param bool $absolute - * @return string - * - * @throws \Illuminate\Routing\Exceptions\UrlGenerationException - */ - public function to($route, $parameters = [], $absolute = false) - { - $domain = $this->getRouteDomain($route, $parameters); - - // First we will construct the entire URI including the root and query string. Once it - // has been constructed, we'll make sure we don't have any missing parameters or we - // will need to throw the exception to let the developers know one was not given. - $uri = $this->addQueryString($this->url->format( - $root = $this->replaceRootParameters($route, $domain, $parameters), - $this->replaceRouteParameters($route->uri(), $parameters) - ), $parameters); - - if (preg_match('/\{.*?\}/', $uri)) { - throw UrlGenerationException::forMissingParameters($route); - } - - // Once we have ensured that there are no missing parameters in the URI we will encode - // the URI and prepare it for returning to the developer. If the URI is supposed to - // be absolute, we will return it as-is. Otherwise we will remove the URL's root. - $uri = strtr(rawurlencode($uri), $this->dontEncode); - - if (! $absolute) { - return '/'.ltrim(str_replace($root, '', $uri), '/'); - } - - return $uri; - } - - /** - * Get the formatted domain for a given route. - * - * @param \Illuminate\Routing\Route $route - * @param array $parameters - * @return string - */ - protected function getRouteDomain($route, &$parameters) - { - return $route->getDomain() ? $this->formatDomain($route, $parameters) : null; - } - - /** - * Format the domain and port for the route and request. - * - * @param \Illuminate\Routing\Route $route - * @param array $parameters - * @return string - */ - protected function formatDomain($route, &$parameters) - { - return $this->addPortToDomain( - $this->getRouteScheme($route).$route->getDomain() - ); - } - - /** - * Get the scheme for the given route. - * - * @param \Illuminate\Routing\Route $route - * @return string - */ - protected function getRouteScheme($route) - { - if ($route->httpOnly()) { - return 'http://'; - } elseif ($route->httpsOnly()) { - return 'https://'; - } - - return $this->url->formatScheme(null); - } - - /** - * Add the port to the domain if necessary. - * - * @param string $domain - * @return string - */ - protected function addPortToDomain($domain) - { - $secure = $this->request->isSecure(); - - $port = (int) $this->request->getPort(); - - return ($secure && $port === 443) || (! $secure && $port === 80) - ? $domain : $domain.':'.$port; - } - - /** - * Replace the parameters on the root path. - * - * @param \Illuminate\Routing\Route $route - * @param string $domain - * @param array $parameters - * @return string - */ - protected function replaceRootParameters($route, $domain, &$parameters) - { - $scheme = $this->getRouteScheme($route); - - return $this->replaceRouteParameters( - $this->url->formatRoot($scheme, $domain), $parameters - ); - } - - /** - * Replace all of the wildcard parameters for a route path. - * - * @param string $path - * @param array $parameters - * @return string - */ - protected function replaceRouteParameters($path, array &$parameters) - { - $path = $this->replaceNamedParameters($path, $parameters); - - $path = preg_replace_callback('/\{.*?\}/', function ($match) use (&$parameters) { - return (empty($parameters) && ! Str::endsWith($match[0], '?}')) - ? $match[0] - : array_shift($parameters); - }, $path); - - return trim(preg_replace('/\{.*?\?\}/', '', $path), '/'); - } - - /** - * Replace all of the named parameters in the path. - * - * @param string $path - * @param array $parameters - * @return string - */ - protected function replaceNamedParameters($path, &$parameters) - { - return preg_replace_callback('/\{(.*?)\??\}/', function ($m) use (&$parameters) { - if (isset($parameters[$m[1]])) { - return Arr::pull($parameters, $m[1]); - } elseif (isset($this->defaultParameters[$m[1]])) { - return $this->defaultParameters[$m[1]]; - } - - return $m[0]; - }, $path); - } - - /** - * Add a query string to the URI. - * - * @param string $uri - * @param array $parameters - * @return mixed|string - */ - protected function addQueryString($uri, array $parameters) - { - // If the URI has a fragment we will move it to the end of this URI since it will - // need to come after any query string that may be added to the URL else it is - // not going to be available. We will remove it then append it back on here. - if (! is_null($fragment = parse_url($uri, PHP_URL_FRAGMENT))) { - $uri = preg_replace('/#.*/', '', $uri); - } - - $uri .= $this->getRouteQueryString($parameters); - - return is_null($fragment) ? $uri : $uri."#{$fragment}"; - } - - /** - * Get the query string for a given route. - * - * @param array $parameters - * @return string - */ - protected function getRouteQueryString(array $parameters) - { - // First we will get all of the string parameters that are remaining after we - // have replaced the route wildcards. We'll then build a query string from - // these string parameters then use it as a starting point for the rest. - if (count($parameters) == 0) { - return ''; - } - - $query = http_build_query( - $keyed = $this->getStringParameters($parameters) - ); - - // Lastly, if there are still parameters remaining, we will fetch the numeric - // parameters that are in the array and add them to the query string or we - // will make the initial query string if it wasn't started with strings. - if (count($keyed) < count($parameters)) { - $query .= '&'.implode( - '&', $this->getNumericParameters($parameters) - ); - } - - return '?'.trim($query, '&'); - } - - /** - * Get the string parameters from a given list. - * - * @param array $parameters - * @return array - */ - protected function getStringParameters(array $parameters) - { - return array_filter($parameters, 'is_string', ARRAY_FILTER_USE_KEY); - } - - /** - * Get the numeric parameters from a given list. - * - * @param array $parameters - * @return array - */ - protected function getNumericParameters(array $parameters) - { - return array_filter($parameters, 'is_numeric', ARRAY_FILTER_USE_KEY); - } - - /** - * Set the default named parameters used by the URL generator. - * - * @param array $defaults - * @return void - */ - public function defaults(array $defaults) - { - $this->defaultParameters = array_merge( - $this->defaultParameters, $defaults - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Router.php b/vendor/laravel/framework/src/Illuminate/Routing/Router.php deleted file mode 100644 index adbafaa2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Router.php +++ /dev/null @@ -1,1217 +0,0 @@ -events = $events; - $this->routes = new RouteCollection; - $this->container = $container ?: new Container; - } - - /** - * Register a new GET route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function get($uri, $action = null) - { - return $this->addRoute(['GET', 'HEAD'], $uri, $action); - } - - /** - * Register a new POST route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function post($uri, $action = null) - { - return $this->addRoute('POST', $uri, $action); - } - - /** - * Register a new PUT route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function put($uri, $action = null) - { - return $this->addRoute('PUT', $uri, $action); - } - - /** - * Register a new PATCH route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function patch($uri, $action = null) - { - return $this->addRoute('PATCH', $uri, $action); - } - - /** - * Register a new DELETE route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function delete($uri, $action = null) - { - return $this->addRoute('DELETE', $uri, $action); - } - - /** - * Register a new OPTIONS route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function options($uri, $action = null) - { - return $this->addRoute('OPTIONS', $uri, $action); - } - - /** - * Register a new route responding to all verbs. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function any($uri, $action = null) - { - return $this->addRoute(self::$verbs, $uri, $action); - } - - /** - * Register a new Fallback route with the router. - * - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function fallback($action) - { - $placeholder = 'fallbackPlaceholder'; - - return $this->addRoute( - 'GET', "{{$placeholder}}", $action - )->where($placeholder, '.*')->fallback(); - } - - /** - * Create a redirect from one URI to another. - * - * @param string $uri - * @param string $destination - * @param int $status - * @return \Illuminate\Routing\Route - */ - public function redirect($uri, $destination, $status = 301) - { - return $this->any($uri, '\Illuminate\Routing\RedirectController') - ->defaults('destination', $destination) - ->defaults('status', $status); - } - - /** - * Register a new route that returns a view. - * - * @param string $uri - * @param string $view - * @param array $data - * @return \Illuminate\Routing\Route - */ - public function view($uri, $view, $data = []) - { - return $this->match(['GET', 'HEAD'], $uri, '\Illuminate\Routing\ViewController') - ->defaults('view', $view) - ->defaults('data', $data); - } - - /** - * Register a new route with the given verbs. - * - * @param array|string $methods - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function match($methods, $uri, $action = null) - { - return $this->addRoute(array_map('strtoupper', (array) $methods), $uri, $action); - } - - /** - * Register an array of resource controllers. - * - * @param array $resources - * @return void - */ - public function resources(array $resources) - { - foreach ($resources as $name => $controller) { - $this->resource($name, $controller); - } - } - - /** - * Route a resource to a controller. - * - * @param string $name - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function resource($name, $controller, array $options = []) - { - if ($this->container && $this->container->bound(ResourceRegistrar::class)) { - $registrar = $this->container->make(ResourceRegistrar::class); - } else { - $registrar = new ResourceRegistrar($this); - } - - return new PendingResourceRegistration( - $registrar, $name, $controller, $options - ); - } - - /** - * Register an array of API resource controllers. - * - * @param array $resources - * @return void - */ - public function apiResources(array $resources) - { - foreach ($resources as $name => $controller) { - $this->apiResource($name, $controller); - } - } - - /** - * Route an API resource to a controller. - * - * @param string $name - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function apiResource($name, $controller, array $options = []) - { - return $this->resource($name, $controller, array_merge([ - 'only' => ['index', 'show', 'store', 'update', 'destroy'], - ], $options)); - } - - /** - * Create a route group with shared attributes. - * - * @param array $attributes - * @param \Closure|string $routes - * @return void - */ - public function group(array $attributes, $routes) - { - $this->updateGroupStack($attributes); - - // Once we have updated the group stack, we'll load the provided routes and - // merge in the group's attributes when the routes are created. After we - // have created the routes, we will pop the attributes off the stack. - $this->loadRoutes($routes); - - array_pop($this->groupStack); - } - - /** - * Update the group stack with the given attributes. - * - * @param array $attributes - * @return void - */ - protected function updateGroupStack(array $attributes) - { - if (! empty($this->groupStack)) { - $attributes = RouteGroup::merge($attributes, end($this->groupStack)); - } - - $this->groupStack[] = $attributes; - } - - /** - * Merge the given array with the last group stack. - * - * @param array $new - * @return array - */ - public function mergeWithLastGroup($new) - { - return RouteGroup::merge($new, end($this->groupStack)); - } - - /** - * Load the provided routes. - * - * @param \Closure|string $routes - * @return void - */ - protected function loadRoutes($routes) - { - if ($routes instanceof Closure) { - $routes($this); - } else { - $router = $this; - - require $routes; - } - } - - /** - * Get the prefix from the last group on the stack. - * - * @return string - */ - public function getLastGroupPrefix() - { - if (! empty($this->groupStack)) { - $last = end($this->groupStack); - - return $last['prefix'] ?? ''; - } - - return ''; - } - - /** - * Add a route to the underlying route collection. - * - * @param array|string $methods - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - protected function addRoute($methods, $uri, $action) - { - return $this->routes->add($this->createRoute($methods, $uri, $action)); - } - - /** - * Create a new route instance. - * - * @param array|string $methods - * @param string $uri - * @param mixed $action - * @return \Illuminate\Routing\Route - */ - protected function createRoute($methods, $uri, $action) - { - // If the route is routing to a controller we will parse the route action into - // an acceptable array format before registering it and creating this route - // instance itself. We need to build the Closure that will call this out. - if ($this->actionReferencesController($action)) { - $action = $this->convertToControllerAction($action); - } - - $route = $this->newRoute( - $methods, $this->prefix($uri), $action - ); - - // If we have groups that need to be merged, we will merge them now after this - // route has already been created and is ready to go. After we're done with - // the merge we will be ready to return the route back out to the caller. - if ($this->hasGroupStack()) { - $this->mergeGroupAttributesIntoRoute($route); - } - - $this->addWhereClausesToRoute($route); - - return $route; - } - - /** - * Determine if the action is routing to a controller. - * - * @param array $action - * @return bool - */ - protected function actionReferencesController($action) - { - if (! $action instanceof Closure) { - return is_string($action) || (isset($action['uses']) && is_string($action['uses'])); - } - - return false; - } - - /** - * Add a controller based route action to the action array. - * - * @param array|string $action - * @return array - */ - protected function convertToControllerAction($action) - { - if (is_string($action)) { - $action = ['uses' => $action]; - } - - // Here we'll merge any group "uses" statement if necessary so that the action - // has the proper clause for this property. Then we can simply set the name - // of the controller on the action and return the action array for usage. - if (! empty($this->groupStack)) { - $action['uses'] = $this->prependGroupNamespace($action['uses']); - } - - // Here we will set this controller name on the action array just so we always - // have a copy of it for reference if we need it. This can be used while we - // search for a controller name or do some other type of fetch operation. - $action['controller'] = $action['uses']; - - return $action; - } - - /** - * Prepend the last group namespace onto the use clause. - * - * @param string $class - * @return string - */ - protected function prependGroupNamespace($class) - { - $group = end($this->groupStack); - - return isset($group['namespace']) && strpos($class, '\\') !== 0 - ? $group['namespace'].'\\'.$class : $class; - } - - /** - * Create a new Route object. - * - * @param array|string $methods - * @param string $uri - * @param mixed $action - * @return \Illuminate\Routing\Route - */ - protected function newRoute($methods, $uri, $action) - { - return (new Route($methods, $uri, $action)) - ->setRouter($this) - ->setContainer($this->container); - } - - /** - * Prefix the given URI with the last prefix. - * - * @param string $uri - * @return string - */ - protected function prefix($uri) - { - return trim(trim($this->getLastGroupPrefix(), '/').'/'.trim($uri, '/'), '/') ?: '/'; - } - - /** - * Add the necessary where clauses to the route based on its initial registration. - * - * @param \Illuminate\Routing\Route $route - * @return \Illuminate\Routing\Route - */ - protected function addWhereClausesToRoute($route) - { - $route->where(array_merge( - $this->patterns, $route->getAction()['where'] ?? [] - )); - - return $route; - } - - /** - * Merge the group stack with the controller action. - * - * @param \Illuminate\Routing\Route $route - * @return void - */ - protected function mergeGroupAttributesIntoRoute($route) - { - $route->setAction($this->mergeWithLastGroup($route->getAction())); - } - - /** - * Return the response returned by the given route. - * - * @param string $name - * @return mixed - */ - public function respondWithRoute($name) - { - $route = tap($this->routes->getByName($name))->bind($this->currentRequest); - - return $this->runRoute($this->currentRequest, $route); - } - - /** - * Dispatch the request to the application. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse - */ - public function dispatch(Request $request) - { - $this->currentRequest = $request; - - return $this->dispatchToRoute($request); - } - - /** - * Dispatch the request to a route and return the response. - * - * @param \Illuminate\Http\Request $request - * @return mixed - */ - public function dispatchToRoute(Request $request) - { - return $this->runRoute($request, $this->findRoute($request)); - } - - /** - * Find the route matching a given request. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Routing\Route - */ - protected function findRoute($request) - { - $this->current = $route = $this->routes->match($request); - - $this->container->instance(Route::class, $route); - - return $route; - } - - /** - * Return the response for the given route. - * - * @param Route $route - * @param Request $request - * @return mixed - */ - protected function runRoute(Request $request, Route $route) - { - $request->setRouteResolver(function () use ($route) { - return $route; - }); - - $this->events->dispatch(new Events\RouteMatched($route, $request)); - - return $this->prepareResponse($request, - $this->runRouteWithinStack($route, $request) - ); - } - - /** - * Run the given route within a Stack "onion" instance. - * - * @param \Illuminate\Routing\Route $route - * @param \Illuminate\Http\Request $request - * @return mixed - */ - protected function runRouteWithinStack(Route $route, Request $request) - { - $shouldSkipMiddleware = $this->container->bound('middleware.disable') && - $this->container->make('middleware.disable') === true; - - $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); - - return (new Pipeline($this->container)) - ->send($request) - ->through($middleware) - ->then(function ($request) use ($route) { - return $this->prepareResponse( - $request, $route->run() - ); - }); - } - - /** - * Gather the middleware for the given route with resolved class names. - * - * @param \Illuminate\Routing\Route $route - * @return array - */ - public function gatherRouteMiddleware(Route $route) - { - $middleware = collect($route->gatherMiddleware())->map(function ($name) { - return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); - })->flatten(); - - return $this->sortMiddleware($middleware); - } - - /** - * Sort the given middleware by priority. - * - * @param \Illuminate\Support\Collection $middlewares - * @return array - */ - protected function sortMiddleware(Collection $middlewares) - { - return (new SortedMiddleware($this->middlewarePriority, $middlewares))->all(); - } - - /** - * Create a response instance from the given value. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param mixed $response - * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse - */ - public function prepareResponse($request, $response) - { - return static::toResponse($request, $response); - } - - /** - * Static version of prepareResponse. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param mixed $response - * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse - */ - public static function toResponse($request, $response) - { - if ($response instanceof Responsable) { - $response = $response->toResponse($request); - } - - if ($response instanceof PsrResponseInterface) { - $response = (new HttpFoundationFactory)->createResponse($response); - } elseif (! $response instanceof SymfonyResponse && - ($response instanceof Arrayable || - $response instanceof Jsonable || - $response instanceof ArrayObject || - $response instanceof JsonSerializable || - is_array($response))) { - $response = new JsonResponse($response); - } elseif (! $response instanceof SymfonyResponse) { - $response = new Response($response); - } - - if ($response->getStatusCode() === Response::HTTP_NOT_MODIFIED) { - $response->setNotModified(); - } - - return $response->prepare($request); - } - - /** - * Substitute the route bindings onto the route. - * - * @param \Illuminate\Routing\Route $route - * @return \Illuminate\Routing\Route - */ - public function substituteBindings($route) - { - foreach ($route->parameters() as $key => $value) { - if (isset($this->binders[$key])) { - $route->setParameter($key, $this->performBinding($key, $value, $route)); - } - } - - return $route; - } - - /** - * Substitute the implicit Eloquent model bindings for the route. - * - * @param \Illuminate\Routing\Route $route - * @return void - */ - public function substituteImplicitBindings($route) - { - ImplicitRouteBinding::resolveForRoute($this->container, $route); - } - - /** - * Call the binding callback for the given key. - * - * @param string $key - * @param string $value - * @param \Illuminate\Routing\Route $route - * @return mixed - */ - protected function performBinding($key, $value, $route) - { - return call_user_func($this->binders[$key], $value, $route); - } - - /** - * Register a route matched event listener. - * - * @param string|callable $callback - * @return void - */ - public function matched($callback) - { - $this->events->listen(Events\RouteMatched::class, $callback); - } - - /** - * Get all of the defined middleware short-hand names. - * - * @return array - */ - public function getMiddleware() - { - return $this->middleware; - } - - /** - * Register a short-hand name for a middleware. - * - * @param string $name - * @param string $class - * @return $this - */ - public function aliasMiddleware($name, $class) - { - $this->middleware[$name] = $class; - - return $this; - } - - /** - * Check if a middlewareGroup with the given name exists. - * - * @param string $name - * @return bool - */ - public function hasMiddlewareGroup($name) - { - return array_key_exists($name, $this->middlewareGroups); - } - - /** - * Get all of the defined middleware groups. - * - * @return array - */ - public function getMiddlewareGroups() - { - return $this->middlewareGroups; - } - - /** - * Register a group of middleware. - * - * @param string $name - * @param array $middleware - * @return $this - */ - public function middlewareGroup($name, array $middleware) - { - $this->middlewareGroups[$name] = $middleware; - - return $this; - } - - /** - * Add a middleware to the beginning of a middleware group. - * - * If the middleware is already in the group, it will not be added again. - * - * @param string $group - * @param string $middleware - * @return $this - */ - public function prependMiddlewareToGroup($group, $middleware) - { - if (isset($this->middlewareGroups[$group]) && ! in_array($middleware, $this->middlewareGroups[$group])) { - array_unshift($this->middlewareGroups[$group], $middleware); - } - - return $this; - } - - /** - * Add a middleware to the end of a middleware group. - * - * If the middleware is already in the group, it will not be added again. - * - * @param string $group - * @param string $middleware - * @return $this - */ - public function pushMiddlewareToGroup($group, $middleware) - { - if (! array_key_exists($group, $this->middlewareGroups)) { - $this->middlewareGroups[$group] = []; - } - - if (! in_array($middleware, $this->middlewareGroups[$group])) { - $this->middlewareGroups[$group][] = $middleware; - } - - return $this; - } - - /** - * Add a new route parameter binder. - * - * @param string $key - * @param string|callable $binder - * @return void - */ - public function bind($key, $binder) - { - $this->binders[str_replace('-', '_', $key)] = RouteBinding::forCallback( - $this->container, $binder - ); - } - - /** - * Register a model binder for a wildcard. - * - * @param string $key - * @param string $class - * @param \Closure|null $callback - * @return void - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function model($key, $class, Closure $callback = null) - { - $this->bind($key, RouteBinding::forModel($this->container, $class, $callback)); - } - - /** - * Get the binding callback for a given binding. - * - * @param string $key - * @return \Closure|null - */ - public function getBindingCallback($key) - { - if (isset($this->binders[$key = str_replace('-', '_', $key)])) { - return $this->binders[$key]; - } - } - - /** - * Get the global "where" patterns. - * - * @return array - */ - public function getPatterns() - { - return $this->patterns; - } - - /** - * Set a global where pattern on all routes. - * - * @param string $key - * @param string $pattern - * @return void - */ - public function pattern($key, $pattern) - { - $this->patterns[$key] = $pattern; - } - - /** - * Set a group of global where patterns on all routes. - * - * @param array $patterns - * @return void - */ - public function patterns($patterns) - { - foreach ($patterns as $key => $pattern) { - $this->pattern($key, $pattern); - } - } - - /** - * Determine if the router currently has a group stack. - * - * @return bool - */ - public function hasGroupStack() - { - return ! empty($this->groupStack); - } - - /** - * Get the current group stack for the router. - * - * @return array - */ - public function getGroupStack() - { - return $this->groupStack; - } - - /** - * Get a route parameter for the current route. - * - * @param string $key - * @param string $default - * @return mixed - */ - public function input($key, $default = null) - { - return $this->current()->parameter($key, $default); - } - - /** - * Get the request currently being dispatched. - * - * @return \Illuminate\Http\Request - */ - public function getCurrentRequest() - { - return $this->currentRequest; - } - - /** - * Get the currently dispatched route instance. - * - * @return \Illuminate\Routing\Route - */ - public function getCurrentRoute() - { - return $this->current(); - } - - /** - * Get the currently dispatched route instance. - * - * @return \Illuminate\Routing\Route - */ - public function current() - { - return $this->current; - } - - /** - * Check if a route with the given name exists. - * - * @param string $name - * @return bool - */ - public function has($name) - { - $names = is_array($name) ? $name : func_get_args(); - - foreach ($names as $value) { - if (! $this->routes->hasNamedRoute($value)) { - return false; - } - } - - return true; - } - - /** - * Get the current route name. - * - * @return string|null - */ - public function currentRouteName() - { - return $this->current() ? $this->current()->getName() : null; - } - - /** - * Alias for the "currentRouteNamed" method. - * - * @param dynamic $patterns - * @return bool - */ - public function is(...$patterns) - { - return $this->currentRouteNamed(...$patterns); - } - - /** - * Determine if the current route matches a pattern. - * - * @param dynamic $patterns - * @return bool - */ - public function currentRouteNamed(...$patterns) - { - return $this->current() && $this->current()->named(...$patterns); - } - - /** - * Get the current route action. - * - * @return string|null - */ - public function currentRouteAction() - { - if ($this->current()) { - return $this->current()->getAction()['controller'] ?? null; - } - } - - /** - * Alias for the "currentRouteUses" method. - * - * @param array ...$patterns - * @return bool - */ - public function uses(...$patterns) - { - foreach ($patterns as $pattern) { - if (Str::is($pattern, $this->currentRouteAction())) { - return true; - } - } - - return false; - } - - /** - * Determine if the current route action matches a given action. - * - * @param string $action - * @return bool - */ - public function currentRouteUses($action) - { - return $this->currentRouteAction() == $action; - } - - /** - * Register the typical authentication routes for an application. - * - * @return void - */ - public function auth() - { - // Authentication Routes... - $this->get('login', 'Auth\LoginController@showLoginForm')->name('login'); - $this->post('login', 'Auth\LoginController@login'); - $this->post('logout', 'Auth\LoginController@logout')->name('logout'); - - // Registration Routes... - $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register'); - $this->post('register', 'Auth\RegisterController@register'); - - // Password Reset Routes... - $this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); - $this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email'); - $this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset'); - $this->post('password/reset', 'Auth\ResetPasswordController@reset'); - } - - /** - * Set the unmapped global resource parameters to singular. - * - * @param bool $singular - * @return void - */ - public function singularResourceParameters($singular = true) - { - ResourceRegistrar::singularParameters($singular); - } - - /** - * Set the global resource parameter mapping. - * - * @param array $parameters - * @return void - */ - public function resourceParameters(array $parameters = []) - { - ResourceRegistrar::setParameters($parameters); - } - - /** - * Get or set the verbs used in the resource URIs. - * - * @param array $verbs - * @return array|null - */ - public function resourceVerbs(array $verbs = []) - { - return ResourceRegistrar::verbs($verbs); - } - - /** - * Get the underlying route collection. - * - * @return \Illuminate\Routing\RouteCollection - */ - public function getRoutes() - { - return $this->routes; - } - - /** - * Set the route collection instance. - * - * @param \Illuminate\Routing\RouteCollection $routes - * @return void - */ - public function setRoutes(RouteCollection $routes) - { - foreach ($routes as $route) { - $route->setRouter($this)->setContainer($this->container); - } - - $this->routes = $routes; - - $this->container->instance('routes', $this->routes); - } - - /** - * Dynamically handle calls into the router instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if ($method == 'middleware') { - return (new RouteRegistrar($this))->attribute($method, is_array($parameters[0]) ? $parameters[0] : $parameters); - } - - return (new RouteRegistrar($this))->attribute($method, $parameters[0]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php deleted file mode 100755 index f449ad7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php +++ /dev/null @@ -1,166 +0,0 @@ -registerRouter(); - - $this->registerUrlGenerator(); - - $this->registerRedirector(); - - $this->registerPsrRequest(); - - $this->registerPsrResponse(); - - $this->registerResponseFactory(); - - $this->registerControllerDispatcher(); - } - - /** - * Register the router instance. - * - * @return void - */ - protected function registerRouter() - { - $this->app->singleton('router', function ($app) { - return new Router($app['events'], $app); - }); - } - - /** - * Register the URL generator service. - * - * @return void - */ - protected function registerUrlGenerator() - { - $this->app->singleton('url', function ($app) { - $routes = $app['router']->getRoutes(); - - // The URL generator needs the route collection that exists on the router. - // Keep in mind this is an object, so we're passing by references here - // and all the registered routes will be available to the generator. - $app->instance('routes', $routes); - - $url = new UrlGenerator( - $routes, $app->rebinding( - 'request', $this->requestRebinder() - ) - ); - - $url->setSessionResolver(function () { - return $this->app['session']; - }); - - // If the route collection is "rebound", for example, when the routes stay - // cached for the application, we will need to rebind the routes on the - // URL generator instance so it has the latest version of the routes. - $app->rebinding('routes', function ($app, $routes) { - $app['url']->setRoutes($routes); - }); - - return $url; - }); - } - - /** - * Get the URL generator request rebinder. - * - * @return \Closure - */ - protected function requestRebinder() - { - return function ($app, $request) { - $app['url']->setRequest($request); - }; - } - - /** - * Register the Redirector service. - * - * @return void - */ - protected function registerRedirector() - { - $this->app->singleton('redirect', function ($app) { - $redirector = new Redirector($app['url']); - - // If the session is set on the application instance, we'll inject it into - // the redirector instance. This allows the redirect responses to allow - // for the quite convenient "with" methods that flash to the session. - if (isset($app['session.store'])) { - $redirector->setSession($app['session.store']); - } - - return $redirector; - }); - } - - /** - * Register a binding for the PSR-7 request implementation. - * - * @return void - */ - protected function registerPsrRequest() - { - $this->app->bind(ServerRequestInterface::class, function ($app) { - return (new DiactorosFactory)->createRequest($app->make('request')); - }); - } - - /** - * Register a binding for the PSR-7 response implementation. - * - * @return void - */ - protected function registerPsrResponse() - { - $this->app->bind(ResponseInterface::class, function ($app) { - return new PsrResponse; - }); - } - - /** - * Register the response factory implementation. - * - * @return void - */ - protected function registerResponseFactory() - { - $this->app->singleton(ResponseFactoryContract::class, function ($app) { - return new ResponseFactory($app[ViewFactoryContract::class], $app['redirect']); - }); - } - - /** - * Register the controller dispatcher. - * - * @return void - */ - protected function registerControllerDispatcher() - { - $this->app->singleton(ControllerDispatcherContract::class, function ($app) { - return new ControllerDispatcher($app); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php b/vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php deleted file mode 100644 index ad094567..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php +++ /dev/null @@ -1,84 +0,0 @@ -all(); - } - - $this->items = $this->sortMiddleware($priorityMap, $middlewares); - } - - /** - * Sort the middlewares by the given priority map. - * - * Each call to this method makes one discrete middleware movement if necessary. - * - * @param array $priorityMap - * @param array $middlewares - * @return array - */ - protected function sortMiddleware($priorityMap, $middlewares) - { - $lastIndex = 0; - - foreach ($middlewares as $index => $middleware) { - if (! is_string($middleware)) { - continue; - } - - $stripped = head(explode(':', $middleware)); - - if (in_array($stripped, $priorityMap)) { - $priorityIndex = array_search($stripped, $priorityMap); - - // This middleware is in the priority map. If we have encountered another middleware - // that was also in the priority map and was at a lower priority than the current - // middleware, we will move this middleware to be above the previous encounter. - if (isset($lastPriorityIndex) && $priorityIndex < $lastPriorityIndex) { - return $this->sortMiddleware( - $priorityMap, array_values($this->moveMiddleware($middlewares, $index, $lastIndex)) - ); - } - - // This middleware is in the priority map; but, this is the first middleware we have - // encountered from the map thus far. We'll save its current index plus its index - // from the priority map so we can compare against them on the next iterations. - $lastIndex = $index; - $lastPriorityIndex = $priorityIndex; - } - } - - return array_values(array_unique($middlewares, SORT_REGULAR)); - } - - /** - * Splice a middleware into a new position and remove the old entry. - * - * @param array $middlewares - * @param int $from - * @param int $to - * @return array - */ - protected function moveMiddleware($middlewares, $from, $to) - { - array_splice($middlewares, $to, 0, $middlewares[$from]); - - unset($middlewares[$from + 1]); - - return $middlewares; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php b/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php deleted file mode 100755 index bf1839b3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php +++ /dev/null @@ -1,629 +0,0 @@ -routes = $routes; - - $this->setRequest($request); - } - - /** - * Get the full URL for the current request. - * - * @return string - */ - public function full() - { - return $this->request->fullUrl(); - } - - /** - * Get the current URL for the request. - * - * @return string - */ - public function current() - { - return $this->to($this->request->getPathInfo()); - } - - /** - * Get the URL for the previous request. - * - * @param mixed $fallback - * @return string - */ - public function previous($fallback = false) - { - $referrer = $this->request->headers->get('referer'); - - $url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession(); - - if ($url) { - return $url; - } elseif ($fallback) { - return $this->to($fallback); - } - - return $this->to('/'); - } - - /** - * Get the previous URL from the session if possible. - * - * @return string|null - */ - protected function getPreviousUrlFromSession() - { - $session = $this->getSession(); - - return $session ? $session->previousUrl() : null; - } - - /** - * Generate an absolute URL to the given path. - * - * @param string $path - * @param mixed $extra - * @param bool|null $secure - * @return string - */ - public function to($path, $extra = [], $secure = null) - { - // First we will check if the URL is already a valid URL. If it is we will not - // try to generate a new one but will simply return the URL as is, which is - // convenient since developers do not always have to check if it's valid. - if ($this->isValidUrl($path)) { - return $path; - } - - $tail = implode('/', array_map( - 'rawurlencode', (array) $this->formatParameters($extra)) - ); - - // Once we have the scheme we will compile the "tail" by collapsing the values - // into a single string delimited by slashes. This just makes it convenient - // for passing the array of parameters to this URL as a list of segments. - $root = $this->formatRoot($this->formatScheme($secure)); - - list($path, $query) = $this->extractQueryString($path); - - return $this->format( - $root, '/'.trim($path.'/'.$tail, '/') - ).$query; - } - - /** - * Generate a secure, absolute URL to the given path. - * - * @param string $path - * @param array $parameters - * @return string - */ - public function secure($path, $parameters = []) - { - return $this->to($path, $parameters, true); - } - - /** - * Generate the URL to an application asset. - * - * @param string $path - * @param bool|null $secure - * @return string - */ - public function asset($path, $secure = null) - { - if ($this->isValidUrl($path)) { - return $path; - } - - // Once we get the root URL, we will check to see if it contains an index.php - // file in the paths. If it does, we will remove it since it is not needed - // for asset paths, but only for routes to endpoints in the application. - $root = $this->formatRoot($this->formatScheme($secure)); - - return $this->removeIndex($root).'/'.trim($path, '/'); - } - - /** - * Generate the URL to a secure asset. - * - * @param string $path - * @return string - */ - public function secureAsset($path) - { - return $this->asset($path, true); - } - - /** - * Generate the URL to an asset from a custom root domain such as CDN, etc. - * - * @param string $root - * @param string $path - * @param bool|null $secure - * @return string - */ - public function assetFrom($root, $path, $secure = null) - { - // Once we get the root URL, we will check to see if it contains an index.php - // file in the paths. If it does, we will remove it since it is not needed - // for asset paths, but only for routes to endpoints in the application. - $root = $this->formatRoot($this->formatScheme($secure), $root); - - return $this->removeIndex($root).'/'.trim($path, '/'); - } - - /** - * Remove the index.php file from a path. - * - * @param string $root - * @return string - */ - protected function removeIndex($root) - { - $i = 'index.php'; - - return Str::contains($root, $i) ? str_replace('/'.$i, '', $root) : $root; - } - - /** - * Get the default scheme for a raw URL. - * - * @param bool|null $secure - * @return string - */ - public function formatScheme($secure) - { - if (! is_null($secure)) { - return $secure ? 'https://' : 'http://'; - } - - if (is_null($this->cachedSchema)) { - $this->cachedSchema = $this->forceScheme ?: $this->request->getScheme().'://'; - } - - return $this->cachedSchema; - } - - /** - * Get the URL to a named route. - * - * @param string $name - * @param mixed $parameters - * @param bool $absolute - * @return string - * - * @throws \InvalidArgumentException - */ - public function route($name, $parameters = [], $absolute = true) - { - if (! is_null($route = $this->routes->getByName($name))) { - return $this->toRoute($route, $parameters, $absolute); - } - - throw new InvalidArgumentException("Route [{$name}] not defined."); - } - - /** - * Get the URL for a given route instance. - * - * @param \Illuminate\Routing\Route $route - * @param mixed $parameters - * @param bool $absolute - * @return string - * - * @throws \Illuminate\Routing\Exceptions\UrlGenerationException - */ - protected function toRoute($route, $parameters, $absolute) - { - return $this->routeUrl()->to( - $route, $this->formatParameters($parameters), $absolute - ); - } - - /** - * Get the URL to a controller action. - * - * @param string $action - * @param mixed $parameters - * @param bool $absolute - * @return string - * - * @throws \InvalidArgumentException - */ - public function action($action, $parameters = [], $absolute = true) - { - if (is_null($route = $this->routes->getByAction($action = $this->formatAction($action)))) { - throw new InvalidArgumentException("Action {$action} not defined."); - } - - return $this->toRoute($route, $parameters, $absolute); - } - - /** - * Format the given controller action. - * - * @param string $action - * @return string - */ - protected function formatAction($action) - { - if ($this->rootNamespace && ! (strpos($action, '\\') === 0)) { - return $this->rootNamespace.'\\'.$action; - } else { - return trim($action, '\\'); - } - } - - /** - * Format the array of URL parameters. - * - * @param mixed|array $parameters - * @return array - */ - public function formatParameters($parameters) - { - $parameters = Arr::wrap($parameters); - - foreach ($parameters as $key => $parameter) { - if ($parameter instanceof UrlRoutable) { - $parameters[$key] = $parameter->getRouteKey(); - } - } - - return $parameters; - } - - /** - * Extract the query string from the given path. - * - * @param string $path - * @return array - */ - protected function extractQueryString($path) - { - if (($queryPosition = strpos($path, '?')) !== false) { - return [ - substr($path, 0, $queryPosition), - substr($path, $queryPosition), - ]; - } - - return [$path, '']; - } - - /** - * Get the base URL for the request. - * - * @param string $scheme - * @param string $root - * @return string - */ - public function formatRoot($scheme, $root = null) - { - if (is_null($root)) { - if (is_null($this->cachedRoot)) { - $this->cachedRoot = $this->forcedRoot ?: $this->request->root(); - } - - $root = $this->cachedRoot; - } - - $start = Str::startsWith($root, 'http://') ? 'http://' : 'https://'; - - return preg_replace('~'.$start.'~', $scheme, $root, 1); - } - - /** - * Format the given URL segments into a single URL. - * - * @param string $root - * @param string $path - * @return string - */ - public function format($root, $path) - { - $path = '/'.trim($path, '/'); - - if ($this->formatHostUsing) { - $root = call_user_func($this->formatHostUsing, $root); - } - - if ($this->formatPathUsing) { - $path = call_user_func($this->formatPathUsing, $path); - } - - return trim($root.$path, '/'); - } - - /** - * Determine if the given path is a valid URL. - * - * @param string $path - * @return bool - */ - public function isValidUrl($path) - { - if (! preg_match('~^(#|//|https?://|mailto:|tel:)~', $path)) { - return filter_var($path, FILTER_VALIDATE_URL) !== false; - } - - return true; - } - - /** - * Get the Route URL generator instance. - * - * @return \Illuminate\Routing\RouteUrlGenerator - */ - protected function routeUrl() - { - if (! $this->routeGenerator) { - $this->routeGenerator = new RouteUrlGenerator($this, $this->request); - } - - return $this->routeGenerator; - } - - /** - * Set the default named parameters used by the URL generator. - * - * @param array $defaults - * @return void - */ - public function defaults(array $defaults) - { - $this->routeUrl()->defaults($defaults); - } - - /** - * Get the default named parameters used by the URL generator. - * - * @return array - */ - public function getDefaultParameters() - { - return $this->routeUrl()->defaultParameters; - } - - /** - * Force the scheme for URLs. - * - * @param string $schema - * @return void - */ - public function forceScheme($schema) - { - $this->cachedSchema = null; - - $this->forceScheme = $schema.'://'; - } - - /** - * Set the forced root URL. - * - * @param string $root - * @return void - */ - public function forceRootUrl($root) - { - $this->forcedRoot = rtrim($root, '/'); - - $this->cachedRoot = null; - } - - /** - * Set a callback to be used to format the host of generated URLs. - * - * @param \Closure $callback - * @return $this - */ - public function formatHostUsing(Closure $callback) - { - $this->formatHostUsing = $callback; - - return $this; - } - - /** - * Set a callback to be used to format the path of generated URLs. - * - * @param \Closure $callback - * @return $this - */ - public function formatPathUsing(Closure $callback) - { - $this->formatPathUsing = $callback; - - return $this; - } - - /** - * Get the path formatter being used by the URL generator. - * - * @return \Closure - */ - public function pathFormatter() - { - return $this->formatPathUsing ?: function ($path) { - return $path; - }; - } - - /** - * Get the request instance. - * - * @return \Illuminate\Http\Request - */ - public function getRequest() - { - return $this->request; - } - - /** - * Set the current request instance. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - public function setRequest(Request $request) - { - $this->request = $request; - - $this->cachedRoot = null; - $this->cachedSchema = null; - $this->routeGenerator = null; - } - - /** - * Set the route collection. - * - * @param \Illuminate\Routing\RouteCollection $routes - * @return $this - */ - public function setRoutes(RouteCollection $routes) - { - $this->routes = $routes; - - return $this; - } - - /** - * Get the session implementation from the resolver. - * - * @return \Illuminate\Session\Store|null - */ - protected function getSession() - { - if ($this->sessionResolver) { - return call_user_func($this->sessionResolver); - } - } - - /** - * Set the session resolver for the generator. - * - * @param callable $sessionResolver - * @return $this - */ - public function setSessionResolver(callable $sessionResolver) - { - $this->sessionResolver = $sessionResolver; - - return $this; - } - - /** - * Set the root controller namespace. - * - * @param string $rootNamespace - * @return $this - */ - public function setRootControllerNamespace($rootNamespace) - { - $this->rootNamespace = $rootNamespace; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ViewController.php b/vendor/laravel/framework/src/Illuminate/Routing/ViewController.php deleted file mode 100644 index c1f9d09d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ViewController.php +++ /dev/null @@ -1,39 +0,0 @@ -view = $view; - } - - /** - * Invoke the controller method. - * - * @param array $args - * @return \Illuminate\Contracts\View\View - */ - public function __invoke(...$args) - { - list($view, $data) = array_slice($args, -2); - - return $this->view->make($view, $data); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/composer.json b/vendor/laravel/framework/src/Illuminate/Routing/composer.json deleted file mode 100644 index 7b12355c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/composer.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "illuminate/routing", - "description": "The Illuminate Routing package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/container": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/http": "5.5.*", - "illuminate/pipeline": "5.5.*", - "illuminate/session": "5.5.*", - "illuminate/support": "5.5.*", - "symfony/debug": "~3.3", - "symfony/http-foundation": "~3.3", - "symfony/http-kernel": "~3.3", - "symfony/routing": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\Routing\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "illuminate/console": "Required to use the make commands (5.5.*).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php b/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php deleted file mode 100755 index a2990bdd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php +++ /dev/null @@ -1,94 +0,0 @@ -cache = $cache; - $this->minutes = $minutes; - } - - /** - * {@inheritdoc} - */ - public function open($savePath, $sessionName) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function close() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function read($sessionId) - { - return $this->cache->get($sessionId, ''); - } - - /** - * {@inheritdoc} - */ - public function write($sessionId, $data) - { - return $this->cache->put($sessionId, $data, $this->minutes); - } - - /** - * {@inheritdoc} - */ - public function destroy($sessionId) - { - return $this->cache->forget($sessionId); - } - - /** - * {@inheritdoc} - */ - public function gc($lifetime) - { - return true; - } - - /** - * Get the underlying cache repository. - * - * @return \Illuminate\Contracts\Cache\Repository - */ - public function getCache() - { - return $this->cache; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php b/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php deleted file mode 100644 index e99f7d2d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php +++ /dev/null @@ -1,81 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $fullPath = $this->createBaseMigration(); - - $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/database.stub')); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the session. - * - * @return string - */ - protected function createBaseMigration() - { - $name = 'create_sessions_table'; - - $path = $this->laravel->databasePath().'/migrations'; - - return $this->laravel['migration.creator']->create($name, $path); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub b/vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub deleted file mode 100755 index c213297d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub +++ /dev/null @@ -1,35 +0,0 @@ -string('id')->unique(); - $table->unsignedInteger('user_id')->nullable(); - $table->string('ip_address', 45)->nullable(); - $table->text('user_agent')->nullable(); - $table->text('payload'); - $table->integer('last_activity'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('sessions'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php b/vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php deleted file mode 100755 index e91053d0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php +++ /dev/null @@ -1,121 +0,0 @@ -cookie = $cookie; - $this->minutes = $minutes; - } - - /** - * {@inheritdoc} - */ - public function open($savePath, $sessionName) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function close() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function read($sessionId) - { - $value = $this->request->cookies->get($sessionId) ?: ''; - - if (! is_null($decoded = json_decode($value, true)) && is_array($decoded)) { - if (isset($decoded['expires']) && $this->currentTime() <= $decoded['expires']) { - return $decoded['data']; - } - } - - return ''; - } - - /** - * {@inheritdoc} - */ - public function write($sessionId, $data) - { - $this->cookie->queue($sessionId, json_encode([ - 'data' => $data, - 'expires' => $this->availableAt($this->minutes * 60), - ]), $this->minutes); - - return true; - } - - /** - * {@inheritdoc} - */ - public function destroy($sessionId) - { - $this->cookie->queue($this->cookie->forget($sessionId)); - - return true; - } - - /** - * {@inheritdoc} - */ - public function gc($lifetime) - { - return true; - } - - /** - * Set the request instance. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @return void - */ - public function setRequest(Request $request) - { - $this->request = $request; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php b/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php deleted file mode 100644 index 976c2901..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php +++ /dev/null @@ -1,294 +0,0 @@ -table = $table; - $this->minutes = $minutes; - $this->container = $container; - $this->connection = $connection; - } - - /** - * {@inheritdoc} - */ - public function open($savePath, $sessionName) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function close() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function read($sessionId) - { - $session = (object) $this->getQuery()->find($sessionId); - - if ($this->expired($session)) { - $this->exists = true; - - return ''; - } - - if (isset($session->payload)) { - $this->exists = true; - - return base64_decode($session->payload); - } - - return ''; - } - - /** - * Determine if the session is expired. - * - * @param \stdClass $session - * @return bool - */ - protected function expired($session) - { - return isset($session->last_activity) && - $session->last_activity < Carbon::now()->subMinutes($this->minutes)->getTimestamp(); - } - - /** - * {@inheritdoc} - */ - public function write($sessionId, $data) - { - $payload = $this->getDefaultPayload($data); - - if (! $this->exists) { - $this->read($sessionId); - } - - if ($this->exists) { - $this->performUpdate($sessionId, $payload); - } else { - $this->performInsert($sessionId, $payload); - } - - return $this->exists = true; - } - - /** - * Perform an insert operation on the session ID. - * - * @param string $sessionId - * @param string $payload - * @return bool|null - */ - protected function performInsert($sessionId, $payload) - { - try { - return $this->getQuery()->insert(Arr::set($payload, 'id', $sessionId)); - } catch (QueryException $e) { - $this->performUpdate($sessionId, $payload); - } - } - - /** - * Perform an update operation on the session ID. - * - * @param string $sessionId - * @param string $payload - * @return int - */ - protected function performUpdate($sessionId, $payload) - { - return $this->getQuery()->where('id', $sessionId)->update($payload); - } - - /** - * Get the default payload for the session. - * - * @param string $data - * @return array - */ - protected function getDefaultPayload($data) - { - $payload = [ - 'payload' => base64_encode($data), - 'last_activity' => $this->currentTime(), - ]; - - if (! $this->container) { - return $payload; - } - - return tap($payload, function (&$payload) { - $this->addUserInformation($payload) - ->addRequestInformation($payload); - }); - } - - /** - * Add the user information to the session payload. - * - * @param array $payload - * @return $this - */ - protected function addUserInformation(&$payload) - { - if ($this->container->bound(Guard::class)) { - $payload['user_id'] = $this->userId(); - } - - return $this; - } - - /** - * Get the currently authenticated user's ID. - * - * @return mixed - */ - protected function userId() - { - return $this->container->make(Guard::class)->id(); - } - - /** - * Add the request information to the session payload. - * - * @param array $payload - * @return $this - */ - protected function addRequestInformation(&$payload) - { - if ($this->container->bound('request')) { - $payload = array_merge($payload, [ - 'ip_address' => $this->ipAddress(), - 'user_agent' => $this->userAgent(), - ]); - } - - return $this; - } - - /** - * Get the IP address for the current request. - * - * @return string - */ - protected function ipAddress() - { - return $this->container->make('request')->ip(); - } - - /** - * Get the user agent for the current request. - * - * @return string - */ - protected function userAgent() - { - return substr((string) $this->container->make('request')->header('User-Agent'), 0, 500); - } - - /** - * {@inheritdoc} - */ - public function destroy($sessionId) - { - $this->getQuery()->where('id', $sessionId)->delete(); - - return true; - } - - /** - * {@inheritdoc} - */ - public function gc($lifetime) - { - $this->getQuery()->where('last_activity', '<=', $this->currentTime() - $lifetime)->delete(); - } - - /** - * Get a fresh query builder instance for the table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function getQuery() - { - return $this->connection->table($this->table); - } - - /** - * Set the existence state for the session. - * - * @param bool $value - * @return $this - */ - public function setExists($value) - { - $this->exists = $value; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php b/vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php deleted file mode 100644 index 078d13fd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php +++ /dev/null @@ -1,69 +0,0 @@ -encrypter = $encrypter; - - parent::__construct($name, $handler, $id); - } - - /** - * Prepare the raw string data from the session for unserialization. - * - * @param string $data - * @return string - */ - protected function prepareForUnserialize($data) - { - try { - return $this->encrypter->decrypt($data); - } catch (DecryptException $e) { - return serialize([]); - } - } - - /** - * Prepare the serialized session data for storage. - * - * @param string $data - * @return string - */ - protected function prepareForStorage($data) - { - return $this->encrypter->encrypt($data); - } - - /** - * Get the encrypter instance. - * - * @return \Illuminate\Contracts\Encryption\Encrypter - */ - public function getEncrypter() - { - return $this->encrypter; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php b/vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php deleted file mode 100644 index 4a6bd984..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -path = $path; - $this->files = $files; - $this->minutes = $minutes; - } - - /** - * {@inheritdoc} - */ - public function open($savePath, $sessionName) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function close() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function read($sessionId) - { - if ($this->files->exists($path = $this->path.'/'.$sessionId)) { - if (filemtime($path) >= Carbon::now()->subMinutes($this->minutes)->getTimestamp()) { - return $this->files->get($path, true); - } - } - - return ''; - } - - /** - * {@inheritdoc} - */ - public function write($sessionId, $data) - { - $this->files->put($this->path.'/'.$sessionId, $data, true); - - return true; - } - - /** - * {@inheritdoc} - */ - public function destroy($sessionId) - { - $this->files->delete($this->path.'/'.$sessionId); - - return true; - } - - /** - * {@inheritdoc} - */ - public function gc($lifetime) - { - $files = Finder::create() - ->in($this->path) - ->files() - ->ignoreDotFiles(true) - ->date('<= now - '.$lifetime.' seconds'); - - foreach ($files as $file) { - $this->files->delete($file->getRealPath()); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php b/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php deleted file mode 100644 index bdc4eb42..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php +++ /dev/null @@ -1,96 +0,0 @@ -auth = $auth; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - if (! $request->user() || ! $request->session()) { - return $next($request); - } - - if ($this->auth->viaRemember()) { - $passwordHash = explode('|', $request->cookies->get($this->auth->getRecallerName()))[2]; - - if ($passwordHash != $request->user()->getAuthPassword()) { - $this->logout($request); - } - } - - if (! $request->session()->has('password_hash')) { - $this->storePasswordHashInSession($request); - } - - if ($request->session()->get('password_hash') !== $request->user()->getAuthPassword()) { - $this->logout($request); - } - - return tap($next($request), function () use ($request) { - $this->storePasswordHashInSession($request); - }); - } - - /** - * Store the user's current password hash in the session. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function storePasswordHashInSession($request) - { - if (! $request->user()) { - return; - } - - $request->session()->put([ - 'password_hash' => $request->user()->getAuthPassword(), - ]); - } - - /** - * Log the user out of the application. - * - * @param \Illuminate\Http\Request $request - * @return void - * - * @throws \Illuminate\Auth\AuthenticationException - */ - protected function logout($request) - { - $this->auth->logout(); - - $request->session()->flush(); - - throw new AuthenticationException; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php b/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php deleted file mode 100644 index b47fde27..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php +++ /dev/null @@ -1,242 +0,0 @@ -manager = $manager; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - $this->sessionHandled = true; - - // If a session driver has been configured, we will need to start the session here - // so that the data is ready for an application. Note that the Laravel sessions - // do not make use of PHP "native" sessions in any way since they are crappy. - if ($this->sessionConfigured()) { - $request->setLaravelSession( - $session = $this->startSession($request) - ); - - $this->collectGarbage($session); - } - - $response = $next($request); - - // Again, if the session has been configured we will need to close out the session - // so that the attributes may be persisted to some storage medium. We will also - // add the session identifier cookie to the application response headers now. - if ($this->sessionConfigured()) { - $this->storeCurrentUrl($request, $session); - - $this->addCookieToResponse($response, $session); - } - - return $response; - } - - /** - * Perform any final actions for the request lifecycle. - * - * @param \Illuminate\Http\Request $request - * @param \Symfony\Component\HttpFoundation\Response $response - * @return void - */ - public function terminate($request, $response) - { - if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) { - $this->manager->driver()->save(); - } - } - - /** - * Start the session for the given request. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Contracts\Session\Session - */ - protected function startSession(Request $request) - { - return tap($this->getSession($request), function ($session) use ($request) { - $session->setRequestOnHandler($request); - - $session->start(); - }); - } - - /** - * Get the session implementation from the manager. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Contracts\Session\Session - */ - public function getSession(Request $request) - { - return tap($this->manager->driver(), function ($session) use ($request) { - $session->setId($request->cookies->get($session->getName())); - }); - } - - /** - * Remove the garbage from the session if necessary. - * - * @param \Illuminate\Contracts\Session\Session $session - * @return void - */ - protected function collectGarbage(Session $session) - { - $config = $this->manager->getSessionConfig(); - - // Here we will see if this request hits the garbage collection lottery by hitting - // the odds needed to perform garbage collection on any given request. If we do - // hit it, we'll call this handler to let it delete all the expired sessions. - if ($this->configHitsLottery($config)) { - $session->getHandler()->gc($this->getSessionLifetimeInSeconds()); - } - } - - /** - * Determine if the configuration odds hit the lottery. - * - * @param array $config - * @return bool - */ - protected function configHitsLottery(array $config) - { - return random_int(1, $config['lottery'][1]) <= $config['lottery'][0]; - } - - /** - * Store the current URL for the request if necessary. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Contracts\Session\Session $session - * @return void - */ - protected function storeCurrentUrl(Request $request, $session) - { - if ($request->method() === 'GET' && $request->route() && ! $request->ajax()) { - $session->setPreviousUrl($request->fullUrl()); - } - } - - /** - * Add the session cookie to the application response. - * - * @param \Symfony\Component\HttpFoundation\Response $response - * @param \Illuminate\Contracts\Session\Session $session - * @return void - */ - protected function addCookieToResponse(Response $response, Session $session) - { - if ($this->usingCookieSessions()) { - $this->manager->driver()->save(); - } - - if ($this->sessionIsPersistent($config = $this->manager->getSessionConfig())) { - $response->headers->setCookie(new Cookie( - $session->getName(), $session->getId(), $this->getCookieExpirationDate(), - $config['path'], $config['domain'], $config['secure'] ?? false, - $config['http_only'] ?? true, false, $config['same_site'] ?? null - )); - } - } - - /** - * Get the session lifetime in seconds. - * - * @return int - */ - protected function getSessionLifetimeInSeconds() - { - return ($this->manager->getSessionConfig()['lifetime'] ?? null) * 60; - } - - /** - * Get the cookie lifetime in seconds. - * - * @return \DateTimeInterface - */ - protected function getCookieExpirationDate() - { - $config = $this->manager->getSessionConfig(); - - return $config['expire_on_close'] ? 0 : Carbon::now()->addMinutes($config['lifetime']); - } - - /** - * Determine if a session driver has been configured. - * - * @return bool - */ - protected function sessionConfigured() - { - return ! is_null($this->manager->getSessionConfig()['driver'] ?? null); - } - - /** - * Determine if the configured session driver is persistent. - * - * @param array|null $config - * @return bool - */ - protected function sessionIsPersistent(array $config = null) - { - $config = $config ?: $this->manager->getSessionConfig(); - - return ! in_array($config['driver'], [null, 'array']); - } - - /** - * Determine if the session is using cookie sessions. - * - * @return bool - */ - protected function usingCookieSessions() - { - if ($this->sessionConfigured()) { - return $this->manager->driver()->getHandler() instanceof CookieSessionHandler; - } - - return false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php b/vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php deleted file mode 100644 index 56f567e7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php +++ /dev/null @@ -1,56 +0,0 @@ -buildSession(parent::callCustomCreator($driver)); - } - - /** - * Create an instance of the "array" session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createArrayDriver() - { - return $this->buildSession(new NullSessionHandler); - } - - /** - * Create an instance of the "cookie" session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createCookieDriver() - { - return $this->buildSession(new CookieSessionHandler( - $this->app['cookie'], $this->app['config']['session.lifetime'] - )); - } - - /** - * Create an instance of the file session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createFileDriver() - { - return $this->createNativeDriver(); - } - - /** - * Create an instance of the file session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createNativeDriver() - { - $lifetime = $this->app['config']['session.lifetime']; - - return $this->buildSession(new FileSessionHandler( - $this->app['files'], $this->app['config']['session.files'], $lifetime - )); - } - - /** - * Create an instance of the database session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createDatabaseDriver() - { - $table = $this->app['config']['session.table']; - - $lifetime = $this->app['config']['session.lifetime']; - - return $this->buildSession(new DatabaseSessionHandler( - $this->getDatabaseConnection(), $table, $lifetime, $this->app - )); - } - - /** - * Get the database connection for the database driver. - * - * @return \Illuminate\Database\Connection - */ - protected function getDatabaseConnection() - { - $connection = $this->app['config']['session.connection']; - - return $this->app['db']->connection($connection); - } - - /** - * Create an instance of the APC session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createApcDriver() - { - return $this->createCacheBased('apc'); - } - - /** - * Create an instance of the Memcached session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createMemcachedDriver() - { - return $this->createCacheBased('memcached'); - } - - /** - * Create an instance of the Redis session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createRedisDriver() - { - $handler = $this->createCacheHandler('redis'); - - $handler->getCache()->getStore()->setConnection( - $this->app['config']['session.connection'] - ); - - return $this->buildSession($handler); - } - - /** - * Create an instance of a cache driven driver. - * - * @param string $driver - * @return \Illuminate\Session\Store - */ - protected function createCacheBased($driver) - { - return $this->buildSession($this->createCacheHandler($driver)); - } - - /** - * Create the cache based session handler instance. - * - * @param string $driver - * @return \Illuminate\Session\CacheBasedSessionHandler - */ - protected function createCacheHandler($driver) - { - $store = $this->app['config']->get('session.store') ?: $driver; - - return new CacheBasedSessionHandler( - clone $this->app['cache']->store($store), - $this->app['config']['session.lifetime'] - ); - } - - /** - * Build the session instance. - * - * @param \SessionHandlerInterface $handler - * @return \Illuminate\Session\Store - */ - protected function buildSession($handler) - { - if ($this->app['config']['session.encrypt']) { - return $this->buildEncryptedSession($handler); - } - - return new Store($this->app['config']['session.cookie'], $handler); - } - - /** - * Build the encrypted session instance. - * - * @param \SessionHandlerInterface $handler - * @return \Illuminate\Session\EncryptedStore - */ - protected function buildEncryptedSession($handler) - { - return new EncryptedStore( - $this->app['config']['session.cookie'], $handler, $this->app['encrypter'] - ); - } - - /** - * Get the session configuration. - * - * @return array - */ - public function getSessionConfig() - { - return $this->app['config']['session']; - } - - /** - * Get the default session driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['session.driver']; - } - - /** - * Set the default session driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['session.driver'] = $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php deleted file mode 100755 index c8585062..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php +++ /dev/null @@ -1,50 +0,0 @@ -registerSessionManager(); - - $this->registerSessionDriver(); - - $this->app->singleton(StartSession::class); - } - - /** - * Register the session manager instance. - * - * @return void - */ - protected function registerSessionManager() - { - $this->app->singleton('session', function ($app) { - return new SessionManager($app); - }); - } - - /** - * Register the session driver instance. - * - * @return void - */ - protected function registerSessionDriver() - { - $this->app->singleton('session.store', function ($app) { - // First, we will create the session manager which is responsible for the - // creation of the various session drivers when they are needed by the - // application instance, and will resolve them on a lazy load basis. - return $app->make('session')->driver(); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Store.php b/vendor/laravel/framework/src/Illuminate/Session/Store.php deleted file mode 100755 index 0f4f20c9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Store.php +++ /dev/null @@ -1,656 +0,0 @@ -setId($id); - $this->name = $name; - $this->handler = $handler; - } - - /** - * Start the session, reading the data from a handler. - * - * @return bool - */ - public function start() - { - $this->loadSession(); - - if (! $this->has('_token')) { - $this->regenerateToken(); - } - - return $this->started = true; - } - - /** - * Load the session data from the handler. - * - * @return void - */ - protected function loadSession() - { - $this->attributes = array_merge($this->attributes, $this->readFromHandler()); - } - - /** - * Read the session data from the handler. - * - * @return array - */ - protected function readFromHandler() - { - if ($data = $this->handler->read($this->getId())) { - $data = @unserialize($this->prepareForUnserialize($data)); - - if ($data !== false && ! is_null($data) && is_array($data)) { - return $data; - } - } - - return []; - } - - /** - * Prepare the raw string data from the session for unserialization. - * - * @param string $data - * @return string - */ - protected function prepareForUnserialize($data) - { - return $data; - } - - /** - * Save the session data to storage. - * - * @return bool - */ - public function save() - { - $this->ageFlashData(); - - $this->handler->write($this->getId(), $this->prepareForStorage( - serialize($this->attributes) - )); - - $this->started = false; - } - - /** - * Prepare the serialized session data for storage. - * - * @param string $data - * @return string - */ - protected function prepareForStorage($data) - { - return $data; - } - - /** - * Age the flash data for the session. - * - * @return void - */ - public function ageFlashData() - { - $this->forget($this->get('_flash.old', [])); - - $this->put('_flash.old', $this->get('_flash.new', [])); - - $this->put('_flash.new', []); - } - - /** - * Get all of the session data. - * - * @return array - */ - public function all() - { - return $this->attributes; - } - - /** - * Checks if a key exists. - * - * @param string|array $key - * @return bool - */ - public function exists($key) - { - return ! collect(is_array($key) ? $key : func_get_args())->contains(function ($key) { - return ! Arr::exists($this->attributes, $key); - }); - } - - /** - * Checks if a key is present and not null. - * - * @param string|array $key - * @return bool - */ - public function has($key) - { - return ! collect(is_array($key) ? $key : func_get_args())->contains(function ($key) { - return is_null($this->get($key)); - }); - } - - /** - * Get an item from the session. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - return Arr::get($this->attributes, $key, $default); - } - - /** - * Get the value of a given key and then forget it. - * - * @param string $key - * @param string $default - * @return mixed - */ - public function pull($key, $default = null) - { - return Arr::pull($this->attributes, $key, $default); - } - - /** - * Determine if the session contains old input. - * - * @param string $key - * @return bool - */ - public function hasOldInput($key = null) - { - $old = $this->getOldInput($key); - - return is_null($key) ? count($old) > 0 : ! is_null($old); - } - - /** - * Get the requested item from the flashed input array. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function getOldInput($key = null, $default = null) - { - return Arr::get($this->get('_old_input', []), $key, $default); - } - - /** - * Replace the given session attributes entirely. - * - * @param array $attributes - * @return void - */ - public function replace(array $attributes) - { - $this->put($attributes); - } - - /** - * Put a key / value pair or array of key / value pairs in the session. - * - * @param string|array $key - * @param mixed $value - * @return void - */ - public function put($key, $value = null) - { - if (! is_array($key)) { - $key = [$key => $value]; - } - - foreach ($key as $arrayKey => $arrayValue) { - Arr::set($this->attributes, $arrayKey, $arrayValue); - } - } - - /** - * Get an item from the session, or store the default value. - * - * @param string $key - * @param \Closure $callback - * @return mixed - */ - public function remember($key, Closure $callback) - { - if (! is_null($value = $this->get($key))) { - return $value; - } - - return tap($callback(), function ($value) use ($key) { - $this->put($key, $value); - }); - } - - /** - * Push a value onto a session array. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function push($key, $value) - { - $array = $this->get($key, []); - - $array[] = $value; - - $this->put($key, $array); - } - - /** - * Increment the value of an item in the session. - * - * @param string $key - * @param int $amount - * @return mixed - */ - public function increment($key, $amount = 1) - { - $this->put($key, $value = $this->get($key, 0) + $amount); - - return $value; - } - - /** - * Decrement the value of an item in the session. - * - * @param string $key - * @param int $amount - * @return int - */ - public function decrement($key, $amount = 1) - { - return $this->increment($key, $amount * -1); - } - - /** - * Flash a key / value pair to the session. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function flash(string $key, $value = true) - { - $this->put($key, $value); - - $this->push('_flash.new', $key); - - $this->removeFromOldFlashData([$key]); - } - - /** - * Flash a key / value pair to the session for immediate use. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function now($key, $value) - { - $this->put($key, $value); - - $this->push('_flash.old', $key); - } - - /** - * Reflash all of the session flash data. - * - * @return void - */ - public function reflash() - { - $this->mergeNewFlashes($this->get('_flash.old', [])); - - $this->put('_flash.old', []); - } - - /** - * Reflash a subset of the current flash data. - * - * @param array|mixed $keys - * @return void - */ - public function keep($keys = null) - { - $this->mergeNewFlashes($keys = is_array($keys) ? $keys : func_get_args()); - - $this->removeFromOldFlashData($keys); - } - - /** - * Merge new flash keys into the new flash array. - * - * @param array $keys - * @return void - */ - protected function mergeNewFlashes(array $keys) - { - $values = array_unique(array_merge($this->get('_flash.new', []), $keys)); - - $this->put('_flash.new', $values); - } - - /** - * Remove the given keys from the old flash data. - * - * @param array $keys - * @return void - */ - protected function removeFromOldFlashData(array $keys) - { - $this->put('_flash.old', array_diff($this->get('_flash.old', []), $keys)); - } - - /** - * Flash an input array to the session. - * - * @param array $value - * @return void - */ - public function flashInput(array $value) - { - $this->flash('_old_input', $value); - } - - /** - * Remove an item from the session, returning its value. - * - * @param string $key - * @return mixed - */ - public function remove($key) - { - return Arr::pull($this->attributes, $key); - } - - /** - * Remove one or many items from the session. - * - * @param string|array $keys - * @return void - */ - public function forget($keys) - { - Arr::forget($this->attributes, $keys); - } - - /** - * Remove all of the items from the session. - * - * @return void - */ - public function flush() - { - $this->attributes = []; - } - - /** - * Flush the session data and regenerate the ID. - * - * @return bool - */ - public function invalidate() - { - $this->flush(); - - return $this->migrate(true); - } - - /** - * Generate a new session identifier. - * - * @param bool $destroy - * @return bool - */ - public function regenerate($destroy = false) - { - return $this->migrate($destroy); - } - - /** - * Generate a new session ID for the session. - * - * @param bool $destroy - * @return bool - */ - public function migrate($destroy = false) - { - if ($destroy) { - $this->handler->destroy($this->getId()); - } - - $this->setExists(false); - - $this->setId($this->generateSessionId()); - - return true; - } - - /** - * Determine if the session has been started. - * - * @return bool - */ - public function isStarted() - { - return $this->started; - } - - /** - * Get the name of the session. - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Set the name of the session. - * - * @param string $name - * @return void - */ - public function setName($name) - { - $this->name = $name; - } - - /** - * Get the current session ID. - * - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * Set the session ID. - * - * @param string $id - * @return void - */ - public function setId($id) - { - $this->id = $this->isValidId($id) ? $id : $this->generateSessionId(); - } - - /** - * Determine if this is a valid session ID. - * - * @param string $id - * @return bool - */ - public function isValidId($id) - { - return is_string($id) && ctype_alnum($id) && strlen($id) === 40; - } - - /** - * Get a new, random session ID. - * - * @return string - */ - protected function generateSessionId() - { - return Str::random(40); - } - - /** - * Set the existence of the session on the handler if applicable. - * - * @param bool $value - * @return void - */ - public function setExists($value) - { - if ($this->handler instanceof ExistenceAwareInterface) { - $this->handler->setExists($value); - } - } - - /** - * Get the CSRF token value. - * - * @return string - */ - public function token() - { - return $this->get('_token'); - } - - /** - * Regenerate the CSRF token value. - * - * @return void - */ - public function regenerateToken() - { - $this->put('_token', Str::random(40)); - } - - /** - * Get the previous URL from the session. - * - * @return string|null - */ - public function previousUrl() - { - return $this->get('_previous.url'); - } - - /** - * Set the "previous" URL in the session. - * - * @param string $url - * @return void - */ - public function setPreviousUrl($url) - { - $this->put('_previous.url', $url); - } - - /** - * Get the underlying session handler implementation. - * - * @return \SessionHandlerInterface - */ - public function getHandler() - { - return $this->handler; - } - - /** - * Determine if the session handler needs a request. - * - * @return bool - */ - public function handlerNeedsRequest() - { - return $this->handler instanceof CookieSessionHandler; - } - - /** - * Set the request on the handler instance. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - public function setRequestOnHandler($request) - { - if ($this->handlerNeedsRequest()) { - $this->handler->setRequest($request); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php b/vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php deleted file mode 100755 index 98d99a1e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php +++ /dev/null @@ -1,10 +0,0 @@ -=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/filesystem": "5.5.*", - "illuminate/support": "5.5.*", - "symfony/finder": "~3.3", - "symfony/http-foundation": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\Session\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "illuminate/console": "Required to use the session:table command (5.5.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php deleted file mode 100644 index d7425c5c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php +++ /dev/null @@ -1,52 +0,0 @@ -instances = []; - - foreach ($this->providers as $provider) { - $this->instances[] = $this->app->register($provider); - } - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - $provides = []; - - foreach ($this->providers as $provider) { - $instance = $this->app->resolveProvider($provider); - - $provides = array_merge($provides, $instance->provides()); - } - - return $provides; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Arr.php b/vendor/laravel/framework/src/Illuminate/Support/Arr.php deleted file mode 100755 index 5cf83eb1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Arr.php +++ /dev/null @@ -1,610 +0,0 @@ -all(); - } elseif (! is_array($values)) { - continue; - } - - $results = array_merge($results, $values); - } - - return $results; - } - - /** - * Cross join the given arrays, returning all possible permutations. - * - * @param array ...$arrays - * @return array - */ - public static function crossJoin(...$arrays) - { - $results = [[]]; - - foreach ($arrays as $index => $array) { - $append = []; - - foreach ($results as $product) { - foreach ($array as $item) { - $product[$index] = $item; - - $append[] = $product; - } - } - - $results = $append; - } - - return $results; - } - - /** - * Divide an array into two arrays. One with keys and the other with values. - * - * @param array $array - * @return array - */ - public static function divide($array) - { - return [array_keys($array), array_values($array)]; - } - - /** - * Flatten a multi-dimensional associative array with dots. - * - * @param array $array - * @param string $prepend - * @return array - */ - public static function dot($array, $prepend = '') - { - $results = []; - - foreach ($array as $key => $value) { - if (is_array($value) && ! empty($value)) { - $results = array_merge($results, static::dot($value, $prepend.$key.'.')); - } else { - $results[$prepend.$key] = $value; - } - } - - return $results; - } - - /** - * Get all of the given array except for a specified array of keys. - * - * @param array $array - * @param array|string $keys - * @return array - */ - public static function except($array, $keys) - { - static::forget($array, $keys); - - return $array; - } - - /** - * Determine if the given key exists in the provided array. - * - * @param \ArrayAccess|array $array - * @param string|int $key - * @return bool - */ - public static function exists($array, $key) - { - if ($array instanceof ArrayAccess) { - return $array->offsetExists($key); - } - - return array_key_exists($key, $array); - } - - /** - * Return the first element in an array passing a given truth test. - * - * @param array $array - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - public static function first($array, callable $callback = null, $default = null) - { - if (is_null($callback)) { - if (empty($array)) { - return value($default); - } - - foreach ($array as $item) { - return $item; - } - } - - foreach ($array as $key => $value) { - if (call_user_func($callback, $value, $key)) { - return $value; - } - } - - return value($default); - } - - /** - * Return the last element in an array passing a given truth test. - * - * @param array $array - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - public static function last($array, callable $callback = null, $default = null) - { - if (is_null($callback)) { - return empty($array) ? value($default) : end($array); - } - - return static::first(array_reverse($array, true), $callback, $default); - } - - /** - * Flatten a multi-dimensional array into a single level. - * - * @param array $array - * @param int $depth - * @return array - */ - public static function flatten($array, $depth = INF) - { - $result = []; - - foreach ($array as $item) { - $item = $item instanceof Collection ? $item->all() : $item; - - if (! is_array($item)) { - $result[] = $item; - } elseif ($depth === 1) { - $result = array_merge($result, array_values($item)); - } else { - $result = array_merge($result, static::flatten($item, $depth - 1)); - } - } - - return $result; - } - - /** - * Remove one or many array items from a given array using "dot" notation. - * - * @param array $array - * @param array|string $keys - * @return void - */ - public static function forget(&$array, $keys) - { - $original = &$array; - - $keys = (array) $keys; - - if (count($keys) === 0) { - return; - } - - foreach ($keys as $key) { - // if the exact key exists in the top-level, remove it - if (static::exists($array, $key)) { - unset($array[$key]); - - continue; - } - - $parts = explode('.', $key); - - // clean up before each pass - $array = &$original; - - while (count($parts) > 1) { - $part = array_shift($parts); - - if (isset($array[$part]) && is_array($array[$part])) { - $array = &$array[$part]; - } else { - continue 2; - } - } - - unset($array[array_shift($parts)]); - } - } - - /** - * Get an item from an array using "dot" notation. - * - * @param \ArrayAccess|array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - public static function get($array, $key, $default = null) - { - if (! static::accessible($array)) { - return value($default); - } - - if (is_null($key)) { - return $array; - } - - if (static::exists($array, $key)) { - return $array[$key]; - } - - if (strpos($key, '.') === false) { - return $array[$key] ?? value($default); - } - - foreach (explode('.', $key) as $segment) { - if (static::accessible($array) && static::exists($array, $segment)) { - $array = $array[$segment]; - } else { - return value($default); - } - } - - return $array; - } - - /** - * Check if an item or items exist in an array using "dot" notation. - * - * @param \ArrayAccess|array $array - * @param string|array $keys - * @return bool - */ - public static function has($array, $keys) - { - if (is_null($keys)) { - return false; - } - - $keys = (array) $keys; - - if (! $array) { - return false; - } - - if ($keys === []) { - return false; - } - - foreach ($keys as $key) { - $subKeyArray = $array; - - if (static::exists($array, $key)) { - continue; - } - - foreach (explode('.', $key) as $segment) { - if (static::accessible($subKeyArray) && static::exists($subKeyArray, $segment)) { - $subKeyArray = $subKeyArray[$segment]; - } else { - return false; - } - } - } - - return true; - } - - /** - * Determines if an array is associative. - * - * An array is "associative" if it doesn't have sequential numerical keys beginning with zero. - * - * @param array $array - * @return bool - */ - public static function isAssoc(array $array) - { - $keys = array_keys($array); - - return array_keys($keys) !== $keys; - } - - /** - * Get a subset of the items from the given array. - * - * @param array $array - * @param array|string $keys - * @return array - */ - public static function only($array, $keys) - { - return array_intersect_key($array, array_flip((array) $keys)); - } - - /** - * Pluck an array of values from an array. - * - * @param array $array - * @param string|array $value - * @param string|array|null $key - * @return array - */ - public static function pluck($array, $value, $key = null) - { - $results = []; - - list($value, $key) = static::explodePluckParameters($value, $key); - - foreach ($array as $item) { - $itemValue = data_get($item, $value); - - // If the key is "null", we will just append the value to the array and keep - // looping. Otherwise we will key the array using the value of the key we - // received from the developer. Then we'll return the final array form. - if (is_null($key)) { - $results[] = $itemValue; - } else { - $itemKey = data_get($item, $key); - - if (is_object($itemKey) && method_exists($itemKey, '__toString')) { - $itemKey = (string) $itemKey; - } - - $results[$itemKey] = $itemValue; - } - } - - return $results; - } - - /** - * Explode the "value" and "key" arguments passed to "pluck". - * - * @param string|array $value - * @param string|array|null $key - * @return array - */ - protected static function explodePluckParameters($value, $key) - { - $value = is_string($value) ? explode('.', $value) : $value; - - $key = is_null($key) || is_array($key) ? $key : explode('.', $key); - - return [$value, $key]; - } - - /** - * Push an item onto the beginning of an array. - * - * @param array $array - * @param mixed $value - * @param mixed $key - * @return array - */ - public static function prepend($array, $value, $key = null) - { - if (is_null($key)) { - array_unshift($array, $value); - } else { - $array = [$key => $value] + $array; - } - - return $array; - } - - /** - * Get a value from the array, and remove it. - * - * @param array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - public static function pull(&$array, $key, $default = null) - { - $value = static::get($array, $key, $default); - - static::forget($array, $key); - - return $value; - } - - /** - * Get one or a specified number of random values from an array. - * - * @param array $array - * @param int|null $number - * @return mixed - * - * @throws \InvalidArgumentException - */ - public static function random($array, $number = null) - { - $requested = is_null($number) ? 1 : $number; - - $count = count($array); - - if ($requested > $count) { - throw new InvalidArgumentException( - "You requested {$requested} items, but there are only {$count} items available." - ); - } - - if (is_null($number)) { - return $array[array_rand($array)]; - } - - if ((int) $number === 0) { - return []; - } - - $keys = array_rand($array, $number); - - $results = []; - - foreach ((array) $keys as $key) { - $results[] = $array[$key]; - } - - return $results; - } - - /** - * Set an array item to a given value using "dot" notation. - * - * If no key is given to the method, the entire array will be replaced. - * - * @param array $array - * @param string $key - * @param mixed $value - * @return array - */ - public static function set(&$array, $key, $value) - { - if (is_null($key)) { - return $array = $value; - } - - $keys = explode('.', $key); - - while (count($keys) > 1) { - $key = array_shift($keys); - - // If the key doesn't exist at this depth, we will just create an empty array - // to hold the next value, allowing us to create the arrays to hold final - // values at the correct depth. Then we'll keep digging into the array. - if (! isset($array[$key]) || ! is_array($array[$key])) { - $array[$key] = []; - } - - $array = &$array[$key]; - } - - $array[array_shift($keys)] = $value; - - return $array; - } - - /** - * Shuffle the given array and return the result. - * - * @param array $array - * @return array - */ - public static function shuffle($array) - { - shuffle($array); - - return $array; - } - - /** - * Sort the array using the given callback or "dot" notation. - * - * @param array $array - * @param callable|string|null $callback - * @return array - */ - public static function sort($array, $callback = null) - { - return Collection::make($array)->sortBy($callback)->all(); - } - - /** - * Recursively sort an array by keys and values. - * - * @param array $array - * @return array - */ - public static function sortRecursive($array) - { - foreach ($array as &$value) { - if (is_array($value)) { - $value = static::sortRecursive($value); - } - } - - if (static::isAssoc($array)) { - ksort($array); - } else { - sort($array); - } - - return $array; - } - - /** - * Filter the array using the given callback. - * - * @param array $array - * @param callable $callback - * @return array - */ - public static function where($array, callable $callback) - { - return array_filter($array, $callback, ARRAY_FILTER_USE_BOTH); - } - - /** - * If the given value is not an array, wrap it in one. - * - * @param mixed $value - * @return array - */ - public static function wrap($value) - { - return ! is_array($value) ? [$value] : $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Carbon.php b/vendor/laravel/framework/src/Illuminate/Support/Carbon.php deleted file mode 100644 index 6ac3aa0d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Carbon.php +++ /dev/null @@ -1,59 +0,0 @@ -items = $this->getArrayableItems($items); - } - - /** - * Create a new collection instance if the value isn't one already. - * - * @param mixed $items - * @return static - */ - public static function make($items = []) - { - return new static($items); - } - - /** - * Wrap the given value in a collection if applicable. - * - * @param mixed $value - * @return static - */ - public static function wrap($value) - { - return $value instanceof self - ? new static($value) - : new static(Arr::wrap($value)); - } - - /** - * Get the underlying items from the given collection if applicable. - * - * @param array|static $value - * @return array - */ - public static function unwrap($value) - { - return $value instanceof self ? $value->all() : $value; - } - - /** - * Create a new collection by invoking the callback a given amount of times. - * - * @param int $number - * @param callable $callback - * @return static - */ - public static function times($number, callable $callback = null) - { - if ($number < 1) { - return new static; - } - - if (is_null($callback)) { - return new static(range(1, $number)); - } - - return (new static(range(1, $number)))->map($callback); - } - - /** - * Get all of the items in the collection. - * - * @return array - */ - public function all() - { - return $this->items; - } - - /** - * Get the average value of a given key. - * - * @param callable|string|null $callback - * @return mixed - */ - public function avg($callback = null) - { - if ($count = $this->count()) { - return $this->sum($callback) / $count; - } - } - - /** - * Alias for the "avg" method. - * - * @param callable|string|null $callback - * @return mixed - */ - public function average($callback = null) - { - return $this->avg($callback); - } - - /** - * Get the median of a given key. - * - * @param null $key - * @return mixed - */ - public function median($key = null) - { - $count = $this->count(); - - if ($count == 0) { - return; - } - - $values = (isset($key) ? $this->pluck($key) : $this) - ->sort()->values(); - - $middle = (int) ($count / 2); - - if ($count % 2) { - return $values->get($middle); - } - - return (new static([ - $values->get($middle - 1), $values->get($middle), - ]))->average(); - } - - /** - * Get the mode of a given key. - * - * @param mixed $key - * @return array|null - */ - public function mode($key = null) - { - $count = $this->count(); - - if ($count == 0) { - return; - } - - $collection = isset($key) ? $this->pluck($key) : $this; - - $counts = new self; - - $collection->each(function ($value) use ($counts) { - $counts[$value] = isset($counts[$value]) ? $counts[$value] + 1 : 1; - }); - - $sorted = $counts->sort(); - - $highestValue = $sorted->last(); - - return $sorted->filter(function ($value) use ($highestValue) { - return $value == $highestValue; - })->sort()->keys()->all(); - } - - /** - * Collapse the collection of items into a single array. - * - * @return static - */ - public function collapse() - { - return new static(Arr::collapse($this->items)); - } - - /** - * Determine if an item exists in the collection. - * - * @param mixed $key - * @param mixed $operator - * @param mixed $value - * @return bool - */ - public function contains($key, $operator = null, $value = null) - { - if (func_num_args() == 1) { - if ($this->useAsCallable($key)) { - $placeholder = new stdClass; - - return $this->first($key, $placeholder) !== $placeholder; - } - - return in_array($key, $this->items); - } - - return $this->contains($this->operatorForWhere(...func_get_args())); - } - - /** - * Determine if an item exists in the collection using strict comparison. - * - * @param mixed $key - * @param mixed $value - * @return bool - */ - public function containsStrict($key, $value = null) - { - if (func_num_args() == 2) { - return $this->contains(function ($item) use ($key, $value) { - return data_get($item, $key) === $value; - }); - } - - if ($this->useAsCallable($key)) { - return ! is_null($this->first($key)); - } - - return in_array($key, $this->items, true); - } - - /** - * Cross join with the given lists, returning all possible permutations. - * - * @param mixed ...$lists - * @return static - */ - public function crossJoin(...$lists) - { - return new static(Arr::crossJoin( - $this->items, ...array_map([$this, 'getArrayableItems'], $lists) - )); - } - - /** - * Dump the collection and end the script. - * - * @return void - */ - public function dd(...$args) - { - http_response_code(500); - - call_user_func_array([$this, 'dump'], $args); - - die(1); - } - - /** - * Dump the collection. - * - * @return $this - */ - public function dump() - { - (new static(func_get_args())) - ->push($this) - ->each(function ($item) { - (new Dumper)->dump($item); - }); - - return $this; - } - - /** - * Get the items in the collection that are not present in the given items. - * - * @param mixed $items - * @return static - */ - public function diff($items) - { - return new static(array_diff($this->items, $this->getArrayableItems($items))); - } - - /** - * Get the items in the collection whose keys and values are not present in the given items. - * - * @param mixed $items - * @return static - */ - public function diffAssoc($items) - { - return new static(array_diff_assoc($this->items, $this->getArrayableItems($items))); - } - - /** - * Get the items in the collection whose keys are not present in the given items. - * - * @param mixed $items - * @return static - */ - public function diffKeys($items) - { - return new static(array_diff_key($this->items, $this->getArrayableItems($items))); - } - - /** - * Execute a callback over each item. - * - * @param callable $callback - * @return $this - */ - public function each(callable $callback) - { - foreach ($this->items as $key => $item) { - if ($callback($item, $key) === false) { - break; - } - } - - return $this; - } - - /** - * Execute a callback over each nested chunk of items. - * - * @param callable $callback - * @return static - */ - public function eachSpread(callable $callback) - { - return $this->each(function ($chunk, $key) use ($callback) { - $chunk[] = $key; - - return $callback(...$chunk); - }); - } - - /** - * Determine if all items in the collection pass the given test. - * - * @param string|callable $key - * @param mixed $operator - * @param mixed $value - * @return bool - */ - public function every($key, $operator = null, $value = null) - { - if (func_num_args() == 1) { - $callback = $this->valueRetriever($key); - - foreach ($this->items as $k => $v) { - if (! $callback($v, $k)) { - return false; - } - } - - return true; - } - - return $this->every($this->operatorForWhere(...func_get_args())); - } - - /** - * Get all items except for those with the specified keys. - * - * @param \Illuminate\Support\Collection|mixed $keys - * @return static - */ - public function except($keys) - { - if ($keys instanceof self) { - $keys = $keys->all(); - } elseif (! is_array($keys)) { - $keys = func_get_args(); - } - - return new static(Arr::except($this->items, $keys)); - } - - /** - * Run a filter over each of the items. - * - * @param callable|null $callback - * @return static - */ - public function filter(callable $callback = null) - { - if ($callback) { - return new static(Arr::where($this->items, $callback)); - } - - return new static(array_filter($this->items)); - } - - /** - * Apply the callback if the value is truthy. - * - * @param bool $value - * @param callable $callback - * @param callable $default - * @return mixed - */ - public function when($value, callable $callback, callable $default = null) - { - if ($value) { - return $callback($this, $value); - } elseif ($default) { - return $default($this, $value); - } - - return $this; - } - - /** - * Apply the callback if the value is falsy. - * - * @param bool $value - * @param callable $callback - * @param callable $default - * @return mixed - */ - public function unless($value, callable $callback, callable $default = null) - { - return $this->when(! $value, $callback, $default); - } - - /** - * Filter items by the given key value pair. - * - * @param string $key - * @param mixed $operator - * @param mixed $value - * @return static - */ - public function where($key, $operator, $value = null) - { - return $this->filter($this->operatorForWhere(...func_get_args())); - } - - /** - * Get an operator checker callback. - * - * @param string $key - * @param string $operator - * @param mixed $value - * @return \Closure - */ - protected function operatorForWhere($key, $operator, $value = null) - { - if (func_num_args() == 2) { - $value = $operator; - - $operator = '='; - } - - return function ($item) use ($key, $operator, $value) { - $retrieved = data_get($item, $key); - - $strings = array_filter([$retrieved, $value], function ($value) { - return is_string($value) || (is_object($value) && method_exists($value, '__toString')); - }); - - if (count($strings) < 2 && count(array_filter([$retrieved, $value], 'is_object')) == 1) { - return in_array($operator, ['!=', '<>', '!==']); - } - - switch ($operator) { - default: - case '=': - case '==': return $retrieved == $value; - case '!=': - case '<>': return $retrieved != $value; - case '<': return $retrieved < $value; - case '>': return $retrieved > $value; - case '<=': return $retrieved <= $value; - case '>=': return $retrieved >= $value; - case '===': return $retrieved === $value; - case '!==': return $retrieved !== $value; - } - }; - } - - /** - * Filter items by the given key value pair using strict comparison. - * - * @param string $key - * @param mixed $value - * @return static - */ - public function whereStrict($key, $value) - { - return $this->where($key, '===', $value); - } - - /** - * Filter items by the given key value pair. - * - * @param string $key - * @param mixed $values - * @param bool $strict - * @return static - */ - public function whereIn($key, $values, $strict = false) - { - $values = $this->getArrayableItems($values); - - return $this->filter(function ($item) use ($key, $values, $strict) { - return in_array(data_get($item, $key), $values, $strict); - }); - } - - /** - * Filter items by the given key value pair using strict comparison. - * - * @param string $key - * @param mixed $values - * @return static - */ - public function whereInStrict($key, $values) - { - return $this->whereIn($key, $values, true); - } - - /** - * Filter items by the given key value pair. - * - * @param string $key - * @param mixed $values - * @param bool $strict - * @return static - */ - public function whereNotIn($key, $values, $strict = false) - { - $values = $this->getArrayableItems($values); - - return $this->reject(function ($item) use ($key, $values, $strict) { - return in_array(data_get($item, $key), $values, $strict); - }); - } - - /** - * Filter items by the given key value pair using strict comparison. - * - * @param string $key - * @param mixed $values - * @return static - */ - public function whereNotInStrict($key, $values) - { - return $this->whereNotIn($key, $values, true); - } - - /** - * Get the first item from the collection. - * - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - public function first(callable $callback = null, $default = null) - { - return Arr::first($this->items, $callback, $default); - } - - /** - * Get the first item by the given key value pair. - * - * @param string $key - * @param mixed $operator - * @param mixed $value - * @return static - */ - public function firstWhere($key, $operator, $value = null) - { - return $this->first($this->operatorForWhere(...func_get_args())); - } - - /** - * Get a flattened array of the items in the collection. - * - * @param int $depth - * @return static - */ - public function flatten($depth = INF) - { - return new static(Arr::flatten($this->items, $depth)); - } - - /** - * Flip the items in the collection. - * - * @return static - */ - public function flip() - { - return new static(array_flip($this->items)); - } - - /** - * Remove an item from the collection by key. - * - * @param string|array $keys - * @return $this - */ - public function forget($keys) - { - foreach ((array) $keys as $key) { - $this->offsetUnset($key); - } - - return $this; - } - - /** - * Get an item from the collection by key. - * - * @param mixed $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - if ($this->offsetExists($key)) { - return $this->items[$key]; - } - - return value($default); - } - - /** - * Group an associative array by a field or using a callback. - * - * @param callable|string $groupBy - * @param bool $preserveKeys - * @return static - */ - public function groupBy($groupBy, $preserveKeys = false) - { - if (is_array($groupBy)) { - $nextGroups = $groupBy; - - $groupBy = array_shift($nextGroups); - } - - $groupBy = $this->valueRetriever($groupBy); - - $results = []; - - foreach ($this->items as $key => $value) { - $groupKeys = $groupBy($value, $key); - - if (! is_array($groupKeys)) { - $groupKeys = [$groupKeys]; - } - - foreach ($groupKeys as $groupKey) { - $groupKey = is_bool($groupKey) ? (int) $groupKey : $groupKey; - - if (! array_key_exists($groupKey, $results)) { - $results[$groupKey] = new static; - } - - $results[$groupKey]->offsetSet($preserveKeys ? $key : null, $value); - } - } - - $result = new static($results); - - if (! empty($nextGroups)) { - return $result->map->groupBy($nextGroups, $preserveKeys); - } - - return $result; - } - - /** - * Key an associative array by a field or using a callback. - * - * @param callable|string $keyBy - * @return static - */ - public function keyBy($keyBy) - { - $keyBy = $this->valueRetriever($keyBy); - - $results = []; - - foreach ($this->items as $key => $item) { - $resolvedKey = $keyBy($item, $key); - - if (is_object($resolvedKey)) { - $resolvedKey = (string) $resolvedKey; - } - - $results[$resolvedKey] = $item; - } - - return new static($results); - } - - /** - * Determine if an item exists in the collection by key. - * - * @param mixed $key - * @return bool - */ - public function has($key) - { - $keys = is_array($key) ? $key : func_get_args(); - - foreach ($keys as $value) { - if (! $this->offsetExists($value)) { - return false; - } - } - - return true; - } - - /** - * Concatenate values of a given key as a string. - * - * @param string $value - * @param string $glue - * @return string - */ - public function implode($value, $glue = null) - { - $first = $this->first(); - - if (is_array($first) || is_object($first)) { - return implode($glue, $this->pluck($value)->all()); - } - - return implode($value, $this->items); - } - - /** - * Intersect the collection with the given items. - * - * @param mixed $items - * @return static - */ - public function intersect($items) - { - return new static(array_intersect($this->items, $this->getArrayableItems($items))); - } - - /** - * Intersect the collection with the given items by key. - * - * @param mixed $items - * @return static - */ - public function intersectByKeys($items) - { - return new static(array_intersect_key( - $this->items, $this->getArrayableItems($items) - )); - } - - /** - * Determine if the collection is empty or not. - * - * @return bool - */ - public function isEmpty() - { - return empty($this->items); - } - - /** - * Determine if the collection is not empty. - * - * @return bool - */ - public function isNotEmpty() - { - return ! $this->isEmpty(); - } - - /** - * Determine if the given value is callable, but not a string. - * - * @param mixed $value - * @return bool - */ - protected function useAsCallable($value) - { - return ! is_string($value) && is_callable($value); - } - - /** - * Get the keys of the collection items. - * - * @return static - */ - public function keys() - { - return new static(array_keys($this->items)); - } - - /** - * Get the last item from the collection. - * - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - public function last(callable $callback = null, $default = null) - { - return Arr::last($this->items, $callback, $default); - } - - /** - * Get the values of a given key. - * - * @param string|array $value - * @param string|null $key - * @return static - */ - public function pluck($value, $key = null) - { - return new static(Arr::pluck($this->items, $value, $key)); - } - - /** - * Run a map over each of the items. - * - * @param callable $callback - * @return static - */ - public function map(callable $callback) - { - $keys = array_keys($this->items); - - $items = array_map($callback, $this->items, $keys); - - return new static(array_combine($keys, $items)); - } - - /** - * Run a map over each nested chunk of items. - * - * @param callable $callback - * @return static - */ - public function mapSpread(callable $callback) - { - return $this->map(function ($chunk, $key) use ($callback) { - $chunk[] = $key; - - return $callback(...$chunk); - }); - } - - /** - * Run a dictionary map over the items. - * - * The callback should return an associative array with a single key/value pair. - * - * @param callable $callback - * @return static - */ - public function mapToDictionary(callable $callback) - { - $dictionary = $this->map($callback)->reduce(function ($groups, $pair) { - $groups[key($pair)][] = reset($pair); - - return $groups; - }, []); - - return new static($dictionary); - } - - /** - * Run a grouping map over the items. - * - * The callback should return an associative array with a single key/value pair. - * - * @param callable $callback - * @return static - */ - public function mapToGroups(callable $callback) - { - $groups = $this->mapToDictionary($callback); - - return $groups->map([$this, 'make']); - } - - /** - * Run an associative map over each of the items. - * - * The callback should return an associative array with a single key/value pair. - * - * @param callable $callback - * @return static - */ - public function mapWithKeys(callable $callback) - { - $result = []; - - foreach ($this->items as $key => $value) { - $assoc = $callback($value, $key); - - foreach ($assoc as $mapKey => $mapValue) { - $result[$mapKey] = $mapValue; - } - } - - return new static($result); - } - - /** - * Map a collection and flatten the result by a single level. - * - * @param callable $callback - * @return static - */ - public function flatMap(callable $callback) - { - return $this->map($callback)->collapse(); - } - - /** - * Map the values into a new class. - * - * @param string $class - * @return static - */ - public function mapInto($class) - { - return $this->map(function ($value, $key) use ($class) { - return new $class($value, $key); - }); - } - - /** - * Get the max value of a given key. - * - * @param callable|string|null $callback - * @return mixed - */ - public function max($callback = null) - { - $callback = $this->valueRetriever($callback); - - return $this->filter(function ($value) { - return ! is_null($value); - })->reduce(function ($result, $item) use ($callback) { - $value = $callback($item); - - return is_null($result) || $value > $result ? $value : $result; - }); - } - - /** - * Merge the collection with the given items. - * - * @param mixed $items - * @return static - */ - public function merge($items) - { - return new static(array_merge($this->items, $this->getArrayableItems($items))); - } - - /** - * Create a collection by using this collection for keys and another for its values. - * - * @param mixed $values - * @return static - */ - public function combine($values) - { - return new static(array_combine($this->all(), $this->getArrayableItems($values))); - } - - /** - * Union the collection with the given items. - * - * @param mixed $items - * @return static - */ - public function union($items) - { - return new static($this->items + $this->getArrayableItems($items)); - } - - /** - * Get the min value of a given key. - * - * @param callable|string|null $callback - * @return mixed - */ - public function min($callback = null) - { - $callback = $this->valueRetriever($callback); - - return $this->filter(function ($value) { - return ! is_null($value); - })->reduce(function ($result, $item) use ($callback) { - $value = $callback($item); - - return is_null($result) || $value < $result ? $value : $result; - }); - } - - /** - * Create a new collection consisting of every n-th element. - * - * @param int $step - * @param int $offset - * @return static - */ - public function nth($step, $offset = 0) - { - $new = []; - - $position = 0; - - foreach ($this->items as $item) { - if ($position % $step === $offset) { - $new[] = $item; - } - - $position++; - } - - return new static($new); - } - - /** - * Get the items with the specified keys. - * - * @param mixed $keys - * @return static - */ - public function only($keys) - { - if (is_null($keys)) { - return new static($this->items); - } - - if ($keys instanceof self) { - $keys = $keys->all(); - } - - $keys = is_array($keys) ? $keys : func_get_args(); - - return new static(Arr::only($this->items, $keys)); - } - - /** - * "Paginate" the collection by slicing it into a smaller collection. - * - * @param int $page - * @param int $perPage - * @return static - */ - public function forPage($page, $perPage) - { - $offset = max(0, ($page - 1) * $perPage); - - return $this->slice($offset, $perPage); - } - - /** - * Partition the collection into two arrays using the given callback or key. - * - * @param callable|string $callback - * @return static - */ - public function partition($callback) - { - $partitions = [new static, new static]; - - $callback = $this->valueRetriever($callback); - - foreach ($this->items as $key => $item) { - $partitions[(int) ! $callback($item, $key)][$key] = $item; - } - - return new static($partitions); - } - - /** - * Pass the collection to the given callback and return the result. - * - * @param callable $callback - * @return mixed - */ - public function pipe(callable $callback) - { - return $callback($this); - } - - /** - * Get and remove the last item from the collection. - * - * @return mixed - */ - public function pop() - { - return array_pop($this->items); - } - - /** - * Push an item onto the beginning of the collection. - * - * @param mixed $value - * @param mixed $key - * @return $this - */ - public function prepend($value, $key = null) - { - $this->items = Arr::prepend($this->items, $value, $key); - - return $this; - } - - /** - * Push an item onto the end of the collection. - * - * @param mixed $value - * @return $this - */ - public function push($value) - { - $this->offsetSet(null, $value); - - return $this; - } - - /** - * Push all of the given items onto the collection. - * - * @param \Traversable $source - * @return $this - */ - public function concat($source) - { - $result = new static($this); - - foreach ($source as $item) { - $result->push($item); - } - - return $result; - } - - /** - * Get and remove an item from the collection. - * - * @param mixed $key - * @param mixed $default - * @return mixed - */ - public function pull($key, $default = null) - { - return Arr::pull($this->items, $key, $default); - } - - /** - * Put an item in the collection by key. - * - * @param mixed $key - * @param mixed $value - * @return $this - */ - public function put($key, $value) - { - $this->offsetSet($key, $value); - - return $this; - } - - /** - * Get one or a specified number of items randomly from the collection. - * - * @param int|null $number - * @return mixed - * - * @throws \InvalidArgumentException - */ - public function random($number = null) - { - if (is_null($number)) { - return Arr::random($this->items); - } - - return new static(Arr::random($this->items, $number)); - } - - /** - * Reduce the collection to a single value. - * - * @param callable $callback - * @param mixed $initial - * @return mixed - */ - public function reduce(callable $callback, $initial = null) - { - return array_reduce($this->items, $callback, $initial); - } - - /** - * Create a collection of all elements that do not pass a given truth test. - * - * @param callable|mixed $callback - * @return static - */ - public function reject($callback) - { - if ($this->useAsCallable($callback)) { - return $this->filter(function ($value, $key) use ($callback) { - return ! $callback($value, $key); - }); - } - - return $this->filter(function ($item) use ($callback) { - return $item != $callback; - }); - } - - /** - * Reverse items order. - * - * @return static - */ - public function reverse() - { - return new static(array_reverse($this->items, true)); - } - - /** - * Search the collection for a given value and return the corresponding key if successful. - * - * @param mixed $value - * @param bool $strict - * @return mixed - */ - public function search($value, $strict = false) - { - if (! $this->useAsCallable($value)) { - return array_search($value, $this->items, $strict); - } - - foreach ($this->items as $key => $item) { - if (call_user_func($value, $item, $key)) { - return $key; - } - } - - return false; - } - - /** - * Get and remove the first item from the collection. - * - * @return mixed - */ - public function shift() - { - return array_shift($this->items); - } - - /** - * Shuffle the items in the collection. - * - * @param int $seed - * @return static - */ - public function shuffle($seed = null) - { - $items = $this->items; - - if (is_null($seed)) { - shuffle($items); - } else { - srand($seed); - - usort($items, function () { - return rand(-1, 1); - }); - } - - return new static($items); - } - - /** - * Slice the underlying collection array. - * - * @param int $offset - * @param int $length - * @return static - */ - public function slice($offset, $length = null) - { - return new static(array_slice($this->items, $offset, $length, true)); - } - - /** - * Split a collection into a certain number of groups. - * - * @param int $numberOfGroups - * @return static - */ - public function split($numberOfGroups) - { - if ($this->isEmpty()) { - return new static; - } - - $groupSize = ceil($this->count() / $numberOfGroups); - - return $this->chunk($groupSize); - } - - /** - * Chunk the underlying collection array. - * - * @param int $size - * @return static - */ - public function chunk($size) - { - if ($size <= 0) { - return new static; - } - - $chunks = []; - - foreach (array_chunk($this->items, $size, true) as $chunk) { - $chunks[] = new static($chunk); - } - - return new static($chunks); - } - - /** - * Sort through each item with a callback. - * - * @param callable|null $callback - * @return static - */ - public function sort(callable $callback = null) - { - $items = $this->items; - - $callback - ? uasort($items, $callback) - : asort($items); - - return new static($items); - } - - /** - * Sort the collection using the given callback. - * - * @param callable|string $callback - * @param int $options - * @param bool $descending - * @return static - */ - public function sortBy($callback, $options = SORT_REGULAR, $descending = false) - { - $results = []; - - $callback = $this->valueRetriever($callback); - - // First we will loop through the items and get the comparator from a callback - // function which we were given. Then, we will sort the returned values and - // and grab the corresponding values for the sorted keys from this array. - foreach ($this->items as $key => $value) { - $results[$key] = $callback($value, $key); - } - - $descending ? arsort($results, $options) - : asort($results, $options); - - // Once we have sorted all of the keys in the array, we will loop through them - // and grab the corresponding model so we can set the underlying items list - // to the sorted version. Then we'll just return the collection instance. - foreach (array_keys($results) as $key) { - $results[$key] = $this->items[$key]; - } - - return new static($results); - } - - /** - * Sort the collection in descending order using the given callback. - * - * @param callable|string $callback - * @param int $options - * @return static - */ - public function sortByDesc($callback, $options = SORT_REGULAR) - { - return $this->sortBy($callback, $options, true); - } - - /** - * Splice a portion of the underlying collection array. - * - * @param int $offset - * @param int|null $length - * @param mixed $replacement - * @return static - */ - public function splice($offset, $length = null, $replacement = []) - { - if (func_num_args() == 1) { - return new static(array_splice($this->items, $offset)); - } - - return new static(array_splice($this->items, $offset, $length, $replacement)); - } - - /** - * Get the sum of the given values. - * - * @param callable|string|null $callback - * @return mixed - */ - public function sum($callback = null) - { - if (is_null($callback)) { - return array_sum($this->items); - } - - $callback = $this->valueRetriever($callback); - - return $this->reduce(function ($result, $item) use ($callback) { - return $result + $callback($item); - }, 0); - } - - /** - * Take the first or last {$limit} items. - * - * @param int $limit - * @return static - */ - public function take($limit) - { - if ($limit < 0) { - return $this->slice($limit, abs($limit)); - } - - return $this->slice(0, $limit); - } - - /** - * Pass the collection to the given callback and then return it. - * - * @param callable $callback - * @return $this - */ - public function tap(callable $callback) - { - $callback(new static($this->items)); - - return $this; - } - - /** - * Transform each item in the collection using a callback. - * - * @param callable $callback - * @return $this - */ - public function transform(callable $callback) - { - $this->items = $this->map($callback)->all(); - - return $this; - } - - /** - * Return only unique items from the collection array. - * - * @param string|callable|null $key - * @param bool $strict - * @return static - */ - public function unique($key = null, $strict = false) - { - if (is_null($key)) { - return new static(array_unique($this->items, SORT_REGULAR)); - } - - $callback = $this->valueRetriever($key); - - $exists = []; - - return $this->reject(function ($item, $key) use ($callback, $strict, &$exists) { - if (in_array($id = $callback($item, $key), $exists, $strict)) { - return true; - } - - $exists[] = $id; - }); - } - - /** - * Return only unique items from the collection array using strict comparison. - * - * @param string|callable|null $key - * @return static - */ - public function uniqueStrict($key = null) - { - return $this->unique($key, true); - } - - /** - * Reset the keys on the underlying array. - * - * @return static - */ - public function values() - { - return new static(array_values($this->items)); - } - - /** - * Get a value retrieving callback. - * - * @param string $value - * @return callable - */ - protected function valueRetriever($value) - { - if ($this->useAsCallable($value)) { - return $value; - } - - return function ($item) use ($value) { - return data_get($item, $value); - }; - } - - /** - * Zip the collection together with one or more arrays. - * - * e.g. new Collection([1, 2, 3])->zip([4, 5, 6]); - * => [[1, 4], [2, 5], [3, 6]] - * - * @param mixed ...$items - * @return static - */ - public function zip($items) - { - $arrayableItems = array_map(function ($items) { - return $this->getArrayableItems($items); - }, func_get_args()); - - $params = array_merge([function () { - return new static(func_get_args()); - }, $this->items], $arrayableItems); - - return new static(call_user_func_array('array_map', $params)); - } - - /** - * Pad collection to the specified length with a value. - * - * @param int $size - * @param mixed $value - * @return static - */ - public function pad($size, $value) - { - return new static(array_pad($this->items, $size, $value)); - } - - /** - * Get the collection of items as a plain array. - * - * @return array - */ - public function toArray() - { - return array_map(function ($value) { - return $value instanceof Arrayable ? $value->toArray() : $value; - }, $this->items); - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return array_map(function ($value) { - if ($value instanceof JsonSerializable) { - return $value->jsonSerialize(); - } elseif ($value instanceof Jsonable) { - return json_decode($value->toJson(), true); - } elseif ($value instanceof Arrayable) { - return $value->toArray(); - } - - return $value; - }, $this->items); - } - - /** - * Get the collection of items as JSON. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } - - /** - * Get an iterator for the items. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->items); - } - - /** - * Get a CachingIterator instance. - * - * @param int $flags - * @return \CachingIterator - */ - public function getCachingIterator($flags = CachingIterator::CALL_TOSTRING) - { - return new CachingIterator($this->getIterator(), $flags); - } - - /** - * Count the number of items in the collection. - * - * @return int - */ - public function count() - { - return count($this->items); - } - - /** - * Get a base Support collection instance from this collection. - * - * @return \Illuminate\Support\Collection - */ - public function toBase() - { - return new self($this); - } - - /** - * Determine if an item exists at an offset. - * - * @param mixed $key - * @return bool - */ - public function offsetExists($key) - { - return array_key_exists($key, $this->items); - } - - /** - * Get an item at a given offset. - * - * @param mixed $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->items[$key]; - } - - /** - * Set the item at a given offset. - * - * @param mixed $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - if (is_null($key)) { - $this->items[] = $value; - } else { - $this->items[$key] = $value; - } - } - - /** - * Unset the item at a given offset. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - unset($this->items[$key]); - } - - /** - * Convert the collection to its string representation. - * - * @return string - */ - public function __toString() - { - return $this->toJson(); - } - - /** - * Results array of items from Collection or Arrayable. - * - * @param mixed $items - * @return array - */ - protected function getArrayableItems($items) - { - if (is_array($items)) { - return $items; - } elseif ($items instanceof self) { - return $items->all(); - } elseif ($items instanceof Arrayable) { - return $items->toArray(); - } elseif ($items instanceof Jsonable) { - return json_decode($items->toJson(), true); - } elseif ($items instanceof JsonSerializable) { - return $items->jsonSerialize(); - } elseif ($items instanceof Traversable) { - return iterator_to_array($items); - } - - return (array) $items; - } - - /** - * Add a method to the list of proxied methods. - * - * @param string $method - * @return void - */ - public static function proxy($method) - { - static::$proxies[] = $method; - } - - /** - * Dynamically access collection proxies. - * - * @param string $key - * @return mixed - * - * @throws \Exception - */ - public function __get($key) - { - if (! in_array($key, static::$proxies)) { - throw new Exception("Property [{$key}] does not exist on this collection instance."); - } - - return new HigherOrderCollectionProxy($this, $key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Composer.php b/vendor/laravel/framework/src/Illuminate/Support/Composer.php deleted file mode 100644 index bc76aeb2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Composer.php +++ /dev/null @@ -1,99 +0,0 @@ -files = $files; - $this->workingPath = $workingPath; - } - - /** - * Regenerate the Composer autoloader files. - * - * @param string $extra - * @return void - */ - public function dumpAutoloads($extra = '') - { - $process = $this->getProcess(); - - $process->setCommandLine(trim($this->findComposer().' dump-autoload '.$extra)); - - $process->run(); - } - - /** - * Regenerate the optimized Composer autoloader files. - * - * @return void - */ - public function dumpOptimized() - { - $this->dumpAutoloads('--optimize'); - } - - /** - * Get the composer command for the environment. - * - * @return string - */ - protected function findComposer() - { - if ($this->files->exists($this->workingPath.'/composer.phar')) { - return ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)).' composer.phar'; - } - - return 'composer'; - } - - /** - * Get a new Symfony process instance. - * - * @return \Symfony\Component\Process\Process - */ - protected function getProcess() - { - return (new Process('', $this->workingPath))->setTimeout(null); - } - - /** - * Set the working path used by the class. - * - * @param string $path - * @return $this - */ - public function setWorkingPath($path) - { - $this->workingPath = realpath($path); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php b/vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php deleted file mode 100644 index 7442343f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php +++ /dev/null @@ -1,26 +0,0 @@ -dump((new VarCloner)->cloneVar($value)); - } else { - var_dump($value); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php b/vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php deleted file mode 100644 index 5825ac8d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php +++ /dev/null @@ -1,29 +0,0 @@ - 'background-color:#fff; color:#222; line-height:1.2em; font-weight:normal; font:12px Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:100000', - 'num' => 'color:#a71d5d', - 'const' => 'color:#795da3', - 'str' => 'color:#df5000', - 'cchr' => 'color:#222', - 'note' => 'color:#a71d5d', - 'ref' => 'color:#a0a0a0', - 'public' => 'color:#795da3', - 'protected' => 'color:#795da3', - 'private' => 'color:#795da3', - 'meta' => 'color:#b729d9', - 'key' => 'color:#df5000', - 'index' => 'color:#a71d5d', - ]; -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php deleted file mode 100755 index 0e9e6370..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php +++ /dev/null @@ -1,31 +0,0 @@ -make('router')->auth(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php deleted file mode 100755 index b016a46c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php +++ /dev/null @@ -1,19 +0,0 @@ -getEngineResolver()->resolve('blade')->getCompiler(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php deleted file mode 100644 index 81af9321..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php +++ /dev/null @@ -1,21 +0,0 @@ -cookie($key, null)); - } - - /** - * Retrieve a cookie from the request. - * - * @param string $key - * @param mixed $default - * @return string - */ - public static function get($key = null, $default = null) - { - return static::$app['request']->cookie($key, $default); - } - - /** - * Get the registered name of the component. - * - * @return string - */ - protected static function getFacadeAccessor() - { - return 'cookie'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php deleted file mode 100755 index 0eef08d1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php +++ /dev/null @@ -1,19 +0,0 @@ -shouldReceive(...func_get_args()); - } - - /** - * Create a fresh mock instance for the given class. - * - * @return \Mockery\Expectation - */ - protected static function createFreshMockInstance() - { - return tap(static::createMock(), function ($mock) { - static::swap($mock); - - $mock->shouldAllowMockingProtectedMethods(); - }); - } - - /** - * Create a fresh mock instance for the given class. - * - * @return \Mockery\MockInterface - */ - protected static function createMock() - { - $class = static::getMockableClass(); - - return $class ? Mockery::mock($class) : Mockery::mock(); - } - - /** - * Determines whether a mock is set as the instance of the facade. - * - * @return bool - */ - protected static function isMock() - { - $name = static::getFacadeAccessor(); - - return isset(static::$resolvedInstance[$name]) && - static::$resolvedInstance[$name] instanceof MockInterface; - } - - /** - * Get the mockable class for the bound instance. - * - * @return string|null - */ - protected static function getMockableClass() - { - if ($root = static::getFacadeRoot()) { - return get_class($root); - } - } - - /** - * Hotswap the underlying instance behind the facade. - * - * @param mixed $instance - * @return void - */ - public static function swap($instance) - { - static::$resolvedInstance[static::getFacadeAccessor()] = $instance; - - if (isset(static::$app)) { - static::$app->instance(static::getFacadeAccessor(), $instance); - } - } - - /** - * Get the root object behind the facade. - * - * @return mixed - */ - public static function getFacadeRoot() - { - return static::resolveFacadeInstance(static::getFacadeAccessor()); - } - - /** - * Get the registered name of the component. - * - * @return string - * - * @throws \RuntimeException - */ - protected static function getFacadeAccessor() - { - throw new RuntimeException('Facade does not implement getFacadeAccessor method.'); - } - - /** - * Resolve the facade root instance from the container. - * - * @param string|object $name - * @return mixed - */ - protected static function resolveFacadeInstance($name) - { - if (is_object($name)) { - return $name; - } - - if (isset(static::$resolvedInstance[$name])) { - return static::$resolvedInstance[$name]; - } - - return static::$resolvedInstance[$name] = static::$app[$name]; - } - - /** - * Clear a resolved facade instance. - * - * @param string $name - * @return void - */ - public static function clearResolvedInstance($name) - { - unset(static::$resolvedInstance[$name]); - } - - /** - * Clear all of the resolved instances. - * - * @return void - */ - public static function clearResolvedInstances() - { - static::$resolvedInstance = []; - } - - /** - * Get the application instance behind the facade. - * - * @return \Illuminate\Contracts\Foundation\Application - */ - public static function getFacadeApplication() - { - return static::$app; - } - - /** - * Set the application instance. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return void - */ - public static function setFacadeApplication($app) - { - static::$app = $app; - } - - /** - * Handle dynamic, static calls to the object. - * - * @param string $method - * @param array $args - * @return mixed - * - * @throws \RuntimeException - */ - public static function __callStatic($method, $args) - { - $instance = static::getFacadeRoot(); - - if (! $instance) { - throw new RuntimeException('A facade root has not been set.'); - } - - return $instance->$method(...$args); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/File.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/File.php deleted file mode 100755 index 0f81bf62..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/File.php +++ /dev/null @@ -1,19 +0,0 @@ -input($key, $default); - } - - /** - * Get the registered name of the component. - * - * @return string - */ - protected static function getFacadeAccessor() - { - return 'request'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php deleted file mode 100755 index e5862b99..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php +++ /dev/null @@ -1,19 +0,0 @@ -route($channel, $route); - } - - /** - * Get the registered name of the component. - * - * @return string - */ - protected static function getFacadeAccessor() - { - return ChannelManager::class; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php deleted file mode 100755 index 6ebea841..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php +++ /dev/null @@ -1,54 +0,0 @@ -connection($name)->getSchemaBuilder(); - } - - /** - * Get a schema builder instance for the default connection. - * - * @return \Illuminate\Database\Schema\Builder - */ - protected static function getFacadeAccessor() - { - return static::$app['db']->connection()->getSchemaBuilder(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php deleted file mode 100755 index bc9b5fd9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php +++ /dev/null @@ -1,20 +0,0 @@ -get('filesystems.default'); - - (new Filesystem)->cleanDirectory( - $root = storage_path('framework/testing/disks/'.$disk) - ); - - static::set($disk, self::createLocalDriver(['root' => $root])); - } - - /** - * Replace the given disk with a persistent local testing disk. - * - * @param string|null $disk - * @return void - */ - public static function persistentFake($disk = null) - { - $disk = $disk ?: self::$app['config']->get('filesystems.default'); - - static::set($disk, self::createLocalDriver([ - 'root' => storage_path('framework/testing/disks/'.$disk), - ])); - } - - /** - * Get the registered name of the component. - * - * @return string - */ - protected static function getFacadeAccessor() - { - return 'filesystem'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php deleted file mode 100755 index e17414bc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php +++ /dev/null @@ -1,19 +0,0 @@ - $value) { - $this->attributes[$key] = $value; - } - } - - /** - * Get an attribute from the container. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - if (array_key_exists($key, $this->attributes)) { - return $this->attributes[$key]; - } - - return value($default); - } - - /** - * Get the attributes from the container. - * - * @return array - */ - public function getAttributes() - { - return $this->attributes; - } - - /** - * Convert the Fluent instance to an array. - * - * @return array - */ - public function toArray() - { - return $this->attributes; - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Convert the Fluent instance to JSON. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } - - /** - * Determine if the given offset exists. - * - * @param string $offset - * @return bool - */ - public function offsetExists($offset) - { - return isset($this->attributes[$offset]); - } - - /** - * Get the value for a given offset. - * - * @param string $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->get($offset); - } - - /** - * Set the value at the given offset. - * - * @param string $offset - * @param mixed $value - * @return void - */ - public function offsetSet($offset, $value) - { - $this->attributes[$offset] = $value; - } - - /** - * Unset the value at the given offset. - * - * @param string $offset - * @return void - */ - public function offsetUnset($offset) - { - unset($this->attributes[$offset]); - } - - /** - * Handle dynamic calls to the container to set attributes. - * - * @param string $method - * @param array $parameters - * @return $this - */ - public function __call($method, $parameters) - { - $this->attributes[$method] = count($parameters) > 0 ? $parameters[0] : true; - - return $this; - } - - /** - * Dynamically retrieve the value of an attribute. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->get($key); - } - - /** - * Dynamically set the value of an attribute. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this->offsetSet($key, $value); - } - - /** - * Dynamically check if an attribute is set. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return $this->offsetExists($key); - } - - /** - * Dynamically unset an attribute. - * - * @param string $key - * @return void - */ - public function __unset($key) - { - $this->offsetUnset($key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php b/vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php deleted file mode 100644 index 7a781a02..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php +++ /dev/null @@ -1,63 +0,0 @@ -method = $method; - $this->collection = $collection; - } - - /** - * Proxy accessing an attribute onto the collection items. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->collection->{$this->method}(function ($value) use ($key) { - return is_array($value) ? $value[$key] : $value->{$key}; - }); - } - - /** - * Proxy a method call onto the collection items. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->collection->{$this->method}(function ($value) use ($method, $parameters) { - return $value->{$method}(...$parameters); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php b/vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php deleted file mode 100644 index bbf9b2e5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php +++ /dev/null @@ -1,38 +0,0 @@ -target = $target; - } - - /** - * Dynamically pass method calls to the target. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - $this->target->{$method}(...$parameters); - - return $this->target; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/HtmlString.php b/vendor/laravel/framework/src/Illuminate/Support/HtmlString.php deleted file mode 100644 index c13adfd4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/HtmlString.php +++ /dev/null @@ -1,46 +0,0 @@ -html = $html; - } - - /** - * Get the HTML string. - * - * @return string - */ - public function toHtml() - { - return $this->html; - } - - /** - * Get the HTML string. - * - * @return string - */ - public function __toString() - { - return $this->toHtml(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php b/vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php deleted file mode 100644 index 19ed3f24..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php +++ /dev/null @@ -1,64 +0,0 @@ -parseDateInterval($delay); - - return $delay instanceof DateTimeInterface - ? max(0, $delay->getTimestamp() - $this->currentTime()) - : (int) $delay; - } - - /** - * Get the "available at" UNIX timestamp. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @return int - */ - protected function availableAt($delay = 0) - { - $delay = $this->parseDateInterval($delay); - - return $delay instanceof DateTimeInterface - ? $delay->getTimestamp() - : Carbon::now()->addSeconds($delay)->getTimestamp(); - } - - /** - * If the given value is an interval, convert it to a DateTime instance. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @return \DateTimeInterface|int - */ - protected function parseDateInterval($delay) - { - if ($delay instanceof DateInterval) { - $delay = Carbon::now()->add($delay); - } - - return $delay; - } - - /** - * Get the current system time as a UNIX timestamp. - * - * @return int - */ - protected function currentTime() - { - return Carbon::now()->getTimestamp(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Manager.php b/vendor/laravel/framework/src/Illuminate/Support/Manager.php deleted file mode 100755 index 592776c2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Manager.php +++ /dev/null @@ -1,140 +0,0 @@ -app = $app; - } - - /** - * Get the default driver name. - * - * @return string - */ - abstract public function getDefaultDriver(); - - /** - * Get a driver instance. - * - * @param string $driver - * @return mixed - */ - public function driver($driver = null) - { - $driver = $driver ?: $this->getDefaultDriver(); - - // If the given driver has not been created before, we will create the instances - // here and cache it so we can return it next time very quickly. If there is - // already a driver created by this name, we'll just return that instance. - if (! isset($this->drivers[$driver])) { - $this->drivers[$driver] = $this->createDriver($driver); - } - - return $this->drivers[$driver]; - } - - /** - * Create a new driver instance. - * - * @param string $driver - * @return mixed - * - * @throws \InvalidArgumentException - */ - protected function createDriver($driver) - { - // We'll check to see if a creator method exists for the given driver. If not we - // will check for a custom driver creator, which allows developers to create - // drivers using their own customized driver creator Closure to create it. - if (isset($this->customCreators[$driver])) { - return $this->callCustomCreator($driver); - } else { - $method = 'create'.Str::studly($driver).'Driver'; - - if (method_exists($this, $method)) { - return $this->$method(); - } - } - throw new InvalidArgumentException("Driver [$driver] not supported."); - } - - /** - * Call a custom driver creator. - * - * @param string $driver - * @return mixed - */ - protected function callCustomCreator($driver) - { - return $this->customCreators[$driver]($this->app); - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback; - - return $this; - } - - /** - * Get all of the created "drivers". - * - * @return array - */ - public function getDrivers() - { - return $this->drivers; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->driver()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php b/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php deleted file mode 100755 index da2c31e2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php +++ /dev/null @@ -1,395 +0,0 @@ - $value) { - $this->messages[$key] = $value instanceof Arrayable - ? $value->toArray() : (array) $value; - } - } - - /** - * Get the keys present in the message bag. - * - * @return array - */ - public function keys() - { - return array_keys($this->messages); - } - - /** - * Add a message to the bag. - * - * @param string $key - * @param string $message - * @return $this - */ - public function add($key, $message) - { - if ($this->isUnique($key, $message)) { - $this->messages[$key][] = $message; - } - - return $this; - } - - /** - * Determine if a key and message combination already exists. - * - * @param string $key - * @param string $message - * @return bool - */ - protected function isUnique($key, $message) - { - $messages = (array) $this->messages; - - return ! isset($messages[$key]) || ! in_array($message, $messages[$key]); - } - - /** - * Merge a new array of messages into the bag. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array $messages - * @return $this - */ - public function merge($messages) - { - if ($messages instanceof MessageProvider) { - $messages = $messages->getMessageBag()->getMessages(); - } - - $this->messages = array_merge_recursive($this->messages, $messages); - - return $this; - } - - /** - * Determine if messages exist for all of the given keys. - * - * @param array|string $key - * @return bool - */ - public function has($key) - { - if (is_null($key)) { - return $this->any(); - } - - $keys = is_array($key) ? $key : func_get_args(); - - foreach ($keys as $key) { - if ($this->first($key) === '') { - return false; - } - } - - return true; - } - - /** - * Determine if messages exist for any of the given keys. - * - * @param array|string $keys - * @return bool - */ - public function hasAny($keys = []) - { - $keys = is_array($keys) ? $keys : func_get_args(); - - foreach ($keys as $key) { - if ($this->has($key)) { - return true; - } - } - - return false; - } - - /** - * Get the first message from the bag for a given key. - * - * @param string $key - * @param string $format - * @return string - */ - public function first($key = null, $format = null) - { - $messages = is_null($key) ? $this->all($format) : $this->get($key, $format); - - $firstMessage = Arr::first($messages, null, ''); - - return is_array($firstMessage) ? Arr::first($firstMessage) : $firstMessage; - } - - /** - * Get all of the messages from the bag for a given key. - * - * @param string $key - * @param string $format - * @return array - */ - public function get($key, $format = null) - { - // If the message exists in the container, we will transform it and return - // the message. Otherwise, we'll check if the key is implicit & collect - // all the messages that match a given key and output it as an array. - if (array_key_exists($key, $this->messages)) { - return $this->transform( - $this->messages[$key], $this->checkFormat($format), $key - ); - } - - if (Str::contains($key, '*')) { - return $this->getMessagesForWildcardKey($key, $format); - } - - return []; - } - - /** - * Get the messages for a wildcard key. - * - * @param string $key - * @param string|null $format - * @return array - */ - protected function getMessagesForWildcardKey($key, $format) - { - return collect($this->messages) - ->filter(function ($messages, $messageKey) use ($key) { - return Str::is($key, $messageKey); - }) - ->map(function ($messages, $messageKey) use ($format) { - return $this->transform( - $messages, $this->checkFormat($format), $messageKey - ); - })->all(); - } - - /** - * Get all of the messages for every key in the bag. - * - * @param string $format - * @return array - */ - public function all($format = null) - { - $format = $this->checkFormat($format); - - $all = []; - - foreach ($this->messages as $key => $messages) { - $all = array_merge($all, $this->transform($messages, $format, $key)); - } - - return $all; - } - - /** - * Get all of the unique messages for every key in the bag. - * - * @param string $format - * @return array - */ - public function unique($format = null) - { - return array_unique($this->all($format)); - } - - /** - * Format an array of messages. - * - * @param array $messages - * @param string $format - * @param string $messageKey - * @return array - */ - protected function transform($messages, $format, $messageKey) - { - return collect((array) $messages) - ->map(function ($message) use ($format, $messageKey) { - // We will simply spin through the given messages and transform each one - // replacing the :message place holder with the real message allowing - // the messages to be easily formatted to each developer's desires. - return str_replace([':message', ':key'], [$message, $messageKey], $format); - })->all(); - } - - /** - * Get the appropriate format based on the given format. - * - * @param string $format - * @return string - */ - protected function checkFormat($format) - { - return $format ?: $this->format; - } - - /** - * Get the raw messages in the container. - * - * @return array - */ - public function messages() - { - return $this->messages; - } - - /** - * Get the raw messages in the container. - * - * @return array - */ - public function getMessages() - { - return $this->messages(); - } - - /** - * Get the messages for the instance. - * - * @return \Illuminate\Support\MessageBag - */ - public function getMessageBag() - { - return $this; - } - - /** - * Get the default message format. - * - * @return string - */ - public function getFormat() - { - return $this->format; - } - - /** - * Set the default message format. - * - * @param string $format - * @return \Illuminate\Support\MessageBag - */ - public function setFormat($format = ':message') - { - $this->format = $format; - - return $this; - } - - /** - * Determine if the message bag has any messages. - * - * @return bool - */ - public function isEmpty() - { - return ! $this->any(); - } - - /** - * Determine if the message bag has any messages. - * - * @return bool - */ - public function isNotEmpty() - { - return $this->any(); - } - - /** - * Determine if the message bag has any messages. - * - * @return bool - */ - public function any() - { - return $this->count() > 0; - } - - /** - * Get the number of messages in the container. - * - * @return int - */ - public function count() - { - return count($this->messages, COUNT_RECURSIVE) - count($this->messages); - } - - /** - * Get the instance as an array. - * - * @return array - */ - public function toArray() - { - return $this->getMessages(); - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Convert the object to its JSON representation. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } - - /** - * Convert the message bag to its string representation. - * - * @return string - */ - public function __toString() - { - return $this->toJson(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php b/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php deleted file mode 100755 index fea32753..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php +++ /dev/null @@ -1,102 +0,0 @@ -parsed[$key])) { - return $this->parsed[$key]; - } - - // If the key does not contain a double colon, it means the key is not in a - // namespace, and is just a regular configuration item. Namespaces are a - // tool for organizing configuration items for things such as modules. - if (strpos($key, '::') === false) { - $segments = explode('.', $key); - - $parsed = $this->parseBasicSegments($segments); - } else { - $parsed = $this->parseNamespacedSegments($key); - } - - // Once we have the parsed array of this key's elements, such as its groups - // and namespace, we will cache each array inside a simple list that has - // the key and the parsed array for quick look-ups for later requests. - return $this->parsed[$key] = $parsed; - } - - /** - * Parse an array of basic segments. - * - * @param array $segments - * @return array - */ - protected function parseBasicSegments(array $segments) - { - // The first segment in a basic array will always be the group, so we can go - // ahead and grab that segment. If there is only one total segment we are - // just pulling an entire group out of the array and not a single item. - $group = $segments[0]; - - // If there is more than one segment in this group, it means we are pulling - // a specific item out of a group and will need to return this item name - // as well as the group so we know which item to pull from the arrays. - $item = count($segments) === 1 - ? null - : implode('.', array_slice($segments, 1)); - - return [null, $group, $item]; - } - - /** - * Parse an array of namespaced segments. - * - * @param string $key - * @return array - */ - protected function parseNamespacedSegments($key) - { - list($namespace, $item) = explode('::', $key); - - // First we'll just explode the first segment to get the namespace and group - // since the item should be in the remaining segments. Once we have these - // two pieces of data we can proceed with parsing out the item's value. - $itemSegments = explode('.', $item); - - $groupAndItem = array_slice( - $this->parseBasicSegments($itemSegments), 1 - ); - - return array_merge([$namespace], $groupAndItem); - } - - /** - * Set the parsed value of a key. - * - * @param string $key - * @param array $parsed - * @return void - */ - public function setParsedKey($key, $parsed) - { - $this->parsed[$key] = $parsed; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Optional.php b/vendor/laravel/framework/src/Illuminate/Support/Optional.php deleted file mode 100644 index 8f35221a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Optional.php +++ /dev/null @@ -1,110 +0,0 @@ -value = $value; - } - - /** - * Dynamically access a property on the underlying object. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - if (is_object($this->value)) { - return $this->value->{$key}; - } - } - - /** - * Dynamically pass a method to the underlying object. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if (is_object($this->value)) { - return $this->value->{$method}(...$parameters); - } - } - - /** - * Determine if an item exists at an offset. - * - * @param mixed $key - * @return bool - */ - public function offsetExists($key) - { - return Arr::accessible($this->value) && Arr::exists($this->value, $key); - } - - /** - * Get an item at a given offset. - * - * @param mixed $key - * @return mixed - */ - public function offsetGet($key) - { - return Arr::get($this->value, $key); - } - - /** - * Set the item at a given offset. - * - * @param mixed $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - if (Arr::accessible($this->value)) { - $this->value[$key] = $value; - } - } - - /** - * Unset the item at a given offset. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - if (Arr::accessible($this->value)) { - unset($this->value[$key]); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php b/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php deleted file mode 100755 index 6cc55ad7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php +++ /dev/null @@ -1,119 +0,0 @@ -app = $app; - } - - /** - * Merge the given configuration with the existing configuration. - * - * @param string $path - * @param string $key - * @return void - */ - protected function mergeConfigFrom($path, $key) - { - $config = $this->app['config']->get($key, []); - - $this->app['config']->set($key, array_merge(require $path, $config)); - } - - /** - * Load the given routes file if routes are not already cached. - * - * @param string $path - * @return void - */ - protected function loadRoutesFrom($path) - { - if (! $this->app->routesAreCached()) { - require $path; - } - } - - /** - * Register a view file namespace. - * - * @param string $path - * @param string $namespace - * @return void - */ - protected function loadViewsFrom($path, $namespace) - { - if (is_array($this->app->config['view']['paths'])) { - foreach ($this->app->config['view']['paths'] as $viewPath) { - if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) { - $this->app['view']->addNamespace($namespace, $appPath); - } - } - } - - $this->app['view']->addNamespace($namespace, $path); - } - - /** - * Register a translation file namespace. - * - * @param string $path - * @param string $namespace - * @return void - */ - protected function loadTranslationsFrom($path, $namespace) - { - $this->app['translator']->addNamespace($namespace, $path); - } - - /** - * Register a JSON translation file path. - * - * @param string $path - * @return void - */ - protected function loadJsonTranslationsFrom($path) - { - $this->app['translator']->addJsonPath($path); - } - - /** - * Register a database migration path. - * - * @param array|string $paths - * @return void - */ - protected function loadMigrationsFrom($paths) - { - $this->app->afterResolving('migrator', function ($migrator) use ($paths) { - foreach ((array) $paths as $path) { - $migrator->path($path); - } - }); - } - - /** - * Register paths to be published by the publish command. - * - * @param array $paths - * @param string $group - * @return void - */ - protected function publishes(array $paths, $group = null) - { - $this->ensurePublishArrayInitialized($class = static::class); - - static::$publishes[$class] = array_merge(static::$publishes[$class], $paths); - - if ($group) { - $this->addPublishGroup($group, $paths); - } - } - - /** - * Ensure the publish array for the service provider is initialized. - * - * @param string $class - * @return void - */ - protected function ensurePublishArrayInitialized($class) - { - if (! array_key_exists($class, static::$publishes)) { - static::$publishes[$class] = []; - } - } - - /** - * Add a publish group / tag to the service provider. - * - * @param string $group - * @param array $paths - * @return void - */ - protected function addPublishGroup($group, $paths) - { - if (! array_key_exists($group, static::$publishGroups)) { - static::$publishGroups[$group] = []; - } - - static::$publishGroups[$group] = array_merge( - static::$publishGroups[$group], $paths - ); - } - - /** - * Get the paths to publish. - * - * @param string $provider - * @param string $group - * @return array - */ - public static function pathsToPublish($provider = null, $group = null) - { - if (! is_null($paths = static::pathsForProviderOrGroup($provider, $group))) { - return $paths; - } - - return collect(static::$publishes)->reduce(function ($paths, $p) { - return array_merge($paths, $p); - }, []); - } - - /** - * Get the paths for the provider or group (or both). - * - * @param string|null $provider - * @param string|null $group - * @return array - */ - protected static function pathsForProviderOrGroup($provider, $group) - { - if ($provider && $group) { - return static::pathsForProviderAndGroup($provider, $group); - } elseif ($group && array_key_exists($group, static::$publishGroups)) { - return static::$publishGroups[$group]; - } elseif ($provider && array_key_exists($provider, static::$publishes)) { - return static::$publishes[$provider]; - } elseif ($group || $provider) { - return []; - } - } - - /** - * Get the paths for the provider and group. - * - * @param string $provider - * @param string $group - * @return array - */ - protected static function pathsForProviderAndGroup($provider, $group) - { - if (! empty(static::$publishes[$provider]) && ! empty(static::$publishGroups[$group])) { - return array_intersect_key(static::$publishes[$provider], static::$publishGroups[$group]); - } - - return []; - } - - /** - * Get the service providers available for publishing. - * - * @return array - */ - public static function publishableProviders() - { - return array_keys(static::$publishes); - } - - /** - * Get the groups available for publishing. - * - * @return array - */ - public static function publishableGroups() - { - return array_keys(static::$publishGroups); - } - - /** - * Register the package's custom Artisan commands. - * - * @param array|mixed $commands - * @return void - */ - public function commands($commands) - { - $commands = is_array($commands) ? $commands : func_get_args(); - - Artisan::starting(function ($artisan) use ($commands) { - $artisan->resolveCommands($commands); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return []; - } - - /** - * Get the events that trigger this service provider to register. - * - * @return array - */ - public function when() - { - return []; - } - - /** - * Determine if the provider is deferred. - * - * @return bool - */ - public function isDeferred() - { - return $this->defer; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Str.php b/vendor/laravel/framework/src/Illuminate/Support/Str.php deleted file mode 100644 index 6775f92d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Str.php +++ /dev/null @@ -1,683 +0,0 @@ - $val) { - $value = str_replace($val, $key, $value); - } - - return preg_replace('/[^\x20-\x7E]/u', '', $value); - } - - /** - * Get the portion of a string before a given value. - * - * @param string $subject - * @param string $search - * @return string - */ - public static function before($subject, $search) - { - return $search === '' ? $subject : explode($search, $subject)[0]; - } - - /** - * Convert a value to camel case. - * - * @param string $value - * @return string - */ - public static function camel($value) - { - if (isset(static::$camelCache[$value])) { - return static::$camelCache[$value]; - } - - return static::$camelCache[$value] = lcfirst(static::studly($value)); - } - - /** - * Determine if a given string contains a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - public static function contains($haystack, $needles) - { - foreach ((array) $needles as $needle) { - if ($needle !== '' && mb_strpos($haystack, $needle) !== false) { - return true; - } - } - - return false; - } - - /** - * Determine if a given string ends with a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - public static function endsWith($haystack, $needles) - { - foreach ((array) $needles as $needle) { - if (substr($haystack, -strlen($needle)) === (string) $needle) { - return true; - } - } - - return false; - } - - /** - * Cap a string with a single instance of a given value. - * - * @param string $value - * @param string $cap - * @return string - */ - public static function finish($value, $cap) - { - $quoted = preg_quote($cap, '/'); - - return preg_replace('/(?:'.$quoted.')+$/u', '', $value).$cap; - } - - /** - * Determine if a given string matches a given pattern. - * - * @param string|array $pattern - * @param string $value - * @return bool - */ - public static function is($pattern, $value) - { - $patterns = is_array($pattern) ? $pattern : (array) $pattern; - - if (empty($patterns)) { - return false; - } - - foreach ($patterns as $pattern) { - // If the given value is an exact match we can of course return true right - // from the beginning. Otherwise, we will translate asterisks and do an - // actual pattern match against the two strings to see if they match. - if ($pattern == $value) { - return true; - } - - $pattern = preg_quote($pattern, '#'); - - // Asterisks are translated into zero-or-more regular expression wildcards - // to make it convenient to check if the strings starts with the given - // pattern such as "library/*", making any string check convenient. - $pattern = str_replace('\*', '.*', $pattern); - - if (preg_match('#^'.$pattern.'\z#u', $value) === 1) { - return true; - } - } - - return false; - } - - /** - * Convert a string to kebab case. - * - * @param string $value - * @return string - */ - public static function kebab($value) - { - return static::snake($value, '-'); - } - - /** - * Return the length of the given string. - * - * @param string $value - * @param string $encoding - * @return int - */ - public static function length($value, $encoding = null) - { - if ($encoding) { - return mb_strlen($value, $encoding); - } - - return mb_strlen($value); - } - - /** - * Limit the number of characters in a string. - * - * @param string $value - * @param int $limit - * @param string $end - * @return string - */ - public static function limit($value, $limit = 100, $end = '...') - { - if (mb_strwidth($value, 'UTF-8') <= $limit) { - return $value; - } - - return rtrim(mb_strimwidth($value, 0, $limit, '', 'UTF-8')).$end; - } - - /** - * Convert the given string to lower-case. - * - * @param string $value - * @return string - */ - public static function lower($value) - { - return mb_strtolower($value, 'UTF-8'); - } - - /** - * Limit the number of words in a string. - * - * @param string $value - * @param int $words - * @param string $end - * @return string - */ - public static function words($value, $words = 100, $end = '...') - { - preg_match('/^\s*+(?:\S++\s*+){1,'.$words.'}/u', $value, $matches); - - if (! isset($matches[0]) || static::length($value) === static::length($matches[0])) { - return $value; - } - - return rtrim($matches[0]).$end; - } - - /** - * Parse a Class@method style callback into class and method. - * - * @param string $callback - * @param string|null $default - * @return array - */ - public static function parseCallback($callback, $default = null) - { - return static::contains($callback, '@') ? explode('@', $callback, 2) : [$callback, $default]; - } - - /** - * Get the plural form of an English word. - * - * @param string $value - * @param int $count - * @return string - */ - public static function plural($value, $count = 2) - { - return Pluralizer::plural($value, $count); - } - - /** - * Generate a more truly "random" alpha-numeric string. - * - * @param int $length - * @return string - */ - public static function random($length = 16) - { - $string = ''; - - while (($len = strlen($string)) < $length) { - $size = $length - $len; - - $bytes = random_bytes($size); - - $string .= substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $size); - } - - return $string; - } - - /** - * Replace a given value in the string sequentially with an array. - * - * @param string $search - * @param array $replace - * @param string $subject - * @return string - */ - public static function replaceArray($search, array $replace, $subject) - { - foreach ($replace as $value) { - $subject = static::replaceFirst($search, $value, $subject); - } - - return $subject; - } - - /** - * Replace the first occurrence of a given value in the string. - * - * @param string $search - * @param string $replace - * @param string $subject - * @return string - */ - public static function replaceFirst($search, $replace, $subject) - { - if ($search == '') { - return $subject; - } - - $position = strpos($subject, $search); - - if ($position !== false) { - return substr_replace($subject, $replace, $position, strlen($search)); - } - - return $subject; - } - - /** - * Replace the last occurrence of a given value in the string. - * - * @param string $search - * @param string $replace - * @param string $subject - * @return string - */ - public static function replaceLast($search, $replace, $subject) - { - $position = strrpos($subject, $search); - - if ($position !== false) { - return substr_replace($subject, $replace, $position, strlen($search)); - } - - return $subject; - } - - /** - * Begin a string with a single instance of a given value. - * - * @param string $value - * @param string $prefix - * @return string - */ - public static function start($value, $prefix) - { - $quoted = preg_quote($prefix, '/'); - - return $prefix.preg_replace('/^(?:'.$quoted.')+/u', '', $value); - } - - /** - * Convert the given string to upper-case. - * - * @param string $value - * @return string - */ - public static function upper($value) - { - return mb_strtoupper($value, 'UTF-8'); - } - - /** - * Convert the given string to title case. - * - * @param string $value - * @return string - */ - public static function title($value) - { - return mb_convert_case($value, MB_CASE_TITLE, 'UTF-8'); - } - - /** - * Get the singular form of an English word. - * - * @param string $value - * @return string - */ - public static function singular($value) - { - return Pluralizer::singular($value); - } - - /** - * Generate a URL friendly "slug" from a given string. - * - * @param string $title - * @param string $separator - * @param string $language - * @return string - */ - public static function slug($title, $separator = '-', $language = 'en') - { - $title = static::ascii($title, $language); - - // Convert all dashes/underscores into separator - $flip = $separator == '-' ? '_' : '-'; - - $title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title); - - // Replace @ with the word 'at' - $title = str_replace('@', $separator.'at'.$separator, $title); - - // Remove all characters that are not the separator, letters, numbers, or whitespace. - $title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', mb_strtolower($title)); - - // Replace all separator characters and whitespace by a single separator - $title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title); - - return trim($title, $separator); - } - - /** - * Convert a string to snake case. - * - * @param string $value - * @param string $delimiter - * @return string - */ - public static function snake($value, $delimiter = '_') - { - $key = $value; - - if (isset(static::$snakeCache[$key][$delimiter])) { - return static::$snakeCache[$key][$delimiter]; - } - - if (! ctype_lower($value)) { - $value = preg_replace('/\s+/u', '', ucwords($value)); - - $value = static::lower(preg_replace('/(.)(?=[A-Z])/u', '$1'.$delimiter, $value)); - } - - return static::$snakeCache[$key][$delimiter] = $value; - } - - /** - * Determine if a given string starts with a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - public static function startsWith($haystack, $needles) - { - foreach ((array) $needles as $needle) { - if ($needle !== '' && substr($haystack, 0, strlen($needle)) === (string) $needle) { - return true; - } - } - - return false; - } - - /** - * Convert a value to studly caps case. - * - * @param string $value - * @return string - */ - public static function studly($value) - { - $key = $value; - - if (isset(static::$studlyCache[$key])) { - return static::$studlyCache[$key]; - } - - $value = ucwords(str_replace(['-', '_'], ' ', $value)); - - return static::$studlyCache[$key] = str_replace(' ', '', $value); - } - - /** - * Returns the portion of string specified by the start and length parameters. - * - * @param string $string - * @param int $start - * @param int|null $length - * @return string - */ - public static function substr($string, $start, $length = null) - { - return mb_substr($string, $start, $length, 'UTF-8'); - } - - /** - * Make a string's first character uppercase. - * - * @param string $string - * @return string - */ - public static function ucfirst($string) - { - return static::upper(static::substr($string, 0, 1)).static::substr($string, 1); - } - - /** - * Returns the replacements for the ascii method. - * - * Note: Adapted from Stringy\Stringy. - * - * @see https://github.com/danielstjules/Stringy/blob/3.1.0/LICENSE.txt - * - * @return array - */ - protected static function charsArray() - { - static $charsArray; - - if (isset($charsArray)) { - return $charsArray; - } - - return $charsArray = [ - '0' => ['°', 'â‚€', 'Û°', 'ï¼'], - '1' => ['¹', 'â‚', 'Û±', '1'], - '2' => ['²', 'â‚‚', 'Û²', 'ï¼’'], - '3' => ['³', '₃', 'Û³', '3'], - '4' => ['â´', 'â‚„', 'Û´', 'Ù¤', 'ï¼”'], - '5' => ['âµ', 'â‚…', 'Ûµ', 'Ù¥', '5'], - '6' => ['â¶', '₆', 'Û¶', 'Ù¦', 'ï¼–'], - '7' => ['â·', '₇', 'Û·', 'ï¼—'], - '8' => ['â¸', '₈', 'Û¸', '8'], - '9' => ['â¹', '₉', 'Û¹', 'ï¼™'], - 'a' => ['à', 'á', 'ả', 'ã', 'ạ', 'ă', 'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'â', 'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'Ä', 'Ä…', 'Ã¥', 'α', 'ά', 'á¼€', 'á¼', 'ἂ', 'ἃ', 'ἄ', 'á¼…', 'ἆ', 'ἇ', 'á¾€', 'á¾', 'ᾂ', 'ᾃ', 'ᾄ', 'á¾…', 'ᾆ', 'ᾇ', 'á½°', 'ά', 'á¾°', 'á¾±', 'á¾²', 'á¾³', 'á¾´', 'ᾶ', 'á¾·', 'а', 'Ø£', 'အ', 'ာ', 'ါ', 'Ç»', 'ÇŽ', 'ª', 'áƒ', 'अ', 'ا', 'ï½', 'ä'], - 'b' => ['б', 'β', 'ب', 'ဗ', 'ბ', 'b'], - 'c' => ['ç', 'ć', 'Ä', 'ĉ', 'Ä‹', 'c'], - 'd' => ['Ä', 'ð', 'Ä‘', 'ÆŒ', 'È¡', 'É–', 'É—', 'áµ­', 'á¶', 'ᶑ', 'д', 'δ', 'د', 'ض', 'á€', 'ဒ', 'დ', 'd'], - 'e' => ['é', 'è', 'ẻ', 'ẽ', 'ẹ', 'ê', 'ế', 'á»', 'ể', 'á»…', 'ệ', 'ë', 'Ä“', 'Ä™', 'Ä›', 'Ä•', 'Ä—', 'ε', 'έ', 'á¼', 'ἑ', 'á¼’', 'ἓ', 'á¼”', 'ἕ', 'á½²', 'έ', 'е', 'Ñ‘', 'Ñ', 'Ñ”', 'É™', 'ဧ', 'ေ', 'ဲ', 'ე', 'à¤', 'Ø¥', 'ئ', 'ï½…'], - 'f' => ['Ñ„', 'φ', 'Ù', 'Æ’', 'ფ', 'f'], - 'g' => ['Ä', 'ÄŸ', 'Ä¡', 'Ä£', 'г', 'Ò‘', 'γ', 'ဂ', 'გ', 'Ú¯', 'g'], - 'h' => ['Ä¥', 'ħ', 'η', 'ή', 'Ø­', 'Ù‡', 'ဟ', 'ှ', 'ჰ', 'h'], - 'i' => ['í', 'ì', 'ỉ', 'Ä©', 'ị', 'î', 'ï', 'Ä«', 'Ä­', 'į', 'ı', 'ι', 'ί', 'ÏŠ', 'Î', 'á¼°', 'á¼±', 'á¼²', 'á¼³', 'á¼´', 'á¼µ', 'ἶ', 'á¼·', 'ὶ', 'ί', 'á¿', 'á¿‘', 'á¿’', 'Î', 'á¿–', 'á¿—', 'Ñ–', 'Ñ—', 'и', 'ဣ', 'ိ', 'ီ', 'ည်', 'Ç', 'ი', 'इ', 'ÛŒ', 'i'], - 'j' => ['ĵ', 'ј', 'Ј', 'ჯ', 'ج', 'j'], - 'k' => ['Ä·', 'ĸ', 'к', 'κ', 'Ķ', 'Ù‚', 'Ùƒ', 'က', 'კ', 'ქ', 'Ú©', 'k'], - 'l' => ['Å‚', 'ľ', 'ĺ', 'ļ', 'Å€', 'л', 'λ', 'Ù„', 'လ', 'ლ', 'l'], - 'm' => ['м', 'μ', 'Ù…', 'မ', 'მ', 'ï½'], - 'n' => ['ñ', 'Å„', 'ň', 'ņ', 'ʼn', 'Å‹', 'ν', 'н', 'Ù†', 'န', 'ნ', 'n'], - 'o' => ['ó', 'ò', 'á»', 'õ', 'á»', 'ô', 'ố', 'ồ', 'ổ', 'á»—', 'á»™', 'Æ¡', 'á»›', 'á»', 'ở', 'ỡ', 'ợ', 'ø', 'Å', 'Å‘', 'Å', 'ο', 'á½€', 'á½', 'ὂ', 'ὃ', 'ὄ', 'á½…', 'ὸ', 'ÏŒ', 'о', 'Ùˆ', 'θ', 'ို', 'Ç’', 'Ç¿', 'º', 'áƒ', 'ओ', 'ï½', 'ö'], - 'p' => ['п', 'Ï€', 'ပ', 'პ', 'Ù¾', 'ï½'], - 'q' => ['ყ', 'q'], - 'r' => ['Å•', 'Å™', 'Å—', 'Ñ€', 'Ï', 'ر', 'რ', 'ï½’'], - 's' => ['Å›', 'Å¡', 'ÅŸ', 'Ñ', 'σ', 'È™', 'Ï‚', 'س', 'ص', 'စ', 'Å¿', 'ს', 's'], - 't' => ['Å¥', 'Å£', 'Ñ‚', 'Ï„', 'È›', 'ت', 'Ø·', 'ဋ', 'á€', 'ŧ', 'თ', 'ტ', 'ï½”'], - 'u' => ['ú', 'ù', 'ủ', 'Å©', 'ụ', 'Æ°', 'ứ', 'ừ', 'á»­', 'ữ', 'á»±', 'û', 'Å«', 'ů', 'ű', 'Å­', 'ų', 'µ', 'у', 'ဉ', 'ု', 'ူ', 'Ç”', 'Ç–', 'ǘ', 'Çš', 'Çœ', 'უ', 'उ', 'u', 'Ñž', 'ü'], - 'v' => ['в', 'ვ', 'Ï', 'ï½–'], - 'w' => ['ŵ', 'ω', 'ÏŽ', 'á€', 'ွ', 'ï½—'], - 'x' => ['χ', 'ξ', 'x'], - 'y' => ['ý', 'ỳ', 'á»·', 'ỹ', 'ỵ', 'ÿ', 'Å·', 'й', 'Ñ‹', 'Ï…', 'Ï‹', 'Ï', 'ΰ', 'ÙŠ', 'ယ', 'ï½™'], - 'z' => ['ź', 'ž', 'ż', 'з', 'ζ', 'ز', 'ဇ', 'ზ', 'z'], - 'aa' => ['ع', 'आ', 'Ø¢'], - 'ae' => ['æ', 'ǽ'], - 'ai' => ['à¤'], - 'ch' => ['ч', 'ჩ', 'ჭ', 'Ú†'], - 'dj' => ['Ñ’', 'Ä‘'], - 'dz' => ['ÑŸ', 'ძ'], - 'ei' => ['à¤'], - 'gh' => ['غ', 'ღ'], - 'ii' => ['ई'], - 'ij' => ['ij'], - 'kh' => ['Ñ…', 'Ø®', 'ხ'], - 'lj' => ['Ñ™'], - 'nj' => ['Ñš'], - 'oe' => ['ö', 'Å“', 'ؤ'], - 'oi' => ['ऑ'], - 'oii' => ['ऒ'], - 'ps' => ['ψ'], - 'sh' => ['ш', 'შ', 'Ø´'], - 'shch' => ['щ'], - 'ss' => ['ß'], - 'sx' => ['Å'], - 'th' => ['þ', 'Ï‘', 'Ø«', 'Ø°', 'ظ'], - 'ts' => ['ц', 'ც', 'წ'], - 'ue' => ['ü'], - 'uu' => ['ऊ'], - 'ya' => ['Ñ'], - 'yu' => ['ÑŽ'], - 'zh' => ['ж', 'ჟ', 'Ú˜'], - '(c)' => ['©'], - 'A' => ['Ã', 'À', 'Ả', 'Ã', 'Ạ', 'Ä‚', 'Ắ', 'Ằ', 'Ẳ', 'Ẵ', 'Ặ', 'Â', 'Ấ', 'Ầ', 'Ẩ', 'Ẫ', 'Ậ', 'Ã…', 'Ä€', 'Ä„', 'Α', 'Ά', 'Ἀ', 'Ἁ', 'Ἂ', 'Ἃ', 'Ἄ', 'á¼', 'Ἆ', 'á¼', 'ᾈ', 'ᾉ', 'ᾊ', 'ᾋ', 'ᾌ', 'á¾', 'ᾎ', 'á¾', 'Ᾰ', 'á¾¹', 'Ὰ', 'Ά', 'á¾¼', 'Ð', 'Ǻ', 'Ç', 'A', 'Ä'], - 'B' => ['Б', 'Î’', 'ब', 'ï¼¢'], - 'C' => ['Ç', 'Ć', 'ÄŒ', 'Ĉ', 'ÄŠ', 'ï¼£'], - 'D' => ['ÄŽ', 'Ã', 'Ä', 'Ɖ', 'ÆŠ', 'Æ‹', 'á´…', 'á´†', 'Д', 'Δ', 'D'], - 'E' => ['É', 'È', 'Ẻ', 'Ẽ', 'Ẹ', 'Ê', 'Ế', 'Ề', 'Ể', 'Ễ', 'Ệ', 'Ë', 'Ä’', 'Ę', 'Äš', 'Ä”', 'Ä–', 'Ε', 'Έ', 'Ἐ', 'á¼™', 'Ἒ', 'á¼›', 'Ἔ', 'á¼', 'Έ', 'Ὲ', 'Е', 'Ð', 'Э', 'Є', 'Æ', 'ï¼¥'], - 'F' => ['Ф', 'Φ', 'F'], - 'G' => ['Äž', 'Ä ', 'Ä¢', 'Г', 'Ò', 'Γ', 'G'], - 'H' => ['Η', 'Ή', 'Ħ', 'H'], - 'I' => ['Ã', 'ÃŒ', 'Ỉ', 'Ĩ', 'Ị', 'ÃŽ', 'Ã', 'Ī', 'Ĭ', 'Ä®', 'Ä°', 'Ι', 'Ί', 'Ϊ', 'Ἰ', 'á¼¹', 'á¼»', 'á¼¼', 'á¼½', 'á¼¾', 'Ἷ', 'Ῐ', 'á¿™', 'á¿š', 'Ί', 'И', 'І', 'Ї', 'Ç', 'Ï’', 'I'], - 'J' => ['J'], - 'K' => ['К', 'Κ', 'K'], - 'L' => ['Ĺ', 'Å', 'Л', 'Λ', 'Ä»', 'Ľ', 'Ä¿', 'ल', 'L'], - 'M' => ['Ðœ', 'Îœ', 'ï¼­'], - 'N' => ['Ń', 'Ñ', 'Ň', 'Å…', 'ÅŠ', 'Ð', 'Î', 'ï¼®'], - 'O' => ['Ó', 'Ã’', 'Ỏ', 'Õ', 'Ọ', 'Ô', 'á»', 'á»’', 'á»”', 'á»–', 'Ộ', 'Æ ', 'Ớ', 'Ờ', 'Ở', 'á» ', 'Ợ', 'Ø', 'ÅŒ', 'Å', 'ÅŽ', 'Ο', 'ÎŒ', 'Ὀ', 'Ὁ', 'Ὂ', 'Ὃ', 'Ὄ', 'á½', 'Ὸ', 'ÎŒ', 'О', 'Θ', 'Ó¨', 'Ç‘', 'Ǿ', 'O', 'Ö'], - 'P' => ['П', 'Π', 'ï¼°'], - 'Q' => ['ï¼±'], - 'R' => ['Ř', 'Å”', 'Р', 'Ρ', 'Å–', 'ï¼²'], - 'S' => ['Åž', 'Åœ', 'Ș', 'Å ', 'Åš', 'С', 'Σ', 'ï¼³'], - 'T' => ['Ť', 'Å¢', 'Ŧ', 'Èš', 'Т', 'Τ', 'ï¼´'], - 'U' => ['Ú', 'Ù', 'Ủ', 'Ũ', 'Ụ', 'Ư', 'Ứ', 'Ừ', 'Ử', 'á»®', 'á»°', 'Û', 'Ū', 'Å®', 'Å°', 'Ŭ', 'Ų', 'У', 'Ç“', 'Ç•', 'Ç—', 'Ç™', 'Ç›', 'ï¼µ', 'ÐŽ', 'Ãœ'], - 'V' => ['Ð’', 'V'], - 'W' => ['Ω', 'Î', 'Å´', 'ï¼·'], - 'X' => ['Χ', 'Ξ', 'X'], - 'Y' => ['Ã', 'Ỳ', 'Ỷ', 'Ỹ', 'á»´', 'Ÿ', 'Ῠ', 'á¿©', 'Ὺ', 'ÎŽ', 'Ы', 'Й', 'Î¥', 'Ϋ', 'Ŷ', 'ï¼¹'], - 'Z' => ['Ź', 'Ž', 'Å»', 'З', 'Ζ', 'Z'], - 'AE' => ['Æ', 'Ǽ'], - 'Ch' => ['Ч'], - 'Dj' => ['Ђ'], - 'Dz' => ['Ð'], - 'Gx' => ['Äœ'], - 'Hx' => ['Ĥ'], - 'Ij' => ['IJ'], - 'Jx' => ['Ä´'], - 'Kh' => ['Ð¥'], - 'Lj' => ['Љ'], - 'Nj' => ['Њ'], - 'Oe' => ['Å’'], - 'Ps' => ['Ψ'], - 'Sh' => ['Ш'], - 'Shch' => ['Щ'], - 'Ss' => ['ẞ'], - 'Th' => ['Þ'], - 'Ts' => ['Ц'], - 'Ya' => ['Я'], - 'Yu' => ['Ю'], - 'Zh' => ['Ж'], - ' ' => ["\xC2\xA0", "\xE2\x80\x80", "\xE2\x80\x81", "\xE2\x80\x82", "\xE2\x80\x83", "\xE2\x80\x84", "\xE2\x80\x85", "\xE2\x80\x86", "\xE2\x80\x87", "\xE2\x80\x88", "\xE2\x80\x89", "\xE2\x80\x8A", "\xE2\x80\xAF", "\xE2\x81\x9F", "\xE3\x80\x80", "\xEF\xBE\xA0"], - ]; - } - - /** - * Returns the language specific replacements for the ascii method. - * - * Note: Adapted from Stringy\Stringy. - * - * @see https://github.com/danielstjules/Stringy/blob/3.1.0/LICENSE.txt - * - * @param string $language - * @return array|null - */ - protected static function languageSpecificCharsArray($language) - { - static $languageSpecific; - - if (! isset($languageSpecific)) { - $languageSpecific = [ - 'bg' => [ - ['Ñ…', 'Ð¥', 'щ', 'Щ', 'ÑŠ', 'Ъ', 'ÑŒ', 'Ь'], - ['h', 'H', 'sht', 'SHT', 'a', 'Ð', 'y', 'Y'], - ], - 'de' => [ - ['ä', 'ö', 'ü', 'Ä', 'Ö', 'Ãœ'], - ['ae', 'oe', 'ue', 'AE', 'OE', 'UE'], - ], - ]; - } - - return $languageSpecific[$language] ?? null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php deleted file mode 100644 index ae1209a3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php +++ /dev/null @@ -1,132 +0,0 @@ -assertDispatchedTimes($command, $callback); - } - - PHPUnit::assertTrue( - $this->dispatched($command, $callback)->count() > 0, - "The expected [{$command}] job was not dispatched." - ); - } - - /** - * Assert if a job was pushed a number of times. - * - * @param string $command - * @param int $times - * @return void - */ - protected function assertDispatchedTimes($command, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->dispatched($command)->count()) === $times, - "The expected [{$command}] job was pushed {$count} times instead of {$times} times." - ); - } - - /** - * Determine if a job was dispatched based on a truth-test callback. - * - * @param string $command - * @param callable|null $callback - * @return void - */ - public function assertNotDispatched($command, $callback = null) - { - PHPUnit::assertTrue( - $this->dispatched($command, $callback)->count() === 0, - "The unexpected [{$command}] job was dispatched." - ); - } - - /** - * Get all of the jobs matching a truth-test callback. - * - * @param string $command - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function dispatched($command, $callback = null) - { - if (! $this->hasDispatched($command)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return collect($this->commands[$command])->filter(function ($command) use ($callback) { - return $callback($command); - }); - } - - /** - * Determine if there are any stored commands for a given class. - * - * @param string $command - * @return bool - */ - public function hasDispatched($command) - { - return isset($this->commands[$command]) && ! empty($this->commands[$command]); - } - - /** - * Dispatch a command to its appropriate handler. - * - * @param mixed $command - * @return mixed - */ - public function dispatch($command) - { - return $this->dispatchNow($command); - } - - /** - * Dispatch a command to its appropriate handler in the current process. - * - * @param mixed $command - * @param mixed $handler - * @return mixed - */ - public function dispatchNow($command, $handler = null) - { - $this->commands[get_class($command)][] = $command; - } - - /** - * Set the pipes commands should be piped through before dispatching. - * - * @param array $pipes - * @return $this - */ - public function pipeThrough(array $pipes) - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php deleted file mode 100644 index edbb90eb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php +++ /dev/null @@ -1,260 +0,0 @@ -dispatcher = $dispatcher; - - $this->eventsToFake = Arr::wrap($eventsToFake); - } - - /** - * Assert if an event was dispatched based on a truth-test callback. - * - * @param string $event - * @param callable|int|null $callback - * @return void - */ - public function assertDispatched($event, $callback = null) - { - if (is_int($callback)) { - return $this->assertDispatchedTimes($event, $callback); - } - - PHPUnit::assertTrue( - $this->dispatched($event, $callback)->count() > 0, - "The expected [{$event}] event was not dispatched." - ); - } - - /** - * Assert if a event was dispatched a number of times. - * - * @param string $event - * @param int $times - * @return void - */ - public function assertDispatchedTimes($event, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->dispatched($event)->count()) === $times, - "The expected [{$event}] event was dispatched {$count} times instead of {$times} times." - ); - } - - /** - * Determine if an event was dispatched based on a truth-test callback. - * - * @param string $event - * @param callable|null $callback - * @return void - */ - public function assertNotDispatched($event, $callback = null) - { - PHPUnit::assertTrue( - $this->dispatched($event, $callback)->count() === 0, - "The unexpected [{$event}] event was dispatched." - ); - } - - /** - * Get all of the events matching a truth-test callback. - * - * @param string $event - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function dispatched($event, $callback = null) - { - if (! $this->hasDispatched($event)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return collect($this->events[$event])->filter(function ($arguments) use ($callback) { - return $callback(...$arguments); - }); - } - - /** - * Determine if the given event has been dispatched. - * - * @param string $event - * @return bool - */ - public function hasDispatched($event) - { - return isset($this->events[$event]) && ! empty($this->events[$event]); - } - - /** - * Register an event listener with the dispatcher. - * - * @param string|array $events - * @param mixed $listener - * @return void - */ - public function listen($events, $listener) - { - // - } - - /** - * Determine if a given event has listeners. - * - * @param string $eventName - * @return bool - */ - public function hasListeners($eventName) - { - // - } - - /** - * Register an event and payload to be dispatched later. - * - * @param string $event - * @param array $payload - * @return void - */ - public function push($event, $payload = []) - { - // - } - - /** - * Register an event subscriber with the dispatcher. - * - * @param object|string $subscriber - * @return void - */ - public function subscribe($subscriber) - { - // - } - - /** - * Flush a set of pushed events. - * - * @param string $event - * @return void - */ - public function flush($event) - { - // - } - - /** - * Fire an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - public function fire($event, $payload = [], $halt = false) - { - return $this->dispatch($event, $payload, $halt); - } - - /** - * Fire an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - public function dispatch($event, $payload = [], $halt = false) - { - $name = is_object($event) ? get_class($event) : (string) $event; - - if ($this->shouldFakeEvent($name)) { - $this->events[$name][] = func_get_args(); - } else { - $this->dispatcher->dispatch($event, $payload, $halt); - } - } - - /** - * Determine if an event should be faked or actually dispatched. - * - * @param string $eventName - * @return bool - */ - protected function shouldFakeEvent($eventName) - { - return empty($this->eventsToFake) || in_array($eventName, $this->eventsToFake); - } - - /** - * Remove a set of listeners from the dispatcher. - * - * @param string $event - * @return void - */ - public function forget($event) - { - // - } - - /** - * Forget all of the queued listeners. - * - * @return void - */ - public function forgetPushed() - { - // - } - - /** - * Dispatch an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @return void - */ - public function until($event, $payload = []) - { - return $this->dispatch($event, $payload, true); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php deleted file mode 100644 index 0d11c086..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php +++ /dev/null @@ -1,316 +0,0 @@ -assertSentTimes($mailable, $callback); - } - - PHPUnit::assertTrue( - $this->sent($mailable, $callback)->count() > 0, - "The expected [{$mailable}] mailable was not sent." - ); - } - - /** - * Assert if a mailable was sent a number of times. - * - * @param string $mailable - * @param int $times - * @return void - */ - protected function assertSentTimes($mailable, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->sent($mailable)->count()) === $times, - "The expected [{$mailable}] mailable was sent {$count} times instead of {$times} times." - ); - } - - /** - * Determine if a mailable was not sent based on a truth-test callback. - * - * @param string $mailable - * @param callable|null $callback - * @return void - */ - public function assertNotSent($mailable, $callback = null) - { - PHPUnit::assertTrue( - $this->sent($mailable, $callback)->count() === 0, - "The unexpected [{$mailable}] mailable was sent." - ); - } - - /** - * Assert that no mailables were sent. - * - * @return void - */ - public function assertNothingSent() - { - PHPUnit::assertEmpty($this->mailables, 'Mailables were sent unexpectedly.'); - } - - /** - * Assert if a mailable was queued based on a truth-test callback. - * - * @param string $mailable - * @param callable|int|null $callback - * @return void - */ - public function assertQueued($mailable, $callback = null) - { - if (is_numeric($callback)) { - return $this->assertQueuedTimes($mailable, $callback); - } - - PHPUnit::assertTrue( - $this->queued($mailable, $callback)->count() > 0, - "The expected [{$mailable}] mailable was not queued." - ); - } - - /** - * Assert if a mailable was queued a number of times. - * - * @param string $mailable - * @param int $times - * @return void - */ - protected function assertQueuedTimes($mailable, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->queued($mailable)->count()) === $times, - "The expected [{$mailable}] mailable was queued {$count} times instead of {$times} times." - ); - } - - /** - * Determine if a mailable was not queued based on a truth-test callback. - * - * @param string $mailable - * @param callable|null $callback - * @return void - */ - public function assertNotQueued($mailable, $callback = null) - { - PHPUnit::assertTrue( - $this->queued($mailable, $callback)->count() === 0, - "The unexpected [{$mailable}] mailable was queued." - ); - } - - /** - * Assert that no mailables were queued. - * - * @return void - */ - public function assertNothingQueued() - { - PHPUnit::assertEmpty($this->queuedMailables, 'Mailables were queued unexpectedly.'); - } - - /** - * Get all of the mailables matching a truth-test callback. - * - * @param string $mailable - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function sent($mailable, $callback = null) - { - if (! $this->hasSent($mailable)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return $this->mailablesOf($mailable)->filter(function ($mailable) use ($callback) { - return $callback($mailable); - }); - } - - /** - * Determine if the given mailable has been sent. - * - * @param string $mailable - * @return bool - */ - public function hasSent($mailable) - { - return $this->mailablesOf($mailable)->count() > 0; - } - - /** - * Get all of the queued mailables matching a truth-test callback. - * - * @param string $mailable - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function queued($mailable, $callback = null) - { - if (! $this->hasQueued($mailable)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return $this->queuedMailablesOf($mailable)->filter(function ($mailable) use ($callback) { - return $callback($mailable); - }); - } - - /** - * Determine if the given mailable has been queued. - * - * @param string $mailable - * @return bool - */ - public function hasQueued($mailable) - { - return $this->queuedMailablesOf($mailable)->count() > 0; - } - - /** - * Get all of the mailed mailables for a given type. - * - * @param string $type - * @return \Illuminate\Support\Collection - */ - protected function mailablesOf($type) - { - return collect($this->mailables)->filter(function ($mailable) use ($type) { - return $mailable instanceof $type; - }); - } - - /** - * Get all of the mailed mailables for a given type. - * - * @param string $type - * @return \Illuminate\Support\Collection - */ - protected function queuedMailablesOf($type) - { - return collect($this->queuedMailables)->filter(function ($mailable) use ($type) { - return $mailable instanceof $type; - }); - } - - /** - * Begin the process of mailing a mailable class instance. - * - * @param mixed $users - * @return \Illuminate\Mail\PendingMail - */ - public function to($users) - { - return (new PendingMailFake($this))->to($users); - } - - /** - * Begin the process of mailing a mailable class instance. - * - * @param mixed $users - * @return \Illuminate\Mail\PendingMail - */ - public function bcc($users) - { - return (new PendingMailFake($this))->bcc($users); - } - - /** - * Send a new message when only a raw text part. - * - * @param string $text - * @param \Closure|string $callback - * @return int - */ - public function raw($text, $callback) - { - // - } - - /** - * Send a new message using a view. - * - * @param string|array $view - * @param array $data - * @param \Closure|string $callback - * @return void - */ - public function send($view, array $data = [], $callback = null) - { - if (! $view instanceof Mailable) { - return; - } - - if ($view instanceof ShouldQueue) { - return $this->queue($view, $data, $callback); - } - - $this->mailables[] = $view; - } - - /** - * Queue a new e-mail message for sending. - * - * @param string|array $view - * @param string|null $queue - * @return mixed - */ - public function queue($view, $queue = null) - { - if (! $view instanceof Mailable) { - return; - } - - $this->queuedMailables[] = $view; - } - - /** - * Get the array of failed recipients. - * - * @return array - */ - public function failures() - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php deleted file mode 100644 index 15dc0773..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php +++ /dev/null @@ -1,197 +0,0 @@ -assertSentTo($singleNotifiable, $notification, $callback); - } - - return; - } - - if (is_numeric($callback)) { - return $this->assertSentToTimes($notifiable, $notification, $callback); - } - - PHPUnit::assertTrue( - $this->sent($notifiable, $notification, $callback)->count() > 0, - "The expected [{$notification}] notification was not sent." - ); - } - - /** - * Assert if a notification was sent a number of times. - * - * @param mixed $notifiable - * @param string $notification - * @param int $times - * @return void - */ - public function assertSentToTimes($notifiable, $notification, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->sent($notifiable, $notification)->count()) === $times, - "The expected [{$notification}] notification was sent {$count} times instead of {$times} times." - ); - } - - /** - * Determine if a notification was sent based on a truth-test callback. - * - * @param mixed $notifiable - * @param string $notification - * @param callable|null $callback - * @return void - */ - public function assertNotSentTo($notifiable, $notification, $callback = null) - { - if (is_array($notifiable) || $notifiable instanceof Collection) { - foreach ($notifiable as $singleNotifiable) { - $this->assertNotSentTo($singleNotifiable, $notification, $callback); - } - - return; - } - - PHPUnit::assertTrue( - $this->sent($notifiable, $notification, $callback)->count() === 0, - "The unexpected [{$notification}] notification was sent." - ); - } - - /** - * Assert that no notifications were sent. - * - * @return void - */ - public function assertNothingSent() - { - PHPUnit::assertEmpty($this->notifications, 'Notifications were sent unexpectedly.'); - } - - /** - * Get all of the notifications matching a truth-test callback. - * - * @param mixed $notifiable - * @param string $notification - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function sent($notifiable, $notification, $callback = null) - { - if (! $this->hasSent($notifiable, $notification)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - $notifications = collect($this->notificationsFor($notifiable, $notification)); - - return $notifications->filter(function ($arguments) use ($callback) { - return $callback(...array_values($arguments)); - })->pluck('notification'); - } - - /** - * Determine if there are more notifications left to inspect. - * - * @param mixed $notifiable - * @param string $notification - * @return bool - */ - public function hasSent($notifiable, $notification) - { - return ! empty($this->notificationsFor($notifiable, $notification)); - } - - /** - * Get all of the notifications for a notifiable entity by type. - * - * @param mixed $notifiable - * @param string $notification - * @return array - */ - protected function notificationsFor($notifiable, $notification) - { - if (isset($this->notifications[get_class($notifiable)][$notifiable->getKey()][$notification])) { - return $this->notifications[get_class($notifiable)][$notifiable->getKey()][$notification]; - } - - return []; - } - - /** - * Send the given notification to the given notifiable entities. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @return void - */ - public function send($notifiables, $notification) - { - return $this->sendNow($notifiables, $notification); - } - - /** - * Send the given notification immediately. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @return void - */ - public function sendNow($notifiables, $notification) - { - if (! $notifiables instanceof Collection && ! is_array($notifiables)) { - $notifiables = [$notifiables]; - } - - foreach ($notifiables as $notifiable) { - $notification->id = Uuid::uuid4()->toString(); - - $this->notifications[get_class($notifiable)][$notifiable->getKey()][get_class($notification)][] = [ - 'notification' => $notification, - 'channels' => $notification->via($notifiable), - 'notifiable' => $notifiable, - ]; - } - } - - /** - * Get a channel instance by name. - * - * @param string|null $name - * @return mixed - */ - public function channel($name = null) - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php deleted file mode 100644 index e344fcfb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php +++ /dev/null @@ -1,53 +0,0 @@ -mailer = $mailer; - } - - /** - * Send a new mailable message instance. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function send(Mailable $mailable) - { - return $this->sendNow($mailable); - } - - /** - * Send a mailable message immediately. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function sendNow(Mailable $mailable) - { - $this->mailer->send($this->fill($mailable)); - } - - /** - * Push the given mailable onto the queue. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function queue(Mailable $mailable) - { - return $this->mailer->queue($this->fill($mailable)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php deleted file mode 100644 index 7428b871..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php +++ /dev/null @@ -1,267 +0,0 @@ -assertPushedTimes($job, $callback); - } - - PHPUnit::assertTrue( - $this->pushed($job, $callback)->count() > 0, - "The expected [{$job}] job was not pushed." - ); - } - - /** - * Assert if a job was pushed a number of times. - * - * @param string $job - * @param int $times - * @return void - */ - protected function assertPushedTimes($job, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->pushed($job)->count()) === $times, - "The expected [{$job}] job was pushed {$count} times instead of {$times} times." - ); - } - - /** - * Assert if a job was pushed based on a truth-test callback. - * - * @param string $queue - * @param string $job - * @param callable|null $callback - * @return void - */ - public function assertPushedOn($queue, $job, $callback = null) - { - return $this->assertPushed($job, function ($job, $pushedQueue) use ($callback, $queue) { - if ($pushedQueue !== $queue) { - return false; - } - - return $callback ? $callback(...func_get_args()) : true; - }); - } - - /** - * Determine if a job was pushed based on a truth-test callback. - * - * @param string $job - * @param callable|null $callback - * @return void - */ - public function assertNotPushed($job, $callback = null) - { - PHPUnit::assertTrue( - $this->pushed($job, $callback)->count() === 0, - "The unexpected [{$job}] job was pushed." - ); - } - - /** - * Assert that no jobs were pushed. - * - * @return void - */ - public function assertNothingPushed() - { - PHPUnit::assertEmpty($this->jobs, 'Jobs were pushed unexpectedly.'); - } - - /** - * Get all of the jobs matching a truth-test callback. - * - * @param string $job - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function pushed($job, $callback = null) - { - if (! $this->hasPushed($job)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return collect($this->jobs[$job])->filter(function ($data) use ($callback) { - return $callback($data['job'], $data['queue']); - })->pluck('job'); - } - - /** - * Determine if there are any stored jobs for a given class. - * - * @param string $job - * @return bool - */ - public function hasPushed($job) - { - return isset($this->jobs[$job]) && ! empty($this->jobs[$job]); - } - - /** - * Resolve a queue connection instance. - * - * @param mixed $value - * @return \Illuminate\Contracts\Queue\Queue - */ - public function connection($value = null) - { - return $this; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - return 0; - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - $this->jobs[is_object($job) ? get_class($job) : $job][] = [ - 'job' => $job, - 'queue' => $queue, - ]; - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - // - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTime|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->push($job, $data, $queue); - } - - /** - * Push a new job onto the queue. - * - * @param string $queue - * @param string $job - * @param mixed $data - * @return mixed - */ - public function pushOn($queue, $job, $data = '') - { - return $this->push($job, $data, $queue); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param string $queue - * @param \DateTime|int $delay - * @param string $job - * @param mixed $data - * @return mixed - */ - public function laterOn($queue, $delay, $job, $data = '') - { - return $this->push($job, $data, $queue); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - // - } - - /** - * Push an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function bulk($jobs, $data = '', $queue = null) - { - foreach ($this->jobs as $job) { - $this->push($job); - } - } - - /** - * Get the connection name for the queue. - * - * @return string - */ - public function getConnectionName() - { - // - } - - /** - * Set the connection name for the queue. - * - * @param string $name - * @return $this - */ - public function setConnectionName($name) - { - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php deleted file mode 100644 index 08089ef6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php +++ /dev/null @@ -1,69 +0,0 @@ -container = $container; - - if (! $this->container->bound('config')) { - $this->container->instance('config', new Fluent); - } - } - - /** - * Make this capsule instance available globally. - * - * @return void - */ - public function setAsGlobal() - { - static::$instance = $this; - } - - /** - * Get the IoC container instance. - * - * @return \Illuminate\Contracts\Container\Container - */ - public function getContainer() - { - return $this->container; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function setContainer(Container $container) - { - $this->container = $container; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php deleted file mode 100644 index a7703b14..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php +++ /dev/null @@ -1,107 +0,0 @@ -getMethods( - ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED - ); - - foreach ($methods as $method) { - $method->setAccessible(true); - - static::macro($method->name, $method->invoke($mixin)); - } - } - - /** - * Checks if macro is registered. - * - * @param string $name - * @return bool - */ - public static function hasMacro($name) - { - return isset(static::$macros[$name]); - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public static function __callStatic($method, $parameters) - { - if (! static::hasMacro($method)) { - throw new BadMethodCallException("Method {$method} does not exist."); - } - - if (static::$macros[$method] instanceof Closure) { - return call_user_func_array(Closure::bind(static::$macros[$method], null, static::class), $parameters); - } - - return call_user_func_array(static::$macros[$method], $parameters); - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (! static::hasMacro($method)) { - throw new BadMethodCallException("Method {$method} does not exist."); - } - - $macro = static::$macros[$method]; - - if ($macro instanceof Closure) { - return call_user_func_array($macro->bindTo($this, static::class), $parameters); - } - - return call_user_func_array($macro, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php b/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php deleted file mode 100644 index 0f273b5b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php +++ /dev/null @@ -1,130 +0,0 @@ -bags[$key]); - } - - /** - * Get a MessageBag instance from the bags. - * - * @param string $key - * @return \Illuminate\Contracts\Support\MessageBag - */ - public function getBag($key) - { - return Arr::get($this->bags, $key) ?: new MessageBag; - } - - /** - * Get all the bags. - * - * @return array - */ - public function getBags() - { - return $this->bags; - } - - /** - * Add a new MessageBag instance to the bags. - * - * @param string $key - * @param \Illuminate\Contracts\Support\MessageBag $bag - * @return $this - */ - public function put($key, MessageBagContract $bag) - { - $this->bags[$key] = $bag; - - return $this; - } - - /** - * Determine if the default message bag has any messages. - * - * @return bool - */ - public function any() - { - return $this->count() > 0; - } - - /** - * Get the number of messages in the default bag. - * - * @return int - */ - public function count() - { - return $this->getBag('default')->count(); - } - - /** - * Dynamically call methods on the default bag. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->getBag('default')->$method(...$parameters); - } - - /** - * Dynamically access a view error bag. - * - * @param string $key - * @return \Illuminate\Contracts\Support\MessageBag - */ - public function __get($key) - { - return $this->getBag($key); - } - - /** - * Dynamically set a view error bag. - * - * @param string $key - * @param \Illuminate\Contracts\Support\MessageBag $value - * @return void - */ - public function __set($key, $value) - { - $this->put($key, $value); - } - - /** - * Convert the default bag to its string representation. - * - * @return string - */ - public function __toString() - { - return (string) $this->getBag('default'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/composer.json b/vendor/laravel/framework/src/Illuminate/Support/composer.json deleted file mode 100644 index 172303dc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/composer.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "illuminate/support", - "description": "The Illuminate Support package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "ext-mbstring": "*", - "doctrine/inflector": "~1.1", - "illuminate/contracts": "5.5.*", - "nesbot/carbon": "^1.20" - }, - "replace": { - "tightenco/collect": "self.version" - }, - "autoload": { - "psr-4": { - "Illuminate\\Support\\": "" - }, - "files": [ - "helpers.php" - ] - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "illuminate/filesystem": "Required to use the composer class (5.2.*).", - "symfony/process": "Required to use the composer class (~3.3).", - "symfony/var-dumper": "Required to use the dd function (~3.3)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/helpers.php b/vendor/laravel/framework/src/Illuminate/Support/helpers.php deleted file mode 100755 index c52fd66f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/helpers.php +++ /dev/null @@ -1,1176 +0,0 @@ - $value) { - if (is_numeric($key)) { - $start++; - - $array[$start] = Arr::pull($array, $key); - } - } - - return $array; - } -} - -if (! function_exists('array_add')) { - /** - * Add an element to an array using "dot" notation if it doesn't exist. - * - * @param array $array - * @param string $key - * @param mixed $value - * @return array - */ - function array_add($array, $key, $value) - { - return Arr::add($array, $key, $value); - } -} - -if (! function_exists('array_collapse')) { - /** - * Collapse an array of arrays into a single array. - * - * @param array $array - * @return array - */ - function array_collapse($array) - { - return Arr::collapse($array); - } -} - -if (! function_exists('array_divide')) { - /** - * Divide an array into two arrays. One with keys and the other with values. - * - * @param array $array - * @return array - */ - function array_divide($array) - { - return Arr::divide($array); - } -} - -if (! function_exists('array_dot')) { - /** - * Flatten a multi-dimensional associative array with dots. - * - * @param array $array - * @param string $prepend - * @return array - */ - function array_dot($array, $prepend = '') - { - return Arr::dot($array, $prepend); - } -} - -if (! function_exists('array_except')) { - /** - * Get all of the given array except for a specified array of keys. - * - * @param array $array - * @param array|string $keys - * @return array - */ - function array_except($array, $keys) - { - return Arr::except($array, $keys); - } -} - -if (! function_exists('array_first')) { - /** - * Return the first element in an array passing a given truth test. - * - * @param array $array - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - function array_first($array, callable $callback = null, $default = null) - { - return Arr::first($array, $callback, $default); - } -} - -if (! function_exists('array_flatten')) { - /** - * Flatten a multi-dimensional array into a single level. - * - * @param array $array - * @param int $depth - * @return array - */ - function array_flatten($array, $depth = INF) - { - return Arr::flatten($array, $depth); - } -} - -if (! function_exists('array_forget')) { - /** - * Remove one or many array items from a given array using "dot" notation. - * - * @param array $array - * @param array|string $keys - * @return void - */ - function array_forget(&$array, $keys) - { - return Arr::forget($array, $keys); - } -} - -if (! function_exists('array_get')) { - /** - * Get an item from an array using "dot" notation. - * - * @param \ArrayAccess|array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - function array_get($array, $key, $default = null) - { - return Arr::get($array, $key, $default); - } -} - -if (! function_exists('array_has')) { - /** - * Check if an item or items exist in an array using "dot" notation. - * - * @param \ArrayAccess|array $array - * @param string|array $keys - * @return bool - */ - function array_has($array, $keys) - { - return Arr::has($array, $keys); - } -} - -if (! function_exists('array_last')) { - /** - * Return the last element in an array passing a given truth test. - * - * @param array $array - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - function array_last($array, callable $callback = null, $default = null) - { - return Arr::last($array, $callback, $default); - } -} - -if (! function_exists('array_only')) { - /** - * Get a subset of the items from the given array. - * - * @param array $array - * @param array|string $keys - * @return array - */ - function array_only($array, $keys) - { - return Arr::only($array, $keys); - } -} - -if (! function_exists('array_pluck')) { - /** - * Pluck an array of values from an array. - * - * @param array $array - * @param string|array $value - * @param string|array|null $key - * @return array - */ - function array_pluck($array, $value, $key = null) - { - return Arr::pluck($array, $value, $key); - } -} - -if (! function_exists('array_prepend')) { - /** - * Push an item onto the beginning of an array. - * - * @param array $array - * @param mixed $value - * @param mixed $key - * @return array - */ - function array_prepend($array, $value, $key = null) - { - return Arr::prepend($array, $value, $key); - } -} - -if (! function_exists('array_pull')) { - /** - * Get a value from the array, and remove it. - * - * @param array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - function array_pull(&$array, $key, $default = null) - { - return Arr::pull($array, $key, $default); - } -} - -if (! function_exists('array_random')) { - /** - * Get a random value from an array. - * - * @param array $array - * @param int|null $num - * @return mixed - */ - function array_random($array, $num = null) - { - return Arr::random($array, $num); - } -} - -if (! function_exists('array_set')) { - /** - * Set an array item to a given value using "dot" notation. - * - * If no key is given to the method, the entire array will be replaced. - * - * @param array $array - * @param string $key - * @param mixed $value - * @return array - */ - function array_set(&$array, $key, $value) - { - return Arr::set($array, $key, $value); - } -} - -if (! function_exists('array_sort')) { - /** - * Sort the array by the given callback or attribute name. - * - * @param array $array - * @param callable|string|null $callback - * @return array - */ - function array_sort($array, $callback = null) - { - return Arr::sort($array, $callback); - } -} - -if (! function_exists('array_sort_recursive')) { - /** - * Recursively sort an array by keys and values. - * - * @param array $array - * @return array - */ - function array_sort_recursive($array) - { - return Arr::sortRecursive($array); - } -} - -if (! function_exists('array_where')) { - /** - * Filter the array using the given callback. - * - * @param array $array - * @param callable $callback - * @return array - */ - function array_where($array, callable $callback) - { - return Arr::where($array, $callback); - } -} - -if (! function_exists('array_wrap')) { - /** - * If the given value is not an array, wrap it in one. - * - * @param mixed $value - * @return array - */ - function array_wrap($value) - { - return Arr::wrap($value); - } -} - -if (! function_exists('blank')) { - /** - * Determine if the given value is "blank". - * - * @param mixed $value - * @return bool - */ - function blank($value) - { - if (is_null($value)) { - return true; - } - - if (is_string($value)) { - return trim($value) === ''; - } - - if (is_numeric($value) || is_bool($value)) { - return false; - } - - if ($value instanceof Countable) { - return count($value) === 0; - } - - return empty($value); - } -} - -if (! function_exists('camel_case')) { - /** - * Convert a value to camel case. - * - * @param string $value - * @return string - */ - function camel_case($value) - { - return Str::camel($value); - } -} - -if (! function_exists('class_basename')) { - /** - * Get the class "basename" of the given object / class. - * - * @param string|object $class - * @return string - */ - function class_basename($class) - { - $class = is_object($class) ? get_class($class) : $class; - - return basename(str_replace('\\', '/', $class)); - } -} - -if (! function_exists('class_uses_recursive')) { - /** - * Returns all traits used by a class, its subclasses and trait of their traits. - * - * @param object|string $class - * @return array - */ - function class_uses_recursive($class) - { - if (is_object($class)) { - $class = get_class($class); - } - - $results = []; - - foreach (array_merge([$class => $class], class_parents($class)) as $class) { - $results += trait_uses_recursive($class); - } - - return array_unique($results); - } -} - -if (! function_exists('collect')) { - /** - * Create a collection from the given value. - * - * @param mixed $value - * @return \Illuminate\Support\Collection - */ - function collect($value = null) - { - return new Collection($value); - } -} - -if (! function_exists('data_fill')) { - /** - * Fill in data where it's missing. - * - * @param mixed $target - * @param string|array $key - * @param mixed $value - * @return mixed - */ - function data_fill(&$target, $key, $value) - { - return data_set($target, $key, $value, false); - } -} - -if (! function_exists('data_get')) { - /** - * Get an item from an array or object using "dot" notation. - * - * @param mixed $target - * @param string|array $key - * @param mixed $default - * @return mixed - */ - function data_get($target, $key, $default = null) - { - if (is_null($key)) { - return $target; - } - - $key = is_array($key) ? $key : explode('.', $key); - - while (! is_null($segment = array_shift($key))) { - if ($segment === '*') { - if ($target instanceof Collection) { - $target = $target->all(); - } elseif (! is_array($target)) { - return value($default); - } - - $result = Arr::pluck($target, $key); - - return in_array('*', $key) ? Arr::collapse($result) : $result; - } - - if (Arr::accessible($target) && Arr::exists($target, $segment)) { - $target = $target[$segment]; - } elseif (is_object($target) && isset($target->{$segment})) { - $target = $target->{$segment}; - } else { - return value($default); - } - } - - return $target; - } -} - -if (! function_exists('data_set')) { - /** - * Set an item on an array or object using dot notation. - * - * @param mixed $target - * @param string|array $key - * @param mixed $value - * @param bool $overwrite - * @return mixed - */ - function data_set(&$target, $key, $value, $overwrite = true) - { - $segments = is_array($key) ? $key : explode('.', $key); - - if (($segment = array_shift($segments)) === '*') { - if (! Arr::accessible($target)) { - $target = []; - } - - if ($segments) { - foreach ($target as &$inner) { - data_set($inner, $segments, $value, $overwrite); - } - } elseif ($overwrite) { - foreach ($target as &$inner) { - $inner = $value; - } - } - } elseif (Arr::accessible($target)) { - if ($segments) { - if (! Arr::exists($target, $segment)) { - $target[$segment] = []; - } - - data_set($target[$segment], $segments, $value, $overwrite); - } elseif ($overwrite || ! Arr::exists($target, $segment)) { - $target[$segment] = $value; - } - } elseif (is_object($target)) { - if ($segments) { - if (! isset($target->{$segment})) { - $target->{$segment} = []; - } - - data_set($target->{$segment}, $segments, $value, $overwrite); - } elseif ($overwrite || ! isset($target->{$segment})) { - $target->{$segment} = $value; - } - } else { - $target = []; - - if ($segments) { - data_set($target[$segment], $segments, $value, $overwrite); - } elseif ($overwrite) { - $target[$segment] = $value; - } - } - - return $target; - } -} - -if (! function_exists('dd')) { - /** - * Dump the passed variables and end the script. - * - * @param mixed $args - * @return void - */ - function dd(...$args) - { - http_response_code(500); - - foreach ($args as $x) { - (new Dumper)->dump($x); - } - - die(1); - } -} - -if (! function_exists('e')) { - /** - * Escape HTML special characters in a string. - * - * @param \Illuminate\Contracts\Support\Htmlable|string $value - * @param bool $doubleEncode - * @return string - */ - function e($value, $doubleEncode = false) - { - if ($value instanceof Htmlable) { - return $value->toHtml(); - } - - return htmlspecialchars($value, ENT_QUOTES, 'UTF-8', $doubleEncode); - } -} - -if (! function_exists('ends_with')) { - /** - * Determine if a given string ends with a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - function ends_with($haystack, $needles) - { - return Str::endsWith($haystack, $needles); - } -} - -if (! function_exists('env')) { - /** - * Gets the value of an environment variable. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - function env($key, $default = null) - { - $value = getenv($key); - - if ($value === false) { - return value($default); - } - - switch (strtolower($value)) { - case 'true': - case '(true)': - return true; - case 'false': - case '(false)': - return false; - case 'empty': - case '(empty)': - return ''; - case 'null': - case '(null)': - return; - } - - if (strlen($value) > 1 && Str::startsWith($value, '"') && Str::endsWith($value, '"')) { - return substr($value, 1, -1); - } - - return $value; - } -} - -if (! function_exists('filled')) { - /** - * Determine if a value is "filled". - * - * @param mixed $value - * @return bool - */ - function filled($value) - { - return ! blank($value); - } -} - -if (! function_exists('head')) { - /** - * Get the first element of an array. Useful for method chaining. - * - * @param array $array - * @return mixed - */ - function head($array) - { - return reset($array); - } -} - -if (! function_exists('kebab_case')) { - /** - * Convert a string to kebab case. - * - * @param string $value - * @return string - */ - function kebab_case($value) - { - return Str::kebab($value); - } -} - -if (! function_exists('last')) { - /** - * Get the last element from an array. - * - * @param array $array - * @return mixed - */ - function last($array) - { - return end($array); - } -} - -if (! function_exists('object_get')) { - /** - * Get an item from an object using "dot" notation. - * - * @param object $object - * @param string $key - * @param mixed $default - * @return mixed - */ - function object_get($object, $key, $default = null) - { - if (is_null($key) || trim($key) == '') { - return $object; - } - - foreach (explode('.', $key) as $segment) { - if (! is_object($object) || ! isset($object->{$segment})) { - return value($default); - } - - $object = $object->{$segment}; - } - - return $object; - } -} - -if (! function_exists('optional')) { - /** - * Provide access to optional objects. - * - * @param mixed $value - * @return mixed - */ - function optional($value = null) - { - return new Optional($value); - } -} - -if (! function_exists('preg_replace_array')) { - /** - * Replace a given pattern with each value in the array in sequentially. - * - * @param string $pattern - * @param array $replacements - * @param string $subject - * @return string - */ - function preg_replace_array($pattern, array $replacements, $subject) - { - return preg_replace_callback($pattern, function () use (&$replacements) { - foreach ($replacements as $key => $value) { - return array_shift($replacements); - } - }, $subject); - } -} - -if (! function_exists('retry')) { - /** - * Retry an operation a given number of times. - * - * @param int $times - * @param callable $callback - * @param int $sleep - * @return mixed - * - * @throws \Exception - */ - function retry($times, callable $callback, $sleep = 0) - { - $times--; - - beginning: - try { - return $callback(); - } catch (Exception $e) { - if (! $times) { - throw $e; - } - - $times--; - - if ($sleep) { - usleep($sleep * 1000); - } - - goto beginning; - } - } -} - -if (! function_exists('snake_case')) { - /** - * Convert a string to snake case. - * - * @param string $value - * @param string $delimiter - * @return string - */ - function snake_case($value, $delimiter = '_') - { - return Str::snake($value, $delimiter); - } -} - -if (! function_exists('starts_with')) { - /** - * Determine if a given string starts with a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - function starts_with($haystack, $needles) - { - return Str::startsWith($haystack, $needles); - } -} - -if (! function_exists('str_after')) { - /** - * Return the remainder of a string after a given value. - * - * @param string $subject - * @param string $search - * @return string - */ - function str_after($subject, $search) - { - return Str::after($subject, $search); - } -} - -if (! function_exists('str_before')) { - /** - * Get the portion of a string before a given value. - * - * @param string $subject - * @param string $search - * @return string - */ - function str_before($subject, $search) - { - return Str::before($subject, $search); - } -} - -if (! function_exists('str_contains')) { - /** - * Determine if a given string contains a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - function str_contains($haystack, $needles) - { - return Str::contains($haystack, $needles); - } -} - -if (! function_exists('str_finish')) { - /** - * Cap a string with a single instance of a given value. - * - * @param string $value - * @param string $cap - * @return string - */ - function str_finish($value, $cap) - { - return Str::finish($value, $cap); - } -} - -if (! function_exists('str_is')) { - /** - * Determine if a given string matches a given pattern. - * - * @param string|array $pattern - * @param string $value - * @return bool - */ - function str_is($pattern, $value) - { - return Str::is($pattern, $value); - } -} - -if (! function_exists('str_limit')) { - /** - * Limit the number of characters in a string. - * - * @param string $value - * @param int $limit - * @param string $end - * @return string - */ - function str_limit($value, $limit = 100, $end = '...') - { - return Str::limit($value, $limit, $end); - } -} - -if (! function_exists('str_plural')) { - /** - * Get the plural form of an English word. - * - * @param string $value - * @param int $count - * @return string - */ - function str_plural($value, $count = 2) - { - return Str::plural($value, $count); - } -} - -if (! function_exists('str_random')) { - /** - * Generate a more truly "random" alpha-numeric string. - * - * @param int $length - * @return string - * - * @throws \RuntimeException - */ - function str_random($length = 16) - { - return Str::random($length); - } -} - -if (! function_exists('str_replace_array')) { - /** - * Replace a given value in the string sequentially with an array. - * - * @param string $search - * @param array $replace - * @param string $subject - * @return string - */ - function str_replace_array($search, array $replace, $subject) - { - return Str::replaceArray($search, $replace, $subject); - } -} - -if (! function_exists('str_replace_first')) { - /** - * Replace the first occurrence of a given value in the string. - * - * @param string $search - * @param string $replace - * @param string $subject - * @return string - */ - function str_replace_first($search, $replace, $subject) - { - return Str::replaceFirst($search, $replace, $subject); - } -} - -if (! function_exists('str_replace_last')) { - /** - * Replace the last occurrence of a given value in the string. - * - * @param string $search - * @param string $replace - * @param string $subject - * @return string - */ - function str_replace_last($search, $replace, $subject) - { - return Str::replaceLast($search, $replace, $subject); - } -} - -if (! function_exists('str_singular')) { - /** - * Get the singular form of an English word. - * - * @param string $value - * @return string - */ - function str_singular($value) - { - return Str::singular($value); - } -} - -if (! function_exists('str_slug')) { - /** - * Generate a URL friendly "slug" from a given string. - * - * @param string $title - * @param string $separator - * @param string $language - * @return string - */ - function str_slug($title, $separator = '-', $language = 'en') - { - return Str::slug($title, $separator, $language); - } -} - -if (! function_exists('str_start')) { - /** - * Begin a string with a single instance of a given value. - * - * @param string $value - * @param string $prefix - * @return string - */ - function str_start($value, $prefix) - { - return Str::start($value, $prefix); - } -} - -if (! function_exists('studly_case')) { - /** - * Convert a value to studly caps case. - * - * @param string $value - * @return string - */ - function studly_case($value) - { - return Str::studly($value); - } -} - -if (! function_exists('tap')) { - /** - * Call the given Closure with the given value then return the value. - * - * @param mixed $value - * @param callable|null $callback - * @return mixed - */ - function tap($value, $callback = null) - { - if (is_null($callback)) { - return new HigherOrderTapProxy($value); - } - - $callback($value); - - return $value; - } -} - -if (! function_exists('throw_if')) { - /** - * Throw the given exception if the given condition is true. - * - * @param mixed $condition - * @param \Throwable|string $exception - * @param array ...$parameters - * @return mixed - * @throws \Throwable - */ - function throw_if($condition, $exception, ...$parameters) - { - if ($condition) { - throw (is_string($exception) ? new $exception(...$parameters) : $exception); - } - - return $condition; - } -} - -if (! function_exists('throw_unless')) { - /** - * Throw the given exception unless the given condition is true. - * - * @param mixed $condition - * @param \Throwable|string $exception - * @param array ...$parameters - * @return mixed - * @throws \Throwable - */ - function throw_unless($condition, $exception, ...$parameters) - { - if (! $condition) { - throw (is_string($exception) ? new $exception(...$parameters) : $exception); - } - - return $condition; - } -} - -if (! function_exists('title_case')) { - /** - * Convert a value to title case. - * - * @param string $value - * @return string - */ - function title_case($value) - { - return Str::title($value); - } -} - -if (! function_exists('trait_uses_recursive')) { - /** - * Returns all traits used by a trait and its traits. - * - * @param string $trait - * @return array - */ - function trait_uses_recursive($trait) - { - $traits = class_uses($trait); - - foreach ($traits as $trait) { - $traits += trait_uses_recursive($trait); - } - - return $traits; - } -} - -if (! function_exists('transform')) { - /** - * Transform the given value if it is present. - * - * @param mixed $value - * @param callable $callback - * @param mixed $default - * @return mixed|null - */ - function transform($value, callable $callback, $default = null) - { - if (filled($value)) { - return $callback($value); - } - - if (is_callable($default)) { - return $default($value); - } - - return $default; - } -} - -if (! function_exists('value')) { - /** - * Return the default value of the given value. - * - * @param mixed $value - * @return mixed - */ - function value($value) - { - return $value instanceof Closure ? $value() : $value; - } -} - -if (! function_exists('windows_os')) { - /** - * Determine whether the current environment is Windows based. - * - * @return bool - */ - function windows_os() - { - return strtolower(substr(PHP_OS, 0, 3)) === 'win'; - } -} - -if (! function_exists('with')) { - /** - * Return the given value, optionally passed through the given callback. - * - * @param mixed $value - * @param callable|null $callback - * @return mixed - */ - function with($value, callable $callback = null) - { - return is_null($callback) ? $value : $callback($value); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php b/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php deleted file mode 100644 index 47482d45..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php +++ /dev/null @@ -1,85 +0,0 @@ -messages[$namespace][$locale][$group])) { - return $this->messages[$namespace][$locale][$group]; - } - - return []; - } - - /** - * Add a new namespace to the loader. - * - * @param string $namespace - * @param string $hint - * @return void - */ - public function addNamespace($namespace, $hint) - { - // - } - - /** - * Add a new JSON path to the loader. - * - * @param string $path - * @return void - */ - public function addJsonPath($path) - { - // - } - - /** - * Add messages to the loader. - * - * @param string $locale - * @param string $group - * @param array $messages - * @param string|null $namespace - * @return $this - */ - public function addMessages($locale, $group, array $messages, $namespace = null) - { - $namespace = $namespace ?: '*'; - - $this->messages[$namespace][$locale][$group] = $messages; - - return $this; - } - - /** - * Get an array of all the registered namespaces. - * - * @return array - */ - public function namespaces() - { - return []; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php b/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php deleted file mode 100755 index 5a29c749..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php +++ /dev/null @@ -1,187 +0,0 @@ -path = $path; - $this->files = $files; - } - - /** - * Load the messages for the given locale. - * - * @param string $locale - * @param string $group - * @param string $namespace - * @return array - */ - public function load($locale, $group, $namespace = null) - { - if ($group == '*' && $namespace == '*') { - return $this->loadJsonPaths($locale); - } - - if (is_null($namespace) || $namespace == '*') { - return $this->loadPath($this->path, $locale, $group); - } - - return $this->loadNamespaced($locale, $group, $namespace); - } - - /** - * Load a namespaced translation group. - * - * @param string $locale - * @param string $group - * @param string $namespace - * @return array - */ - protected function loadNamespaced($locale, $group, $namespace) - { - if (isset($this->hints[$namespace])) { - $lines = $this->loadPath($this->hints[$namespace], $locale, $group); - - return $this->loadNamespaceOverrides($lines, $locale, $group, $namespace); - } - - return []; - } - - /** - * Load a local namespaced translation group for overrides. - * - * @param array $lines - * @param string $locale - * @param string $group - * @param string $namespace - * @return array - */ - protected function loadNamespaceOverrides(array $lines, $locale, $group, $namespace) - { - $file = "{$this->path}/vendor/{$namespace}/{$locale}/{$group}.php"; - - if ($this->files->exists($file)) { - return array_replace_recursive($lines, $this->files->getRequire($file)); - } - - return $lines; - } - - /** - * Load a locale from a given path. - * - * @param string $path - * @param string $locale - * @param string $group - * @return array - */ - protected function loadPath($path, $locale, $group) - { - if ($this->files->exists($full = "{$path}/{$locale}/{$group}.php")) { - return $this->files->getRequire($full); - } - - return []; - } - - /** - * Load a locale from the given JSON file path. - * - * @param string $locale - * @return array - * - * @throws \RuntimeException - */ - protected function loadJsonPaths($locale) - { - return collect(array_merge($this->jsonPaths, [$this->path])) - ->reduce(function ($output, $path) use ($locale) { - if ($this->files->exists($full = "{$path}/{$locale}.json")) { - $decoded = json_decode($this->files->get($full), true); - - if (is_null($decoded) || json_last_error() !== JSON_ERROR_NONE) { - throw new RuntimeException("Translation file [{$full}] contains an invalid JSON structure."); - } - - $output = array_merge($output, $decoded); - } - - return $output; - }, []); - } - - /** - * Add a new namespace to the loader. - * - * @param string $namespace - * @param string $hint - * @return void - */ - public function addNamespace($namespace, $hint) - { - $this->hints[$namespace] = $hint; - } - - /** - * Add a new JSON path to the loader. - * - * @param string $path - * @return void - */ - public function addJsonPath($path) - { - $this->jsonPaths[] = $path; - } - - /** - * Get an array of all the registered namespaces. - * - * @return array - */ - public function namespaces() - { - return $this->hints; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php b/vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php deleted file mode 100755 index 3ac3386b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php +++ /dev/null @@ -1,412 +0,0 @@ -extract($segments, $number)) !== null) { - return trim($value); - } - - $segments = $this->stripConditions($segments); - - $pluralIndex = $this->getPluralIndex($locale, $number); - - if (count($segments) == 1 || ! isset($segments[$pluralIndex])) { - return $segments[0]; - } - - return $segments[$pluralIndex]; - } - - /** - * Extract a translation string using inline conditions. - * - * @param array $segments - * @param int $number - * @return mixed - */ - private function extract($segments, $number) - { - foreach ($segments as $part) { - if (! is_null($line = $this->extractFromString($part, $number))) { - return $line; - } - } - } - - /** - * Get the translation string if the condition matches. - * - * @param string $part - * @param int $number - * @return mixed - */ - private function extractFromString($part, $number) - { - preg_match('/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s', $part, $matches); - - if (count($matches) != 3) { - return; - } - - $condition = $matches[1]; - - $value = $matches[2]; - - if (Str::contains($condition, ',')) { - list($from, $to) = explode(',', $condition, 2); - - if ($to == '*' && $number >= $from) { - return $value; - } elseif ($from == '*' && $number <= $to) { - return $value; - } elseif ($number >= $from && $number <= $to) { - return $value; - } - } - - return $condition == $number ? $value : null; - } - - /** - * Strip the inline conditions from each segment, just leaving the text. - * - * @param array $segments - * @return array - */ - private function stripConditions($segments) - { - return collect($segments)->map(function ($part) { - return preg_replace('/^[\{\[]([^\[\]\{\}]*)[\}\]]/', '', $part); - })->all(); - } - - /** - * Get the index to use for pluralization. - * - * The plural rules are derived from code of the Zend Framework (2010-09-25), which - * is subject to the new BSD license (http://framework.zend.com/license/new-bsd) - * Copyright (c) 2005-2010 - Zend Technologies USA Inc. (http://www.zend.com) - * - * @param string $locale - * @param int $number - * @return int - */ - public function getPluralIndex($locale, $number) - { - switch ($locale) { - case 'az': - case 'az_AZ': - case 'bo': - case 'bo_CN': - case 'bo_IN': - case 'dz': - case 'dz_BT': - case 'id': - case 'id_ID': - case 'ja': - case 'ja_JP': - case 'jv': - case 'ka': - case 'ka_GE': - case 'km': - case 'km_KH': - case 'kn': - case 'kn_IN': - case 'ko': - case 'ko_KR': - case 'ms': - case 'ms_MY': - case 'th': - case 'th_TH': - case 'tr': - case 'tr_CY': - case 'tr_TR': - case 'vi': - case 'vi_VN': - case 'zh': - case 'zh_CN': - case 'zh_HK': - case 'zh_SG': - case 'zh_TW': - return 0; - case 'af': - case 'af_ZA': - case 'bn': - case 'bn_BD': - case 'bn_IN': - case 'bg': - case 'bg_BG': - case 'ca': - case 'ca_AD': - case 'ca_ES': - case 'ca_FR': - case 'ca_IT': - case 'da': - case 'da_DK': - case 'de': - case 'de_AT': - case 'de_BE': - case 'de_CH': - case 'de_DE': - case 'de_LI': - case 'de_LU': - case 'el': - case 'el_CY': - case 'el_GR': - case 'en': - case 'en_AG': - case 'en_AU': - case 'en_BW': - case 'en_CA': - case 'en_DK': - case 'en_GB': - case 'en_HK': - case 'en_IE': - case 'en_IN': - case 'en_NG': - case 'en_NZ': - case 'en_PH': - case 'en_SG': - case 'en_US': - case 'en_ZA': - case 'en_ZM': - case 'en_ZW': - case 'eo': - case 'eo_US': - case 'es': - case 'es_AR': - case 'es_BO': - case 'es_CL': - case 'es_CO': - case 'es_CR': - case 'es_CU': - case 'es_DO': - case 'es_EC': - case 'es_ES': - case 'es_GT': - case 'es_HN': - case 'es_MX': - case 'es_NI': - case 'es_PA': - case 'es_PE': - case 'es_PR': - case 'es_PY': - case 'es_SV': - case 'es_US': - case 'es_UY': - case 'es_VE': - case 'et': - case 'et_EE': - case 'eu': - case 'eu_ES': - case 'eu_FR': - case 'fa': - case 'fa_IR': - case 'fi': - case 'fi_FI': - case 'fo': - case 'fo_FO': - case 'fur': - case 'fur_IT': - case 'fy': - case 'fy_DE': - case 'fy_NL': - case 'gl': - case 'gl_ES': - case 'gu': - case 'gu_IN': - case 'ha': - case 'ha_NG': - case 'he': - case 'he_IL': - case 'hu': - case 'hu_HU': - case 'is': - case 'is_IS': - case 'it': - case 'it_CH': - case 'it_IT': - case 'ku': - case 'ku_TR': - case 'lb': - case 'lb_LU': - case 'ml': - case 'ml_IN': - case 'mn': - case 'mn_MN': - case 'mr': - case 'mr_IN': - case 'nah': - case 'nb': - case 'nb_NO': - case 'ne': - case 'ne_NP': - case 'nl': - case 'nl_AW': - case 'nl_BE': - case 'nl_NL': - case 'nn': - case 'nn_NO': - case 'no': - case 'om': - case 'om_ET': - case 'om_KE': - case 'or': - case 'or_IN': - case 'pa': - case 'pa_IN': - case 'pa_PK': - case 'pap': - case 'pap_AN': - case 'pap_AW': - case 'pap_CW': - case 'ps': - case 'ps_AF': - case 'pt': - case 'pt_BR': - case 'pt_PT': - case 'so': - case 'so_DJ': - case 'so_ET': - case 'so_KE': - case 'so_SO': - case 'sq': - case 'sq_AL': - case 'sq_MK': - case 'sv': - case 'sv_FI': - case 'sv_SE': - case 'sw': - case 'sw_KE': - case 'sw_TZ': - case 'ta': - case 'ta_IN': - case 'ta_LK': - case 'te': - case 'te_IN': - case 'tk': - case 'tk_TM': - case 'ur': - case 'ur_IN': - case 'ur_PK': - case 'zu': - case 'zu_ZA': - return ($number == 1) ? 0 : 1; - case 'am': - case 'am_ET': - case 'bh': - case 'fil': - case 'fil_PH': - case 'fr': - case 'fr_BE': - case 'fr_CA': - case 'fr_CH': - case 'fr_FR': - case 'fr_LU': - case 'gun': - case 'hi': - case 'hi_IN': - case 'hy': - case 'hy_AM': - case 'ln': - case 'ln_CD': - case 'mg': - case 'mg_MG': - case 'nso': - case 'nso_ZA': - case 'ti': - case 'ti_ER': - case 'ti_ET': - case 'wa': - case 'wa_BE': - case 'xbr': - return (($number == 0) || ($number == 1)) ? 0 : 1; - case 'be': - case 'be_BY': - case 'bs': - case 'bs_BA': - case 'hr': - case 'hr_HR': - case 'ru': - case 'ru_RU': - case 'ru_UA': - case 'sr': - case 'sr_ME': - case 'sr_RS': - case 'uk': - case 'uk_UA': - return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); - case 'cs': - case 'cs_CZ': - case 'sk': - case 'sk_SK': - return ($number == 1) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2); - case 'ga': - case 'ga_IE': - return ($number == 1) ? 0 : (($number == 2) ? 1 : 2); - case 'lt': - case 'lt_LT': - return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); - case 'sl': - case 'sl_SI': - return ($number % 100 == 1) ? 0 : (($number % 100 == 2) ? 1 : ((($number % 100 == 3) || ($number % 100 == 4)) ? 2 : 3)); - case 'mk': - case 'mk_MK': - return ($number % 10 == 1) ? 0 : 1; - case 'mt': - case 'mt_MT': - return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3)); - case 'lv': - case 'lv_LV': - return ($number == 0) ? 0 : ((($number % 10 == 1) && ($number % 100 != 11)) ? 1 : 2); - case 'pl': - case 'pl_PL': - return ($number == 1) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 12) || ($number % 100 > 14))) ? 1 : 2); - case 'cy': - case 'cy_GB': - return ($number == 1) ? 0 : (($number == 2) ? 1 : ((($number == 8) || ($number == 11)) ? 2 : 3)); - case 'ro': - case 'ro_RO': - return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2); - case 'ar': - case 'ar_AE': - case 'ar_BH': - case 'ar_DZ': - case 'ar_EG': - case 'ar_IN': - case 'ar_IQ': - case 'ar_JO': - case 'ar_KW': - case 'ar_LB': - case 'ar_LY': - case 'ar_MA': - case 'ar_OM': - case 'ar_QA': - case 'ar_SA': - case 'ar_SD': - case 'ar_SS': - case 'ar_SY': - case 'ar_TN': - case 'ar_YE': - return ($number == 0) ? 0 : (($number == 1) ? 1 : (($number == 2) ? 2 : ((($number % 100 >= 3) && ($number % 100 <= 10)) ? 3 : ((($number % 100 >= 11) && ($number % 100 <= 99)) ? 4 : 5)))); - default: - return 0; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php deleted file mode 100755 index f0dd3fe7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php +++ /dev/null @@ -1,62 +0,0 @@ -registerLoader(); - - $this->app->singleton('translator', function ($app) { - $loader = $app['translation.loader']; - - // When registering the translator component, we'll need to set the default - // locale as well as the fallback locale. So, we'll grab the application - // configuration so we can easily get both of these values from there. - $locale = $app['config']['app.locale']; - - $trans = new Translator($loader, $locale); - - $trans->setFallback($app['config']['app.fallback_locale']); - - return $trans; - }); - } - - /** - * Register the translation line loader. - * - * @return void - */ - protected function registerLoader() - { - $this->app->singleton('translation.loader', function ($app) { - return new FileLoader($app['files'], $app['path.lang']); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['translator', 'translation.loader']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/Translator.php b/vendor/laravel/framework/src/Illuminate/Translation/Translator.php deleted file mode 100755 index 8633b69a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/Translator.php +++ /dev/null @@ -1,479 +0,0 @@ -loader = $loader; - $this->locale = $locale; - } - - /** - * Determine if a translation exists for a given locale. - * - * @param string $key - * @param string|null $locale - * @return bool - */ - public function hasForLocale($key, $locale = null) - { - return $this->has($key, $locale, false); - } - - /** - * Determine if a translation exists. - * - * @param string $key - * @param string|null $locale - * @param bool $fallback - * @return bool - */ - public function has($key, $locale = null, $fallback = true) - { - return $this->get($key, [], $locale, $fallback) !== $key; - } - - /** - * Get the translation for a given key. - * - * @param string $key - * @param array $replace - * @param string $locale - * @return string|array|null - */ - public function trans($key, array $replace = [], $locale = null) - { - return $this->get($key, $replace, $locale); - } - - /** - * Get the translation for the given key. - * - * @param string $key - * @param array $replace - * @param string|null $locale - * @param bool $fallback - * @return string|array|null - */ - public function get($key, array $replace = [], $locale = null, $fallback = true) - { - list($namespace, $group, $item) = $this->parseKey($key); - - // Here we will get the locale that should be used for the language line. If one - // was not passed, we will use the default locales which was given to us when - // the translator was instantiated. Then, we can load the lines and return. - $locales = $fallback ? $this->localeArray($locale) - : [$locale ?: $this->locale]; - - foreach ($locales as $locale) { - if (! is_null($line = $this->getLine( - $namespace, $group, $locale, $item, $replace - ))) { - break; - } - } - - // If the line doesn't exist, we will return back the key which was requested as - // that will be quick to spot in the UI if language keys are wrong or missing - // from the application's language files. Otherwise we can return the line. - if (isset($line)) { - return $line; - } - - return $key; - } - - /** - * Get the translation for a given key from the JSON translation files. - * - * @param string $key - * @param array $replace - * @param string $locale - * @return string|array|null - */ - public function getFromJson($key, array $replace = [], $locale = null) - { - $locale = $locale ?: $this->locale; - - // For JSON translations, there is only one file per locale, so we will simply load - // that file and then we will be ready to check the array for the key. These are - // only one level deep so we do not need to do any fancy searching through it. - $this->load('*', '*', $locale); - - $line = $this->loaded['*']['*'][$locale][$key] ?? null; - - // If we can't find a translation for the JSON key, we will attempt to translate it - // using the typical translation file. This way developers can always just use a - // helper such as __ instead of having to pick between trans or __ with views. - if (! isset($line)) { - $fallback = $this->get($key, $replace, $locale); - - if ($fallback !== $key) { - return $fallback; - } - } - - return $this->makeReplacements($line ?: $key, $replace); - } - - /** - * Get a translation according to an integer value. - * - * @param string $key - * @param int|array|\Countable $number - * @param array $replace - * @param string $locale - * @return string - */ - public function transChoice($key, $number, array $replace = [], $locale = null) - { - return $this->choice($key, $number, $replace, $locale); - } - - /** - * Get a translation according to an integer value. - * - * @param string $key - * @param int|array|\Countable $number - * @param array $replace - * @param string $locale - * @return string - */ - public function choice($key, $number, array $replace = [], $locale = null) - { - $line = $this->get( - $key, $replace, $locale = $this->localeForChoice($locale) - ); - - // If the given "number" is actually an array or countable we will simply count the - // number of elements in an instance. This allows developers to pass an array of - // items without having to count it on their end first which gives bad syntax. - if (is_array($number) || $number instanceof Countable) { - $number = count($number); - } - - $replace['count'] = $number; - - return $this->makeReplacements( - $this->getSelector()->choose($line, $number, $locale), $replace - ); - } - - /** - * Get the proper locale for a choice operation. - * - * @param string|null $locale - * @return string - */ - protected function localeForChoice($locale) - { - return $locale ?: $this->locale ?: $this->fallback; - } - - /** - * Retrieve a language line out the loaded array. - * - * @param string $namespace - * @param string $group - * @param string $locale - * @param string $item - * @param array $replace - * @return string|array|null - */ - protected function getLine($namespace, $group, $locale, $item, array $replace) - { - $this->load($namespace, $group, $locale); - - $line = Arr::get($this->loaded[$namespace][$group][$locale], $item); - - if (is_string($line)) { - return $this->makeReplacements($line, $replace); - } elseif (is_array($line) && count($line) > 0) { - return $line; - } - } - - /** - * Make the place-holder replacements on a line. - * - * @param string $line - * @param array $replace - * @return string - */ - protected function makeReplacements($line, array $replace) - { - if (empty($replace)) { - return $line; - } - - $replace = $this->sortReplacements($replace); - - foreach ($replace as $key => $value) { - $line = str_replace( - [':'.$key, ':'.Str::upper($key), ':'.Str::ucfirst($key)], - [$value, Str::upper($value), Str::ucfirst($value)], - $line - ); - } - - return $line; - } - - /** - * Sort the replacements array. - * - * @param array $replace - * @return array - */ - protected function sortReplacements(array $replace) - { - return (new Collection($replace))->sortBy(function ($value, $key) { - return mb_strlen($key) * -1; - })->all(); - } - - /** - * Add translation lines to the given locale. - * - * @param array $lines - * @param string $locale - * @param string $namespace - * @return void - */ - public function addLines(array $lines, $locale, $namespace = '*') - { - foreach ($lines as $key => $value) { - list($group, $item) = explode('.', $key, 2); - - Arr::set($this->loaded, "$namespace.$group.$locale.$item", $value); - } - } - - /** - * Load the specified language group. - * - * @param string $namespace - * @param string $group - * @param string $locale - * @return void - */ - public function load($namespace, $group, $locale) - { - if ($this->isLoaded($namespace, $group, $locale)) { - return; - } - - // The loader is responsible for returning the array of language lines for the - // given namespace, group, and locale. We'll set the lines in this array of - // lines that have already been loaded so that we can easily access them. - $lines = $this->loader->load($locale, $group, $namespace); - - $this->loaded[$namespace][$group][$locale] = $lines; - } - - /** - * Determine if the given group has been loaded. - * - * @param string $namespace - * @param string $group - * @param string $locale - * @return bool - */ - protected function isLoaded($namespace, $group, $locale) - { - return isset($this->loaded[$namespace][$group][$locale]); - } - - /** - * Add a new namespace to the loader. - * - * @param string $namespace - * @param string $hint - * @return void - */ - public function addNamespace($namespace, $hint) - { - $this->loader->addNamespace($namespace, $hint); - } - - /** - * Add a new JSON path to the loader. - * - * @param string $path - * @return void - */ - public function addJsonPath($path) - { - $this->loader->addJsonPath($path); - } - - /** - * Parse a key into namespace, group, and item. - * - * @param string $key - * @return array - */ - public function parseKey($key) - { - $segments = parent::parseKey($key); - - if (is_null($segments[0])) { - $segments[0] = '*'; - } - - return $segments; - } - - /** - * Get the array of locales to be checked. - * - * @param string|null $locale - * @return array - */ - protected function localeArray($locale) - { - return array_filter([$locale ?: $this->locale, $this->fallback]); - } - - /** - * Get the message selector instance. - * - * @return \Illuminate\Translation\MessageSelector - */ - public function getSelector() - { - if (! isset($this->selector)) { - $this->selector = new MessageSelector; - } - - return $this->selector; - } - - /** - * Set the message selector instance. - * - * @param \Illuminate\Translation\MessageSelector $selector - * @return void - */ - public function setSelector(MessageSelector $selector) - { - $this->selector = $selector; - } - - /** - * Get the language line loader implementation. - * - * @return \Illuminate\Contracts\Translation\Loader - */ - public function getLoader() - { - return $this->loader; - } - - /** - * Get the default locale being used. - * - * @return string - */ - public function locale() - { - return $this->getLocale(); - } - - /** - * Get the default locale being used. - * - * @return string - */ - public function getLocale() - { - return $this->locale; - } - - /** - * Set the default locale. - * - * @param string $locale - * @return void - */ - public function setLocale($locale) - { - $this->locale = $locale; - } - - /** - * Get the fallback locale being used. - * - * @return string - */ - public function getFallback() - { - return $this->fallback; - } - - /** - * Set the fallback locale being used. - * - * @param string $fallback - * @return void - */ - public function setFallback($fallback) - { - $this->fallback = $fallback; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/composer.json b/vendor/laravel/framework/src/Illuminate/Translation/composer.json deleted file mode 100755 index b84b17fd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/translation", - "description": "The Illuminate Translation package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/contracts": "5.5.*", - "illuminate/filesystem": "5.5.*", - "illuminate/support": "5.5.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Translation\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php b/vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php deleted file mode 100644 index 8f247fc3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php +++ /dev/null @@ -1,70 +0,0 @@ -callback = $callback; - } - - /** - * Determine if the validation rule passes. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function passes($attribute, $value) - { - $this->failed = false; - - $this->callback->__invoke($attribute, $value, function ($message) { - $this->failed = true; - - $this->message = $message; - }); - - return ! $this->failed; - } - - /** - * Get the validation error message. - * - * @return string - */ - public function message() - { - return $this->message; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php deleted file mode 100644 index 5744830d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php +++ /dev/null @@ -1,384 +0,0 @@ -getInlineMessage($attribute, $rule); - - // First we will retrieve the custom message for the validation rule if one - // exists. If a custom validation message is being used we'll return the - // custom message, otherwise we'll keep searching for a valid message. - if (! is_null($inlineMessage)) { - return $inlineMessage; - } - - $lowerRule = Str::snake($rule); - - $customMessage = $this->getCustomMessageFromTranslator( - $customKey = "validation.custom.{$attribute}.{$lowerRule}" - ); - - // First we check for a custom defined validation message for the attribute - // and rule. This allows the developer to specify specific messages for - // only some attributes and rules that need to get specially formed. - if ($customMessage !== $customKey) { - return $customMessage; - } - - // If the rule being validated is a "size" rule, we will need to gather the - // specific error message for the type of attribute being validated such - // as a number, file or string which all have different message types. - elseif (in_array($rule, $this->sizeRules)) { - return $this->getSizeMessage($attribute, $rule); - } - - // Finally, if no developer specified messages have been set, and no other - // special messages apply for this rule, we will just pull the default - // messages out of the translator service for this validation rule. - $key = "validation.{$lowerRule}"; - - if ($key != ($value = $this->translator->trans($key))) { - return $value; - } - - return $this->getFromLocalArray( - $attribute, $lowerRule, $this->fallbackMessages - ) ?: $key; - } - - /** - * Get the proper inline error message for standard and size rules. - * - * @param string $attribute - * @param string $rule - * @return string|null - */ - protected function getInlineMessage($attribute, $rule) - { - $inlineEntry = $this->getFromLocalArray($attribute, Str::snake($rule)); - - return is_array($inlineEntry) && in_array($rule, $this->sizeRules) - ? $inlineEntry[$this->getAttributeType($attribute)] - : $inlineEntry; - } - - /** - * Get the inline message for a rule if it exists. - * - * @param string $attribute - * @param string $lowerRule - * @param array|null $source - * @return string|null - */ - protected function getFromLocalArray($attribute, $lowerRule, $source = null) - { - $source = $source ?: $this->customMessages; - - $keys = ["{$attribute}.{$lowerRule}", $lowerRule]; - - // First we will check for a custom message for an attribute specific rule - // message for the fields, then we will check for a general custom line - // that is not attribute specific. If we find either we'll return it. - foreach ($keys as $key) { - foreach (array_keys($source) as $sourceKey) { - if (Str::is($sourceKey, $key)) { - return $source[$sourceKey]; - } - } - } - } - - /** - * Get the custom error message from translator. - * - * @param string $key - * @return string - */ - protected function getCustomMessageFromTranslator($key) - { - if (($message = $this->translator->trans($key)) !== $key) { - return $message; - } - - // If an exact match was not found for the key, we will collapse all of these - // messages and loop through them and try to find a wildcard match for the - // given key. Otherwise, we will simply return the key's value back out. - $shortKey = preg_replace( - '/^validation\.custom\./', '', $key - ); - - return $this->getWildcardCustomMessages(Arr::dot( - (array) $this->translator->trans('validation.custom') - ), $shortKey, $key); - } - - /** - * Check the given messages for a wildcard key. - * - * @param array $messages - * @param string $search - * @param string $default - * @return string - */ - protected function getWildcardCustomMessages($messages, $search, $default) - { - foreach ($messages as $key => $message) { - if ($search === $key || (Str::contains($key, ['*']) && Str::is($key, $search))) { - return $message; - } - } - - return $default; - } - - /** - * Get the proper error message for an attribute and size rule. - * - * @param string $attribute - * @param string $rule - * @return string - */ - protected function getSizeMessage($attribute, $rule) - { - $lowerRule = Str::snake($rule); - - // There are three different types of size validations. The attribute may be - // either a number, file, or string so we will check a few things to know - // which type of value it is and return the correct line for that type. - $type = $this->getAttributeType($attribute); - - $key = "validation.{$lowerRule}.{$type}"; - - return $this->translator->trans($key); - } - - /** - * Get the data type of the given attribute. - * - * @param string $attribute - * @return string - */ - protected function getAttributeType($attribute) - { - // We assume that the attributes present in the file array are files so that - // means that if the attribute does not have a numeric rule and the files - // list doesn't have it we'll just consider it a string by elimination. - if ($this->hasRule($attribute, $this->numericRules)) { - return 'numeric'; - } elseif ($this->hasRule($attribute, ['Array'])) { - return 'array'; - } elseif ($this->getValue($attribute) instanceof UploadedFile) { - return 'file'; - } - - return 'string'; - } - - /** - * Replace all error message place-holders with actual values. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - public function makeReplacements($message, $attribute, $rule, $parameters) - { - $message = $this->replaceAttributePlaceholder( - $message, $this->getDisplayableAttribute($attribute) - ); - - $message = $this->replaceInputPlaceholder($message, $attribute); - - if (isset($this->replacers[Str::snake($rule)])) { - return $this->callReplacer($message, $attribute, Str::snake($rule), $parameters, $this); - } elseif (method_exists($this, $replacer = "replace{$rule}")) { - return $this->$replacer($message, $attribute, $rule, $parameters); - } - - return $message; - } - - /** - * Get the displayable name of the attribute. - * - * @param string $attribute - * @return string - */ - public function getDisplayableAttribute($attribute) - { - $primaryAttribute = $this->getPrimaryAttribute($attribute); - - $expectedAttributes = $attribute != $primaryAttribute - ? [$attribute, $primaryAttribute] : [$attribute]; - - foreach ($expectedAttributes as $name) { - // The developer may dynamically specify the array of custom attributes on this - // validator instance. If the attribute exists in this array it is used over - // the other ways of pulling the attribute name for this given attributes. - if (isset($this->customAttributes[$name])) { - return $this->customAttributes[$name]; - } - - // We allow for a developer to specify language lines for any attribute in this - // application, which allows flexibility for displaying a unique displayable - // version of the attribute name instead of the name used in an HTTP POST. - if ($line = $this->getAttributeFromTranslations($name)) { - return $line; - } - } - - // When no language line has been specified for the attribute and it is also - // an implicit attribute we will display the raw attribute's name and not - // modify it with any of these replacements before we display the name. - if (isset($this->implicitAttributes[$primaryAttribute])) { - return $attribute; - } - - return str_replace('_', ' ', Str::snake($attribute)); - } - - /** - * Get the given attribute from the attribute translations. - * - * @param string $name - * @return string - */ - protected function getAttributeFromTranslations($name) - { - return Arr::get($this->translator->trans('validation.attributes'), $name); - } - - /** - * Replace the :attribute placeholder in the given message. - * - * @param string $message - * @param string $value - * @return string - */ - protected function replaceAttributePlaceholder($message, $value) - { - return str_replace( - [':attribute', ':ATTRIBUTE', ':Attribute'], - [$value, Str::upper($value), Str::ucfirst($value)], - $message - ); - } - - /** - * Replace the :input placeholder in the given message. - * - * @param string $message - * @param string $attribute - * @return string - */ - protected function replaceInputPlaceholder($message, $attribute) - { - $actualValue = $this->getValue($attribute); - - if (is_scalar($actualValue) || is_null($actualValue)) { - $message = str_replace(':input', $actualValue, $message); - } - - return $message; - } - - /** - * Get the displayable name of the value. - * - * @param string $attribute - * @param mixed $value - * @return string - */ - public function getDisplayableValue($attribute, $value) - { - if (isset($this->customValues[$attribute][$value])) { - return $this->customValues[$attribute][$value]; - } - - $key = "validation.values.{$attribute}.{$value}"; - - if (($line = $this->translator->trans($key)) !== $key) { - return $line; - } - - return $value; - } - - /** - * Transform an array of attributes to their displayable form. - * - * @param array $values - * @return array - */ - protected function getAttributeList(array $values) - { - $attributes = []; - - // For each attribute in the list we will simply get its displayable form as - // this is convenient when replacing lists of parameters like some of the - // replacement functions do when formatting out the validation message. - foreach ($values as $key => $value) { - $attributes[$key] = $this->getDisplayableAttribute($value); - } - - return $attributes; - } - - /** - * Call a custom validator message replacer. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @param \Illuminate\Validation\Validator $validator - * @return string|null - */ - protected function callReplacer($message, $attribute, $rule, $parameters, $validator) - { - $callback = $this->replacers[$rule]; - - if ($callback instanceof Closure) { - return call_user_func_array($callback, func_get_args()); - } elseif (is_string($callback)) { - return $this->callClassBasedReplacer($callback, $message, $attribute, $rule, $parameters, $validator); - } - } - - /** - * Call a class based validator message replacer. - * - * @param string $callback - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @param \Illuminate\Validation\Validator $validator - * @return string - */ - protected function callClassBasedReplacer($callback, $message, $attribute, $rule, $parameters, $validator) - { - list($class, $method) = Str::parseCallback($callback, 'replace'); - - return call_user_func_array([$this->container->make($class), $method], array_slice(func_get_args(), 1)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php deleted file mode 100644 index ed108768..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php +++ /dev/null @@ -1,380 +0,0 @@ -replaceSame($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the digits rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceDigits($message, $attribute, $rule, $parameters) - { - return str_replace(':digits', $parameters[0], $message); - } - - /** - * Replace all place-holders for the digits (between) rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceDigitsBetween($message, $attribute, $rule, $parameters) - { - return $this->replaceBetween($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the min rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceMin($message, $attribute, $rule, $parameters) - { - return str_replace(':min', $parameters[0], $message); - } - - /** - * Replace all place-holders for the max rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceMax($message, $attribute, $rule, $parameters) - { - return str_replace(':max', $parameters[0], $message); - } - - /** - * Replace all place-holders for the in rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceIn($message, $attribute, $rule, $parameters) - { - foreach ($parameters as &$parameter) { - $parameter = $this->getDisplayableValue($attribute, $parameter); - } - - return str_replace(':values', implode(', ', $parameters), $message); - } - - /** - * Replace all place-holders for the not_in rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceNotIn($message, $attribute, $rule, $parameters) - { - return $this->replaceIn($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the in_array rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceInArray($message, $attribute, $rule, $parameters) - { - return str_replace(':other', $this->getDisplayableAttribute($parameters[0]), $message); - } - - /** - * Replace all place-holders for the mimetypes rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceMimetypes($message, $attribute, $rule, $parameters) - { - return str_replace(':values', implode(', ', $parameters), $message); - } - - /** - * Replace all place-holders for the mimes rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceMimes($message, $attribute, $rule, $parameters) - { - return str_replace(':values', implode(', ', $parameters), $message); - } - - /** - * Replace all place-holders for the required_with rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredWith($message, $attribute, $rule, $parameters) - { - return str_replace(':values', implode(' / ', $this->getAttributeList($parameters)), $message); - } - - /** - * Replace all place-holders for the required_with_all rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredWithAll($message, $attribute, $rule, $parameters) - { - return $this->replaceRequiredWith($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the required_without rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredWithout($message, $attribute, $rule, $parameters) - { - return $this->replaceRequiredWith($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the required_without_all rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredWithoutAll($message, $attribute, $rule, $parameters) - { - return $this->replaceRequiredWith($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the size rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceSize($message, $attribute, $rule, $parameters) - { - return str_replace(':size', $parameters[0], $message); - } - - /** - * Replace all place-holders for the required_if rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredIf($message, $attribute, $rule, $parameters) - { - $parameters[1] = $this->getDisplayableValue($parameters[0], Arr::get($this->data, $parameters[0])); - - $parameters[0] = $this->getDisplayableAttribute($parameters[0]); - - return str_replace([':other', ':value'], $parameters, $message); - } - - /** - * Replace all place-holders for the required_unless rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredUnless($message, $attribute, $rule, $parameters) - { - $other = $this->getDisplayableAttribute(array_shift($parameters)); - - return str_replace([':other', ':values'], [$other, implode(', ', $parameters)], $message); - } - - /** - * Replace all place-holders for the same rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceSame($message, $attribute, $rule, $parameters) - { - return str_replace(':other', $this->getDisplayableAttribute($parameters[0]), $message); - } - - /** - * Replace all place-holders for the before rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceBefore($message, $attribute, $rule, $parameters) - { - if (! (strtotime($parameters[0]))) { - return str_replace(':date', $this->getDisplayableAttribute($parameters[0]), $message); - } - - return str_replace(':date', $parameters[0], $message); - } - - /** - * Replace all place-holders for the before_or_equal rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceBeforeOrEqual($message, $attribute, $rule, $parameters) - { - return $this->replaceBefore($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the after rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceAfter($message, $attribute, $rule, $parameters) - { - return $this->replaceBefore($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the after_or_equal rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceAfterOrEqual($message, $attribute, $rule, $parameters) - { - return $this->replaceBefore($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the dimensions rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceDimensions($message, $attribute, $rule, $parameters) - { - $parameters = $this->parseNamedParameters($parameters); - - if (is_array($parameters)) { - foreach ($parameters as $key => $value) { - $message = str_replace(':'.$key, $value, $message); - } - } - - return $message; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php deleted file mode 100644 index 453c81e6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ /dev/null @@ -1,1478 +0,0 @@ -validateRequired($attribute, $value) && in_array($value, $acceptable, true); - } - - /** - * Validate that an attribute is an active URL. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateActiveUrl($attribute, $value) - { - if (! is_string($value)) { - return false; - } - - if ($url = parse_url($value, PHP_URL_HOST)) { - try { - return count(dns_get_record($url, DNS_A | DNS_AAAA)) > 0; - } catch (Exception $e) { - return false; - } - } - - return false; - } - - /** - * "Break" on first validation fail. - * - * Always returns true, just lets us put "bail" in rules. - * - * @return bool - */ - public function validateBail() - { - return true; - } - - /** - * Validate the date is before a given date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateBefore($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'before'); - - return $this->compareDates($attribute, $value, $parameters, '<'); - } - - /** - * Validate the date is before or equal a given date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateBeforeOrEqual($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'before_or_equal'); - - return $this->compareDates($attribute, $value, $parameters, '<='); - } - - /** - * Validate the date is after a given date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateAfter($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'after'); - - return $this->compareDates($attribute, $value, $parameters, '>'); - } - - /** - * Validate the date is equal or after a given date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateAfterOrEqual($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'after_or_equal'); - - return $this->compareDates($attribute, $value, $parameters, '>='); - } - - /** - * Compare a given date against another using an operator. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @param string $operator - * @return bool - */ - protected function compareDates($attribute, $value, $parameters, $operator) - { - if (! is_string($value) && ! is_numeric($value) && ! $value instanceof DateTimeInterface) { - return false; - } - - if ($format = $this->getDateFormat($attribute)) { - return $this->checkDateTimeOrder( - $format, $value, $this->getValue($parameters[0]) ?: $parameters[0], $operator - ); - } - - if (! $date = $this->getDateTimestamp($parameters[0])) { - $date = $this->getDateTimestamp($this->getValue($parameters[0])); - } - - return $this->compare($this->getDateTimestamp($value), $date, $operator); - } - - /** - * Get the date format for an attribute if it has one. - * - * @param string $attribute - * @return string|null - */ - protected function getDateFormat($attribute) - { - if ($result = $this->getRule($attribute, 'DateFormat')) { - return $result[1][0]; - } - } - - /** - * Get the date timestamp. - * - * @param mixed $value - * @return int - */ - protected function getDateTimestamp($value) - { - return $value instanceof DateTimeInterface ? $value->getTimestamp() : strtotime($value); - } - - /** - * Given two date/time strings, check that one is after the other. - * - * @param string $format - * @param string $first - * @param string $second - * @param string $operator - * @return bool - */ - protected function checkDateTimeOrder($format, $first, $second, $operator) - { - $first = $this->getDateTimeWithOptionalFormat($format, $first); - - $second = $this->getDateTimeWithOptionalFormat($format, $second); - - return ($first && $second) && ($this->compare($first, $second, $operator)); - } - - /** - * Get a DateTime instance from a string. - * - * @param string $format - * @param string $value - * @return \DateTime|null - */ - protected function getDateTimeWithOptionalFormat($format, $value) - { - if ($date = DateTime::createFromFormat('!'.$format, $value)) { - return $date; - } - - try { - return new DateTime($value); - } catch (Exception $e) { - // - } - } - - /** - * Validate that an attribute contains only alphabetic characters. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateAlpha($attribute, $value) - { - return is_string($value) && preg_match('/^[\pL\pM]+$/u', $value); - } - - /** - * Validate that an attribute contains only alpha-numeric characters, dashes, and underscores. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateAlphaDash($attribute, $value) - { - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - return preg_match('/^[\pL\pM\pN_-]+$/u', $value) > 0; - } - - /** - * Validate that an attribute contains only alpha-numeric characters. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateAlphaNum($attribute, $value) - { - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - return preg_match('/^[\pL\pM\pN]+$/u', $value) > 0; - } - - /** - * Validate that an attribute is an array. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateArray($attribute, $value) - { - return is_array($value); - } - - /** - * Validate the size of an attribute is between a set of values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateBetween($attribute, $value, $parameters) - { - $this->requireParameterCount(2, $parameters, 'between'); - - $size = $this->getSize($attribute, $value); - - return $size >= $parameters[0] && $size <= $parameters[1]; - } - - /** - * Validate that an attribute is a boolean. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateBoolean($attribute, $value) - { - $acceptable = [true, false, 0, 1, '0', '1']; - - return in_array($value, $acceptable, true); - } - - /** - * Validate that an attribute has a matching confirmation. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateConfirmed($attribute, $value) - { - return $this->validateSame($attribute, $value, [$attribute.'_confirmation']); - } - - /** - * Validate that an attribute is a valid date. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateDate($attribute, $value) - { - if ($value instanceof DateTimeInterface) { - return true; - } - - if ((! is_string($value) && ! is_numeric($value)) || strtotime($value) === false) { - return false; - } - - $date = date_parse($value); - - return checkdate($date['month'], $date['day'], $date['year']); - } - - /** - * Validate that an attribute matches a date format. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDateFormat($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'date_format'); - - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - $format = $parameters[0]; - - $date = DateTime::createFromFormat('!'.$format, $value); - - return $date && $date->format($format) == $value; - } - - /** - * Validate that an attribute is equal to another date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDateEquals($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'date_equals'); - - return $this->compareDates($attribute, $value, $parameters, '='); - } - - /** - * Validate that an attribute is different from another attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDifferent($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'different'); - - foreach ($parameters as $parameter) { - $other = Arr::get($this->data, $parameter); - - if (is_null($other) || $value === $other) { - return false; - } - } - - return true; - } - - /** - * Validate that an attribute has a given number of digits. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDigits($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'digits'); - - return ! preg_match('/[^0-9]/', $value) - && strlen((string) $value) == $parameters[0]; - } - - /** - * Validate that an attribute is between a given number of digits. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDigitsBetween($attribute, $value, $parameters) - { - $this->requireParameterCount(2, $parameters, 'digits_between'); - - $length = strlen((string) $value); - - return ! preg_match('/[^0-9]/', $value) - && $length >= $parameters[0] && $length <= $parameters[1]; - } - - /** - * Validate the dimensions of an image matches the given values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDimensions($attribute, $value, $parameters) - { - if (! $this->isValidFileInstance($value) || ! $sizeDetails = @getimagesize($value->getRealPath())) { - return false; - } - - $this->requireParameterCount(1, $parameters, 'dimensions'); - - list($width, $height) = $sizeDetails; - - $parameters = $this->parseNamedParameters($parameters); - - if ($this->failsBasicDimensionChecks($parameters, $width, $height) || - $this->failsRatioCheck($parameters, $width, $height)) { - return false; - } - - return true; - } - - /** - * Test if the given width and height fail any conditions. - * - * @param array $parameters - * @param int $width - * @param int $height - * @return bool - */ - protected function failsBasicDimensionChecks($parameters, $width, $height) - { - return (isset($parameters['width']) && $parameters['width'] != $width) || - (isset($parameters['min_width']) && $parameters['min_width'] > $width) || - (isset($parameters['max_width']) && $parameters['max_width'] < $width) || - (isset($parameters['height']) && $parameters['height'] != $height) || - (isset($parameters['min_height']) && $parameters['min_height'] > $height) || - (isset($parameters['max_height']) && $parameters['max_height'] < $height); - } - - /** - * Determine if the given parameters fail a dimension ratio check. - * - * @param array $parameters - * @param int $width - * @param int $height - * @return bool - */ - protected function failsRatioCheck($parameters, $width, $height) - { - if (! isset($parameters['ratio'])) { - return false; - } - - list($numerator, $denominator) = array_replace( - [1, 1], array_filter(sscanf($parameters['ratio'], '%f/%d')) - ); - - $precision = 1 / max($width, $height); - - return abs($numerator / $denominator - $width / $height) > $precision; - } - - /** - * Validate an attribute is unique among other values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDistinct($attribute, $value, $parameters) - { - $attributeName = $this->getPrimaryAttribute($attribute); - - $attributeData = ValidationData::extractDataFromPath( - ValidationData::getLeadingExplicitAttributePath($attributeName), $this->data - ); - - $pattern = str_replace('\*', '[^.]+', preg_quote($attributeName, '#')); - - $data = Arr::where(Arr::dot($attributeData), function ($value, $key) use ($attribute, $pattern) { - return $key != $attribute && (bool) preg_match('#^'.$pattern.'\z#u', $key); - }); - - if (in_array('ignore_case', $parameters)) { - return empty(preg_grep('/^'.preg_quote($value, '/').'$/iu', $data)); - } - - return ! in_array($value, array_values($data)); - } - - /** - * Validate that an attribute is a valid e-mail address. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateEmail($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_EMAIL) !== false; - } - - /** - * Validate the existence of an attribute value in a database table. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateExists($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'exists'); - - list($connection, $table) = $this->parseTable($parameters[0]); - - // The second parameter position holds the name of the column that should be - // verified as existing. If this parameter is not specified we will guess - // that the columns being "verified" shares the given attribute's name. - $column = $this->getQueryColumn($parameters, $attribute); - - $expected = (is_array($value)) ? count($value) : 1; - - return $this->getExistCount( - $connection, $table, $column, $value, $parameters - ) >= $expected; - } - - /** - * Get the number of records that exist in storage. - * - * @param mixed $connection - * @param string $table - * @param string $column - * @param mixed $value - * @param array $parameters - * @return int - */ - protected function getExistCount($connection, $table, $column, $value, $parameters) - { - $verifier = $this->getPresenceVerifierFor($connection); - - $extra = $this->getExtraConditions( - array_values(array_slice($parameters, 2)) - ); - - if ($this->currentRule instanceof Exists) { - $extra = array_merge($extra, $this->currentRule->queryCallbacks()); - } - - return is_array($value) - ? $verifier->getMultiCount($table, $column, $value, $extra) - : $verifier->getCount($table, $column, $value, null, null, $extra); - } - - /** - * Validate the uniqueness of an attribute value on a given database table. - * - * If a database column is not specified, the attribute will be used. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateUnique($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'unique'); - - list($connection, $table) = $this->parseTable($parameters[0]); - - // The second parameter position holds the name of the column that needs to - // be verified as unique. If this parameter isn't specified we will just - // assume that this column to be verified shares the attribute's name. - $column = $this->getQueryColumn($parameters, $attribute); - - list($idColumn, $id) = [null, null]; - - if (isset($parameters[2])) { - list($idColumn, $id) = $this->getUniqueIds($parameters); - } - - // The presence verifier is responsible for counting rows within this store - // mechanism which might be a relational database or any other permanent - // data store like Redis, etc. We will use it to determine uniqueness. - $verifier = $this->getPresenceVerifierFor($connection); - - $extra = $this->getUniqueExtra($parameters); - - if ($this->currentRule instanceof Unique) { - $extra = array_merge($extra, $this->currentRule->queryCallbacks()); - } - - return $verifier->getCount( - $table, $column, $value, $id, $idColumn, $extra - ) == 0; - } - - /** - * Get the excluded ID column and value for the unique rule. - * - * @param array $parameters - * @return array - */ - protected function getUniqueIds($parameters) - { - $idColumn = $parameters[3] ?? 'id'; - - return [$idColumn, $this->prepareUniqueId($parameters[2])]; - } - - /** - * Prepare the given ID for querying. - * - * @param mixed $id - * @return int - */ - protected function prepareUniqueId($id) - { - if (preg_match('/\[(.*)\]/', $id, $matches)) { - $id = $this->getValue($matches[1]); - } - - if (strtolower($id) == 'null') { - $id = null; - } - - if (filter_var($id, FILTER_VALIDATE_INT) !== false) { - $id = (int) $id; - } - - return $id; - } - - /** - * Get the extra conditions for a unique rule. - * - * @param array $parameters - * @return array - */ - protected function getUniqueExtra($parameters) - { - if (isset($parameters[4])) { - return $this->getExtraConditions(array_slice($parameters, 4)); - } - - return []; - } - - /** - * Parse the connection / table for the unique / exists rules. - * - * @param string $table - * @return array - */ - protected function parseTable($table) - { - return Str::contains($table, '.') ? explode('.', $table, 2) : [null, $table]; - } - - /** - * Get the column name for an exists / unique query. - * - * @param array $parameters - * @param string $attribute - * @return bool - */ - protected function getQueryColumn($parameters, $attribute) - { - return isset($parameters[1]) && $parameters[1] !== 'NULL' - ? $parameters[1] : $this->guessColumnForQuery($attribute); - } - - /** - * Guess the database column from the given attribute name. - * - * @param string $attribute - * @return string - */ - public function guessColumnForQuery($attribute) - { - if (in_array($attribute, Arr::collapse($this->implicitAttributes)) - && ! is_numeric($last = last(explode('.', $attribute)))) { - return $last; - } - - return $attribute; - } - - /** - * Get the extra conditions for a unique / exists rule. - * - * @param array $segments - * @return array - */ - protected function getExtraConditions(array $segments) - { - $extra = []; - - $count = count($segments); - - for ($i = 0; $i < $count; $i += 2) { - $extra[$segments[$i]] = $segments[$i + 1]; - } - - return $extra; - } - - /** - * Validate the given value is a valid file. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateFile($attribute, $value) - { - return $this->isValidFileInstance($value); - } - - /** - * Validate the given attribute is filled if it is present. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateFilled($attribute, $value) - { - if (Arr::has($this->data, $attribute)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate the MIME type of a file is an image MIME type. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateImage($attribute, $value) - { - return $this->validateMimes($attribute, $value, ['jpeg', 'png', 'gif', 'bmp', 'svg']); - } - - /** - * Validate an attribute is contained within a list of values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateIn($attribute, $value, $parameters) - { - if (is_array($value) && $this->hasRule($attribute, 'Array')) { - foreach ($value as $element) { - if (is_array($element)) { - return false; - } - } - - return count(array_diff($value, $parameters)) == 0; - } - - return ! is_array($value) && in_array((string) $value, $parameters); - } - - /** - * Validate that the values of an attribute is in another attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateInArray($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'in_array'); - - $explicitPath = ValidationData::getLeadingExplicitAttributePath($parameters[0]); - - $attributeData = ValidationData::extractDataFromPath($explicitPath, $this->data); - - $otherValues = Arr::where(Arr::dot($attributeData), function ($value, $key) use ($parameters) { - return Str::is($parameters[0], $key); - }); - - return in_array($value, $otherValues); - } - - /** - * Validate that an attribute is an integer. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateInteger($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_INT) !== false; - } - - /** - * Validate that an attribute is a valid IP. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateIp($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_IP) !== false; - } - - /** - * Validate that an attribute is a valid IPv4. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateIpv4($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false; - } - - /** - * Validate that an attribute is a valid IPv6. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateIpv6($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false; - } - - /** - * Validate the attribute is a valid JSON string. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateJson($attribute, $value) - { - if (! is_scalar($value) && ! method_exists($value, '__toString')) { - return false; - } - - json_decode($value); - - return json_last_error() === JSON_ERROR_NONE; - } - - /** - * Validate the size of an attribute is less than a maximum value. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateMax($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'max'); - - if ($value instanceof UploadedFile && ! $value->isValid()) { - return false; - } - - return $this->getSize($attribute, $value) <= $parameters[0]; - } - - /** - * Validate the guessed extension of a file upload is in a set of file extensions. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateMimes($attribute, $value, $parameters) - { - if (! $this->isValidFileInstance($value)) { - return false; - } - - if ($this->shouldBlockPhpUpload($value, $parameters)) { - return false; - } - - return $value->getPath() !== '' && in_array($value->guessExtension(), $parameters); - } - - /** - * Validate the MIME type of a file upload attribute is in a set of MIME types. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateMimetypes($attribute, $value, $parameters) - { - if (! $this->isValidFileInstance($value)) { - return false; - } - - if ($this->shouldBlockPhpUpload($value, $parameters)) { - return false; - } - - return $value->getPath() !== '' && - (in_array($value->getMimeType(), $parameters) || - in_array(explode('/', $value->getMimeType())[0].'/*', $parameters)); - } - - /** - * Check if PHP uploads are explicitly allowed. - * - * @param mixed $value - * @param array $parameters - * @return bool - */ - protected function shouldBlockPhpUpload($value, $parameters) - { - if (in_array('php', $parameters)) { - return false; - } - - return ($value instanceof UploadedFile) - ? trim(strtolower($value->getClientOriginalExtension())) === 'php' - : trim(strtolower($value->getExtension())) === 'php'; - } - - /** - * Validate the size of an attribute is greater than a minimum value. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateMin($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'min'); - - return $this->getSize($attribute, $value) >= $parameters[0]; - } - - /** - * "Indicate" validation should pass if value is null. - * - * Always returns true, just lets us put "nullable" in rules. - * - * @return bool - */ - public function validateNullable() - { - return true; - } - - /** - * Validate an attribute is not contained within a list of values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateNotIn($attribute, $value, $parameters) - { - return ! $this->validateIn($attribute, $value, $parameters); - } - - /** - * Validate that an attribute is numeric. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateNumeric($attribute, $value) - { - return is_numeric($value); - } - - /** - * Validate that an attribute exists even if not filled. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validatePresent($attribute, $value) - { - return Arr::has($this->data, $attribute); - } - - /** - * Validate that an attribute passes a regular expression check. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateRegex($attribute, $value, $parameters) - { - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - $this->requireParameterCount(1, $parameters, 'regex'); - - return preg_match($parameters[0], $value) > 0; - } - - /** - * Validate that a required attribute exists. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateRequired($attribute, $value) - { - if (is_null($value)) { - return false; - } elseif (is_string($value) && trim($value) === '') { - return false; - } elseif ((is_array($value) || $value instanceof Countable) && count($value) < 1) { - return false; - } elseif ($value instanceof File) { - return (string) $value->getPath() !== ''; - } - - return true; - } - - /** - * Validate that an attribute exists when another attribute has a given value. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredIf($attribute, $value, $parameters) - { - $this->requireParameterCount(2, $parameters, 'required_if'); - - $other = Arr::get($this->data, $parameters[0]); - - $values = array_slice($parameters, 1); - - if (is_bool($other)) { - $values = $this->convertValuesToBoolean($values); - } - - if (in_array($other, $values)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Convert the given values to boolean if they are string "true" / "false". - * - * @param array $values - * @return array - */ - protected function convertValuesToBoolean($values) - { - return array_map(function ($value) { - if ($value === 'true') { - return true; - } elseif ($value === 'false') { - return false; - } - - return $value; - }, $values); - } - - /** - * Validate that an attribute exists when another attribute does not have a given value. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredUnless($attribute, $value, $parameters) - { - $this->requireParameterCount(2, $parameters, 'required_unless'); - - $data = Arr::get($this->data, $parameters[0]); - - $values = array_slice($parameters, 1); - - if (! in_array($data, $values)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute exists when any other attribute exists. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredWith($attribute, $value, $parameters) - { - if (! $this->allFailingRequired($parameters)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute exists when all other attributes exists. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredWithAll($attribute, $value, $parameters) - { - if (! $this->anyFailingRequired($parameters)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute exists when another attribute does not. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredWithout($attribute, $value, $parameters) - { - if ($this->anyFailingRequired($parameters)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute exists when all other attributes do not. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredWithoutAll($attribute, $value, $parameters) - { - if ($this->allFailingRequired($parameters)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Determine if any of the given attributes fail the required test. - * - * @param array $attributes - * @return bool - */ - protected function anyFailingRequired(array $attributes) - { - foreach ($attributes as $key) { - if (! $this->validateRequired($key, $this->getValue($key))) { - return true; - } - } - - return false; - } - - /** - * Determine if all of the given attributes fail the required test. - * - * @param array $attributes - * @return bool - */ - protected function allFailingRequired(array $attributes) - { - foreach ($attributes as $key) { - if ($this->validateRequired($key, $this->getValue($key))) { - return false; - } - } - - return true; - } - - /** - * Validate that two attributes match. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateSame($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'same'); - - $other = Arr::get($this->data, $parameters[0]); - - return $value === $other; - } - - /** - * Validate the size of an attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateSize($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'size'); - - return $this->getSize($attribute, $value) == $parameters[0]; - } - - /** - * "Validate" optional attributes. - * - * Always returns true, just lets us put sometimes in rules. - * - * @return bool - */ - public function validateSometimes() - { - return true; - } - - /** - * Validate that an attribute is a string. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateString($attribute, $value) - { - return is_string($value); - } - - /** - * Validate that an attribute is a valid timezone. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateTimezone($attribute, $value) - { - try { - new DateTimeZone($value); - } catch (Exception $e) { - return false; - } catch (Throwable $e) { - return false; - } - - return true; - } - - /** - * Validate that an attribute is a valid URL. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateUrl($attribute, $value) - { - if (! is_string($value)) { - return false; - } - - /* - * This pattern is derived from Symfony\Component\Validator\Constraints\UrlValidator (2.7.4). - * - * (c) Fabien Potencier http://symfony.com - */ - $pattern = '~^ - ((aaa|aaas|about|acap|acct|acr|adiumxtra|afp|afs|aim|apt|attachment|aw|barion|beshare|bitcoin|blob|bolo|callto|cap|chrome|chrome-extension|cid|coap|coaps|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-playcontainer|dlna-playsingle|dns|dntp|dtn|dvb|ed2k|example|facetime|fax|feed|feedready|file|filesystem|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|ham|hcp|http|https|iax|icap|icon|im|imap|info|iotdisco|ipn|ipp|ipps|irc|irc6|ircs|iris|iris.beep|iris.lwz|iris.xpc|iris.xpcs|itms|jabber|jar|jms|keyparc|lastfm|ldap|ldaps|magnet|mailserver|mailto|maps|market|message|mid|mms|modem|ms-help|ms-settings|ms-settings-airplanemode|ms-settings-bluetooth|ms-settings-camera|ms-settings-cellular|ms-settings-cloudstorage|ms-settings-emailandaccounts|ms-settings-language|ms-settings-location|ms-settings-lock|ms-settings-nfctransactions|ms-settings-notifications|ms-settings-power|ms-settings-privacy|ms-settings-proximity|ms-settings-screenrotation|ms-settings-wifi|ms-settings-workplace|msnim|msrp|msrps|mtqp|mumble|mupdate|mvn|news|nfs|ni|nih|nntp|notes|oid|opaquelocktoken|pack|palm|paparazzi|pkcs11|platform|pop|pres|prospero|proxy|psyc|query|redis|rediss|reload|res|resource|rmi|rsync|rtmfp|rtmp|rtsp|rtsps|rtspu|secondlife|s3|service|session|sftp|sgn|shttp|sieve|sip|sips|skype|smb|sms|smtp|snews|snmp|soap.beep|soap.beeps|soldat|spotify|ssh|steam|stun|stuns|submit|svn|tag|teamspeak|tel|teliaeid|telnet|tftp|things|thismessage|tip|tn3270|turn|turns|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|videotex|view-source|wais|webcal|ws|wss|wtai|wyciwyg|xcon|xcon-userid|xfire|xmlrpc\.beep|xmlrpc.beeps|xmpp|xri|ymsgr|z39\.50|z39\.50r|z39\.50s)):// # protocol - (([\pL\pN-]+:)?([\pL\pN-]+)@)? # basic auth - ( - ([\pL\pN\pS-\.])+(\.?([\pL]|xn\-\-[\pL\pN-]+)+\.?) # a domain name - | # or - \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address - | # or - \[ - (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::)))) - \] # an IPv6 address - ) - (:[0-9]+)? # a port (optional) - (/?|/\S+|\?\S*|\#\S*) # a /, nothing, a / with something, a query or a fragment - $~ixu'; - - return preg_match($pattern, $value) > 0; - } - - /** - * Get the size of an attribute. - * - * @param string $attribute - * @param mixed $value - * @return mixed - */ - protected function getSize($attribute, $value) - { - $hasNumeric = $this->hasRule($attribute, $this->numericRules); - - // This method will determine if the attribute is a number, string, or file and - // return the proper size accordingly. If it is a number, then number itself - // is the size. If it is a file, we take kilobytes, and for a string the - // entire length of the string will be considered the attribute size. - if (is_numeric($value) && $hasNumeric) { - return $value; - } elseif (is_array($value)) { - return count($value); - } elseif ($value instanceof File) { - return $value->getSize() / 1024; - } - - return mb_strlen($value); - } - - /** - * Check that the given value is a valid file instance. - * - * @param mixed $value - * @return bool - */ - public function isValidFileInstance($value) - { - if ($value instanceof UploadedFile && ! $value->isValid()) { - return false; - } - - return $value instanceof File; - } - - /** - * Determine if a comparison passes between the given values. - * - * @param mixed $first - * @param mixed $second - * @param string $operator - * @return bool - */ - protected function compare($first, $second, $operator) - { - switch ($operator) { - case '<': - return $first < $second; - case '>': - return $first > $second; - case '<=': - return $first <= $second; - case '>=': - return $first >= $second; - case '=': - return $first == $second; - default: - throw new InvalidArgumentException; - } - } - - /** - * Parse named parameters to $key => $value items. - * - * @param array $parameters - * @return array - */ - protected function parseNamedParameters($parameters) - { - return array_reduce($parameters, function ($result, $item) { - list($key, $value) = array_pad(explode('=', $item, 2), 2, null); - - $result[$key] = $value; - - return $result; - }); - } - - /** - * Require a certain number of parameters to be present. - * - * @param int $count - * @param array $parameters - * @param string $rule - * @return void - * - * @throws \InvalidArgumentException - */ - protected function requireParameterCount($count, $parameters, $rule) - { - if (count($parameters) < $count) { - throw new InvalidArgumentException("Validation rule $rule requires at least $count parameters."); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php b/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php deleted file mode 100755 index 3486c7f5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php +++ /dev/null @@ -1,138 +0,0 @@ -db = $db; - } - - /** - * Count the number of objects in a collection having the given value. - * - * @param string $collection - * @param string $column - * @param string $value - * @param int|null $excludeId - * @param string|null $idColumn - * @param array $extra - * @return int - */ - public function getCount($collection, $column, $value, $excludeId = null, $idColumn = null, array $extra = []) - { - $query = $this->table($collection)->where($column, '=', $value); - - if (! is_null($excludeId) && $excludeId !== 'NULL') { - $query->where($idColumn ?: 'id', '<>', $excludeId); - } - - return $this->addConditions($query, $extra)->count(); - } - - /** - * Count the number of objects in a collection with the given values. - * - * @param string $collection - * @param string $column - * @param array $values - * @param array $extra - * @return int - */ - public function getMultiCount($collection, $column, array $values, array $extra = []) - { - $query = $this->table($collection)->whereIn($column, $values); - - return $this->addConditions($query, $extra)->count(); - } - - /** - * Add the given conditions to the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $conditions - * @return \Illuminate\Database\Query\Builder - */ - protected function addConditions($query, $conditions) - { - foreach ($conditions as $key => $value) { - if ($value instanceof Closure) { - $query->where(function ($query) use ($value) { - $value($query); - }); - } else { - $this->addWhere($query, $key, $value); - } - } - - return $query; - } - - /** - * Add a "where" clause to the given query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $key - * @param string $extraValue - * @return void - */ - protected function addWhere($query, $key, $extraValue) - { - if ($extraValue === 'NULL') { - $query->whereNull($key); - } elseif ($extraValue === 'NOT_NULL') { - $query->whereNotNull($key); - } elseif (Str::startsWith($extraValue, '!')) { - $query->where($key, '!=', mb_substr($extraValue, 1)); - } else { - $query->where($key, $extraValue); - } - } - - /** - * Get a query builder for the given table. - * - * @param string $table - * @return \Illuminate\Database\Query\Builder - */ - protected function table($table) - { - return $this->db->connection($this->connection)->table($table)->useWritePdo(); - } - - /** - * Set the connection to be used. - * - * @param string $connection - * @return void - */ - public function setConnection($connection) - { - $this->connection = $connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Factory.php b/vendor/laravel/framework/src/Illuminate/Validation/Factory.php deleted file mode 100755 index c31ee4a4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Factory.php +++ /dev/null @@ -1,283 +0,0 @@ -container = $container; - $this->translator = $translator; - } - - /** - * Create a new Validator instance. - * - * @param array $data - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return \Illuminate\Validation\Validator - */ - public function make(array $data, array $rules, array $messages = [], array $customAttributes = []) - { - // The presence verifier is responsible for checking the unique and exists data - // for the validator. It is behind an interface so that multiple versions of - // it may be written besides database. We'll inject it into the validator. - $validator = $this->resolve( - $data, $rules, $messages, $customAttributes - ); - - if (! is_null($this->verifier)) { - $validator->setPresenceVerifier($this->verifier); - } - - // Next we'll set the IoC container instance of the validator, which is used to - // resolve out class based validator extensions. If it is not set then these - // types of extensions will not be possible on these validation instances. - if (! is_null($this->container)) { - $validator->setContainer($this->container); - } - - $this->addExtensions($validator); - - return $validator; - } - - /** - * Validate the given data against the provided rules. - * - * @param array $data - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return void - * - * @throws \Illuminate\Validation\ValidationException - */ - public function validate(array $data, array $rules, array $messages = [], array $customAttributes = []) - { - $this->make($data, $rules, $messages, $customAttributes)->validate(); - } - - /** - * Resolve a new Validator instance. - * - * @param array $data - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return \Illuminate\Validation\Validator - */ - protected function resolve(array $data, array $rules, array $messages, array $customAttributes) - { - if (is_null($this->resolver)) { - return new Validator($this->translator, $data, $rules, $messages, $customAttributes); - } - - return call_user_func($this->resolver, $this->translator, $data, $rules, $messages, $customAttributes); - } - - /** - * Add the extensions to a validator instance. - * - * @param \Illuminate\Validation\Validator $validator - * @return void - */ - protected function addExtensions(Validator $validator) - { - $validator->addExtensions($this->extensions); - - // Next, we will add the implicit extensions, which are similar to the required - // and accepted rule in that they are run even if the attributes is not in a - // array of data that is given to a validator instances via instantiation. - $validator->addImplicitExtensions($this->implicitExtensions); - - $validator->addDependentExtensions($this->dependentExtensions); - - $validator->addReplacers($this->replacers); - - $validator->setFallbackMessages($this->fallbackMessages); - } - - /** - * Register a custom validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @param string $message - * @return void - */ - public function extend($rule, $extension, $message = null) - { - $this->extensions[$rule] = $extension; - - if ($message) { - $this->fallbackMessages[Str::snake($rule)] = $message; - } - } - - /** - * Register a custom implicit validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @param string $message - * @return void - */ - public function extendImplicit($rule, $extension, $message = null) - { - $this->implicitExtensions[$rule] = $extension; - - if ($message) { - $this->fallbackMessages[Str::snake($rule)] = $message; - } - } - - /** - * Register a custom dependent validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @param string $message - * @return void - */ - public function extendDependent($rule, $extension, $message = null) - { - $this->dependentExtensions[$rule] = $extension; - - if ($message) { - $this->fallbackMessages[Str::snake($rule)] = $message; - } - } - - /** - * Register a custom validator message replacer. - * - * @param string $rule - * @param \Closure|string $replacer - * @return void - */ - public function replacer($rule, $replacer) - { - $this->replacers[$rule] = $replacer; - } - - /** - * Set the Validator instance resolver. - * - * @param \Closure $resolver - * @return void - */ - public function resolver(Closure $resolver) - { - $this->resolver = $resolver; - } - - /** - * Get the Translator implementation. - * - * @return \Illuminate\Contracts\Translation\Translator - */ - public function getTranslator() - { - return $this->translator; - } - - /** - * Get the Presence Verifier implementation. - * - * @return \Illuminate\Validation\PresenceVerifierInterface - */ - public function getPresenceVerifier() - { - return $this->verifier; - } - - /** - * Set the Presence Verifier implementation. - * - * @param \Illuminate\Validation\PresenceVerifierInterface $presenceVerifier - * @return void - */ - public function setPresenceVerifier(PresenceVerifierInterface $presenceVerifier) - { - $this->verifier = $presenceVerifier; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php b/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php deleted file mode 100755 index 74496299..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -table = $table; - $this->column = $column; - } - - /** - * Set a "where" constraint on the query. - * - * @param string|\Closure $column - * @param array|string|null $value - * @return $this - */ - public function where($column, $value = null) - { - if (is_array($value)) { - return $this->whereIn($column, $value); - } - - if ($column instanceof Closure) { - return $this->using($column); - } - - $this->wheres[] = compact('column', 'value'); - - return $this; - } - - /** - * Set a "where not" constraint on the query. - * - * @param string $column - * @param array|string $value - * @return $this - */ - public function whereNot($column, $value) - { - if (is_array($value)) { - return $this->whereNotIn($column, $value); - } - - return $this->where($column, '!'.$value); - } - - /** - * Set a "where null" constraint on the query. - * - * @param string $column - * @return $this - */ - public function whereNull($column) - { - return $this->where($column, 'NULL'); - } - - /** - * Set a "where not null" constraint on the query. - * - * @param string $column - * @return $this - */ - public function whereNotNull($column) - { - return $this->where($column, 'NOT_NULL'); - } - - /** - * Set a "where in" constraint on the query. - * - * @param string $column - * @param array $values - * @return $this - */ - public function whereIn($column, array $values) - { - return $this->where(function ($query) use ($column, $values) { - $query->whereIn($column, $values); - }); - } - - /** - * Set a "where not in" constraint on the query. - * - * @param string $column - * @param array $values - * @return $this - */ - public function whereNotIn($column, array $values) - { - return $this->where(function ($query) use ($column, $values) { - $query->whereNotIn($column, $values); - }); - } - - /** - * Register a custom query callback. - * - * @param \Closure $callback - * @return $this - */ - public function using(Closure $callback) - { - $this->using[] = $callback; - - return $this; - } - - /** - * Get the custom query callbacks for the rule. - * - * @return array - */ - public function queryCallbacks() - { - return $this->using; - } - - /** - * Format the where clauses. - * - * @return string - */ - protected function formatWheres() - { - return collect($this->wheres)->map(function ($where) { - return $where['column'].','.$where['value']; - })->implode(','); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php deleted file mode 100644 index 354d071c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php +++ /dev/null @@ -1,131 +0,0 @@ -constraints = $constraints; - } - - /** - * Set the "width" constraint. - * - * @param int $value - * @return $this - */ - public function width($value) - { - $this->constraints['width'] = $value; - - return $this; - } - - /** - * Set the "height" constraint. - * - * @param int $value - * @return $this - */ - public function height($value) - { - $this->constraints['height'] = $value; - - return $this; - } - - /** - * Set the "min width" constraint. - * - * @param int $value - * @return $this - */ - public function minWidth($value) - { - $this->constraints['min_width'] = $value; - - return $this; - } - - /** - * Set the "min height" constraint. - * - * @param int $value - * @return $this - */ - public function minHeight($value) - { - $this->constraints['min_height'] = $value; - - return $this; - } - - /** - * Set the "max width" constraint. - * - * @param int $value - * @return $this - */ - public function maxWidth($value) - { - $this->constraints['max_width'] = $value; - - return $this; - } - - /** - * Set the "max height" constraint. - * - * @param int $value - * @return $this - */ - public function maxHeight($value) - { - $this->constraints['max_height'] = $value; - - return $this; - } - - /** - * Set the "ratio" constraint. - * - * @param float $value - * @return $this - */ - public function ratio($value) - { - $this->constraints['ratio'] = $value; - - return $this; - } - - /** - * Convert the rule to a validation string. - * - * @return string - */ - public function __toString() - { - $result = ''; - - foreach ($this->constraints as $key => $value) { - $result .= "$key=$value,"; - } - - return 'dimensions:'.substr($result, 0, -1); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php deleted file mode 100644 index 72c37860..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php +++ /dev/null @@ -1,22 +0,0 @@ -table, - $this->column, - $this->formatWheres() - ), ','); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php deleted file mode 100644 index 58086bfb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php +++ /dev/null @@ -1,45 +0,0 @@ -values = $values; - } - - /** - * Convert the rule to a validation string. - * - * @return string - * - * @see \Illuminate\Validation\ValidationRuleParser::parseParameters - */ - public function __toString() - { - $values = array_map(function ($value) { - return '"'.str_replace('"', '""', $value).'"'; - }, $this->values); - - return $this->rule.':'.implode(',', $values); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php deleted file mode 100644 index edd1013c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php +++ /dev/null @@ -1,43 +0,0 @@ -values = $values; - } - - /** - * Convert the rule to a validation string. - * - * @return string - */ - public function __toString() - { - $values = array_map(function ($value) { - return '"'.str_replace('"', '""', $value).'"'; - }, $this->values); - - return $this->rule.':'.implode(',', $values); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php deleted file mode 100644 index b607c07b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php +++ /dev/null @@ -1,53 +0,0 @@ -ignore = $id; - $this->idColumn = $idColumn; - - return $this; - } - - /** - * Convert the rule to a validation string. - * - * @return string - */ - public function __toString() - { - return rtrim(sprintf('unique:%s,%s,%s,%s,%s', - $this->table, - $this->column, - $this->ignore ? '"'.$this->ignore.'"' : 'NULL', - $this->idColumn, - $this->formatWheres() - ), ','); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php b/vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php deleted file mode 100644 index ea8a6ec0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php +++ /dev/null @@ -1,10 +0,0 @@ -prepareForValidation(); - - $instance = $this->getValidatorInstance(); - - if (! $this->passesAuthorization()) { - $this->failedAuthorization(); - } elseif (! $instance->passes()) { - $this->failedValidation($instance); - } - } - - /** - * Prepare the data for validation. - * - * @return void - */ - protected function prepareForValidation() - { - // no default action - } - - /** - * Get the validator instance for the request. - * - * @return \Illuminate\Validation\Validator - */ - protected function getValidatorInstance() - { - return $this->validator(); - } - - /** - * Handle a failed validation attempt. - * - * @param \Illuminate\Validation\Validator $validator - * @return void - * - * @throws \Illuminate\Validation\ValidationException - */ - protected function failedValidation(Validator $validator) - { - throw new ValidationException($validator); - } - - /** - * Determine if the request passes the authorization check. - * - * @return bool - */ - protected function passesAuthorization() - { - if (method_exists($this, 'authorize')) { - return $this->authorize(); - } - - return true; - } - - /** - * Handle a failed authorization attempt. - * - * @return void - * - * @throws \Illuminate\Validation\UnauthorizedException - */ - protected function failedAuthorization() - { - throw new UnauthorizedException; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php deleted file mode 100644 index 185cdb6a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php +++ /dev/null @@ -1,106 +0,0 @@ - $value) { - if ((bool) preg_match('/^'.$pattern.'/', $key, $matches)) { - $keys[] = $matches[0]; - } - } - - $keys = array_unique($keys); - - $data = []; - - foreach ($keys as $key) { - $data[$key] = Arr::get($masterData, $key); - } - - return $data; - } - - /** - * Extract data based on the given dot-notated path. - * - * Used to extract a sub-section of the data for faster iteration. - * - * @param string $attribute - * @param array $masterData - * @return array - */ - public static function extractDataFromPath($attribute, $masterData) - { - $results = []; - - $value = Arr::get($masterData, $attribute, '__missing__'); - - if ($value !== '__missing__') { - Arr::set($results, $attribute, $value); - } - - return $results; - } - - /** - * Get the explicit part of the attribute name. - * - * E.g. 'foo.bar.*.baz' -> 'foo.bar' - * - * Allows us to not spin through all of the flattened data for some operations. - * - * @param string $attribute - * @return string - */ - public static function getLeadingExplicitAttributePath($attribute) - { - return rtrim(explode('*', $attribute)[0], '.') ?: null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php deleted file mode 100644 index ef71618d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php +++ /dev/null @@ -1,138 +0,0 @@ -response = $response; - $this->errorBag = $errorBag; - $this->validator = $validator; - } - - /** - * Create a new validation exception from a plain array of messages. - * - * @param array $messages - * @return static - */ - public static function withMessages(array $messages) - { - return new static(tap(ValidatorFacade::make([], []), function ($validator) use ($messages) { - foreach ($messages as $key => $value) { - foreach (Arr::wrap($value) as $message) { - $validator->errors()->add($key, $message); - } - } - })); - } - - /** - * Get all of the validation error messages. - * - * @return array - */ - public function errors() - { - return $this->validator->errors()->messages(); - } - - /** - * Set the HTTP status code to be used for the response. - * - * @param int $status - * @return $this - */ - public function status($status) - { - $this->status = $status; - - return $this; - } - - /** - * Set the error bag on the exception. - * - * @param string $errorBag - * @return $this - */ - public function errorBag($errorBag) - { - $this->errorBag = $errorBag; - - return $this; - } - - /** - * Set the URL to redirect to on a validation error. - * - * @param string $url - * @return $this - */ - public function redirectTo($url) - { - $this->redirectTo = $url; - - return $this; - } - - /** - * Get the underlying response instance. - * - * @return \Symfony\Component\HttpFoundation\Response|null - */ - public function getResponse() - { - return $this->response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php deleted file mode 100644 index 43a28db9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php +++ /dev/null @@ -1,275 +0,0 @@ -data = $data; - } - - /** - * Parse the human-friendly rules into a full rules array for the validator. - * - * @param array $rules - * @return \stdClass - */ - public function explode($rules) - { - $this->implicitAttributes = []; - - $rules = $this->explodeRules($rules); - - return (object) [ - 'rules' => $rules, - 'implicitAttributes' => $this->implicitAttributes, - ]; - } - - /** - * Explode the rules into an array of explicit rules. - * - * @param array $rules - * @return array - */ - protected function explodeRules($rules) - { - foreach ($rules as $key => $rule) { - if (Str::contains($key, '*')) { - $rules = $this->explodeWildcardRules($rules, $key, [$rule]); - - unset($rules[$key]); - } else { - $rules[$key] = $this->explodeExplicitRule($rule); - } - } - - return $rules; - } - - /** - * Explode the explicit rule into an array if necessary. - * - * @param mixed $rule - * @return array - */ - protected function explodeExplicitRule($rule) - { - if (is_string($rule)) { - return explode('|', $rule); - } elseif (is_object($rule)) { - return [$this->prepareRule($rule)]; - } - - return array_map([$this, 'prepareRule'], $rule); - } - - /** - * Prepare the given rule for the Validator. - * - * @param mixed $rule - * @return mixed - */ - protected function prepareRule($rule) - { - if ($rule instanceof Closure) { - $rule = new ClosureValidationRule($rule); - } - - if (! is_object($rule) || - $rule instanceof RuleContract || - ($rule instanceof Exists && $rule->queryCallbacks()) || - ($rule instanceof Unique && $rule->queryCallbacks())) { - return $rule; - } - - return (string) $rule; - } - - /** - * Define a set of rules that apply to each element in an array attribute. - * - * @param array $results - * @param string $attribute - * @param string|array $rules - * @return array - */ - protected function explodeWildcardRules($results, $attribute, $rules) - { - $pattern = str_replace('\*', '[^\.]*', preg_quote($attribute)); - - $data = ValidationData::initializeAndGatherData($attribute, $this->data); - - foreach ($data as $key => $value) { - if (Str::startsWith($key, $attribute) || (bool) preg_match('/^'.$pattern.'\z/', $key)) { - foreach ((array) $rules as $rule) { - $this->implicitAttributes[$attribute][] = $key; - - $results = $this->mergeRules($results, $key, $rule); - } - } - } - - return $results; - } - - /** - * Merge additional rules into a given attribute(s). - * - * @param array $results - * @param string|array $attribute - * @param string|array $rules - * @return array - */ - public function mergeRules($results, $attribute, $rules = []) - { - if (is_array($attribute)) { - foreach ((array) $attribute as $innerAttribute => $innerRules) { - $results = $this->mergeRulesForAttribute($results, $innerAttribute, $innerRules); - } - - return $results; - } - - return $this->mergeRulesForAttribute( - $results, $attribute, $rules - ); - } - - /** - * Merge additional rules into a given attribute. - * - * @param array $results - * @param string $attribute - * @param string|array $rules - * @return array - */ - protected function mergeRulesForAttribute($results, $attribute, $rules) - { - $merge = head($this->explodeRules([$rules])); - - $results[$attribute] = array_merge( - isset($results[$attribute]) ? $this->explodeExplicitRule($results[$attribute]) : [], $merge - ); - - return $results; - } - - /** - * Extract the rule name and parameters from a rule. - * - * @param array|string $rules - * @return array - */ - public static function parse($rules) - { - if ($rules instanceof RuleContract) { - return [$rules, []]; - } - - if (is_array($rules)) { - $rules = static::parseArrayRule($rules); - } else { - $rules = static::parseStringRule($rules); - } - - $rules[0] = static::normalizeRule($rules[0]); - - return $rules; - } - - /** - * Parse an array based rule. - * - * @param array $rules - * @return array - */ - protected static function parseArrayRule(array $rules) - { - return [Str::studly(trim(Arr::get($rules, 0))), array_slice($rules, 1)]; - } - - /** - * Parse a string based rule. - * - * @param string $rules - * @return array - */ - protected static function parseStringRule($rules) - { - $parameters = []; - - // The format for specifying validation rules and parameters follows an - // easy {rule}:{parameters} formatting convention. For instance the - // rule "Max:3" states that the value may only be three letters. - if (strpos($rules, ':') !== false) { - list($rules, $parameter) = explode(':', $rules, 2); - - $parameters = static::parseParameters($rules, $parameter); - } - - return [Str::studly(trim($rules)), $parameters]; - } - - /** - * Parse a parameter list. - * - * @param string $rule - * @param string $parameter - * @return array - */ - protected static function parseParameters($rule, $parameter) - { - if (strtolower($rule) == 'regex') { - return [$parameter]; - } - - return str_getcsv($parameter); - } - - /** - * Normalizes a rule so that we can accept short types. - * - * @param string $rule - * @return string - */ - protected static function normalizeRule($rule) - { - switch ($rule) { - case 'Int': - return 'Integer'; - case 'Bool': - return 'Boolean'; - default: - return $rule; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php deleted file mode 100755 index a3c593f9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php +++ /dev/null @@ -1,72 +0,0 @@ -registerPresenceVerifier(); - - $this->registerValidationFactory(); - } - - /** - * Register the validation factory. - * - * @return void - */ - protected function registerValidationFactory() - { - $this->app->singleton('validator', function ($app) { - $validator = new Factory($app['translator'], $app); - - // The validation presence verifier is responsible for determining the existence of - // values in a given data collection which is typically a relational database or - // other persistent data stores. It is used to check for "uniqueness" as well. - if (isset($app['db'], $app['validation.presence'])) { - $validator->setPresenceVerifier($app['validation.presence']); - } - - return $validator; - }); - } - - /** - * Register the database presence verifier. - * - * @return void - */ - protected function registerPresenceVerifier() - { - $this->app->singleton('validation.presence', function ($app) { - return new DatabasePresenceVerifier($app['db']); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'validator', 'validation.presence', - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Validator.php b/vendor/laravel/framework/src/Illuminate/Validation/Validator.php deleted file mode 100755 index 2c85af8b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Validator.php +++ /dev/null @@ -1,1142 +0,0 @@ -initialRules = $rules; - $this->translator = $translator; - $this->customMessages = $messages; - $this->data = $this->parseData($data); - $this->customAttributes = $customAttributes; - - $this->setRules($rules); - } - - /** - * Parse the data array, converting dots to ->. - * - * @param array $data - * @return array - */ - public function parseData(array $data) - { - $newData = []; - - foreach ($data as $key => $value) { - if (is_array($value)) { - $value = $this->parseData($value); - } - - // If the data key contains a dot, we will replace it with another character - // sequence so it doesn't interfere with dot processing when working with - // array based validation rules and array_dot later in the validations. - if (Str::contains($key, '.')) { - $newData[str_replace('.', '->', $key)] = $value; - } else { - $newData[$key] = $value; - } - } - - return $newData; - } - - /** - * Add an after validation callback. - * - * @param callable|string $callback - * @return $this - */ - public function after($callback) - { - $this->after[] = function () use ($callback) { - return call_user_func_array($callback, [$this]); - }; - - return $this; - } - - /** - * Determine if the data passes the validation rules. - * - * @return bool - */ - public function passes() - { - $this->messages = new MessageBag; - - // We'll spin through each rule, validating the attributes attached to that - // rule. Any error messages will be added to the containers with each of - // the other error messages, returning true if we don't have messages. - foreach ($this->rules as $attribute => $rules) { - $attribute = str_replace('\.', '->', $attribute); - - foreach ($rules as $rule) { - $this->validateAttribute($attribute, $rule); - - if ($this->shouldStopValidating($attribute)) { - break; - } - } - } - - // Here we will spin through all of the "after" hooks on this validator and - // fire them off. This gives the callbacks a chance to perform all kinds - // of other validation that needs to get wrapped up in this operation. - foreach ($this->after as $after) { - call_user_func($after); - } - - return $this->messages->isEmpty(); - } - - /** - * Determine if the data fails the validation rules. - * - * @return bool - */ - public function fails() - { - return ! $this->passes(); - } - - /** - * Run the validator's rules against its data. - * - * @return void - * - * @throws \Illuminate\Validation\ValidationException - */ - public function validate() - { - if ($this->fails()) { - throw new ValidationException($this); - } - } - - /** - * Validate a given attribute against a rule. - * - * @param string $attribute - * @param string $rule - * @return void - */ - protected function validateAttribute($attribute, $rule) - { - $this->currentRule = $rule; - - list($rule, $parameters) = ValidationRuleParser::parse($rule); - - if ($rule == '') { - return; - } - - // First we will get the correct keys for the given attribute in case the field is nested in - // an array. Then we determine if the given rule accepts other field names as parameters. - // If so, we will replace any asterisks found in the parameters with the correct keys. - if (($keys = $this->getExplicitKeys($attribute)) && - $this->dependsOnOtherFields($rule)) { - $parameters = $this->replaceAsterisksInParameters($parameters, $keys); - } - - $value = $this->getValue($attribute); - - // If the attribute is a file, we will verify that the file upload was actually successful - // and if it wasn't we will add a failure for the attribute. Files may not successfully - // upload if they are too large based on PHP's settings so we will bail in this case. - if ($value instanceof UploadedFile && ! $value->isValid() && - $this->hasRule($attribute, array_merge($this->fileRules, $this->implicitRules)) - ) { - return $this->addFailure($attribute, 'uploaded', []); - } - - // If we have made it this far we will make sure the attribute is validatable and if it is - // we will call the validation method with the attribute. If a method returns false the - // attribute is invalid and we will add a failure message for this failing attribute. - $validatable = $this->isValidatable($rule, $attribute, $value); - - if ($rule instanceof RuleContract) { - return $validatable - ? $this->validateUsingCustomRule($attribute, $value, $rule) - : null; - } - - $method = "validate{$rule}"; - - if ($validatable && ! $this->$method($attribute, $value, $parameters, $this)) { - $this->addFailure($attribute, $rule, $parameters); - } - } - - /** - * Determine if the given rule depends on other fields. - * - * @param string $rule - * @return bool - */ - protected function dependsOnOtherFields($rule) - { - return in_array($rule, $this->dependentRules); - } - - /** - * Get the explicit keys from an attribute flattened with dot notation. - * - * E.g. 'foo.1.bar.spark.baz' -> [1, 'spark'] for 'foo.*.bar.*.baz' - * - * @param string $attribute - * @return array - */ - protected function getExplicitKeys($attribute) - { - $pattern = str_replace('\*', '([^\.]+)', preg_quote($this->getPrimaryAttribute($attribute), '/')); - - if (preg_match('/^'.$pattern.'/', $attribute, $keys)) { - array_shift($keys); - - return $keys; - } - - return []; - } - - /** - * Get the primary attribute name. - * - * For example, if "name.0" is given, "name.*" will be returned. - * - * @param string $attribute - * @return string - */ - protected function getPrimaryAttribute($attribute) - { - foreach ($this->implicitAttributes as $unparsed => $parsed) { - if (in_array($attribute, $parsed)) { - return $unparsed; - } - } - - return $attribute; - } - - /** - * Replace each field parameter which has asterisks with the given keys. - * - * @param array $parameters - * @param array $keys - * @return array - */ - protected function replaceAsterisksInParameters(array $parameters, array $keys) - { - return array_map(function ($field) use ($keys) { - return vsprintf(str_replace('*', '%s', $field), $keys); - }, $parameters); - } - - /** - * Determine if the attribute is validatable. - * - * @param object|string $rule - * @param string $attribute - * @param mixed $value - * @return bool - */ - protected function isValidatable($rule, $attribute, $value) - { - return $this->presentOrRuleIsImplicit($rule, $attribute, $value) && - $this->passesOptionalCheck($attribute) && - $this->isNotNullIfMarkedAsNullable($rule, $attribute) && - $this->hasNotFailedPreviousRuleIfPresenceRule($rule, $attribute); - } - - /** - * Determine if the field is present, or the rule implies required. - * - * @param object|string $rule - * @param string $attribute - * @param mixed $value - * @return bool - */ - protected function presentOrRuleIsImplicit($rule, $attribute, $value) - { - if (is_string($value) && trim($value) === '') { - return $this->isImplicit($rule); - } - - return $this->validatePresent($attribute, $value) || - $this->isImplicit($rule); - } - - /** - * Determine if a given rule implies the attribute is required. - * - * @param object|string $rule - * @return bool - */ - protected function isImplicit($rule) - { - return $rule instanceof ImplicitRule || - in_array($rule, $this->implicitRules); - } - - /** - * Determine if the attribute passes any optional check. - * - * @param string $attribute - * @return bool - */ - protected function passesOptionalCheck($attribute) - { - if (! $this->hasRule($attribute, ['Sometimes'])) { - return true; - } - - $data = ValidationData::initializeAndGatherData($attribute, $this->data); - - return array_key_exists($attribute, $data) - || in_array($attribute, array_keys($this->data)); - } - - /** - * Determine if the attribute fails the nullable check. - * - * @param string $rule - * @param string $attribute - * @return bool - */ - protected function isNotNullIfMarkedAsNullable($rule, $attribute) - { - if ($this->isImplicit($rule) || ! $this->hasRule($attribute, ['Nullable'])) { - return true; - } - - return ! is_null(Arr::get($this->data, $attribute, 0)); - } - - /** - * Determine if it's a necessary presence validation. - * - * This is to avoid possible database type comparison errors. - * - * @param string $rule - * @param string $attribute - * @return bool - */ - protected function hasNotFailedPreviousRuleIfPresenceRule($rule, $attribute) - { - return in_array($rule, ['Unique', 'Exists']) ? ! $this->messages->has($attribute) : true; - } - - /** - * Validate an attribute using a custom rule object. - * - * @param string $attribute - * @param mixed $value - * @param \Illuminate\Contracts\Validation\Rule $rule - * @return void - */ - protected function validateUsingCustomRule($attribute, $value, $rule) - { - if (! $rule->passes($attribute, $value)) { - $this->failedRules[$attribute][get_class($rule)] = []; - - $this->messages->add($attribute, $this->makeReplacements( - $rule->message(), $attribute, get_class($rule), [] - )); - } - } - - /** - * Check if we should stop further validations on a given attribute. - * - * @param string $attribute - * @return bool - */ - protected function shouldStopValidating($attribute) - { - if ($this->hasRule($attribute, ['Bail'])) { - return $this->messages->has($attribute); - } - - if (isset($this->failedRules[$attribute]) && - in_array('uploaded', array_keys($this->failedRules[$attribute]))) { - return true; - } - - // In case the attribute has any rule that indicates that the field is required - // and that rule already failed then we should stop validation at this point - // as now there is no point in calling other rules with this field empty. - return $this->hasRule($attribute, $this->implicitRules) && - isset($this->failedRules[$attribute]) && - array_intersect(array_keys($this->failedRules[$attribute]), $this->implicitRules); - } - - /** - * Add a failed rule and error message to the collection. - * - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return void - */ - protected function addFailure($attribute, $rule, $parameters) - { - $this->messages->add($attribute, $this->makeReplacements( - $this->getMessage($attribute, $rule), $attribute, $rule, $parameters - )); - - $this->failedRules[$attribute][$rule] = $parameters; - } - - /** - * Returns the data which was valid. - * - * @return array - */ - public function valid() - { - if (! $this->messages) { - $this->passes(); - } - - return array_diff_key( - $this->data, $this->attributesThatHaveMessages() - ); - } - - /** - * Returns the data which was invalid. - * - * @return array - */ - public function invalid() - { - if (! $this->messages) { - $this->passes(); - } - - return array_intersect_key( - $this->data, $this->attributesThatHaveMessages() - ); - } - - /** - * Generate an array of all attributes that have messages. - * - * @return array - */ - protected function attributesThatHaveMessages() - { - return collect($this->messages()->toArray())->map(function ($message, $key) { - return explode('.', $key)[0]; - })->unique()->flip()->all(); - } - - /** - * Get the failed validation rules. - * - * @return array - */ - public function failed() - { - return $this->failedRules; - } - - /** - * Get the message container for the validator. - * - * @return \Illuminate\Support\MessageBag - */ - public function messages() - { - if (! $this->messages) { - $this->passes(); - } - - return $this->messages; - } - - /** - * An alternative more semantic shortcut to the message container. - * - * @return \Illuminate\Support\MessageBag - */ - public function errors() - { - return $this->messages(); - } - - /** - * Get the messages for the instance. - * - * @return \Illuminate\Support\MessageBag - */ - public function getMessageBag() - { - return $this->messages(); - } - - /** - * Determine if the given attribute has a rule in the given set. - * - * @param string $attribute - * @param string|array $rules - * @return bool - */ - public function hasRule($attribute, $rules) - { - return ! is_null($this->getRule($attribute, $rules)); - } - - /** - * Get a rule and its parameters for a given attribute. - * - * @param string $attribute - * @param string|array $rules - * @return array|null - */ - protected function getRule($attribute, $rules) - { - if (! array_key_exists($attribute, $this->rules)) { - return; - } - - $rules = (array) $rules; - - foreach ($this->rules[$attribute] as $rule) { - list($rule, $parameters) = ValidationRuleParser::parse($rule); - - if (in_array($rule, $rules)) { - return [$rule, $parameters]; - } - } - } - - /** - * Get the data under validation. - * - * @return array - */ - public function attributes() - { - return $this->getData(); - } - - /** - * Get the data under validation. - * - * @return array - */ - public function getData() - { - return $this->data; - } - - /** - * Set the data under validation. - * - * @param array $data - * @return $this - */ - public function setData(array $data) - { - $this->data = $this->parseData($data); - - $this->setRules($this->initialRules); - - return $this; - } - - /** - * Get the value of a given attribute. - * - * @param string $attribute - * @return mixed - */ - protected function getValue($attribute) - { - return Arr::get($this->data, $attribute); - } - - /** - * Get the validation rules. - * - * @return array - */ - public function getRules() - { - return $this->rules; - } - - /** - * Set the validation rules. - * - * @param array $rules - * @return $this - */ - public function setRules(array $rules) - { - $this->initialRules = $rules; - - $this->rules = []; - - $this->addRules($rules); - - return $this; - } - - /** - * Parse the given rules and merge them into current rules. - * - * @param array $rules - * @return void - */ - public function addRules($rules) - { - // The primary purpose of this parser is to expand any "*" rules to the all - // of the explicit rules needed for the given data. For example the rule - // names.* would get expanded to names.0, names.1, etc. for this data. - $response = (new ValidationRuleParser($this->data)) - ->explode($rules); - - $this->rules = array_merge_recursive( - $this->rules, $response->rules - ); - - $this->implicitAttributes = array_merge( - $this->implicitAttributes, $response->implicitAttributes - ); - } - - /** - * Add conditions to a given field based on a Closure. - * - * @param string|array $attribute - * @param string|array $rules - * @param callable $callback - * @return $this - */ - public function sometimes($attribute, $rules, callable $callback) - { - $payload = new Fluent($this->getData()); - - if (call_user_func($callback, $payload)) { - foreach ((array) $attribute as $key) { - $this->addRules([$key => $rules]); - } - } - - return $this; - } - - /** - * Register an array of custom validator extensions. - * - * @param array $extensions - * @return void - */ - public function addExtensions(array $extensions) - { - if ($extensions) { - $keys = array_map('\Illuminate\Support\Str::snake', array_keys($extensions)); - - $extensions = array_combine($keys, array_values($extensions)); - } - - $this->extensions = array_merge($this->extensions, $extensions); - } - - /** - * Register an array of custom implicit validator extensions. - * - * @param array $extensions - * @return void - */ - public function addImplicitExtensions(array $extensions) - { - $this->addExtensions($extensions); - - foreach ($extensions as $rule => $extension) { - $this->implicitRules[] = Str::studly($rule); - } - } - - /** - * Register an array of custom implicit validator extensions. - * - * @param array $extensions - * @return void - */ - public function addDependentExtensions(array $extensions) - { - $this->addExtensions($extensions); - - foreach ($extensions as $rule => $extension) { - $this->dependentRules[] = Str::studly($rule); - } - } - - /** - * Register a custom validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @return void - */ - public function addExtension($rule, $extension) - { - $this->extensions[Str::snake($rule)] = $extension; - } - - /** - * Register a custom implicit validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @return void - */ - public function addImplicitExtension($rule, $extension) - { - $this->addExtension($rule, $extension); - - $this->implicitRules[] = Str::studly($rule); - } - - /** - * Register a custom dependent validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @return void - */ - public function addDependentExtension($rule, $extension) - { - $this->addExtension($rule, $extension); - - $this->dependentRules[] = Str::studly($rule); - } - - /** - * Register an array of custom validator message replacers. - * - * @param array $replacers - * @return void - */ - public function addReplacers(array $replacers) - { - if ($replacers) { - $keys = array_map('\Illuminate\Support\Str::snake', array_keys($replacers)); - - $replacers = array_combine($keys, array_values($replacers)); - } - - $this->replacers = array_merge($this->replacers, $replacers); - } - - /** - * Register a custom validator message replacer. - * - * @param string $rule - * @param \Closure|string $replacer - * @return void - */ - public function addReplacer($rule, $replacer) - { - $this->replacers[Str::snake($rule)] = $replacer; - } - - /** - * Set the custom messages for the validator. - * - * @param array $messages - * @return $this - */ - public function setCustomMessages(array $messages) - { - $this->customMessages = array_merge($this->customMessages, $messages); - - return $this; - } - - /** - * Set the custom attributes on the validator. - * - * @param array $attributes - * @return $this - */ - public function setAttributeNames(array $attributes) - { - $this->customAttributes = $attributes; - - return $this; - } - - /** - * Add custom attributes to the validator. - * - * @param array $customAttributes - * @return $this - */ - public function addCustomAttributes(array $customAttributes) - { - $this->customAttributes = array_merge($this->customAttributes, $customAttributes); - - return $this; - } - - /** - * Set the custom values on the validator. - * - * @param array $values - * @return $this - */ - public function setValueNames(array $values) - { - $this->customValues = $values; - - return $this; - } - - /** - * Add the custom values for the validator. - * - * @param array $customValues - * @return $this - */ - public function addCustomValues(array $customValues) - { - $this->customValues = array_merge($this->customValues, $customValues); - - return $this; - } - - /** - * Set the fallback messages for the validator. - * - * @param array $messages - * @return void - */ - public function setFallbackMessages(array $messages) - { - $this->fallbackMessages = $messages; - } - - /** - * Get the Presence Verifier implementation. - * - * @return \Illuminate\Validation\PresenceVerifierInterface - * - * @throws \RuntimeException - */ - public function getPresenceVerifier() - { - if (! isset($this->presenceVerifier)) { - throw new RuntimeException('Presence verifier has not been set.'); - } - - return $this->presenceVerifier; - } - - /** - * Get the Presence Verifier implementation. - * - * @param string $connection - * @return \Illuminate\Validation\PresenceVerifierInterface - * - * @throws \RuntimeException - */ - protected function getPresenceVerifierFor($connection) - { - return tap($this->getPresenceVerifier(), function ($verifier) use ($connection) { - $verifier->setConnection($connection); - }); - } - - /** - * Set the Presence Verifier implementation. - * - * @param \Illuminate\Validation\PresenceVerifierInterface $presenceVerifier - * @return void - */ - public function setPresenceVerifier(PresenceVerifierInterface $presenceVerifier) - { - $this->presenceVerifier = $presenceVerifier; - } - - /** - * Get the Translator implementation. - * - * @return \Illuminate\Contracts\Translation\Translator - */ - public function getTranslator() - { - return $this->translator; - } - - /** - * Set the Translator implementation. - * - * @param \Illuminate\Contracts\Translation\Translator $translator - * @return void - */ - public function setTranslator(Translator $translator) - { - $this->translator = $translator; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function setContainer(Container $container) - { - $this->container = $container; - } - - /** - * Call a custom validator extension. - * - * @param string $rule - * @param array $parameters - * @return bool|null - */ - protected function callExtension($rule, $parameters) - { - $callback = $this->extensions[$rule]; - - if (is_callable($callback)) { - return call_user_func_array($callback, $parameters); - } elseif (is_string($callback)) { - return $this->callClassBasedExtension($callback, $parameters); - } - } - - /** - * Call a class based validator extension. - * - * @param string $callback - * @param array $parameters - * @return bool - */ - protected function callClassBasedExtension($callback, $parameters) - { - list($class, $method) = Str::parseCallback($callback, 'validate'); - - return call_user_func_array([$this->container->make($class), $method], $parameters); - } - - /** - * Handle dynamic calls to class methods. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - $rule = Str::snake(substr($method, 8)); - - if (isset($this->extensions[$rule])) { - return $this->callExtension($rule, $parameters); - } - - throw new BadMethodCallException("Method [$method] does not exist."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/composer.json b/vendor/laravel/framework/src/Illuminate/Validation/composer.json deleted file mode 100755 index a026981b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/composer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "illuminate/validation", - "description": "The Illuminate Validation package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/container": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/support": "5.5.*", - "illuminate/translation": "5.5.*", - "symfony/http-foundation": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\Validation\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "suggest": { - "illuminate/database": "Required to use the database presence verifier (5.5.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php deleted file mode 100644 index 6a999c93..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php +++ /dev/null @@ -1,468 +0,0 @@ -setPath($path); - } - - if (! is_null($this->cachePath)) { - $contents = $this->compileString($this->files->get($this->getPath())); - - $this->files->put($this->getCompiledPath($this->getPath()), $contents); - } - } - - /** - * Get the path currently being compiled. - * - * @return string - */ - public function getPath() - { - return $this->path; - } - - /** - * Set the path currently being compiled. - * - * @param string $path - * @return void - */ - public function setPath($path) - { - $this->path = $path; - } - - /** - * Compile the given Blade template contents. - * - * @param string $value - * @return string - */ - public function compileString($value) - { - if (strpos($value, '@verbatim') !== false) { - $value = $this->storeVerbatimBlocks($value); - } - - $this->footer = []; - - if (strpos($value, '@php') !== false) { - $value = $this->storePhpBlocks($value); - } - - $result = ''; - - // Here we will loop through all of the tokens returned by the Zend lexer and - // parse each one into the corresponding valid PHP. We will then have this - // template as the correctly rendered PHP that can be rendered natively. - foreach (token_get_all($value) as $token) { - $result .= is_array($token) ? $this->parseToken($token) : $token; - } - - if (! empty($this->rawBlocks)) { - $result = $this->restoreRawContent($result); - } - - // If there are any footer lines that need to get added to a template we will - // add them here at the end of the template. This gets used mainly for the - // template inheritance via the extends keyword that should be appended. - if (count($this->footer) > 0) { - $result = $this->addFooters($result); - } - - return $result; - } - - /** - * Store the verbatim blocks and replace them with a temporary placeholder. - * - * @param string $value - * @return string - */ - protected function storeVerbatimBlocks($value) - { - return preg_replace_callback('/(?storeRawBlock($matches[1]); - }, $value); - } - - /** - * Store the PHP blocks and replace them with a temporary placeholder. - * - * @param string $value - * @return string - */ - protected function storePhpBlocks($value) - { - return preg_replace_callback('/(?storeRawBlock(""); - }, $value); - } - - /** - * Store a raw block and return a unique raw placeholder. - * - * @param string $value - * @return string - */ - protected function storeRawBlock($value) - { - return $this->getRawPlaceholder( - array_push($this->rawBlocks, $value) - 1 - ); - } - - /** - * Replace the raw placeholders with the original code stored in the raw blocks. - * - * @param string $result - * @return string - */ - protected function restoreRawContent($result) - { - $result = preg_replace_callback('/'.$this->getRawPlaceholder('(\d+)').'/', function ($matches) { - return $this->rawBlocks[$matches[1]]; - }, $result); - - $this->rawBlocks = []; - - return $result; - } - - /** - * Get a placeholder to temporary mark the position of raw blocks. - * - * @param int|string $replace - * @return string - */ - protected function getRawPlaceholder($replace) - { - return str_replace('#', $replace, '@__raw_block_#__@'); - } - - /** - * Add the stored footers onto the given content. - * - * @param string $result - * @return string - */ - protected function addFooters($result) - { - return ltrim($result, PHP_EOL) - .PHP_EOL.implode(PHP_EOL, array_reverse($this->footer)); - } - - /** - * Parse the tokens from the template. - * - * @param array $token - * @return string - */ - protected function parseToken($token) - { - list($id, $content) = $token; - - if ($id == T_INLINE_HTML) { - foreach ($this->compilers as $type) { - $content = $this->{"compile{$type}"}($content); - } - } - - return $content; - } - - /** - * Execute the user defined extensions. - * - * @param string $value - * @return string - */ - protected function compileExtensions($value) - { - foreach ($this->extensions as $compiler) { - $value = call_user_func($compiler, $value, $this); - } - - return $value; - } - - /** - * Compile Blade statements that start with "@". - * - * @param string $value - * @return string - */ - protected function compileStatements($value) - { - return preg_replace_callback( - '/\B@(@?\w+(?:::\w+)?)([ \t]*)(\( ( (?>[^()]+) | (?3) )* \))?/x', function ($match) { - return $this->compileStatement($match); - }, $value - ); - } - - /** - * Compile a single Blade @ statement. - * - * @param array $match - * @return string - */ - protected function compileStatement($match) - { - if (Str::contains($match[1], '@')) { - $match[0] = isset($match[3]) ? $match[1].$match[3] : $match[1]; - } elseif (isset($this->customDirectives[$match[1]])) { - $match[0] = $this->callCustomDirective($match[1], Arr::get($match, 3)); - } elseif (method_exists($this, $method = 'compile'.ucfirst($match[1]))) { - $match[0] = $this->$method(Arr::get($match, 3)); - } - - return isset($match[3]) ? $match[0] : $match[0].$match[2]; - } - - /** - * Call the given directive with the given value. - * - * @param string $name - * @param string|null $value - * @return string - */ - protected function callCustomDirective($name, $value) - { - if (Str::startsWith($value, '(') && Str::endsWith($value, ')')) { - $value = Str::substr($value, 1, -1); - } - - return call_user_func($this->customDirectives[$name], trim($value)); - } - - /** - * Strip the parentheses from the given expression. - * - * @param string $expression - * @return string - */ - public function stripParentheses($expression) - { - if (Str::startsWith($expression, '(')) { - $expression = substr($expression, 1, -1); - } - - return $expression; - } - - /** - * Register a custom Blade compiler. - * - * @param callable $compiler - * @return void - */ - public function extend(callable $compiler) - { - $this->extensions[] = $compiler; - } - - /** - * Get the extensions used by the compiler. - * - * @return array - */ - public function getExtensions() - { - return $this->extensions; - } - - /** - * Register an "if" statement directive. - * - * @param string $name - * @param callable $callback - * @return void - */ - public function if($name, callable $callback) - { - $this->conditions[$name] = $callback; - - $this->directive($name, function ($expression) use ($name) { - return $expression - ? "" - : ""; - }); - - $this->directive('else'.$name, function ($expression) use ($name) { - return $expression - ? "" - : ""; - }); - - $this->directive('end'.$name, function () { - return ''; - }); - } - - /** - * Check the result of a condition. - * - * @param string $name - * @param array $parameters - * @return bool - */ - public function check($name, ...$parameters) - { - return call_user_func($this->conditions[$name], ...$parameters); - } - - /** - * Register a handler for custom directives. - * - * @param string $name - * @param callable $handler - * @return void - */ - public function directive($name, callable $handler) - { - $this->customDirectives[$name] = $handler; - } - - /** - * Get the list of custom directives. - * - * @return array - */ - public function getCustomDirectives() - { - return $this->customDirectives; - } - - /** - * Set the echo format to be used by the compiler. - * - * @param string $format - * @return void - */ - public function setEchoFormat($format) - { - $this->echoFormat = $format; - } - - /** - * Set the echo format to double encode entities. - * - * @return void - */ - public function doubleEncode() - { - $this->setEchoFormat('e(%s, true)'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php deleted file mode 100755 index 94074192..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php +++ /dev/null @@ -1,74 +0,0 @@ -files = $files; - $this->cachePath = $cachePath; - } - - /** - * Get the path to the compiled version of a view. - * - * @param string $path - * @return string - */ - public function getCompiledPath($path) - { - return $this->cachePath.'/'.sha1($path).'.php'; - } - - /** - * Determine if the view at the given path is expired. - * - * @param string $path - * @return bool - */ - public function isExpired($path) - { - $compiled = $this->getCompiledPath($path); - - // If the compiled file doesn't exist we will indicate that the view is expired - // so that it can be re-compiled. Else, we will verify the last modification - // of the views is less than the modification times of the compiled views. - if (! $this->files->exists($compiled)) { - return true; - } - - return $this->files->lastModified($path) >= - $this->files->lastModified($compiled); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php deleted file mode 100755 index dfcb023a..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -check{$expression}): ?>"; - } - - /** - * Compile the cannot statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileCannot($expression) - { - return "denies{$expression}): ?>"; - } - - /** - * Compile the else-can statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileElsecan($expression) - { - return "check{$expression}): ?>"; - } - - /** - * Compile the else-cannot statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileElsecannot($expression) - { - return "denies{$expression}): ?>"; - } - - /** - * Compile the end-can statements into valid PHP. - * - * @return string - */ - protected function compileEndcan() - { - return ''; - } - - /** - * Compile the end-cannot statements into valid PHP. - * - * @return string - */ - protected function compileEndcannot() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php deleted file mode 100644 index 104a9c81..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php +++ /dev/null @@ -1,19 +0,0 @@ -contentTags[0], $this->contentTags[1]); - - return preg_replace($pattern, '', $value); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php deleted file mode 100644 index af0eee7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php +++ /dev/null @@ -1,48 +0,0 @@ -startComponent{$expression}; ?>"; - } - - /** - * Compile the end-component statements into valid PHP. - * - * @return string - */ - protected function compileEndComponent() - { - return 'renderComponent(); ?>'; - } - - /** - * Compile the slot statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileSlot($expression) - { - return "slot{$expression}; ?>"; - } - - /** - * Compile the end-slot statements into valid PHP. - * - * @return string - */ - protected function compileEndSlot() - { - return 'endSlot(); ?>'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php deleted file mode 100644 index bf721343..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php +++ /dev/null @@ -1,204 +0,0 @@ -guard{$guard}->check()): ?>"; - } - - /** - * Compile the end-auth statements into valid PHP. - * - * @return string - */ - protected function compileEndAuth() - { - return ''; - } - - /** - * Compile the if-guest statements into valid PHP. - * - * @param string|null $guard - * @return string - */ - protected function compileGuest($guard = null) - { - $guard = is_null($guard) ? '()' : $guard; - - return "guard{$guard}->guest()): ?>"; - } - - /** - * Compile the end-guest statements into valid PHP. - * - * @return string - */ - protected function compileEndGuest() - { - return ''; - } - - /** - * Compile the has-section statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileHasSection($expression) - { - return "yieldContent{$expression}))): ?>"; - } - - /** - * Compile the if statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIf($expression) - { - return ""; - } - - /** - * Compile the unless statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileUnless($expression) - { - return ""; - } - - /** - * Compile the else-if statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileElseif($expression) - { - return ""; - } - - /** - * Compile the else statements into valid PHP. - * - * @return string - */ - protected function compileElse() - { - return ''; - } - - /** - * Compile the end-if statements into valid PHP. - * - * @return string - */ - protected function compileEndif() - { - return ''; - } - - /** - * Compile the end-unless statements into valid PHP. - * - * @return string - */ - protected function compileEndunless() - { - return ''; - } - - /** - * Compile the if-isset statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIsset($expression) - { - return ""; - } - - /** - * Compile the end-isset statements into valid PHP. - * - * @return string - */ - protected function compileEndIsset() - { - return ''; - } - - /** - * Compile the switch statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileSwitch($expression) - { - $this->firstCaseInSwitch = true; - - return "firstCaseInSwitch) { - $this->firstCaseInSwitch = false; - - return "case {$expression}: ?>"; - } - - return ""; - } - - /** - * Compile the default statements in switch case into valid PHP. - * - * @return string - */ - protected function compileDefault() - { - return ''; - } - - /** - * Compile the end switch statements into valid PHP. - * - * @return string - */ - protected function compileEndSwitch() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php deleted file mode 100644 index 018f90b8..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php +++ /dev/null @@ -1,105 +0,0 @@ -getEchoMethods() as $method) { - $value = $this->$method($value); - } - - return $value; - } - - /** - * Get the echo methods in the proper order for compilation. - * - * @return array - */ - protected function getEchoMethods() - { - return [ - 'compileRawEchos', - 'compileEscapedEchos', - 'compileRegularEchos', - ]; - } - - /** - * Compile the "raw" echo statements. - * - * @param string $value - * @return string - */ - protected function compileRawEchos($value) - { - $pattern = sprintf('/(@)?%s\s*(.+?)\s*%s(\r?\n)?/s', $this->rawTags[0], $this->rawTags[1]); - - $callback = function ($matches) { - $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3]; - - return $matches[1] ? substr($matches[0], 1) : "compileEchoDefaults($matches[2])}; ?>{$whitespace}"; - }; - - return preg_replace_callback($pattern, $callback, $value); - } - - /** - * Compile the "regular" echo statements. - * - * @param string $value - * @return string - */ - protected function compileRegularEchos($value) - { - $pattern = sprintf('/(@)?%s\s*(.+?)\s*%s(\r?\n)?/s', $this->contentTags[0], $this->contentTags[1]); - - $callback = function ($matches) { - $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3]; - - $wrapped = sprintf($this->echoFormat, $this->compileEchoDefaults($matches[2])); - - return $matches[1] ? substr($matches[0], 1) : "{$whitespace}"; - }; - - return preg_replace_callback($pattern, $callback, $value); - } - - /** - * Compile the escaped echo statements. - * - * @param string $value - * @return string - */ - protected function compileEscapedEchos($value) - { - $pattern = sprintf('/(@)?%s\s*(.+?)\s*%s(\r?\n)?/s', $this->escapedTags[0], $this->escapedTags[1]); - - $callback = function ($matches) { - $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3]; - - return $matches[1] ? $matches[0] : "compileEchoDefaults($matches[2])}); ?>{$whitespace}"; - }; - - return preg_replace_callback($pattern, $callback, $value); - } - - /** - * Compile the default values for the echo statement. - * - * @param string $value - * @return string - */ - public function compileEchoDefaults($value) - { - return preg_replace('/^(?=\$)(.+?)(?:\s+or\s+)(.+?)$/si', 'isset($1) ? $1 : $2', $value); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php deleted file mode 100644 index 417d4ef6..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php +++ /dev/null @@ -1,69 +0,0 @@ -renderEach{$expression}; ?>"; - } - - /** - * Compile the include statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileInclude($expression) - { - $expression = $this->stripParentheses($expression); - - return "make({$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - } - - /** - * Compile the include-if statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIncludeIf($expression) - { - $expression = $this->stripParentheses($expression); - - return "exists({$expression})) echo \$__env->make({$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - } - - /** - * Compile the include-when statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIncludeWhen($expression) - { - $expression = $this->stripParentheses($expression); - - return "renderWhen($expression, array_except(get_defined_vars(), array('__data', '__path'))); ?>"; - } - - /** - * Compile the include-first statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIncludeFirst($expression) - { - $expression = $this->stripParentheses($expression); - - return "first({$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php deleted file mode 100644 index c295bcd4..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php +++ /dev/null @@ -1,23 +0,0 @@ -"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php deleted file mode 100644 index cf343e97..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php +++ /dev/null @@ -1,30 +0,0 @@ -stripParentheses($expression)); - - $options = isset($parts[1]) ? trim($parts[1]) : $this->encodingOptions; - - $depth = isset($parts[2]) ? trim($parts[2]) : 512; - - return ""; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php deleted file mode 100644 index 329a7055..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php +++ /dev/null @@ -1,116 +0,0 @@ -stripParentheses($expression); - - $echo = "make({$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - - $this->footer[] = $echo; - - return ''; - } - - /** - * Compile the section statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileSection($expression) - { - $this->lastSection = trim($expression, "()'\" "); - - return "startSection{$expression}; ?>"; - } - - /** - * Replace the @parent directive to a placeholder. - * - * @return string - */ - protected function compileParent() - { - return ViewFactory::parentPlaceholder($this->lastSection ?: ''); - } - - /** - * Compile the yield statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileYield($expression) - { - return "yieldContent{$expression}; ?>"; - } - - /** - * Compile the show statements into valid PHP. - * - * @return string - */ - protected function compileShow() - { - return 'yieldSection(); ?>'; - } - - /** - * Compile the append statements into valid PHP. - * - * @return string - */ - protected function compileAppend() - { - return 'appendSection(); ?>'; - } - - /** - * Compile the overwrite statements into valid PHP. - * - * @return string - */ - protected function compileOverwrite() - { - return 'stopSection(true); ?>'; - } - - /** - * Compile the stop statements into valid PHP. - * - * @return string - */ - protected function compileStop() - { - return 'stopSection(); ?>'; - } - - /** - * Compile the end-section statements into valid PHP. - * - * @return string - */ - protected function compileEndsection() - { - return 'stopSection(); ?>'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php deleted file mode 100644 index 9f64c4f2..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php +++ /dev/null @@ -1,180 +0,0 @@ -forElseCounter; - - preg_match('/\( *(.*) +as *(.*)\)$/is', $expression, $matches); - - $iteratee = trim($matches[1]); - - $iteration = trim($matches[2]); - - $initLoop = "\$__currentLoopData = {$iteratee}; \$__env->addLoop(\$__currentLoopData);"; - - $iterateLoop = '$__env->incrementLoopIndices(); $loop = $__env->getLastLoop();'; - - return ""; - } - - /** - * Compile the for-else-empty and empty statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileEmpty($expression) - { - if ($expression) { - return ""; - } - - $empty = '$__empty_'.$this->forElseCounter--; - - return "popLoop(); \$loop = \$__env->getLastLoop(); if ({$empty}): ?>"; - } - - /** - * Compile the end-for-else statements into valid PHP. - * - * @return string - */ - protected function compileEndforelse() - { - return ''; - } - - /** - * Compile the end-empty statements into valid PHP. - * - * @return string - */ - protected function compileEndEmpty() - { - return ''; - } - - /** - * Compile the for statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileFor($expression) - { - return ""; - } - - /** - * Compile the for-each statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileForeach($expression) - { - preg_match('/\( *(.*) +as *(.*)\)$/is', $expression, $matches); - - $iteratee = trim($matches[1]); - - $iteration = trim($matches[2]); - - $initLoop = "\$__currentLoopData = {$iteratee}; \$__env->addLoop(\$__currentLoopData);"; - - $iterateLoop = '$__env->incrementLoopIndices(); $loop = $__env->getLastLoop();'; - - return ""; - } - - /** - * Compile the break statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileBreak($expression) - { - if ($expression) { - preg_match('/\(\s*(-?\d+)\s*\)$/', $expression, $matches); - - return $matches ? '' : ""; - } - - return ''; - } - - /** - * Compile the continue statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileContinue($expression) - { - if ($expression) { - preg_match('/\(\s*(-?\d+)\s*\)$/', $expression, $matches); - - return $matches ? '' : ""; - } - - return ''; - } - - /** - * Compile the end-for statements into valid PHP. - * - * @return string - */ - protected function compileEndfor() - { - return ''; - } - - /** - * Compile the end-for-each statements into valid PHP. - * - * @return string - */ - protected function compileEndforeach() - { - return 'popLoop(); $loop = $__env->getLastLoop(); ?>'; - } - - /** - * Compile the while statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileWhile($expression) - { - return ""; - } - - /** - * Compile the end-while statements into valid PHP. - * - * @return string - */ - protected function compileEndwhile() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php deleted file mode 100644 index 41c7edfd..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php +++ /dev/null @@ -1,32 +0,0 @@ -"; - } - - return '@php'; - } - - /** - * Compile the unset statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileUnset($expression) - { - return ""; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php deleted file mode 100644 index 79a380e6..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php +++ /dev/null @@ -1,59 +0,0 @@ -yieldPushContent{$expression}; ?>"; - } - - /** - * Compile the push statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compilePush($expression) - { - return "startPush{$expression}; ?>"; - } - - /** - * Compile the end-push statements into valid PHP. - * - * @return string - */ - protected function compileEndpush() - { - return 'stopPush(); ?>'; - } - - /** - * Compile the prepend statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compilePrepend($expression) - { - return "startPrepend{$expression}; ?>"; - } - - /** - * Compile the end-prepend statements into valid PHP. - * - * @return string - */ - protected function compileEndprepend() - { - return 'stopPrepend(); ?>'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php deleted file mode 100644 index feb7e651..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php +++ /dev/null @@ -1,44 +0,0 @@ -startTranslation(); ?>'; - } elseif ($expression[1] === '[') { - return "startTranslation{$expression}; ?>"; - } - - return "getFromJson{$expression}; ?>"; - } - - /** - * Compile the end-lang statements into valid PHP. - * - * @return string - */ - protected function compileEndlang() - { - return 'renderTranslation(); ?>'; - } - - /** - * Compile the choice statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileChoice($expression) - { - return "choice{$expression}; ?>"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php deleted file mode 100644 index d523f7e8..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php +++ /dev/null @@ -1,128 +0,0 @@ -componentStack[] = $name; - - $this->componentData[$this->currentComponent()] = $data; - - $this->slots[$this->currentComponent()] = []; - } - } - - /** - * Render the current component. - * - * @return string - */ - public function renderComponent() - { - $name = array_pop($this->componentStack); - - return $this->make($name, $this->componentData($name))->render(); - } - - /** - * Get the data for the given component. - * - * @param string $name - * @return array - */ - protected function componentData($name) - { - return array_merge( - $this->componentData[count($this->componentStack)], - ['slot' => new HtmlString(trim(ob_get_clean()))], - $this->slots[count($this->componentStack)] - ); - } - - /** - * Start the slot rendering process. - * - * @param string $name - * @param string|null $content - * @return void - */ - public function slot($name, $content = null) - { - if (count(func_get_args()) == 2) { - $this->slots[$this->currentComponent()][$name] = $content; - } else { - if (ob_start()) { - $this->slots[$this->currentComponent()][$name] = ''; - - $this->slotStack[$this->currentComponent()][] = $name; - } - } - } - - /** - * Save the slot content for rendering. - * - * @return void - */ - public function endSlot() - { - last($this->componentStack); - - $currentSlot = array_pop( - $this->slotStack[$this->currentComponent()] - ); - - $this->slots[$this->currentComponent()] - [$currentSlot] = new HtmlString(trim(ob_get_clean())); - } - - /** - * Get the index for the current component. - * - * @return int - */ - protected function currentComponent() - { - return count($this->componentStack) - 1; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php deleted file mode 100644 index f3d7717c..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php +++ /dev/null @@ -1,192 +0,0 @@ -addViewEvent($view, $callback, 'creating: '); - } - - return $creators; - } - - /** - * Register multiple view composers via an array. - * - * @param array $composers - * @return array - */ - public function composers(array $composers) - { - $registered = []; - - foreach ($composers as $callback => $views) { - $registered = array_merge($registered, $this->composer($views, $callback)); - } - - return $registered; - } - - /** - * Register a view composer event. - * - * @param array|string $views - * @param \Closure|string $callback - * @return array - */ - public function composer($views, $callback) - { - $composers = []; - - foreach ((array) $views as $view) { - $composers[] = $this->addViewEvent($view, $callback, 'composing: '); - } - - return $composers; - } - - /** - * Add an event for a given view. - * - * @param string $view - * @param \Closure|string $callback - * @param string $prefix - * @return \Closure|null - */ - protected function addViewEvent($view, $callback, $prefix = 'composing: ') - { - $view = $this->normalizeName($view); - - if ($callback instanceof Closure) { - $this->addEventListener($prefix.$view, $callback); - - return $callback; - } elseif (is_string($callback)) { - return $this->addClassEvent($view, $callback, $prefix); - } - } - - /** - * Register a class based view composer. - * - * @param string $view - * @param string $class - * @param string $prefix - * @return \Closure - */ - protected function addClassEvent($view, $class, $prefix) - { - $name = $prefix.$view; - - // When registering a class based view "composer", we will simply resolve the - // classes from the application IoC container then call the compose method - // on the instance. This allows for convenient, testable view composers. - $callback = $this->buildClassEventCallback( - $class, $prefix - ); - - $this->addEventListener($name, $callback); - - return $callback; - } - - /** - * Build a class based container callback Closure. - * - * @param string $class - * @param string $prefix - * @return \Closure - */ - protected function buildClassEventCallback($class, $prefix) - { - list($class, $method) = $this->parseClassEvent($class, $prefix); - - // Once we have the class and method name, we can build the Closure to resolve - // the instance out of the IoC container and call the method on it with the - // given arguments that are passed to the Closure as the composer's data. - return function () use ($class, $method) { - return call_user_func_array( - [$this->container->make($class), $method], func_get_args() - ); - }; - } - - /** - * Parse a class based composer name. - * - * @param string $class - * @param string $prefix - * @return array - */ - protected function parseClassEvent($class, $prefix) - { - return Str::parseCallback($class, $this->classEventMethodForPrefix($prefix)); - } - - /** - * Determine the class event method based on the given prefix. - * - * @param string $prefix - * @return string - */ - protected function classEventMethodForPrefix($prefix) - { - return Str::contains($prefix, 'composing') ? 'compose' : 'create'; - } - - /** - * Add a listener to the event dispatcher. - * - * @param string $name - * @param \Closure $callback - * @return void - */ - protected function addEventListener($name, $callback) - { - if (Str::contains($name, '*')) { - $callback = function ($name, array $data) use ($callback) { - return $callback($data[0]); - }; - } - - $this->events->listen($name, $callback); - } - - /** - * Call the composer for a given view. - * - * @param \Illuminate\Contracts\View\View $view - * @return void - */ - public function callComposer(ViewContract $view) - { - $this->events->dispatch('composing: '.$view->name(), [$view]); - } - - /** - * Call the creator for a given view. - * - * @param \Illuminate\Contracts\View\View $view - * @return void - */ - public function callCreator(ViewContract $view) - { - $this->events->dispatch('creating: '.$view->name(), [$view]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php deleted file mode 100644 index 6f492d19..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php +++ /dev/null @@ -1,218 +0,0 @@ -sectionStack[] = $section; - } - } else { - $this->extendSection($section, $content instanceof View ? $content : e($content)); - } - } - - /** - * Inject inline content into a section. - * - * @param string $section - * @param string $content - * @return void - */ - public function inject($section, $content) - { - $this->startSection($section, $content); - } - - /** - * Stop injecting content into a section and return its contents. - * - * @return string - */ - public function yieldSection() - { - if (empty($this->sectionStack)) { - return ''; - } - - return $this->yieldContent($this->stopSection()); - } - - /** - * Stop injecting content into a section. - * - * @param bool $overwrite - * @return string - * @throws \InvalidArgumentException - */ - public function stopSection($overwrite = false) - { - if (empty($this->sectionStack)) { - throw new InvalidArgumentException('Cannot end a section without first starting one.'); - } - - $last = array_pop($this->sectionStack); - - if ($overwrite) { - $this->sections[$last] = ob_get_clean(); - } else { - $this->extendSection($last, ob_get_clean()); - } - - return $last; - } - - /** - * Stop injecting content into a section and append it. - * - * @return string - * @throws \InvalidArgumentException - */ - public function appendSection() - { - if (empty($this->sectionStack)) { - throw new InvalidArgumentException('Cannot end a section without first starting one.'); - } - - $last = array_pop($this->sectionStack); - - if (isset($this->sections[$last])) { - $this->sections[$last] .= ob_get_clean(); - } else { - $this->sections[$last] = ob_get_clean(); - } - - return $last; - } - - /** - * Append content to a given section. - * - * @param string $section - * @param string $content - * @return void - */ - protected function extendSection($section, $content) - { - if (isset($this->sections[$section])) { - $content = str_replace(static::parentPlaceholder($section), $content, $this->sections[$section]); - } - - $this->sections[$section] = $content; - } - - /** - * Get the string contents of a section. - * - * @param string $section - * @param string $default - * @return string - */ - public function yieldContent($section, $default = '') - { - $sectionContent = $default instanceof View ? $default : e($default); - - if (isset($this->sections[$section])) { - $sectionContent = $this->sections[$section]; - } - - $sectionContent = str_replace('@@parent', '--parent--holder--', $sectionContent); - - return str_replace( - '--parent--holder--', '@parent', str_replace(static::parentPlaceholder($section), '', $sectionContent) - ); - } - - /** - * Get the parent placeholder for the current request. - * - * @param string $section - * @return string - */ - public static function parentPlaceholder($section = '') - { - if (! isset(static::$parentPlaceholder[$section])) { - static::$parentPlaceholder[$section] = '##parent-placeholder-'.sha1($section).'##'; - } - - return static::$parentPlaceholder[$section]; - } - - /** - * Check if section exists. - * - * @param string $name - * @return bool - */ - public function hasSection($name) - { - return array_key_exists($name, $this->sections); - } - - /** - * Get the contents of a section. - * - * @param string $name - * @param string $default - * @return mixed - */ - public function getSection($name, $default = null) - { - return $this->getSections()[$name] ?? $default; - } - - /** - * Get the entire array of sections. - * - * @return array - */ - public function getSections() - { - return $this->sections; - } - - /** - * Flush all of the sections. - * - * @return void - */ - public function flushSections() - { - $this->sections = []; - $this->sectionStack = []; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php deleted file mode 100644 index 5f50b247..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php +++ /dev/null @@ -1,90 +0,0 @@ -loopsStack); - - $this->loopsStack[] = [ - 'iteration' => 0, - 'index' => 0, - 'remaining' => $length ?? null, - 'count' => $length, - 'first' => true, - 'last' => isset($length) ? $length == 1 : null, - 'depth' => count($this->loopsStack) + 1, - 'parent' => $parent ? (object) $parent : null, - ]; - } - - /** - * Increment the top loop's indices. - * - * @return void - */ - public function incrementLoopIndices() - { - $loop = $this->loopsStack[$index = count($this->loopsStack) - 1]; - - $this->loopsStack[$index] = array_merge($this->loopsStack[$index], [ - 'iteration' => $loop['iteration'] + 1, - 'index' => $loop['iteration'], - 'first' => $loop['iteration'] == 0, - 'remaining' => isset($loop['count']) ? $loop['remaining'] - 1 : null, - 'last' => isset($loop['count']) ? $loop['iteration'] == $loop['count'] - 1 : null, - ]); - } - - /** - * Pop a loop from the top of the loop stack. - * - * @return void - */ - public function popLoop() - { - array_pop($this->loopsStack); - } - - /** - * Get an instance of the last loop in the stack. - * - * @return \stdClass|null - */ - public function getLastLoop() - { - if ($last = Arr::last($this->loopsStack)) { - return (object) $last; - } - } - - /** - * Get the entire loop stack. - * - * @return array - */ - public function getLoopStack() - { - return $this->loopsStack; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php deleted file mode 100644 index 53af024f..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php +++ /dev/null @@ -1,177 +0,0 @@ -pushStack[] = $section; - } - } else { - $this->extendPush($section, $content); - } - } - - /** - * Stop injecting content into a push section. - * - * @return string - * @throws \InvalidArgumentException - */ - public function stopPush() - { - if (empty($this->pushStack)) { - throw new InvalidArgumentException('Cannot end a push stack without first starting one.'); - } - - return tap(array_pop($this->pushStack), function ($last) { - $this->extendPush($last, ob_get_clean()); - }); - } - - /** - * Append content to a given push section. - * - * @param string $section - * @param string $content - * @return void - */ - protected function extendPush($section, $content) - { - if (! isset($this->pushes[$section])) { - $this->pushes[$section] = []; - } - - if (! isset($this->pushes[$section][$this->renderCount])) { - $this->pushes[$section][$this->renderCount] = $content; - } else { - $this->pushes[$section][$this->renderCount] .= $content; - } - } - - /** - * Start prepending content into a push section. - * - * @param string $section - * @param string $content - * @return void - */ - public function startPrepend($section, $content = '') - { - if ($content === '') { - if (ob_start()) { - $this->pushStack[] = $section; - } - } else { - $this->extendPrepend($section, $content); - } - } - - /** - * Stop prepending content into a push section. - * - * @return string - * @throws \InvalidArgumentException - */ - public function stopPrepend() - { - if (empty($this->pushStack)) { - throw new InvalidArgumentException('Cannot end a prepend operation without first starting one.'); - } - - return tap(array_pop($this->pushStack), function ($last) { - $this->extendPrepend($last, ob_get_clean()); - }); - } - - /** - * Prepend content to a given stack. - * - * @param string $section - * @param string $content - * @return void - */ - protected function extendPrepend($section, $content) - { - if (! isset($this->prepends[$section])) { - $this->prepends[$section] = []; - } - - if (! isset($this->prepends[$section][$this->renderCount])) { - $this->prepends[$section][$this->renderCount] = $content; - } else { - $this->prepends[$section][$this->renderCount] = $content.$this->prepends[$section][$this->renderCount]; - } - } - - /** - * Get the string contents of a push section. - * - * @param string $section - * @param string $default - * @return string - */ - public function yieldPushContent($section, $default = '') - { - if (! isset($this->pushes[$section]) && ! isset($this->prepends[$section])) { - return $default; - } - - $output = ''; - - if (isset($this->prepends[$section])) { - $output .= implode(array_reverse($this->prepends[$section])); - } - - if (isset($this->pushes[$section])) { - $output .= implode($this->pushes[$section]); - } - - return $output; - } - - /** - * Flush all of the stacks. - * - * @return void - */ - public function flushStacks() - { - $this->pushes = []; - $this->prepends = []; - $this->pushStack = []; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php deleted file mode 100644 index 841c3fe1..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php +++ /dev/null @@ -1,38 +0,0 @@ -translationReplacements = $replacements; - } - - /** - * Render the current translation. - * - * @return string - */ - public function renderTranslation() - { - return $this->container->make('translator')->getFromJson( - trim(ob_get_clean()), $this->translationReplacements - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php b/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php deleted file mode 100755 index 2f7f84b1..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php +++ /dev/null @@ -1,102 +0,0 @@ -compiler = $compiler; - } - - /** - * Get the evaluated contents of the view. - * - * @param string $path - * @param array $data - * @return string - */ - public function get($path, array $data = []) - { - $this->lastCompiled[] = $path; - - // If this given view has expired, which means it has simply been edited since - // it was last compiled, we will re-compile the views so we can evaluate a - // fresh copy of the view. We'll pass the compiler the path of the view. - if ($this->compiler->isExpired($path)) { - $this->compiler->compile($path); - } - - $compiled = $this->compiler->getCompiledPath($path); - - // Once we have the path to the compiled file, we will evaluate the paths with - // typical PHP just like any other templates. We also keep a stack of views - // which have been rendered for right exception messages to be generated. - $results = $this->evaluatePath($compiled, $data); - - array_pop($this->lastCompiled); - - return $results; - } - - /** - * Handle a view exception. - * - * @param \Exception $e - * @param int $obLevel - * @return void - * - * @throws \Exception - */ - protected function handleViewException(Exception $e, $obLevel) - { - $e = new ErrorException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e); - - parent::handleViewException($e, $obLevel); - } - - /** - * Get the exception message for an exception. - * - * @param \Exception $e - * @return string - */ - protected function getMessage(Exception $e) - { - return $e->getMessage().' (View: '.realpath(last($this->lastCompiled)).')'; - } - - /** - * Get the compiler implementation. - * - * @return \Illuminate\View\Compilers\CompilerInterface - */ - public function getCompiler() - { - return $this->compiler; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php b/vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php deleted file mode 100755 index bf5c748d..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php +++ /dev/null @@ -1,23 +0,0 @@ -lastRendered; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php b/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php deleted file mode 100755 index b6abb68f..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php +++ /dev/null @@ -1,59 +0,0 @@ -resolved[$engine]); - - $this->resolvers[$engine] = $resolver; - } - - /** - * Resolve an engine instance by name. - * - * @param string $engine - * @return \Illuminate\Contracts\View\Engine - * @throws \InvalidArgumentException - */ - public function resolve($engine) - { - if (isset($this->resolved[$engine])) { - return $this->resolved[$engine]; - } - - if (isset($this->resolvers[$engine])) { - return $this->resolved[$engine] = call_user_func($this->resolvers[$engine]); - } - - throw new InvalidArgumentException("Engine $engine not found."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php b/vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php deleted file mode 100644 index 360b5438..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php +++ /dev/null @@ -1,20 +0,0 @@ -evaluatePath($path, $data); - } - - /** - * Get the evaluated contents of the view at the given path. - * - * @param string $__path - * @param array $__data - * @return string - */ - protected function evaluatePath($__path, $__data) - { - $obLevel = ob_get_level(); - - ob_start(); - - extract($__data, EXTR_SKIP); - - // We'll evaluate the contents of the view inside a try/catch block so we can - // flush out any stray output that might get out before an error occurs or - // an exception is thrown. This prevents any partial views from leaking. - try { - include $__path; - } catch (Exception $e) { - $this->handleViewException($e, $obLevel); - } catch (Throwable $e) { - $this->handleViewException(new FatalThrowableError($e), $obLevel); - } - - return ltrim(ob_get_clean()); - } - - /** - * Handle a view exception. - * - * @param \Exception $e - * @param int $obLevel - * @return void - * - * @throws \Exception - */ - protected function handleViewException(Exception $e, $obLevel) - { - while (ob_get_level() > $obLevel) { - ob_end_clean(); - } - - throw $e; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Factory.php b/vendor/laravel/framework/src/Illuminate/View/Factory.php deleted file mode 100755 index 2b11ec54..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Factory.php +++ /dev/null @@ -1,563 +0,0 @@ - 'blade', - 'php' => 'php', - 'css' => 'file', - ]; - - /** - * The view composer events. - * - * @var array - */ - protected $composers = []; - - /** - * The number of active rendering operations. - * - * @var int - */ - protected $renderCount = 0; - - /** - * Create a new view factory instance. - * - * @param \Illuminate\View\Engines\EngineResolver $engines - * @param \Illuminate\View\ViewFinderInterface $finder - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function __construct(EngineResolver $engines, ViewFinderInterface $finder, Dispatcher $events) - { - $this->finder = $finder; - $this->events = $events; - $this->engines = $engines; - - $this->share('__env', $this); - } - - /** - * Get the evaluated view contents for the given view. - * - * @param string $path - * @param array $data - * @param array $mergeData - * @return \Illuminate\Contracts\View\View - */ - public function file($path, $data = [], $mergeData = []) - { - $data = array_merge($mergeData, $this->parseData($data)); - - return tap($this->viewInstance($path, $path, $data), function ($view) { - $this->callCreator($view); - }); - } - - /** - * Get the evaluated view contents for the given view. - * - * @param string $view - * @param array $data - * @param array $mergeData - * @return \Illuminate\Contracts\View\View - */ - public function make($view, $data = [], $mergeData = []) - { - $path = $this->finder->find( - $view = $this->normalizeName($view) - ); - - // Next, we will create the view instance and call the view creator for the view - // which can set any data, etc. Then we will return the view instance back to - // the caller for rendering or performing other view manipulations on this. - $data = array_merge($mergeData, $this->parseData($data)); - - return tap($this->viewInstance($view, $path, $data), function ($view) { - $this->callCreator($view); - }); - } - - /** - * Get the first view that actually exists from the given list. - * - * @param array $views - * @param array $data - * @param array $mergeData - * @return \Illuminate\Contracts\View\View - */ - public function first(array $views, $data = [], $mergeData = []) - { - $view = collect($views)->first(function ($view) { - return $this->exists($view); - }); - - if (! $view) { - throw new InvalidArgumentException('None of the views in the given array exist.'); - } - - return $this->make($view, $data, $mergeData); - } - - /** - * Get the rendered content of the view based on a given condition. - * - * @param bool $condition - * @param string $view - * @param array $data - * @param array $mergeData - * @return string - */ - public function renderWhen($condition, $view, $data = [], $mergeData = []) - { - if (! $condition) { - return ''; - } - - return $this->make($view, $this->parseData($data), $mergeData)->render(); - } - - /** - * Get the rendered contents of a partial from a loop. - * - * @param string $view - * @param array $data - * @param string $iterator - * @param string $empty - * @return string - */ - public function renderEach($view, $data, $iterator, $empty = 'raw|') - { - $result = ''; - - // If is actually data in the array, we will loop through the data and append - // an instance of the partial view to the final result HTML passing in the - // iterated value of this data array, allowing the views to access them. - if (count($data) > 0) { - foreach ($data as $key => $value) { - $result .= $this->make( - $view, ['key' => $key, $iterator => $value] - )->render(); - } - } - - // If there is no data in the array, we will render the contents of the empty - // view. Alternatively, the "empty view" could be a raw string that begins - // with "raw|" for convenience and to let this know that it is a string. - else { - $result = Str::startsWith($empty, 'raw|') - ? substr($empty, 4) - : $this->make($empty)->render(); - } - - return $result; - } - - /** - * Normalize a view name. - * - * @param string $name - * @return string - */ - protected function normalizeName($name) - { - return ViewName::normalize($name); - } - - /** - * Parse the given data into a raw array. - * - * @param mixed $data - * @return array - */ - protected function parseData($data) - { - return $data instanceof Arrayable ? $data->toArray() : $data; - } - - /** - * Create a new view instance from the given arguments. - * - * @param string $view - * @param string $path - * @param array $data - * @return \Illuminate\Contracts\View\View - */ - protected function viewInstance($view, $path, $data) - { - return new View($this, $this->getEngineFromPath($path), $view, $path, $data); - } - - /** - * Determine if a given view exists. - * - * @param string $view - * @return bool - */ - public function exists($view) - { - try { - $this->finder->find($view); - } catch (InvalidArgumentException $e) { - return false; - } - - return true; - } - - /** - * Get the appropriate view engine for the given path. - * - * @param string $path - * @return \Illuminate\Contracts\View\Engine - * - * @throws \InvalidArgumentException - */ - public function getEngineFromPath($path) - { - if (! $extension = $this->getExtension($path)) { - throw new InvalidArgumentException("Unrecognized extension in file: $path"); - } - - $engine = $this->extensions[$extension]; - - return $this->engines->resolve($engine); - } - - /** - * Get the extension used by the view file. - * - * @param string $path - * @return string - */ - protected function getExtension($path) - { - $extensions = array_keys($this->extensions); - - return Arr::first($extensions, function ($value) use ($path) { - return Str::endsWith($path, '.'.$value); - }); - } - - /** - * Add a piece of shared data to the environment. - * - * @param array|string $key - * @param mixed $value - * @return mixed - */ - public function share($key, $value = null) - { - $keys = is_array($key) ? $key : [$key => $value]; - - foreach ($keys as $key => $value) { - $this->shared[$key] = $value; - } - - return $value; - } - - /** - * Increment the rendering counter. - * - * @return void - */ - public function incrementRender() - { - $this->renderCount++; - } - - /** - * Decrement the rendering counter. - * - * @return void - */ - public function decrementRender() - { - $this->renderCount--; - } - - /** - * Check if there are no active render operations. - * - * @return bool - */ - public function doneRendering() - { - return $this->renderCount == 0; - } - - /** - * Add a location to the array of view locations. - * - * @param string $location - * @return void - */ - public function addLocation($location) - { - $this->finder->addLocation($location); - } - - /** - * Add a new namespace to the loader. - * - * @param string $namespace - * @param string|array $hints - * @return $this - */ - public function addNamespace($namespace, $hints) - { - $this->finder->addNamespace($namespace, $hints); - - return $this; - } - - /** - * Prepend a new namespace to the loader. - * - * @param string $namespace - * @param string|array $hints - * @return $this - */ - public function prependNamespace($namespace, $hints) - { - $this->finder->prependNamespace($namespace, $hints); - - return $this; - } - - /** - * Replace the namespace hints for the given namespace. - * - * @param string $namespace - * @param string|array $hints - * @return $this - */ - public function replaceNamespace($namespace, $hints) - { - $this->finder->replaceNamespace($namespace, $hints); - - return $this; - } - - /** - * Register a valid view extension and its engine. - * - * @param string $extension - * @param string $engine - * @param \Closure $resolver - * @return void - */ - public function addExtension($extension, $engine, $resolver = null) - { - $this->finder->addExtension($extension); - - if (isset($resolver)) { - $this->engines->register($engine, $resolver); - } - - unset($this->extensions[$extension]); - - $this->extensions = array_merge([$extension => $engine], $this->extensions); - } - - /** - * Flush all of the factory state like sections and stacks. - * - * @return void - */ - public function flushState() - { - $this->renderCount = 0; - - $this->flushSections(); - $this->flushStacks(); - } - - /** - * Flush all of the section contents if done rendering. - * - * @return void - */ - public function flushStateIfDoneRendering() - { - if ($this->doneRendering()) { - $this->flushState(); - } - } - - /** - * Get the extension to engine bindings. - * - * @return array - */ - public function getExtensions() - { - return $this->extensions; - } - - /** - * Get the engine resolver instance. - * - * @return \Illuminate\View\Engines\EngineResolver - */ - public function getEngineResolver() - { - return $this->engines; - } - - /** - * Get the view finder instance. - * - * @return \Illuminate\View\ViewFinderInterface - */ - public function getFinder() - { - return $this->finder; - } - - /** - * Set the view finder instance. - * - * @param \Illuminate\View\ViewFinderInterface $finder - * @return void - */ - public function setFinder(ViewFinderInterface $finder) - { - $this->finder = $finder; - } - - /** - * Flush the cache of views located by the finder. - * - * @return void - */ - public function flushFinderCache() - { - $this->getFinder()->flush(); - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public function getDispatcher() - { - return $this->events; - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function setDispatcher(Dispatcher $events) - { - $this->events = $events; - } - - /** - * Get the IoC container instance. - * - * @return \Illuminate\Contracts\Container\Container - */ - public function getContainer() - { - return $this->container; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function setContainer(Container $container) - { - $this->container = $container; - } - - /** - * Get an item from the shared data. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function shared($key, $default = null) - { - return Arr::get($this->shared, $key, $default); - } - - /** - * Get all of the shared data for the environment. - * - * @return array - */ - public function getShared() - { - return $this->shared; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php b/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php deleted file mode 100755 index cf6bb8ef..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php +++ /dev/null @@ -1,298 +0,0 @@ -files = $files; - $this->paths = $paths; - - if (isset($extensions)) { - $this->extensions = $extensions; - } - } - - /** - * Get the fully qualified location of the view. - * - * @param string $name - * @return string - */ - public function find($name) - { - if (isset($this->views[$name])) { - return $this->views[$name]; - } - - if ($this->hasHintInformation($name = trim($name))) { - return $this->views[$name] = $this->findNamespacedView($name); - } - - return $this->views[$name] = $this->findInPaths($name, $this->paths); - } - - /** - * Get the path to a template with a named path. - * - * @param string $name - * @return string - */ - protected function findNamespacedView($name) - { - list($namespace, $view) = $this->parseNamespaceSegments($name); - - return $this->findInPaths($view, $this->hints[$namespace]); - } - - /** - * Get the segments of a template with a named path. - * - * @param string $name - * @return array - * - * @throws \InvalidArgumentException - */ - protected function parseNamespaceSegments($name) - { - $segments = explode(static::HINT_PATH_DELIMITER, $name); - - if (count($segments) != 2) { - throw new InvalidArgumentException("View [$name] has an invalid name."); - } - - if (! isset($this->hints[$segments[0]])) { - throw new InvalidArgumentException("No hint path defined for [{$segments[0]}]."); - } - - return $segments; - } - - /** - * Find the given view in the list of paths. - * - * @param string $name - * @param array $paths - * @return string - * - * @throws \InvalidArgumentException - */ - protected function findInPaths($name, $paths) - { - foreach ((array) $paths as $path) { - foreach ($this->getPossibleViewFiles($name) as $file) { - if ($this->files->exists($viewPath = $path.'/'.$file)) { - return $viewPath; - } - } - } - - throw new InvalidArgumentException("View [$name] not found."); - } - - /** - * Get an array of possible view files. - * - * @param string $name - * @return array - */ - protected function getPossibleViewFiles($name) - { - return array_map(function ($extension) use ($name) { - return str_replace('.', '/', $name).'.'.$extension; - }, $this->extensions); - } - - /** - * Add a location to the finder. - * - * @param string $location - * @return void - */ - public function addLocation($location) - { - $this->paths[] = $location; - } - - /** - * Prepend a location to the finder. - * - * @param string $location - * @return void - */ - public function prependLocation($location) - { - array_unshift($this->paths, $location); - } - - /** - * Add a namespace hint to the finder. - * - * @param string $namespace - * @param string|array $hints - * @return void - */ - public function addNamespace($namespace, $hints) - { - $hints = (array) $hints; - - if (isset($this->hints[$namespace])) { - $hints = array_merge($this->hints[$namespace], $hints); - } - - $this->hints[$namespace] = $hints; - } - - /** - * Prepend a namespace hint to the finder. - * - * @param string $namespace - * @param string|array $hints - * @return void - */ - public function prependNamespace($namespace, $hints) - { - $hints = (array) $hints; - - if (isset($this->hints[$namespace])) { - $hints = array_merge($hints, $this->hints[$namespace]); - } - - $this->hints[$namespace] = $hints; - } - - /** - * Replace the namespace hints for the given namespace. - * - * @param string $namespace - * @param string|array $hints - * @return void - */ - public function replaceNamespace($namespace, $hints) - { - $this->hints[$namespace] = (array) $hints; - } - - /** - * Register an extension with the view finder. - * - * @param string $extension - * @return void - */ - public function addExtension($extension) - { - if (($index = array_search($extension, $this->extensions)) !== false) { - unset($this->extensions[$index]); - } - - array_unshift($this->extensions, $extension); - } - - /** - * Returns whether or not the view name has any hint information. - * - * @param string $name - * @return bool - */ - public function hasHintInformation($name) - { - return strpos($name, static::HINT_PATH_DELIMITER) > 0; - } - - /** - * Flush the cache of located views. - * - * @return void - */ - public function flush() - { - $this->views = []; - } - - /** - * Get the filesystem instance. - * - * @return \Illuminate\Filesystem\Filesystem - */ - public function getFilesystem() - { - return $this->files; - } - - /** - * Get the active view paths. - * - * @return array - */ - public function getPaths() - { - return $this->paths; - } - - /** - * Get the namespace to file path hints. - * - * @return array - */ - public function getHints() - { - return $this->hints; - } - - /** - * Get registered extensions. - * - * @return array - */ - public function getExtensions() - { - return $this->extensions; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php b/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php deleted file mode 100644 index 618b7dd4..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php +++ /dev/null @@ -1,51 +0,0 @@ -view = $view; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - // If the current session has an "errors" variable bound to it, we will share - // its value with all view instances so the views can easily access errors - // without having to bind. An empty bag is set when there aren't errors. - $this->view->share( - 'errors', $request->session()->get('errors') ?: new ViewErrorBag - ); - - // Putting the errors in the view for every view allows the developer to just - // assume that some errors are always available, which is convenient since - // they don't have to continually run checks for the presence of errors. - - return $next($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/View.php b/vendor/laravel/framework/src/Illuminate/View/View.php deleted file mode 100755 index 496eb6cb..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/View.php +++ /dev/null @@ -1,414 +0,0 @@ -view = $view; - $this->path = $path; - $this->engine = $engine; - $this->factory = $factory; - - $this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data; - } - - /** - * Get the string contents of the view. - * - * @param callable|null $callback - * @return string - * - * @throws \Throwable - */ - public function render(callable $callback = null) - { - try { - $contents = $this->renderContents(); - - $response = isset($callback) ? call_user_func($callback, $this, $contents) : null; - - // Once we have the contents of the view, we will flush the sections if we are - // done rendering all views so that there is nothing left hanging over when - // another view gets rendered in the future by the application developer. - $this->factory->flushStateIfDoneRendering(); - - return ! is_null($response) ? $response : $contents; - } catch (Exception $e) { - $this->factory->flushState(); - - throw $e; - } catch (Throwable $e) { - $this->factory->flushState(); - - throw $e; - } - } - - /** - * Get the contents of the view instance. - * - * @return string - */ - protected function renderContents() - { - // We will keep track of the amount of views being rendered so we can flush - // the section after the complete rendering operation is done. This will - // clear out the sections for any separate views that may be rendered. - $this->factory->incrementRender(); - - $this->factory->callComposer($this); - - $contents = $this->getContents(); - - // Once we've finished rendering the view, we'll decrement the render count - // so that each sections get flushed out next time a view is created and - // no old sections are staying around in the memory of an environment. - $this->factory->decrementRender(); - - return $contents; - } - - /** - * Get the evaluated contents of the view. - * - * @return string - */ - protected function getContents() - { - return $this->engine->get($this->path, $this->gatherData()); - } - - /** - * Get the data bound to the view instance. - * - * @return array - */ - protected function gatherData() - { - $data = array_merge($this->factory->getShared(), $this->data); - - foreach ($data as $key => $value) { - if ($value instanceof Renderable) { - $data[$key] = $value->render(); - } - } - - return $data; - } - - /** - * Get the sections of the rendered view. - * - * @return string - */ - public function renderSections() - { - return $this->render(function () { - return $this->factory->getSections(); - }); - } - - /** - * Add a piece of data to the view. - * - * @param string|array $key - * @param mixed $value - * @return $this - */ - public function with($key, $value = null) - { - if (is_array($key)) { - $this->data = array_merge($this->data, $key); - } else { - $this->data[$key] = $value; - } - - return $this; - } - - /** - * Add a view instance to the view data. - * - * @param string $key - * @param string $view - * @param array $data - * @return $this - */ - public function nest($key, $view, array $data = []) - { - return $this->with($key, $this->factory->make($view, $data)); - } - - /** - * Add validation errors to the view. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array $provider - * @return $this - */ - public function withErrors($provider) - { - $this->with('errors', $this->formatErrors($provider)); - - return $this; - } - - /** - * Format the given message provider into a MessageBag. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array $provider - * @return \Illuminate\Support\MessageBag - */ - protected function formatErrors($provider) - { - return $provider instanceof MessageProvider - ? $provider->getMessageBag() : new MessageBag((array) $provider); - } - - /** - * Get the name of the view. - * - * @return string - */ - public function name() - { - return $this->getName(); - } - - /** - * Get the name of the view. - * - * @return string - */ - public function getName() - { - return $this->view; - } - - /** - * Get the array of view data. - * - * @return array - */ - public function getData() - { - return $this->data; - } - - /** - * Get the path to the view file. - * - * @return string - */ - public function getPath() - { - return $this->path; - } - - /** - * Set the path to the view. - * - * @param string $path - * @return void - */ - public function setPath($path) - { - $this->path = $path; - } - - /** - * Get the view factory instance. - * - * @return \Illuminate\View\Factory - */ - public function getFactory() - { - return $this->factory; - } - - /** - * Get the view's rendering engine. - * - * @return \Illuminate\Contracts\View\Engine - */ - public function getEngine() - { - return $this->engine; - } - - /** - * Determine if a piece of data is bound. - * - * @param string $key - * @return bool - */ - public function offsetExists($key) - { - return array_key_exists($key, $this->data); - } - - /** - * Get a piece of bound data to the view. - * - * @param string $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->data[$key]; - } - - /** - * Set a piece of data on the view. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->with($key, $value); - } - - /** - * Unset a piece of data from the view. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - unset($this->data[$key]); - } - - /** - * Get a piece of data from the view. - * - * @param string $key - * @return mixed - */ - public function &__get($key) - { - return $this->data[$key]; - } - - /** - * Set a piece of data on the view. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this->with($key, $value); - } - - /** - * Check if a piece of data is bound to the view. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return isset($this->data[$key]); - } - - /** - * Remove a piece of bound data from the view. - * - * @param string $key - * @return bool - */ - public function __unset($key) - { - unset($this->data[$key]); - } - - /** - * Dynamically bind parameters to the view. - * - * @param string $method - * @param array $parameters - * @return \Illuminate\View\View - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (! Str::startsWith($method, 'with')) { - throw new BadMethodCallException("Method [$method] does not exist on view."); - } - - return $this->with(Str::camel(substr($method, 4)), $parameters[0]); - } - - /** - * Get the string contents of the view. - * - * @return string - */ - public function __toString() - { - return $this->render(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php b/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php deleted file mode 100755 index 49d609ea..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php +++ /dev/null @@ -1,71 +0,0 @@ -registerFactory(); - - $this->registerViewFinder(); - - $this->registerEngineResolver(); - } - - /** - * Register the view environment. - * - * @return void - */ - public function registerFactory() - { - $this->app->singleton('view', function ($app) { - // Next we need to grab the engine resolver instance that will be used by the - // environment. The resolver will be used by an environment to get each of - // the various engine implementations such as plain PHP or Blade engine. - $resolver = $app['view.engine.resolver']; - - $finder = $app['view.finder']; - - $factory = $this->createFactory($resolver, $finder, $app['events']); - - // We will also set the container instance on this view environment since the - // view composers may be classes registered in the container, which allows - // for great testable, flexible composers for the application developer. - $factory->setContainer($app); - - $factory->share('app', $app); - - return $factory; - }); - } - - /** - * Create a new Factory Instance. - * - * @param \Illuminate\View\Engines\EngineResolver $resolver - * @param \Illuminate\View\ViewFinderInterface $finder - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return \Illuminate\View\Factory - */ - protected function createFactory($resolver, $finder, $events) - { - return new Factory($resolver, $finder, $events); - } - - /** - * Register the view finder implementation. - * - * @return void - */ - public function registerViewFinder() - { - $this->app->bind('view.finder', function ($app) { - return new FileViewFinder($app['files'], $app['config']['view.paths']); - }); - } - - /** - * Register the engine resolver instance. - * - * @return void - */ - public function registerEngineResolver() - { - $this->app->singleton('view.engine.resolver', function () { - $resolver = new EngineResolver; - - // Next, we will register the various view engines with the resolver so that the - // environment will resolve the engines needed for various views based on the - // extension of view file. We call a method for each of the view's engines. - foreach (['file', 'php', 'blade'] as $engine) { - $this->{'register'.ucfirst($engine).'Engine'}($resolver); - } - - return $resolver; - }); - } - - /** - * Register the file engine implementation. - * - * @param \Illuminate\View\Engines\EngineResolver $resolver - * @return void - */ - public function registerFileEngine($resolver) - { - $resolver->register('file', function () { - return new FileEngine; - }); - } - - /** - * Register the PHP engine implementation. - * - * @param \Illuminate\View\Engines\EngineResolver $resolver - * @return void - */ - public function registerPhpEngine($resolver) - { - $resolver->register('php', function () { - return new PhpEngine; - }); - } - - /** - * Register the Blade engine implementation. - * - * @param \Illuminate\View\Engines\EngineResolver $resolver - * @return void - */ - public function registerBladeEngine($resolver) - { - // The Compiler engine requires an instance of the CompilerInterface, which in - // this case will be the Blade compiler, so we'll first create the compiler - // instance to pass into the engine so it can compile the views properly. - $this->app->singleton('blade.compiler', function () { - return new BladeCompiler( - $this->app['files'], $this->app['config']['view.compiled'] - ); - }); - - $resolver->register('blade', function () { - return new CompilerEngine($this->app['blade.compiler']); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/composer.json b/vendor/laravel/framework/src/Illuminate/View/composer.json deleted file mode 100644 index 142c7559..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "illuminate/view", - "description": "The Illuminate View package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=7.0", - "illuminate/container": "5.5.*", - "illuminate/contracts": "5.5.*", - "illuminate/events": "5.5.*", - "illuminate/filesystem": "5.5.*", - "illuminate/support": "5.5.*", - "symfony/debug": "~3.3" - }, - "autoload": { - "psr-4": { - "Illuminate\\View\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/tinker/LICENSE.txt b/vendor/laravel/tinker/LICENSE.txt deleted file mode 100644 index 1ce59636..00000000 --- a/vendor/laravel/tinker/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/laravel/tinker/README.md b/vendor/laravel/tinker/README.md deleted file mode 100644 index bf2cb4cb..00000000 --- a/vendor/laravel/tinker/README.md +++ /dev/null @@ -1,36 +0,0 @@ -

- -

-Build Status -Total Downloads -Latest Stable Version -License -

- -## Introduction - -Laravel Tinker is a powerful REPL for the Laravel framework. - -## Installation - -To get started with Laravel Tinker, simply run: - - composer require laravel/tinker - -If you are using Laravel 5.5+, there is no need to manually register the service provider. However, if you are using an earlier version of Laravel, register the `TinkerServiceProvider` in your `app` configuration file: - -```php -'providers' => [ - // Other service providers... - - Laravel\Tinker\TinkerServiceProvider::class, -], -``` - -## Basic Usage - -From your console, execute the `php artisan tinker` command. - -## License - -Laravel Tinker is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT) diff --git a/vendor/laravel/tinker/composer.json b/vendor/laravel/tinker/composer.json deleted file mode 100644 index 82a9ebc9..00000000 --- a/vendor/laravel/tinker/composer.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "laravel/tinker", - "description": "Powerful REPL for the Laravel framework.", - "keywords": ["tinker", "repl", "psysh", "laravel"], - "license": "MIT", - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=5.5.9", - "illuminate/console": "~5.1", - "illuminate/contracts": "~5.1", - "illuminate/support": "~5.1", - "psy/psysh": "0.7.*|0.8.*", - "symfony/var-dumper": "~3.0|~4.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "autoload": { - "psr-4": { - "Laravel\\Tinker\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" - ] - } - }, - "config": { - "sort-packages": true - }, - "suggest": { - "illuminate/database": "The Illuminate Database package (~5.1)." - } -} diff --git a/vendor/laravel/tinker/src/ClassAliasAutoloader.php b/vendor/laravel/tinker/src/ClassAliasAutoloader.php deleted file mode 100644 index cac8adb1..00000000 --- a/vendor/laravel/tinker/src/ClassAliasAutoloader.php +++ /dev/null @@ -1,108 +0,0 @@ -shell = $shell; - - $vendorPath = dirname(dirname($classMapPath)); - - $classes = require $classMapPath; - - foreach ($classes as $class => $path) { - if (! Str::contains($class, '\\') || Str::startsWith($path, $vendorPath)) { - continue; - } - - $name = class_basename($class); - - if (! isset($this->classes[$name])) { - $this->classes[$name] = $class; - } - } - } - - /** - * Find the closest class by name. - * - * @param string $class - * @return void - */ - public function aliasClass($class) - { - if (Str::contains($class, '\\')) { - return; - } - - $fullName = isset($this->classes[$class]) - ? $this->classes[$class] - : false; - - if ($fullName) { - $this->shell->writeStdout("[!] Aliasing '{$class}' to '{$fullName}' for this Tinker session.\n"); - - class_alias($fullName, $class); - } - } - - /** - * Unregister the alias loader instance. - * - * @return void - */ - public function unregister() - { - spl_autoload_unregister([$this, 'aliasClass']); - } - - /** - * Handle the destruction of the instance. - * - * @return void - */ - public function __destruct() - { - $this->unregister(); - } -} diff --git a/vendor/laravel/tinker/src/Console/TinkerCommand.php b/vendor/laravel/tinker/src/Console/TinkerCommand.php deleted file mode 100644 index c95f699f..00000000 --- a/vendor/laravel/tinker/src/Console/TinkerCommand.php +++ /dev/null @@ -1,119 +0,0 @@ -getApplication()->setCatchExceptions(false); - - $config = new Configuration([ - 'updateCheck' => 'never' - ]); - - $config->getPresenter()->addCasters( - $this->getCasters() - ); - - $shell = new Shell($config); - $shell->addCommands($this->getCommands()); - $shell->setIncludes($this->argument('include')); - - $path = $this->getLaravel()->basePath('vendor/composer/autoload_classmap.php'); - - $loader = ClassAliasAutoloader::register($shell, $path); - - try { - $shell->run(); - } finally { - $loader->unregister(); - } - } - - /** - * Get artisan commands to pass through to PsySH. - * - * @return array - */ - protected function getCommands() - { - $commands = []; - - foreach ($this->getApplication()->all() as $name => $command) { - if (in_array($name, $this->commandWhitelist)) { - $commands[] = $command; - } - } - - return $commands; - } - - /** - * Get an array of Laravel tailored casters. - * - * @return array - */ - protected function getCasters() - { - $casters = [ - 'Illuminate\Support\Collection' => 'Laravel\Tinker\TinkerCaster::castCollection', - ]; - - if (class_exists('Illuminate\Database\Eloquent\Model')) { - $casters['Illuminate\Database\Eloquent\Model'] = 'Laravel\Tinker\TinkerCaster::castModel'; - } - - if (class_exists('Illuminate\Foundation\Application')) { - $casters['Illuminate\Foundation\Application'] = 'Laravel\Tinker\TinkerCaster::castApplication'; - } - - return $casters; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['include', InputArgument::IS_ARRAY, 'Include file(s) before starting tinker'], - ]; - } -} diff --git a/vendor/laravel/tinker/src/TinkerCaster.php b/vendor/laravel/tinker/src/TinkerCaster.php deleted file mode 100644 index 42862e37..00000000 --- a/vendor/laravel/tinker/src/TinkerCaster.php +++ /dev/null @@ -1,95 +0,0 @@ -$property(); - - if (! is_null($val)) { - $results[Caster::PREFIX_VIRTUAL.$property] = $val; - } - } catch (Exception $e) { - // - } - } - - return $results; - } - - /** - * Get an array representing the properties of a collection. - * - * @param \Illuminate\Support\Collection $collection - * @return array - */ - public static function castCollection($collection) - { - return [ - Caster::PREFIX_VIRTUAL.'all' => $collection->all(), - ]; - } - - /** - * Get an array representing the properties of a model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return array - */ - public static function castModel($model) - { - $attributes = array_merge( - $model->getAttributes(), $model->getRelations() - ); - - $visible = array_flip( - $model->getVisible() ?: array_diff(array_keys($attributes), $model->getHidden()) - ); - - $results = []; - - foreach (array_intersect_key($attributes, $visible) as $key => $value) { - $results[(isset($visible[$key]) ? Caster::PREFIX_VIRTUAL : Caster::PREFIX_PROTECTED).$key] = $value; - } - - return $results; - } -} diff --git a/vendor/laravel/tinker/src/TinkerServiceProvider.php b/vendor/laravel/tinker/src/TinkerServiceProvider.php deleted file mode 100644 index c4101b9e..00000000 --- a/vendor/laravel/tinker/src/TinkerServiceProvider.php +++ /dev/null @@ -1,40 +0,0 @@ -app->singleton('command.tinker', function () { - return new TinkerCommand; - }); - - $this->commands(['command.tinker']); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['command.tinker']; - } -} diff --git a/vendor/laravelcollective/html/CONTRIBUTING.md b/vendor/laravelcollective/html/CONTRIBUTING.md deleted file mode 100755 index 2cbf8251..00000000 --- a/vendor/laravelcollective/html/CONTRIBUTING.md +++ /dev/null @@ -1,3 +0,0 @@ -# Laravel Contribution Guide - -Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](http://laravel.com/docs/contributions). Please review the entire guide before sending a pull request. diff --git a/vendor/laravelcollective/html/LICENSE.txt b/vendor/laravelcollective/html/LICENSE.txt deleted file mode 100644 index 40cd6a3a..00000000 --- a/vendor/laravelcollective/html/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/laravelcollective/html/composer.json b/vendor/laravelcollective/html/composer.json deleted file mode 100755 index 71bdd810..00000000 --- a/vendor/laravelcollective/html/composer.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "laravelcollective/html", - "description": "HTML and Form Builders for the Laravel Framework", - "license": "MIT", - "homepage": "http://laravelcollective.com", - "support": { - "issues": "https://github.com/LaravelCollective/html/issues", - "source": "https://github.com/LaravelCollective/html" - }, - "authors": [ - { - "name": "Adam Engebretson", - "email": "adam@laravelcollective.com" - }, - { - "name": "Taylor Otwell", - "email": "taylorotwell@gmail.com" - } - ], - "require": { - "php": ">=7.0.0", - "illuminate/http": "5.5.*", - "illuminate/routing": "5.5.*", - "illuminate/session": "5.5.*", - "illuminate/support": "5.5.*", - "illuminate/view": "5.5.*" - }, - "require-dev": { - "illuminate/database": "5.5.*", - "mockery/mockery": "~0.9.4", - "phpunit/phpunit": "~5.4" - }, - "autoload": { - "psr-4": { - "Collective\\Html\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "extra": { - "laravel": { - "providers": [ - "Collective\\Html\\HtmlServiceProvider" - ], - "aliases": { - "Form": "Collective\\Html\\FormFacade", - "Html": "Collective\\Html\\HtmlFacade" - } - } - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/vendor/laravelcollective/html/readme.md b/vendor/laravelcollective/html/readme.md deleted file mode 100644 index 4d3d9e1a..00000000 --- a/vendor/laravelcollective/html/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Forms & HTML - -[![Build Status](https://travis-ci.org/LaravelCollective/html.svg)](https://travis-ci.org/LaravelCollective/html) -[![Total Downloads](https://poser.pugx.org/LaravelCollective/html/downloads)](https://packagist.org/packages/laravelcollective/html) -[![Latest Stable Version](https://poser.pugx.org/LaravelCollective/html/v/stable.svg)](https://packagist.org/packages/laravelcollective/html) -[![Latest Unstable Version](https://poser.pugx.org/LaravelCollective/html/v/unstable.svg)](https://packagist.org/packages/laravelcollective/html) -[![License](https://poser.pugx.org/LaravelCollective/html/license.svg)](https://packagist.org/packages/laravelcollective/html) - -Official documentation for Forms & Html for The Laravel Framework can be found at the [LaravelCollective](http://laravelcollective.com) website. diff --git a/vendor/laravelcollective/html/src/Componentable.php b/vendor/laravelcollective/html/src/Componentable.php deleted file mode 100644 index a0a364b4..00000000 --- a/vendor/laravelcollective/html/src/Componentable.php +++ /dev/null @@ -1,110 +0,0 @@ -getComponentData($component['signature'], $arguments); - - return new HtmlString( - $this->view->make($component['view'], $data)->render() - ); - } - - /** - * Prepare the component data, while respecting provided defaults. - * - * @param array $signature - * @param array $arguments - * - * @return array - */ - protected function getComponentData(array $signature, array $arguments) - { - $data = []; - - $i = 0; - foreach ($signature as $variable => $default) { - // If the "variable" value is actually a numeric key, we can assume that - // no default had been specified for the component argument and we'll - // just use null instead, so that we can treat them all the same. - if (is_numeric($variable)) { - $variable = $default; - $default = null; - } - - $data[$variable] = array_get($arguments, $i, $default); - - $i++; - } - - return $data; - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * - * @return \Illuminate\Contracts\View\View|mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasComponent($method)) { - return $this->renderComponent($method, $parameters); - } - - throw new BadMethodCallException("Method {$method} does not exist."); - } -} diff --git a/vendor/laravelcollective/html/src/Eloquent/FormAccessible.php b/vendor/laravelcollective/html/src/Eloquent/FormAccessible.php deleted file mode 100644 index de1c1916..00000000 --- a/vendor/laravelcollective/html/src/Eloquent/FormAccessible.php +++ /dev/null @@ -1,119 +0,0 @@ -getAttributeFromArray($key); - - // If the attribute is listed as a date, we will convert it to a DateTime - // instance on retrieval, which makes it quite convenient to work with - // date fields without having to create a mutator for each property. - if (in_array($key, $this->getDates())) { - if (! is_null($value)) { - $value = $this->asDateTime($value); - } - } - - // If the attribute has a get mutator, we will call that then return what - // it returns as the value, which is useful for transforming values on - // retrieval from the model to a form that is more useful for usage. - if ($this->hasFormMutator($key)) { - return $this->mutateFormAttribute($key, $value); - } - - $keys = explode('.', $key); - - if ($this->isNestedModel($keys[0])) { - $relatedModel = $this->getRelation($keys[0]); - - unset($keys[0]); - $key = implode('.', $keys); - - if ($this->hasFormMutator($key)) { - return $relatedModel->getFormValue($key); - } - - return data_get($relatedModel, $key); - } - - // No form mutator, let the model resolve this - return data_get($this, $key); - } - - /** - * Check for a nested model. - * - * @param string $key - * - * @return bool - */ - public function isNestedModel($key) - { - if (in_array($key, array_keys($this->getRelations()))) { - return true; - } - - return false; - } - - /** - * @param $key - * - * @return bool - */ - protected function hasFormMutator($key) - { - $methods = $this->getReflection()->getMethods(ReflectionMethod::IS_PUBLIC); - - $mutator = collect($methods) - ->first(function (ReflectionMethod $method) use ($key) { - return $method->getName() == 'form' . Str::studly($key) . 'Attribute'; - }); - - return (bool) $mutator; - } - - /** - * @param $key - * @param $value - * - * @return mixed - */ - private function mutateFormAttribute($key, $value) - { - return $this->{'form' . Str::studly($key) . 'Attribute'}($value); - } - - /** - * Get a ReflectionClass Instance - * @return ReflectionClass - */ - protected function getReflection() - { - if (! $this->reflection) { - $this->reflection = new ReflectionClass($this); - } - - return $this->reflection; - } -} diff --git a/vendor/laravelcollective/html/src/FormBuilder.php b/vendor/laravelcollective/html/src/FormBuilder.php deleted file mode 100644 index 2b69ac05..00000000 --- a/vendor/laravelcollective/html/src/FormBuilder.php +++ /dev/null @@ -1,1319 +0,0 @@ -url = $url; - $this->html = $html; - $this->view = $view; - $this->csrfToken = $csrfToken; - $this->request = $request; - } - - /** - * Open up a new HTML form. - * - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function open(array $options = []) - { - $method = array_get($options, 'method', 'post'); - - // We need to extract the proper method from the attributes. If the method is - // something other than GET or POST we'll use POST since we will spoof the - // actual method since forms don't support the reserved methods in HTML. - $attributes['method'] = $this->getMethod($method); - - $attributes['action'] = $this->getAction($options); - - $attributes['accept-charset'] = 'UTF-8'; - - // If the method is PUT, PATCH or DELETE we will need to add a spoofer hidden - // field that will instruct the Symfony request to pretend the method is a - // different method than it actually is, for convenience from the forms. - $append = $this->getAppendage($method); - - if (isset($options['files']) && $options['files']) { - $options['enctype'] = 'multipart/form-data'; - } - - // Finally we're ready to create the final form HTML field. We will attribute - // format the array of attributes. We will also add on the appendage which - // is used to spoof requests for this PUT, PATCH, etc. methods on forms. - $attributes = array_merge( - - $attributes, array_except($options, $this->reserved) - - ); - - // Finally, we will concatenate all of the attributes into a single string so - // we can build out the final form open statement. We'll also append on an - // extra value for the hidden _method field if it's needed for the form. - $attributes = $this->html->attributes($attributes); - - return $this->toHtmlString('' . $append); - } - - /** - * Create a new model based form builder. - * - * @param mixed $model - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function model($model, array $options = []) - { - $this->model = $model; - - return $this->open($options); - } - - /** - * Set the model instance on the form builder. - * - * @param mixed $model - * - * @return void - */ - public function setModel($model) - { - $this->model = $model; - } - - /** - * Close the current form. - * - * @return string - */ - public function close() - { - $this->labels = []; - - $this->model = null; - - return $this->toHtmlString(''); - } - - /** - * Generate a hidden field with the current CSRF token. - * - * @return string - */ - public function token() - { - $token = ! empty($this->csrfToken) ? $this->csrfToken : $this->session->token(); - - return $this->hidden('_token', $token); - } - - /** - * Create a form label element. - * - * @param string $name - * @param string $value - * @param array $options - * @param bool $escape_html - * - * @return \Illuminate\Support\HtmlString - */ - public function label($name, $value = null, $options = [], $escape_html = true) - { - $this->labels[] = $name; - - $options = $this->html->attributes($options); - - $value = $this->formatLabel($name, $value); - - if ($escape_html) { - $value = $this->html->entities($value); - } - - return $this->toHtmlString(''); - } - - /** - * Format the label value. - * - * @param string $name - * @param string|null $value - * - * @return string - */ - protected function formatLabel($name, $value) - { - return $value ?: ucwords(str_replace('_', ' ', $name)); - } - - /** - * Create a form input field. - * - * @param string $type - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function input($type, $name, $value = null, $options = []) - { - $this->type = $type; - - if (! isset($options['name'])) { - $options['name'] = $name; - } - - // We will get the appropriate value for the given field. We will look for the - // value in the session for the value in the old input data then we'll look - // in the model instance if one is set. Otherwise we will just use empty. - $id = $this->getIdAttribute($name, $options); - - if (! in_array($type, $this->skipValueTypes)) { - $value = $this->getValueAttribute($name, $value); - } - - // Once we have the type, value, and ID we can merge them into the rest of the - // attributes array so we can convert them into their HTML attribute format - // when creating the HTML element. Then, we will return the entire input. - $merge = compact('type', 'value', 'id'); - - $options = array_merge($options, $merge); - - return $this->toHtmlString('html->attributes($options) . '>'); - } - - /** - * Create a text input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function text($name, $value = null, $options = []) - { - return $this->input('text', $name, $value, $options); - } - - /** - * Create a password input field. - * - * @param string $name - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function password($name, $options = []) - { - return $this->input('password', $name, '', $options); - } - - /** - * Create a hidden input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function hidden($name, $value = null, $options = []) - { - return $this->input('hidden', $name, $value, $options); - } - - /** - * Create a search input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function search($name, $value = null, $options = []) - { - return $this->input('search', $name, $value, $options); - } - - /** - * Create an e-mail input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function email($name, $value = null, $options = []) - { - return $this->input('email', $name, $value, $options); - } - - /** - * Create a tel input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function tel($name, $value = null, $options = []) - { - return $this->input('tel', $name, $value, $options); - } - - /** - * Create a number input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function number($name, $value = null, $options = []) - { - return $this->input('number', $name, $value, $options); - } - - /** - * Create a date input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function date($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format('Y-m-d'); - } - - return $this->input('date', $name, $value, $options); - } - - /** - * Create a datetime input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function datetime($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format(DateTime::RFC3339); - } - - return $this->input('datetime', $name, $value, $options); - } - - /** - * Create a datetime-local input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function datetimeLocal($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format('Y-m-d\TH:i'); - } - - return $this->input('datetime-local', $name, $value, $options); - } - - /** - * Create a time input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function time($name, $value = null, $options = []) - { - return $this->input('time', $name, $value, $options); - } - - /** - * Create a url input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function url($name, $value = null, $options = []) - { - return $this->input('url', $name, $value, $options); - } - - /** - * Create a file input field. - * - * @param string $name - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function file($name, $options = []) - { - return $this->input('file', $name, null, $options); - } - - /** - * Create a textarea input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function textarea($name, $value = null, $options = []) - { - $this->type = 'textarea'; - - if (! isset($options['name'])) { - $options['name'] = $name; - } - - // Next we will look for the rows and cols attributes, as each of these are put - // on the textarea element definition. If they are not present, we will just - // assume some sane default values for these attributes for the developer. - $options = $this->setTextAreaSize($options); - - $options['id'] = $this->getIdAttribute($name, $options); - - $value = (string) $this->getValueAttribute($name, $value); - - unset($options['size']); - - // Next we will convert the attributes into a string form. Also we have removed - // the size attribute, as it was merely a short-cut for the rows and cols on - // the element. Then we'll create the final textarea elements HTML for us. - $options = $this->html->attributes($options); - - return $this->toHtmlString('' . e($value). ''); - } - - /** - * Set the text area size on the attributes. - * - * @param array $options - * - * @return array - */ - protected function setTextAreaSize($options) - { - if (isset($options['size'])) { - return $this->setQuickTextAreaSize($options); - } - - // If the "size" attribute was not specified, we will just look for the regular - // columns and rows attributes, using sane defaults if these do not exist on - // the attributes array. We'll then return this entire options array back. - $cols = array_get($options, 'cols', 50); - - $rows = array_get($options, 'rows', 10); - - return array_merge($options, compact('cols', 'rows')); - } - - /** - * Set the text area size using the quick "size" attribute. - * - * @param array $options - * - * @return array - */ - protected function setQuickTextAreaSize($options) - { - $segments = explode('x', $options['size']); - - return array_merge($options, ['cols' => $segments[0], 'rows' => $segments[1]]); - } - - /** - * Create a select box field. - * - * @param string $name - * @param array $list - * @param string $selected - * @param array $selectAttributes - * @param array $optionsAttributes - * - * @return \Illuminate\Support\HtmlString - */ - public function select( - $name, - $list = [], - $selected = null, - array $selectAttributes = [], - array $optionsAttributes = [] - ) { - $this->type = 'select'; - - // When building a select box the "value" attribute is really the selected one - // so we will use that when checking the model or session for a value which - // should provide a convenient method of re-populating the forms on post. - $selected = $this->getValueAttribute($name, $selected); - - $selectAttributes['id'] = $this->getIdAttribute($name, $selectAttributes); - - if (! isset($selectAttributes['name'])) { - $selectAttributes['name'] = $name; - } - - // We will simply loop through the options and build an HTML value for each of - // them until we have an array of HTML declarations. Then we will join them - // all together into one single HTML element that can be put on the form. - $html = []; - - if (isset($selectAttributes['placeholder'])) { - $html[] = $this->placeholderOption($selectAttributes['placeholder'], $selected); - unset($selectAttributes['placeholder']); - } - - foreach ($list as $value => $display) { - $optionAttributes = isset($optionsAttributes[$value]) ? $optionsAttributes[$value] : []; - $html[] = $this->getSelectOption($display, $value, $selected, $optionAttributes); - } - - // Once we have all of this HTML, we can join this into a single element after - // formatting the attributes into an HTML "attributes" string, then we will - // build out a final select statement, which will contain all the values. - $selectAttributes = $this->html->attributes($selectAttributes); - - $list = implode('', $html); - - return $this->toHtmlString("{$list}"); - } - - /** - * Create a select range field. - * - * @param string $name - * @param string $begin - * @param string $end - * @param string $selected - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function selectRange($name, $begin, $end, $selected = null, $options = []) - { - $range = array_combine($range = range($begin, $end), $range); - - return $this->select($name, $range, $selected, $options); - } - - /** - * Create a select year field. - * - * @param string $name - * @param string $begin - * @param string $end - * @param string $selected - * @param array $options - * - * @return mixed - */ - public function selectYear() - { - return call_user_func_array([$this, 'selectRange'], func_get_args()); - } - - /** - * Create a select month field. - * - * @param string $name - * @param string $selected - * @param array $options - * @param string $format - * - * @return \Illuminate\Support\HtmlString - */ - public function selectMonth($name, $selected = null, $options = [], $format = '%B') - { - $months = []; - - foreach (range(1, 12) as $month) { - $months[$month] = strftime($format, mktime(0, 0, 0, $month, 1)); - } - - return $this->select($name, $months, $selected, $options); - } - - /** - * Get the select option for the given value. - * - * @param string $display - * @param string $value - * @param string $selected - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function getSelectOption($display, $value, $selected, array $attributes = []) - { - if (is_array($display)) { - return $this->optionGroup($display, $value, $selected, $attributes); - } - - return $this->option($display, $value, $selected, $attributes); - } - - /** - * Create an option group form element. - * - * @param array $list - * @param string $label - * @param string $selected - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - protected function optionGroup($list, $label, $selected, array $attributes = []) - { - $html = []; - - foreach ($list as $value => $display) { - $html[] = $this->option($display, $value, $selected, $attributes); - } - - return $this->toHtmlString('' . implode('', $html) . ''); - } - - /** - * Create a select element option. - * - * @param string $display - * @param string $value - * @param string $selected - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - protected function option($display, $value, $selected, array $attributes = []) - { - $selected = $this->getSelectedValue($value, $selected); - - $options = ['value' => $value, 'selected' => $selected] + $attributes; - - return $this->toHtmlString('html->attributes($options) . '>' . e($display) . ''); - } - - /** - * Create a placeholder select element option. - * - * @param $display - * @param $selected - * - * @return \Illuminate\Support\HtmlString - */ - protected function placeholderOption($display, $selected) - { - $selected = $this->getSelectedValue(null, $selected); - - $options = [ - 'selected' => $selected, - 'value' => '', - ]; - - return $this->toHtmlString('html->attributes($options) . '>' . e($display) . ''); - } - - /** - * Determine if the value is selected. - * - * @param string $value - * @param string $selected - * - * @return null|string - */ - protected function getSelectedValue($value, $selected) - { - if (is_array($selected)) { - return in_array($value, $selected, true) || in_array((string) $value, $selected, true) ? 'selected' : null; - } elseif ($selected instanceof Collection) { - return $selected->contains($value) ? 'selected' : null; - } - - return ((string) $value == (string) $selected) ? 'selected' : null; - } - - /** - * Create a checkbox input field. - * - * @param string $name - * @param mixed $value - * @param bool $checked - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function checkbox($name, $value = 1, $checked = null, $options = []) - { - return $this->checkable('checkbox', $name, $value, $checked, $options); - } - - /** - * Create a radio button input field. - * - * @param string $name - * @param mixed $value - * @param bool $checked - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function radio($name, $value = null, $checked = null, $options = []) - { - if (is_null($value)) { - $value = $name; - } - - return $this->checkable('radio', $name, $value, $checked, $options); - } - - /** - * Create a checkable input field. - * - * @param string $type - * @param string $name - * @param mixed $value - * @param bool $checked - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - protected function checkable($type, $name, $value, $checked, $options) - { - $this->type = $type; - - $checked = $this->getCheckedState($type, $name, $value, $checked); - - if ($checked) { - $options['checked'] = 'checked'; - } - - return $this->input($type, $name, $value, $options); - } - - /** - * Get the check state for a checkable input. - * - * @param string $type - * @param string $name - * @param mixed $value - * @param bool $checked - * - * @return bool - */ - protected function getCheckedState($type, $name, $value, $checked) - { - switch ($type) { - case 'checkbox': - return $this->getCheckboxCheckedState($name, $value, $checked); - - case 'radio': - return $this->getRadioCheckedState($name, $value, $checked); - - default: - return $this->getValueAttribute($name) == $value; - } - } - - /** - * Get the check state for a checkbox input. - * - * @param string $name - * @param mixed $value - * @param bool $checked - * - * @return bool - */ - protected function getCheckboxCheckedState($name, $value, $checked) - { - $request = $this->request($name); - - if (isset($this->session) && ! $this->oldInputIsEmpty() && is_null($this->old($name)) && !$request) { - return false; - } - - if ($this->missingOldAndModel($name) && !$request) { - return $checked; - } - - $posted = $this->getValueAttribute($name, $checked); - - if (is_array($posted)) { - return in_array($value, $posted); - } elseif ($posted instanceof Collection) { - return $posted->contains('id', $value); - } else { - return (bool) $posted; - } - } - - /** - * Get the check state for a radio input. - * - * @param string $name - * @param mixed $value - * @param bool $checked - * - * @return bool - */ - protected function getRadioCheckedState($name, $value, $checked) - { - $request = $this->request($name); - - if ($this->missingOldAndModel($name) && !$request) { - return $checked; - } - - return $this->getValueAttribute($name) == $value; - } - - /** - * Determine if old input or model input exists for a key. - * - * @param string $name - * - * @return bool - */ - protected function missingOldAndModel($name) - { - return (is_null($this->old($name)) && is_null($this->getModelValueAttribute($name))); - } - - /** - * Create a HTML reset input element. - * - * @param string $value - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function reset($value, $attributes = []) - { - return $this->input('reset', null, $value, $attributes); - } - - /** - * Create a HTML image input element. - * - * @param string $url - * @param string $name - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function image($url, $name = null, $attributes = []) - { - $attributes['src'] = $this->url->asset($url); - - return $this->input('image', $name, null, $attributes); - } - - /** - * Create a color input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function color($name, $value = null, $options = []) - { - return $this->input('color', $name, $value, $options); - } - - /** - * Create a submit button element. - * - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function submit($value = null, $options = []) - { - return $this->input('submit', null, $value, $options); - } - - /** - * Create a button element. - * - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function button($value = null, $options = []) - { - if (! array_key_exists('type', $options)) { - $options['type'] = 'button'; - } - - return $this->toHtmlString('html->attributes($options) . '>' . $value . ''); - } - - /** - * Parse the form action method. - * - * @param string $method - * - * @return string - */ - protected function getMethod($method) - { - $method = strtoupper($method); - - return $method != 'GET' ? 'POST' : $method; - } - - /** - * Get the form action from the options. - * - * @param array $options - * - * @return string - */ - protected function getAction(array $options) - { - // We will also check for a "route" or "action" parameter on the array so that - // developers can easily specify a route or controller action when creating - // a form providing a convenient interface for creating the form actions. - if (isset($options['url'])) { - return $this->getUrlAction($options['url']); - } - - if (isset($options['route'])) { - return $this->getRouteAction($options['route']); - } - - // If an action is available, we are attempting to open a form to a controller - // action route. So, we will use the URL generator to get the path to these - // actions and return them from the method. Otherwise, we'll use current. - elseif (isset($options['action'])) { - return $this->getControllerAction($options['action']); - } - - return $this->url->current(); - } - - /** - * Get the action for a "url" option. - * - * @param array|string $options - * - * @return string - */ - protected function getUrlAction($options) - { - if (is_array($options)) { - return $this->url->to($options[0], array_slice($options, 1)); - } - - return $this->url->to($options); - } - - /** - * Get the action for a "route" option. - * - * @param array|string $options - * - * @return string - */ - protected function getRouteAction($options) - { - if (is_array($options)) { - return $this->url->route($options[0], array_slice($options, 1)); - } - - return $this->url->route($options); - } - - /** - * Get the action for an "action" option. - * - * @param array|string $options - * - * @return string - */ - protected function getControllerAction($options) - { - if (is_array($options)) { - return $this->url->action($options[0], array_slice($options, 1)); - } - - return $this->url->action($options); - } - - /** - * Get the form appendage for the given method. - * - * @param string $method - * - * @return string - */ - protected function getAppendage($method) - { - list($method, $appendage) = [strtoupper($method), '']; - - // If the HTTP method is in this list of spoofed methods, we will attach the - // method spoofer hidden input to the form. This allows us to use regular - // form to initiate PUT and DELETE requests in addition to the typical. - if (in_array($method, $this->spoofedMethods)) { - $appendage .= $this->hidden('_method', $method); - } - - // If the method is something other than GET we will go ahead and attach the - // CSRF token to the form, as this can't hurt and is convenient to simply - // always have available on every form the developers creates for them. - if ($method != 'GET') { - $appendage .= $this->token(); - } - - return $appendage; - } - - /** - * Get the ID attribute for a field name. - * - * @param string $name - * @param array $attributes - * - * @return string - */ - public function getIdAttribute($name, $attributes) - { - if (array_key_exists('id', $attributes)) { - return $attributes['id']; - } - - if (in_array($name, $this->labels)) { - return $name; - } - } - - /** - * Get the value that should be assigned to the field. - * - * @param string $name - * @param string $value - * - * @return mixed - */ - public function getValueAttribute($name, $value = null) - { - if (is_null($name)) { - return $value; - } - - $old = $this->old($name); - - if (! is_null($old) && $name != '_method') { - return $old; - } - - if (function_exists('app')) { - $hasNullMiddleware = app("Illuminate\Contracts\Http\Kernel") - ->hasMiddleware(ConvertEmptyStringsToNull::class); - - if ($hasNullMiddleware - && is_null($old) - && is_null($value) - && !is_null($this->view->shared('errors')) - && count($this->view->shared('errors')) > 0 - ) { - return null; - } - } - - $request = $this->request($name); - if (!is_null($request)) { - return $request; - } - - if (! is_null($value)) { - return $value; - } - - if (isset($this->model)) { - return $this->getModelValueAttribute($name); - } - } - - /** - * Get value from current Request - * @param $name - * @return array|null|string - */ - protected function request($name) - { - if (!isset($this->request)) { - return null; - } - - return $this->request->input($this->transformKey($name)); - } - - /** - * Get the model value that should be assigned to the field. - * - * @param string $name - * - * @return mixed - */ - protected function getModelValueAttribute($name) - { - $key = $this->transformKey($name); - - if (method_exists($this->model, 'getFormValue')) { - return $this->model->getFormValue($key); - } - - return data_get($this->model, $this->transformKey($name)); - } - - /** - * Get a value from the session's old input. - * - * @param string $name - * - * @return mixed - */ - public function old($name) - { - if (isset($this->session)) { - $key = $this->transformKey($name); - $payload = $this->session->getOldInput($key); - - if (!is_array($payload)) { - return $payload; - } - - if (!in_array($this->type, ['select', 'checkbox'])) { - if (!isset($this->payload[$key])) { - $this->payload[$key] = collect($payload); - } - - if (!empty($this->payload[$key])) { - $value = $this->payload[$key]->shift(); - return $value; - } - } - - return $payload; - } - } - - /** - * Determine if the old input is empty. - * - * @return bool - */ - public function oldInputIsEmpty() - { - return (isset($this->session) && count($this->session->getOldInput()) == 0); - } - - /** - * Transform key from array to dot syntax. - * - * @param string $key - * - * @return mixed - */ - protected function transformKey($key) - { - return str_replace(['.', '[]', '[', ']'], ['_', '', '.', ''], $key); - } - - /** - * Transform the string to an Html serializable object - * - * @param $html - * - * @return \Illuminate\Support\HtmlString - */ - protected function toHtmlString($html) - { - return new HtmlString($html); - } - - /** - * Get the session store implementation. - * - * @return \Illuminate\Contracts\Session\Session $session - */ - public function getSessionStore() - { - return $this->session; - } - - /** - * Set the session store implementation. - * - * @param \Illuminate\Contracts\Session\Session $session - * - * @return $this - */ - public function setSessionStore(Session $session) - { - $this->session = $session; - - return $this; - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * - * @return \Illuminate\Contracts\View\View|mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasComponent($method)) { - return $this->componentCall($method, $parameters); - } - - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - throw new BadMethodCallException("Method {$method} does not exist."); - } -} diff --git a/vendor/laravelcollective/html/src/FormFacade.php b/vendor/laravelcollective/html/src/FormFacade.php deleted file mode 100644 index 24d2610e..00000000 --- a/vendor/laravelcollective/html/src/FormFacade.php +++ /dev/null @@ -1,22 +0,0 @@ -url = $url; - $this->view = $view; - } - - /** - * Convert an HTML string to entities. - * - * @param string $value - * - * @return string - */ - public function entities($value) - { - return htmlentities($value, ENT_QUOTES, 'UTF-8', false); - } - - /** - * Convert entities to HTML characters. - * - * @param string $value - * - * @return string - */ - public function decode($value) - { - return html_entity_decode($value, ENT_QUOTES, 'UTF-8'); - } - - /** - * Generate a link to a JavaScript file. - * - * @param string $url - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function script($url, $attributes = [], $secure = null) - { - $attributes['src'] = $this->url->asset($url, $secure); - - return $this->toHtmlString('attributes($attributes) . '>' . PHP_EOL); - } - - /** - * Generate a link to a CSS file. - * - * @param string $url - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function style($url, $attributes = [], $secure = null) - { - $defaults = ['media' => 'all', 'type' => 'text/css', 'rel' => 'stylesheet']; - - $attributes = $attributes + $defaults; - - $attributes['href'] = $this->url->asset($url, $secure); - - return $this->toHtmlString('attributes($attributes) . '>' . PHP_EOL); - } - - /** - * Generate an HTML image element. - * - * @param string $url - * @param string $alt - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function image($url, $alt = null, $attributes = [], $secure = null) - { - $attributes['alt'] = $alt; - - return $this->toHtmlString('attributes($attributes) . '>'); - } - - /** - * Generate a link to a Favicon file. - * - * @param string $url - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function favicon($url, $attributes = [], $secure = null) - { - $defaults = ['rel' => 'shortcut icon', 'type' => 'image/x-icon']; - - $attributes = $attributes + $defaults; - - $attributes['href'] = $this->url->asset($url, $secure); - - return $this->toHtmlString('attributes($attributes) . '>' . PHP_EOL); - } - - /** - * Generate a HTML link. - * - * @param string $url - * @param string $title - * @param array $attributes - * @param bool $secure - * @param bool $escape - * - * @return \Illuminate\Support\HtmlString - */ - public function link($url, $title = null, $attributes = [], $secure = null, $escape = true) - { - $url = $this->url->to($url, [], $secure); - - if (is_null($title) || $title === false) { - $title = $url; - } - - if ($escape) { - $title = $this->entities($title); - } - - return $this->toHtmlString('attributes($attributes) . '>' . $title . ''); - } - - /** - * Generate a HTTPS HTML link. - * - * @param string $url - * @param string $title - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function secureLink($url, $title = null, $attributes = []) - { - return $this->link($url, $title, $attributes, true); - } - - /** - * Generate a HTML link to an asset. - * - * @param string $url - * @param string $title - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function linkAsset($url, $title = null, $attributes = [], $secure = null) - { - $url = $this->url->asset($url, $secure); - - return $this->link($url, $title ?: $url, $attributes, $secure); - } - - /** - * Generate a HTTPS HTML link to an asset. - * - * @param string $url - * @param string $title - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function linkSecureAsset($url, $title = null, $attributes = []) - { - return $this->linkAsset($url, $title, $attributes, true); - } - - /** - * Generate a HTML link to a named route. - * - * @param string $name - * @param string $title - * @param array $parameters - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function linkRoute($name, $title = null, $parameters = [], $attributes = []) - { - return $this->link($this->url->route($name, $parameters), $title, $attributes); - } - - /** - * Generate a HTML link to a controller action. - * - * @param string $action - * @param string $title - * @param array $parameters - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function linkAction($action, $title = null, $parameters = [], $attributes = []) - { - return $this->link($this->url->action($action, $parameters), $title, $attributes); - } - - /** - * Generate a HTML link to an email address. - * - * @param string $email - * @param string $title - * @param array $attributes - * @param bool $escape - * - * @return \Illuminate\Support\HtmlString - */ - public function mailto($email, $title = null, $attributes = [], $escape = true) - { - $email = $this->email($email); - - $title = $title ?: $email; - - if ($escape) { - $title = $this->entities($title); - } - - $email = $this->obfuscate('mailto:') . $email; - - return $this->toHtmlString('attributes($attributes) . '>' . $title . ''); - } - - /** - * Obfuscate an e-mail address to prevent spam-bots from sniffing it. - * - * @param string $email - * - * @return string - */ - public function email($email) - { - return str_replace('@', '@', $this->obfuscate($email)); - } - - /** - * Generates non-breaking space entities based on number supplied. - * - * @param int $num - * - * @return string - */ - public function nbsp($num = 1) - { - return str_repeat(' ', $num); - } - - /** - * Generate an ordered list of items. - * - * @param array $list - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString|string - */ - public function ol($list, $attributes = []) - { - return $this->listing('ol', $list, $attributes); - } - - /** - * Generate an un-ordered list of items. - * - * @param array $list - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString|string - */ - public function ul($list, $attributes = []) - { - return $this->listing('ul', $list, $attributes); - } - - /** - * Generate a description list of items. - * - * @param array $list - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function dl(array $list, array $attributes = []) - { - $attributes = $this->attributes($attributes); - - $html = ""; - - foreach ($list as $key => $value) { - $value = (array) $value; - - $html .= "
$key
"; - - foreach ($value as $v_key => $v_value) { - $html .= "
$v_value
"; - } - } - - $html .= ''; - - return $this->toHtmlString($html); - } - - /** - * Create a listing HTML element. - * - * @param string $type - * @param array $list - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString|string - */ - protected function listing($type, $list, $attributes = []) - { - $html = ''; - - if (count($list) == 0) { - return $html; - } - - // Essentially we will just spin through the list and build the list of the HTML - // elements from the array. We will also handled nested lists in case that is - // present in the array. Then we will build out the final listing elements. - foreach ($list as $key => $value) { - $html .= $this->listingElement($key, $type, $value); - } - - $attributes = $this->attributes($attributes); - - return $this->toHtmlString("<{$type}{$attributes}>{$html}"); - } - - /** - * Create the HTML for a listing element. - * - * @param mixed $key - * @param string $type - * @param mixed $value - * - * @return string - */ - protected function listingElement($key, $type, $value) - { - if (is_array($value)) { - return $this->nestedListing($key, $type, $value); - } else { - return '
  • ' . e($value) . '
  • '; - } - } - - /** - * Create the HTML for a nested listing attribute. - * - * @param mixed $key - * @param string $type - * @param mixed $value - * - * @return string - */ - protected function nestedListing($key, $type, $value) - { - if (is_int($key)) { - return $this->listing($type, $value); - } else { - return '
  • ' . $key . $this->listing($type, $value) . '
  • '; - } - } - - /** - * Build an HTML attribute string from an array. - * - * @param array $attributes - * - * @return string - */ - public function attributes($attributes) - { - $html = []; - - foreach ((array) $attributes as $key => $value) { - $element = $this->attributeElement($key, $value); - - if (! is_null($element)) { - $html[] = $element; - } - } - - return count($html) > 0 ? ' ' . implode(' ', $html) : ''; - } - - /** - * Build a single attribute element. - * - * @param string $key - * @param string $value - * - * @return string - */ - protected function attributeElement($key, $value) - { - // For numeric keys we will assume that the value is a boolean attribute - // where the presence of the attribute represents a true value and the - // absence represents a false value. - // This will convert HTML attributes such as "required" to a correct - // form instead of using incorrect numerics. - if (is_numeric($key)) { - return $value; - } - - // Treat boolean attributes as HTML properties - if (is_bool($value) && $key != 'value') { - return $value ? $key : ''; - } - - if (! is_null($value)) { - return $key . '="' . e($value) . '"'; - } - } - - /** - * Obfuscate a string to prevent spam-bots from sniffing it. - * - * @param string $value - * - * @return string - */ - public function obfuscate($value) - { - $safe = ''; - - foreach (str_split($value) as $letter) { - if (ord($letter) > 128) { - return $letter; - } - - // To properly obfuscate the value, we will randomly convert each letter to - // its entity or hexadecimal representation, keeping a bot from sniffing - // the randomly obfuscated letters out of the string on the responses. - switch (rand(1, 3)) { - case 1: - $safe .= '&#' . ord($letter) . ';'; - break; - - case 2: - $safe .= '&#x' . dechex(ord($letter)) . ';'; - break; - - case 3: - $safe .= $letter; - } - } - - return $safe; - } - - /** - * Generate a meta tag. - * - * @param string $name - * @param string $content - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function meta($name, $content, array $attributes = []) - { - $defaults = compact('name', 'content'); - - $attributes = array_merge($defaults, $attributes); - - return $this->toHtmlString('attributes($attributes) . '>' . PHP_EOL); - } - - /** - * Generate an html tag. - * - * @param string $tag - * @param mixed $content - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function tag($tag, $content, array $attributes = []) - { - $content = is_array($content) ? implode(PHP_EOL, $content) : $content; - return $this->toHtmlString('<' . $tag . $this->attributes($attributes) . '>' . PHP_EOL . $this->toHtmlString($content) . PHP_EOL . '' . PHP_EOL); - } - - /** - * Transform the string to an Html serializable object - * - * @param $html - * - * @return \Illuminate\Support\HtmlString - */ - protected function toHtmlString($html) - { - return new HtmlString($html); - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * - * @return \Illuminate\Contracts\View\View|mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasComponent($method)) { - return $this->componentCall($method, $parameters); - } - - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - throw new BadMethodCallException("Method {$method} does not exist."); - } -} diff --git a/vendor/laravelcollective/html/src/HtmlFacade.php b/vendor/laravelcollective/html/src/HtmlFacade.php deleted file mode 100644 index 127cdc82..00000000 --- a/vendor/laravelcollective/html/src/HtmlFacade.php +++ /dev/null @@ -1,22 +0,0 @@ -registerHtmlBuilder(); - - $this->registerFormBuilder(); - - $this->app->alias('html', HtmlBuilder::class); - $this->app->alias('form', FormBuilder::class); - - $this->registerBladeDirectives(); - } - - /** - * Register the HTML builder instance. - * - * @return void - */ - protected function registerHtmlBuilder() - { - $this->app->singleton('html', function ($app) { - return new HtmlBuilder($app['url'], $app['view']); - }); - } - - /** - * Register the form builder instance. - * - * @return void - */ - protected function registerFormBuilder() - { - $this->app->singleton('form', function ($app) { - $form = new FormBuilder($app['html'], $app['url'], $app['view'], $app['session.store']->token(), $app['request']); - - return $form->setSessionStore($app['session.store']); - }); - } - - /** - * Register Blade directives. - * - * @return void - */ - protected function registerBladeDirectives() - { - $this->app->afterResolving('blade.compiler', function (BladeCompiler $bladeCompiler) { - $namespaces = [ - 'Html' => get_class_methods(HtmlBuilder::class), - 'Form' => get_class_methods(FormBuilder::class), - ]; - - foreach ($namespaces as $namespace => $methods) { - foreach ($methods as $method) { - if (in_array($method, $this->directives)) { - $snakeMethod = Str::snake($method); - $directive = strtolower($namespace).'_'.$snakeMethod; - - $bladeCompiler->directive($directive, function ($expression) use ($namespace, $method) { - return ""; - }); - } - } - } - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['html', 'form', HtmlBuilder::class, FormBuilder::class]; - } -} diff --git a/vendor/laravelcollective/html/src/helpers.php b/vendor/laravelcollective/html/src/helpers.php deleted file mode 100644 index 14f03610..00000000 --- a/vendor/laravelcollective/html/src/helpers.php +++ /dev/null @@ -1,70 +0,0 @@ -link($url, $title, $attributes, $secure, $escape); - } -} - -if (! function_exists('link_to_asset')) { - /** - * Generate a HTML link to an asset. - * - * @param string $url - * @param string $title - * @param array $attributes - * @param bool $secure - * - * @return string - */ - function link_to_asset($url, $title = null, $attributes = [], $secure = null) - { - return app('html')->linkAsset($url, $title, $attributes, $secure); - } -} - -if (! function_exists('link_to_route')) { - /** - * Generate a HTML link to a named route. - * - * @param string $name - * @param string $title - * @param array $parameters - * @param array $attributes - * - * @return string - */ - function link_to_route($name, $title = null, $parameters = [], $attributes = []) - { - return app('html')->linkRoute($name, $title, $parameters, $attributes); - } -} - -if (! function_exists('link_to_action')) { - /** - * Generate a HTML link to a controller action. - * - * @param string $action - * @param string $title - * @param array $parameters - * @param array $attributes - * - * @return string - */ - function link_to_action($action, $title = null, $parameters = [], $attributes = []) - { - return app('html')->linkAction($action, $title, $parameters, $attributes); - } -} diff --git a/vendor/league/flysystem/LICENSE b/vendor/league/flysystem/LICENSE deleted file mode 100644 index 0d16ccc9..00000000 --- a/vendor/league/flysystem/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013-2018 Frank de Jonge - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/league/flysystem/composer.json b/vendor/league/flysystem/composer.json deleted file mode 100644 index 6fc135c9..00000000 --- a/vendor/league/flysystem/composer.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "league/flysystem", - "description": "Filesystem abstraction: Many filesystems, one API.", - "keywords": [ - "filesystem", "filesystems", "files", "storage", "dropbox", "aws", - "abstraction", "s3", "ftp", "sftp", "remote", "webdav", - "file systems", "cloud", "cloud files", "rackspace", "copy.com" - ], - "license": "MIT", - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frenky.net" - } - ], - "require": { - "php": ">=5.5.9" - }, - "require-dev": { - "ext-fileinfo": "*", - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7" - }, - "autoload": { - "psr-4": { - "League\\Flysystem\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "League\\Flysystem\\Stub\\": "stub/" - }, - "files": [ - "tests/PHPUnitHacks.php" - ] - }, - "suggest": { - "ext-fileinfo": "Required for MimeType", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter" - }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" - }, - "config": { - "bin-dir": "bin" - }, - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - } -} diff --git a/vendor/league/flysystem/docs/.gitignore b/vendor/league/flysystem/docs/.gitignore deleted file mode 100644 index 2ebd62b2..00000000 --- a/vendor/league/flysystem/docs/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -_site -Gemfile -Gemfile.lock \ No newline at end of file diff --git a/vendor/league/flysystem/docs/CNAME b/vendor/league/flysystem/docs/CNAME deleted file mode 100644 index 04aac36c..00000000 --- a/vendor/league/flysystem/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -flysystem.thephpleague.com \ No newline at end of file diff --git a/vendor/league/flysystem/docs/_data/images.yml b/vendor/league/flysystem/docs/_data/images.yml deleted file mode 100644 index 5583e4b6..00000000 --- a/vendor/league/flysystem/docs/_data/images.yml +++ /dev/null @@ -1,8 +0,0 @@ -# Path to project specific favicon.ico, leave blank to use default -favicon: - -# Path to project specific apple-touch-icon-precomposed.png, leave blank to use default -apple_touch: - -# Path to project logo -logo: diff --git a/vendor/league/flysystem/docs/_data/menu.yml b/vendor/league/flysystem/docs/_data/menu.yml deleted file mode 100644 index 8260f928..00000000 --- a/vendor/league/flysystem/docs/_data/menu.yml +++ /dev/null @@ -1,32 +0,0 @@ -Getting Started: - Introduction: '/' - Installation: '/installation/' - Sponsors: '/sponsors/' - Integrations: '/integrations/' - Core concepts: '/core-concepts/' - The API: '/api/' - Mount Manager: '/mount-manager/' - Caching: '/caching/' - Recipes: '/recipes/' - Plugins: '/plugins/' - Upgrade to 1.0.0: '/upgrade-to-1.0.0/' - Creating an adapter: '/creating-an-adapter/' - Performance: '/performance/' -Adapters: - Local: '/adapter/local/' - Azure: '/adapter/azure/' - AWS S3 V2: '/adapter/aws-s3-v2/' - AWS S3 V3: '/adapter/aws-s3-v3/' - Copy.com: '/adapter/copy/' - DigitalOcean Spaces: '/adapter/digitalocean-spaces/' - Dropbox: '/adapter/dropbox/' - FTP: '/adapter/ftp/' - GridFS: '/adapter/gridfs/' - Memory: '/adapter/memory/' - Null / Test: '/adapter/null-test/' - Rackspace: '/adapter/rackspace/' - ReplicateAdapter: '/adapter/replicate/' - SFTP: '/adapter/sftp/' - WebDAV: '/adapter/webdav/' - PHPCR: '/adapter/phpcr/' - ZipArchive: '/adapter/zip-archive/' diff --git a/vendor/league/flysystem/docs/_data/project.yml b/vendor/league/flysystem/docs/_data/project.yml deleted file mode 100644 index a3aa54ef..00000000 --- a/vendor/league/flysystem/docs/_data/project.yml +++ /dev/null @@ -1,4 +0,0 @@ -title: "Flysystem" -tagline: "Multiple Filesystems, One API" -description: "Filesystem abstraction package allowing you to use the same API for both local, remote and cloud filesystems." -google_analytics_tracking_id: "UA-46050814-3" diff --git a/vendor/league/flysystem/docs/_layouts/default.html b/vendor/league/flysystem/docs/_layouts/default.html deleted file mode 100644 index d18093b3..00000000 --- a/vendor/league/flysystem/docs/_layouts/default.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - {% if page.url == '/' %} - {{ site.data.project.title }} - {{ site.data.project.tagline }} - {% else %} - {{ page.title }} - {{ site.data.project.title }} - {% endif %} - {% if site.data.project.description %} - - {% endif %} - {% if site.data.images.favicon %} - - {% else %} - - {% endif %} - {% if site.data.images.apple_touch %} - - {% else %} - - {% endif %} - - - - - -
    - - The League of Extraordinary Packages - -

    Our Packages:

    -
      - -
    -
    - -
    - - - Presented by The League of Extraordinary Packages - -
    - - - - -
    - - {% for section in site.data.menu %} -

    {{ section[0] }}

    -
      - {% for link in section[1] %} -
    • - {{ link[0] }} -
    • - {% endfor %} -
    - {% endfor %} -
    -
    - {{ content }} -
    -
    - - - - - - - -{% if site.data.project.google_analytics_tracking_id %} - -{% endif %} - - - diff --git a/vendor/league/flysystem/docs/adapter/aws-s3-v2.md b/vendor/league/flysystem/docs/adapter/aws-s3-v2.md deleted file mode 100644 index 44a73d91..00000000 --- a/vendor/league/flysystem/docs/adapter/aws-s3-v2.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -layout: default -permalink: /adapter/aws-s3-v2/ -title: Aws S3 Adapter V2 ---- - -# Aws S3 Adapter - SDK V2 - -## Installation - -~~~ bash -composer require league/flysystem-aws-s3-v2 -~~~ - -## Usage - -~~~ php -use Aws\S3\S3Client; -use League\Flysystem\AwsS3v2\AwsS3Adapter; -use League\Flysystem\Filesystem; - -$client = S3Client::factory([ - 'key' => '[your key]', - 'secret' => '[your secret]', - 'region' => '[aws-region]', -]); - -$adapter = new AwsS3Adapter($client, 'bucket-name', 'optional/path/prefix'); - -$filesystem = new Filesystem($adapter); -~~~ - -To enable [reduced redunancy storage](http://aws.amazon.com/s3/details/#RRS) set up your adapter like so: - -~~~ php -$adapter = new AwsS3Adapter($client, 'bucket-name', 'optional/path/prefix', [ - 'StorageClass' => 'REDUCED_REDUNDANCY', -]); -~~~ - -### Compatible storage protocols - -If you're using a storage service which implements the S3 protocols, you can set the `base_url` configuration option when constructing the client. - -~~~ php -$client = S3Client::factory([ - 'base_url' => 'http://some.other.endpoint', - // ... other settings -]); -~~~ - -Known compliant storage providers are: - -* [Google Cloud Storage](https://cloud.google.com/storage/docs/migrating#migration-simple) -* Know more? Please submit a PR! diff --git a/vendor/league/flysystem/docs/adapter/aws-s3-v3.md b/vendor/league/flysystem/docs/adapter/aws-s3-v3.md deleted file mode 100644 index 9f8ce8c2..00000000 --- a/vendor/league/flysystem/docs/adapter/aws-s3-v3.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -layout: default -permalink: /adapter/aws-s3-v3/ -title: Aws S3 Adapter V3 ---- - -# Aws S3 Adapter - SDK V3 - -## Installation - -~~~ bash -composer require league/flysystem-aws-s3-v3 -~~~ - -## Usage - -~~~ php -use Aws\S3\S3Client; -use League\Flysystem\AwsS3v3\AwsS3Adapter; -use League\Flysystem\Filesystem; - -$client = S3Client::factory([ - 'credentials' => [ - 'key' => 'your-key', - 'secret' => 'your-secret', - ], - 'region' => 'your-region', - 'version' => 'latest|version', -]); - -$adapter = new AwsS3Adapter($client, 'your-bucket-name', 'optional/path/prefix'); - -$filesystem = new Filesystem($adapter); -~~~ - -The required IAM permissions are: - -~~~ json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "Stmt1420044805001", - "Effect": "Allow", - "Action": [ - "s3:ListBucket", - "s3:GetObject", - "s3:GetObjectAcl", - "s3:PutObject", - "s3:PutObjectAcl", - "s3:ReplicateObject", - "s3:DeleteObject" - ], - "Resource": [ - "arn:aws:s3:::your-bucket-name", - "arn:aws:s3:::your-bucket-name/*" - ] - } - ] -} -~~~ diff --git a/vendor/league/flysystem/docs/adapter/azure.md b/vendor/league/flysystem/docs/adapter/azure.md deleted file mode 100644 index 06a11749..00000000 --- a/vendor/league/flysystem/docs/adapter/azure.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: default -permalink: /adapter/azure/ -title: Azure Blob Storage ---- - -# Azure Blob Storage - -## Installation - -~~~ bash -composer require league/flysystem-azure -~~~ - -## Usage - -~~~ php -use MicrosoftAzure\Storage\Common\ServicesBuilder; -use League\Flysystem\Filesystem; -use League\Flysystem\Azure\AzureAdapter; - -$endpoint = sprintf( - 'DefaultEndpointsProtocol=https;AccountName=%s;AccountKey=%s', - 'account-name', - 'api-key' -); - -$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($endpoint); - -$filesystem = new Filesystem(new AzureAdapter($blobRestProxy, 'my-container')); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/copy.md b/vendor/league/flysystem/docs/adapter/copy.md deleted file mode 100644 index b94b73ff..00000000 --- a/vendor/league/flysystem/docs/adapter/copy.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default -permalink: /adapter/copy/ -title: Copy.com Adapter ---- - -# Copy.com Adapter - -## Installation - -~~~ bash -composer require league/flysystem-copy -~~~ - -## Usage - -~~~ php -use Barracuda\Copy\API; -use League\Flysystem\Filesystem; -use League\Flysystem\Copy\CopyAdapter; - -$client = new API($consumerKey, $consumerSecret, $accessToken, $tokenSecret); -$filesystem = new Filesystem(new CopyAdapter($client, 'optional/path/prefix')); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/digitalocean-spaces.md b/vendor/league/flysystem/docs/adapter/digitalocean-spaces.md deleted file mode 100644 index 47afb540..00000000 --- a/vendor/league/flysystem/docs/adapter/digitalocean-spaces.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: default -permalink: /adapter/digitalocean-spaces/ -title: DigitalOcean Spaces ---- - -# DigitalOcean Spaces - S3 Compliant storage - -The DO Spaces api are compatible with those of S3, from Flysystem's perspective this means you can use the -`league/flysystem-aws-s3-v3` adapter. diff --git a/vendor/league/flysystem/docs/adapter/dropbox.md b/vendor/league/flysystem/docs/adapter/dropbox.md deleted file mode 100644 index 9121c2eb..00000000 --- a/vendor/league/flysystem/docs/adapter/dropbox.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: default -permalink: /adapter/dropbox/ -title: Dropbox Adapter ---- - -# Dropbox Adapter - -## Installation - -~~~ bash -composer require spatie/flysystem-dropbox -~~~ - -## Usage - -A token can be generated in the [App Console](https://www.dropbox.com/developers/apps) for any Dropbox API app. You'll find more info at [the Dropbox Developer Blog](https://blogs.dropbox.com/developers/2014/05/generate-an-access-token-for-your-own-account/). - -~~~ php -use League\Flysystem\Filesystem; -use Spatie\Dropbox\Client; -use Spatie\FlysystemDropbox\DropboxAdapter; - -$client = new Client($authorizationToken); - -$adapter = new DropboxAdapter($client); - -$filesystem = new Filesystem($adapter); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/ftp.md b/vendor/league/flysystem/docs/adapter/ftp.md deleted file mode 100644 index 26836d94..00000000 --- a/vendor/league/flysystem/docs/adapter/ftp.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: default -permalink: /adapter/ftp/ -title: FTP Adapter ---- - -# FTP Adapter - -## Installation - -Comes with the main Flysystem package. - -## Usage - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\Adapter\Ftp as Adapter; - -$filesystem = new Filesystem(new Adapter([ - 'host' => 'ftp.example.com', - 'username' => 'username', - 'password' => 'password', - - /** optional config settings */ - 'port' => 21, - 'root' => '/path/to/root', - 'passive' => true, - 'ssl' => true, - 'timeout' => 30, -])); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/gridfs.md b/vendor/league/flysystem/docs/adapter/gridfs.md deleted file mode 100644 index cff8b55d..00000000 --- a/vendor/league/flysystem/docs/adapter/gridfs.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default -permalink: /adapter/gridfs/ -title: GridFS Adapter ---- - -# GridFS Adapter - -## Installation - -~~~ bash -composer require league/flysystem-gridfs -~~~ - -## Usage - -~~~ php -use League\Flysystem\GridFS\GridFSAdapter; -use League\Flysystem\Filesystem; - -$mongoClient = new MongoClient(); -$gridFs = $mongoClient->selectDB('db_name')->getGridFS(); - -$adapter = new GridFSAdapter($gridFs); -$filesystem = new Filesystem($adapter); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/local.md b/vendor/league/flysystem/docs/adapter/local.md deleted file mode 100644 index 296f3692..00000000 --- a/vendor/league/flysystem/docs/adapter/local.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -layout: default -permalink: /adapter/local/ -title: Local Adapter ---- - -# Local Adapter - -## Installation - -Comes with the main Flysystem package. - -## Usage - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\Adapter\Local; - -$adapter = new Local(__DIR__.'/path/to/root'); -$filesystem = new Filesystem($adapter); -~~~ - -## Locks - -By default this adapter uses a lock during writes -and updates. This behaviour can be altered using the -second constructor argument. - -~~~ php -$adapter = new Local(__DIR__.'/path/to/too', 0); -~~~ - -## Links [added in 1.0.8] - -The Local adapter doesn't support links, this violates -the root path constraint which is enforced throughout -Flysystem. By default, when links are encountered an -exception is thrown. This behaviour can be altered -using the third constructor argument. - -~~~ php -// Skip links -$adapter = new Local(__DIR__.'/path/to/too', LOCK_EX, Local::SKIP_LINKS); - -// Throw exceptions (default) -$adapter = new Local(__DIR__.'/path/to/too', LOCK_EX, Local::DISALLOW_LINKS); -~~~ - -## File and directory permission settings [added in 1.0.14] - -~~~ php -$adapter = new Local(__DIR__.'/path/to/too', LOCK_EX, Local::DISALLOW_LINKS, [ - 'file' => [ - 'public' => 0744, - 'private' => 0700, - ], - 'dir' => [ - 'public' => 0755, - 'private' => 0700, - ] -]); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/memory.md b/vendor/league/flysystem/docs/adapter/memory.md deleted file mode 100644 index 8bf32729..00000000 --- a/vendor/league/flysystem/docs/adapter/memory.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default -permalink: /adapter/memory/ -title: Memory Adapter ---- - -# Memory Adapter - -This adapter keeps the filesystem completely in memory. This is useful when you need a filesystem, but don't want it persisted. - -## Installation - -~~~ bash -composer require league/flysystem-memory -~~~ - -## Usage - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\Memory\MemoryAdapter; - -$filesystem = new Filesystem(new MemoryAdapter()); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/null-test.md b/vendor/league/flysystem/docs/adapter/null-test.md deleted file mode 100644 index 08a41213..00000000 --- a/vendor/league/flysystem/docs/adapter/null-test.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default -permalink: /adapter/null-test/ -title: Null Adapter ---- - -# Null Adapter - -## Installation - -Comes with the main Flysystem package. - -## Usage - -Acts like `/dev/null` - -~~~ php -$adapter = new League\Flysystem\Adapter\NullAdapter; -$filesystem = new League\Flysystem\Filesystem($adapter); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/phpcr.md b/vendor/league/flysystem/docs/adapter/phpcr.md deleted file mode 100644 index 482ca654..00000000 --- a/vendor/league/flysystem/docs/adapter/phpcr.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: default -permalink: /adapter/phpcr/ -title: PHPCR Adapter ---- - -# PHPCR Adapter - -This adapter works with any [PHPCR](http://phpcr.github.io) implementation. -Choose the one that fits your needs and add it to your project, or composer -will complain that you miss `phpcr/phpcr-implementation`. See -[this article](http://symfony.com/doc/master/cmf/cookbook/database/choosing_phpcr_implementation.html) -for more on choosing your implementation. - -## Installation - -Assuming you go with jackalope-doctrine-dbal, do: - -~~~bash -composer require jackalope/jackalope-doctrine-dbal league/flysystem-phpcr -~~~ - -## Usage - -Bootstrap your PHPCR implementation. If you chose jackalope-doctrine-dbal with sqlite, -this will look like this for example: - -~~~php -use League\Flysystem\Filesystem; -use League\Flysystem\Phpcr\PhpcrAdapter; -use Jackalope\RepositoryFactoryDoctrineDBAL; -use Doctrine\DBAL\Driver\Connection; -use Doctrine\DBAL\DriverManager; - -$connection = DriverManager::getConnection([ - 'driver' => 'pdo_sqlite', - 'path' => '/path/to/sqlite.db', -]); -$factory = new RepositoryFactoryDoctrineDBAL(); -$repository = $factory->getRepository([ - 'jackalope.doctrine_dbal_connection' => $connection, -]); -$session = $repository->login(new SimpleCredentials('', '')); - -// this part looks the same regardless of your phpcr implementation. -$root = '/flysystem_tests'; -$filesystem = new Filesystem(new PhpcrAdapter($session, $root)); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/rackspace.md b/vendor/league/flysystem/docs/adapter/rackspace.md deleted file mode 100644 index 65cebf4a..00000000 --- a/vendor/league/flysystem/docs/adapter/rackspace.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: default -permalink: /adapter/rackspace/ -title: Rackspace Adapter ---- - -# Rackspace Adapter - -## Installation - -~~~ bash -composer require league/flysystem-rackspace -~~~ - -## Usage - -~~~ php -use OpenCloud\OpenStack; -use OpenCloud\Rackspace; -use League\Flysystem\Filesystem; -use League\Flysystem\Rackspace\RackspaceAdapter; - -$client = new OpenStack(Rackspace::UK_IDENTITY_ENDPOINT, [ - 'username' => ':username', - 'password' => ':password', -]); - -$store = $client->objectStoreService('cloudFiles', 'LON'); -$container = $store->getContainer('flysystem'); - -$filesystem = new Filesystem(new RackspaceAdapter($container, 'optional/path/prefix')); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/replicate.md b/vendor/league/flysystem/docs/adapter/replicate.md deleted file mode 100644 index 34b10731..00000000 --- a/vendor/league/flysystem/docs/adapter/replicate.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default -permalink: /adapter/replicate/ -title: Replicate Adapter ---- - -# Replicate Adapter - -## Installation - -~~~ bash -composer require league/flysystem-replicate-adapter -~~~ - -## Usage - -The `ReplicateAdapter` facilitates smooth transitions between adapters, allowing an application to stay functional and migrate its files from one adapter to another. The adapter takes two other adapters, a source and a replica. Every change is delegated to both adapters, while all the read operations are passed onto the source only. - -~~~ php -$source = new League\Flysystem\AwsS3V3\AwsS3Adapter(...); -$replica = new League\Flysystem\Adapter\Local(...); -$adapter = new League\Flysystem\Replicate\ReplicateAdapter($source, $replica); -$filesystem = new Filesystem($adapter); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/sftp.md b/vendor/league/flysystem/docs/adapter/sftp.md deleted file mode 100644 index 6cd03855..00000000 --- a/vendor/league/flysystem/docs/adapter/sftp.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: default -permalink: /adapter/sftp/ -title: SFTP Adapter ---- - -# SFTP Adapter - -## Installation - -~~~ bash -composer require league/flysystem-sftp -~~~ - -## Usage - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\Sftp\SftpAdapter; - -$filesystem = new Filesystem(new SftpAdapter([ - 'host' => 'example.com', - 'port' => 21, - 'username' => 'username', - 'password' => 'password', - 'privateKey' => 'path/to/or/contents/of/privatekey', - 'root' => '/path/to/root', - 'timeout' => 10, -])); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/webdav.md b/vendor/league/flysystem/docs/adapter/webdav.md deleted file mode 100644 index 3cad9109..00000000 --- a/vendor/league/flysystem/docs/adapter/webdav.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default -permalink: /adapter/webdav/ -title: WebDAV Adapter ---- - -# WebDAV Adapter - -## Installation - -~~~ bash -composer require league/flysystem-webdav -~~~ - -## Usage - -~~~ php -$client = new Sabre\DAV\Client($settings); -$adapter = new League\Flysystem\WebDAV\WebDAVAdapter($client, 'optional/path/prefix'); -$flysystem = new League\Flysystem\Filesystem($adapter); -~~~ diff --git a/vendor/league/flysystem/docs/adapter/zip-archive.md b/vendor/league/flysystem/docs/adapter/zip-archive.md deleted file mode 100644 index 8d2017e3..00000000 --- a/vendor/league/flysystem/docs/adapter/zip-archive.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: default -permalink: /adapter/zip-archive/ -title: ZipArchive Adapter ---- - -# ZipArchive Adapter - -## Installation - -~~~ bash -composer require league/flysystem-ziparchive -~~~ - -## Usage - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\ZipArchive\ZipArchiveAdapter; - -$filesystem = new Filesystem(new ZipArchiveAdapter(__DIR__.'/path/to/archive.zip')); -~~~ - -### Force Save - -When creating a new zip file it will only be saved at the end of the PHP request because the ZipArchive library relies on an internal `__destruct` method to be called. You can force the saving of the zip file before the end of the request by calling the `close` method on the archive through the adapter. - -~~~ php -$filesystem->getAdapter()->getArchive()->close(); -~~~ diff --git a/vendor/league/flysystem/docs/api.md b/vendor/league/flysystem/docs/api.md deleted file mode 100644 index 5d15e25a..00000000 --- a/vendor/league/flysystem/docs/api.md +++ /dev/null @@ -1,231 +0,0 @@ ---- -layout: default -permalink: /api/ -title: API ---- - -# API - -## General Usage - -__Write Files__ - -~~~ php -$filesystem->write('path/to/file.txt', 'contents'); -~~~ - -__Update Files__ - -~~~ php -$filesystem->update('path/to/file.txt', 'new contents'); -~~~ - -__Write or Update Files__ - -~~~ php -$filesystem->put('path/to/file.txt', 'contents'); -~~~ - -__Read Files__ - -~~~ php -$contents = $filesystem->read('path/to/file.txt'); -~~~ - -__Check if a file exists__ - -~~~ php -$exists = $filesystem->has('path/to/file.txt'); -~~~ - -__NOTE__: This only has consistent behaviour for files, not directories. Directories -are less important in Flysystem, they're created implicitly and often ignored because -not every adapter (filesystem type) supports directories. - -__Delete Files__ - -~~~ php -$filesystem->delete('path/to/file.txt'); -~~~ - -__Read and Delete__ - -~~~ php -$contents = $filesystem->readAndDelete('path/to/file.txt'); -~~~ - -__Rename Files__ - -~~~ php -$filesystem->rename('filename.txt', 'newname.txt'); -~~~ - -__Copy Files__ - -~~~ php -$filesystem->copy('filename.txt', 'duplicate.txt'); -~~~ - -__Get Mimetypes__ - -~~~ php -$mimetype = $filesystem->getMimetype('path/to/file.txt'); -~~~ - -__Get Timestamps__ - -~~~ php -$timestamp = $filesystem->getTimestamp('path/to/file.txt'); -~~~ - -__Get File Sizes__ - -~~~ php -$size = $filesystem->getSize('path/to/file.txt'); -~~~ - -__Create Directories__ - -~~~ php -$filesystem->createDir('path/to/nested/directory'); -~~~ -Directories are also made implicitly when writing to a deeper path - -~~~ php -$filesystem->write('path/to/file.txt', 'contents'); -~~~ - -__Delete Directories__ - -~~~ php -$filesystem->deleteDir('path/to/directory'); -~~~ -The above method will delete directories recursively - -__NOTE__: All paths used by Flysystem API are relative to the adapter root directory. - -__Manage Visibility__ - -Visibility is the abstraction of file permissions across multiple platforms. Visibility can be either public or private. - -~~~ php -use League\Flysystem\AdapterInterface; - -$filesystem->write('db.backup', $backup, [ - 'visibility' => AdapterInterface::VISIBILITY_PRIVATE -]); - -// or simply - -$filesystem->write('db.backup', $backup, ['visibility' => 'private']); -~~~ - -You can also change and check visibility of existing files - -~~~ php -if ($filesystem->getVisibility('secret.txt') === 'private') { - $filesystem->setVisibility('secret.txt', 'public'); -} -~~~ - -## Global visibility setting - -You can set the visibility as a default, which prevents you from setting it all over the place. - -~~~ php -$filesystem = new League\Flysystem\Filesystem($adapter, [ - 'visibility' => AdapterInterface::VISIBILITY_PRIVATE -]); -~~~ - -__List Contents__ - -~~~ php -$contents = $filesystem->listContents(); -~~~ - -The result of a contents listing is a collection of arrays containing all the metadata the file manager knows at that time. By default you'll receive path info and file type. Additional info could be supplied by default depending on the adapter used. - -Example: - -~~~ php -foreach ($contents as $object) { - echo $object['basename'].' is located at'.$object['path'].' and is a '.$object['type']; -} -~~~ - -By default Flysystem lists the top directory non-recursively. You can supply a directory name and recursive boolean to get more precise results - -~~~ php -$contents = $filesystem->listContents('some/dir', true); -~~~ - -__List paths__ - -~~~ php -$filesystem->addPlugin(new ListPaths()); - -$paths = $filesystem->listPaths(); - -foreach ($paths as $path) { - echo $path; -} -~~~ - -__List with ensured presence of specific metadata__ - -~~~ php -$listing = $filesystem->listWith(['mimetype', 'size', 'timestamp'], 'optional/path/to/dir', true); - -foreach ($listing as $object) { - echo $object['path'].' has mimetype: '.$object['mimetype']; -} -~~~ - -__Get file into with explicit metadata__ - -~~~ php -$info = $filesystem->getWithMetadata('path/to/file.txt', ['timestamp', 'mimetype']); -echo $info['mimetype']; -echo $info['timestamp']; -~~~ - -__NOTE__: This requires the `League\Flysystem\Plugin\GetWithMetadata` plugin. - -## Using streams for reads and writes - -

    -Some SDK's close streams after consuming them, therefore, before calling fclose on the resource, check if it's still valid using is_resource. -

    - -~~~ php -$stream = fopen('/path/to/database.backup', 'r+'); -$filesystem->writeStream('backups/'.strftime('%G-%m-%d').'.backup', $stream); - -// Using write you can also directly set the visibility -$filesystem->writeStream('backups/'.strftime('%G-%m-%d').'.backup', $stream, [ - 'visibility' => AdapterInterface::VISIBILITY_PRIVATE -]); - -if (is_resource($stream)) { - fclose($stream); -} - -// Or update a file with stream contents -$filesystem->updateStream('backups/'.strftime('%G-%m-%d').'.backup', $stream); - -// Retrieve a read-stream -$stream = $filesystem->readStream('something/is/here.ext'); -$contents = stream_get_contents($stream); -fclose($stream); - -// Create or overwrite using a stream. -$putStream = tmpfile(); -fwrite($putStream, $contents); -rewind($putStream); -$filesystem->putStream('somewhere/here.txt', $putStream); - -if (is_resource($putStream)) { - fclose($putStream); -} -~~~ diff --git a/vendor/league/flysystem/docs/caching.md b/vendor/league/flysystem/docs/caching.md deleted file mode 100644 index 55531cc1..00000000 --- a/vendor/league/flysystem/docs/caching.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -layout: default -permalink: /caching/ -title: Caching ---- - -# Caching - -File system I/O is slow, so Flysystem uses cached file system meta-data to boost performance. When your application needs to scale you can also choose to use a (shared) persistent caching solution for this. -Or enable a per request caching (recommended). - -## Installing the adapter cache decorator - -~~~bash -composer require league/flysystem-cached-adapter -~~~ - -This package supplies an Adapter decorator which acts as a caching proxy. - -The CachedAdapter (the decorator) caches anything but the file contents. This keeps the cache small enough to be beneficial and covers all the file system inspection operations. - -## Memory Caching - -The easiest way to boost the performance of Flysystem is to add Memory caching. -This type of caching will cache everything in the lifetime of the current process (cli-job or http-request). -Setting it up is easy: - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\Adapter\Local as Adapter; -use League\Flysystem\Cached\CachedAdapter; -use League\Flysystem\Cached\Storage\Memory as MemoryStore; - -// Create the adapter -$localAdapter = new Local('/path/to/root'); - -// Create the cache store -$cacheStore = new MemoryStore(); - -// Decorate the adapter -$adapter = new CachedAdapter($localAdapter, $cacheStore); - -// And use that to create the file system -$filesystem = new Filesystem($adapter); -~~~ - -You can now use the file system as you would have before, but caching will be done for you on the fly. - -## Persistent Caching - -The following examples demonstrate how you can setup persistent meta-data caching: - -## Predis Caching Setup - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\Adapter\Local as Adapter; -use League\Flysystem\Cached\CachedAdapter; -use League\Flysystem\Cached\Storage\Predis as PredisStore; - -$adapter = new CachedAdapter(new Adapter(__DIR__.'/path/to/root'), new PredisStore); -$filesystem = new Filesystem($adapter); - -// Or supply a client -$client = new Predis\Client; -$adapter = new CachedAdapter(new Adapter(__DIR__.'/path/to/root'), new PredisStore($client)); -$filesystem = new Filesystem($adapter); -~~~ - -## Memcached Caching Setup - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\Adapter\Local as Adapter; -use League\Flysystem\Cached\CachedAdapter; -use League\Flysystem\Cached\Storage\Memcached as MemcachedStore; - -$memcached = new Memcached; -$memcached->addServer('localhost', 11211); - -$adapter = new CachedAdapter( - new Adapter(__DIR__.'/path/to/root'), - new MemcachedStore($memcached, 'storageKey', 300) -); -$filesystem = new Filesystem($adapter); -// Storage Key and expire time are optional -~~~ - -## Adapter Caching Setup - -~~~ php -use Dropbox\Client; -use League\Flysystem\Filesystem; -use League\Flysystem\Adapter\Dropbox; -use League\Flysystem\Adapter\Local; -use League\Flysystem\Cached\CachedAdapter; -use League\Flysystem\Cached\Storage\Adapter; - -$client = new Client('token', 'app'); -$dropbox = new Dropbox($client, 'prefix'); - -$local = new Local('path'); -$cache = new Adapter($local, 'file', 300); -$adapter = new CachedAdapter($dropbox, $cache); -$filesystem = new Filesystem($adapter); -~~~ - -## Stash Caching Setup - -~~~ php -use Stash\Pool; -use League\Flysystem\Adapter\Local as Adapter; -use League\Flysystem\Cached\CachedAdapter; -use League\Flysystem\Cached\Storage\Stash as StashStore; - -$pool = new Pool(); -// you can optionally pass a driver (recommended, default: in-memory driver) - -$cache = new StashStore($pool, 'storageKey', 300); -// Storage Key and expire time are optional - -$adapter = new CachedAdapter(new Adapter(__DIR__.'/path/to/root'), $cache); -$filesystem = new Filesystem($adapter); -~~~ - -For list of drivers and configuration options check their [documentation](http://www.stashphp.com/Drivers.html). diff --git a/vendor/league/flysystem/docs/core-concepts.md b/vendor/league/flysystem/docs/core-concepts.md deleted file mode 100644 index 1d171de6..00000000 --- a/vendor/league/flysystem/docs/core-concepts.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -layout: default -permalink: /core-concepts/ -title: Core Concepts ---- - -# Core concepts - -In order to better understand how and why Flysystem works -the way it does, several concepts require some explanation. - -## Overview - -* [Focus/Goal](#focus) -* [Adapters](#adapters) -* [Relative Paths](#relative-paths) -* [Files first](#files-first) - -## Focus - -Flysystem's focus is to provide a standardized interface to working -with filesystems. We've searched for common ground across various -filesystems and implemented that in a cross-filesystem-compatible way. -This also means that we often don't support filesystem specific things. -This limitation is by design. - -## Adapters - -The main entry point for the file system API is the -FilesystemInterface. When working with file systems, this is -the class you'll want to be talking to. - -Flysystem works the way it does because of its use of the -adapter pattern. The inconsistencies of the different -filesystems are eliminated in these adapters. - -While adapters have a public interface (publicly accessible -methods), they should be considered __internal__. - -Every adapter should always be wrapped in a `League\Flysystem\Filesystem` -class: - -```php -$filesystem = new League\Flysystem\Filesystem($yourAdapter) -``` - -## Relative paths - -Portability is a very important concept within Flysystem. In order -to roll out this aspect to the fullest, all paths in Flysystem are -relative. File system root paths, whether remote or local, are viewed -as endpoints. Because of this, file systems are movable independently. -This allows parts of the application file handling to move to other -storage types, while the majority is in a centralized location. - -Like the storage type, root paths are an implementation detail. When -root paths are defined as configuration, the stability of your code -improves. - -## Files first, directories second. - -Flysystem has a files first approach. Storage systems like AWS S3 -are linear file systems, this means the path to a file is used as an -identifier, rather than a representation of all the directories it's -nested in. - -This means directories are second class citizens. Because of this, -directories will be automatically created on file systems that require -them when writing files. Not only does this make handling writes a lot -easier, it also ensures a consistent behaviors across all file system -types. diff --git a/vendor/league/flysystem/docs/creating-an-adapter.md b/vendor/league/flysystem/docs/creating-an-adapter.md deleted file mode 100644 index 592b71a3..00000000 --- a/vendor/league/flysystem/docs/creating-an-adapter.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: default -permalink: /creating-an-adapter/ -title: Creating an adapter ---- - -# Creating an adapter - -If you want to address a file system, and there's no -adapter available, you'll need to create your own. - -## What is an adapter - -An adapter can be seen as a plug - it bridges the gap -between initially incompatible API's. The job of the adapter -is to translate requests into calls the file system -understands and re-format responses to comply with -the interface of the generic file system. - -An adapter should __NEVER__ be used directly. It should -__ONLY__ be used to create a `League\Flysystem\FilesystemInterface` -implementation instance. - -## The main interface to implement - -An adapter is required to be an implementation of -`League\Flysystem\AdapterInterface`. This interface -dictates all the methods that need to be implemented. -The interface of an adapter is similar to the -`League\Flysystem\FilesystemInterface`, the method -names are the same, but the response is often different. - -Responses from adapters are often arrays containing the -requested value. This is done because many calls to -file systems return more values than initially requested -by the client. In order to be able to optimize file system -handling, all metadata is returned. For instance, when a -`listContents` call not only returns the paths, but also -timestamps or other related metadata, this information is -not lost. This information is returned through metadata, allowing -caching decorators to pick it up, and store for further use. - -### Response values - -key | description | type ------------ | ------------------------ | ----------- -type | `file` or `dir` | `string` -path | path to the file or dir | `string` -contents | file contents | `string` -stream | file contents | `resource` -visibility | `public` or `private` | `string` -timestamp | modified time | `integer` - -## Sharing the wealth - -Have you created an adapter? Be sure to let us know! -Either create an issue on the GitHub repository, or -send a PR adding a link to the README. Contributions -are always very welcome. diff --git a/vendor/league/flysystem/docs/index.md b/vendor/league/flysystem/docs/index.md deleted file mode 100644 index ccb810f8..00000000 --- a/vendor/league/flysystem/docs/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: default -permalink: / -title: Introduction ---- - -# Introduction - -[![Author](//img.shields.io/badge/author-@frankdejonge-blue.svg?style=flat-square)](//twitter.com/frankdejonge) -[![Source Code](//img.shields.io/badge/source-thephpleague/flysystem-blue.svg?style=flat-square)](//github.com/thephpleague/flysystem) -[![Latest Version](//img.shields.io/github/tag/thephpleague/flysystem.svg?style=flat-square)](//github.com/thephpleague/flysystem/releases) -[![Software License](//img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](//github.com/thephpleague/flysystem/blob/master/LICENSE) -[![Build Status](//img.shields.io/travis/thephpleague/flysystem/master.svg?style=flat-square)](//travis-ci.org/thephpleague/flysystem) -[![Coverage Status](//img.shields.io/scrutinizer/coverage/g/thephpleague/flysystem.svg?style=flat-square)](//scrutinizer-ci.com/g/thephpleague/flysystem/code-structure) -[![Quality Score](//img.shields.io/scrutinizer/g/thephpleague/flysystem.svg?style=flat-square)](//scrutinizer-ci.com/g/thephpleague/flysystem) -[![Total Downloads](//img.shields.io/packagist/dt/league/flysystem.svg?style=flat-square)](//packagist.org/packages/league/flysystem) -![php 5.5.9+](//img.shields.io/badge/php-min%205.5.9-red.svg?style=flat-square) - -Flysystem is a filesystem abstraction which allows you to easily swap out a local filesystem for a remote one. Technical debt is reduced as is the chance of vendor lock-in. - -### Gold Sponsors - -Laravel.com - -View all the [sponsors](/sponsors/). - -## Goals - -* Have a generic API for handling common tasks across multiple file storage engines. -* Have consistent output which you can rely on. -* Integrate well with other packages/frameworks. -* Be cacheable. -* Emulate directories in systems that support none, like AwsS3. -* Support third party plugins. -* Make it easy to test your filesystem interactions. -* Support streams for big file handling - -## Development Sponsors - -In order to free up more time to work on maintenance of this package I'm looking for sponsors. -If you (or your company), want to sponsor my efforts, consider becoming a sponsor via Patreon - -Become a Patron! - -## Questions? - -Flysystem was created by Frank de Jonge, follow him on Twitter for updates: [@frankdejonge](//twitter.com/frankdejonge). - -Please submit issues on [Github](//github.com/thephpleague/flysystem). diff --git a/vendor/league/flysystem/docs/installation.md b/vendor/league/flysystem/docs/installation.md deleted file mode 100644 index f5ee8de8..00000000 --- a/vendor/league/flysystem/docs/installation.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: default -permalink: /installation/ -title: Installation ---- - -# Installation - -Through Composer, obviously: - -~~~ bash -composer require league/flysystem -~~~ - -You can also use Flysystem without using Composer by registering an autoloader function: - -~~~ php -spl_autoload_register(function($class) { - $prefix = 'League\\Flysystem\\'; - - if ( ! substr($class, 0, 17) === $prefix) { - return; - } - - $class = substr($class, strlen($prefix)); - $location = __DIR__ . 'path/to/flysystem/src/' . str_replace('\\', '/', $class) . '.php'; - - if (is_file($location)) { - require_once($location); - } -}); -~~~ diff --git a/vendor/league/flysystem/docs/integrations.md b/vendor/league/flysystem/docs/integrations.md deleted file mode 100644 index 6ae1a268..00000000 --- a/vendor/league/flysystem/docs/integrations.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default -permalink: /integrations/ -title: Integrations ---- - -# Integrations - -Want to get started quickly? Check out some of these bridging packages: - -* [Laravel integration](https://github.com/GrahamCampbell/Laravel-Flysystem) -* [Symfony integration](https://github.com/1up-lab/OneupFlysystemBundle) -* [Zend Framework integration](https://github.com/bushbaby/BsbFlysystem) -* [CakePHP integration](https://github.com/WyriHaximus/FlyPie) -* [Silex integration](https://github.com/WyriHaximus/SliFly) -* [Yii 2 integration](https://github.com/creocoder/yii2-flysystem) -* [Backup manager](https://github.com/heybigname/backup-manager) - -### Other integrations - -Laravel 5 will ship with Flysystem as the underlying engine for local and remote file handling. - -### Additional Plugin/Framework Driver Integrations - - * Laravel - * [Laravel SFTP Integration](https://github.com/ragingdave/flysystem-sftp-laravel) diff --git a/vendor/league/flysystem/docs/logo/become_a_patron_button.png b/vendor/league/flysystem/docs/logo/become_a_patron_button.png deleted file mode 100644 index 291b7bcf265521a3d062024bc4f7df927ae60e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3086 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 S8x99PkF}+}MV*;%;{O2Ee#b2U diff --git a/vendor/league/flysystem/docs/logo/become_a_patron_button@2x.png b/vendor/league/flysystem/docs/logo/become_a_patron_button@2x.png deleted file mode 100644 index 5443ec96319d128bc1f2c8cf348f97c4565c5cc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6579 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 diff --git a/vendor/league/flysystem/docs/logo/laravel.svg b/vendor/league/flysystem/docs/logo/laravel.svg deleted file mode 100644 index 089a52f3..00000000 --- a/vendor/league/flysystem/docs/logo/laravel.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vendor/league/flysystem/docs/mount-manager.md b/vendor/league/flysystem/docs/mount-manager.md deleted file mode 100644 index a49da8c9..00000000 --- a/vendor/league/flysystem/docs/mount-manager.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -layout: default -permalink: /mount-manager/ -title: Mount Manager ---- - -# Mount Manager - -Flysystem comes with a wrapper class to easily work with multiple file system instances -from a single object. The `League\Flysystem\MountManager` is an easy to use container allowing -you to simplify more complex cross file system interactions. - -Setting up a Mount Manager is easy: - -~~~ php -$ftp = new League\Flysystem\Filesystem($ftpAdapter); -$s3 = new League\Flysystem\Filesystem($s3Adapter); -$local = new League\Flysystem\Filesystem($localAdapter); - -// Add them in the constructor -$manager = new League\Flysystem\MountManager([ - 'ftp' => $ftp, - 's3' => $s3, -]); - -// Or mount them later -$manager->mountFilesystem('local', $local); -~~~ - -Now we do all the file operations we'd normally do on a `Flysystem\Filesystem` instance. - -~~~ php -// Read from FTP -$contents = $manager->read('ftp://some/file.txt'); - -// And write to local -$manager->write('local://put/it/here.txt', $contents); -~~~ - -This makes it easy to code up simple sync strategies. - -~~~ php -$contents = $manager->listContents('local://uploads', true); - -foreach ($contents as $entry) { - $update = false; - - if ( ! $manager->has('storage://'.$entry['path'])) { - $update = true; - } elseif ($manager->getTimestamp('local://'.$entry['path']) > $manager->getTimestamp('storage://'.$entry['path'])) { - $update = true; - } - - if ($update) { - $manager->put('storage://'.$entry['path'], $manager->read('local://'.$entry['path'])); - } -} -~~~ - -## Specialized calls - -### Copy - -The copy method provided by the Mount Manager takes the origin of the file into account. -When it detects the source and destination are located on a different file systems it'll -use a streamed upload instead, transparently. - -~~~ php -$mountManager->copy('local://some/file.ext', 'backup://storage/location.ext'); -~~~ - -### Move - -The `move` call is the multi-file system counterpart to `rename`. Where rename must be used on -the same file system, the `move` call provides the same conceptual behavior, but then on two -different file systems. - -~~~ php -$mountManager->move('local://some/upload.jpeg', 'cdn://users/1/profile-picture.jpeg'); -~~~ diff --git a/vendor/league/flysystem/docs/performance.md b/vendor/league/flysystem/docs/performance.md deleted file mode 100644 index 2cfcc73b..00000000 --- a/vendor/league/flysystem/docs/performance.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default -permalink: /performance/ -title: API ---- - -# Performance - -Flysystem aims to be as reliable as possible. In some cases this means doing extra -checks to make sure the outcome will be as expected. For some adapter this means Flysystem -will make extra calls to assert whether or not a file exists. This improves the reliability -but also impacts performance. You can opt out of this behaviour. - -~~~ php -use League\Flysystem\Config; -use League\Flysystem\Filesystem; - -$local = new Filesystem($localAdapter, new Config([ - 'disable_asserts' => true, -])); -~~~ - -This will disable the asserts which happen before the following calls: write, writeStream, update, -updateStream, copy (2x), and delete. - -This functionality is available since `1.0.26`. diff --git a/vendor/league/flysystem/docs/plugins.md b/vendor/league/flysystem/docs/plugins.md deleted file mode 100644 index 896ec24b..00000000 --- a/vendor/league/flysystem/docs/plugins.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: default -permalink: /plugins/ -title: Plugins ---- - -# Plugins -Need a feature which is not included in Flysystem's bag of tricks? Write a plugin! - -~~~ php -use League\Flysystem\FilesystemInterface; -use League\Flysystem\PluginInterface; - -class MaximusAwesomeness implements PluginInterface -{ - protected $filesystem; - - public function setFilesystem(FilesystemInterface $filesystem) - { - $this->filesystem = $filesystem; - } - - public function getMethod() - { - return 'getDown'; - } - - public function handle($path = null) - { - $contents = $this->filesystem->read($path); - - return sha1($contents); - } -} -~~~ - -Now we're ready to use the plugin - -~~~ php -use League\Flysystem\Filesystem; -use League\Flysystem\Adapter; - -$filesystem = new Filesystem(new Adapter\Local(__DIR__.'/path/to/files/')); -$filesystem->addPlugin(new MaximusAwesomeness); -$sha1 = $filesystem->getDown('path/to/file'); -~~~ diff --git a/vendor/league/flysystem/docs/recipes.md b/vendor/league/flysystem/docs/recipes.md deleted file mode 100644 index 0d120258..00000000 --- a/vendor/league/flysystem/docs/recipes.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: default -permalink: /recipes/ -title: Recipes ---- - -# Recipes - -Flysystem Recipes describe common tasks and/or describe prefered ways to deal with -a problem. Please consider contributing a recipe. Contributions are very welcome! - -## Handling uploads - -### Plain PHP Upload - -~~~ php -$stream = fopen($_FILES[$uploadname]['tmp_name'], 'r+'); -$filesystem->writeStream('uploads/'.$_FILES[$uploadname]['name'], $stream); -fclose($stream); -~~~ - -### Symfony Upload - -~~~ php -/** @var Symfony\Component\HttpFoundation\Request $request */ -/** @var Symfony\Component\HttpFoundation\File\UploadedFile $file */ -$file = $request->files->get($uploadname); - -if ($file->isValid()) { - $stream = fopen($file->getRealPath(), 'r+'); - $filesystem->writeStream('uploads/'.$file->getClientOriginalName(), $stream); - fclose($stream); -} -~~~ - -### Laravel 5 - DI - -~~~ php -file('upload'); - $stream = fopen($file->getRealPath(), 'r+'); - $filesystem->writeStream('uploads/'.$file->getClientOriginalName(), $stream); - fclose($stream); - } -} -~~~ - -### Laravel 4/5 - Static-Access Proxy - -~~~ php -$file = Request::file($uploadname); - -if ($file->isValid()) { - $stream = fopen($file->getRealPath(), 'r+'); - $filesystem->writeStream('uploads/'.$file->getClientOriginalName(), $stream); - fclose($stream); -} -~~~ - -### Yii 2 Upload - -~~~ php -error === UPLOAD_ERR_OK) { - $stream = fopen($file->tempName, 'r+'); - $filesystem->writeStream('uploads/'.$file->name, $stream); - fclose($stream); - } - } -} -~~~ diff --git a/vendor/league/flysystem/docs/sponsors.md b/vendor/league/flysystem/docs/sponsors.md deleted file mode 100644 index cc9f7ee9..00000000 --- a/vendor/league/flysystem/docs/sponsors.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default -permalink: /sponsors/ -title: Sponsors ---- - -# Sponsors - -Development efforts are supported by the sponsors. I'm very grateful for their donations, please check them out! - -Become a Patron! - -## Gold Sponsors - - -

    Laravel.com
    Laravel.com

    - -### Silver Sponsors - -None - -### Bronze Sponsors - -None diff --git a/vendor/league/flysystem/docs/upgrade-to-1.0.0.md b/vendor/league/flysystem/docs/upgrade-to-1.0.0.md deleted file mode 100644 index be9d63de..00000000 --- a/vendor/league/flysystem/docs/upgrade-to-1.0.0.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -layout: default -permalink: /upgrade-to-1.0.0/ -title: Upgrade to 1.0.0 ---- - -# Upgrade to 1.0.0 - -While version 1.0.0 is largely backwards compatible from earlier versions in every -day usage, some parts require a different boostrapping. - -## Relocated Adapters - -In order to have better dependency management, and to remove some of the -version contstraints, some of the adapters have been moved out of the main -repository. These adapters are: - -* [AwsS3: AWS SDK V2 Adapter](/adapter/aws-s3-v2/) -* [AwsS3V3: AWS SDK V3 Adapter](/adapter/aws-s3-v3/) -* [Dropbox](/adapter/dropbox/) -* [Rackspace](/adapter/rackspace/) -* [GridFS](/adapter/gridfs/) -* [Sftp](/adapter/sftp/) -* [WebDAV](/adapter/webdav/) -* [ZipArchive](/adapter/zip-archive/) - -## Caching - -Caching has been removed from the main Filesystem class and is now implemented -as an adapter decorator. - -### Version 0.x - -~~~ php -$filesystem = new Filesystem($adapter, $cacheAdapter); -~~~ - -### Version 1.0.0 - -Install the required adapter decorator: - -~~~ bash -composer require league/flysystem-cached-adapter -~~~ - -And convert the bootstrapping to: - -~~~ php -use League\Flysystem\Adapter\Local; -use League\Flysystem\Cached\CachedAdapter; - -$decoratedAdapter = new CachedAdapter($adapter, $cacheAdapter); -$filesystem = new Filesystem($decoratedAdapter); -~~~ - -## Helper Methods - -In order to clean up the Filsystem class, some helper functions have been moved to plugins. - -* ListWith -* ListPaths -* ListFiles -* GetWithMetadata -* EmptyDir (new) - - diff --git a/vendor/league/flysystem/src/Adapter/AbstractAdapter.php b/vendor/league/flysystem/src/Adapter/AbstractAdapter.php deleted file mode 100644 index 01e8cda5..00000000 --- a/vendor/league/flysystem/src/Adapter/AbstractAdapter.php +++ /dev/null @@ -1,71 +0,0 @@ -pathPrefix = null; - return; - } - - $this->pathPrefix = rtrim($prefix, '\\/') . $this->pathSeparator; - } - - /** - * Get the path prefix. - * - * @return string|null path prefix or null if pathPrefix is empty - */ - public function getPathPrefix() - { - return $this->pathPrefix; - } - - /** - * Prefix a path. - * - * @param string $path - * - * @return string prefixed path - */ - public function applyPathPrefix($path) - { - return $this->getPathPrefix() . ltrim($path, '\\/'); - } - - /** - * Remove a path prefix. - * - * @param string $path - * - * @return string path without the prefix - */ - public function removePathPrefix($path) - { - return substr($path, strlen($this->getPathPrefix())); - } -} diff --git a/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php b/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php deleted file mode 100644 index d4263073..00000000 --- a/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php +++ /dev/null @@ -1,628 +0,0 @@ -safeStorage = new SafeStorage(); - $this->setConfig($config); - } - - /** - * Set the config. - * - * @param array $config - * - * @return $this - */ - public function setConfig(array $config) - { - foreach ($this->configurable as $setting) { - if ( ! isset($config[$setting])) { - continue; - } - - $method = 'set' . ucfirst($setting); - - if (method_exists($this, $method)) { - $this->$method($config[$setting]); - } - } - - return $this; - } - - /** - * Returns the host. - * - * @return string - */ - public function getHost() - { - return $this->host; - } - - /** - * Set the host. - * - * @param string $host - * - * @return $this - */ - public function setHost($host) - { - $this->host = $host; - - return $this; - } - - /** - * Set the public permission value. - * - * @param int $permPublic - * - * @return $this - */ - public function setPermPublic($permPublic) - { - $this->permPublic = $permPublic; - - return $this; - } - - /** - * Set the private permission value. - * - * @param int $permPrivate - * - * @return $this - */ - public function setPermPrivate($permPrivate) - { - $this->permPrivate = $permPrivate; - - return $this; - } - - /** - * Returns the ftp port. - * - * @return int - */ - public function getPort() - { - return $this->port; - } - - /** - * Returns the root folder to work from. - * - * @return string - */ - public function getRoot() - { - return $this->root; - } - - /** - * Set the ftp port. - * - * @param int|string $port - * - * @return $this - */ - public function setPort($port) - { - $this->port = (int) $port; - - return $this; - } - - /** - * Set the root folder to work from. - * - * @param string $root - * - * @return $this - */ - public function setRoot($root) - { - $this->root = rtrim($root, '\\/') . $this->separator; - - return $this; - } - - /** - * Returns the ftp username. - * - * @return string username - */ - public function getUsername() - { - $username = $this->safeStorage->retrieveSafely('username'); - - return $username !== null ? $username : 'anonymous'; - } - - /** - * Set ftp username. - * - * @param string $username - * - * @return $this - */ - public function setUsername($username) - { - $this->safeStorage->storeSafely('username', $username); - - return $this; - } - - /** - * Returns the password. - * - * @return string password - */ - public function getPassword() - { - return $this->safeStorage->retrieveSafely('password'); - } - - /** - * Set the ftp password. - * - * @param string $password - * - * @return $this - */ - public function setPassword($password) - { - $this->safeStorage->storeSafely('password', $password); - - return $this; - } - - /** - * Returns the amount of seconds before the connection will timeout. - * - * @return int - */ - public function getTimeout() - { - return $this->timeout; - } - - /** - * Set the amount of seconds before the connection should timeout. - * - * @param int $timeout - * - * @return $this - */ - public function setTimeout($timeout) - { - $this->timeout = (int) $timeout; - - return $this; - } - - /** - * Return the FTP system type. - * - * @return string - */ - public function getSystemType() - { - return $this->systemType; - } - - /** - * Set the FTP system type (windows or unix). - * - * @param string $systemType - * - * @return $this - */ - public function setSystemType($systemType) - { - $this->systemType = strtolower($systemType); - - return $this; - } - - /** - * @inheritdoc - */ - public function listContents($directory = '', $recursive = false) - { - return $this->listDirectoryContents($directory, $recursive); - } - - abstract protected function listDirectoryContents($directory, $recursive = false); - - /** - * Normalize a directory listing. - * - * @param array $listing - * @param string $prefix - * - * @return array directory listing - */ - protected function normalizeListing(array $listing, $prefix = '') - { - $base = $prefix; - $result = []; - $listing = $this->removeDotDirectories($listing); - - while ($item = array_shift($listing)) { - if (preg_match('#^.*:$#', $item)) { - $base = preg_replace('~^\./*|:$~', '', $item); - continue; - } - - $result[] = $this->normalizeObject($item, $base); - } - - return $this->sortListing($result); - } - - /** - * Sort a directory listing. - * - * @param array $result - * - * @return array sorted listing - */ - protected function sortListing(array $result) - { - $compare = function ($one, $two) { - return strnatcmp($one['path'], $two['path']); - }; - - usort($result, $compare); - - return $result; - } - - /** - * Normalize a file entry. - * - * @param string $item - * @param string $base - * - * @return array normalized file array - * - * @throws NotSupportedException - */ - protected function normalizeObject($item, $base) - { - $systemType = $this->systemType ?: $this->detectSystemType($item); - - if ($systemType === 'unix') { - return $this->normalizeUnixObject($item, $base); - } elseif ($systemType === 'windows') { - return $this->normalizeWindowsObject($item, $base); - } - - throw NotSupportedException::forFtpSystemType($systemType); - } - - /** - * Normalize a Unix file entry. - * - * @param string $item - * @param string $base - * - * @return array normalized file array - */ - protected function normalizeUnixObject($item, $base) - { - $item = preg_replace('#\s+#', ' ', trim($item), 7); - - if (count(explode(' ', $item, 9)) !== 9) { - throw new RuntimeException("Metadata can't be parsed from item '$item' , not enough parts."); - } - - list($permissions, /* $number */, /* $owner */, /* $group */, $size, /* $month */, /* $day */, /* $time*/, $name) = explode(' ', $item, 9); - $type = $this->detectType($permissions); - $path = $base === '' ? $name : $base . $this->separator . $name; - - if ($type === 'dir') { - return compact('type', 'path'); - } - - $permissions = $this->normalizePermissions($permissions); - $visibility = $permissions & 0044 ? AdapterInterface::VISIBILITY_PUBLIC : AdapterInterface::VISIBILITY_PRIVATE; - $size = (int) $size; - - return compact('type', 'path', 'visibility', 'size'); - } - - /** - * Normalize a Windows/DOS file entry. - * - * @param string $item - * @param string $base - * - * @return array normalized file array - */ - protected function normalizeWindowsObject($item, $base) - { - $item = preg_replace('#\s+#', ' ', trim($item), 3); - - if (count(explode(' ', $item, 4)) !== 4) { - throw new RuntimeException("Metadata can't be parsed from item '$item' , not enough parts."); - } - - list($date, $time, $size, $name) = explode(' ', $item, 4); - $path = $base === '' ? $name : $base . $this->separator . $name; - - // Check for the correct date/time format - $format = strlen($date) === 8 ? 'm-d-yH:iA' : 'Y-m-dH:i'; - $dt = DateTime::createFromFormat($format, $date . $time); - $timestamp = $dt ? $dt->getTimestamp() : (int) strtotime("$date $time"); - - if ($size === '') { - $type = 'dir'; - - return compact('type', 'path', 'timestamp'); - } - - $type = 'file'; - $visibility = AdapterInterface::VISIBILITY_PUBLIC; - $size = (int) $size; - - return compact('type', 'path', 'visibility', 'size', 'timestamp'); - } - - /** - * Get the system type from a listing item. - * - * @param string $item - * - * @return string the system type - */ - protected function detectSystemType($item) - { - return preg_match('/^[0-9]{2,4}-[0-9]{2}-[0-9]{2}/', $item) ? 'windows' : 'unix'; - } - - /** - * Get the file type from the permissions. - * - * @param string $permissions - * - * @return string file type - */ - protected function detectType($permissions) - { - return substr($permissions, 0, 1) === 'd' ? 'dir' : 'file'; - } - - /** - * Normalize a permissions string. - * - * @param string $permissions - * - * @return int - */ - protected function normalizePermissions($permissions) - { - // remove the type identifier - $permissions = substr($permissions, 1); - - // map the string rights to the numeric counterparts - $map = ['-' => '0', 'r' => '4', 'w' => '2', 'x' => '1']; - $permissions = strtr($permissions, $map); - - // split up the permission groups - $parts = str_split($permissions, 3); - - // convert the groups - $mapper = function ($part) { - return array_sum(str_split($part)); - }; - - // converts to decimal number - return octdec(implode('', array_map($mapper, $parts))); - } - - /** - * Filter out dot-directories. - * - * @param array $list - * - * @return array - */ - public function removeDotDirectories(array $list) - { - $filter = function ($line) { - return $line !== '' && ! preg_match('#.* \.(\.)?$|^total#', $line); - }; - - return array_filter($list, $filter); - } - - /** - * @inheritdoc - */ - public function has($path) - { - return $this->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function getSize($path) - { - return $this->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function getVisibility($path) - { - return $this->getMetadata($path); - } - - /** - * Ensure a directory exists. - * - * @param string $dirname - */ - public function ensureDirectory($dirname) - { - $dirname = (string) $dirname; - - if ($dirname !== '' && ! $this->has($dirname)) { - $this->createDir($dirname, new Config()); - } - } - - /** - * @return mixed - */ - public function getConnection() - { - $tries = 0; - - while ( ! $this->isConnected() && $tries < 3) { - $tries++; - $this->disconnect(); - $this->connect(); - } - - return $this->connection; - } - - /** - * Get the public permission value. - * - * @return int - */ - public function getPermPublic() - { - return $this->permPublic; - } - - /** - * Get the private permission value. - * - * @return int - */ - public function getPermPrivate() - { - return $this->permPrivate; - } - - /** - * Disconnect on destruction. - */ - public function __destruct() - { - $this->disconnect(); - } - - /** - * Establish a connection. - */ - abstract public function connect(); - - /** - * Close the connection. - */ - abstract public function disconnect(); - - /** - * Check if a connection is active. - * - * @return bool - */ - abstract public function isConnected(); -} diff --git a/vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php b/vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php deleted file mode 100644 index c42719e6..00000000 --- a/vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php +++ /dev/null @@ -1,10 +0,0 @@ -transferMode = $mode; - - return $this; - } - - /** - * Set if Ssl is enabled. - * - * @param bool $ssl - * - * @return $this - */ - public function setSsl($ssl) - { - $this->ssl = (bool) $ssl; - - return $this; - } - - /** - * Set if passive mode should be used. - * - * @param bool $passive - */ - public function setPassive($passive = true) - { - $this->passive = $passive; - } - - /** - * @param bool $ignorePassiveAddress - */ - public function setIgnorePassiveAddress($ignorePassiveAddress) - { - $this->ignorePassiveAddress = $ignorePassiveAddress; - } - - /** - * @param bool $recurseManually - */ - public function setRecurseManually($recurseManually) - { - $this->recurseManually = $recurseManually; - } - - /** - * @param bool $utf8 - */ - public function setUtf8($utf8) - { - $this->utf8 = (bool) $utf8; - } - - /** - * Connect to the FTP server. - */ - public function connect() - { - if ($this->ssl) { - $this->connection = ftp_ssl_connect($this->getHost(), $this->getPort(), $this->getTimeout()); - } else { - $this->connection = ftp_connect($this->getHost(), $this->getPort(), $this->getTimeout()); - } - - if ( ! $this->connection) { - throw new RuntimeException('Could not connect to host: ' . $this->getHost() . ', port:' . $this->getPort()); - } - - $this->login(); - $this->setUtf8Mode(); - $this->setConnectionPassiveMode(); - $this->setConnectionRoot(); - $this->isPureFtpd = $this->isPureFtpdServer(); - } - - /** - * Set the connection to UTF-8 mode. - */ - protected function setUtf8Mode() - { - if ($this->utf8) { - $response = ftp_raw($this->connection, "OPTS UTF8 ON"); - if (substr($response[0], 0, 3) !== '200') { - throw new RuntimeException( - 'Could not set UTF-8 mode for connection: ' . $this->getHost() . '::' . $this->getPort() - ); - } - } - } - - /** - * Set the connections to passive mode. - * - * @throws RuntimeException - */ - protected function setConnectionPassiveMode() - { - if (is_bool($this->ignorePassiveAddress) && defined('FTP_USEPASVADDRESS')) { - ftp_set_option($this->connection, FTP_USEPASVADDRESS, ! $this->ignorePassiveAddress); - } - - if ( ! ftp_pasv($this->connection, $this->passive)) { - throw new RuntimeException( - 'Could not set passive mode for connection: ' . $this->getHost() . '::' . $this->getPort() - ); - } - } - - /** - * Set the connection root. - */ - protected function setConnectionRoot() - { - $root = $this->getRoot(); - $connection = $this->connection; - - if ($root && ! ftp_chdir($connection, $root)) { - throw new RuntimeException('Root is invalid or does not exist: ' . $this->getRoot()); - } - - // Store absolute path for further reference. - // This is needed when creating directories and - // initial root was a relative path, else the root - // would be relative to the chdir'd path. - $this->root = ftp_pwd($connection); - } - - /** - * Login. - * - * @throws RuntimeException - */ - protected function login() - { - set_error_handler(function () {}); - $isLoggedIn = ftp_login( - $this->connection, - $this->getUsername(), - $this->getPassword() - ); - restore_error_handler(); - - if ( ! $isLoggedIn) { - $this->disconnect(); - throw new RuntimeException( - 'Could not login with connection: ' . $this->getHost() . '::' . $this->getPort( - ) . ', username: ' . $this->getUsername() - ); - } - } - - /** - * Disconnect from the FTP server. - */ - public function disconnect() - { - if (is_resource($this->connection)) { - ftp_close($this->connection); - } - - $this->connection = null; - } - - /** - * @inheritdoc - */ - public function write($path, $contents, Config $config) - { - $stream = fopen('php://temp', 'w+b'); - fwrite($stream, $contents); - rewind($stream); - $result = $this->writeStream($path, $stream, $config); - fclose($stream); - - if ($result === false) { - return false; - } - - $result['contents'] = $contents; - $result['mimetype'] = Util::guessMimeType($path, $contents); - - return $result; - } - - /** - * @inheritdoc - */ - public function writeStream($path, $resource, Config $config) - { - $this->ensureDirectory(Util::dirname($path)); - - if ( ! ftp_fput($this->getConnection(), $path, $resource, $this->transferMode)) { - return false; - } - - if ($visibility = $config->get('visibility')) { - $this->setVisibility($path, $visibility); - } - - $type = 'file'; - - return compact('type', 'path', 'visibility'); - } - - /** - * @inheritdoc - */ - public function update($path, $contents, Config $config) - { - return $this->write($path, $contents, $config); - } - - /** - * @inheritdoc - */ - public function updateStream($path, $resource, Config $config) - { - return $this->writeStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function rename($path, $newpath) - { - return ftp_rename($this->getConnection(), $path, $newpath); - } - - /** - * @inheritdoc - */ - public function delete($path) - { - return ftp_delete($this->getConnection(), $path); - } - - /** - * @inheritdoc - */ - public function deleteDir($dirname) - { - $connection = $this->getConnection(); - $contents = array_reverse($this->listDirectoryContents($dirname, false)); - - foreach ($contents as $object) { - if ($object['type'] === 'file') { - if ( ! ftp_delete($connection, $object['path'])) { - return false; - } - } elseif ( ! $this->deleteDir($object['path'])) { - return false; - } - } - - return ftp_rmdir($connection, $dirname); - } - - /** - * @inheritdoc - */ - public function createDir($dirname, Config $config) - { - $connection = $this->getConnection(); - $directories = explode('/', $dirname); - - foreach ($directories as $directory) { - if (false === $this->createActualDirectory($directory, $connection)) { - $this->setConnectionRoot(); - - return false; - } - - ftp_chdir($connection, $directory); - } - - $this->setConnectionRoot(); - - return ['type' => 'dir', 'path' => $dirname]; - } - - /** - * Create a directory. - * - * @param string $directory - * @param resource $connection - * - * @return bool - */ - protected function createActualDirectory($directory, $connection) - { - // List the current directory - $listing = ftp_nlist($connection, '.') ?: []; - - foreach ($listing as $key => $item) { - if (preg_match('~^\./.*~', $item)) { - $listing[$key] = substr($item, 2); - } - } - - if (in_array($directory, $listing, true)) { - return true; - } - - return (boolean) ftp_mkdir($connection, $directory); - } - - /** - * @inheritdoc - */ - public function getMetadata($path) - { - $connection = $this->getConnection(); - - if ($path === '') { - return ['type' => 'dir', 'path' => '']; - } - - if (@ftp_chdir($connection, $path) === true) { - $this->setConnectionRoot(); - - return ['type' => 'dir', 'path' => $path]; - } - - $listing = $this->ftpRawlist('-A', str_replace('*', '\\*', $path)); - - if (empty($listing) || in_array('total 0', $listing, true)) { - return false; - } - - if (preg_match('/.* not found/', $listing[0])) { - return false; - } - - if (preg_match('/^total [0-9]*$/', $listing[0])) { - array_shift($listing); - } - - return $this->normalizeObject($listing[0], ''); - } - - /** - * @inheritdoc - */ - public function getMimetype($path) - { - if ( ! $metadata = $this->getMetadata($path)) { - return false; - } - - $metadata['mimetype'] = MimeType::detectByFilename($path); - - return $metadata; - } - - /** - * @inheritdoc - */ - public function getTimestamp($path) - { - $timestamp = ftp_mdtm($this->getConnection(), $path); - - return ($timestamp !== -1) ? ['path' => $path, 'timestamp' => $timestamp] : false; - } - - /** - * @inheritdoc - */ - public function read($path) - { - if ( ! $object = $this->readStream($path)) { - return false; - } - - $object['contents'] = stream_get_contents($object['stream']); - fclose($object['stream']); - unset($object['stream']); - - return $object; - } - - /** - * @inheritdoc - */ - public function readStream($path) - { - $stream = fopen('php://temp', 'w+b'); - $result = ftp_fget($this->getConnection(), $stream, $path, $this->transferMode); - rewind($stream); - - if ( ! $result) { - fclose($stream); - - return false; - } - - return ['type' => 'file', 'path' => $path, 'stream' => $stream]; - } - - /** - * @inheritdoc - */ - public function setVisibility($path, $visibility) - { - $mode = $visibility === AdapterInterface::VISIBILITY_PUBLIC ? $this->getPermPublic() : $this->getPermPrivate(); - - if ( ! ftp_chmod($this->getConnection(), $mode, $path)) { - return false; - } - - return compact('path', 'visibility'); - } - - /** - * @inheritdoc - * - * @param string $directory - */ - protected function listDirectoryContents($directory, $recursive = true) - { - $directory = str_replace('*', '\\*', $directory); - - if ($recursive && $this->recurseManually) { - return $this->listDirectoryContentsRecursive($directory); - } - - $options = $recursive ? '-alnR' : '-aln'; - $listing = $this->ftpRawlist($options, $directory); - - return $listing ? $this->normalizeListing($listing, $directory) : []; - } - - /** - * @inheritdoc - * - * @param string $directory - */ - protected function listDirectoryContentsRecursive($directory) - { - $listing = $this->normalizeListing($this->ftpRawlist('-aln', $directory) ?: [], $directory); - $output = []; - - foreach ($listing as $item) { - $output[] = $item; - if ($item['type'] !== 'dir') continue; - $output = array_merge($output, $this->listDirectoryContentsRecursive($item['path'])); - } - - return $output; - } - - /** - * Check if the connection is open. - * - * @return bool - * @throws ErrorException - */ - public function isConnected() - { - try { - return is_resource($this->connection) && ftp_rawlist($this->connection, $this->getRoot()) !== false; - } catch (ErrorException $e) { - if (strpos($e->getMessage(), 'ftp_rawlist') === false) { - throw $e; - } - - return false; - } - } - - /** - * @return bool - */ - protected function isPureFtpdServer() - { - $response = ftp_raw($this->connection, 'HELP'); - - return stripos(implode(' ', $response), 'Pure-FTPd') !== false; - } - - /** - * The ftp_rawlist function with optional escaping. - * - * @param string $options - * @param string $path - * - * @return array - */ - protected function ftpRawlist($options, $path) - { - $connection = $this->getConnection(); - - if ($this->isPureFtpd) { - $path = str_replace(' ', '\ ', $path); - } - return ftp_rawlist($connection, $options . ' ' . $path); - } -} diff --git a/vendor/league/flysystem/src/Adapter/Ftpd.php b/vendor/league/flysystem/src/Adapter/Ftpd.php deleted file mode 100644 index 7fcecd09..00000000 --- a/vendor/league/flysystem/src/Adapter/Ftpd.php +++ /dev/null @@ -1,40 +0,0 @@ - 'dir', 'path' => '']; - } - - if ( ! ($object = ftp_raw($this->getConnection(), 'STAT ' . $path)) || count($object) < 3) { - return false; - } - - if (substr($object[1], 0, 5) === "ftpd:") { - return false; - } - - return $this->normalizeObject($object[1], ''); - } - - /** - * @inheritdoc - */ - protected function listDirectoryContents($directory, $recursive = true) - { - $listing = ftp_rawlist($this->getConnection(), $directory, $recursive); - - if ($listing === false || ( ! empty($listing) && substr($listing[0], 0, 5) === "ftpd:")) { - return []; - } - - return $this->normalizeListing($listing, $directory); - } -} diff --git a/vendor/league/flysystem/src/Adapter/Local.php b/vendor/league/flysystem/src/Adapter/Local.php deleted file mode 100644 index 07adb66a..00000000 --- a/vendor/league/flysystem/src/Adapter/Local.php +++ /dev/null @@ -1,510 +0,0 @@ - [ - 'public' => 0644, - 'private' => 0600, - ], - 'dir' => [ - 'public' => 0755, - 'private' => 0700, - ] - ]; - - /** - * @var string - */ - protected $pathSeparator = DIRECTORY_SEPARATOR; - - /** - * @var array - */ - protected $permissionMap; - - /** - * @var int - */ - protected $writeFlags; - /** - * @var int - */ - private $linkHandling; - - /** - * Constructor. - * - * @param string $root - * @param int $writeFlags - * @param int $linkHandling - * @param array $permissions - * - * @throws LogicException - */ - public function __construct($root, $writeFlags = LOCK_EX, $linkHandling = self::DISALLOW_LINKS, array $permissions = []) - { - $root = is_link($root) ? realpath($root) : $root; - $this->permissionMap = array_replace_recursive(static::$permissions, $permissions); - $this->ensureDirectory($root); - - if ( ! is_dir($root) || ! is_readable($root)) { - throw new LogicException('The root path ' . $root . ' is not readable.'); - } - - $this->setPathPrefix($root); - $this->writeFlags = $writeFlags; - $this->linkHandling = $linkHandling; - } - - /** - * Ensure the root directory exists. - * - * @param string $root root directory path - * - * @return void - * - * @throws Exception in case the root directory can not be created - */ - protected function ensureDirectory($root) - { - if ( ! is_dir($root)) { - $umask = umask(0); - @mkdir($root, $this->permissionMap['dir']['public'], true); - umask($umask); - - if ( ! is_dir($root)) { - throw new Exception(sprintf('Impossible to create the root directory "%s".', $root)); - } - } - } - - /** - * @inheritdoc - */ - public function has($path) - { - $location = $this->applyPathPrefix($path); - - return file_exists($location); - } - - /** - * @inheritdoc - */ - public function write($path, $contents, Config $config) - { - $location = $this->applyPathPrefix($path); - $this->ensureDirectory(dirname($location)); - - if (($size = file_put_contents($location, $contents, $this->writeFlags)) === false) { - return false; - } - - $type = 'file'; - $result = compact('contents', 'type', 'size', 'path'); - - if ($visibility = $config->get('visibility')) { - $result['visibility'] = $visibility; - $this->setVisibility($path, $visibility); - } - - return $result; - } - - /** - * @inheritdoc - */ - public function writeStream($path, $resource, Config $config) - { - $location = $this->applyPathPrefix($path); - $this->ensureDirectory(dirname($location)); - $stream = fopen($location, 'w+b'); - - if ( ! $stream) { - return false; - } - - stream_copy_to_stream($resource, $stream); - - if ( ! fclose($stream)) { - return false; - } - - if ($visibility = $config->get('visibility')) { - $this->setVisibility($path, $visibility); - } - - $type = 'file'; - - return compact('type', 'path', 'visibility'); - } - - /** - * @inheritdoc - */ - public function readStream($path) - { - $location = $this->applyPathPrefix($path); - $stream = fopen($location, 'rb'); - - return ['type' => 'file', 'path' => $path, 'stream' => $stream]; - } - - /** - * @inheritdoc - */ - public function updateStream($path, $resource, Config $config) - { - return $this->writeStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function update($path, $contents, Config $config) - { - $location = $this->applyPathPrefix($path); - $mimetype = Util::guessMimeType($path, $contents); - $size = file_put_contents($location, $contents, $this->writeFlags); - - if ($size === false) { - return false; - } - - $type = 'file'; - - return compact('type', 'path', 'size', 'contents', 'mimetype'); - } - - /** - * @inheritdoc - */ - public function read($path) - { - $location = $this->applyPathPrefix($path); - $contents = file_get_contents($location); - - if ($contents === false) { - return false; - } - - return ['type' => 'file', 'path' => $path, 'contents' => $contents]; - } - - /** - * @inheritdoc - */ - public function rename($path, $newpath) - { - $location = $this->applyPathPrefix($path); - $destination = $this->applyPathPrefix($newpath); - $parentDirectory = $this->applyPathPrefix(Util::dirname($newpath)); - $this->ensureDirectory($parentDirectory); - - return rename($location, $destination); - } - - /** - * @inheritdoc - */ - public function copy($path, $newpath) - { - $location = $this->applyPathPrefix($path); - $destination = $this->applyPathPrefix($newpath); - $this->ensureDirectory(dirname($destination)); - - return copy($location, $destination); - } - - /** - * @inheritdoc - */ - public function delete($path) - { - $location = $this->applyPathPrefix($path); - - return unlink($location); - } - - /** - * @inheritdoc - */ - public function listContents($directory = '', $recursive = false) - { - $result = []; - $location = $this->applyPathPrefix($directory); - - if ( ! is_dir($location)) { - return []; - } - - $iterator = $recursive ? $this->getRecursiveDirectoryIterator($location) : $this->getDirectoryIterator($location); - - foreach ($iterator as $file) { - $path = $this->getFilePath($file); - - if (preg_match('#(^|/|\\\\)\.{1,2}$#', $path)) { - continue; - } - - $result[] = $this->normalizeFileInfo($file); - } - - return array_filter($result); - } - - /** - * @inheritdoc - */ - public function getMetadata($path) - { - $location = $this->applyPathPrefix($path); - $info = new SplFileInfo($location); - - return $this->normalizeFileInfo($info); - } - - /** - * @inheritdoc - */ - public function getSize($path) - { - return $this->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function getMimetype($path) - { - $location = $this->applyPathPrefix($path); - $finfo = new Finfo(FILEINFO_MIME_TYPE); - $mimetype = $finfo->file($location); - - if (in_array($mimetype, ['application/octet-stream', 'inode/x-empty'])) { - $mimetype = Util\MimeType::detectByFilename($location); - } - - return ['path' => $path, 'type' => 'file', 'mimetype' => $mimetype]; - } - - /** - * @inheritdoc - */ - public function getTimestamp($path) - { - return $this->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function getVisibility($path) - { - $location = $this->applyPathPrefix($path); - clearstatcache(false, $location); - $permissions = octdec(substr(sprintf('%o', fileperms($location)), -4)); - $visibility = $permissions & 0044 ? AdapterInterface::VISIBILITY_PUBLIC : AdapterInterface::VISIBILITY_PRIVATE; - - return compact('path', 'visibility'); - } - - /** - * @inheritdoc - */ - public function setVisibility($path, $visibility) - { - $location = $this->applyPathPrefix($path); - $type = is_dir($location) ? 'dir' : 'file'; - $success = chmod($location, $this->permissionMap[$type][$visibility]); - - if ($success === false) { - return false; - } - - return compact('path', 'visibility'); - } - - /** - * @inheritdoc - */ - public function createDir($dirname, Config $config) - { - $location = $this->applyPathPrefix($dirname); - $umask = umask(0); - $visibility = $config->get('visibility', 'public'); - - if ( ! is_dir($location) && ! mkdir($location, $this->permissionMap['dir'][$visibility], true)) { - $return = false; - } else { - $return = ['path' => $dirname, 'type' => 'dir']; - } - - umask($umask); - - return $return; - } - - /** - * @inheritdoc - */ - public function deleteDir($dirname) - { - $location = $this->applyPathPrefix($dirname); - - if ( ! is_dir($location)) { - return false; - } - - $contents = $this->getRecursiveDirectoryIterator($location, RecursiveIteratorIterator::CHILD_FIRST); - - /** @var SplFileInfo $file */ - foreach ($contents as $file) { - $this->guardAgainstUnreadableFileInfo($file); - $this->deleteFileInfoObject($file); - } - - return rmdir($location); - } - - /** - * @param SplFileInfo $file - */ - protected function deleteFileInfoObject(SplFileInfo $file) - { - switch ($file->getType()) { - case 'dir': - rmdir($file->getRealPath()); - break; - case 'link': - unlink($file->getPathname()); - break; - default: - unlink($file->getRealPath()); - } - } - - /** - * Normalize the file info. - * - * @param SplFileInfo $file - * - * @return array|void - * - * @throws NotSupportedException - */ - protected function normalizeFileInfo(SplFileInfo $file) - { - if ( ! $file->isLink()) { - return $this->mapFileInfo($file); - } - - if ($this->linkHandling & self::DISALLOW_LINKS) { - throw NotSupportedException::forLink($file); - } - } - - /** - * Get the normalized path from a SplFileInfo object. - * - * @param SplFileInfo $file - * - * @return string - */ - protected function getFilePath(SplFileInfo $file) - { - $location = $file->getPathname(); - $path = $this->removePathPrefix($location); - - return trim(str_replace('\\', '/', $path), '/'); - } - - /** - * @param string $path - * @param int $mode - * - * @return RecursiveIteratorIterator - */ - protected function getRecursiveDirectoryIterator($path, $mode = RecursiveIteratorIterator::SELF_FIRST) - { - return new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS), - $mode - ); - } - - /** - * @param string $path - * - * @return DirectoryIterator - */ - protected function getDirectoryIterator($path) - { - $iterator = new DirectoryIterator($path); - - return $iterator; - } - - /** - * @param SplFileInfo $file - * - * @return array - */ - protected function mapFileInfo(SplFileInfo $file) - { - $normalized = [ - 'type' => $file->getType(), - 'path' => $this->getFilePath($file), - ]; - - $normalized['timestamp'] = $file->getMTime(); - - if ($normalized['type'] === 'file') { - $normalized['size'] = $file->getSize(); - } - - return $normalized; - } - - /** - * @param SplFileInfo $file - * - * @throws UnreadableFileException - */ - protected function guardAgainstUnreadableFileInfo(SplFileInfo $file) - { - if ( ! $file->isReadable()) { - throw UnreadableFileException::forFileInfo($file); - } - } -} diff --git a/vendor/league/flysystem/src/Adapter/NullAdapter.php b/vendor/league/flysystem/src/Adapter/NullAdapter.php deleted file mode 100644 index 2527087f..00000000 --- a/vendor/league/flysystem/src/Adapter/NullAdapter.php +++ /dev/null @@ -1,144 +0,0 @@ -get('visibility')) { - $result['visibility'] = $visibility; - } - - return $result; - } - - /** - * @inheritdoc - */ - public function update($path, $contents, Config $config) - { - return false; - } - - /** - * @inheritdoc - */ - public function read($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function rename($path, $newpath) - { - return false; - } - - /** - * @inheritdoc - */ - public function delete($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function listContents($directory = '', $recursive = false) - { - return []; - } - - /** - * @inheritdoc - */ - public function getMetadata($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function getSize($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function getMimetype($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function getTimestamp($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function getVisibility($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function setVisibility($path, $visibility) - { - return compact('visibility'); - } - - /** - * @inheritdoc - */ - public function createDir($dirname, Config $config) - { - return ['path' => $dirname, 'type' => 'dir']; - } - - /** - * @inheritdoc - */ - public function deleteDir($dirname) - { - return false; - } -} diff --git a/vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php b/vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php deleted file mode 100644 index fc0a747a..00000000 --- a/vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php +++ /dev/null @@ -1,33 +0,0 @@ -readStream($path); - - if ($response === false || ! is_resource($response['stream'])) { - return false; - } - - $result = $this->writeStream($newpath, $response['stream'], new Config()); - - if ($result !== false && is_resource($response['stream'])) { - fclose($response['stream']); - } - - return $result !== false; - } - - // Required abstract method - - /** - * @param string $path - * @return resource - */ - abstract public function readStream($path); - - /** - * @param string $path - * @param resource $resource - * @param Config $config - * @return resource - */ - abstract public function writeStream($path, $resource, Config $config); -} diff --git a/vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php b/vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php deleted file mode 100644 index 2b31c01d..00000000 --- a/vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php +++ /dev/null @@ -1,44 +0,0 @@ -read($path)) { - return false; - } - - $stream = fopen('php://temp', 'w+b'); - fwrite($stream, $data['contents']); - rewind($stream); - $data['stream'] = $stream; - unset($data['contents']); - - return $data; - } - - /** - * Reads a file. - * - * @param string $path - * - * @return array|false - * - * @see League\Flysystem\ReadInterface::read() - */ - abstract public function read($path); -} diff --git a/vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php b/vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php deleted file mode 100644 index 80424960..00000000 --- a/vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php +++ /dev/null @@ -1,9 +0,0 @@ -stream($path, $resource, $config, 'write'); - } - - /** - * Update a file using a stream. - * - * @param string $path - * @param resource $resource - * @param Config $config Config object or visibility setting - * - * @return mixed false of file metadata - */ - public function updateStream($path, $resource, Config $config) - { - return $this->stream($path, $resource, $config, 'update'); - } - - // Required abstract methods - abstract public function write($pash, $contents, Config $config); - abstract public function update($pash, $contents, Config $config); -} diff --git a/vendor/league/flysystem/src/Adapter/SynologyFtp.php b/vendor/league/flysystem/src/Adapter/SynologyFtp.php deleted file mode 100644 index fe0d344c..00000000 --- a/vendor/league/flysystem/src/Adapter/SynologyFtp.php +++ /dev/null @@ -1,8 +0,0 @@ -settings = $settings; - } - - /** - * Get a setting. - * - * @param string $key - * @param mixed $default - * - * @return mixed config setting or default when not found - */ - public function get($key, $default = null) - { - if ( ! array_key_exists($key, $this->settings)) { - return $this->getDefault($key, $default); - } - - return $this->settings[$key]; - } - - /** - * Check if an item exists by key. - * - * @param string $key - * - * @return bool - */ - public function has($key) - { - if (array_key_exists($key, $this->settings)) { - return true; - } - - return $this->fallback instanceof Config - ? $this->fallback->has($key) - : false; - } - - /** - * Try to retrieve a default setting from a config fallback. - * - * @param string $key - * @param mixed $default - * - * @return mixed config setting or default when not found - */ - protected function getDefault($key, $default) - { - if ( ! $this->fallback) { - return $default; - } - - return $this->fallback->get($key, $default); - } - - /** - * Set a setting. - * - * @param string $key - * @param mixed $value - * - * @return $this - */ - public function set($key, $value) - { - $this->settings[$key] = $value; - - return $this; - } - - /** - * Set the fallback. - * - * @param Config $fallback - * - * @return $this - */ - public function setFallback(Config $fallback) - { - $this->fallback = $fallback; - - return $this; - } -} diff --git a/vendor/league/flysystem/src/ConfigAwareTrait.php b/vendor/league/flysystem/src/ConfigAwareTrait.php deleted file mode 100644 index 202d605d..00000000 --- a/vendor/league/flysystem/src/ConfigAwareTrait.php +++ /dev/null @@ -1,49 +0,0 @@ -config = $config ? Util::ensureConfig($config) : new Config; - } - - /** - * Get the Config. - * - * @return Config config object - */ - public function getConfig() - { - return $this->config; - } - - /** - * Convert a config array to a Config object with the correct fallback. - * - * @param array $config - * - * @return Config - */ - protected function prepareConfig(array $config) - { - $config = new Config($config); - $config->setFallback($this->getConfig()); - - return $config; - } -} diff --git a/vendor/league/flysystem/src/Directory.php b/vendor/league/flysystem/src/Directory.php deleted file mode 100644 index 6ba744ba..00000000 --- a/vendor/league/flysystem/src/Directory.php +++ /dev/null @@ -1,28 +0,0 @@ -filesystem->deleteDir($this->path); - } - - /** - * List the directory contents. - * - * @param bool $recursive - * - * @return array|bool directory contents or false - */ - public function getContents($recursive = false) - { - return $this->filesystem->listContents($this->path, $recursive); - } -} diff --git a/vendor/league/flysystem/src/Exception.php b/vendor/league/flysystem/src/Exception.php deleted file mode 100644 index d4a9907b..00000000 --- a/vendor/league/flysystem/src/Exception.php +++ /dev/null @@ -1,8 +0,0 @@ -filesystem->has($this->path); - } - - /** - * Read the file. - * - * @return string|false file contents - */ - public function read() - { - return $this->filesystem->read($this->path); - } - - /** - * Read the file as a stream. - * - * @return resource|false file stream - */ - public function readStream() - { - return $this->filesystem->readStream($this->path); - } - - /** - * Write the new file. - * - * @param string $content - * - * @return bool success boolean - */ - public function write($content) - { - return $this->filesystem->write($this->path, $content); - } - - /** - * Write the new file using a stream. - * - * @param resource $resource - * - * @return bool success boolean - */ - public function writeStream($resource) - { - return $this->filesystem->writeStream($this->path, $resource); - } - - /** - * Update the file contents. - * - * @param string $content - * - * @return bool success boolean - */ - public function update($content) - { - return $this->filesystem->update($this->path, $content); - } - - /** - * Update the file contents with a stream. - * - * @param resource $resource - * - * @return bool success boolean - */ - public function updateStream($resource) - { - return $this->filesystem->updateStream($this->path, $resource); - } - - /** - * Create the file or update if exists. - * - * @param string $content - * - * @return bool success boolean - */ - public function put($content) - { - return $this->filesystem->put($this->path, $content); - } - - /** - * Create the file or update if exists using a stream. - * - * @param resource $resource - * - * @return bool success boolean - */ - public function putStream($resource) - { - return $this->filesystem->putStream($this->path, $resource); - } - - /** - * Rename the file. - * - * @param string $newpath - * - * @return bool success boolean - */ - public function rename($newpath) - { - if ($this->filesystem->rename($this->path, $newpath)) { - $this->path = $newpath; - - return true; - } - - return false; - } - - /** - * Copy the file. - * - * @param string $newpath - * - * @return File|false new file or false - */ - public function copy($newpath) - { - if ($this->filesystem->copy($this->path, $newpath)) { - return new File($this->filesystem, $newpath); - } - - return false; - } - - /** - * Get the file's timestamp. - * - * @return string|false The timestamp or false on failure. - */ - public function getTimestamp() - { - return $this->filesystem->getTimestamp($this->path); - } - - /** - * Get the file's mimetype. - * - * @return string|false The file mime-type or false on failure. - */ - public function getMimetype() - { - return $this->filesystem->getMimetype($this->path); - } - - /** - * Get the file's visibility. - * - * @return string|false The visibility (public|private) or false on failure. - */ - public function getVisibility() - { - return $this->filesystem->getVisibility($this->path); - } - - /** - * Get the file's metadata. - * - * @return array|false The file metadata or false on failure. - */ - public function getMetadata() - { - return $this->filesystem->getMetadata($this->path); - } - - /** - * Get the file size. - * - * @return int|false The file size or false on failure. - */ - public function getSize() - { - return $this->filesystem->getSize($this->path); - } - - /** - * Delete the file. - * - * @return bool success boolean - */ - public function delete() - { - return $this->filesystem->delete($this->path); - } -} diff --git a/vendor/league/flysystem/src/FileExistsException.php b/vendor/league/flysystem/src/FileExistsException.php deleted file mode 100644 index c82e20c1..00000000 --- a/vendor/league/flysystem/src/FileExistsException.php +++ /dev/null @@ -1,37 +0,0 @@ -path = $path; - - parent::__construct('File already exists at path: ' . $this->getPath(), $code, $previous); - } - - /** - * Get the path which was found. - * - * @return string - */ - public function getPath() - { - return $this->path; - } -} diff --git a/vendor/league/flysystem/src/FileNotFoundException.php b/vendor/league/flysystem/src/FileNotFoundException.php deleted file mode 100644 index 989df69b..00000000 --- a/vendor/league/flysystem/src/FileNotFoundException.php +++ /dev/null @@ -1,37 +0,0 @@ -path = $path; - - parent::__construct('File not found at path: ' . $this->getPath(), $code, $previous); - } - - /** - * Get the path which was not found. - * - * @return string - */ - public function getPath() - { - return $this->path; - } -} diff --git a/vendor/league/flysystem/src/Filesystem.php b/vendor/league/flysystem/src/Filesystem.php deleted file mode 100644 index 568510c2..00000000 --- a/vendor/league/flysystem/src/Filesystem.php +++ /dev/null @@ -1,405 +0,0 @@ -adapter = $adapter; - $this->setConfig($config); - } - - /** - * Get the Adapter. - * - * @return AdapterInterface adapter - */ - public function getAdapter() - { - return $this->adapter; - } - - /** - * @inheritdoc - */ - public function has($path) - { - $path = Util::normalizePath($path); - - return strlen($path) === 0 ? false : (bool) $this->getAdapter()->has($path); - } - - /** - * @inheritdoc - */ - public function write($path, $contents, array $config = []) - { - $path = Util::normalizePath($path); - $this->assertAbsent($path); - $config = $this->prepareConfig($config); - - return (bool) $this->getAdapter()->write($path, $contents, $config); - } - - /** - * @inheritdoc - */ - public function writeStream($path, $resource, array $config = []) - { - if ( ! is_resource($resource)) { - throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.'); - } - - $path = Util::normalizePath($path); - $this->assertAbsent($path); - $config = $this->prepareConfig($config); - - Util::rewindStream($resource); - - return (bool) $this->getAdapter()->writeStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function put($path, $contents, array $config = []) - { - $path = Util::normalizePath($path); - $config = $this->prepareConfig($config); - - if ( ! $this->getAdapter() instanceof CanOverwriteFiles && $this->has($path)) { - return (bool) $this->getAdapter()->update($path, $contents, $config); - } - - return (bool) $this->getAdapter()->write($path, $contents, $config); - } - - /** - * @inheritdoc - */ - public function putStream($path, $resource, array $config = []) - { - if ( ! is_resource($resource)) { - throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.'); - } - - $path = Util::normalizePath($path); - $config = $this->prepareConfig($config); - Util::rewindStream($resource); - - if ( ! $this->getAdapter() instanceof CanOverwriteFiles &&$this->has($path)) { - return (bool) $this->getAdapter()->updateStream($path, $resource, $config); - } - - return (bool) $this->getAdapter()->writeStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function readAndDelete($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - $contents = $this->read($path); - - if ($contents === false) { - return false; - } - - $this->delete($path); - - return $contents; - } - - /** - * @inheritdoc - */ - public function update($path, $contents, array $config = []) - { - $path = Util::normalizePath($path); - $config = $this->prepareConfig($config); - - $this->assertPresent($path); - - return (bool) $this->getAdapter()->update($path, $contents, $config); - } - - /** - * @inheritdoc - */ - public function updateStream($path, $resource, array $config = []) - { - if ( ! is_resource($resource)) { - throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.'); - } - - $path = Util::normalizePath($path); - $config = $this->prepareConfig($config); - $this->assertPresent($path); - Util::rewindStream($resource); - - return (bool) $this->getAdapter()->updateStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function read($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if ( ! ($object = $this->getAdapter()->read($path))) { - return false; - } - - return $object['contents']; - } - - /** - * @inheritdoc - */ - public function readStream($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if ( ! $object = $this->getAdapter()->readStream($path)) { - return false; - } - - return $object['stream']; - } - - /** - * @inheritdoc - */ - public function rename($path, $newpath) - { - $path = Util::normalizePath($path); - $newpath = Util::normalizePath($newpath); - $this->assertPresent($path); - $this->assertAbsent($newpath); - - return (bool) $this->getAdapter()->rename($path, $newpath); - } - - /** - * @inheritdoc - */ - public function copy($path, $newpath) - { - $path = Util::normalizePath($path); - $newpath = Util::normalizePath($newpath); - $this->assertPresent($path); - $this->assertAbsent($newpath); - - return $this->getAdapter()->copy($path, $newpath); - } - - /** - * @inheritdoc - */ - public function delete($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - return $this->getAdapter()->delete($path); - } - - /** - * @inheritdoc - */ - public function deleteDir($dirname) - { - $dirname = Util::normalizePath($dirname); - - if ($dirname === '') { - throw new RootViolationException('Root directories can not be deleted.'); - } - - return (bool) $this->getAdapter()->deleteDir($dirname); - } - - /** - * @inheritdoc - */ - public function createDir($dirname, array $config = []) - { - $dirname = Util::normalizePath($dirname); - $config = $this->prepareConfig($config); - - return (bool) $this->getAdapter()->createDir($dirname, $config); - } - - /** - * @inheritdoc - */ - public function listContents($directory = '', $recursive = false) - { - $directory = Util::normalizePath($directory); - $contents = $this->getAdapter()->listContents($directory, $recursive); - - return (new ContentListingFormatter($directory, $recursive))->formatListing($contents); - } - - /** - * @inheritdoc - */ - public function getMimetype($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if (( ! $object = $this->getAdapter()->getMimetype($path)) || ! array_key_exists('mimetype', $object)) { - return false; - } - - return $object['mimetype']; - } - - /** - * @inheritdoc - */ - public function getTimestamp($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if (( ! $object = $this->getAdapter()->getTimestamp($path)) || ! array_key_exists('timestamp', $object)) { - return false; - } - - return $object['timestamp']; - } - - /** - * @inheritdoc - */ - public function getVisibility($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if (( ! $object = $this->getAdapter()->getVisibility($path)) || ! array_key_exists('visibility', $object)) { - return false; - } - - return $object['visibility']; - } - - /** - * @inheritdoc - */ - public function getSize($path) - { - $path = Util::normalizePath($path); - - if (( ! $object = $this->getAdapter()->getSize($path)) || ! array_key_exists('size', $object)) { - return false; - } - - return (int) $object['size']; - } - - /** - * @inheritdoc - */ - public function setVisibility($path, $visibility) - { - $path = Util::normalizePath($path); - - return (bool) $this->getAdapter()->setVisibility($path, $visibility); - } - - /** - * @inheritdoc - */ - public function getMetadata($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - return $this->getAdapter()->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function get($path, Handler $handler = null) - { - $path = Util::normalizePath($path); - - if ( ! $handler) { - $metadata = $this->getMetadata($path); - $handler = $metadata['type'] === 'file' ? new File($this, $path) : new Directory($this, $path); - } - - $handler->setPath($path); - $handler->setFilesystem($this); - - return $handler; - } - - /** - * Assert a file is present. - * - * @param string $path path to file - * - * @throws FileNotFoundException - * - * @return void - */ - public function assertPresent($path) - { - if ($this->config->get('disable_asserts', false) === false && ! $this->has($path)) { - throw new FileNotFoundException($path); - } - } - - /** - * Assert a file is absent. - * - * @param string $path path to file - * - * @throws FileExistsException - * - * @return void - */ - public function assertAbsent($path) - { - if ($this->config->get('disable_asserts', false) === false && $this->has($path)) { - throw new FileExistsException($path); - } - } -} diff --git a/vendor/league/flysystem/src/FilesystemInterface.php b/vendor/league/flysystem/src/FilesystemInterface.php deleted file mode 100644 index 4baec7cc..00000000 --- a/vendor/league/flysystem/src/FilesystemInterface.php +++ /dev/null @@ -1,276 +0,0 @@ -path = $path; - $this->filesystem = $filesystem; - } - - /** - * Check whether the entree is a directory. - * - * @return bool - */ - public function isDir() - { - return $this->getType() === 'dir'; - } - - /** - * Check whether the entree is a file. - * - * @return bool - */ - public function isFile() - { - return $this->getType() === 'file'; - } - - /** - * Retrieve the entree type (file|dir). - * - * @return string file or dir - */ - public function getType() - { - $metadata = $this->filesystem->getMetadata($this->path); - - return $metadata['type']; - } - - /** - * Set the Filesystem object. - * - * @param FilesystemInterface $filesystem - * - * @return $this - */ - public function setFilesystem(FilesystemInterface $filesystem) - { - $this->filesystem = $filesystem; - - return $this; - } - - /** - * Retrieve the Filesystem object. - * - * @return FilesystemInterface - */ - public function getFilesystem() - { - return $this->filesystem; - } - - /** - * Set the entree path. - * - * @param string $path - * - * @return $this - */ - public function setPath($path) - { - $this->path = $path; - - return $this; - } - - /** - * Retrieve the entree path. - * - * @return string path - */ - public function getPath() - { - return $this->path; - } - - /** - * Plugins pass-through. - * - * @param string $method - * @param array $arguments - * - * @return mixed - */ - public function __call($method, array $arguments) - { - array_unshift($arguments, $this->path); - $callback = [$this->filesystem, $method]; - - try { - return call_user_func_array($callback, $arguments); - } catch (BadMethodCallException $e) { - throw new BadMethodCallException( - 'Call to undefined method ' - . get_called_class() - . '::' . $method - ); - } - } -} diff --git a/vendor/league/flysystem/src/MountManager.php b/vendor/league/flysystem/src/MountManager.php deleted file mode 100644 index 706afd6f..00000000 --- a/vendor/league/flysystem/src/MountManager.php +++ /dev/null @@ -1,320 +0,0 @@ - Filesystem,] - * - * @throws InvalidArgumentException - */ - public function __construct(array $filesystems = []) - { - $this->mountFilesystems($filesystems); - } - - /** - * Mount filesystems. - * - * @param FilesystemInterface[] $filesystems [:prefix => Filesystem,] - * - * @throws InvalidArgumentException - * - * @return $this - */ - public function mountFilesystems(array $filesystems) - { - foreach ($filesystems as $prefix => $filesystem) { - $this->mountFilesystem($prefix, $filesystem); - } - - return $this; - } - - /** - * Mount filesystems. - * - * @param string $prefix - * @param FilesystemInterface $filesystem - * - * @throws InvalidArgumentException - * - * @return $this - */ - public function mountFilesystem($prefix, FilesystemInterface $filesystem) - { - if ( ! is_string($prefix)) { - throw new InvalidArgumentException(__METHOD__ . ' expects argument #1 to be a string.'); - } - - $this->filesystems[$prefix] = $filesystem; - - return $this; - } - - /** - * Get the filesystem with the corresponding prefix. - * - * @param string $prefix - * - * @throws FilesystemNotFoundException - * - * @return FilesystemInterface - */ - public function getFilesystem($prefix) - { - if ( ! isset($this->filesystems[$prefix])) { - throw new FilesystemNotFoundException('No filesystem mounted with prefix ' . $prefix); - } - - return $this->filesystems[$prefix]; - } - - /** - * Retrieve the prefix from an arguments array. - * - * @param array $arguments - * - * @throws InvalidArgumentException - * - * @return array [:prefix, :arguments] - */ - public function filterPrefix(array $arguments) - { - if (empty($arguments)) { - throw new InvalidArgumentException('At least one argument needed'); - } - - $path = array_shift($arguments); - - if ( ! is_string($path)) { - throw new InvalidArgumentException('First argument should be a string'); - } - - list($prefix, $path) = $this->getPrefixAndPath($path); - array_unshift($arguments, $path); - - return [$prefix, $arguments]; - } - - /** - * @param string $directory - * @param bool $recursive - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return array - */ - public function listContents($directory = '', $recursive = false) - { - list($prefix, $directory) = $this->getPrefixAndPath($directory); - $filesystem = $this->getFilesystem($prefix); - $result = $filesystem->listContents($directory, $recursive); - - foreach ($result as &$file) { - $file['filesystem'] = $prefix; - } - - return $result; - } - - /** - * Call forwarder. - * - * @param string $method - * @param array $arguments - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return mixed - */ - public function __call($method, $arguments) - { - list($prefix, $arguments) = $this->filterPrefix($arguments); - - return $this->invokePluginOnFilesystem($method, $arguments, $prefix); - } - - /** - * @param string $from - * @param string $to - * @param array $config - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return bool - */ - public function copy($from, $to, array $config = []) - { - list($prefixFrom, $from) = $this->getPrefixAndPath($from); - - $buffer = $this->getFilesystem($prefixFrom)->readStream($from); - - if ($buffer === false) { - return false; - } - - list($prefixTo, $to) = $this->getPrefixAndPath($to); - - $result = $this->getFilesystem($prefixTo)->writeStream($to, $buffer, $config); - - if (is_resource($buffer)) { - fclose($buffer); - } - - return $result; - } - - /** - * List with plugin adapter. - * - * @param array $keys - * @param string $directory - * @param bool $recursive - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return array - */ - public function listWith(array $keys = [], $directory = '', $recursive = false) - { - list($prefix, $directory) = $this->getPrefixAndPath($directory); - $arguments = [$keys, $directory, $recursive]; - - return $this->invokePluginOnFilesystem('listWith', $arguments, $prefix); - } - - /** - * Move a file. - * - * @param string $from - * @param string $to - * @param array $config - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return bool - */ - public function move($from, $to, array $config = []) - { - list($prefixFrom, $pathFrom) = $this->getPrefixAndPath($from); - list($prefixTo, $pathTo) = $this->getPrefixAndPath($to); - - if ($prefixFrom === $prefixTo) { - $filesystem = $this->getFilesystem($prefixFrom); - $renamed = $filesystem->rename($pathFrom, $pathTo); - - if ($renamed && isset($config['visibility'])) { - return $filesystem->setVisibility($pathTo, $config['visibility']); - } - - return $renamed; - } - - $copied = $this->copy($from, $to, $config); - - if ($copied) { - return $this->delete($from); - } - - return false; - } - - /** - * Invoke a plugin on a filesystem mounted on a given prefix. - * - * @param string $method - * @param array $arguments - * @param string $prefix - * - * @throws FilesystemNotFoundException - * - * @return mixed - */ - public function invokePluginOnFilesystem($method, $arguments, $prefix) - { - $filesystem = $this->getFilesystem($prefix); - - try { - return $this->invokePlugin($method, $arguments, $filesystem); - } catch (PluginNotFoundException $e) { - // Let it pass, it's ok, don't panic. - } - - $callback = [$filesystem, $method]; - - return call_user_func_array($callback, $arguments); - } - - /** - * @param string $path - * - * @throws InvalidArgumentException - * - * @return string[] [:prefix, :path] - */ - protected function getPrefixAndPath($path) - { - if (strpos($path, '://') < 1) { - throw new InvalidArgumentException('No prefix detected in path: ' . $path); - } - - return explode('://', $path, 2); - } -} diff --git a/vendor/league/flysystem/src/NotSupportedException.php b/vendor/league/flysystem/src/NotSupportedException.php deleted file mode 100644 index 08f47f74..00000000 --- a/vendor/league/flysystem/src/NotSupportedException.php +++ /dev/null @@ -1,37 +0,0 @@ -getPathname()); - } - - /** - * Create a new exception for a link. - * - * @param string $systemType - * - * @return static - */ - public static function forFtpSystemType($systemType) - { - $message = "The FTP system type '$systemType' is currently not supported."; - - return new static($message); - } -} diff --git a/vendor/league/flysystem/src/Plugin/AbstractPlugin.php b/vendor/league/flysystem/src/Plugin/AbstractPlugin.php deleted file mode 100644 index 0d567897..00000000 --- a/vendor/league/flysystem/src/Plugin/AbstractPlugin.php +++ /dev/null @@ -1,24 +0,0 @@ -filesystem = $filesystem; - } -} diff --git a/vendor/league/flysystem/src/Plugin/EmptyDir.php b/vendor/league/flysystem/src/Plugin/EmptyDir.php deleted file mode 100644 index b5ae7f58..00000000 --- a/vendor/league/flysystem/src/Plugin/EmptyDir.php +++ /dev/null @@ -1,34 +0,0 @@ -filesystem->listContents($dirname, false); - - foreach ($listing as $item) { - if ($item['type'] === 'dir') { - $this->filesystem->deleteDir($item['path']); - } else { - $this->filesystem->delete($item['path']); - } - } - } -} diff --git a/vendor/league/flysystem/src/Plugin/ForcedCopy.php b/vendor/league/flysystem/src/Plugin/ForcedCopy.php deleted file mode 100644 index d2fc3795..00000000 --- a/vendor/league/flysystem/src/Plugin/ForcedCopy.php +++ /dev/null @@ -1,42 +0,0 @@ -filesystem->delete($newpath); - } catch (FileNotFoundException $e) { - // The destination path does not exist. That's ok. - $deleted = true; - } - - if ($deleted) { - return $this->filesystem->copy($path, $newpath); - } - - return false; - } -} diff --git a/vendor/league/flysystem/src/Plugin/ForcedRename.php b/vendor/league/flysystem/src/Plugin/ForcedRename.php deleted file mode 100644 index 7c081b6c..00000000 --- a/vendor/league/flysystem/src/Plugin/ForcedRename.php +++ /dev/null @@ -1,42 +0,0 @@ -filesystem->delete($newpath); - } catch (FileNotFoundException $e) { - // The destination path does not exist. That's ok. - $deleted = true; - } - - if ($deleted) { - return $this->filesystem->rename($path, $newpath); - } - - return false; - } -} diff --git a/vendor/league/flysystem/src/Plugin/GetWithMetadata.php b/vendor/league/flysystem/src/Plugin/GetWithMetadata.php deleted file mode 100644 index bc39ef81..00000000 --- a/vendor/league/flysystem/src/Plugin/GetWithMetadata.php +++ /dev/null @@ -1,49 +0,0 @@ -filesystem->getMetadata($path); - - if ( ! $object) { - return false; - } - - $keys = array_diff($metadata, array_keys($object)); - - foreach ($keys as $key) { - if ( ! method_exists($this->filesystem, $method = 'get' . ucfirst($key))) { - throw new InvalidArgumentException('Could not fetch metadata: ' . $key); - } - - $object[$key] = $this->filesystem->{$method}($path); - } - - return $object; - } -} diff --git a/vendor/league/flysystem/src/Plugin/ListFiles.php b/vendor/league/flysystem/src/Plugin/ListFiles.php deleted file mode 100644 index 9669fe7e..00000000 --- a/vendor/league/flysystem/src/Plugin/ListFiles.php +++ /dev/null @@ -1,35 +0,0 @@ -filesystem->listContents($directory, $recursive); - - $filter = function ($object) { - return $object['type'] === 'file'; - }; - - return array_values(array_filter($contents, $filter)); - } -} diff --git a/vendor/league/flysystem/src/Plugin/ListPaths.php b/vendor/league/flysystem/src/Plugin/ListPaths.php deleted file mode 100644 index 514bdf0b..00000000 --- a/vendor/league/flysystem/src/Plugin/ListPaths.php +++ /dev/null @@ -1,36 +0,0 @@ -filesystem->listContents($directory, $recursive); - - foreach ($contents as $object) { - $result[] = $object['path']; - } - - return $result; - } -} diff --git a/vendor/league/flysystem/src/Plugin/ListWith.php b/vendor/league/flysystem/src/Plugin/ListWith.php deleted file mode 100644 index d90464e5..00000000 --- a/vendor/league/flysystem/src/Plugin/ListWith.php +++ /dev/null @@ -1,60 +0,0 @@ -filesystem->listContents($directory, $recursive); - - foreach ($contents as $index => $object) { - if ($object['type'] === 'file') { - $missingKeys = array_diff($keys, array_keys($object)); - $contents[$index] = array_reduce($missingKeys, [$this, 'getMetadataByName'], $object); - } - } - - return $contents; - } - - /** - * Get a meta-data value by key name. - * - * @param array $object - * @param string $key - * - * @return array - */ - protected function getMetadataByName(array $object, $key) - { - $method = 'get' . ucfirst($key); - - if ( ! method_exists($this->filesystem, $method)) { - throw new \InvalidArgumentException('Could not get meta-data for key: ' . $key); - } - - $object[$key] = $this->filesystem->{$method}($object['path']); - - return $object; - } -} diff --git a/vendor/league/flysystem/src/Plugin/PluggableTrait.php b/vendor/league/flysystem/src/Plugin/PluggableTrait.php deleted file mode 100644 index 922edfe5..00000000 --- a/vendor/league/flysystem/src/Plugin/PluggableTrait.php +++ /dev/null @@ -1,97 +0,0 @@ -plugins[$plugin->getMethod()] = $plugin; - - return $this; - } - - /** - * Find a specific plugin. - * - * @param string $method - * - * @throws PluginNotFoundException - * - * @return PluginInterface - */ - protected function findPlugin($method) - { - if ( ! isset($this->plugins[$method])) { - throw new PluginNotFoundException('Plugin not found for method: ' . $method); - } - - return $this->plugins[$method]; - } - - /** - * Invoke a plugin by method name. - * - * @param string $method - * @param array $arguments - * @param FilesystemInterface $filesystem - * - * @throws PluginNotFoundException - * - * @return mixed - */ - protected function invokePlugin($method, array $arguments, FilesystemInterface $filesystem) - { - $plugin = $this->findPlugin($method); - $plugin->setFilesystem($filesystem); - $callback = [$plugin, 'handle']; - - return call_user_func_array($callback, $arguments); - } - - /** - * Plugins pass-through. - * - * @param string $method - * @param array $arguments - * - * @throws BadMethodCallException - * - * @return mixed - */ - public function __call($method, array $arguments) - { - try { - return $this->invokePlugin($method, $arguments, $this); - } catch (PluginNotFoundException $e) { - throw new BadMethodCallException( - 'Call to undefined method ' - . get_class($this) - . '::' . $method - ); - } - } -} diff --git a/vendor/league/flysystem/src/Plugin/PluginNotFoundException.php b/vendor/league/flysystem/src/Plugin/PluginNotFoundException.php deleted file mode 100644 index fd1d7e7e..00000000 --- a/vendor/league/flysystem/src/Plugin/PluginNotFoundException.php +++ /dev/null @@ -1,10 +0,0 @@ -hash = spl_object_hash($this); - static::$safeStorage[$this->hash] = []; - } - - public function storeSafely($key, $value) - { - static::$safeStorage[$this->hash][$key] = $value; - } - - public function retrieveSafely($key) - { - if (array_key_exists($key, static::$safeStorage[$this->hash])) { - return static::$safeStorage[$this->hash][$key]; - } - } - - public function __destruct() - { - unset(static::$safeStorage[$this->hash]); - } -} diff --git a/vendor/league/flysystem/src/UnreadableFileException.php b/vendor/league/flysystem/src/UnreadableFileException.php deleted file mode 100644 index e6680338..00000000 --- a/vendor/league/flysystem/src/UnreadableFileException.php +++ /dev/null @@ -1,18 +0,0 @@ -getRealPath() - ) - ); - } -} diff --git a/vendor/league/flysystem/src/Util.php b/vendor/league/flysystem/src/Util.php deleted file mode 100644 index 1a74292e..00000000 --- a/vendor/league/flysystem/src/Util.php +++ /dev/null @@ -1,348 +0,0 @@ - $to) { - if ( ! isset($object[$from])) { - continue; - } - - $result[$to] = $object[$from]; - } - - return $result; - } - - /** - * Normalize path. - * - * @param string $path - * - * @throws LogicException - * - * @return string - */ - public static function normalizePath($path) - { - return static::normalizeRelativePath($path); - } - - /** - * Normalize relative directories in a path. - * - * @param string $path - * - * @throws LogicException - * - * @return string - */ - public static function normalizeRelativePath($path) - { - $path = str_replace('\\', '/', $path); - $path = static::removeFunkyWhiteSpace($path); - - $parts = []; - - foreach (explode('/', $path) as $part) { - switch ($part) { - case '': - case '.': - break; - - case '..': - if (empty($parts)) { - throw new LogicException( - 'Path is outside of the defined root, path: [' . $path . ']' - ); - } - array_pop($parts); - break; - - default: - $parts[] = $part; - break; - } - } - - return implode('/', $parts); - } - - /** - * Removes unprintable characters and invalid unicode characters. - * - * @param string $path - * - * @return string $path - */ - protected static function removeFunkyWhiteSpace($path) { - // We do this check in a loop, since removing invalid unicode characters - // can lead to new characters being created. - while (preg_match('#\p{C}+|^\./#u', $path)) { - $path = preg_replace('#\p{C}+|^\./#u', '', $path); - } - - return $path; - } - - /** - * Normalize prefix. - * - * @param string $prefix - * @param string $separator - * - * @return string normalized path - */ - public static function normalizePrefix($prefix, $separator) - { - return rtrim($prefix, $separator) . $separator; - } - - /** - * Get content size. - * - * @param string $contents - * - * @return int content size - */ - public static function contentSize($contents) - { - return defined('MB_OVERLOAD_STRING') ? mb_strlen($contents, '8bit') : strlen($contents); - } - - /** - * Guess MIME Type based on the path of the file and it's content. - * - * @param string $path - * @param string|resource $content - * - * @return string|null MIME Type or NULL if no extension detected - */ - public static function guessMimeType($path, $content) - { - $mimeType = MimeType::detectByContent($content); - - if ( ! (empty($mimeType) || in_array($mimeType, ['application/x-empty', 'text/plain', 'text/x-asm']))) { - return $mimeType; - } - - return MimeType::detectByFilename($path); - } - - /** - * Emulate directories. - * - * @param array $listing - * - * @return array listing with emulated directories - */ - public static function emulateDirectories(array $listing) - { - $directories = []; - $listedDirectories = []; - - foreach ($listing as $object) { - list($directories, $listedDirectories) = static::emulateObjectDirectories($object, $directories, $listedDirectories); - } - - $directories = array_diff(array_unique($directories), array_unique($listedDirectories)); - - foreach ($directories as $directory) { - $listing[] = static::pathinfo($directory) + ['type' => 'dir']; - } - - return $listing; - } - - /** - * Ensure a Config instance. - * - * @param null|array|Config $config - * - * @return Config config instance - * - * @throw LogicException - */ - public static function ensureConfig($config) - { - if ($config === null) { - return new Config(); - } - - if ($config instanceof Config) { - return $config; - } - - if (is_array($config)) { - return new Config($config); - } - - throw new LogicException('A config should either be an array or a Flysystem\Config object.'); - } - - /** - * Rewind a stream. - * - * @param resource $resource - */ - public static function rewindStream($resource) - { - if (ftell($resource) !== 0 && static::isSeekableStream($resource)) { - rewind($resource); - } - } - - public static function isSeekableStream($resource) - { - $metadata = stream_get_meta_data($resource); - - return $metadata['seekable']; - } - - /** - * Get the size of a stream. - * - * @param resource $resource - * - * @return int stream size - */ - public static function getStreamSize($resource) - { - $stat = fstat($resource); - - return $stat['size']; - } - - /** - * Emulate the directories of a single object. - * - * @param array $object - * @param array $directories - * @param array $listedDirectories - * - * @return array - */ - protected static function emulateObjectDirectories(array $object, array $directories, array $listedDirectories) - { - if ($object['type'] === 'dir') { - $listedDirectories[] = $object['path']; - } - - if (empty($object['dirname'])) { - return [$directories, $listedDirectories]; - } - - $parent = $object['dirname']; - - while ( ! empty($parent) && ! in_array($parent, $directories)) { - $directories[] = $parent; - $parent = static::dirname($parent); - } - - if (isset($object['type']) && $object['type'] === 'dir') { - $listedDirectories[] = $object['path']; - - return [$directories, $listedDirectories]; - } - - return [$directories, $listedDirectories]; - } - - /** - * Returns the trailing name component of the path. - * - * @param string $path - * - * @return string - */ - private static function basename($path) - { - $separators = DIRECTORY_SEPARATOR === '/' ? '/' : '\/'; - - $path = rtrim($path, $separators); - - $basename = preg_replace('#.*?([^' . preg_quote($separators, '#') . ']+$)#', '$1', $path); - - if (DIRECTORY_SEPARATOR === '/') { - return $basename; - } - // @codeCoverageIgnoreStart - // Extra Windows path munging. This is tested via AppVeyor, but code - // coverage is not reported. - - // Handle relative paths with drive letters. c:file.txt. - while (preg_match('#^[a-zA-Z]{1}:[^\\\/]#', $basename)) { - $basename = substr($basename, 2); - } - - // Remove colon for standalone drive letter names. - if (preg_match('#^[a-zA-Z]{1}:$#', $basename)) { - $basename = rtrim($basename, ':'); - } - - return $basename; - // @codeCoverageIgnoreEnd - } -} diff --git a/vendor/league/flysystem/src/Util/ContentListingFormatter.php b/vendor/league/flysystem/src/Util/ContentListingFormatter.php deleted file mode 100644 index 5a8c95a8..00000000 --- a/vendor/league/flysystem/src/Util/ContentListingFormatter.php +++ /dev/null @@ -1,116 +0,0 @@ -directory = $directory; - $this->recursive = $recursive; - } - - /** - * Format contents listing. - * - * @param array $listing - * - * @return array - */ - public function formatListing(array $listing) - { - $listing = array_values( - array_map( - [$this, 'addPathInfo'], - array_filter($listing, [$this, 'isEntryOutOfScope']) - ) - ); - - return $this->sortListing($listing); - } - - private function addPathInfo(array $entry) - { - return $entry + Util::pathinfo($entry['path']); - } - - /** - * Determine if the entry is out of scope. - * - * @param array $entry - * - * @return bool - */ - private function isEntryOutOfScope(array $entry) - { - if (empty($entry['path']) && $entry['path'] !== '0') { - return false; - } - - if ($this->recursive) { - return $this->residesInDirectory($entry); - } - - return $this->isDirectChild($entry); - } - - /** - * Check if the entry resides within the parent directory. - * - * @param array $entry - * - * @return bool - */ - private function residesInDirectory(array $entry) - { - if ($this->directory === '') { - return true; - } - - return strpos($entry['path'], $this->directory . '/') === 0; - } - - /** - * Check if the entry is a direct child of the directory. - * - * @param array $entry - * - * @return bool - */ - private function isDirectChild(array $entry) - { - return Util::dirname($entry['path']) === $this->directory; - } - - /** - * @param array $listing - * - * @return array - */ - private function sortListing(array $listing) - { - usort($listing, function ($a, $b) { - return strcasecmp($a['path'], $b['path']); - }); - - return $listing; - } -} diff --git a/vendor/league/flysystem/src/Util/MimeType.php b/vendor/league/flysystem/src/Util/MimeType.php deleted file mode 100644 index 7e536862..00000000 --- a/vendor/league/flysystem/src/Util/MimeType.php +++ /dev/null @@ -1,217 +0,0 @@ -buffer($content) ?: null; - // @codeCoverageIgnoreStart - } catch( ErrorException $e ) { - // This is caused by an array to string conversion error. - } - } // @codeCoverageIgnoreEnd - - /** - * Detects MIME Type based on file extension. - * - * @param string $extension - * - * @return string|null MIME Type or NULL if no extension detected - */ - public static function detectByFileExtension($extension) - { - static $extensionToMimeTypeMap; - - if (! $extensionToMimeTypeMap) { - $extensionToMimeTypeMap = static::getExtensionToMimeTypeMap(); - } - - if (isset($extensionToMimeTypeMap[$extension])) { - return $extensionToMimeTypeMap[$extension]; - } - - return 'text/plain'; - } - - /** - * @param string $filename - * - * @return string|null MIME Type or NULL if no extension detected - */ - public static function detectByFilename($filename) - { - $extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); - - return empty($extension) ? 'text/plain' : static::detectByFileExtension($extension); - } - - /** - * @return array Map of file extension to MIME Type - */ - public static function getExtensionToMimeTypeMap() - { - return [ - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'csv' => 'text/x-comma-separated-values', - 'bin' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'exe' => 'application/octet-stream', - 'class' => 'application/octet-stream', - 'psd' => 'application/x-photoshop', - 'so' => 'application/octet-stream', - 'sea' => 'application/octet-stream', - 'dll' => 'application/octet-stream', - 'oda' => 'application/oda', - 'pdf' => 'application/pdf', - 'ai' => 'application/pdf', - 'eps' => 'application/postscript', - 'ps' => 'application/postscript', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'mif' => 'application/vnd.mif', - 'xls' => 'application/vnd.ms-excel', - 'ppt' => 'application/powerpoint', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'wbxml' => 'application/wbxml', - 'wmlc' => 'application/wmlc', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dxr' => 'application/x-director', - 'dvi' => 'application/x-dvi', - 'gtar' => 'application/x-gtar', - 'gz' => 'application/x-gzip', - 'gzip' => 'application/x-gzip', - 'php' => 'application/x-httpd-php', - 'php4' => 'application/x-httpd-php', - 'php3' => 'application/x-httpd-php', - 'phtml' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'js' => 'application/javascript', - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'tar' => 'application/x-tar', - 'tgz' => 'application/x-tar', - 'z' => 'application/x-compress', - 'xhtml' => 'application/xhtml+xml', - 'xht' => 'application/xhtml+xml', - 'zip' => 'application/x-zip', - 'rar' => 'application/x-rar', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mpga' => 'audio/mpeg', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'aif' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'ra' => 'audio/x-realaudio', - 'rv' => 'video/vnd.rn-realvideo', - 'wav' => 'audio/x-wav', - 'jpg' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'png' => 'image/png', - 'gif' => 'image/gif', - 'bmp' => 'image/bmp', - 'tiff' => 'image/tiff', - 'tif' => 'image/tiff', - 'svg' => 'image/svg+xml', - 'css' => 'text/css', - 'html' => 'text/html', - 'htm' => 'text/html', - 'shtml' => 'text/html', - 'txt' => 'text/plain', - 'text' => 'text/plain', - 'log' => 'text/plain', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'xml' => 'application/xml', - 'xsl' => 'application/xml', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'qt' => 'video/quicktime', - 'mov' => 'video/quicktime', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie', - 'doc' => 'application/msword', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dot' => 'application/msword', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'word' => 'application/msword', - 'xl' => 'application/excel', - 'eml' => 'message/rfc822', - 'json' => 'application/json', - 'pem' => 'application/x-x509-user-cert', - 'p10' => 'application/x-pkcs10', - 'p12' => 'application/x-pkcs12', - 'p7a' => 'application/x-pkcs7-signature', - 'p7c' => 'application/pkcs7-mime', - 'p7m' => 'application/pkcs7-mime', - 'p7r' => 'application/x-pkcs7-certreqresp', - 'p7s' => 'application/pkcs7-signature', - 'crt' => 'application/x-x509-ca-cert', - 'crl' => 'application/pkix-crl', - 'der' => 'application/x-x509-ca-cert', - 'kdb' => 'application/octet-stream', - 'pgp' => 'application/pgp', - 'gpg' => 'application/gpg-keys', - 'sst' => 'application/octet-stream', - 'csr' => 'application/octet-stream', - 'rsa' => 'application/x-pkcs7', - 'cer' => 'application/pkix-cert', - '3g2' => 'video/3gpp2', - '3gp' => 'video/3gp', - 'mp4' => 'video/mp4', - 'm4a' => 'audio/x-m4a', - 'f4v' => 'video/mp4', - 'webm' => 'video/webm', - 'aac' => 'audio/x-acc', - 'm4u' => 'application/vnd.mpegurl', - 'm3u' => 'text/plain', - 'xspf' => 'application/xspf+xml', - 'vlc' => 'application/videolan', - 'wmv' => 'video/x-ms-wmv', - 'au' => 'audio/x-au', - 'ac3' => 'audio/ac3', - 'flac' => 'audio/x-flac', - 'ogg' => 'audio/ogg', - 'kmz' => 'application/vnd.google-earth.kmz', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'ics' => 'text/calendar', - 'zsh' => 'text/x-scriptzsh', - '7zip' => 'application/x-7z-compressed', - 'cdr' => 'application/cdr', - 'wma' => 'audio/x-ms-wma', - 'jar' => 'application/java-archive', - ]; - } -} diff --git a/vendor/league/flysystem/src/Util/StreamHasher.php b/vendor/league/flysystem/src/Util/StreamHasher.php deleted file mode 100644 index 938ec5db..00000000 --- a/vendor/league/flysystem/src/Util/StreamHasher.php +++ /dev/null @@ -1,36 +0,0 @@ -algo = $algo; - } - - /** - * @param resource $resource - * - * @return string - */ - public function hash($resource) - { - rewind($resource); - $context = hash_init($this->algo); - hash_update_stream($context, $resource); - fclose($resource); - - return hash_final($context); - } -} diff --git a/vendor/league/flysystem/wait_for_ftp_service.php b/vendor/league/flysystem/wait_for_ftp_service.php deleted file mode 100644 index 4f126726..00000000 --- a/vendor/league/flysystem/wait_for_ftp_service.php +++ /dev/null @@ -1,20 +0,0 @@ - 10) { - fwrite(STDOUT, "Failed to connect.\n"); - exit(1); -} - -sleep(1); -fwrite(STDOUT, "Waiting for a connection...\n"); -goto start; \ No newline at end of file diff --git a/vendor/mockery/mockery/.gitignore b/vendor/mockery/mockery/.gitignore deleted file mode 100644 index 5b2beb3e..00000000 --- a/vendor/mockery/mockery/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*~ -pearfarm.spec -*.sublime-project -library/Hamcrest/* -composer.lock -vendor/ -composer.phar -test.php -build/ -phpunit.xml -*.DS_store -.idea/* -.php_cs.cache diff --git a/vendor/mockery/mockery/.php_cs b/vendor/mockery/mockery/.php_cs deleted file mode 100644 index be098ba3..00000000 --- a/vendor/mockery/mockery/.php_cs +++ /dev/null @@ -1,30 +0,0 @@ -in([ - 'library', - 'tests', - ]); - - return PhpCsFixer\Config::create() - ->setRules(array( - '@PSR2' => true, - )) - ->setUsingCache(true) - ->setFinder($finder) - ; -} - -$finder = DefaultFinder::create()->in( - [ - 'library', - 'tests', - ]); - -return Config::create() - ->level('psr2') - ->setUsingCache(true) - ->finder($finder); diff --git a/vendor/mockery/mockery/.scrutinizer.yml b/vendor/mockery/mockery/.scrutinizer.yml deleted file mode 100644 index 29347813..00000000 --- a/vendor/mockery/mockery/.scrutinizer.yml +++ /dev/null @@ -1,24 +0,0 @@ -filter: - paths: [library/*] - excluded_paths: [vendor/*, tests/*, examples/*] -before_commands: - - 'composer install --prefer-source' -tools: - external_code_coverage: - timeout: 300 - php_code_sniffer: true - php_cpd: - enabled: true - excluded_dirs: [vendor, tests, examples] - php_pdepend: - enabled: true - excluded_dirs: [vendor, tests, examples] - php_loc: - enabled: true - excluded_dirs: [vendor, tests, examples] - php_hhvm: false - php_mess_detector: true - php_analyzer: true -changetracking: - bug_patterns: ["\bfix(?:es|ed)?\b"] - feature_patterns: ["\badd(?:s|ed)?\b", "\bimplement(?:s|ed)?\b"] diff --git a/vendor/mockery/mockery/.styleci.yml b/vendor/mockery/mockery/.styleci.yml deleted file mode 100644 index cadbbdc2..00000000 --- a/vendor/mockery/mockery/.styleci.yml +++ /dev/null @@ -1,6 +0,0 @@ -preset: psr2 - -finder: - not-name: - - MockingParameterAndReturnTypesTest.php - - SemiReservedWordsAsMethods.php diff --git a/vendor/mockery/mockery/.travis.yml b/vendor/mockery/mockery/.travis.yml deleted file mode 100644 index 62a1ddf0..00000000 --- a/vendor/mockery/mockery/.travis.yml +++ /dev/null @@ -1,82 +0,0 @@ -sudo: false - -language: php - -matrix: - allow_failures: - - php: hhvm - - php: nightly - fast_finish: true - include: - - php: 5.6 - env: - - DEPS=lowest - - php: 5.6 - env: - - DEPS=latest - - php: 5.6 - env: - - PHPUNIT=minimum - - DEPS=latest - - php: 7.0 - env: - - DEPS=lowest - - php: 7.0 - env: - - DEPS=latest - - php: 7.1 - env: - - DEPS=lowest - - php: 7.1 - env: - - DEPS=latest - - php: nightly - env: - - DEPS=lowest - - php: nightly - env: - - DEPS=latest - - php: hhvm - env: - - DEPS=lowest - - php: hhvm - env: - - DEPS=latest - -cache: - directories: - - .composer/cache - -before_install: - - alias composer=composer\ -n && composer self-update - -install: - - if [[ $PHPUNIT == 'minimum' ]]; then sed -i 's/~5.7|/5.4.*|/g' ./composer.json ; fi - - if [[ $DEPS == 'latest' ]]; then travis_retry composer update --no-interaction ; fi - - if [[ $DEPS == 'lowest' ]]; then travis_retry composer update --prefer-lowest --prefer-stable --no-interaction ; fi - -before_script: - # Install extensions for PHP 5.x series. 7.x includes them by default. - - | - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then - cat <<< ' - extension=mongo.so - extension=redis.so - ' >> ~/.phpenv/versions/"$(phpenv version-name)"/etc/conf.d/travis.ini - fi - -script: - - vendor/bin/phpunit --coverage-text --coverage-clover=${clover=build/logs/clover.xml} - -after_success: - - composer require satooshi/php-coveralls - - vendor/bin/coveralls -v - - wget https://scrutinizer-ci.com/ocular.phar - - php ocular.phar code-coverage:upload --format=php-clover "$clover" - -notifications: - email: - - padraic.brady@gmail.com - - dave@atstsolutions.co.uk - - irc: irc.freenode.org#mockery diff --git a/vendor/mockery/mockery/CHANGELOG.md b/vendor/mockery/mockery/CHANGELOG.md deleted file mode 100644 index 43ed7a70..00000000 --- a/vendor/mockery/mockery/CHANGELOG.md +++ /dev/null @@ -1,72 +0,0 @@ -# Change Log - -## 1.0.0 (2017-09-06) - -* Destructors (`__destruct`) are stubbed out where it makes sense -* Allow passing a closure argument to `withArgs()` to validate multiple arguments at once. -* `Mockery\Adapter\Phpunit\TestListener` has been rewritten because it - incorrectly marked some tests as risky. It will no longer verify mock - expectations but instead check that tests do that themselves. PHPUnit 6 is - required if you want to use this fail safe. -* Removes SPL Class Loader -* Removed object recorder feature -* Bumped minimum PHP version to 5.6 -* `andThrow` will now throw anything `\Throwable` -* Adds `allows` and `expects` syntax -* Adds optional global helpers for `mock`, `namedMock` and `spy` -* Adds ability to create objects using traits -* `Mockery\Matcher\MustBe` was deprecated -* Marked `Mockery\MockInterface` as internal -* Subset matcher matches recusively -* BC BREAK - Spies return `null` by default from ignored (non-mocked) methods with nullable return type -* Removed extracting getter methods of object instances -* BC BREAK - Remove implicit regex matching when trying to match string arguments, introduce `\Mockery::pattern()` when regex matching is needed -* Fix Mockery not getting closed in cases of failing test cases -* Fix Mockery not setting properties on overloaded instance mocks -* BC BREAK - Fix Mockery not trying default expectations if there is any concrete expectation -* BC BREAK - Mockery's PHPUnit integration will mark a test as risky if it - thinks one it's exceptions has been swallowed in PHPUnit > 5.7.6. Use `$e->dismiss()` to dismiss. - - -## 0.9.4 (XXXX-XX-XX) - -* `shouldIgnoreMissing` will respect global `allowMockingNonExistentMethods` - config -* Some support for variadic parameters -* Hamcrest is now a required dependency -* Instance mocks now respect `shouldIgnoreMissing` call on control instance -* This will be the *last version to support PHP 5.3* -* Added `Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration` trait -* Added `makePartial` to `Mockery\MockInterface` as it was missing - -## 0.9.3 (2014-12-22) - -* Added a basic spy implementation -* Added `Mockery\Adapter\Phpunit\MockeryTestCase` for more reliable PHPUnit - integration - -## 0.9.2 (2014-09-03) - -* Some workarounds for the serilisation problems created by changes to PHP in 5.5.13, 5.4.29, - 5.6. -* Demeter chains attempt to reuse doubles as they see fit, so for foo->bar and - foo->baz, we'll attempt to use the same foo - -## 0.9.1 (2014-05-02) - -* Allow specifying consecutive exceptions to be thrown with `andThrowExceptions` -* Allow specifying methods which can be mocked when using - `Mockery\Configuration::allowMockingNonExistentMethods(false)` with - `Mockery\MockInterface::shouldAllowMockingMethod($methodName)` -* Added andReturnSelf method: `$mock->shouldReceive("foo")->andReturnSelf()` -* `shouldIgnoreMissing` now takes an optional value that will be return instead - of null, e.g. `$mock->shouldIgnoreMissing($mock)` - -## 0.9.0 (2014-02-05) - -* Allow mocking classes with final __wakeup() method -* Quick definitions are now always `byDefault` -* Allow mocking of protected methods with `shouldAllowMockingProtectedMethods` -* Support official Hamcrest package -* Generator completely rewritten -* Easily create named mocks with namedMock diff --git a/vendor/mockery/mockery/CONTRIBUTING.md b/vendor/mockery/mockery/CONTRIBUTING.md deleted file mode 100644 index 9992dc43..00000000 --- a/vendor/mockery/mockery/CONTRIBUTING.md +++ /dev/null @@ -1,88 +0,0 @@ -# Contributing - - -We'd love you to help out with mockery and no contribution is too small. - - -## Reporting Bugs - -Issues can be reported on the [issue -tracker](https://github.com/padraic/mockery/issues). Please try and report any -bugs with a minimal reproducible example, it will make things easier for other -contributors and your problems will hopefully be resolved quickly. - - -## Requesting Features - -We're always interested to hear about your ideas and you can request features by -creating a ticket in the [issue -tracker](https://github.com/padraic/mockery/issues). We can't always guarantee -someone will jump on it straight away, but putting it out there to see if anyone -else is interested is a good idea. - -Likewise, if a feature you would like is already listed in -the issue tracker, add a :+1: so that other contributors know it's a feature -that would help others. - - -## Contributing code and documentation - -We loosely follow the -[PSR-1](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md) -and -[PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) coding standards, -but we'll probably merge any code that looks close enough. - -* Fork the [repository](https://github.com/padraic/mockery) on GitHub -* Add the code for your feature or bug -* Add some tests for your feature or bug -* Optionally, but preferably, write some documentation -* Optionally, update the CHANGELOG.md file with your feature or - [BC](http://en.wikipedia.org/wiki/Backward_compatibility) break -* Send a [Pull - Request](https://help.github.com/articles/creating-a-pull-request) to the - correct target branch (see below) - -If you have a big change or would like to discuss something, create an issue in -the [issue tracker](https://github.com/padraic/mockery/issues) or jump in to -\#mockery on freenode - - -Any code you contribute must be licensed under the [BSD 3-Clause -License](http://opensource.org/licenses/BSD-3-Clause). - - -## Target Branch - -Mockery may have several active branches at any one time and roughly follows a -[Git Branching Model](https://igor.io/2013/10/21/git-branching-model.html). -Generally, if you're developing a new feature, you want to be targeting the -master branch, if it's a bug fix, you want to be targeting a release branch, -e.g. 0.8. - - -## Testing Mockery - -To run the unit tests for Mockery, clone the git repository, download Composer using -the instructions at [http://getcomposer.org/download/](http://getcomposer.org/download/), -then install the dependencies with `php /path/to/composer.phar install`. - -This will install the required PHPUnit and Hamcrest dev dependencies and create the -autoload files required by the unit tests. You may run the `vendor/bin/phpunit` command -to run the unit tests. If everything goes to plan, there will be no failed tests! - - -## Debugging Mockery - -Mockery and it's code generation can be difficult to debug. A good start is to -use the `RequireLoader`, which will dump the code generated by mockery to a file -before requiring it, rather than using eval. This will help with stack traces, -and you will be able to open the mock class in your editor. - -``` php - -// tests/bootstrap.php - -Mockery::setLoader(new Mockery\Loader\RequireLoader(sys_get_temp_dir())); - -``` diff --git a/vendor/mockery/mockery/LICENSE b/vendor/mockery/mockery/LICENSE deleted file mode 100644 index 2ca3b064..00000000 --- a/vendor/mockery/mockery/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2010-2014, Pádraic Brady -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * The name of Pádraic Brady may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/mockery/mockery/README.md b/vendor/mockery/mockery/README.md deleted file mode 100644 index c0944661..00000000 --- a/vendor/mockery/mockery/README.md +++ /dev/null @@ -1,286 +0,0 @@ -Mockery -======= - -[![Build Status](https://travis-ci.org/mockery/mockery.png?branch=master)](https://travis-ci.org/mockery/mockery) -[![Latest Stable Version](https://poser.pugx.org/mockery/mockery/v/stable.png)](https://packagist.org/packages/mockery/mockery) -[![Coverage Status](https://coveralls.io/repos/github/mockery/mockery/badge.svg)](https://coveralls.io/github/mockery/mockery) -[![Total Downloads](https://poser.pugx.org/mockery/mockery/downloads.png)](https://packagist.org/packages/mockery/mockery) - -Mockery is a simple yet flexible PHP mock object framework for use in unit testing -with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a -test double framework with a succinct API capable of clearly defining all possible -object operations and interactions using a human readable Domain Specific Language -(DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, -Mockery is easy to integrate with PHPUnit and can operate alongside -phpunit-mock-objects without the World ending. - -Mockery is released under a New BSD License. - -## Installation - -To install Mockery, run the command below and you will get the latest -version - -```sh -composer require --dev mockery/mockery -``` - -âš ï¸ï¸ The remainder of this README refers specifically to the master branch (1.0-dev). - -## Documentation - -In older versions, this README file was the documentation for Mockery. Over time -we have improved this, and have created an extensive documentation for you. Please -use this README file as a starting point for Mockery, but do read the documentation -to learn how to use Mockery. - -The current version can be seen at [docs.mockery.io](http://docs.mockery.io). - -## Test Doubles - -Test doubles (often called mocks) simulate the behaviour of real objects. They are -commonly utilised to offer test isolation, to stand in for objects which do not -yet exist, or to allow for the exploratory design of class APIs without -requiring actual implementation up front. - -The benefits of a test double framework are to allow for the flexible generation -and configuration of test doubles. They allow the setting of expected method calls -and/or return values using a flexible API which is capable of capturing every -possible real object behaviour in way that is stated as close as possible to a -natural language description. Use the `Mockery::mock` method to create a test -double. - -``` php -$double = Mockery::mock(); -``` - -If you need Mockery to create a test double to satisfy a particular type hint, -you can pass the type to the `mock` method. - -``` php -class Book {} - -interface BookRepository { - function find($id): Book; - function findAll(): array; - function add(Book $book): void; -} - -$double = Mockery::mock(BookRepository::class); -``` - -A detailed explanation of creating and working with test doubles is given in the -documentation, [Creating test doubles](http://docs.mockery.io/en/latest/reference/creating_test_doubles.html) -section. - -## Method Stubs 🎫 - -A method stub is a mechanism for having your test double return canned responses -to certain method calls. With stubs, you don't care how many times, if at all, -the method is called. Stubs are used to provide indirect input to the system -under test. - -``` php -$double->allows()->find(123)->andReturns(new Book()); - -$book = $double->find(123); -``` - -If you have used Mockery before, you might see something new in the example -above — we created a method stub using `allows`, instead of the "old" -`shouldReceive` syntax. This is a new feature of Mockery v1, but fear not, -the trusty ol' `shouldReceive` is still here. - -For new users of Mockery, the above example can also be written as: - -``` php -$double->shouldReceive('find')->with(123)->andReturn(new Book()); -$book = $double->find(123); -``` - -If your stub doesn't require specific arguments, you can also use this shortcut -for setting up multiple calls at once: - -``` php -$double->allows([ - "findAll" => [new Book(), new Book()], -]); -``` - -or - -``` php -$double->shouldReceive('findAll') - ->andReturn([new Book(), new Book()]); -``` - -You can also use this shortcut, which creates a double and sets up some stubs in -one call: - -``` php -$double = Mockery::mock(BookRepository::class, [ - "findAll" => [new Book(), new Book()], -]); -``` - -## Method Call Expectations 📲 - -A Method call expectation is a mechanism to allow you to verify that a -particular method has been called. You can specify the parameters and you can -also specify how many times you expect it to be called. Method call expectations -are used to verify indirect output of the system under test. - -``` php -$book = new Book(); - -$double = Mockery::mock(BookRepository::class); -$double->expects()->add($book); -``` - -During the test, Mockery accept calls to the `add` method as prescribed. -After you have finished exercising the system under test, you need to -tell Mockery to check that the method was called as expected, using the -`Mockery::close` method. One way to do that is to add it to your `tearDown` -method in PHPUnit. - -``` php - -public function tearDown() -{ - Mockery::close(); -} -``` - -The `expects()` method automatically sets up an expectation that the method call -(and matching parameters) is called **once and once only**. You can choose to change -this if you are expecting more calls. - -``` php -$double->expects()->add($book)->twice(); -``` - -If you have used Mockery before, you might see something new in the example -above — we created a method expectation using `expects`, instead of the "old" -`shouldReceive` syntax. This is a new feature of Mockery v1, but same as with -`accepts` in the previous section, it can be written in the "old" style. - -For new users of Mockery, the above example can also be written as: - -``` php -$double->shouldReceive('find') - ->with(123) - ->once() - ->andReturn(new Book()); -$book = $double->find(123); -``` - -A detailed explanation of declaring expectations on method calls, please -read the documentation, the [Expectation declarations](http://docs.mockery.io/en/latest/reference/expectations.html) -section. After that, you can also learn about the new `allows` and `expects` methods -in the [Alternative shouldReceive syntax](http://docs.mockery.io/en/latest/reference/alternative_should_receive_syntax.html) -section. - -It is worth mentioning that one way of setting up expectations is no better or worse -than the other. Under the hood, `allows` and `expects` are doing the same thing as -`shouldReceive`, at times in "less words", and as such it comes to a personal preference -of the programmer which way to use. - -## Test Spies ðŸ•µï¸ - -By default, all test doubles created with the `Mockery::mock` method will only -accept calls that they have been configured to `allow` or `expect` (or in other words, -calls that they `shouldReceive`). Sometimes we don't necessarily care about all of the -calls that are going to be made to an object. To facilitate this, we can tell Mockery -to ignore any calls it has not been told to expect or allow. To do so, we can tell a -test double `shouldIgnoreMissing`, or we can create the double using the `Mocker::spy` -shortcut. - -``` php -// $double = Mockery::mock()->shouldIgnoreMissing(); -$double = Mockery::spy(); - -$double->foo(); // null -$double->bar(); // null -``` - -Further to this, sometimes we want to have the object accept any call during the test execution -and then verify the calls afterwards. For these purposes, we need our test -double to act as a Spy. All mockery test doubles record the calls that are made -to them for verification afterwards by default: - -``` php -$double->baz(123); - -$double->shouldHaveReceived()->baz(123); // null -$double->shouldHaveReceived()->baz(12345); // Uncaught Exception Mockery\Exception\InvalidCountException... -``` - -Please refer to the [Spies](http://docs.mockery.io/en/latest/reference/spies.html) section -of the documentation to learn more about the spies. - -## Utilities 🔌 - -### Global Helpers - -Mockery ships with a handful of global helper methods, you just need to ask -Mockery to declare them. - -``` php -Mockery::globalHelpers(); - -$mock = mock(Some::class); -$spy = spy(Some::class); - -$spy->shouldHaveReceived() - ->foo(anyArgs()); -``` - -All of the global helpers are wrapped in a `!function_exists` call to avoid -conflicts. So if you already have a global function called `spy`, Mockery will -silently skip the declaring it's own `spy` function. - -### Testing Traits - -As Mockery ships with code generation capabilities, it was trivial to add -functionality allowing users to create objects on the fly that use particular -traits. Any abstract methods defined by the trait will be created and can have -expectations or stubs configured like normal Test Doubles. - -``` php -trait Foo { - function foo() { - return $this->doFoo(); - } - - abstract function doFoo(); -} - -$double = Mockery::mock(Foo::class); -$double->allows()->doFoo()->andReturns(123); -$double->foo(); // int(123) -``` - -## Versioning - -The Mockery team attempts to adhere to [Semantic Versioning](http://semver.org), -however, some of Mockery's internals are considered private and will be open to -change at any time. Just because a class isn't final, or a method isn't marked -private, does not mean it constitutes part of the API we guarantee under the -versioning scheme. - -### Alternative Runtimes - -Mockery will attempt to continue support HHVM, but will not make any guarantees. - -## A new home for Mockery - -âš ï¸ï¸ Update your remotes! Mockery has transferred to a new location. While it was once -at `padraic/mockery`, it is now at `mockery/mockery`. While your -existing repositories will redirect transparently for any operations, take some -time to transition to the new URL. -```sh -$ git remote set-url upstream https://github.com/mockery/mockery.git -``` -Replace `upstream` with the name of the remote you use locally; `upstream` is commonly -used but you may be using something else. Run `git remote -v` to see what you're actually -using. diff --git a/vendor/mockery/mockery/composer.json b/vendor/mockery/mockery/composer.json deleted file mode 100644 index 59619259..00000000 --- a/vendor/mockery/mockery/composer.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "mockery/mockery", - "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", - "keywords": [ - "bdd", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "tdd", - "test", - "test double", - "testing" - ], - "homepage": "http://github.com/mockery/mockery", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" - }, - { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" - } - ], - "require": { - "php": ">=5.6.0", - "lib-pcre": ">=7.0", - "hamcrest/hamcrest-php": "~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~5.7|~6.1" - }, - "autoload": { - "psr-0": { - "Mockery": "library/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/mockery/mockery/docs/.gitignore b/vendor/mockery/mockery/docs/.gitignore deleted file mode 100644 index e35d8850..00000000 --- a/vendor/mockery/mockery/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_build diff --git a/vendor/mockery/mockery/docs/Makefile b/vendor/mockery/mockery/docs/Makefile deleted file mode 100644 index 9a8c9408..00000000 --- a/vendor/mockery/mockery/docs/Makefile +++ /dev/null @@ -1,177 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MockeryDocs.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MockeryDocs.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/MockeryDocs" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MockeryDocs" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/vendor/mockery/mockery/docs/README.md b/vendor/mockery/mockery/docs/README.md deleted file mode 100644 index 63ca69db..00000000 --- a/vendor/mockery/mockery/docs/README.md +++ /dev/null @@ -1,4 +0,0 @@ -mockery-docs -============ - -Document for the PHP Mockery framework on readthedocs.org \ No newline at end of file diff --git a/vendor/mockery/mockery/docs/conf.py b/vendor/mockery/mockery/docs/conf.py deleted file mode 100644 index dd0433f1..00000000 --- a/vendor/mockery/mockery/docs/conf.py +++ /dev/null @@ -1,267 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Mockery Docs documentation build configuration file, created by -# sphinx-quickstart on Mon Mar 3 14:04:26 2014. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.todo', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'Mockery Docs' -copyright = u'Pádraic Brady, Dave Marshall and contributors' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '1.0' -# The full version, including alpha/beta/rc tags. -release = '1.0-alpha' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'default' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'MockeryDocsdoc' - - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ('index2', 'MockeryDocs.tex', u'Mockery Docs Documentation', - u'Pádraic Brady, Dave Marshall, Wouter, Graham Campbell', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index2', 'mockerydocs', u'Mockery Docs Documentation', - [u'Pádraic Brady, Dave Marshall, Wouter, Graham Campbell'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index2', 'MockeryDocs', u'Mockery Docs Documentation', - u'Pádraic Brady, Dave Marshall, Wouter, Graham Campbell', 'MockeryDocs', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - - -#on_rtd is whether we are on readthedocs.org, this line of code grabbed from docs.readthedocs.org -on_rtd = os.environ.get('READTHEDOCS', None) == 'True' - -if not on_rtd: # only import and set the theme if we're building docs locally - import sphinx_rtd_theme - html_theme = 'sphinx_rtd_theme' - html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] - print sphinx_rtd_theme.get_html_theme_path() - -# load PhpLexer -from sphinx.highlighting import lexers -from pygments.lexers.web import PhpLexer - -# enable highlighting for PHP code not between by default -lexers['php'] = PhpLexer(startinline=True) -lexers['php-annotations'] = PhpLexer(startinline=True) diff --git a/vendor/mockery/mockery/docs/cookbook/big_parent_class.rst b/vendor/mockery/mockery/docs/cookbook/big_parent_class.rst deleted file mode 100644 index a27d5327..00000000 --- a/vendor/mockery/mockery/docs/cookbook/big_parent_class.rst +++ /dev/null @@ -1,52 +0,0 @@ -.. index:: - single: Cookbook; Big Parent Class - -Big Parent Class -================ - -In some application code, especially older legacy code, we can come across some -classes that extend a "big parent class" - a parent class that knows and does -too much: - -.. code-block:: php - - class BigParentClass - { - public function doesEverything() - { - // sets up database connections - // writes to log files - } - } - - class ChildClass extends BigParentClass - { - public function doesOneThing() - { - // but calls on BigParentClass methods - $result = $this->doesEverything(); - // does something with $result - return $result; - } - } - -We want to test our ``ChildClass`` and its ``doesOneThing`` method, but the -problem is that it calls on ``BigParentClass::doesEverything()``. One way to -handle this would be to mock out **all** of the dependencies ``BigParentClass`` -has and needs, and then finally actually test our ``doesOneThing`` method. It's -an awful lot of work to do that. - -What we can do, is to do something... unconventional. We can create a runtime -partial test double of the ``ChildClass`` itself and mock only the parent's -``doesEverything()`` method: - -.. code-block:: php - - $childClass = \Mockery::mock('ChildClass')->makePartial(); - $childClass->shouldReceive('doesEverything') - ->andReturn('some result from parent'); - - $childClass->doesOneThing(); // string("some result from parent"); - -With this approach we mock out only the ``doesEverything()`` method, and all the -unmocked methods are called on the actual ``ChildClass`` instance. diff --git a/vendor/mockery/mockery/docs/cookbook/class_constants.rst b/vendor/mockery/mockery/docs/cookbook/class_constants.rst deleted file mode 100644 index 2ba38566..00000000 --- a/vendor/mockery/mockery/docs/cookbook/class_constants.rst +++ /dev/null @@ -1,144 +0,0 @@ -.. index:: - single: Cookbook; Class Constants - -Class Constants -=============== - -When creating a test double for a class, Mockery does not create stubs out of -any class contants defined in the class we are mocking. Sometimes though, the -non-existence of these class constants, setup of the test, and the application -code itself, it can lead to undesired behavior, and even a PHP error: -``PHP Fatal error: Uncaught Error: Undefined class constant 'FOO' in ...``` - -While supporting class contants in Mockery would be possible, it does require -an awful lot of work, for a small number of use cases. - -We can, however, deal with these constants in a way supported by Mockery - by -using :ref:`creating-test-doubles-named-mocks`. - -A named mock is a test double that has a name of the class we want to mock, but -under it is a stubbed out class that mimics the real class with canned responses. - -Lets look at the following made up, but not impossible scenario: - -.. code-block:: php - - class Fetcher - { - const SUCCESS = 0; - const FAILURE = 1; - - public static function fetch() - { - // Fetcher gets something for us from somewhere... - return self::SUCCESS; - } - } - - class MyClass - { - public function doFetching() - { - $response = Fetcher::fetch(); - - if ($response == Fetcher::SUCCESS) { - echo "Thanks!" . PHP_EOL; - } else { - echo "Try again!" . PHP_EOL; - } - } - } - -Our ``MyClass`` calls a ``Fetcher`` that fetches some resource from somewhere - -maybe it downloads a file from a remote web service. Our ``MyClass`` prints out -a response message depending on the response from the ``Fetcher::fetch()`` call. - -When testing ``MyClass`` we don't really want ``Fetcher`` to go and download -random stuff from the internet every time we run our test suite. So we mock it -out: - -.. code-block:: php - - // Using alias: because fetch is called statically! - \Mockery::mock('alias:Fetcher') - ->shouldReceive('fetch') - ->andReturn(0); - - $myClass = new MyClass(); - $myClass->doFetching(); - -If we run this, our test will error out with a nasty -``PHP Fatal error: Uncaught Error: Undefined class constant 'SUCCESS' in ..``. - -Here's how a ``namedMock()`` can help us in a situation like this. - -We create a stub for the ``Fetcher`` class, stubbing out the class constants, -and then use ``namedMock()`` to create a mock named ``Fetcher`` based on our -stub: - -.. code-block:: php - - class FetcherStub - { - const SUCCESS = 0; - const FAILURE = 1; - } - - \Mockery::mock('Fetcher', 'FetcherStub') - ->shouldReceive('fetch') - ->andReturn(0); - - $myClass = new MyClass(); - $myClass->doFetching(); - -This works because under the hood, Mockery creates a class called ``Fetcher`` -that extends ``FetcherStub``. - -The same approach will work even if ``Fetcher::fetch()`` is not a static -dependency: - -.. code-block:: php - - class Fetcher - { - const SUCCESS = 0; - const FAILURE = 1; - - public function fetch() - { - // Fetcher gets something for us from somewhere... - return self::SUCCESS; - } - } - - class MyClass - { - public function doFetching($fetcher) - { - $response = $fetcher->fetch(); - - if ($response == Fetcher::SUCCESS) { - echo "Thanks!" . PHP_EOL; - } else { - echo "Try again!" . PHP_EOL; - } - } - } - -And the test will have something like this: - -.. code-block:: php - - class FetcherStub - { - const SUCCESS = 0; - const FAILURE = 1; - } - - $mock = \Mockery::mock('Fetcher', 'FetcherStub') - $mock->shouldReceive('fetch') - ->andReturn(0); - - $myClass = new MyClass(); - $myClass->doFetching($mock); - diff --git a/vendor/mockery/mockery/docs/cookbook/default_expectations.rst b/vendor/mockery/mockery/docs/cookbook/default_expectations.rst deleted file mode 100644 index 2c6fcae2..00000000 --- a/vendor/mockery/mockery/docs/cookbook/default_expectations.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. index:: - single: Cookbook; Default Mock Expectations - -Default Mock Expectations -========================= - -Often in unit testing, we end up with sets of tests which use the same object -dependency over and over again. Rather than mocking this class/object within -every single unit test (requiring a mountain of duplicate code), we can -instead define reusable default mocks within the test case's ``setup()`` -method. This even works where unit tests use varying expectations on the same -or similar mock object. - -How this works, is that you can define mocks with default expectations. Then, -in a later unit test, you can add or fine-tune expectations for that specific -test. Any expectation can be set as a default using the ``byDefault()`` -declaration. diff --git a/vendor/mockery/mockery/docs/cookbook/detecting_mock_objects.rst b/vendor/mockery/mockery/docs/cookbook/detecting_mock_objects.rst deleted file mode 100644 index 0210c692..00000000 --- a/vendor/mockery/mockery/docs/cookbook/detecting_mock_objects.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. index:: - single: Cookbook; Detecting Mock Objects - -Detecting Mock Objects -====================== - -Users may find it useful to check whether a given object is a real object or a -simulated Mock Object. All Mockery mocks implement the -``\Mockery\MockInterface`` interface which can be used in a type check. - -.. code-block:: php - - assert($mightBeMocked instanceof \Mockery\MockInterface); diff --git a/vendor/mockery/mockery/docs/cookbook/index.rst b/vendor/mockery/mockery/docs/cookbook/index.rst deleted file mode 100644 index 48acbab0..00000000 --- a/vendor/mockery/mockery/docs/cookbook/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -Cookbook -======== - -.. toctree:: - :hidden: - - default_expectations - detecting_mock_objects - not_calling_the_constructor - mocking_hard_dependencies - class_constants - big_parent_class - mockery_on - -.. include:: map.rst.inc diff --git a/vendor/mockery/mockery/docs/cookbook/map.rst.inc b/vendor/mockery/mockery/docs/cookbook/map.rst.inc deleted file mode 100644 index c9dd99ef..00000000 --- a/vendor/mockery/mockery/docs/cookbook/map.rst.inc +++ /dev/null @@ -1,7 +0,0 @@ -* :doc:`/cookbook/default_expectations` -* :doc:`/cookbook/detecting_mock_objects` -* :doc:`/cookbook/not_calling_the_constructor` -* :doc:`/cookbook/mocking_hard_dependencies` -* :doc:`/cookbook/class_constants` -* :doc:`/cookbook/big_parent_class` -* :doc:`/cookbook/mockery_on` diff --git a/vendor/mockery/mockery/docs/cookbook/mockery_on.rst b/vendor/mockery/mockery/docs/cookbook/mockery_on.rst deleted file mode 100644 index 5c395ccd..00000000 --- a/vendor/mockery/mockery/docs/cookbook/mockery_on.rst +++ /dev/null @@ -1,85 +0,0 @@ -.. index:: - single: Cookbook; Complex Argument Matching With Mockery::on - -Complex Argument Matching With Mockery::on -========================================== - -When we need to do a more complex argument matching for an expected method call, -the ``\Mockery::on()`` matcher comes in really handy. It accepts a closure as an -argument and that closure in turn receives the argument passed in to the method, -when called. If the closure returns ``true``, Mockery will consider that the -argument has passed the expectation. If the closure returns ``false``, or a -"falsey" value, the expectation will not pass. - -The ``\Mockery::on()`` matcher can be used in various scenarios — validating -an array argument based on multiple keys and values, complex string matching... - -Say, for example, we have the following code. It doesn't do much; publishes a -post by setting the ``published`` flag in the database to ``1`` and sets the -``published_at`` to the current date and time: - -.. code-block:: php - - model = $model; - } - - public function publishPost($id) - { - $saveData = [ - 'post_id' => $id, - 'published' => 1, - 'published_at' => gmdate('Y-m-d H:i:s'), - ]; - $this->model->save($saveData); - } - } - -In a test we would mock the model and set some expectations on the call of the -``save()`` method: - -.. code-block:: php - - shouldReceive('save') - ->once() - ->with(\Mockery::on(function ($argument) use ($postId) { - $postIdIsSet = isset($argument['post_id']) && $argument['post_id'] === $postId; - $publishedFlagIsSet = isset($argument['published']) && $argument['published'] === 1; - $publishedAtIsSet = isset($argument['published_at']); - - return $postIdIsSet && $publishedFlagIsSet && $publishedAtIsSet; - })); - - $service = new \Service\Post($modelMock); - $service->publishPost($postId); - - \Mockery::close(); - -The important part of the example is inside the closure we pass to the -``\Mockery::on()`` matcher. The ``$argument`` is actually the ``$saveData`` argument -the ``save()`` method gets when it is called. We check for a couple of things in -this argument: - -* the post ID is set, and is same as the post ID we passed in to the - ``publishPost()`` method, -* the ``published`` flag is set, and is ``1``, and -* the ``published_at`` key is present. - -If any of these requirements is not satisfied, the closure will return ``false``, -the method call expectation will not be met, and Mockery will throw a -``NoMatchingExpectationException``. - -.. note:: - - This cookbook entry is an adaption of the blog post titled - `"Complex argument matching in Mockery" `_, - published by Robert Basic on his blog. diff --git a/vendor/mockery/mockery/docs/cookbook/mocking_hard_dependencies.rst b/vendor/mockery/mockery/docs/cookbook/mocking_hard_dependencies.rst deleted file mode 100644 index b9381fdf..00000000 --- a/vendor/mockery/mockery/docs/cookbook/mocking_hard_dependencies.rst +++ /dev/null @@ -1,99 +0,0 @@ -.. index:: - single: Cookbook; Mocking Hard Dependencies - -Mocking Hard Dependencies (new Keyword) -======================================= - -One prerequisite to mock hard dependencies is that the code we are trying to test uses autoloading. - -Let's take the following code for an example: - -.. code-block:: php - - sendSomething($param); - return $externalService->getSomething(); - } - } - -The way we can test this without doing any changes to the code itself is by creating :doc:`instance mocks ` by using the ``overload`` prefix. - -.. code-block:: php - - shouldReceive('sendSomething') - ->once() - ->with($param); - $externalMock->shouldReceive('getSomething') - ->once() - ->andReturn('Tested!'); - - $service = new \App\Service(); - - $result = $service->callExternalService($param); - - $this->assertSame('Tested!', $result); - } - } - -If we run this test now, it should pass. Mockery does its job and our ``App\Service`` will use the mocked external service instead of the real one. - -The problem with this is when we want to, for example, test the ``App\Service\External`` itself, or if we use that class somewhere else in our tests. - -When Mockery overloads a class, because of how PHP works with files, that overloaded class file must not be included otherwise Mockery will throw a "class already exists" exception. This is where autoloading kicks in and makes our job a lot easier. - -To make this possible, we'll tell PHPUnit to run the tests that have overloaded classes in separate processes and to not preserve global state. That way we'll avoid having the overloaded class included more than once. Of course this has its downsides as these tests will run slower. - -Our test example from above now becomes: - -.. code-block:: php - - shouldReceive('sendSomething') - ->once() - ->with($param); - $externalMock->shouldReceive('getSomething') - ->once() - ->andReturn('Tested!'); - - $service = new \App\Service(); - - $result = $service->callExternalService($param); - - $this->assertSame('Tested!', $result); - } - } - -.. note:: - - This cookbook entry is an adaption of the blog post titled - `"Mocking hard dependencies with Mockery" `_, - published by Robert Basic on his blog. diff --git a/vendor/mockery/mockery/docs/cookbook/not_calling_the_constructor.rst b/vendor/mockery/mockery/docs/cookbook/not_calling_the_constructor.rst deleted file mode 100644 index 6f24ff91..00000000 --- a/vendor/mockery/mockery/docs/cookbook/not_calling_the_constructor.rst +++ /dev/null @@ -1,63 +0,0 @@ -.. index:: - single: Cookbook; Not Calling the Original Constructor - -Not Calling the Original Constructor -==================================== - -When creating generated partial test doubles, Mockery mocks out only the method -which we specifically told it to. This means that the original constructor of -the class we are mocking will be called. - -In some cases this is not a desired behavior, as the constructor might issue -calls to other methods, or other object collaborators, and as such, can create -undesired side-effects in the application's environment when running the tests. - -If this happens, we need to use runtime partial test doubles, as they don't -call the original constructor. - -.. code-block:: php - - class MyClass - { - public function __construct() - { - echo "Original constructor called." . PHP_EOL; - // Other side-effects can happen... - } - } - - // This will print "Original constructor called." - $mock = \Mockery::mock('MyClass[foo]'); - -A better approach is to use runtime partial doubles: - -.. code-block:: php - - class MyClass - { - public function __construct() - { - echo "Original constructor called." . PHP_EOL; - // Other side-effects can happen... - } - } - - // This will print "Original constructor called." - $mock = \Mockery::mock('MyClass')->makePartial(); - $mock->shouldReceive('foo'); - -This is one of the reason why we don't recommend using generated partial test -doubles, but if possible, always use the runtime partials. - -Read more about :ref:`creating-test-doubles-partial-test-doubles`. - -.. note:: - - The way generated partial test doubles work, is a BC break. If you use a - really old version of Mockery, it might behave in a way that the constructor - is not being called for these generated partials. In the case if you upgrade - to a more recent version of Mockery, you'll probably have to change your - tests to use runtime partials, instead of generated ones. - - This change was introduced in early 2013, so it is highly unlikely that you - are using a Mockery from before that, so this should not be an issue. diff --git a/vendor/mockery/mockery/docs/getting_started/index.rst b/vendor/mockery/mockery/docs/getting_started/index.rst deleted file mode 100644 index 434755c8..00000000 --- a/vendor/mockery/mockery/docs/getting_started/index.rst +++ /dev/null @@ -1,12 +0,0 @@ -Getting Started -=============== - -.. toctree:: - :hidden: - - installation - upgrading - simple_example - quick_reference - -.. include:: map.rst.inc diff --git a/vendor/mockery/mockery/docs/getting_started/installation.rst b/vendor/mockery/mockery/docs/getting_started/installation.rst deleted file mode 100644 index 8019567f..00000000 --- a/vendor/mockery/mockery/docs/getting_started/installation.rst +++ /dev/null @@ -1,43 +0,0 @@ -.. index:: - single: Installation - -Installation -============ - -Mockery can be installed using Composer or by cloning it from its GitHub -repository. These two options are outlined below. - -Composer --------- - -You can read more about Composer on `getcomposer.org `_. -To install Mockery using Composer, first install Composer for your project -using the instructions on the `Composer download page `_. -You can then define your development dependency on Mockery using the suggested -parameters below. While every effort is made to keep the master branch stable, -you may prefer to use the current stable version tag instead (use the -``@stable`` tag). - -.. code-block:: json - - { - "require-dev": { - "mockery/mockery": "dev-master" - } - } - -To install, you then may call: - -.. code-block:: bash - - php composer.phar update - -This will install Mockery as a development dependency, meaning it won't be -installed when using ``php composer.phar update --no-dev`` in production. - -Git ---- - -The Git repository hosts the development version in its master branch. You can -install this using Composer by referencing ``dev-master`` as your preferred -version in your project's ``composer.json`` file as the earlier example shows. diff --git a/vendor/mockery/mockery/docs/getting_started/map.rst.inc b/vendor/mockery/mockery/docs/getting_started/map.rst.inc deleted file mode 100644 index 1055945b..00000000 --- a/vendor/mockery/mockery/docs/getting_started/map.rst.inc +++ /dev/null @@ -1,4 +0,0 @@ -* :doc:`/getting_started/installation` -* :doc:`/getting_started/upgrading` -* :doc:`/getting_started/simple_example` -* :doc:`/getting_started/quick_reference` diff --git a/vendor/mockery/mockery/docs/getting_started/quick_reference.rst b/vendor/mockery/mockery/docs/getting_started/quick_reference.rst deleted file mode 100644 index e729a850..00000000 --- a/vendor/mockery/mockery/docs/getting_started/quick_reference.rst +++ /dev/null @@ -1,200 +0,0 @@ -.. index:: - single: Quick Reference - -Quick Reference -=============== - -The purpose of this page is to give a quick and short overview of some of the -most common Mockery features. - -Do read the :doc:`../reference/index` to learn about all the Mockery features. - -Integrate Mockery with PHPUnit, either by extending the ``MockeryTestCase``: - -.. code-block:: php - - use \Mockery\Adapter\Phpunit\MockeryTestCase; - - class MyTest extends MockeryTestCase - { - } - -or by using the ``MockeryPHPUnitIntegration`` trait: - -.. code-block:: php - - use \PHPUnit\Framework\TestCase; - use \Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration; - - class MyTest extends TestCase - { - use MockeryPHPUnitIntegration; - } - -Creating a test double: - -.. code-block:: php - - $testDouble = \Mockery::mock('MyClass'); - -Creating a test double that implements a certain interface: - -.. code-block:: php - - $testDouble = \Mockery::mock('MyClass, MyInterface'); - -Expecting a method to be called on a test double: - -.. code-block:: php - - $testDouble = \Mockery::mock('MyClass'); - $testDouble->shouldReceive('foo'); - -Expecting a method to **not** be called on a test double: - -.. code-block:: php - - $testDouble = \Mockery::mock('MyClass'); - $testDouble->shouldNotReceive('foo'); - -Expecting a method to be called on a test double, once, with a certain argument, -and to return a value: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->once() - ->with($arg) - ->andReturn($returnValue); - -Expecting a method to be called on a test double and to return a different value -for each successive call: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->andReturn(1, 2, 3); - - $mock->foo(); // int(1); - $mock->foo(); // int(2); - $mock->foo(); // int(3); - $mock->foo(); // int(3); - -Creating a runtime partial test double: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass')->makePartial(); - -Creating a spy: - -.. code-block:: php - - $spy = \Mockery::spy('MyClass'); - -Expecting that a spy should have received a method call: - -.. code-block:: php - - $spy = \Mockery::spy('MyClass'); - - $spy->foo(); - - $spy->shouldHaveReceived()->foo(); - -Not so simple examples -^^^^^^^^^^^^^^^^^^^^^^ - -Creating a mock object to return a sequence of values from a set of method -calls: - -.. code-block:: php - - use \Mockery\Adapter\Phpunit\MockeryTestCase; - - class SimpleTest extends MockeryTestCase - { - public function testSimpleMock() - { - $mock = \Mockery::mock(array('pi' => 3.1416, 'e' => 2.71)); - $this->assertEquals(3.1416, $mock->pi()); - $this->assertEquals(2.71, $mock->e()); - } - } - -Creating a mock object which returns a self-chaining Undefined object for a -method call: - -.. code-block:: php - - use \Mockery\Adapter\Phpunit\MockeryTestCase; - - class UndefinedTest extends MockeryTestCase - { - public function testUndefinedValues() - { - $mock = \Mockery::mock('mymock'); - $mock->shouldReceive('divideBy')->with(0)->andReturnUndefined(); - $this->assertTrue($mock->divideBy(0) instanceof \Mockery\Undefined); - } - } - -Creating a mock object with multiple query calls and a single update call: - -.. code-block:: php - - use \Mockery\Adapter\Phpunit\MockeryTestCase; - - class DbTest extends MockeryTestCase - { - public function testDbAdapter() - { - $mock = \Mockery::mock('db'); - $mock->shouldReceive('query')->andReturn(1, 2, 3); - $mock->shouldReceive('update')->with(5)->andReturn(NULL)->once(); - - // ... test code here using the mock - } - } - -Expecting all queries to be executed before any updates: - -.. code-block:: php - - use \Mockery\Adapter\Phpunit\MockeryTestCase; - - class DbTest extends MockeryTestCase - { - public function testQueryAndUpdateOrder() - { - $mock = \Mockery::mock('db'); - $mock->shouldReceive('query')->andReturn(1, 2, 3)->ordered(); - $mock->shouldReceive('update')->andReturn(NULL)->once()->ordered(); - - // ... test code here using the mock - } - } - -Creating a mock object where all queries occur after startup, but before finish, -and where queries are expected with several different params: - -.. code-block:: php - - use \Mockery\Adapter\Phpunit\MockeryTestCase; - - class DbTest extends MockeryTestCase - { - public function testOrderedQueries() - { - $db = \Mockery::mock('db'); - $db->shouldReceive('startup')->once()->ordered(); - $db->shouldReceive('query')->with('CPWR')->andReturn(12.3)->once()->ordered('queries'); - $db->shouldReceive('query')->with('MSFT')->andReturn(10.0)->once()->ordered('queries'); - $db->shouldReceive('query')->with(\Mockery::pattern("/^....$/"))->andReturn(3.3)->atLeast()->once()->ordered('queries'); - $db->shouldReceive('finish')->once()->ordered(); - - // ... test code here using the mock - } - } diff --git a/vendor/mockery/mockery/docs/getting_started/simple_example.rst b/vendor/mockery/mockery/docs/getting_started/simple_example.rst deleted file mode 100644 index 1fb252e4..00000000 --- a/vendor/mockery/mockery/docs/getting_started/simple_example.rst +++ /dev/null @@ -1,70 +0,0 @@ -.. index:: - single: Getting Started; Simple Example - -Simple Example -============== - -Imagine we have a ``Temperature`` class which samples the temperature of a -locale before reporting an average temperature. The data could come from a web -service or any other data source, but we do not have such a class at present. -We can, however, assume some basic interactions with such a class based on its -interaction with the ``Temperature`` class: - -.. code-block:: php - - class Temperature - { - private $service; - - public function __construct($service) - { - $this->service = $service; - } - - public function average() - { - $total = 0; - for ($i=0; $i<3; $i++) { - $total += $this->service->readTemp(); - } - return $total/3; - } - } - -Even without an actual service class, we can see how we expect it to operate. -When writing a test for the ``Temperature`` class, we can now substitute a -mock object for the real service which allows us to test the behaviour of the -``Temperature`` class without actually needing a concrete service instance. - -.. code-block:: php - - use \Mockery; - - class TemperatureTest extends PHPUnit_Framework_TestCase - { - public function tearDown() - { - Mockery::close(); - } - - public function testGetsAverageTemperatureFromThreeServiceReadings() - { - $service = Mockery::mock('service'); - $service->shouldReceive('readTemp') - ->times(3) - ->andReturn(10, 12, 14); - - $temperature = new Temperature($service); - - $this->assertEquals(12, $temperature->average()); - } - } - -We create a mock object which our ``Temperature`` class will use and set some -expectations for that mock — that it should receive three calls to the ``readTemp`` -method, and these calls will return 10, 12, and 14 as results. - -.. note:: - - PHPUnit integration can remove the need for a ``tearDown()`` method. See - ":doc:`/reference/phpunit_integration`" for more information. diff --git a/vendor/mockery/mockery/docs/getting_started/upgrading.rst b/vendor/mockery/mockery/docs/getting_started/upgrading.rst deleted file mode 100644 index 35313cd8..00000000 --- a/vendor/mockery/mockery/docs/getting_started/upgrading.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. index:: - single: Upgrading - -Upgrading -========= - -Upgrading to 1.0.0 ------------------- - -To be written. - -Upgrading to 0.9 ----------------- - -The generator was completely rewritten, so any code with a deep integration to -mockery will need evaluating. - -Upgrading to 0.8 ----------------- - -Since the release of 0.8.0 the following behaviours were altered: - -1. The ``shouldIgnoreMissing()`` behaviour optionally applied to mock objects - returned an instance of ``\Mockery\Undefined`` when methods called did not - match a known expectation. Since 0.8.0, this behaviour was switched to - returning ``null`` instead. You can restore the 0.7.2 behavour by using the - following: - - .. code-block:: php - - $mock = \Mockery::mock('stdClass')->shouldIgnoreMissing()->asUndefined(); diff --git a/vendor/mockery/mockery/docs/index.rst b/vendor/mockery/mockery/docs/index.rst deleted file mode 100644 index f8cbbd32..00000000 --- a/vendor/mockery/mockery/docs/index.rst +++ /dev/null @@ -1,76 +0,0 @@ -Mockery -======= - -Mockery is a simple yet flexible PHP mock object framework for use in unit -testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is -to offer a test double framework with a succinct API capable of clearly -defining all possible object operations and interactions using a human -readable Domain Specific Language (DSL). Designed as a drop in alternative to -PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with -PHPUnit and can operate alongside phpunit-mock-objects without the World -ending. - -Mock Objects ------------- - -In unit tests, mock objects simulate the behaviour of real objects. They are -commonly utilised to offer test isolation, to stand in for objects which do -not yet exist, or to allow for the exploratory design of class APIs without -requiring actual implementation up front. - -The benefits of a mock object framework are to allow for the flexible -generation of such mock objects (and stubs). They allow the setting of -expected method calls and return values using a flexible API which is capable -of capturing every possible real object behaviour in way that is stated as -close as possible to a natural language description. - -Getting Started ---------------- - -Ready to dive into the Mockery framework? Then you can get started by reading -the "Getting Started" section! - -.. toctree:: - :hidden: - - getting_started/index - -.. include:: getting_started/map.rst.inc - -Reference ---------- - -The reference contains a complete overview of all features of the Mockery -framework. - -.. toctree:: - :hidden: - - reference/index - -.. include:: reference/map.rst.inc - -Mockery -------- - -Learn about Mockery's configuration, reserved method names, exceptions... - -.. toctree:: - :hidden: - - mockery/index - -.. include:: mockery/map.rst.inc - -Cookbook --------- - -Want to learn some easy tips and tricks? Take a look at the cookbook articles! - -.. toctree:: - :hidden: - - cookbook/index - -.. include:: cookbook/map.rst.inc - diff --git a/vendor/mockery/mockery/docs/mockery/configuration.rst b/vendor/mockery/mockery/docs/mockery/configuration.rst deleted file mode 100644 index 9f8db744..00000000 --- a/vendor/mockery/mockery/docs/mockery/configuration.rst +++ /dev/null @@ -1,52 +0,0 @@ -.. index:: - single: Mockery; Configuration - -Mockery Global Configuration -============================ - -To allow for a degree of fine-tuning, Mockery utilises a singleton -configuration object to store a small subset of core behaviours. The three -currently present include: - -* Option to allow/disallow the mocking of methods which do not actually exist -* Option to allow/disallow the existence of expectations which are never - fulfilled (i.e. unused) -* Setter/Getter for added a parameter map for internal PHP class methods - (``Reflection`` cannot detect these automatically) - -By default, the first two behaviours are enabled. Of course, there are -situations where this can lead to unintended consequences. The mocking of -non-existent methods may allow mocks based on real classes/objects to fall out -of sync with the actual implementations, especially when some degree of -integration testing (testing of object wiring) is not being performed. -Allowing unfulfilled expectations means unnecessary mock expectations go -unnoticed, cluttering up test code, and potentially confusing test readers. - -You may allow or disallow these behaviours (whether for whole test suites or -just select tests) by using one or both of the following two calls: - -.. code-block:: php - - \Mockery::getConfiguration()->allowMockingNonExistentMethods(bool); - \Mockery::getConfiguration()->allowMockingMethodsUnnecessarily(bool); - -Passing a true allows the behaviour, false disallows it. Both take effect -immediately until switched back. In both cases, if either behaviour is -detected when not allowed, it will result in an Exception being thrown at that -point. Note that disallowing these behaviours should be carefully considered -since they necessarily remove at least some of Mockery's flexibility. - -The other two methods are: - -.. code-block:: php - - \Mockery::getConfiguration()->setInternalClassMethodParamMap($class, $method, array $paramMap) - \Mockery::getConfiguration()->getInternalClassMethodParamMap($class, $method) - -These are used to define parameters (i.e. the signature string of each) for the -methods of internal PHP classes (e.g. SPL, or PECL extension classes like -ext/mongo's MongoCollection. Reflection cannot analyse the parameters of internal -classes. Most of the time, you never need to do this. It's mainly needed where an -internal class method uses pass-by-reference for a parameter - you MUST in such -cases ensure the parameter signature includes the ``&`` symbol correctly as Mockery -won't correctly add it automatically for internal classes. diff --git a/vendor/mockery/mockery/docs/mockery/exceptions.rst b/vendor/mockery/mockery/docs/mockery/exceptions.rst deleted file mode 100644 index 623b158e..00000000 --- a/vendor/mockery/mockery/docs/mockery/exceptions.rst +++ /dev/null @@ -1,65 +0,0 @@ -.. index:: - single: Mockery; Exceptions - -Mockery Exceptions -================== - -Mockery throws three types of exceptions when it cannot verify a mock object. - -#. ``\Mockery\Exception\InvalidCountException`` -#. ``\Mockery\Exception\InvalidOrderException`` -#. ``\Mockery\Exception\NoMatchingExpectationException`` - -You can capture any of these exceptions in a try...catch block to query them -for specific information which is also passed along in the exception message -but is provided separately from getters should they be useful when logging or -reformatting output. - -\Mockery\Exception\InvalidCountException ----------------------------------------- - -The exception class is used when a method is called too many (or too few) -times and offers the following methods: - -* ``getMock()`` - return actual mock object -* ``getMockName()`` - return the name of the mock object -* ``getMethodName()`` - return the name of the method the failing expectation - is attached to -* ``getExpectedCount()`` - return expected calls -* ``getExpectedCountComparative()`` - returns a string, e.g. ``<=`` used to - compare to actual count -* ``getActualCount()`` - return actual calls made with given argument - constraints - -\Mockery\Exception\InvalidOrderException ----------------------------------------- - -The exception class is used when a method is called outside the expected order -set using the ``ordered()`` and ``globally()`` expectation modifiers. It -offers the following methods: - -* ``getMock()`` - return actual mock object -* ``getMockName()`` - return the name of the mock object -* ``getMethodName()`` - return the name of the method the failing expectation - is attached to -* ``getExpectedOrder()`` - returns an integer represented the expected index - for which this call was expected -* ``getActualOrder()`` - return the actual index at which this method call - occurred. - -\Mockery\Exception\NoMatchingExpectationException -------------------------------------------------- - -The exception class is used when a method call does not match any known -expectation. All expectations are uniquely identified in a mock object by the -method name and the list of expected arguments. You can disable this exception -and opt for returning NULL from all unexpected method calls by using the -earlier mentioned shouldIgnoreMissing() behaviour modifier. This exception -class offers the following methods: - -* ``getMock()`` - return actual mock object -* ``getMockName()`` - return the name of the mock object -* ``getMethodName()`` - return the name of the method the failing expectation - is attached to -* ``getActualArguments()`` - return actual arguments used to search for a - matching expectation diff --git a/vendor/mockery/mockery/docs/mockery/gotchas.rst b/vendor/mockery/mockery/docs/mockery/gotchas.rst deleted file mode 100644 index 4ca5b2af..00000000 --- a/vendor/mockery/mockery/docs/mockery/gotchas.rst +++ /dev/null @@ -1,48 +0,0 @@ -.. index:: - single: Mockery; Gotchas - -Gotchas! -======== - -Mocking objects in PHP has its limitations and gotchas. Some functionality -can't be mocked or can't be mocked YET! If you locate such a circumstance, -please please (pretty please with sugar on top) create a new issue on GitHub -so it can be documented and resolved where possible. Here is a list to note: - -1. Classes containing public ``__wakeup()`` methods can be mocked but the - mocked ``__wakeup()`` method will perform no actions and cannot have - expectations set for it. This is necessary since Mockery must serialize and - unserialize objects to avoid some ``__construct()`` insanity and attempting - to mock a ``__wakeup()`` method as normal leads to a - ``BadMethodCallException`` been thrown. - -2. Classes using non-real methods, i.e. where a method call triggers a - ``__call()`` method, will throw an exception that the non-real method does - not exist unless you first define at least one expectation (a simple - ``shouldReceive()`` call would suffice). This is necessary since there is - no other way for Mockery to be aware of the method name. - -3. Mockery has two scenarios where real classes are replaced: Instance mocks - and alias mocks. Both will generate PHP fatal errors if the real class is - loaded, usually via a require or include statement. Only use these two mock - types where autoloading is in place and where classes are not explicitly - loaded on a per-file basis using ``require()``, ``require_once()``, etc. - -4. Internal PHP classes are not entirely capable of being fully analysed using - ``Reflection``. For example, ``Reflection`` cannot reveal details of - expected parameters to the methods of such internal classes. As a result, - there will be problems where a method parameter is defined to accept a - value by reference (Mockery cannot detect this condition and will assume a - pass by value on scalars and arrays). If references as internal class - method parameters are needed, you should use the - ``\Mockery\Configuration::setInternalClassMethodParamMap()`` method. - -5. Creating a mock implementing a certain interface with incorrect case in the - interface name, and then creating a second mock implementing the same - interface, but this time with the correct case, will have undefined behavior - due to PHP's ``class_exists`` and related functions being case insensitive. - Using the ``::class`` keyword in PHP can help you avoid these mistakes. - -The gotchas noted above are largely down to PHP's architecture and are assumed -to be unavoidable. But - if you figure out a solution (or a better one than -what may exist), let us know! diff --git a/vendor/mockery/mockery/docs/mockery/index.rst b/vendor/mockery/mockery/docs/mockery/index.rst deleted file mode 100644 index b698d6cb..00000000 --- a/vendor/mockery/mockery/docs/mockery/index.rst +++ /dev/null @@ -1,12 +0,0 @@ -Mockery -======= - -.. toctree:: - :hidden: - - configuration - exceptions - reserved_method_names - gotchas - -.. include:: map.rst.inc diff --git a/vendor/mockery/mockery/docs/mockery/map.rst.inc b/vendor/mockery/mockery/docs/mockery/map.rst.inc deleted file mode 100644 index 46ffa975..00000000 --- a/vendor/mockery/mockery/docs/mockery/map.rst.inc +++ /dev/null @@ -1,4 +0,0 @@ -* :doc:`/mockery/configuration` -* :doc:`/mockery/exceptions` -* :doc:`/mockery/reserved_method_names` -* :doc:`/mockery/gotchas` diff --git a/vendor/mockery/mockery/docs/mockery/reserved_method_names.rst b/vendor/mockery/mockery/docs/mockery/reserved_method_names.rst deleted file mode 100644 index 112d6f0a..00000000 --- a/vendor/mockery/mockery/docs/mockery/reserved_method_names.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. index:: - single: Reserved Method Names - -Reserved Method Names -===================== - -As you may have noticed, Mockery uses a number of methods called directly on -all mock objects, for example ``shouldReceive()``. Such methods are necessary -in order to setup expectations on the given mock, and so they cannot be -implemented on the classes or objects being mocked without creating a method -name collision (reported as a PHP fatal error). The methods reserved by -Mockery are: - -* ``shouldReceive()`` -* ``shouldBeStrict()`` - -In addition, all mocks utilise a set of added methods and protected properties -which cannot exist on the class or object being mocked. These are far less -likely to cause collisions. All properties are prefixed with ``_mockery`` and -all method names with ``mockery_``. diff --git a/vendor/mockery/mockery/docs/reference/alternative_should_receive_syntax.rst b/vendor/mockery/mockery/docs/reference/alternative_should_receive_syntax.rst deleted file mode 100644 index 78c1e83c..00000000 --- a/vendor/mockery/mockery/docs/reference/alternative_should_receive_syntax.rst +++ /dev/null @@ -1,91 +0,0 @@ -.. index:: - single: Alternative shouldReceive Syntax - -Alternative shouldReceive Syntax -================================ - -As of Mockery 1.0.0, we support calling methods as we would call any PHP method, -and not as string arguments to Mockery ``should*`` methods. - -The two Mockery methods that enable this are ``allows()`` and ``expects()``. - -Allows ------- - -We use ``allows()`` when we create stubs for methods that return a predefined -return value, but for these method stubs we don't care how many times, or if at -all, were they called. - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->allows([ - 'name_of_method_1' => 'return value', - 'name_of_method_2' => 'return value', - ]); - -This is equivalent with the following ``shouldReceive`` syntax: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive([ - 'name_of_method_1' => 'return value', - 'name_of_method_2' => 'return value', - ]); - -Note that with this format, we also tell Mockery that we don't care about the -arguments to the stubbed methods. - -If we do care about the arguments, we would do it like so: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->allows() - ->name_of_method_1($arg1) - ->andReturn('return value'); - -This is equivalent with the following ``shouldReceive`` syntax: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method_1') - ->with($arg1) - ->andReturn('return value'); - -Expects -------- - -We use ``expects()`` when we want to verify that a particular method was called: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->expects() - ->name_of_method_1($arg1) - ->andReturn('return value'); - -This is equivalent with the following ``shouldReceive`` syntax: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method_1') - ->once() - ->with($arg1) - ->andReturn('return value'); - -By default ``expects()`` sets up an expectation that the method should be called -once and once only. If we expect more than one call to the method, we can change -that expectation: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->expects() - ->name_of_method_1($arg1) - ->twice() - ->andReturn('return value'); - diff --git a/vendor/mockery/mockery/docs/reference/argument_validation.rst b/vendor/mockery/mockery/docs/reference/argument_validation.rst deleted file mode 100644 index 735407c0..00000000 --- a/vendor/mockery/mockery/docs/reference/argument_validation.rst +++ /dev/null @@ -1,317 +0,0 @@ -.. index:: - single: Argument Validation - -Argument Validation -=================== - -The arguments passed to the ``with()`` declaration when setting up an -expectation determine the criteria for matching method calls to expectations. -Thus, we can setup up many expectations for a single method, each -differentiated by the expected arguments. Such argument matching is done on a -"best fit" basis. This ensures explicit matches take precedence over -generalised matches. - -An explicit match is merely where the expected argument and the actual -argument are easily equated (i.e. using ``===`` or ``==``). More generalised -matches are possible using regular expressions, class hinting and the -available generic matchers. The purpose of generalised matchers is to allow -arguments be defined in non-explicit terms, e.g. ``Mockery::any()`` passed to -``with()`` will match **any** argument in that position. - -Mockery's generic matchers do not cover all possibilities but offers optional -support for the Hamcrest library of matchers. Hamcrest is a PHP port of the -similarly named Java library (which has been ported also to Python, Erlang, -etc). By using Hamcrest, Mockery does not need to duplicate Hamcrest's already -impressive utility which itself promotes a natural English DSL. - -The examples below show Mockery matchers and their Hamcrest equivalent, if there -is one. Hamcrest uses functions (no namespacing). - -.. note:: - - If you don't wish to use the global Hamcrest functions, they are all exposed - through the ``\Hamcrest\Matchers`` class as well, as static methods. Thus, - ``identicalTo($arg)`` is the same as ``\Hamcrest\Matchers::identicalTo($arg)`` - -The most common matcher is the ``with()`` matcher: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(1): - -It tells mockery that it should receive a call to the ``foo`` method with the -integer ``1`` as an argument. In cases like this, Mockery first tries to match -the arguments using ``===`` (identical) comparison operator. If the argument is -a primitive, and if it fails the identical comparison, Mockery does a fallback -to the ``==`` (equals) comparison operator. - -When matching objects as arguments, Mockery only does the strict ``===`` -comparison, which means only the same ``$object`` will match: - -.. code-block:: php - - $object = new stdClass(); - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive("foo") - ->with($object); - - // Hamcrest equivalent - $mock->shouldReceive("foo") - ->with(identicalTo($object)); - -A different instance of ``stdClass`` will **not** match. - -.. note:: - - The ``Mockery\Matcher\MustBe`` matcher has been deprecated. - -If we need a loose comparison of objects, we can do that using Hamcrest's -``equalTo`` matcher: - -.. code-block:: php - - $mock->shouldReceive("foo") - ->with(equalTo(new stdClass)); - -In cases when we don't care about the type, or the value of an argument, just -that any argument is present, we use ``any()``: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive("foo") - ->with(\Mockery::any()); - - // Hamcrest equivalent - $mock->shouldReceive("foo") - ->with(anything()) - -Anything and everything passed in this argument slot is passed unconstrained. - -Validating Types and Resources ------------------------------- - -The ``type()`` matcher accepts any string which can be attached to ``is_`` to -form a valid type check. - -To match any PHP resource, we could do the following: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive("foo") - ->with(\Mockery::type('resource')); - - // Hamcrest equivalents - $mock->shouldReceive("foo") - ->with(resourceValue()); - $mock->shouldReceive("foo") - ->with(typeOf('resource')); - -It will return a ``true`` from an ``is_resource()`` call, if the provided -argument to the method is a PHP resource. For example, ``\Mockery::type('float')`` -or Hamcrest's ``floatValue()`` and ``typeOf('float')`` checks use ``is_float()``, -and ``\Mockery::type('callable')`` or Hamcrest's ``callable()`` uses -``is_callable()``. - -The ``type()`` matcher also accepts a class or interface name to be used in an -``instanceof`` evaluation of the actual argument. Hamcrest uses ``anInstanceOf()``. - -A full list of the type checkers is available at -`php.net `_ or browse Hamcrest's function -list in -`the Hamcrest code `_. - -.. _argument-validation-complex-argument-validation: - -Complex Argument Validation ---------------------------- - -If we want to perform a complex argument validation, the ``on()`` matcher is -invaluable. It accepts a closure (anonymous function) to which the actual -argument will be passed. - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive("foo") - ->with(\Mockery::on(closure)); - -If the closure evaluates to (i.e. returns) boolean ``true`` then the argument is -assumed to have matched the expectation. - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - - $mock->shouldReceive('foo') - ->with(\Mockery::on(function ($argument) { - if ($argument % 2 == 0) { - return true; - } - return false; - })); - - $mock->foo(4); // matches the expectation - $mock->foo(3); // throws a NoMatchingExpectationException - -.. note:: - - There is no Hamcrest version of the ``on()`` matcher. - -We can also perform argument validation by passing a closure to ``withArgs()`` -method. The closure will receive all arguments passed in the call to the expected -method and if it evaluates (i.e. returns) to boolean ``true``, then the list of -arguments is assumed to have matched the expectation: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive("foo") - ->withArgs(closure); - -The closure can also handle optional parameters, so if an optional parameter is -missing in the call to the expected method, it doesn't necessary means that the -list of arguments doesn't match the expectation. - -.. code-block:: php - - $closure = function ($odd, $even, $sum = null) { - $result = ($odd % 2 != 0) && ($even % 2 == 0); - if (!is_null($sum)) { - return $result && ($odd + $even == $sum); - } - return $result; - }; - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo')->withArgs($closure); - - $mock->foo(1, 2); // It matches the expectation: the optional argument is not needed - $mock->foo(1, 2, 3); // It also matches the expectation: the optional argument pass the validation - $mock->foo(1, 2, 4); // It doesn't match the expectation: the optional doesn't pass the validation - -.. note:: - - In previous versions, Mockery's ``with()`` would attempt to do a pattern - matching against the arguments, attempting to use the argument as a - regular expression. Over time this proved to be not such a great idea, so - we removed this functionality, and have introduced ``Mockery::pattern()`` - instead. - -If we would like to match an argument against a regular expression, we can use -the ``\Mockery::pattern()``: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::pattern('/^foo/')); - - // Hamcrest equivalent - $mock->shouldReceive('foo') - with(matchesPattern('/^foo/')); - -The ``ducktype()`` matcher is an alternative to matching by class type: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::ducktype('foo', 'bar')); - -It matches any argument which is an object containing the provided list of -methods to call. - -.. note:: - - There is no Hamcrest version of the ``ducktype()`` matcher. - -Additional Argument Matchers ----------------------------- - -The ``not()`` matcher matches any argument which is not equal or identical to -the matcher's parameter: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::not(2)); - - // Hamcrest equivalent - $mock->shouldReceive('foo') - ->with(not(2)); - -``anyOf()`` matches any argument which equals any one of the given parameters: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::anyOf(1, 2)); - - // Hamcrest equivalent - $mock->shouldReceive('foo') - ->with(anyOf(1,2)); - -``notAnyOf()`` matches any argument which is not equal or identical to any of -the given parameters: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::notAnyOf(1, 2)); - -.. note:: - - There is no Hamcrest version of the ``notAnyOf()`` matcher. - -``subset()`` matches any argument which is any array containing the given array -subset: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::subset(array(0 => 'foo'))); - -This enforces both key naming and values, i.e. both the key and value of each -actual element is compared. - -.. note:: - - There is no Hamcrest version of this functionality, though Hamcrest can check - a single entry using ``hasEntry()`` or ``hasKeyValuePair()``. - -``contains()`` matches any argument which is an array containing the listed -values: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::contains(value1, value2)); - -The naming of keys is ignored. - -``hasKey()`` matches any argument which is an array containing the given key -name: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::hasKey(key)); - -``hasValue()`` matches any argument which is an array containing the given -value: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('foo') - ->with(\Mockery::hasValue(value)); diff --git a/vendor/mockery/mockery/docs/reference/creating_test_doubles.rst b/vendor/mockery/mockery/docs/reference/creating_test_doubles.rst deleted file mode 100644 index 377812d8..00000000 --- a/vendor/mockery/mockery/docs/reference/creating_test_doubles.rst +++ /dev/null @@ -1,419 +0,0 @@ -.. index:: - single: Reference; Creating Test Doubles - -Creating Test Doubles -===================== - -Mockery's main goal is to help us create test doubles. It can create stubs, -mocks, and spies. - -Stubs and mocks are created the same. The difference between the two is that a -stub only returns a preset result when called, while a mock needs to have -expectations set on the method calls it expects to receive. - -Spies are a type of test doubles that keep track of the calls they received, and -allow us to inspect these calls after the fact. - -When creating a test double object, we can pass in an identifier as a name for -our test double. If we pass it no identifier, the test double name will be -unknown. Furthermore, the identifier must not be a class name. It is a -good practice, and our recommendation, to always name the test doubles with the -same name as the underlying class we are creating test doubles for. - -If the identifier we use for our test double is a name of an existing class, -the test double will inherit the type of the class (via inheritance), i.e. the -mock object will pass type hints or ``instanceof`` evaluations for the existing -class. This is useful when a test double must be of a specific type, to satisfy -the expectations our code has. - -Stubs and mocks ---------------- - -Stubs and mocks are created by calling the ``\Mockery::mock()`` method. The -following example shows how to create a stub, or a mock, object named "foo": - -.. code-block:: php - - $mock = \Mockery::mock('foo'); - -The mock object created like this is the loosest form of mocks possible, and is -an instance of ``\Mockery\MockInterface``. - -.. note:: - - All test doubles created with Mockery are an instance of - ``\Mockery\MockInterface``, regardless are they a stub, mock or a spy. - -To create a stub or a mock object with no name, we can call the ``mock()`` -method with no parameters: - -.. code-block:: php - - $mock = \Mockery::mock(); - -As we stated earlier, we don't recommend creating stub or mock objects without -a name. - -Classes, abstracts, interfaces -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The recommended way to create a stub or a mock object is by using a name of -an existing class we want to create a test double of: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - -This stub or mock object will have the type of ``MyClass``, through inheritance. - -Stub or mock objects can be based on any concrete class, abstract class or even -an interface. The primary purpose is to ensure the mock object inherits a -specific type for type hinting. - -.. code-block:: php - - $mock = \Mockery::mock('MyInterface'); - -This stub or mock object will implement the ``MyInterface`` interface. - -.. note:: - - Classes marked final, or classes that have methods marked final cannot be - mocked fully. Mockery supports creating partial mocks for these cases. - Partial mocks will be explained later in the documentation. - -Mockery also supports creating stub or mock objects based on a single existing -class, which must implement one or more interfaces. We can do this by providing -a comma-separated list of the class and interfaces as the first argument to the -``\Mockery::mock()`` method: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass, MyInterface, OtherInterface'); - -This stub or mock object will now be of type ``MyClass`` and implement the -``MyInterface`` and ``OtherInterface`` interfaces. - -.. note:: - - The class name doesn't need to be the first member of the list but it's a - friendly convention to use for readability. - -We can tell a mock to implement the desired interfaces by passing the list of -interfaces as the second argument: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass', 'MyInterface, OtherInterface'); - -For all intents and purposes, this is the same as the previous example. - -Spies ------ - -The third type of test doubles Mockery supports are spies. The main difference -between spies and mock objects is that with spies we verify the calls made -against our test double after the calls were made. We would use a spy when we -don't necessarily care about all of the calls that are going to be made to an -object. - -A spy will return ``null`` for all method calls it receives. It is not possible -to tell a spy what will be the return value of a method call. If we do that, then -we would deal with a mock object, and not with a spy. - -We create a spy by calling the ``\Mockery::spy()`` method: - -.. code-block:: php - - $spy = \Mockery::spy('MyClass'); - -Just as with stubs or mocks, we can tell Mockery to base a spy on any concrete -or abstract class, or to implement any number of interfaces: - -.. code-block:: php - - $spy = \Mockery::spy('MyClass, MyInterface, OtherInterface'); - -This spy will now be of type ``MyClass`` and implement the ``MyInterface`` and -``OtherInterface`` interfaces. - -.. note:: - - The ``\Mockery::spy()`` method call is actually a shorthand for calling - ``\Mockery::mock()->shouldIgnoreMissing()``. The ``shouldIgnoreMissing`` - method is a "behaviour modifier". We'll discuss them a bit later. - -Mocks vs. Spies ---------------- - -Let's try and illustrate the difference between mocks and spies with the -following example: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $spy = \Mockery::spy('MyClass'); - - $mock->shouldReceive('foo')->andReturn(42); - - $mockResult = $mock->foo(); - $spyResult = $spy->foo(); - - $spy->shouldHaveReceived()->foo(); - - var_dump($mockResult); // int(42) - var_dump($spyResult); // null - -As we can see from this example, with a mock object we set the call expectations -before the call itself, and we get the return result we expect it to return. -With a spy object on the other hand, we verify the call has happened after the -fact. The return result of a method call against a spy is always ``null``. - -We also have a dedicated chapter to :doc:`spies` only. - -.. _creating-test-doubles-partial-test-doubles: - -Partial Test Doubles --------------------- - -Partial doubles are useful when we want to stub out, set expectations for, or -spy on *some* methods of a class, but run the actual code for other methods. - -We differentiate between three types of partial test doubles: - - * runtime partial test doubles, - * generated partial test doubles, and - * proxied partial test doubles. - -Runtime partial test doubles -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -What we call a runtime partial, involves creating a test double and then telling -it to make itself partial. Any method calls that the double hasn't been told to -allow or expect, will act as they would on a normal instance of the object. - -.. code-block:: php - - class Foo { - function foo() { return 123; } - function bar() { return $this->foo(); } - } - - $foo = mock(Foo::class)->makePartial(); - $foo->foo(); // int(123); - -We can then tell the test double to allow or expect calls as with any other -Mockery double. - -.. code-block:: php - - $foo->shouldReceive('foo')->andReturn(456); - $foo->bar(); // int(456) - -See the cookbook entry on :doc:`../cookbook/big_parent_class` for an example -usage of runtime partial test doubles. - -Generated partial test doubles -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The second type of partial double we can create is what we call a generated -partial. With generated partials, we specifically tell Mockery which methods -we want to be able to allow or expect calls to. All other methods will run the -actual code *directly*, so stubs and expectations on these methods will not -work. - -.. code-block:: php - - class Foo { - function foo() { return 123; } - function bar() { return $this->foo(); } - } - - $foo = mock("Foo[foo]"); - - $foo->foo(); // error, no expectation set - - $foo->shouldReceive('foo')->andReturn(456); - $foo->foo(); // int(456) - - // setting an expectation for this has no effect - $foo->shouldReceive('bar')->andReturn(999); - $foo->bar(); // int(456) - -.. note:: - - Even though we support generated partial test doubles, we do not recommend - using them. - - One of the reasons why is because a generated partial will call the original - constructor of the mocked class. This can have unwanted side-effects during - testing application code. - - See :doc:`../cookbook/not_calling_the_constructor` for more details. - -Proxied partial test doubles -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -A proxied partial mock is a partial of last resort. We may encounter a class -which is simply not capable of being mocked because it has been marked as -final. Similarly, we may find a class with methods marked as final. In such a -scenario, we cannot simply extend the class and override methods to mock - we -need to get creative. - -.. code-block:: php - - $mock = \Mockery::mock(new MyClass); - -Yes, the new mock is a Proxy. It intercepts calls and reroutes them to the -proxied object (which we construct and pass in) for methods which are not -subject to any expectations. Indirectly, this allows us to mock methods -marked final since the Proxy is not subject to those limitations. The tradeoff -should be obvious - a proxied partial will fail any typehint checks for the -class being mocked since it cannot extend that class. - -.. _creating-test-doubles-aliasing: - -Aliasing --------- - -Prefixing the valid name of a class (which is NOT currently loaded) with -"alias:" will generate an "alias mock". Alias mocks create a class alias with -the given classname to stdClass and are generally used to enable the mocking -of public static methods. Expectations set on the new mock object which refer -to static methods will be used by all static calls to this class. - -.. code-block:: php - - $mock = \Mockery::mock('alias:MyClass'); - - -.. note:: - - Even though aliasing classes is supported, we do not recommend it. - -Overloading ------------ - -Prefixing the valid name of a class (which is NOT currently loaded) with -"overload:" will generate an alias mock (as with "alias:") except that created -new instances of that class will import any expectations set on the origin -mock (``$mock``). The origin mock is never verified since it's used an -expectation store for new instances. For this purpose we use the term "instance -mock" to differentiate it from the simpler "alias mock". - -In other words, an instance mock will "intercept" when a new instance of the -mocked class is created, then the mock will be used instead. This is useful -especially when mocking hard dependencies which will be discussed later. - -.. code-block:: php - - $mock = \Mockery::mock('overload:MyClass'); - -.. note:: - - Using alias/instance mocks across more than one test will generate a fatal - error since we can't have two classes of the same name. To avoid this, - run each test of this kind in a separate PHP process (which is supported - out of the box by both PHPUnit and PHPT). - - -.. _creating-test-doubles-named-mocks: - -Named Mocks ------------ - -The ``namedMock()`` method will generate a class called by the first argument, -so in this example ``MyClassName``. The rest of the arguments are treated in the -same way as the ``mock`` method: - -.. code-block:: php - - $mock = \Mockery::namedMock('MyClassName', 'DateTime'); - -This example would create a class called ``MyClassName`` that extends -``DateTime``. - -Named mocks are quite an edge case, but they can be useful when code depends -on the ``__CLASS__`` magic constant, or when we need two derivatives of an -abstract type, that are actually different classes. - -See the cookbook entry on :doc:`../cookbook/class_constants` for an example -usage of named mocks. - -.. note:: - - We can only create a named mock once, any subsequent calls to - ``namedMock``, with different arguments are likely to cause exceptions. - -.. _creating-test-doubles-constructor-arguments: - -Constructor Arguments ---------------------- - -Sometimes the mocked class has required constructor arguments. We can pass these -to Mockery as an indexed array, as the 2nd argument: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass', [$constructorArg1, $constructorArg2]); - -or if we need the ``MyClass`` to implement an interface as well, as the 3rd -argument: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass', 'MyInterface', [$constructorArg1, $constructorArg2]); - -Mockery now knows to pass in ``$constructorArg1`` and ``$constructorArg2`` as -arguments to the constructor. - -.. _creating-test-doubles-behavior-modifiers: - -Behavior Modifiers ------------------- - -When creating a mock object, we may wish to use some commonly preferred -behaviours that are not the default in Mockery. - -The use of the ``shouldIgnoreMissing()`` behaviour modifier will label this -mock object as a Passive Mock: - -.. code-block:: php - - \Mockery::mock('MyClass')->shouldIgnoreMissing(); - -In such a mock object, calls to methods which are not covered by expectations -will return ``null`` instead of the usual error about there being no expectation -matching the call. - -On PHP >= 7.0.0, methods with missing expectations that have a return type -will return either a mock of the object (if return type is a class) or a -"falsy" primitive value, e.g. empty string, empty array, zero for ints and -floats, false for bools, or empty closures. - -On PHP >= 7.1.0, methods with missing expectations and nullable return type -will return null. - -We can optionally prefer to return an object of type ``\Mockery\Undefined`` -(i.e. a ``null`` object) (which was the 0.7.2 behaviour) by using an -additional modifier: - -.. code-block:: php - - \Mockery::mock('MyClass')->shouldIgnoreMissing()->asUndefined(); - -The returned object is nothing more than a placeholder so if, by some act of -fate, it's erroneously used somewhere it shouldn't it will likely not pass a -logic check. - -We have encountered the ``makePartial()`` method before, as it is the method we -use to create runtime partial test doubles: - -.. code-block:: php - - \Mockery::mock('MyClass')->makePartial(); - -This form of mock object will defer all methods not subject to an expectation to -the parent class of the mock, i.e. ``MyClass``. Whereas the previous -``shouldIgnoreMissing()`` returned ``null``, this behaviour simply calls the -parent's matching method. diff --git a/vendor/mockery/mockery/docs/reference/demeter_chains.rst b/vendor/mockery/mockery/docs/reference/demeter_chains.rst deleted file mode 100644 index 1dad5eff..00000000 --- a/vendor/mockery/mockery/docs/reference/demeter_chains.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. index:: - single: Mocking; Demeter Chains - -Mocking Demeter Chains And Fluent Interfaces -============================================ - -Both of these terms refer to the growing practice of invoking statements -similar to: - -.. code-block:: php - - $object->foo()->bar()->zebra()->alpha()->selfDestruct(); - -The long chain of method calls isn't necessarily a bad thing, assuming they -each link back to a local object the calling class knows. As a fun example, -Mockery's long chains (after the first ``shouldReceive()`` method) all call to -the same instance of ``\Mockery\Expectation``. However, sometimes this is not -the case and the chain is constantly crossing object boundaries. - -In either case, mocking such a chain can be a horrible task. To make it easier -Mockery supports demeter chain mocking. Essentially, we shortcut through the -chain and return a defined value from the final call. For example, let's -assume ``selfDestruct()`` returns the string "Ten!" to $object (an instance of -``CaptainsConsole``). Here's how we could mock it. - -.. code-block:: php - - $mock = \Mockery::mock('CaptainsConsole'); - $mock->shouldReceive('foo->bar->zebra->alpha->selfDestruct')->andReturn('Ten!'); - -The above expectation can follow any previously seen format or expectation, -except that the method name is simply the string of all expected chain calls -separated by ``->``. Mockery will automatically setup the chain of expected -calls with its final return values, regardless of whatever intermediary object -might be used in the real implementation. - -Arguments to all members of the chain (except the final call) are ignored in -this process. diff --git a/vendor/mockery/mockery/docs/reference/expectations.rst b/vendor/mockery/mockery/docs/reference/expectations.rst deleted file mode 100644 index 73cc9c10..00000000 --- a/vendor/mockery/mockery/docs/reference/expectations.rst +++ /dev/null @@ -1,465 +0,0 @@ -.. index:: - single: Expectations - -Expectation Declarations -======================== - -.. note:: - - In order for our expectations to work we MUST call ``Mockery::close()``, - preferably in a callback method such as ``tearDown`` or ``_before`` - (depending on whether or not we're integrating Mockery with another - framework). This static call cleans up the Mockery container used by the - current test, and run any verification tasks needed for our expectations. - -Once we have created a mock object, we'll often want to start defining how -exactly it should behave (and how it should be called). This is where the -Mockery expectation declarations take over. - -Declaring Method Call Expectations ----------------------------------- - -To tell our test double to expect a call for a method with a given name, we use -the ``shouldReceive`` method: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method'); - -This is the starting expectation upon which all other expectations and -constraints are appended. - -We can declare more than one method call to be expected: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method_1', 'name_of_method_2'); - -All of these will adopt any chained expectations or constraints. - -It is possible to declare the expectations for the method calls, along with -their return values: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive([ - 'name_of_method_1' => 'return value 1', - 'name_of_method_2' => 'return value 2', - ]); - -There's also a shorthand way of setting up method call expectations and their -return values: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass', ['name_of_method_1' => 'return value 1', 'name_of_method_2' => 'return value 2']); - -All of these will adopt any additional chained expectations or constraints. - -We can declare that a test double should not expect a call to the given method -name: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldNotReceive('name_of_method'); - -This method is a convenience method for calling ``shouldReceive()->never()``. - -Declaring Method Argument Expectations --------------------------------------- - -For every method we declare expectation for, we can add constraints that the -defined expectations apply only to the method calls that match the expected -argument list: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->with($arg1, $arg2, ...); - // or - $mock->shouldReceive('name_of_method') - ->withArgs([$arg1, $arg2, ...]); - -We can add a lot more flexibility to argument matching using the built in -matcher classes (see later). For example, ``\Mockery::any()`` matches any -argument passed to that position in the ``with()`` parameter list. Mockery also -allows Hamcrest library matchers - for example, the Hamcrest function -``anything()`` is equivalent to ``\Mockery::any()``. - -It's important to note that this means all expectations attached only apply to -the given method when it is called with these exact arguments: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - - $mock->shouldReceive('foo')->with('Hello'); - - $mock->foo('Goodbye'); // throws a NoMatchingExpectationException - -This allows for setting up differing expectations based on the arguments -provided to expected calls. - -Argument matching with closures -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Instead of providing a built-in matcher for each argument, we can provide a -closure that matches all passed arguments at once: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->withArgs(closure); - -The given closure receives all the arguments passed in the call to the expected -method. In this way, this expectation only applies to method calls where passed -arguments make the closure evaluate to true: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - - $mock->shouldReceive('foo')->withArgs(function ($arg) { - if ($arg % 2 == 0) { - return true; - } - return false; - }); - - $mock->foo(4); // matches the expectation - $mock->foo(3); // throws a NoMatchingExpectationException - -Any, or no arguments -^^^^^^^^^^^^^^^^^^^^ - -We can declare that the expectation matches a method call regardless of what -arguments are passed: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->withAnyArgs(); - -This is set by default unless otherwise specified. - -We can declare that the expectation matches method calls with zero arguments: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->withNoArgs(); - -Declaring Return Value Expectations ------------------------------------ - -For mock objects, we can tell Mockery what return values to return from the -expected method calls. - -For that we can use the ``andReturn()`` method: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andReturn($value); - -This sets a value to be returned from the expected method call. - -It is possible to set up expectation for multiple return values. By providing -a sequence of return values, we tell Mockery what value to return on every -subsequent call to the method: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andReturn($value1, $value2, ...) - -The first call will return ``$value1`` and the second call will return ``$value2``. - -If we call the method more times than the number of return values we declared, -Mockery will return the final value for any subsequent method call: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - - $mock->shouldReceive('foo')->andReturn(1, 2, 3); - - $mock->foo(); // int(1) - $mock->foo(); // int(2) - $mock->foo(); // int(3) - $mock->foo(); // int(3) - -The same can be achieved using the alternative syntax: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andReturnValues([$value1, $value2, ...]) - -It accepts a simple array instead of a list of parameters. The order of return -is determined by the numerical index of the given array with the last array -member being returned on all calls once previous return values are exhausted. - -The following two options are primarily for communication with test readers: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andReturnNull(); - // or - $mock->shouldReceive('name_of_method') - ->andReturn([null]); - -They mark the mock object method call as returning ``null`` or nothing. - -Sometimes we want to calculate the return results of the method calls, based on -the arguments passed to the method. We can do that with the ``andReturnUsing()`` -method which accepts one or more closure: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andReturnUsing(closure, ...); - -Closures can queued by passing them as extra parameters as for ``andReturn()``. - -.. note:: - - We cannot currently mix ``andReturnUsing()`` with ``andReturn()``. - -If we are mocking fluid interfaces, the following method will be helpful: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andReturnSelf(); - -It sets the return value to the mocked class name. - -Throwing Exceptions -------------------- - -We can tell the method of mock objects to throw exceptions: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andThrow(Exception); - -It will throw the given ``Exception`` object when called. - -Rather than an object, we can pass in the ``Exception`` class and message to -use when throwing an ``Exception`` from the mocked method: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andThrow(exception_name, message); - -.. _expectations-setting-public-properties: - -Setting Public Properties -------------------------- - -Used with an expectation so that when a matching method is called, we can cause -a mock object's public property to be set to a specified value, by using -``andSet()`` or ``set()``: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->andSet($property, $value); - // or - $mock->shouldReceive('name_of_method') - ->set($property, $value); - -In cases where we want to call the real method of the class that was mocked and -return its result, the ``passthru()`` method tells the expectation to bypass -a return queue: - -.. code-block:: php - - passthru() - -It allows expectation matching and call count validation to be applied against -real methods while still calling the real class method with the expected -arguments. - -Declaring Call Count Expectations ---------------------------------- - -Besides setting expectations on the arguments of the method calls, and the -return values of those same calls, we can set expectations on how many times -should any method be called. - -When a call count expectation is not met, a -``\Mockery\Expectation\InvalidCountException`` will be thrown. - -.. note:: - - It is absolutely required to call ``\Mockery::close()`` at the end of our - tests, for example in the ``tearDown()`` method of PHPUnit. Otherwise - Mockery will not verify the calls made against our mock objects. - -We can declare that the expected method may be called zero or more times: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->zeroOrMoreTimes(); - -This is the default for all methods unless otherwise set. - -To tell Mockery to expect an exact number of calls to a method, we can use the -following: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->times($n); - -where ``$n`` is the number of times the method should be called. - -A couple of most common cases got their shorthand methods. - -To declare that the expected method must be called one time only: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->once(); - -To declare that the expected method must be called two times: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->twice(); - -To declare that the expected method must never be called: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->never(); - -Call count modifiers -^^^^^^^^^^^^^^^^^^^^ - -The call count expectations can have modifiers set. - -If we want to tell Mockery the minimum number of times a method should be called, -we use ``atLeast()``: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->atLeast() - ->times(3); - -``atLeast()->times(3)`` means the call must be called at least three times -(given matching method args) but never less than three times. - -Similarly, we can tell Mockery the maximum number of times a method should be -called, using ``atMost()``: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->atMost() - ->times(3); - -``atMost()->times(3)`` means the call must be called no more than three times. -If the method gets no calls at all, the expectation will still be met. - -We can also set a range of call counts, using ``between()``: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass'); - $mock->shouldReceive('name_of_method') - ->between($min, $max); - -This is actually identical to using ``atLeast()->times($min)->atMost()->times($max)`` -but is provided as a shorthand. It may be followed by a ``times()`` call with no -parameter to preserve the APIs natural language readability. - -Expectation Declaration Utilities ---------------------------------- - -Declares that this method is expected to be called in a specific order in -relation to similarly marked methods. - -.. code-block:: php - - ordered() - -The order is dictated by the order in which this modifier is actually used when -setting up mocks. - -Declares the method as belonging to an order group (which can be named or -numbered). Methods within a group can be called in any order, but the ordered -calls from outside the group are ordered in relation to the group: - -.. code-block:: php - - ordered(group) - -We can set up so that method1 is called before group1 which is in turn called -before method2. - -When called prior to ``ordered()`` or ``ordered(group)``, it declares this -ordering to apply across all mock objects (not just the current mock): - -.. code-block:: php - - globally() - -This allows for dictating order expectations across multiple mocks. - -The ``byDefault()`` marks an expectation as a default. Default expectations are -applied unless a non-default expectation is created: - -.. code-block:: php - - byDefault() - -These later expectations immediately replace the previously defined default. -This is useful so we can setup default mocks in our unit test ``setup()`` and -later tweak them in specific tests as needed. - -Returns the current mock object from an expectation chain: - -.. code-block:: php - - getMock() - -Useful where we prefer to keep mock setups as a single statement, e.g.: - -.. code-block:: php - - $mock = \Mockery::mock('foo')->shouldReceive('foo')->andReturn(1)->getMock(); diff --git a/vendor/mockery/mockery/docs/reference/final_methods_classes.rst b/vendor/mockery/mockery/docs/reference/final_methods_classes.rst deleted file mode 100644 index b78f49d0..00000000 --- a/vendor/mockery/mockery/docs/reference/final_methods_classes.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. index:: - single: Mocking; Final Classes/Methods - -Dealing with Final Classes/Methods -================================== - -One of the primary restrictions of mock objects in PHP, is that mocking -classes or methods marked final is hard. The final keyword prevents methods so -marked from being replaced in subclasses (subclassing is how mock objects can -inherit the type of the class or object being mocked. - -The simplest solution is not to mark classes or methods as final! - -However, in a compromise between mocking functionality and type safety, -Mockery does allow creating "proxy mocks" from classes marked final, or from -classes with methods marked final. This offers all the usual mock object -goodness but the resulting mock will not inherit the class type of the object -being mocked, i.e. it will not pass any instanceof comparison. - -We can create a proxy mock by passing the instantiated object we wish to -mock into ``\Mockery::mock()``, i.e. Mockery will then generate a Proxy to the -real object and selectively intercept method calls for the purposes of setting -and meeting expectations. - -See the :ref:`creating-test-doubles-partial-test-doubles` chapter, the subsection -about proxied partial test doubles. diff --git a/vendor/mockery/mockery/docs/reference/index.rst b/vendor/mockery/mockery/docs/reference/index.rst deleted file mode 100644 index 1e5bf048..00000000 --- a/vendor/mockery/mockery/docs/reference/index.rst +++ /dev/null @@ -1,22 +0,0 @@ -Reference -========= - -.. toctree:: - :hidden: - - creating_test_doubles - expectations - argument_validation - alternative_should_receive_syntax - spies - partial_mocks - protected_methods - public_properties - public_static_properties - pass_by_reference_behaviours - demeter_chains - final_methods_classes - magic_methods - phpunit_integration - -.. include:: map.rst.inc diff --git a/vendor/mockery/mockery/docs/reference/instance_mocking.rst b/vendor/mockery/mockery/docs/reference/instance_mocking.rst deleted file mode 100644 index 9d1aa283..00000000 --- a/vendor/mockery/mockery/docs/reference/instance_mocking.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. index:: - single: Mocking; Instance - -Instance Mocking -================ - -Instance mocking means that a statement like: - -.. code-block:: php - - $obj = new \MyNamespace\Foo; - -...will actually generate a mock object. This is done by replacing the real -class with an instance mock (similar to an alias mock), as with mocking public -methods. The alias will import its expectations from the original mock of -that type (note that the original is never verified and should be ignored -after its expectations are setup). This lets you intercept instantiation where -you can't simply inject a replacement object. - -As before, this does not prevent a require statement from including the real -class and triggering a fatal PHP error. It's intended for use where -autoloading is the primary class loading mechanism. diff --git a/vendor/mockery/mockery/docs/reference/magic_methods.rst b/vendor/mockery/mockery/docs/reference/magic_methods.rst deleted file mode 100644 index 39591cff..00000000 --- a/vendor/mockery/mockery/docs/reference/magic_methods.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. index:: - single: Mocking; Magic Methods - -PHP Magic Methods -================= - -PHP magic methods which are prefixed with a double underscore, e.g. -``__set()``, pose a particular problem in mocking and unit testing in general. -It is strongly recommended that unit tests and mock objects do not directly -refer to magic methods. Instead, refer only to the virtual methods and -properties these magic methods simulate. - -Following this piece of advice will ensure we are testing the real API of -classes and also ensures there is no conflict should Mockery override these -magic methods, which it will inevitably do in order to support its role in -intercepting method calls and properties. diff --git a/vendor/mockery/mockery/docs/reference/map.rst.inc b/vendor/mockery/mockery/docs/reference/map.rst.inc deleted file mode 100644 index 883bc3ca..00000000 --- a/vendor/mockery/mockery/docs/reference/map.rst.inc +++ /dev/null @@ -1,14 +0,0 @@ -* :doc:`/reference/creating_test_doubles` -* :doc:`/reference/expectations` -* :doc:`/reference/argument_validation` -* :doc:`/reference/alternative_should_receive_syntax` -* :doc:`/reference/spies` -* :doc:`/reference/partial_mocks` -* :doc:`/reference/protected_methods` -* :doc:`/reference/public_properties` -* :doc:`/reference/public_static_properties` -* :doc:`/reference/pass_by_reference_behaviours` -* :doc:`/reference/demeter_chains` -* :doc:`/reference/final_methods_classes` -* :doc:`/reference/magic_methods` -* :doc:`/reference/phpunit_integration` diff --git a/vendor/mockery/mockery/docs/reference/partial_mocks.rst b/vendor/mockery/mockery/docs/reference/partial_mocks.rst deleted file mode 100644 index 3fb91c72..00000000 --- a/vendor/mockery/mockery/docs/reference/partial_mocks.rst +++ /dev/null @@ -1,115 +0,0 @@ -.. index:: - single: Mocking; Partial Mocks - -Creating Partial Mocks -====================== - -Partial mocks are useful when we only need to mock several methods of an -object leaving the remainder free to respond to calls normally (i.e. as -implemented). Mockery implements three distinct strategies for creating -partials. Each has specific advantages and disadvantages so which strategy we -use will depend on our own preferences and the source code in need of -mocking. - -We have previously talked a bit about :ref:`creating-test-doubles-partial-test-doubles`, -but we'd like to expand on the subject a bit here. - -#. Runtime partial test doubles -#. Generated partial test doubles -#. Proxied Partial Mock - -Runtime partial test doubles ----------------------------- - -A runtime partial test double, also known as a passive partial mock, is a kind -of a default state of being for a mocked object. - -.. code-block:: php - - $mock = \Mockery::mock('MyClass')->makePartial(); - -With a generated partial, we assume that all methods will simply defer to the -parent class (``MyClass``) original methods unless a method call matches a -known expectation. If we have no matching expectation for a specific method -call, that call is deferred to the class being mocked. Since the division -between mocked and unmocked calls depends entirely on the expectations we -define, there is no need to define which methods to mock in advance. - -See the cookbook entry on :doc:`../cookbook/big_parent_class` for an example -usage of runtime partial test doubles. - -.. note:: - - The ``makePartial()`` method is identical to the original ``shouldDeferMissing()`` - method which first introduced this Partial Mock type. To know more about - ``shouldDeferMissing()`` method - see the chapter on - :ref:`creating-test-doubles-behavior-modifiers`. - -Generated Partial Test Doubles ------------------------------- - -A generated partial test double, also known as a traditional partial mock, -defines ahead of time which methods of a class are to be mocked and which are -to be left unmocked (i.e. callable as normal). The syntax for creating -traditional mocks is: - -.. code-block:: php - - $mock = \Mockery::mock('MyClass[foo,bar]'); - -In the above example, the ``foo()`` and ``bar()`` methods of MyClass will be -mocked but no other MyClass methods are touched. We will need to define -expectations for the ``foo()`` and ``bar()`` methods to dictate their mocked -behaviour. - -Don't forget that we can pass in constructor arguments since unmocked methods -may rely on those! - -.. code-block:: php - - $mock = \Mockery::mock('MyNamespace\MyClass[foo]', array($arg1, $arg2)); - -See the :ref:`creating-test-doubles-constructor-arguments` section to read up -on them. - -.. note:: - - Even though we support generated partial test doubles, we do not recommend - using them. - -Proxied Partial Mock --------------------- - -A proxied partial mock is a partial of last resort. We may encounter a class -which is simply not capable of being mocked because it has been marked as -final. Similarly, we may find a class with methods marked as final. In such a -scenario, we cannot simply extend the class and override methods to mock - we -need to get creative. - -.. code-block:: php - - $mock = \Mockery::mock(new MyClass); - -Yes, the new mock is a Proxy. It intercepts calls and reroutes them to the -proxied object (which we construct and pass in) for methods which are not -subject to any expectations. Indirectly, this allows we to mock methods -marked final since the Proxy is not subject to those limitations. The tradeoff -should be obvious - a proxied partial will fail any typehint checks for the -class being mocked since it cannot extend that class. - -Special Internal Cases ----------------------- - -All mock objects, with the exception of Proxied Partials, allows us to make -any expectation call to the underlying real class method using the ``passthru()`` -expectation call. This will return values from the real call and bypass any -mocked return queue (which can simply be omitted obviously). - -There is a fourth kind of partial mock reserved for internal use. This is -automatically generated when we attempt to mock a class containing methods -marked final. Since we cannot override such methods, they are simply left -unmocked. Typically, we don't need to worry about this but if we really -really must mock a final method, the only possible means is through a Proxied -Partial Mock. SplFileInfo, for example, is a common class subject to this form -of automatic internal partial since it contains public final methods used -internally. diff --git a/vendor/mockery/mockery/docs/reference/pass_by_reference_behaviours.rst b/vendor/mockery/mockery/docs/reference/pass_by_reference_behaviours.rst deleted file mode 100644 index 8844e3f9..00000000 --- a/vendor/mockery/mockery/docs/reference/pass_by_reference_behaviours.rst +++ /dev/null @@ -1,130 +0,0 @@ -.. index:: - single: Pass-By-Reference Method Parameter Behaviour - -Preserving Pass-By-Reference Method Parameter Behaviour -======================================================= - -PHP Class method may accept parameters by reference. In this case, changes -made to the parameter (a reference to the original variable passed to the -method) are reflected in the original variable. An example: - -.. code-block:: php - - class Foo - { - - public function bar(&$a) - { - $a++; - } - - } - - $baz = 1; - $foo = new Foo; - $foo->bar($baz); - - echo $baz; // will echo the integer 2 - -In the example above, the variable $baz is passed by reference to -``Foo::bar()`` (notice the ``&`` symbol in front of the parameter?). Any -change ``bar()`` makes to the parameter reference is reflected in the original -variable, ``$baz``. - -Mockery handles references correctly for all methods where it can analyse -the parameter (using ``Reflection``) to see if it is passed by reference. To -mock how a reference is manipulated by the class method, we can use a closure -argument matcher to manipulate it, i.e. ``\Mockery::on()`` - see the -:ref:`argument-validation-complex-argument-validation` chapter. - -There is an exception for internal PHP classes where Mockery cannot analyse -method parameters using ``Reflection`` (a limitation in PHP). To work around -this, we can explicitly declare method parameters for an internal class using -``\Mockery\Configuration::setInternalClassMethodParamMap()``. - -Here's an example using ``MongoCollection::insert()``. ``MongoCollection`` is -an internal class offered by the mongo extension from PECL. Its ``insert()`` -method accepts an array of data as the first parameter, and an optional -options array as the second parameter. The original data array is updated -(i.e. when a ``insert()`` pass-by-reference parameter) to include a new -``_id`` field. We can mock this behaviour using a configured parameter map (to -tell Mockery to expect a pass by reference parameter) and a ``Closure`` -attached to the expected method parameter to be updated. - -Here's a PHPUnit unit test verifying that this pass-by-reference behaviour is -preserved: - -.. code-block:: php - - public function testCanOverrideExpectedParametersOfInternalPHPClassesToPreserveRefs() - { - \Mockery::getConfiguration()->setInternalClassMethodParamMap( - 'MongoCollection', - 'insert', - array('&$data', '$options = array()') - ); - $m = \Mockery::mock('MongoCollection'); - $m->shouldReceive('insert')->with( - \Mockery::on(function(&$data) { - if (!is_array($data)) return false; - $data['_id'] = 123; - return true; - }), - \Mockery::any() - ); - - $data = array('a'=>1,'b'=>2); - $m->insert($data); - - $this->assertTrue(isset($data['_id'])); - $this->assertEquals(123, $data['_id']); - - \Mockery::resetContainer(); - } - -Protected Methods ------------------ - -When dealing with protected methods, and trying to preserve pass by reference -behavior for them, a different approach is required. - -.. code-block:: php - - class Model - { - public function test(&$data) - { - return $this->doTest($data); - } - - protected function doTest(&$data) - { - $data['something'] = 'wrong'; - return $this; - } - } - - class Test extends \PHPUnit\Framework\TestCase - { - public function testModel() - { - $mock = \Mockery::mock('Model[test]')->shouldAllowMockingProtectedMethods(); - - $mock->shouldReceive('test') - ->with(\Mockery::on(function(&$data) { - $data['something'] = 'wrong'; - return true; - })); - - $data = array('foo' => 'bar'); - - $mock->test($data); - $this->assertTrue(isset($data['something'])); - $this->assertEquals('wrong', $data['something']); - } - } - -This is quite an edge case, so we need to change the original code a little bit, -by creating a public method that will call our protected method, and then mock -that, instead of the protected method. This new public method will act as a -proxy to our protected method. diff --git a/vendor/mockery/mockery/docs/reference/phpunit_integration.rst b/vendor/mockery/mockery/docs/reference/phpunit_integration.rst deleted file mode 100644 index 7528b5aa..00000000 --- a/vendor/mockery/mockery/docs/reference/phpunit_integration.rst +++ /dev/null @@ -1,151 +0,0 @@ -.. index:: - single: PHPUnit Integration - -PHPUnit Integration -=================== - -Mockery was designed as a simple-to-use *standalone* mock object framework, so -its need for integration with any testing framework is entirely optional. To -integrate Mockery, we need to define a ``tearDown()`` method for our tests -containing the following (we may use a shorter ``\Mockery`` namespace -alias): - -.. code-block:: php - - public function tearDown() { - \Mockery::close(); - } - -This static call cleans up the Mockery container used by the current test, and -run any verification tasks needed for our expectations. - -For some added brevity when it comes to using Mockery, we can also explicitly -use the Mockery namespace with a shorter alias. For example: - -.. code-block:: php - - use \Mockery as m; - - class SimpleTest extends \PHPUnit\Framework\TestCase - { - public function testSimpleMock() { - $mock = m::mock('simplemock'); - $mock->shouldReceive('foo')->with(5, m::any())->once()->andReturn(10); - - $this->assertEquals(10, $mock->foo(5)); - } - - public function tearDown() { - m::close(); - } - } - -Mockery ships with an autoloader so we don't need to litter our tests with -``require_once()`` calls. To use it, ensure Mockery is on our -``include_path`` and add the following to our test suite's ``Bootstrap.php`` -or ``TestHelper.php`` file: - -.. code-block:: php - - require_once 'Mockery/Loader.php'; - require_once 'Hamcrest/Hamcrest.php'; - - $loader = new \Mockery\Loader; - $loader->register(); - -If we are using Composer, we can simplify this to including the Composer -generated autoloader file: - -.. code-block:: php - - require __DIR__ . '/../vendor/autoload.php'; // assuming vendor is one directory up - -.. caution:: - - Prior to Hamcrest 1.0.0, the ``Hamcrest.php`` file name had a small "h" - (i.e. ``hamcrest.php``). If upgrading Hamcrest to 1.0.0 remember to check - the file name is updated for all your projects.) - -To integrate Mockery into PHPUnit and avoid having to call the close method -and have Mockery remove itself from code coverage reports, have your test case -extends the ``\Mockery\Adapter\Phpunit\MockeryTestCase``: - -.. code-block:: php - - class MyTest extends \Mockery\Adapter\Phpunit\MockeryTestCase - { - - } - -An alternative is to use the supplied trait: - -.. code-block:: php - - class MyTest extends \PHPUnit\Framework\TestCase - { - use \Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration; - } - -Extending ``MockeryTestCase`` or using the ``MockeryPHPUnitIntegration`` -trait is **the recommended way** of integrating Mockery with PHPUnit, -since Mockery 1.0.0. - -PHPUnit listener ----------------- - -Before the 1.0.0 release, Mockery provided a PHPUnit listener that would -call ``Mockery::close()`` for us at the end of a test. This has changed -significantly since the 1.0.0 version. - -Now, Mockery provides a PHPUnit listener that makes tests fail if -``Mockery::close()`` has not been called. It can help identify tests where -we've forgotten to include the trait or extend the ``MockeryTestCase``. - -If we are using PHPUnit's XML configuration approach, we can include the -following to load the ``TestListener``: - -.. code-block:: xml - - - - - -Make sure Composer's or Mockery's autoloader is present in the bootstrap file -or we will need to also define a "file" attribute pointing to the file of the -``TestListener`` class. - -.. caution:: - - The ``TestListener`` will only work for PHPUnit 6+ versions. - - For PHPUnit versions 5 and lower, the test listener does not work. - -If we are creating the test suite programmatically we may add the listener -like this: - -.. code-block:: php - - // Create the suite. - $suite = new PHPUnit\Framework\TestSuite(); - - // Create the listener and add it to the suite. - $result = new PHPUnit\Framework\TestResult(); - $result->addListener(new \Mockery\Adapter\Phpunit\TestListener()); - - // Run the tests. - $suite->run($result); - -.. caution:: - - PHPUnit provides a functionality that allows - `tests to run in a separated process `_, - to ensure better isolation. Mockery verifies the mocks expectations using the - ``Mockery::close()`` method, and provides a PHPUnit listener, that automatically - calls this method for us after every test. - - However, this listener is not called in the right process when using - PHPUnit's process isolation, resulting in expectations that might not be - respected, but without raising any ``Mockery\Exception``. To avoid this, - we cannot rely on the supplied Mockery PHPUnit ``TestListener``, and we need - to explicitly call ``Mockery::close``. The easiest solution to include this - call in the ``tearDown()`` method, as explained previously. diff --git a/vendor/mockery/mockery/docs/reference/protected_methods.rst b/vendor/mockery/mockery/docs/reference/protected_methods.rst deleted file mode 100644 index ec4a5bad..00000000 --- a/vendor/mockery/mockery/docs/reference/protected_methods.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. index:: - single: Mocking; Protected Methods - -Mocking Protected Methods -========================= - -By default, Mockery does not allow mocking protected methods. We do not recommend -mocking protected methods, but there are cases when there is no other solution. - -For those cases we have the ``shouldAllowMockingProtectedMethods()`` method. It -instructs Mockery to specifically allow mocking of protected methods, for that -one class only: - -.. code-block:: php - - class MyClass - { - protected function foo() - { - } - } - - $mock = \Mockery::mock('MyClass') - ->shouldAllowMockingProtectedMethods(); - $mock->shouldReceive('foo'); - diff --git a/vendor/mockery/mockery/docs/reference/public_properties.rst b/vendor/mockery/mockery/docs/reference/public_properties.rst deleted file mode 100644 index 31656683..00000000 --- a/vendor/mockery/mockery/docs/reference/public_properties.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. index:: - single: Mocking; Public Properties - -Mocking Public Properties -========================= - -Mockery allows us to mock properties in several ways. One way is that we can set -a public property and its value on any mock object. The second is that we can -use the expectation methods ``set()`` and ``andSet()`` to set property values if -that expectation is ever met. - -You can read more about :ref:`expectations-setting-public-properties`. - -.. note:: - - In general, Mockery does not support mocking any magic methods since these - are generally not considered a public API (and besides it is a bit difficult - to differentiate them when you badly need them for mocking!). So please mock - virtual properties (those relying on ``__get()`` and ``__set()``) as if they - were actually declared on the class. diff --git a/vendor/mockery/mockery/docs/reference/public_static_properties.rst b/vendor/mockery/mockery/docs/reference/public_static_properties.rst deleted file mode 100644 index 2396efc7..00000000 --- a/vendor/mockery/mockery/docs/reference/public_static_properties.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. index:: - single: Mocking; Public Static Methods - -Mocking Public Static Methods -============================= - -Static methods are not called on real objects, so normal mock objects can't -mock them. Mockery supports class aliased mocks, mocks representing a class -name which would normally be loaded (via autoloading or a require statement) -in the system under test. These aliases block that loading (unless via a -require statement - so please use autoloading!) and allow Mockery to intercept -static method calls and add expectations for them. - -See the :ref:`creating-test-doubles-aliasing` section for more information on -creating aliased mocks, for the purpose of mocking public static methods. diff --git a/vendor/mockery/mockery/docs/reference/spies.rst b/vendor/mockery/mockery/docs/reference/spies.rst deleted file mode 100644 index 507c4aa6..00000000 --- a/vendor/mockery/mockery/docs/reference/spies.rst +++ /dev/null @@ -1,154 +0,0 @@ -.. index:: - single: Reference; Spies - -Spies -===== - -Spies are a type of test doubles, but they differ from stubs or mocks in that, -that the spies record any interaction between the spy and the System Under Test -(SUT), and allow us to make assertions against those interactions after the fact. - -Creating a spy means we don't have to set up expectations for every method call -the double might receive during the test, some of which may not be relevant to -the current test. A spy allows us to make assertions about the calls we care -about for this test only, reducing the chances of over-specification and making -our tests more clear. - -Spies also allow us to follow the more familiar Arrange-Act-Assert or -Given-When-Then style within our tests. With mocks, we have to follow a less -familiar style, something a long the lines of Arrange-Expect-Act-Assert, where -we have to tell our mocks what to expect before we act on the sut, then assert -that those expectations where met: - -.. code-block:: php - - // arrange - $mock = \Mockery::mock('MyDependency'); - $sut = new MyClass($mock); - - // expect - $mock->shouldReceive('foo') - ->once() - ->with('bar'); - - // act - $sut->callFoo(); - - // assert - \Mockery::close(); - -Spies allow us to skip the expect part and move the assertion to after we have -acted on the SUT, usually making our tests more readable: - -.. code-block:: php - - // arrange - $spy = \Mockery::spy('MyDependency'); - $sut = new MyClass($spy); - - // act - $sut->callFoo(); - - // assert - $spy->shouldHaveReceived() - ->foo() - ->with('bar'); - -On the other hand, spies are far less restrictive than mocks, meaning tests are -usually less precise, as they let us get away with more. This is usually a -good thing, they should only be as precise as they need to be, but while spies -make our tests more intent-revealing, they do tend to reveal less about the -design of the SUT. If we're having to setup lots of expectations for a mock, -in lots of different tests, our tests are trying to tell us something - the SUT -is doing too much and probably should be refactored. We don't get this with -spies, they simply ignore the calls that aren't relevant to them. - -Another downside to using spies is debugging. When a mock receives a call that -it wasn't expecting, it immediately throws an exception (failing fast), giving -us a nice stack trace or possibly even invoking our debugger. With spies, we're -simply asserting calls were made after the fact, so if the wrong calls were made, -we don't have quite the same just in time context we have with the mocks. - -Finally, if we need to define a return value for our test double, we can't do -that with a spy, only with a mock object. - -.. note:: - - This documentation page is an adaption of the blog post titled - `"Mockery Spies" `_, - published by Dave Marshall on his blog. Dave is the original author of spies - in Mockery. - -Spies Reference ---------------- - -To verify that a method was called on a spy, we use the ``shouldHaveReceived()`` -method: - -.. code-block:: php - - $spy->shouldHaveReceived('foo'); - -To verify that a method was **not** called on a spy, we use the -``shouldNotHaveReceived()`` method: - -.. code-block:: php - - $spy->shouldNotHaveReceived('foo'); - -We can also do argument matching with spies: - -.. code-block:: php - - $spy->shouldHaveReceived('foo') - ->with('bar'); - -Argument matching is also possible by passing in an array of arguments to -match: - -.. code-block:: php - - $spy->shouldHaveReceived('foo', ['bar']); - -Although when verifying a method was not called, the argument matching can only -be done by supplying the array of arguments as the 2nd argument to the -``shouldNotHaveReceived()`` method: - -.. code-block:: php - - $spy->shouldNotHaveReceived('foo', ['bar']); - -This is due to Mockery's internals. - -Finally, when expecting calls that should have been received, we can also verify -the number of calls: - -.. code-block:: php - - $spy->shouldHaveReceived('foo') - ->with('bar') - ->twice(); - -Alternative shouldReceive syntax -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -As of Mockery 1.0.0, we support calling methods as we would call any PHP method, -and not as string arguments to Mockery ``should*`` methods. - -In cases of spies, this only applies to the ``shouldHaveReceived()`` method: - -.. code-block:: php - - $spy->shouldHaveReceived() - ->foo('bar'); - -We can set expectation on number of calls as well: - -.. code-block:: php - - $spy->shouldHaveReceived() - ->foo('bar') - ->twice(); - -Unfortunatelly, due to limitations we can't support the same syntax for the -``shouldNotHaveReceived()`` method. diff --git a/vendor/mockery/mockery/library/Mockery.php b/vendor/mockery/mockery/library/Mockery.php deleted file mode 100644 index 3d3011ca..00000000 --- a/vendor/mockery/mockery/library/Mockery.php +++ /dev/null @@ -1,857 +0,0 @@ -shouldIgnoreMissing(); - } - - /** - * Static and Semantic shortcut to \Mockery\Container::mock(). - * - * @param array $args - * - * @return \Mockery\MockInterface - */ - public static function instanceMock(...$args) - { - return call_user_func_array(array(self::getContainer(), 'mock'), $args); - } - - /** - * Static shortcut to \Mockery\Container::mock(), first argument names the mock. - * - * @param array $args - * - * @return \Mockery\MockInterface - */ - public static function namedMock(...$args) - { - $name = array_shift($args); - - $builder = new MockConfigurationBuilder(); - $builder->setName($name); - - array_unshift($args, $builder); - - return call_user_func_array(array(self::getContainer(), 'mock'), $args); - } - - /** - * Static shortcut to \Mockery\Container::self(). - * - * @throws LogicException - * - * @return \Mockery\MockInterface - */ - public static function self() - { - if (is_null(self::$_container)) { - throw new \LogicException('You have not declared any mocks yet'); - } - - return self::$_container->self(); - } - - /** - * Static shortcut to closing up and verifying all mocks in the global - * container, and resetting the container static variable to null. - * - * @return void - */ - public static function close() - { - foreach (self::$_filesToCleanUp as $fileName) { - @unlink($fileName); - } - self::$_filesToCleanUp = []; - - if (is_null(self::$_container)) { - return; - } - - $container = self::$_container; - self::$_container = null; - - $container->mockery_teardown(); - $container->mockery_close(); - } - - /** - * Static fetching of a mock associated with a name or explicit class poser. - * - * @param $name - * - * @return \Mockery\Mock - */ - public static function fetchMock($name) - { - return self::$_container->fetchMock($name); - } - - /** - * Lazy loader and getter for - * the container property. - * - * @return Mockery\Container - */ - public static function getContainer() - { - if (is_null(self::$_container)) { - self::$_container = new Mockery\Container(self::getGenerator(), self::getLoader()); - } - - return self::$_container; - } - - /** - * Setter for the $_generator static propery. - * - * @param \Mockery\Generator\Generator $generator - */ - public static function setGenerator(Generator $generator) - { - self::$_generator = $generator; - } - - /** - * Lazy loader method and getter for - * the generator property. - * - * @return Generator - */ - public static function getGenerator() - { - if (is_null(self::$_generator)) { - self::$_generator = self::getDefaultGenerator(); - } - - return self::$_generator; - } - - /** - * Creates and returns a default generator - * used inside this class. - * - * @return CachingGenerator - */ - public static function getDefaultGenerator() - { - return new CachingGenerator(StringManipulationGenerator::withDefaultPasses()); - } - - /** - * Setter for the $_loader static property. - * - * @param Loader $loader - */ - public static function setLoader(Loader $loader) - { - self::$_loader = $loader; - } - - /** - * Lazy loader method and getter for - * the $_loader property. - * - * @return Loader - */ - public static function getLoader() - { - if (is_null(self::$_loader)) { - self::$_loader = self::getDefaultLoader(); - } - - return self::$_loader; - } - - /** - * Gets an EvalLoader to be used as default. - * - * @return EvalLoader - */ - public static function getDefaultLoader() - { - return new EvalLoader(); - } - - /** - * Set the container. - * - * @param \Mockery\Container $container - * - * @return \Mockery\Container - */ - public static function setContainer(Mockery\Container $container) - { - return self::$_container = $container; - } - - /** - * Reset the container to null. - * - * @return void - */ - public static function resetContainer() - { - self::$_container = null; - } - - /** - * Return instance of ANY matcher. - * - * @return \Mockery\Matcher\Any - */ - public static function any() - { - return new \Mockery\Matcher\Any(); - } - - /** - * Return instance of TYPE matcher. - * - * @param $expected - * - * @return \Mockery\Matcher\Type - */ - public static function type($expected) - { - return new \Mockery\Matcher\Type($expected); - } - - /** - * Return instance of DUCKTYPE matcher. - * - * @param array $args - * - * @return \Mockery\Matcher\Ducktype - */ - public static function ducktype(...$args) - { - return new \Mockery\Matcher\Ducktype($args); - } - - /** - * Return instance of SUBSET matcher. - * - * @param array $part - * @param bool $strict - (Optional) True for strict comparison, false for loose - * - * @return \Mockery\Matcher\Subset - */ - public static function subset(array $part, $strict = true) - { - return new \Mockery\Matcher\Subset($part, $strict); - } - - /** - * Return instance of CONTAINS matcher. - * - * @param array $args - * - * @return \Mockery\Matcher\Contains - */ - public static function contains(...$args) - { - return new \Mockery\Matcher\Contains($args); - } - - /** - * Return instance of HASKEY matcher. - * - * @param $key - * - * @return \Mockery\Matcher\HasKey - */ - public static function hasKey($key) - { - return new \Mockery\Matcher\HasKey($key); - } - - /** - * Return instance of HASVALUE matcher. - * - * @param $val - * - * @return \Mockery\Matcher\HasValue - */ - public static function hasValue($val) - { - return new \Mockery\Matcher\HasValue($val); - } - - /** - * Return instance of CLOSURE matcher. - * - * @param $closure - * - * @return \Mockery\Matcher\Closure - */ - public static function on($closure) - { - return new \Mockery\Matcher\Closure($closure); - } - - /** - * Return instance of MUSTBE matcher. - * - * @param $expected - * - * @return \Mockery\Matcher\MustBe - */ - public static function mustBe($expected) - { - return new \Mockery\Matcher\MustBe($expected); - } - - /** - * Return instance of NOT matcher. - * - * @param $expected - * - * @return \Mockery\Matcher\Not - */ - public static function not($expected) - { - return new \Mockery\Matcher\Not($expected); - } - - /** - * Return instance of ANYOF matcher. - * - * @param array $args - * - * @return \Mockery\Matcher\AnyOf - */ - public static function anyOf(...$args) - { - return new \Mockery\Matcher\AnyOf($args); - } - - /** - * Return instance of NOTANYOF matcher. - * - * @param array $args - * - * @return \Mockery\Matcher\NotAnyOf - */ - public static function notAnyOf(...$args) - { - return new \Mockery\Matcher\NotAnyOf($args); - } - - /** - * Return instance of PATTERN matcher. - * - * @param $expected - * - * @return \Mockery\Matcher\Pattern - */ - public static function pattern($expected) - { - return new \Mockery\Matcher\Pattern($expected); - } - - /** - * Lazy loader and Getter for the global - * configuration container. - * - * @return \Mockery\Configuration - */ - public static function getConfiguration() - { - if (is_null(self::$_config)) { - self::$_config = new \Mockery\Configuration(); - } - - return self::$_config; - } - - /** - * Utility method to format method name and arguments into a string. - * - * @param string $method - * @param array $arguments - * - * @return string - */ - public static function formatArgs($method, array $arguments = null) - { - if (is_null($arguments)) { - return $method . '()'; - } - - $formattedArguments = array(); - foreach ($arguments as $argument) { - $formattedArguments[] = self::formatArgument($argument); - } - - return $method . '(' . implode(', ', $formattedArguments) . ')'; - } - - /** - * Gets the string representation - * of any passed argument. - * - * @param $argument - * @param $depth - * - * @return string - */ - private static function formatArgument($argument, $depth = 0) - { - if ($argument instanceof MatcherAbstract) { - return (string) $argument; - } - - if (is_object($argument)) { - return 'object(' . get_class($argument) . ')'; - } - - if (is_int($argument) || is_float($argument)) { - return $argument; - } - - if (is_array($argument)) { - if ($depth === 1) { - $argument = '[...]'; - } else { - $sample = array(); - foreach ($argument as $key => $value) { - $key = is_int($key) ? $key : "'$key'"; - $value = self::formatArgument($value, $depth + 1); - $sample[] = "$key => $value"; - } - - $argument = "[".implode(", ", $sample)."]"; - } - - return ((strlen($argument) > 1000) ? substr($argument, 0, 1000).'...]' : $argument); - } - - if (is_bool($argument)) { - return $argument ? 'true' : 'false'; - } - - if (is_resource($argument)) { - return 'resource(...)'; - } - - if (is_null($argument)) { - return 'NULL'; - } - - return "'".(string) $argument."'"; - } - - /** - * Utility function to format objects to printable arrays. - * - * @param array $objects - * - * @return string - */ - public static function formatObjects(array $objects = null) - { - static $formatting; - - if ($formatting) { - return '[Recursion]'; - } - - if (is_null($objects)) { - return ''; - } - - $objects = array_filter($objects, 'is_object'); - if (empty($objects)) { - return ''; - } - - $formatting = true; - $parts = array(); - - foreach ($objects as $object) { - $parts[get_class($object)] = self::objectToArray($object); - } - - $formatting = false; - - return 'Objects: ( ' . var_export($parts, true) . ')'; - } - - /** - * Utility function to turn public properties and public get* and is* method values into an array. - * - * @param $object - * @param int $nesting - * - * @return array - */ - private static function objectToArray($object, $nesting = 3) - { - if ($nesting == 0) { - return array('...'); - } - - return array( - 'class' => get_class($object), - 'properties' => self::extractInstancePublicProperties($object, $nesting) - ); - } - - /** - * Returns all public instance properties. - * - * @param $object - * @param $nesting - * - * @return array - */ - private static function extractInstancePublicProperties($object, $nesting) - { - $reflection = new \ReflectionClass(get_class($object)); - $properties = $reflection->getProperties(\ReflectionProperty::IS_PUBLIC); - $cleanedProperties = array(); - - foreach ($properties as $publicProperty) { - if (!$publicProperty->isStatic()) { - $name = $publicProperty->getName(); - $cleanedProperties[$name] = self::cleanupNesting($object->$name, $nesting); - } - } - - return $cleanedProperties; - } - - /** - * Utility method used for recursively generating - * an object or array representation. - * - * @param $argument - * @param $nesting - * - * @return mixed - */ - private static function cleanupNesting($argument, $nesting) - { - if (is_object($argument)) { - $object = self::objectToArray($argument, $nesting - 1); - $object['class'] = get_class($argument); - - return $object; - } - - if (is_array($argument)) { - return self::cleanupArray($argument, $nesting - 1); - } - - return $argument; - } - - /** - * Utility method for recursively - * gerating a representation - * of the given array. - * - * @param array $argument - * @param int $nesting - * - * @return mixed - */ - private static function cleanupArray($argument, $nesting = 3) - { - if ($nesting == 0) { - return '...'; - } - - foreach ($argument as $key => $value) { - if (is_array($value)) { - $argument[$key] = self::cleanupArray($value, $nesting - 1); - } elseif (is_object($value)) { - $argument[$key] = self::objectToArray($value, $nesting - 1); - } - } - - return $argument; - } - - /** - * Utility function to parse shouldReceive() arguments and generate - * expectations from such as needed. - * - * @param Mockery\MockInterface $mock - * @param array $args - * @param callable $add - * @return \Mockery\CompositeExpectation - */ - public static function parseShouldReturnArgs(\Mockery\MockInterface $mock, $args, $add) - { - $composite = new \Mockery\CompositeExpectation(); - - foreach ($args as $arg) { - if (is_array($arg)) { - foreach ($arg as $k => $v) { - $expectation = self::buildDemeterChain($mock, $k, $add)->andReturn($v); - $composite->add($expectation); - } - } elseif (is_string($arg)) { - $expectation = self::buildDemeterChain($mock, $arg, $add); - $composite->add($expectation); - } - } - - return $composite; - } - - /** - * Sets up expectations on the members of the CompositeExpectation and - * builds up any demeter chain that was passed to shouldReceive. - * - * @param \Mockery\MockInterface $mock - * @param string $arg - * @param callable $add - * @throws Mockery\Exception - * @return \Mockery\ExpectationInterface - */ - protected static function buildDemeterChain(\Mockery\MockInterface $mock, $arg, $add) - { - /** @var Mockery\Container $container */ - $container = $mock->mockery_getContainer(); - $methodNames = explode('->', $arg); - reset($methodNames); - - if (!\Mockery::getConfiguration()->mockingNonExistentMethodsAllowed() - && !$mock->mockery_isAnonymous() - && !in_array(current($methodNames), $mock->mockery_getMockableMethods()) - ) { - throw new \Mockery\Exception( - 'Mockery\'s configuration currently forbids mocking the method ' - . current($methodNames) . ' as it does not exist on the class or object ' - . 'being mocked' - ); - } - - /** @var ExpectationInterface|null $expectations */ - $expectations = null; - - /** @var Callable $nextExp */ - $nextExp = function ($method) use ($add) { - return $add($method); - }; - - while (true) { - $method = array_shift($methodNames); - $expectations = $mock->mockery_getExpectationsFor($method); - - if (is_null($expectations) || self::noMoreElementsInChain($methodNames)) { - $expectations = $nextExp($method); - if (self::noMoreElementsInChain($methodNames)) { - break; - } - - $mock = self::getNewDemeterMock($container, $method, $expectations); - } else { - $demeterMockKey = $container->getKeyOfDemeterMockFor($method); - if ($demeterMockKey) { - $mock = self::getExistingDemeterMock($container, $demeterMockKey); - } - } - - $nextExp = function ($n) use ($mock) { - return $mock->shouldReceive($n); - }; - } - - return $expectations; - } - - /** - * Gets a new demeter configured - * mock from the container. - * - * @param \Mockery\Container $container - * @param string $method - * @param Mockery\ExpectationInterface $exp - * - * @return \Mockery\Mock - */ - private static function getNewDemeterMock( - Mockery\Container $container, - $method, - Mockery\ExpectationInterface $exp - ) { - $mock = $container->mock('demeter_' . $method); - $exp->andReturn($mock); - - return $mock; - } - - /** - * Gets an specific demeter mock from - * the ones kept by the container. - * - * @param \Mockery\Container $container - * @param string $demeterMockKey - * - * @return mixed - */ - private static function getExistingDemeterMock( - Mockery\Container $container, - $demeterMockKey - ) { - $mocks = $container->getMocks(); - $mock = $mocks[$demeterMockKey]; - - return $mock; - } - - /** - * Checks if the passed array representing a demeter - * chain with the method names is empty. - * - * @param array $methodNames - * - * @return bool - */ - private static function noMoreElementsInChain(array $methodNames) - { - return empty($methodNames); - } - - public static function declareClass($fqn) - { - return static::declareType($fqn, "class"); - } - - public static function declareInterface($fqn) - { - return static::declareType($fqn, "interface"); - } - - private static function declareType($fqn, $type) - { - $targetCode = "addMockeryExpectationsToAssertionCount(); - $this->checkMockeryExceptions(); - $this->closeMockery(); - - parent::assertPostConditions(); - } - - protected function addMockeryExpectationsToAssertionCount() - { - $this->addToAssertionCount(Mockery::getContainer()->mockery_getExpectationCount()); - } - - protected function checkMockeryExceptions() - { - if (!method_exists($this, "markAsRisky")) { - return; - } - - foreach (Mockery::getContainer()->mockery_thrownExceptions() as $e) { - if (!$e->dismissed()) { - $this->markAsRisky('Mockery found an exception that appears to have been swallowed: '.$e->getMessage()); - } - } - } - - protected function closeMockery() - { - Mockery::close(); - $this->mockeryOpen = false; - } - - /** - * @before - */ - protected function startMockery() - { - $this->mockeryOpen = true; - } - - /** - * @after - */ - protected function purgeMockeryContainer() - { - if ($this->mockeryOpen) { - // post conditions wasn't called, so test probably failed - Mockery::close(); - } - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php b/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php deleted file mode 100644 index f4e9a86a..00000000 --- a/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php +++ /dev/null @@ -1,26 +0,0 @@ -getStatus() !== BaseTestRunner::STATUS_PASSED) { - // If the test didn't pass there is no guarantee that - // verifyMockObjects and assertPostConditions have been called. - // And even if it did, the point here is to prevent false - // negatives, not to make failing tests fail for more reasons. - return; - } - - try { - // The self() call is used as a sentinel. Anything that throws if - // the container is closed already will do. - \Mockery::self(); - } catch (\LogicException $_) { - return; - } - - $e = new ExpectationFailedException( - sprintf( - "Mockery's expectations have not been verified. Make sure that \Mockery::close() is called at the end of the test. Consider using %s\MockeryPHPUnitIntegration or extending %s\MockeryTestCase.", - __NAMESPACE__, - __NAMESPACE__ - ) - ); - $result = $test->getTestResultObject(); - $result->addFailure($test, $e, $time); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/CompositeExpectation.php b/vendor/mockery/mockery/library/Mockery/CompositeExpectation.php deleted file mode 100644 index 4035032e..00000000 --- a/vendor/mockery/mockery/library/Mockery/CompositeExpectation.php +++ /dev/null @@ -1,140 +0,0 @@ -_expectations[] = $expectation; - } - - /** - * @param mixed ... - */ - public function andReturn(...$args) - { - return $this->__call(__FUNCTION__, $args); - } - - /** - * Set a return value, or sequential queue of return values - * - * @param mixed ... - * @return self - */ - public function andReturns(...$args) - { - return call_user_func_array([$this, 'andReturn'], $args); - } - - /** - * Intercept any expectation calls and direct against all expectations - * - * @param string $method - * @param array $args - * @return self - */ - public function __call($method, array $args) - { - foreach ($this->_expectations as $expectation) { - call_user_func_array(array($expectation, $method), $args); - } - return $this; - } - - /** - * Return order number of the first expectation - * - * @return int - */ - public function getOrderNumber() - { - reset($this->_expectations); - $first = current($this->_expectations); - return $first->getOrderNumber(); - } - - /** - * Return the parent mock of the first expectation - * - * @return \Mockery\MockInterface - */ - public function getMock() - { - reset($this->_expectations); - $first = current($this->_expectations); - return $first->getMock(); - } - - /** - * Mockery API alias to getMock - * - * @return \Mockery\MockInterface - */ - public function mock() - { - return $this->getMock(); - } - - /** - * Starts a new expectation addition on the first mock which is the primary - * target outside of a demeter chain - * - * @param mixed ... - * @return \Mockery\Expectation - */ - public function shouldReceive(...$args) - { - reset($this->_expectations); - $first = current($this->_expectations); - return call_user_func_array(array($first->getMock(), 'shouldReceive'), $args); - } - - /** - * Return the string summary of this composite expectation - * - * @return string - */ - public function __toString() - { - $return = '['; - $parts = array(); - foreach ($this->_expectations as $exp) { - $parts[] = (string) $exp; - } - $return .= implode(', ', $parts) . ']'; - return $return; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Configuration.php b/vendor/mockery/mockery/library/Mockery/Configuration.php deleted file mode 100644 index 2f050f25..00000000 --- a/vendor/mockery/mockery/library/Mockery/Configuration.php +++ /dev/null @@ -1,130 +0,0 @@ -_allowMockingNonExistentMethod = (bool) $flag; - } - - /** - * Return flag indicating whether mocking non-existent methods allowed - * - * @return bool - */ - public function mockingNonExistentMethodsAllowed() - { - return $this->_allowMockingNonExistentMethod; - } - - /** - * Set boolean to allow/prevent unnecessary mocking of methods - * - * @param bool - */ - public function allowMockingMethodsUnnecessarily($flag = true) - { - $this->_allowMockingMethodsUnnecessarily = (bool) $flag; - } - - /** - * Return flag indicating whether mocking non-existent methods allowed - * - * @return bool - */ - public function mockingMethodsUnnecessarilyAllowed() - { - return $this->_allowMockingMethodsUnnecessarily; - } - - /** - * Set a parameter map (array of param signature strings) for the method - * of an internal PHP class. - * - * @param string $class - * @param string $method - * @param array $map - */ - public function setInternalClassMethodParamMap($class, $method, array $map) - { - if (!isset($this->_internalClassParamMap[strtolower($class)])) { - $this->_internalClassParamMap[strtolower($class)] = array(); - } - $this->_internalClassParamMap[strtolower($class)][strtolower($method)] = $map; - } - - /** - * Remove all overriden parameter maps from internal PHP classes. - */ - public function resetInternalClassMethodParamMaps() - { - $this->_internalClassParamMap = array(); - } - - /** - * Get the parameter map of an internal PHP class method - * - * @return array - */ - public function getInternalClassMethodParamMap($class, $method) - { - if (isset($this->_internalClassParamMap[strtolower($class)][strtolower($method)])) { - return $this->_internalClassParamMap[strtolower($class)][strtolower($method)]; - } - } - - public function getInternalClassMethodParamMaps() - { - return $this->_internalClassParamMap; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Container.php b/vendor/mockery/mockery/library/Mockery/Container.php deleted file mode 100644 index 81c9d627..00000000 --- a/vendor/mockery/mockery/library/Mockery/Container.php +++ /dev/null @@ -1,537 +0,0 @@ -_generator = $generator ?: \Mockery::getDefaultGenerator(); - $this->_loader = $loader ?: \Mockery::getDefaultLoader(); - } - - /** - * Generates a new mock object for this container - * - * I apologies in advance for this. A God Method just fits the API which - * doesn't require differentiating between classes, interfaces, abstracts, - * names or partials - just so long as it's something that can be mocked. - * I'll refactor it one day so it's easier to follow. - * - * @param array $args - * - * @return Mock - * @throws Exception\RuntimeException - */ - public function mock(...$args) - { - $expectationClosure = null; - $quickdefs = array(); - $constructorArgs = null; - $blocks = array(); - - if (count($args) > 1) { - $finalArg = end($args); - reset($args); - if (is_callable($finalArg) && is_object($finalArg)) { - $expectationClosure = array_pop($args); - } - } - - $builder = new MockConfigurationBuilder(); - - foreach ($args as $k => $arg) { - if ($arg instanceof MockConfigurationBuilder) { - $builder = $arg; - unset($args[$k]); - } - } - reset($args); - - $builder->setParameterOverrides(\Mockery::getConfiguration()->getInternalClassMethodParamMaps()); - - while (count($args) > 0) { - $arg = current($args); - // check for multiple interfaces - if (is_string($arg) && strpos($arg, ',') && !strpos($arg, ']')) { - $interfaces = explode(',', str_replace(' ', '', $arg)); - $builder->addTargets($interfaces); - array_shift($args); - - continue; - } elseif (is_string($arg) && substr($arg, 0, 6) == 'alias:') { - $name = array_shift($args); - $name = str_replace('alias:', '', $name); - $builder->addTarget('stdClass'); - $builder->setName($name); - continue; - } elseif (is_string($arg) && substr($arg, 0, 9) == 'overload:') { - $name = array_shift($args); - $name = str_replace('overload:', '', $name); - $builder->setInstanceMock(true); - $builder->addTarget('stdClass'); - $builder->setName($name); - continue; - } elseif (is_string($arg) && substr($arg, strlen($arg)-1, 1) == ']') { - $parts = explode('[', $arg); - if (!class_exists($parts[0], true) && !interface_exists($parts[0], true)) { - throw new \Mockery\Exception('Can only create a partial mock from' - . ' an existing class or interface'); - } - $class = $parts[0]; - $parts[1] = str_replace(' ', '', $parts[1]); - $partialMethods = explode(',', strtolower(rtrim($parts[1], ']'))); - $builder->addTarget($class); - $builder->setWhiteListedMethods($partialMethods); - array_shift($args); - continue; - } elseif (is_string($arg) && (class_exists($arg, true) || interface_exists($arg, true) || trait_exists($arg, true))) { - $class = array_shift($args); - $builder->addTarget($class); - continue; - } elseif (is_string($arg) && !\Mockery::getConfiguration()->mockingNonExistentMethodsAllowed() && (!class_exists($arg, true) && !interface_exists($arg, true))) { - throw new \Mockery\Exception("Mockery can't find '$arg' so can't mock it"); - } elseif (is_string($arg)) { - if (!$this->isValidClassName($arg)) { - throw new \Mockery\Exception('Class name contains invalid characters'); - } - $class = array_shift($args); - $builder->addTarget($class); - continue; - } elseif (is_object($arg)) { - $partial = array_shift($args); - $builder->addTarget($partial); - continue; - } elseif (is_array($arg) && !empty($arg) && array_keys($arg) !== range(0, count($arg) - 1)) { - // if associative array - if (array_key_exists(self::BLOCKS, $arg)) { - $blocks = $arg[self::BLOCKS]; - } - unset($arg[self::BLOCKS]); - $quickdefs = array_shift($args); - continue; - } elseif (is_array($arg)) { - $constructorArgs = array_shift($args); - continue; - } - - throw new \Mockery\Exception( - 'Unable to parse arguments sent to ' - . get_class($this) . '::mock()' - ); - } - - $builder->addBlackListedMethods($blocks); - - if (defined('HHVM_VERSION') - && isset($class) - && ($class === 'Exception' || is_subclass_of($class, 'Exception'))) { - $builder->addBlackListedMethod("setTraceOptions"); - $builder->addBlackListedMethod("getTraceOptions"); - } - - if (!is_null($constructorArgs)) { - $builder->addBlackListedMethod("__construct"); // we need to pass through - } else { - $builder->setMockOriginalDestructor(true); - } - - if (!empty($partialMethods) && $constructorArgs === null) { - $constructorArgs = array(); - } - - $config = $builder->getMockConfiguration(); - - $this->checkForNamedMockClashes($config); - - $def = $this->getGenerator()->generate($config); - - if (class_exists($def->getClassName(), $attemptAutoload = false)) { - $rfc = new \ReflectionClass($def->getClassName()); - if (!$rfc->implementsInterface("Mockery\MockInterface")) { - throw new \Mockery\Exception\RuntimeException("Could not load mock {$def->getClassName()}, class already exists"); - } - } - - $this->getLoader()->load($def); - - $mock = $this->_getInstance($def->getClassName(), $constructorArgs); - $mock->mockery_init($this, $config->getTargetObject()); - - if (!empty($quickdefs)) { - $mock->shouldReceive($quickdefs)->byDefault(); - } - if (!empty($expectationClosure)) { - $expectationClosure($mock); - } - $this->rememberMock($mock); - return $mock; - } - - public function instanceMock() - { - } - - public function getLoader() - { - return $this->_loader; - } - - public function getGenerator() - { - return $this->_generator; - } - - /** - * @param string $method - * @return string|null - */ - public function getKeyOfDemeterMockFor($method) - { - $keys = array_keys($this->_mocks); - $match = preg_grep("/__demeter_{$method}$/", $keys); - if (count($match) == 1) { - $res = array_values($match); - if (count($res) > 0) { - return $res[0]; - } - } - return null; - } - - /** - * @return array - */ - public function getMocks() - { - return $this->_mocks; - } - - /** - * Tear down tasks for this container - * - * @throws \Exception - * @return void - */ - public function mockery_teardown() - { - try { - $this->mockery_verify(); - } catch (\Exception $e) { - $this->mockery_close(); - throw $e; - } - } - - /** - * Verify the container mocks - * - * @return void - */ - public function mockery_verify() - { - foreach ($this->_mocks as $mock) { - $mock->mockery_verify(); - } - } - - /** - * Retrieves all exceptions thrown by mocks - * - * @return array - */ - public function mockery_thrownExceptions() - { - $e = []; - - foreach ($this->_mocks as $mock) { - $e = array_merge($e, $mock->mockery_thrownExceptions()); - } - - return $e; - } - - /** - * Reset the container to its original state - * - * @return void - */ - public function mockery_close() - { - foreach ($this->_mocks as $mock) { - $mock->mockery_teardown(); - } - $this->_mocks = array(); - } - - /** - * Fetch the next available allocation order number - * - * @return int - */ - public function mockery_allocateOrder() - { - $this->_allocatedOrder += 1; - return $this->_allocatedOrder; - } - - /** - * Set ordering for a group - * - * @param mixed $group - * @param int $order - */ - public function mockery_setGroup($group, $order) - { - $this->_groups[$group] = $order; - } - - /** - * Fetch array of ordered groups - * - * @return array - */ - public function mockery_getGroups() - { - return $this->_groups; - } - - /** - * Set current ordered number - * - * @param int $order - * @return int The current order number that was set - */ - public function mockery_setCurrentOrder($order) - { - $this->_currentOrder = $order; - return $this->_currentOrder; - } - - /** - * Get current ordered number - * - * @return int - */ - public function mockery_getCurrentOrder() - { - return $this->_currentOrder; - } - - /** - * Validate the current mock's ordering - * - * @param string $method - * @param int $order - * @throws \Mockery\Exception - * @return void - */ - public function mockery_validateOrder($method, $order, \Mockery\MockInterface $mock) - { - if ($order < $this->_currentOrder) { - $exception = new \Mockery\Exception\InvalidOrderException( - 'Method ' . $method . ' called out of order: expected order ' - . $order . ', was ' . $this->_currentOrder - ); - $exception->setMock($mock) - ->setMethodName($method) - ->setExpectedOrder($order) - ->setActualOrder($this->_currentOrder); - throw $exception; - } - $this->mockery_setCurrentOrder($order); - } - - /** - * Gets the count of expectations on the mocks - * - * @return int - */ - public function mockery_getExpectationCount() - { - $count = 0; - foreach ($this->_mocks as $mock) { - $count += $mock->mockery_getExpectationCount(); - } - return $count; - } - - /** - * Store a mock and set its container reference - * - * @param \Mockery\Mock - * @return \Mockery\MockInterface - */ - public function rememberMock(\Mockery\MockInterface $mock) - { - if (!isset($this->_mocks[get_class($mock)])) { - $this->_mocks[get_class($mock)] = $mock; - } else { - /** - * This condition triggers for an instance mock where origin mock - * is already remembered - */ - $this->_mocks[] = $mock; - } - return $mock; - } - - /** - * Retrieve the last remembered mock object, which is the same as saying - * retrieve the current mock being programmed where you have yet to call - * mock() to change it - thus why the method name is "self" since it will be - * be used during the programming of the same mock. - * - * @return \Mockery\Mock - */ - public function self() - { - $mocks = array_values($this->_mocks); - $index = count($mocks) - 1; - return $mocks[$index]; - } - - /** - * Return a specific remembered mock according to the array index it - * was stored to in this container instance - * - * @return \Mockery\Mock - */ - public function fetchMock($reference) - { - if (isset($this->_mocks[$reference])) { - return $this->_mocks[$reference]; - } - } - - protected function _getInstance($mockName, $constructorArgs = null) - { - if ($constructorArgs !== null) { - $r = new \ReflectionClass($mockName); - return $r->newInstanceArgs($constructorArgs); - } - - try { - $instantiator = new Instantiator; - $instance = $instantiator->instantiate($mockName); - } catch (\Exception $ex) { - $internalMockName = $mockName . '_Internal'; - - if (!class_exists($internalMockName)) { - eval("class $internalMockName extends $mockName {" . - 'public function __construct() {}' . - '}'); - } - - $instance = new $internalMockName(); - } - - return $instance; - } - - protected function checkForNamedMockClashes($config) - { - $name = $config->getName(); - - if (!$name) { - return; - } - - $hash = $config->getHash(); - - if (isset($this->_namedMocks[$name])) { - if ($hash !== $this->_namedMocks[$name]) { - throw new \Mockery\Exception( - "The mock named '$name' has been already defined with a different mock configuration" - ); - } - } - - $this->_namedMocks[$name] = $hash; - } - - /** - * see http://php.net/manual/en/language.oop5.basic.php - * @param string $className - * @return bool - */ - public function isValidClassName($className) - { - $pos = strpos($className, '\\'); - if ($pos === 0) { - $className = substr($className, 1); // remove the first backslash - } - // all the namespaces and class name should match the regex - $invalidNames = array_filter(explode('\\', $className), function ($name) { - return !preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $name); - }); - return empty($invalidNames); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php b/vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php deleted file mode 100644 index f6ac130e..00000000 --- a/vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php +++ /dev/null @@ -1,62 +0,0 @@ -_limit > $n) { - $exception = new Mockery\Exception\InvalidCountException( - 'Method ' . (string) $this->_expectation - . ' from ' . $this->_expectation->getMock()->mockery_getName() - . ' should be called' . PHP_EOL - . ' at least ' . $this->_limit . ' times but called ' . $n - . ' times.' - ); - $exception->setMock($this->_expectation->getMock()) - ->setMethodName((string) $this->_expectation) - ->setExpectedCountComparative('>=') - ->setExpectedCount($this->_limit) - ->setActualCount($n); - throw $exception; - } - } -} diff --git a/vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php b/vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php deleted file mode 100644 index 4d23e28d..00000000 --- a/vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php +++ /dev/null @@ -1,51 +0,0 @@ -_limit < $n) { - $exception = new Mockery\Exception\InvalidCountException( - 'Method ' . (string) $this->_expectation - . ' from ' . $this->_expectation->getMock()->mockery_getName() - . ' should be called' . PHP_EOL - . ' at most ' . $this->_limit . ' times but called ' . $n - . ' times.' - ); - $exception->setMock($this->_expectation->getMock()) - ->setMethodName((string) $this->_expectation) - ->setExpectedCountComparative('<=') - ->setExpectedCount($this->_limit) - ->setActualCount($n); - throw $exception; - } - } -} diff --git a/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php b/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php deleted file mode 100644 index ae3b0bfe..00000000 --- a/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php +++ /dev/null @@ -1,69 +0,0 @@ -_expectation = $expectation; - $this->_limit = $limit; - } - - /** - * Checks if the validator can accept an additional nth call - * - * @param int $n - * @return bool - */ - public function isEligible($n) - { - return ($n < $this->_limit); - } - - /** - * Validate the call count against this validator - * - * @param int $n - * @return bool - */ - abstract public function validate($n); -} diff --git a/vendor/mockery/mockery/library/Mockery/CountValidator/Exact.php b/vendor/mockery/mockery/library/Mockery/CountValidator/Exact.php deleted file mode 100644 index 504f080d..00000000 --- a/vendor/mockery/mockery/library/Mockery/CountValidator/Exact.php +++ /dev/null @@ -1,54 +0,0 @@ -_limit !== $n) { - $because = $this->_expectation->getExceptionMessage(); - - $exception = new Mockery\Exception\InvalidCountException( - 'Method ' . (string) $this->_expectation - . ' from ' . $this->_expectation->getMock()->mockery_getName() - . ' should be called' . PHP_EOL - . ' exactly ' . $this->_limit . ' times but called ' . $n - . ' times.' - . ($because ? ' Because ' . $this->_expectation->getExceptionMessage() : '') - ); - $exception->setMock($this->_expectation->getMock()) - ->setMethodName((string) $this->_expectation) - ->setExpectedCountComparative('=') - ->setExpectedCount($this->_limit) - ->setActualCount($n); - throw $exception; - } - } -} diff --git a/vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php b/vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php deleted file mode 100644 index b43aad3e..00000000 --- a/vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php +++ /dev/null @@ -1,25 +0,0 @@ -dismissed = true; - - // we sometimes stack them - if ($this->getPrevious() && $this->getPrevious() instanceof BadMethodCallException) { - $this->getPrevious()->dismiss(); - } - } - - public function dismissed() - { - return $this->dismissed; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php b/vendor/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php deleted file mode 100644 index ccf5c76f..00000000 --- a/vendor/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,25 +0,0 @@ -mockObject = $mock; - return $this; - } - - public function setMethodName($name) - { - $this->method = $name; - return $this; - } - - public function setActualCount($count) - { - $this->actual = $count; - return $this; - } - - public function setExpectedCount($count) - { - $this->expected = $count; - return $this; - } - - public function setExpectedCountComparative($comp) - { - if (!in_array($comp, array('=', '>', '<', '>=', '<='))) { - throw new RuntimeException( - 'Illegal comparative for expected call counts set: ' . $comp - ); - } - $this->expectedComparative = $comp; - return $this; - } - - public function getMock() - { - return $this->mockObject; - } - - public function getMethodName() - { - return $this->method; - } - - public function getActualCount() - { - return $this->actual; - } - - public function getExpectedCount() - { - return $this->expected; - } - - public function getMockName() - { - return $this->getMock()->mockery_getName(); - } - - public function getExpectedCountComparative() - { - return $this->expectedComparative; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php b/vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php deleted file mode 100644 index 2134e093..00000000 --- a/vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php +++ /dev/null @@ -1,83 +0,0 @@ -mockObject = $mock; - return $this; - } - - public function setMethodName($name) - { - $this->method = $name; - return $this; - } - - public function setActualOrder($count) - { - $this->actual = $count; - return $this; - } - - public function setExpectedOrder($count) - { - $this->expected = $count; - return $this; - } - - public function getMock() - { - return $this->mockObject; - } - - public function getMethodName() - { - return $this->method; - } - - public function getActualOrder() - { - return $this->actual; - } - - public function getExpectedOrder() - { - return $this->expected; - } - - public function getMockName() - { - return $this->getMock()->mockery_getName(); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php b/vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php deleted file mode 100644 index 16574036..00000000 --- a/vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php +++ /dev/null @@ -1,70 +0,0 @@ -mockObject = $mock; - return $this; - } - - public function setMethodName($name) - { - $this->method = $name; - return $this; - } - - public function setActualArguments($count) - { - $this->actual = $count; - return $this; - } - - public function getMock() - { - return $this->mockObject; - } - - public function getMethodName() - { - return $this->method; - } - - public function getActualArguments() - { - return $this->actual; - } - - public function getMockName() - { - return $this->getMock()->mockery_getName(); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php b/vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php deleted file mode 100644 index 4b2f53c2..00000000 --- a/vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php +++ /dev/null @@ -1,25 +0,0 @@ -_mock = $mock; - $this->_name = $name; - $this->withAnyArgs(); - } - - /** - * Return a string with the method name and arguments formatted - * - * @param string $name Name of the expected method - * @param array $args List of arguments to the method - * @return string - */ - public function __toString() - { - return \Mockery::formatArgs($this->_name, $this->_expectedArgs); - } - - /** - * Verify the current call, i.e. that the given arguments match those - * of this expectation - * - * @param array $args - * @return mixed - */ - public function verifyCall(array $args) - { - $this->validateOrder(); - $this->_actualCount++; - if (true === $this->_passthru) { - return $this->_mock->mockery_callSubjectMethod($this->_name, $args); - } - - $return = $this->_getReturnValue($args); - $this->throwAsNecessary($return); - $this->_setValues(); - - return $return; - } - - /** - * Throws an exception if the expectation has been configured to do so - * - * @throws \Exception|\Throwable - * @return void - */ - private function throwAsNecessary($return) - { - if (!$this->_throw) { - return; - } - - $type = version_compare(PHP_VERSION, '7.0.0') >= 0 - ? "\Throwable" - : "\Exception"; - - if ($return instanceof $type) { - throw $return; - } - - return; - } - - /** - * Sets public properties with queued values to the mock object - * - * @param array $args - * @return mixed - */ - protected function _setValues() - { - $mockClass = get_class($this->_mock); - $container = $this->_mock->mockery_getContainer(); - $mocks = $container->getMocks(); - foreach ($this->_setQueue as $name => &$values) { - if (count($values) > 0) { - $value = array_shift($values); - foreach ($mocks as $mock) { - if (is_a($mock, $mockClass)) { - $mock->{$name} = $value; - } - } - } - } - } - - /** - * Fetch the return value for the matching args - * - * @param array $args - * @return mixed - */ - protected function _getReturnValue(array $args) - { - if (count($this->_closureQueue) > 1) { - return call_user_func_array(array_shift($this->_closureQueue), $args); - } elseif (count($this->_closureQueue) > 0) { - return call_user_func_array(current($this->_closureQueue), $args); - } elseif (count($this->_returnQueue) > 1) { - return array_shift($this->_returnQueue); - } elseif (count($this->_returnQueue) > 0) { - return current($this->_returnQueue); - } - - return $this->_mock->mockery_returnValueForMethod($this->_name); - } - - /** - * Checks if this expectation is eligible for additional calls - * - * @return bool - */ - public function isEligible() - { - foreach ($this->_countValidators as $validator) { - if (!$validator->isEligible($this->_actualCount)) { - return false; - } - } - return true; - } - - /** - * Check if there is a constraint on call count - * - * @return bool - */ - public function isCallCountConstrained() - { - return (count($this->_countValidators) > 0); - } - - /** - * Verify call order - * - * @return void - */ - public function validateOrder() - { - if ($this->_orderNumber) { - $this->_mock->mockery_validateOrder((string) $this, $this->_orderNumber, $this->_mock); - } - if ($this->_globalOrderNumber) { - $this->_mock->mockery_getContainer() - ->mockery_validateOrder((string) $this, $this->_globalOrderNumber, $this->_mock); - } - } - - /** - * Verify this expectation - * - * @return bool - */ - public function verify() - { - foreach ($this->_countValidators as $validator) { - $validator->validate($this->_actualCount); - } - } - - /** - * Check if the registered expectation is an ArgumentListMatcher - * @return bool - */ - private function isArgumentListMatcher() - { - return (count($this->_expectedArgs) === 1 && ($this->_expectedArgs[0] instanceof ArgumentListMatcher)); - } - - /** - * Check if passed arguments match an argument expectation - * - * @param array $args - * @return bool - */ - public function matchArgs(array $args) - { - if ($this->isArgumentListMatcher()) { - return $this->_matchArg($this->_expectedArgs[0], $args); - } - $argCount = count($args); - if ($argCount !== count((array) $this->_expectedArgs)) { - return false; - } - for ($i=0; $i<$argCount; $i++) { - $param =& $args[$i]; - if (!$this->_matchArg($this->_expectedArgs[$i], $param)) { - return false; - } - } - - return true; - } - - /** - * Check if passed argument matches an argument expectation - * - * @param mixed $expected - * @param mixed &$actual - * @return bool - */ - protected function _matchArg($expected, &$actual) - { - if ($expected === $actual) { - return true; - } - if (!is_object($expected) && !is_object($actual) && $expected == $actual) { - return true; - } - if (is_string($expected) && is_object($actual)) { - $result = $actual instanceof $expected; - if ($result) { - return true; - } - } - if ($expected instanceof \Mockery\Matcher\MatcherAbstract) { - return $expected->match($actual); - } - if ($expected instanceof \Hamcrest\Matcher || $expected instanceof \Hamcrest_Matcher) { - return $expected->matches($actual); - } - return false; - } - - /** - * Expected argument setter for the expectation - * - * @param mixed[] ... - * @return self - */ - public function with(...$args) - { - return $this->withArgs($args); - } - - /** - * Expected arguments for the expectation passed as an array - * - * @param array $arguments - * @return self - */ - private function withArgsInArray(array $arguments) - { - if (empty($arguments)) { - return $this->withNoArgs(); - } - $this->_expectedArgs = $arguments; - return $this; - } - - /** - * Expected arguments have to be matched by the given closure. - * - * @param Closure $closure - * @return self - */ - private function withArgsMatchedByClosure(Closure $closure) - { - $this->_expectedArgs = [new MultiArgumentClosure($closure)]; - return $this; - } - - /** - * Expected arguments for the expectation passed as an array or a closure that matches each passed argument on - * each function call. - * - * @param array|Closure $argsOrClosure - * @return self - */ - public function withArgs($argsOrClosure) - { - if (is_array($argsOrClosure)) { - $this->withArgsInArray($argsOrClosure); - } elseif ($argsOrClosure instanceof Closure) { - $this->withArgsMatchedByClosure($argsOrClosure); - } else { - throw new \InvalidArgumentException(sprintf('Call to %s with an invalid argument (%s), only array and '. - 'closure are allowed', __METHOD__, $argsOrClosure)); - } - return $this; - } - - /** - * Set with() as no arguments expected - * - * @return self - */ - public function withNoArgs() - { - $this->_expectedArgs = [new NoArgs()]; - return $this; - } - - /** - * Set expectation that any arguments are acceptable - * - * @return self - */ - public function withAnyArgs() - { - $this->_expectedArgs = [new AnyArgs()]; - return $this; - } - - /** - * Set a return value, or sequential queue of return values - * - * @param mixed[] ... - * @return self - */ - public function andReturn(...$args) - { - $this->_returnQueue = $args; - return $this; - } - - /** - * Set a return value, or sequential queue of return values - * - * @param mixed[] ... - * @return self - */ - public function andReturns(...$args) - { - return call_user_func_array([$this, 'andReturn'], $args); - } - - /** - * Return this mock, like a fluent interface - * - * @return self - */ - public function andReturnSelf() - { - return $this->andReturn($this->_mock); - } - - /** - * Set a sequential queue of return values with an array - * - * @param array $values - * @return self - */ - public function andReturnValues(array $values) - { - call_user_func_array(array($this, 'andReturn'), $values); - return $this; - } - - /** - * Set a closure or sequence of closures with which to generate return - * values. The arguments passed to the expected method are passed to the - * closures as parameters. - * - * @param callable[] $args - * @return self - */ - public function andReturnUsing(...$args) - { - $this->_closureQueue = $args; - return $this; - } - - /** - * Return a self-returning black hole object. - * - * @return self - */ - public function andReturnUndefined() - { - $this->andReturn(new \Mockery\Undefined); - return $this; - } - - /** - * Return null. This is merely a language construct for Mock describing. - * - * @return self - */ - public function andReturnNull() - { - return $this->andReturn(null); - } - - public function andReturnFalse() - { - return $this->andReturn(false); - } - - public function andReturnTrue() - { - return $this->andReturn(true); - } - - /** - * Set Exception class and arguments to that class to be thrown - * - * @param string|\Exception $exception - * @param string $message - * @param int $code - * @param \Exception $previous - * @return self - */ - public function andThrow($exception, $message = '', $code = 0, \Exception $previous = null) - { - $this->_throw = true; - if (is_object($exception)) { - $this->andReturn($exception); - } else { - $this->andReturn(new $exception($message, $code, $previous)); - } - return $this; - } - - public function andThrows($exception, $message = '', $code = 0, \Exception $previous = null) - { - return $this->andThrow($exception, $message, $code, $previous); - } - - /** - * Set Exception classes to be thrown - * - * @param array $exceptions - * @return self - */ - public function andThrowExceptions(array $exceptions) - { - $this->_throw = true; - foreach ($exceptions as $exception) { - if (!is_object($exception)) { - throw new Exception('You must pass an array of exception objects to andThrowExceptions'); - } - } - return $this->andReturnValues($exceptions); - } - - /** - * Register values to be set to a public property each time this expectation occurs - * - * @param string $name - * @param array $values - * @return self - */ - public function andSet($name, ...$values) - { - $this->_setQueue[$name] = $values; - return $this; - } - - /** - * Alias to andSet(). Allows the natural English construct - * - set('foo', 'bar')->andReturn('bar') - * - * @param string $name - * @param mixed $value - * @return self - */ - public function set($name, $value) - { - return call_user_func_array(array($this, 'andSet'), func_get_args()); - } - - /** - * Indicates this expectation should occur zero or more times - * - * @return self - */ - public function zeroOrMoreTimes() - { - $this->atLeast()->never(); - } - - /** - * Indicates the number of times this expectation should occur - * - * @param int $limit - * @throws \InvalidArgumentException - * @return self - */ - public function times($limit = null) - { - if (is_null($limit)) { - return $this; - } - if (!is_int($limit)) { - throw new \InvalidArgumentException('The passed Times limit should be an integer value'); - } - $this->_countValidators[$this->_countValidatorClass] = new $this->_countValidatorClass($this, $limit); - $this->_countValidatorClass = 'Mockery\CountValidator\Exact'; - return $this; - } - - /** - * Indicates that this expectation is never expected to be called - * - * @return self - */ - public function never() - { - return $this->times(0); - } - - /** - * Indicates that this expectation is expected exactly once - * - * @return self - */ - public function once() - { - return $this->times(1); - } - - /** - * Indicates that this expectation is expected exactly twice - * - * @return self - */ - public function twice() - { - return $this->times(2); - } - - /** - * Sets next count validator to the AtLeast instance - * - * @return self - */ - public function atLeast() - { - $this->_countValidatorClass = 'Mockery\CountValidator\AtLeast'; - return $this; - } - - /** - * Sets next count validator to the AtMost instance - * - * @return self - */ - public function atMost() - { - $this->_countValidatorClass = 'Mockery\CountValidator\AtMost'; - return $this; - } - - /** - * Shorthand for setting minimum and maximum constraints on call counts - * - * @param int $minimum - * @param int $maximum - */ - public function between($minimum, $maximum) - { - return $this->atLeast()->times($minimum)->atMost()->times($maximum); - } - - - /** - * Set the exception message - * - * @param string $message - * @return $this - */ - public function because($message) - { - $this->_because = $message; - return $this; - } - - /** - * Indicates that this expectation must be called in a specific given order - * - * @param string $group Name of the ordered group - * @return self - */ - public function ordered($group = null) - { - if ($this->_globally) { - $this->_globalOrderNumber = $this->_defineOrdered($group, $this->_mock->mockery_getContainer()); - } else { - $this->_orderNumber = $this->_defineOrdered($group, $this->_mock); - } - $this->_globally = false; - return $this; - } - - /** - * Indicates call order should apply globally - * - * @return self - */ - public function globally() - { - $this->_globally = true; - return $this; - } - - /** - * Setup the ordering tracking on the mock or mock container - * - * @param string $group - * @param object $ordering - * @return int - */ - protected function _defineOrdered($group, $ordering) - { - $groups = $ordering->mockery_getGroups(); - if (is_null($group)) { - $result = $ordering->mockery_allocateOrder(); - } elseif (isset($groups[$group])) { - $result = $groups[$group]; - } else { - $result = $ordering->mockery_allocateOrder(); - $ordering->mockery_setGroup($group, $result); - } - return $result; - } - - /** - * Return order number - * - * @return int - */ - public function getOrderNumber() - { - return $this->_orderNumber; - } - - /** - * Mark this expectation as being a default - * - * @return self - */ - public function byDefault() - { - $director = $this->_mock->mockery_getExpectationsFor($this->_name); - if (!empty($director)) { - $director->makeExpectationDefault($this); - } - return $this; - } - - /** - * Return the parent mock of the expectation - * - * @return \Mockery\MockInterface - */ - public function getMock() - { - return $this->_mock; - } - - /** - * Flag this expectation as calling the original class method with the - * any provided arguments instead of using a return value queue. - * - * @return self - */ - public function passthru() - { - if ($this->_mock instanceof Mock) { - throw new Exception( - 'Mock Objects not created from a loaded/existing class are ' - . 'incapable of passing method calls through to a parent class' - ); - } - $this->_passthru = true; - return $this; - } - - /** - * Cloning logic - * - */ - public function __clone() - { - $newValidators = array(); - $countValidators = $this->_countValidators; - foreach ($countValidators as $validator) { - $newValidators[] = clone $validator; - } - $this->_countValidators = $newValidators; - } - - public function getName() - { - return $this->_name; - } - - public function getExceptionMessage() - { - return $this->_because; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php b/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php deleted file mode 100644 index 41f01f0f..00000000 --- a/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php +++ /dev/null @@ -1,218 +0,0 @@ -_name = $name; - $this->_mock = $mock; - } - - /** - * Add a new expectation to the director - * - * @param \Mockery\Expectation $expectation - */ - public function addExpectation(\Mockery\Expectation $expectation) - { - $this->_expectations[] = $expectation; - } - - /** - * Handle a method call being directed by this instance - * - * @param array $args - * @return mixed - */ - public function call(array $args) - { - $expectation = $this->findExpectation($args); - if (is_null($expectation)) { - $exception = new \Mockery\Exception\NoMatchingExpectationException( - 'No matching handler found for ' - . $this->_mock->mockery_getName() . '::' - . \Mockery::formatArgs($this->_name, $args) - . '. Either the method was unexpected or its arguments matched' - . ' no expected argument list for this method' - . PHP_EOL . PHP_EOL - . \Mockery::formatObjects($args) - ); - $exception->setMock($this->_mock) - ->setMethodName($this->_name) - ->setActualArguments($args); - throw $exception; - } - return $expectation->verifyCall($args); - } - - /** - * Verify all expectations of the director - * - * @throws \Mockery\CountValidator\Exception - * @return void - */ - public function verify() - { - if (!empty($this->_expectations)) { - foreach ($this->_expectations as $exp) { - $exp->verify(); - } - } else { - foreach ($this->_defaults as $exp) { - $exp->verify(); - } - } - } - - /** - * Attempt to locate an expectation matching the provided args - * - * @param array $args - * @return mixed - */ - public function findExpectation(array $args) - { - $expectation = null; - - if (!empty($this->_expectations)) { - $expectation = $this->_findExpectationIn($this->_expectations, $args); - } - - if ($expectation === null && !empty($this->_defaults)) { - $expectation = $this->_findExpectationIn($this->_defaults, $args); - } - - return $expectation; - } - - /** - * Make the given expectation a default for all others assuming it was - * correctly created last - * - * @param \Mockery\Expectation - */ - public function makeExpectationDefault(\Mockery\Expectation $expectation) - { - $last = end($this->_expectations); - if ($last === $expectation) { - array_pop($this->_expectations); - array_unshift($this->_defaults, $expectation); - } else { - throw new \Mockery\Exception( - 'Cannot turn a previously defined expectation into a default' - ); - } - } - - /** - * Search current array of expectations for a match - * - * @param array $expectations - * @param array $args - * @return mixed - */ - protected function _findExpectationIn(array $expectations, array $args) - { - foreach ($expectations as $exp) { - if ($exp->isEligible() && $exp->matchArgs($args)) { - return $exp; - } - } - foreach ($expectations as $exp) { - if ($exp->matchArgs($args)) { - return $exp; - } - } - } - - /** - * Return all expectations assigned to this director - * - * @return array - */ - public function getExpectations() - { - return $this->_expectations; - } - - /** - * Return all expectations assigned to this director - * - * @return array - */ - public function getDefaultExpectations() - { - return $this->_defaults; - } - - /** - * Return the number of expectations assigned to this director. - * - * @return int - */ - public function getExpectationCount() - { - return count($this->getExpectations()); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/ExpectationInterface.php b/vendor/mockery/mockery/library/Mockery/ExpectationInterface.php deleted file mode 100644 index 7cd9d8f2..00000000 --- a/vendor/mockery/mockery/library/Mockery/ExpectationInterface.php +++ /dev/null @@ -1,57 +0,0 @@ -once(); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/CachingGenerator.php b/vendor/mockery/mockery/library/Mockery/Generator/CachingGenerator.php deleted file mode 100644 index 6497e885..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/CachingGenerator.php +++ /dev/null @@ -1,45 +0,0 @@ -generator = $generator; - } - - public function generate(MockConfiguration $config) - { - $hash = $config->getHash(); - if (isset($this->cache[$hash])) { - return $this->cache[$hash]; - } - - $definition = $this->generator->generate($config); - $this->cache[$hash] = $definition; - - return $definition; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php b/vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php deleted file mode 100644 index 663b2254..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php +++ /dev/null @@ -1,108 +0,0 @@ -rfc = $rfc; - } - - public static function factory($name) - { - return new self(new \ReflectionClass($name)); - } - - public function getName() - { - return $this->rfc->getName(); - } - - public function isAbstract() - { - return $this->rfc->isAbstract(); - } - - public function isFinal() - { - return $this->rfc->isFinal(); - } - - public function getMethods() - { - return array_map(function ($method) { - return new Method($method); - }, $this->rfc->getMethods()); - } - - public function getInterfaces() - { - $class = __CLASS__; - return array_map(function ($interface) use ($class) { - return new $class($interface); - }, $this->rfc->getInterfaces()); - } - - public function __toString() - { - return $this->getName(); - } - - public function getNamespaceName() - { - return $this->rfc->getNamespaceName(); - } - - public function inNamespace() - { - return $this->rfc->inNamespace(); - } - - public function getShortName() - { - return $this->rfc->getShortName(); - } - - public function implementsInterface($interface) - { - return $this->rfc->implementsInterface($interface); - } - - public function hasInternalAncestor() - { - if ($this->rfc->isInternal()) { - return true; - } - - $child = $this->rfc; - while ($parent = $child->getParentClass()) { - if ($parent->isInternal()) { - return true; - } - $child = $parent; - } - - return false; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/Generator.php b/vendor/mockery/mockery/library/Mockery/Generator/Generator.php deleted file mode 100644 index 459a93cc..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/Generator.php +++ /dev/null @@ -1,27 +0,0 @@ -method = $method; - } - - public function __call($method, $args) - { - return call_user_func_array(array($this->method, $method), $args); - } - - public function getParameters() - { - return array_map(function ($parameter) { - return new Parameter($parameter); - }, $this->method->getParameters()); - } - - public function getReturnType() - { - if (version_compare(PHP_VERSION, '7.0.0-dev') >= 0 && $this->method->hasReturnType()) { - $returnType = (string) $this->method->getReturnType(); - - if ('self' === $returnType) { - $returnType = "\\".$this->method->getDeclaringClass()->getName(); - } - - if (version_compare(PHP_VERSION, '7.1.0-dev') >= 0 && $this->method->getReturnType()->allowsNull()) { - $returnType = '?'.$returnType; - } - - return $returnType; - } - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php b/vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php deleted file mode 100644 index 35479348..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php +++ /dev/null @@ -1,541 +0,0 @@ -addTargets($targets); - $this->blackListedMethods = $blackListedMethods; - $this->whiteListedMethods = $whiteListedMethods; - $this->name = $name; - $this->instanceMock = $instanceMock; - $this->parameterOverrides = $parameterOverrides; - $this->mockOriginalDestructor = $mockOriginalDestructor; - } - - /** - * Attempt to create a hash of the configuration, in order to allow caching - * - * @TODO workout if this will work - * - * @return string - */ - public function getHash() - { - $vars = array( - 'targetClassName' => $this->targetClassName, - 'targetInterfaceNames' => $this->targetInterfaceNames, - 'targetTraitNames' => $this->targetTraitNames, - 'name' => $this->name, - 'blackListedMethods' => $this->blackListedMethods, - 'whiteListedMethod' => $this->whiteListedMethods, - 'instanceMock' => $this->instanceMock, - 'parameterOverrides' => $this->parameterOverrides, - 'mockOriginalDestructor' => $this->mockOriginalDestructor - ); - - return md5(serialize($vars)); - } - - /** - * Gets a list of methods from the classes, interfaces and objects and - * filters them appropriately. Lot's of filtering going on, perhaps we could - * have filter classes to iterate through - */ - public function getMethodsToMock() - { - $methods = $this->getAllMethods(); - - foreach ($methods as $key => $method) { - if ($method->isFinal()) { - unset($methods[$key]); - } - } - - /** - * Whitelist trumps everything else - */ - if (count($this->getWhiteListedMethods())) { - $whitelist = array_map('strtolower', $this->getWhiteListedMethods()); - $methods = array_filter($methods, function ($method) use ($whitelist) { - return $method->isAbstract() || in_array(strtolower($method->getName()), $whitelist); - }); - - return $methods; - } - - /** - * Remove blacklisted methods - */ - if (count($this->getBlackListedMethods())) { - $blacklist = array_map('strtolower', $this->getBlackListedMethods()); - $methods = array_filter($methods, function ($method) use ($blacklist) { - return !in_array(strtolower($method->getName()), $blacklist); - }); - } - - /** - * Internal objects can not be instantiated with newInstanceArgs and if - * they implement Serializable, unserialize will have to be called. As - * such, we can't mock it and will need a pass to add a dummy - * implementation - */ - if ($this->getTargetClass() - && $this->getTargetClass()->implementsInterface("Serializable") - && $this->getTargetClass()->hasInternalAncestor()) { - $methods = array_filter($methods, function ($method) { - return $method->getName() !== "unserialize"; - }); - } - - return array_values($methods); - } - - /** - * We declare the __call method to handle undefined stuff, if the class - * we're mocking has also defined it, we need to comply with their interface - */ - public function requiresCallTypeHintRemoval() - { - foreach ($this->getAllMethods() as $method) { - if ("__call" === $method->getName()) { - $params = $method->getParameters(); - return !$params[1]->isArray(); - } - } - - return false; - } - - /** - * We declare the __callStatic method to handle undefined stuff, if the class - * we're mocking has also defined it, we need to comply with their interface - */ - public function requiresCallStaticTypeHintRemoval() - { - foreach ($this->getAllMethods() as $method) { - if ("__callStatic" === $method->getName()) { - $params = $method->getParameters(); - return !$params[1]->isArray(); - } - } - - return false; - } - - public function rename($className) - { - $targets = array(); - - if ($this->targetClassName) { - $targets[] = $this->targetClassName; - } - - if ($this->targetInterfaceNames) { - $targets = array_merge($targets, $this->targetInterfaceNames); - } - - if ($this->targetTraitNames) { - $targets = array_merge($targets, $this->targetTraitNames); - } - - if ($this->targetObject) { - $targets[] = $this->targetObject; - } - - return new self( - $targets, - $this->blackListedMethods, - $this->whiteListedMethods, - $className, - $this->instanceMock, - $this->parameterOverrides, - $this->mockOriginalDestructor - ); - } - - protected function addTarget($target) - { - if (is_object($target)) { - $this->setTargetObject($target); - $this->setTargetClassName(get_class($target)); - return $this; - } - - if ($target[0] !== "\\") { - $target = "\\" . $target; - } - - if (class_exists($target)) { - $this->setTargetClassName($target); - return $this; - } - - if (interface_exists($target)) { - $this->addTargetInterfaceName($target); - return $this; - } - - if (trait_exists($target)) { - $this->addTargetTraitName($target); - return $this; - } - - /** - * Default is to set as class, or interface if class already set - * - * Don't like this condition, can't remember what the default - * targetClass is for - */ - if ($this->getTargetClassName()) { - $this->addTargetInterfaceName($target); - return $this; - } - - $this->setTargetClassName($target); - } - - protected function addTargets($interfaces) - { - foreach ($interfaces as $interface) { - $this->addTarget($interface); - } - } - - public function getTargetClassName() - { - return $this->targetClassName; - } - - public function getTargetClass() - { - if ($this->targetClass) { - return $this->targetClass; - } - - if (!$this->targetClassName) { - return null; - } - - if (class_exists($this->targetClassName)) { - $dtc = DefinedTargetClass::factory($this->targetClassName); - - if ($this->getTargetObject() == false && $dtc->isFinal()) { - throw new \Mockery\Exception( - 'The class ' . $this->targetClassName . ' is marked final and its methods' - . ' cannot be replaced. Classes marked final can be passed in' - . ' to \Mockery::mock() as instantiated objects to create a' - . ' partial mock, but only if the mock is not subject to type' - . ' hinting checks.' - ); - } - - $this->targetClass = $dtc; - } else { - $this->targetClass = UndefinedTargetClass::factory($this->targetClassName); - } - - return $this->targetClass; - } - - public function getTargetTraits() - { - if (!empty($this->targetTraits)) { - return $this->targetTraits; - } - - foreach ($this->targetTraitNames as $targetTrait) { - $this->targetTraits[] = DefinedTargetClass::factory($targetTrait); - } - - $this->targetTraits = array_unique($this->targetTraits); // just in case - return $this->targetTraits; - } - - public function getTargetInterfaces() - { - if (!empty($this->targetInterfaces)) { - return $this->targetInterfaces; - } - - foreach ($this->targetInterfaceNames as $targetInterface) { - if (!interface_exists($targetInterface)) { - $this->targetInterfaces[] = UndefinedTargetClass::factory($targetInterface); - return; - } - - $dtc = DefinedTargetClass::factory($targetInterface); - $extendedInterfaces = array_keys($dtc->getInterfaces()); - $extendedInterfaces[] = $targetInterface; - - $traversableFound = false; - $iteratorShiftedToFront = false; - foreach ($extendedInterfaces as $interface) { - if (!$traversableFound && preg_match("/^\\?Iterator(|Aggregate)$/i", $interface)) { - break; - } - - if (preg_match("/^\\\\?IteratorAggregate$/i", $interface)) { - $this->targetInterfaces[] = DefinedTargetClass::factory("\\IteratorAggregate"); - $iteratorShiftedToFront = true; - } elseif (preg_match("/^\\\\?Iterator$/i", $interface)) { - $this->targetInterfaces[] = DefinedTargetClass::factory("\\Iterator"); - $iteratorShiftedToFront = true; - } elseif (preg_match("/^\\\\?Traversable$/i", $interface)) { - $traversableFound = true; - } - } - - if ($traversableFound && !$iteratorShiftedToFront) { - $this->targetInterfaces[] = DefinedTargetClass::factory("\\IteratorAggregate"); - } - - /** - * We never straight up implement Traversable - */ - if (!preg_match("/^\\\\?Traversable$/i", $targetInterface)) { - $this->targetInterfaces[] = $dtc; - } - } - $this->targetInterfaces = array_unique($this->targetInterfaces); // just in case - return $this->targetInterfaces; - } - - public function getTargetObject() - { - return $this->targetObject; - } - - public function getName() - { - return $this->name; - } - - /** - * Generate a suitable name based on the config - */ - public function generateName() - { - $name = 'Mockery_' . static::$mockCounter++; - - if ($this->getTargetObject()) { - $name .= "_" . str_replace("\\", "_", get_class($this->getTargetObject())); - } - - if ($this->getTargetClass()) { - $name .= "_" . str_replace("\\", "_", $this->getTargetClass()->getName()); - } - - if ($this->getTargetInterfaces()) { - $name .= array_reduce($this->getTargetInterfaces(), function ($tmpname, $i) { - $tmpname .= '_' . str_replace("\\", "_", $i->getName()); - return $tmpname; - }, ''); - } - - return $name; - } - - public function getShortName() - { - $parts = explode("\\", $this->getName()); - return array_pop($parts); - } - - public function getNamespaceName() - { - $parts = explode("\\", $this->getName()); - array_pop($parts); - - if (count($parts)) { - return implode("\\", $parts); - } - - return ""; - } - - public function getBlackListedMethods() - { - return $this->blackListedMethods; - } - - public function getWhiteListedMethods() - { - return $this->whiteListedMethods; - } - - public function isInstanceMock() - { - return $this->instanceMock; - } - - public function getParameterOverrides() - { - return $this->parameterOverrides; - } - - public function isMockOriginalDestructor() - { - return $this->mockOriginalDestructor; - } - - protected function setTargetClassName($targetClassName) - { - $this->targetClassName = $targetClassName; - } - - protected function getAllMethods() - { - if ($this->allMethods) { - return $this->allMethods; - } - - $classes = $this->getTargetInterfaces(); - - if ($this->getTargetClass()) { - $classes[] = $this->getTargetClass(); - } - - $methods = array(); - foreach ($classes as $class) { - $methods = array_merge($methods, $class->getMethods()); - } - - foreach ($this->getTargetTraits() as $trait) { - foreach ($trait->getMethods() as $method) { - if ($method->isAbstract()) { - $methods[] = $method; - } - } - } - - $names = array(); - $methods = array_filter($methods, function ($method) use (&$names) { - if (in_array($method->getName(), $names)) { - return false; - } - - $names[] = $method->getName(); - return true; - }); - - return $this->allMethods = $methods; - } - - /** - * If we attempt to implement Traversable, we must ensure we are also - * implementing either Iterator or IteratorAggregate, and that whichever one - * it is comes before Traversable in the list of implements. - */ - protected function addTargetInterfaceName($targetInterface) - { - $this->targetInterfaceNames[] = $targetInterface; - } - - protected function addTargetTraitName($targetTraitName) - { - $this->targetTraitNames[] = $targetTraitName; - } - - protected function setTargetObject($object) - { - $this->targetObject = $object; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php b/vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php deleted file mode 100644 index 29a90d55..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php +++ /dev/null @@ -1,169 +0,0 @@ -= 0) { - $this->blackListedMethods = array_diff($this->blackListedMethods, $this->php7SemiReservedKeywords); - } - } - - public function addTarget($target) - { - $this->targets[] = $target; - - return $this; - } - - public function addTargets($targets) - { - foreach ($targets as $target) { - $this->addTarget($target); - } - - return $this; - } - - public function setName($name) - { - $this->name = $name; - return $this; - } - - public function addBlackListedMethod($blackListedMethod) - { - $this->blackListedMethods[] = $blackListedMethod; - return $this; - } - - public function addBlackListedMethods(array $blackListedMethods) - { - foreach ($blackListedMethods as $method) { - $this->addBlackListedMethod($method); - } - return $this; - } - - public function setBlackListedMethods(array $blackListedMethods) - { - $this->blackListedMethods = $blackListedMethods; - return $this; - } - - public function addWhiteListedMethod($whiteListedMethod) - { - $this->whiteListedMethods[] = $whiteListedMethod; - return $this; - } - - public function addWhiteListedMethods(array $whiteListedMethods) - { - foreach ($whiteListedMethods as $method) { - $this->addWhiteListedMethod($method); - } - return $this; - } - - public function setWhiteListedMethods(array $whiteListedMethods) - { - $this->whiteListedMethods = $whiteListedMethods; - return $this; - } - - public function setInstanceMock($instanceMock) - { - $this->instanceMock = (bool) $instanceMock; - } - - public function setParameterOverrides(array $overrides) - { - $this->parameterOverrides = $overrides; - } - - public function setMockOriginalDestructor($mockDestructor) - { - $this->mockOriginalDestructor = $mockDestructor; - return $this; - } - - public function getMockConfiguration() - { - return new MockConfiguration( - $this->targets, - $this->blackListedMethods, - $this->whiteListedMethods, - $this->name, - $this->instanceMock, - $this->parameterOverrides, - $this->mockOriginalDestructor - ); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php b/vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php deleted file mode 100644 index fd6a9fa2..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php +++ /dev/null @@ -1,51 +0,0 @@ -getName()) { - throw new \InvalidArgumentException("MockConfiguration must contain a name"); - } - $this->config = $config; - $this->code = $code; - } - - public function getConfig() - { - return $this->config; - } - - public function getClassName() - { - return $this->config->getName(); - } - - public function getCode() - { - return $this->code; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/Parameter.php b/vendor/mockery/mockery/library/Mockery/Generator/Parameter.php deleted file mode 100644 index a5338c0c..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/Parameter.php +++ /dev/null @@ -1,110 +0,0 @@ -rfp = $rfp; - } - - public function __call($method, array $args) - { - return call_user_func_array(array($this->rfp, $method), $args); - } - - public function getClass() - { - return new DefinedTargetClass($this->rfp->getClass()); - } - - public function getTypeHintAsString() - { - if (method_exists($this->rfp, 'getTypehintText')) { - // Available in HHVM - $typehint = $this->rfp->getTypehintText(); - - // not exhaustive, but will do for now - if (in_array($typehint, array('int', 'integer', 'float', 'string', 'bool', 'boolean'))) { - return ''; - } - - return $typehint; - } - - if ($this->rfp->isArray()) { - return 'array'; - } - - /* - * PHP < 5.4.1 has some strange behaviour with a typehint of self and - * subclass signatures, so we risk the regexp instead - */ - if ((version_compare(PHP_VERSION, '5.4.1') >= 0)) { - try { - if ($this->rfp->getClass()) { - return $this->rfp->getClass()->getName(); - } - } catch (\ReflectionException $re) { - // noop - } - } - - if (version_compare(PHP_VERSION, '7.0.0-dev') >= 0 && $this->rfp->hasType()) { - return (string) $this->rfp->getType(); - } - - if (preg_match('/^Parameter #[0-9]+ \[ \<(required|optional)\> (?\S+ )?.*\$' . $this->rfp->getName() . ' .*\]$/', $this->rfp->__toString(), $typehintMatch)) { - if (!empty($typehintMatch['typehint'])) { - return $typehintMatch['typehint']; - } - } - - return ''; - } - - /** - * Some internal classes have funny looking definitions... - */ - public function getName() - { - $name = $this->rfp->getName(); - if (!$name || $name == '...') { - $name = 'arg' . static::$parameterCounter++; - } - - return $name; - } - - - /** - * Variadics only introduced in 5.6 - */ - public function isVariadic() - { - return $this->rfp->isVariadic(); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php deleted file mode 100644 index fd00264c..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php +++ /dev/null @@ -1,47 +0,0 @@ -requiresCallTypeHintRemoval()) { - $code = str_replace( - 'public function __call($method, array $args)', - 'public function __call($method, $args)', - $code - ); - } - - if ($config->requiresCallStaticTypeHintRemoval()) { - $code = str_replace( - 'public static function __callStatic($method, array $args)', - 'public static function __callStatic($method, $args)', - $code - ); - } - - return $code; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php deleted file mode 100644 index b5a31098..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php +++ /dev/null @@ -1,49 +0,0 @@ -getNamespaceName(); - - $namespace = ltrim($namespace, "\\"); - - $className = $config->getShortName(); - - $code = str_replace( - 'namespace Mockery;', - $namespace ? 'namespace ' . $namespace . ';' : '', - $code - ); - - $code = str_replace( - 'class Mock', - 'class ' . $className, - $code - ); - - return $code; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php deleted file mode 100644 index 91ccfabf..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php +++ /dev/null @@ -1,52 +0,0 @@ -getTargetClass(); - - if (!$target) { - return $code; - } - - if ($target->isFinal()) { - return $code; - } - - $className = ltrim($target->getName(), "\\"); - if (!class_exists($className)) { - \Mockery::declareClass($className); - } - - $code = str_replace( - "implements MockInterface", - "extends \\" . $className . " implements MockInterface", - $code - ); - - return $code; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php deleted file mode 100644 index 8bb567ef..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php +++ /dev/null @@ -1,81 +0,0 @@ -_mockery_ignoreVerification = false; - \$associatedRealObject = \Mockery::fetchMock(__CLASS__); - - foreach (get_object_vars(\$this) as \$attr => \$val) { - if (\$attr !== "_mockery_ignoreVerification" && \$attr !== "_mockery_expectations") { - \$this->\$attr = \$associatedRealObject->\$attr; - } - } - - \$directors = \$associatedRealObject->mockery_getExpectations(); - foreach (\$directors as \$method=>\$director) { - // get the director method needed - \$existingDirector = \$this->mockery_getExpectationsFor(\$method); - if (!\$existingDirector) { - \$existingDirector = new \Mockery\ExpectationDirector(\$method, \$this); - \$this->mockery_setExpectationsFor(\$method, \$existingDirector); - } - \$expectations = \$director->getExpectations(); - foreach (\$expectations as \$expectation) { - \$clonedExpectation = clone \$expectation; - \$existingDirector->addExpectation(\$clonedExpectation); - } - \$defaultExpectations = \$director->getDefaultExpectations(); - foreach (array_reverse(\$defaultExpectations) as \$expectation) { - \$clonedExpectation = clone \$expectation; - \$existingDirector->addExpectation(\$clonedExpectation); - \$existingDirector->makeExpectationDefault(\$clonedExpectation); - } - } - \Mockery::getContainer()->rememberMock(\$this); - } -MOCK; - - public function apply($code, MockConfiguration $config) - { - if ($config->isInstanceMock()) { - $code = $this->appendToClass($code, static::INSTANCE_MOCK_CODE); - } - - return $code; - } - - protected function appendToClass($class, $code) - { - $lastBrace = strrpos($class, "}"); - $class = substr($class, 0, $lastBrace) . $code . "\n }\n"; - return $class; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php deleted file mode 100644 index 982956e5..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php +++ /dev/null @@ -1,48 +0,0 @@ -getTargetInterfaces() as $i) { - $name = ltrim($i->getName(), "\\"); - if (!interface_exists($name)) { - \Mockery::declareInterface($name); - } - } - - $interfaces = array_reduce((array) $config->getTargetInterfaces(), function ($code, $i) { - return $code . ", \\" . ltrim($i->getName(), "\\"); - }, ""); - - $code = str_replace( - "implements MockInterface", - "implements MockInterface" . $interfaces, - $code - ); - - return $code; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php deleted file mode 100644 index 92b143fe..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php +++ /dev/null @@ -1,210 +0,0 @@ -getMagicMethods($config->getTargetClass()); - foreach ($config->getTargetInterfaces() as $interface) { - $magicMethods = array_merge($magicMethods, $this->getMagicMethods($interface)); - } - - foreach ($magicMethods as $method) { - $code = $this->applyMagicTypeHints($code, $method); - } - - return $code; - } - - /** - * Returns the magic methods within the - * passed DefinedTargetClass. - * - * @param TargetClassInterface $class - * @return array - */ - public function getMagicMethods( - TargetClassInterface $class = null - ) { - if (is_null($class)) { - return array(); - } - return array_filter($class->getMethods(), function (Method $method) { - return in_array($method->getName(), $this->mockMagicMethods); - }); - } - - /** - * Applies type hints of magic methods from - * class to the passed code. - * - * @param $code - * @param Method $method - * @return string - */ - private function applyMagicTypeHints($code, Method $method) - { - if ($this->isMethodWithinCode($code, $method)) { - $namedParameters = $this->getOriginalParameters( - $code, - $method - ); - $code = preg_replace( - $this->getDeclarationRegex($method->getName()), - $this->getMethodDeclaration($method, $namedParameters), - $code - ); - } - return $code; - } - - /** - * Checks if the method is declared withing code. - * - * @param $code - * @param Method $method - * @return boolean - */ - private function isMethodWithinCode($code, Method $method) - { - return preg_match( - $this->getDeclarationRegex($method->getName()), - $code - ) == 1; - } - - /** - * Returns the method original parameters, as they're - * described in the $code string. - * - * @param $code - * @param Method $method - * @return array - */ - private function getOriginalParameters($code, Method $method) - { - $methodName = $method->getName(); - $matches = []; - $parameterMatches = []; - - preg_match( - $this->getDeclarationRegex($method->getName()), - $code, - $matches - ); - - if (count($matches) > 0) { - preg_match_all( - '/(?<=\$)(\w+)+/i', - $matches[0], - $parameterMatches - ); - } - - $groupMatches = end($parameterMatches); - $parameterNames = is_array($groupMatches) ? - $groupMatches : - array($groupMatches); - - return $parameterNames; - } - - /** - * Gets the declaration code, as a string, for the passed method. - * - * @param Method $method - * @param array $namedParameters - * @return string - */ - private function getMethodDeclaration( - Method $method, - array $namedParameters - ) { - $declaration = 'public'; - $declaration .= $method->isStatic() ? ' static' : ''; - $declaration .= ' function '.$method->getName().'('; - - foreach ($method->getParameters() as $index => $parameter) { - $declaration .= $parameter->getTypeHintAsString().' '; - $name = isset($namedParameters[$index]) ? - $namedParameters[$index] : - $parameter->getName(); - $declaration .= '$'.$name; - $declaration .= ','; - } - $declaration = rtrim($declaration, ','); - $declaration .= ') '; - - $returnType = $method->getReturnType(); - if (!empty($returnType)) { - $declaration .= ': '.$returnType; - } - - return $declaration; - } - - /** - * Returns a regex string used to match the - * declaration of some method. - * - * @param string $methodName - * @return string - */ - private function getDeclarationRegex($methodName) - { - $method = strtolower($methodName); - return "/public\s+(?:static\s+)?function\s+$methodName\s*\(.*\)\s*(?=\{)/i"; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php deleted file mode 100644 index f133adde..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php +++ /dev/null @@ -1,191 +0,0 @@ -getMethodsToMock() as $method) { - if ($method->isPublic()) { - $methodDef = 'public'; - } elseif ($method->isProtected()) { - $methodDef = 'protected'; - } else { - $methodDef = 'private'; - } - - if ($method->isStatic()) { - $methodDef .= ' static'; - } - - $methodDef .= ' function '; - $methodDef .= $method->returnsReference() ? ' & ' : ''; - $methodDef .= $method->getName(); - $methodDef .= $this->renderParams($method, $config); - $methodDef .= $this->renderReturnType($method); - $methodDef .= $this->renderMethodBody($method, $config); - - $code = $this->appendToClass($code, $methodDef); - } - - return $code; - } - - protected function renderParams(Method $method, $config) - { - $class = $method->getDeclaringClass(); - if ($class->isInternal()) { - $overrides = $config->getParameterOverrides(); - - if (isset($overrides[strtolower($class->getName())][$method->getName()])) { - return '(' . implode(',', $overrides[strtolower($class->getName())][$method->getName()]) . ')'; - } - } - - $methodParams = array(); - $params = $method->getParameters(); - foreach ($params as $param) { - $paramDef = $this->renderTypeHint($param); - $paramDef .= $param->isPassedByReference() ? '&' : ''; - $paramDef .= $param->isVariadic() ? '...' : ''; - $paramDef .= '$' . $param->getName(); - - if (!$param->isVariadic()) { - if (false !== $param->isDefaultValueAvailable()) { - $paramDef .= ' = ' . var_export($param->getDefaultValue(), true); - } elseif ($param->isOptional()) { - $paramDef .= ' = null'; - } - } - - $methodParams[] = $paramDef; - } - return '(' . implode(', ', $methodParams) . ')'; - } - - protected function renderReturnType(Method $method) - { - $type = $method->getReturnType(); - return $type ? sprintf(': %s', $type) : ''; - } - - protected function appendToClass($class, $code) - { - $lastBrace = strrpos($class, "}"); - $class = substr($class, 0, $lastBrace) . $code . "\n }\n"; - return $class; - } - - protected function renderTypeHint(Parameter $param) - { - $languageTypeHints = array( - 'self', - 'array', - 'callable', - // Up to php 7 - 'bool', - 'float', - 'int', - 'string', - 'iterable', - ); - - if (version_compare(PHP_VERSION, '7.2.0-dev') >= 0) { - $languageTypeHints[] = 'object'; - } - - $typeHint = trim($param->getTypeHintAsString()); - - if (!empty($typeHint)) { - if (!in_array($typeHint, $languageTypeHints)) { - $typeHint = '\\'.$typeHint; - } - - if (version_compare(PHP_VERSION, '7.1.0-dev') >= 0 && $param->allowsNull()) { - $typeHint = "?".$typeHint; - } - } - - return $typeHint .= ' '; - } - - private function renderMethodBody($method, $config) - { - $invoke = $method->isStatic() ? 'static::_mockery_handleStaticMethodCall' : '$this->_mockery_handleMethodCall'; - $body = <<getDeclaringClass(); - $class_name = strtolower($class->getName()); - $overrides = $config->getParameterOverrides(); - if (isset($overrides[$class_name][$method->getName()])) { - $params = array_values($overrides[$class_name][$method->getName()]); - $paramCount = count($params); - for ($i = 0; $i < $paramCount; ++$i) { - $param = $params[$i]; - if (strpos($param, '&') !== false) { - $body .= << $i) { - \$argv[$i] = {$param}; -} - -BODY; - } - } - } else { - $params = array_values($method->getParameters()); - $paramCount = count($params); - for ($i = 0; $i < $paramCount; ++$i) { - $param = $params[$i]; - if (!$param->isPassedByReference()) { - continue; - } - $body .= << $i) { - \$argv[$i] =& \${$param->getName()}; -} - -BODY; - } - } - - $body .= "\$ret = {$invoke}(__FUNCTION__, \$argv);\n"; - - if ($method->getReturnType() !== "void") { - $body .= "return \$ret;\n"; - } - - $body .= "}\n"; - return $body; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php deleted file mode 100644 index f7b72c9f..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php +++ /dev/null @@ -1,28 +0,0 @@ - '/public function __wakeup\(\)\s+\{.*?\}/sm', - ); - - public function apply($code, MockConfiguration $config) - { - $target = $config->getTargetClass(); - - if (!$target) { - return $code; - } - - foreach ($target->getMethods() as $method) { - if ($method->isFinal() && isset($this->methods[$method->getName()])) { - $code = preg_replace($this->methods[$method->getName()], '', $code); - } - } - - return $code; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php deleted file mode 100644 index ed5a4206..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php +++ /dev/null @@ -1,45 +0,0 @@ - - */ - -namespace Mockery\Generator\StringManipulation\Pass; - -use Mockery\Generator\MockConfiguration; - -/** - * Remove mock's empty destructor if we tend to use original class destructor - */ -class RemoveDestructorPass -{ - public function apply($code, MockConfiguration $config) - { - $target = $config->getTargetClass(); - - if (!$target) { - return $code; - } - - if (!$config->isMockOriginalDestructor()) { - $code = preg_replace('/public function __destruct\(\)\s+\{.*?\}/sm', '', $code); - } - - return $code; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php deleted file mode 100644 index 840fe998..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php +++ /dev/null @@ -1,58 +0,0 @@ -getTargetClass(); - - if (!$target) { - return $code; - } - - if (!$target->hasInternalAncestor() || !$target->implementsInterface("Serializable")) { - return $code; - } - - $code = $this->appendToClass($code, self::DUMMY_METHOD_DEFINITION); - - return $code; - } - - protected function appendToClass($class, $code) - { - $lastBrace = strrpos($class, "}"); - $class = substr($class, 0, $lastBrace) . $code . "\n }\n"; - return $class; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php deleted file mode 100644 index 13343c33..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php +++ /dev/null @@ -1,47 +0,0 @@ -getTargetTraits(); - - if (empty($traits)) { - return $code; - } - - $useStatements = array_map(function ($trait) { - return "use \\\\".ltrim($trait->getName(), "\\").";"; - }, $traits); - - $code = preg_replace( - '/^{$/m', - "{\n ".implode("\n ", $useStatements)."\n", - $code - ); - - return $code; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php b/vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php deleted file mode 100644 index d60db908..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php +++ /dev/null @@ -1,85 +0,0 @@ -passes = $passes; - } - - public function generate(MockConfiguration $config) - { - $code = file_get_contents(__DIR__ . '/../Mock.php'); - $className = $config->getName() ?: $config->generateName(); - - $namedConfig = $config->rename($className); - - foreach ($this->passes as $pass) { - $code = $pass->apply($code, $namedConfig); - } - - return new MockDefinition($namedConfig, $code); - } - - public function addPass(Pass $pass) - { - $this->passes[] = $pass; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php b/vendor/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php deleted file mode 100644 index 422bddf3..00000000 --- a/vendor/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php +++ /dev/null @@ -1,107 +0,0 @@ -name = $name; - } - - public static function factory($name) - { - return new self($name); - } - - public function getName() - { - return $this->name; - } - - public function isAbstract() - { - return false; - } - - public function isFinal() - { - return false; - } - - public function getMethods() - { - return array(); - } - - public function getInterfaces() - { - return array(); - } - - public function getNamespaceName() - { - $parts = explode("\\", ltrim($this->getName(), "\\")); - array_pop($parts); - return implode("\\", $parts); - } - - public function inNamespace() - { - return $this->getNamespaceName() !== ''; - } - - public function getShortName() - { - $parts = explode("\\", $this->getName()); - return array_pop($parts); - } - - public function implementsInterface($interface) - { - return false; - } - - public function hasInternalAncestor() - { - return false; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/HigherOrderMessage.php b/vendor/mockery/mockery/library/Mockery/HigherOrderMessage.php deleted file mode 100644 index 851183ad..00000000 --- a/vendor/mockery/mockery/library/Mockery/HigherOrderMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -mock = $mock; - $this->method = $method; - } - - /** - * @return \Mockery\Expectation - */ - public function __call($method, $args) - { - $expectation = $this->mock->{$this->method}($method); - - if ($this->method !== "shouldNotHaveReceived") { - return $expectation->withArgs($args); - } - - return $expectation; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Instantiator.php b/vendor/mockery/mockery/library/Mockery/Instantiator.php deleted file mode 100644 index a6239bc4..00000000 --- a/vendor/mockery/mockery/library/Mockery/Instantiator.php +++ /dev/null @@ -1,210 +0,0 @@ -. - */ - -namespace Mockery; - -use Closure; -use ReflectionClass; -use UnexpectedValueException; -use InvalidArgumentException; - -/** - * This is a trimmed down version of https://github.com/doctrine/instantiator, - * basically without the caching - * - * @author Marco Pivetta - */ -final class Instantiator -{ - /** - * Markers used internally by PHP to define whether {@see \unserialize} should invoke - * the method {@see \Serializable::unserialize()} when dealing with classes implementing - * the {@see \Serializable} interface. - */ - const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C'; - const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O'; - - /** - * {@inheritDoc} - */ - public function instantiate($className) - { - $factory = $this->buildFactory($className); - $instance = $factory(); - $reflection = new ReflectionClass($instance); - - return $instance; - } - - /** - * @internal - * @private - * - * Builds a {@see \Closure} capable of instantiating the given $className without - * invoking its constructor. - * This method is only exposed as public because of PHP 5.3 compatibility. Do not - * use this method in your own code - * - * @param string $className - * - * @return Closure - */ - public function buildFactory($className) - { - $reflectionClass = $this->getReflectionClass($className); - - if ($this->isInstantiableViaReflection($reflectionClass)) { - return function () use ($reflectionClass) { - return $reflectionClass->newInstanceWithoutConstructor(); - }; - } - - $serializedString = sprintf( - '%s:%d:"%s":0:{}', - $this->getSerializationFormat($reflectionClass), - strlen($className), - $className - ); - - $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString); - - return function () use ($serializedString) { - return unserialize($serializedString); - }; - } - - /** - * @param string $className - * - * @return ReflectionClass - * - * @throws InvalidArgumentException - */ - private function getReflectionClass($className) - { - if (! class_exists($className)) { - throw new InvalidArgumentException("Class:$className does not exist"); - } - - $reflection = new ReflectionClass($className); - - if ($reflection->isAbstract()) { - throw new InvalidArgumentException("Class:$className is an abstract class"); - } - - return $reflection; - } - - /** - * @param ReflectionClass $reflectionClass - * @param string $serializedString - * - * @throws UnexpectedValueException - * - * @return void - */ - private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, $serializedString) - { - set_error_handler(function ($code, $message, $file, $line) use ($reflectionClass, & $error) { - $msg = sprintf( - 'Could not produce an instance of "%s" via un-serialization, since an error was triggered in file "%s" at line "%d"', - $reflectionClass->getName(), - $file, - $line - ); - - $error = new UnexpectedValueException($msg, 0, new \Exception($message, $code)); - }); - - try { - unserialize($serializedString); - } catch (\Exception $exception) { - restore_error_handler(); - - throw new UnexpectedValueException("An exception was raised while trying to instantiate an instance of \"{$reflectionClass->getName()}\" via un-serialization", 0, $exception); - } - - restore_error_handler(); - - if ($error) { - throw $error; - } - } - - /** - * @param ReflectionClass $reflectionClass - * - * @return bool - */ - private function isInstantiableViaReflection(ReflectionClass $reflectionClass) - { - return ! ($reflectionClass->isInternal() && $reflectionClass->isFinal()); - } - - /** - * Verifies whether the given class is to be considered internal - * - * @param ReflectionClass $reflectionClass - * - * @return bool - */ - private function hasInternalAncestors(ReflectionClass $reflectionClass) - { - do { - if ($reflectionClass->isInternal()) { - return true; - } - } while ($reflectionClass = $reflectionClass->getParentClass()); - - return false; - } - - /** - * Verifies if the given PHP version implements the `Serializable` interface serialization - * with an incompatible serialization format. If that's the case, use serialization marker - * "C" instead of "O". - * - * @link http://news.php.net/php.internals/74654 - * - * @param ReflectionClass $reflectionClass - * - * @return string the serialization format marker, either self::SERIALIZATION_FORMAT_USE_UNSERIALIZER - * or self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER - */ - private function getSerializationFormat(ReflectionClass $reflectionClass) - { - if ($this->isPhpVersionWithBrokenSerializationFormat() - && $reflectionClass->implementsInterface('Serializable') - ) { - return self::SERIALIZATION_FORMAT_USE_UNSERIALIZER; - } - - return self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER; - } - - /** - * Checks whether the current PHP runtime uses an incompatible serialization format - * - * @return bool - */ - private function isPhpVersionWithBrokenSerializationFormat() - { - return PHP_VERSION_ID === 50429 || PHP_VERSION_ID === 50513; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php b/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php deleted file mode 100644 index e5f78a20..00000000 --- a/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php +++ /dev/null @@ -1,36 +0,0 @@ -getClassName(), false)) { - return; - } - - eval("?>" . $definition->getCode()); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Loader/Loader.php b/vendor/mockery/mockery/library/Mockery/Loader/Loader.php deleted file mode 100644 index 170ffb6e..00000000 --- a/vendor/mockery/mockery/library/Mockery/Loader/Loader.php +++ /dev/null @@ -1,28 +0,0 @@ -path = realpath($path) ?: sys_get_temp_dir(); - } - - public function load(MockDefinition $definition) - { - if (class_exists($definition->getClassName(), false)) { - return; - } - - $tmpfname = $this->path.DIRECTORY_SEPARATOR."Mockery_".uniqid().".php"; - file_put_contents($tmpfname, $definition->getCode()); - - require $tmpfname; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/Any.php b/vendor/mockery/mockery/library/Mockery/Matcher/Any.php deleted file mode 100644 index 1ff440b1..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/Any.php +++ /dev/null @@ -1,45 +0,0 @@ -'; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/AnyArgs.php b/vendor/mockery/mockery/library/Mockery/Matcher/AnyArgs.php deleted file mode 100644 index 9663a76d..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/AnyArgs.php +++ /dev/null @@ -1,40 +0,0 @@ -'; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php b/vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php deleted file mode 100644 index 1ed11faf..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php +++ /dev/null @@ -1,51 +0,0 @@ -_expected as $exp) { - if ($actual === $exp) { - return true; - } - } - return false; - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php b/vendor/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php deleted file mode 100644 index 04408f56..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php +++ /dev/null @@ -1,25 +0,0 @@ -_expected; - $result = $closure($actual); - return $result === true; - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/Contains.php b/vendor/mockery/mockery/library/Mockery/Matcher/Contains.php deleted file mode 100644 index 79afb73a..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/Contains.php +++ /dev/null @@ -1,64 +0,0 @@ -_expected as $exp) { - $match = false; - foreach ($values as $val) { - if ($exp === $val || $exp == $val) { - $match = true; - break; - } - } - if ($match === false) { - return false; - } - } - return true; - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - $return = '_expected as $v) { - $elements[] = (string) $v; - } - $return .= implode(', ', $elements) . ']>'; - return $return; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php b/vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php deleted file mode 100644 index 291f4220..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php +++ /dev/null @@ -1,53 +0,0 @@ -_expected as $method) { - if (!method_exists($actual, $method)) { - return false; - } - } - return true; - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return '_expected) . ']>'; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php b/vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php deleted file mode 100644 index fa983eaf..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php +++ /dev/null @@ -1,45 +0,0 @@ -_expected, $actual); - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return "_expected]>"; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php b/vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php deleted file mode 100644 index 8ca6afd1..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php +++ /dev/null @@ -1,46 +0,0 @@ -_expected, $actual); - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - $return = '_expected . ']>'; - return $return; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php b/vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php deleted file mode 100644 index 3233079e..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php +++ /dev/null @@ -1,58 +0,0 @@ -_expected = $expected; - } - - /** - * Check if the actual value matches the expected. - * Actual passed by reference to preserve reference trail (where applicable) - * back to the original method parameter. - * - * @param mixed $actual - * @return bool - */ - abstract public function match(&$actual); - - /** - * Return a string representation of this Matcher - * - * @return string - */ - abstract public function __toString(); -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php b/vendor/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php deleted file mode 100644 index 8f00a893..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php +++ /dev/null @@ -1,49 +0,0 @@ -_expected; - return true === call_user_func_array($closure, $actual); - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php b/vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php deleted file mode 100644 index b841ba5a..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php +++ /dev/null @@ -1,52 +0,0 @@ -_expected === $actual; - } else { - return $this->_expected == $actual; - } - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/NoArgs.php b/vendor/mockery/mockery/library/Mockery/Matcher/NoArgs.php deleted file mode 100644 index 5e9e4189..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/NoArgs.php +++ /dev/null @@ -1,40 +0,0 @@ -'; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/Not.php b/vendor/mockery/mockery/library/Mockery/Matcher/Not.php deleted file mode 100644 index 756ccaa5..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/Not.php +++ /dev/null @@ -1,46 +0,0 @@ -_expected; - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php b/vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php deleted file mode 100644 index cd827015..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php +++ /dev/null @@ -1,51 +0,0 @@ -_expected as $exp) { - if ($actual === $exp || $actual == $exp) { - return false; - } - } - return true; - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/PHPUnitConstraint.php b/vendor/mockery/mockery/library/Mockery/Matcher/PHPUnitConstraint.php deleted file mode 100644 index d22bf1b5..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/PHPUnitConstraint.php +++ /dev/null @@ -1,76 +0,0 @@ -constraint = $constraint; - $this->rethrow = $rethrow; - } - - /** - * @param mixed $actual - * @return bool - */ - public function match(&$actual) - { - try { - $this->constraint->evaluate($actual); - return true; - } catch (\PHPUnit_Framework_AssertionFailedError $e) { - if ($this->rethrow) { - throw $e; - } - return false; - } catch (\PHPUnit\Framework\AssertionFailedError $e) { - if ($this->rethrow) { - throw $e; - } - return false; - } - } - - /** - * - */ - public function __toString() - { - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/Pattern.php b/vendor/mockery/mockery/library/Mockery/Matcher/Pattern.php deleted file mode 100644 index 362c366f..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/Pattern.php +++ /dev/null @@ -1,45 +0,0 @@ -_expected, (string) $actual) >= 1; - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return ''; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/Subset.php b/vendor/mockery/mockery/library/Mockery/Matcher/Subset.php deleted file mode 100644 index 5e706c81..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/Subset.php +++ /dev/null @@ -1,92 +0,0 @@ -expected = $expected; - $this->strict = $strict; - } - - /** - * @param array $expected Expected subset of data - * - * @return Subset - */ - public static function strict(array $expected) - { - return new static($expected, true); - } - - /** - * @param array $expected Expected subset of data - * - * @return Subset - */ - public static function loose(array $expected) - { - return new static($expected, false); - } - - /** - * Check if the actual value matches the expected. - * - * @param mixed $actual - * @return bool - */ - public function match(&$actual) - { - if (!is_array($actual)) { - return false; - } - - if ($this->strict) { - return $actual === array_replace_recursive($actual, $this->expected); - } - - return $actual == array_replace_recursive($actual, $this->expected); - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - $return = 'expected as $k=>$v) { - $elements[] = $k . '=' . (string) $v; - } - $return .= implode(', ', $elements) . ']>'; - return $return; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Matcher/Type.php b/vendor/mockery/mockery/library/Mockery/Matcher/Type.php deleted file mode 100644 index dc189ab0..00000000 --- a/vendor/mockery/mockery/library/Mockery/Matcher/Type.php +++ /dev/null @@ -1,52 +0,0 @@ -_expected); - if (function_exists($function)) { - return $function($actual); - } elseif (is_string($this->_expected) - && (class_exists($this->_expected) || interface_exists($this->_expected))) { - return $actual instanceof $this->_expected; - } - return false; - } - - /** - * Return a string representation of this Matcher - * - * @return string - */ - public function __toString() - { - return '<' . ucfirst($this->_expected) . '>'; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/MethodCall.php b/vendor/mockery/mockery/library/Mockery/MethodCall.php deleted file mode 100644 index db68fd81..00000000 --- a/vendor/mockery/mockery/library/Mockery/MethodCall.php +++ /dev/null @@ -1,43 +0,0 @@ -method = $method; - $this->args = $args; - } - - public function getMethod() - { - return $this->method; - } - - public function getArgs() - { - return $this->args; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Mock.php b/vendor/mockery/mockery/library/Mockery/Mock.php deleted file mode 100644 index 1470f025..00000000 --- a/vendor/mockery/mockery/library/Mockery/Mock.php +++ /dev/null @@ -1,894 +0,0 @@ -_mockery_container = $container; - if (!is_null($partialObject)) { - $this->_mockery_partial = $partialObject; - } - - if (!\Mockery::getConfiguration()->mockingNonExistentMethodsAllowed()) { - foreach ($this->mockery_getMethods() as $method) { - if ($method->isPublic() && !$method->isStatic()) { - $this->_mockery_mockableMethods[] = $method->getName(); - } - } - } - } - - /** - * Set expected method calls - * - * @param array $methodNames,... one or many methods that are expected to be called in this mock - * - * @return \Mockery\ExpectationInterface|\Mockery\HigherOrderMessage - */ - public function shouldReceive(...$methodNames) - { - if (count($methodNames) === 0) { - return new HigherOrderMessage($this, "shouldReceive"); - } - - foreach ($methodNames as $method) { - if ("" == $method) { - throw new \InvalidArgumentException("Received empty method name"); - } - } - - /** @var array $nonPublicMethods */ - $nonPublicMethods = $this->getNonPublicMethods(); - - $self = $this; - $allowMockingProtectedMethods = $this->_mockery_allowMockingProtectedMethods; - - $lastExpectation = \Mockery::parseShouldReturnArgs( - $this, $methodNames, function ($method) use ($self, $nonPublicMethods, $allowMockingProtectedMethods) { - $rm = $self->mockery_getMethod($method); - if ($rm) { - if ($rm->isPrivate()) { - throw new \InvalidArgumentException("$method() cannot be mocked as it is a private method"); - } - if (!$allowMockingProtectedMethods && $rm->isProtected()) { - throw new \InvalidArgumentException("$method() cannot be mocked as it is a protected method and mocking protected methods is not enabled for the currently used mock object."); - } - } - - $director = $self->mockery_getExpectationsFor($method); - if (!$director) { - $director = new \Mockery\ExpectationDirector($method, $self); - $self->mockery_setExpectationsFor($method, $director); - } - $expectation = new \Mockery\Expectation($self, $method); - $director->addExpectation($expectation); - return $expectation; - } - ); - return $lastExpectation; - } - - /** - * @param mixed $something String method name or map of method => return - * @return self|\Mockery\ExpectationInterface|\Mockery\HigherOrderMessage - */ - public function allows($something = []) - { - if (is_string($something)) { - return $this->shouldReceive($something); - } - - if (empty($something)) { - return $this->shouldReceive(); - } - - foreach ($something as $method => $returnValue) { - $this->shouldReceive($method)->andReturn($returnValue); - } - - return $this; - } - - /** - * @param mixed $something String method name (optional) - * @return \Mockery\ExpectationInterface|ExpectsHigherOrderMessage - */ - public function expects($something = null) - { - if (is_string($something)) { - return $this->shouldReceive($something)->once(); - } - - return new ExpectsHigherOrderMessage($this); - } - - /** - * Shortcut method for setting an expectation that a method should not be called. - * - * @param array $methodNames one or many methods that are expected not to be called in this mock - * @return \Mockery\Expectation|\Mockery\HigherOrderMessage - */ - public function shouldNotReceive(...$methodNames) - { - if (count($methodNames) === 0) { - return new HigherOrderMessage($this, "shouldNotReceive"); - } - - $expectation = call_user_func_array(array($this, 'shouldReceive'), $methodNames); - $expectation->never(); - return $expectation; - } - - /** - * Allows additional methods to be mocked that do not explicitly exist on mocked class - * @param String $method name of the method to be mocked - * @return Mock - */ - public function shouldAllowMockingMethod($method) - { - $this->_mockery_mockableMethods[] = $method; - return $this; - } - - /** - * Set mock to ignore unexpected methods and return Undefined class - * @param mixed $returnValue the default return value for calls to missing functions on this mock - * @return Mock - */ - public function shouldIgnoreMissing($returnValue = null) - { - $this->_mockery_ignoreMissing = true; - $this->_mockery_defaultReturnValue = $returnValue; - return $this; - } - - public function asUndefined() - { - $this->_mockery_ignoreMissing = true; - $this->_mockery_defaultReturnValue = new \Mockery\Undefined; - return $this; - } - - /** - * @return Mock - */ - public function shouldAllowMockingProtectedMethods() - { - $this->_mockery_allowMockingProtectedMethods = true; - return $this; - } - - - /** - * Set mock to defer unexpected methods to it's parent - * - * This is particularly useless for this class, as it doesn't have a parent, - * but included for completeness - * - * @return Mock - */ - public function shouldDeferMissing() - { - $this->_mockery_deferMissing = true; - return $this; - } - - /** - * Create an obviously worded alias to shouldDeferMissing() - * - * @return Mock - */ - public function makePartial() - { - return $this->shouldDeferMissing(); - } - - /** - * In the event shouldReceive() accepting one or more methods/returns, - * this method will switch them from normal expectations to default - * expectations - * - * @return self - */ - public function byDefault() - { - foreach ($this->_mockery_expectations as $director) { - $exps = $director->getExpectations(); - foreach ($exps as $exp) { - $exp->byDefault(); - } - } - return $this; - } - - /** - * Capture calls to this mock - */ - public function __call($method, array $args) - { - return $this->_mockery_handleMethodCall($method, $args); - } - - public static function __callStatic($method, array $args) - { - return self::_mockery_handleStaticMethodCall($method, $args); - } - - /** - * Forward calls to this magic method to the __call method - */ - public function __toString() - { - return $this->__call('__toString', array()); - } - - /** - * Iterate across all expectation directors and validate each - * - * @throws \Mockery\CountValidator\Exception - * @return void - */ - public function mockery_verify() - { - if ($this->_mockery_verified) { - return; - } - if (isset($this->_mockery_ignoreVerification) - && $this->_mockery_ignoreVerification == true) { - return; - } - $this->_mockery_verified = true; - foreach ($this->_mockery_expectations as $director) { - $director->verify(); - } - } - - /** - * Gets a list of exceptions thrown by this mock - * - * @return array - */ - public function mockery_thrownExceptions() - { - return $this->_mockery_thrownExceptions; - } - - /** - * Tear down tasks for this mock - * - * @return void - */ - public function mockery_teardown() - { - } - - /** - * Fetch the next available allocation order number - * - * @return int - */ - public function mockery_allocateOrder() - { - $this->_mockery_allocatedOrder += 1; - return $this->_mockery_allocatedOrder; - } - - /** - * Set ordering for a group - * - * @param mixed $group - * @param int $order - */ - public function mockery_setGroup($group, $order) - { - $this->_mockery_groups[$group] = $order; - } - - /** - * Fetch array of ordered groups - * - * @return array - */ - public function mockery_getGroups() - { - return $this->_mockery_groups; - } - - /** - * Set current ordered number - * - * @param int $order - */ - public function mockery_setCurrentOrder($order) - { - $this->_mockery_currentOrder = $order; - return $this->_mockery_currentOrder; - } - - /** - * Get current ordered number - * - * @return int - */ - public function mockery_getCurrentOrder() - { - return $this->_mockery_currentOrder; - } - - /** - * Validate the current mock's ordering - * - * @param string $method - * @param int $order - * @throws \Mockery\Exception - * @return void - */ - public function mockery_validateOrder($method, $order) - { - if ($order < $this->_mockery_currentOrder) { - $exception = new \Mockery\Exception\InvalidOrderException( - 'Method ' . __CLASS__ . '::' . $method . '()' - . ' called out of order: expected order ' - . $order . ', was ' . $this->_mockery_currentOrder - ); - $exception->setMock($this) - ->setMethodName($method) - ->setExpectedOrder($order) - ->setActualOrder($this->_mockery_currentOrder); - throw $exception; - } - $this->mockery_setCurrentOrder($order); - } - - /** - * Gets the count of expectations for this mock - * - * @return int - */ - public function mockery_getExpectationCount() - { - $count = $this->_mockery_expectations_count; - foreach ($this->_mockery_expectations as $director) { - $count += $director->getExpectationCount(); - } - return $count; - } - - /** - * Return the expectations director for the given method - * - * @var string $method - * @return \Mockery\ExpectationDirector|null - */ - public function mockery_setExpectationsFor($method, \Mockery\ExpectationDirector $director) - { - $this->_mockery_expectations[$method] = $director; - } - - /** - * Return the expectations director for the given method - * - * @var string $method - * @return \Mockery\ExpectationDirector|null - */ - public function mockery_getExpectationsFor($method) - { - if (isset($this->_mockery_expectations[$method])) { - return $this->_mockery_expectations[$method]; - } - } - - /** - * Find an expectation matching the given method and arguments - * - * @var string $method - * @var array $args - * @return \Mockery\Expectation|null - */ - public function mockery_findExpectation($method, array $args) - { - if (!isset($this->_mockery_expectations[$method])) { - return null; - } - $director = $this->_mockery_expectations[$method]; - - return $director->findExpectation($args); - } - - /** - * Return the container for this mock - * - * @return \Mockery\Container - */ - public function mockery_getContainer() - { - return $this->_mockery_container; - } - - /** - * Return the name for this mock - * - * @return string - */ - public function mockery_getName() - { - return __CLASS__; - } - - /** - * @return array - */ - public function mockery_getMockableProperties() - { - return $this->_mockery_mockableProperties; - } - - public function __isset($name) - { - if (false === stripos($name, '_mockery_') && method_exists(get_parent_class($this), '__isset')) { - return parent::__isset($name); - } - - return false; - } - - public function mockery_getExpectations() - { - return $this->_mockery_expectations; - } - - /** - * Calls a parent class method and returns the result. Used in a passthru - * expectation where a real return value is required while still taking - * advantage of expectation matching and call count verification. - * - * @param string $name - * @param array $args - * @return mixed - */ - public function mockery_callSubjectMethod($name, array $args) - { - return call_user_func_array('parent::' . $name, $args); - } - - /** - * @return string[] - */ - public function mockery_getMockableMethods() - { - return $this->_mockery_mockableMethods; - } - - /** - * @return bool - */ - public function mockery_isAnonymous() - { - $rfc = new \ReflectionClass($this); - - // HHVM has a Stringish interface - $interfaces = array_filter($rfc->getInterfaces(), function ($i) { - return $i->getName() !== "Stringish"; - }); - $onlyImplementsMock = 1 == count($interfaces); - - return (false === $rfc->getParentClass()) && $onlyImplementsMock; - } - - public function __wakeup() - { - /** - * This does not add __wakeup method support. It's a blind method and any - * expected __wakeup work will NOT be performed. It merely cuts off - * annoying errors where a __wakeup exists but is not essential when - * mocking - */ - } - - public function __destruct() - { - /** - * Overrides real class destructor in case if class was created without original constructor - */ - } - - public function mockery_getMethod($name) - { - foreach ($this->mockery_getMethods() as $method) { - if ($method->getName() == $name) { - return $method; - } - } - - return null; - } - - /** - * @param string $name Method name. - * - * @return mixed Generated return value based on the declared return value of the named method. - */ - public function mockery_returnValueForMethod($name) - { - if (version_compare(PHP_VERSION, '7.0.0-dev') < 0) { - return; - } - - $rm = $this->mockery_getMethod($name); - if (!$rm || !$rm->hasReturnType()) { - return; - } - - $returnType = $rm->getReturnType(); - - // Default return value for methods with nullable type is null - if ($returnType->allowsNull()) { - return null; - } - - $type = (string) $returnType; - switch ($type) { - case '': return; - case 'string': return ''; - case 'int': return 0; - case 'float': return 0.0; - case 'bool': return false; - case 'array': return []; - - case 'callable': - case 'Closure': - return function () { - }; - - case 'Traversable': - case 'Generator': - // Remove eval() when minimum version >=5.5 - $generator = eval('return function () { yield; };'); - return $generator(); - - case 'self': - return \Mockery::mock($rm->getDeclaringClass()->getName()); - - case 'void': - return null; - - case 'object': - if (version_compare(PHP_VERSION, '7.2.0-dev') >= 0) { - return \Mockery::mock(); - } - - default: - return \Mockery::mock($type); - } - } - - public function shouldHaveReceived($method = null, $args = null) - { - if ($method === null) { - return new HigherOrderMessage($this, "shouldHaveReceived"); - } - - $expectation = new \Mockery\VerificationExpectation($this, $method); - if (null !== $args) { - $expectation->withArgs($args); - } - $expectation->atLeast()->once(); - $director = new \Mockery\VerificationDirector($this->_mockery_getReceivedMethodCalls(), $expectation); - $this->_mockery_expectations_count++; - $director->verify(); - return $director; - } - - public function shouldNotHaveReceived($method = null, $args = null) - { - if ($method === null) { - return new HigherOrderMessage($this, "shouldNotHaveReceived"); - } - - $expectation = new \Mockery\VerificationExpectation($this, $method); - if (null !== $args) { - $expectation->withArgs($args); - } - $expectation->never(); - $director = new \Mockery\VerificationDirector($this->_mockery_getReceivedMethodCalls(), $expectation); - $this->_mockery_expectations_count++; - $director->verify(); - return null; - } - - protected static function _mockery_handleStaticMethodCall($method, array $args) - { - try { - $associatedRealObject = \Mockery::fetchMock(__CLASS__); - return $associatedRealObject->__call($method, $args); - } catch (BadMethodCallException $e) { - throw new BadMethodCallException( - 'Static method ' . $associatedRealObject->mockery_getName() . '::' . $method - . '() does not exist on this mock object', - null, - $e - ); - } - } - - protected function _mockery_getReceivedMethodCalls() - { - return $this->_mockery_receivedMethodCalls ?: $this->_mockery_receivedMethodCalls = new \Mockery\ReceivedMethodCalls(); - } - - protected function _mockery_handleMethodCall($method, array $args) - { - $this->_mockery_getReceivedMethodCalls()->push(new \Mockery\MethodCall($method, $args)); - - $rm = $this->mockery_getMethod($method); - if ($rm && $rm->isProtected() && !$this->_mockery_allowMockingProtectedMethods) { - if ($rm->isAbstract()) { - return; - } - - try { - $prototype = $rm->getPrototype(); - if ($prototype->isAbstract()) { - return; - } - } catch (\ReflectionException $re) { - // noop - there is no hasPrototype method - } - - return call_user_func_array("parent::$method", $args); - } - - if (isset($this->_mockery_expectations[$method]) - && !$this->_mockery_disableExpectationMatching) { - $handler = $this->_mockery_expectations[$method]; - - try { - return $handler->call($args); - } catch (\Mockery\Exception\NoMatchingExpectationException $e) { - if (!$this->_mockery_ignoreMissing && !$this->_mockery_deferMissing) { - throw $e; - } - } - } - - if (!is_null($this->_mockery_partial) && method_exists($this->_mockery_partial, $method)) { - return call_user_func_array(array($this->_mockery_partial, $method), $args); - } elseif ($this->_mockery_deferMissing && is_callable("parent::$method") - && (!$this->hasMethodOverloadingInParentClass() || method_exists(get_parent_class($this), $method))) { - return call_user_func_array("parent::$method", $args); - } elseif ($method == '__toString') { - // __toString is special because we force its addition to the class API regardless of the - // original implementation. Thus, we should always return a string rather than honor - // _mockery_ignoreMissing and break the API with an error. - return sprintf("%s#%s", __CLASS__, spl_object_hash($this)); - } elseif ($this->_mockery_ignoreMissing) { - if (\Mockery::getConfiguration()->mockingNonExistentMethodsAllowed() || (method_exists($this->_mockery_partial, $method) || is_callable("parent::$method"))) { - if ($this->_mockery_defaultReturnValue instanceof \Mockery\Undefined) { - return call_user_func_array(array($this->_mockery_defaultReturnValue, $method), $args); - } elseif (null === $this->_mockery_defaultReturnValue) { - return $this->mockery_returnValueForMethod($method); - } else { - return $this->_mockery_defaultReturnValue; - } - } - } - - $message = 'Method ' . __CLASS__ . '::' . $method . - '() does not exist on this mock object'; - - if (!is_null($rm)) { - $message = 'Received ' . __CLASS__ . - '::' . $method . '(), but no expectations were specified'; - } - - $bmce = new BadMethodCallException($message); - $this->_mockery_thrownExceptions[] = $bmce; - throw $bmce; - } - - /** - * Uses reflection to get the list of all - * methods within the current mock object - * - * @return array - */ - protected function mockery_getMethods() - { - if (static::$_mockery_methods) { - return static::$_mockery_methods; - } - - if (isset($this->_mockery_partial)) { - $reflected = new \ReflectionObject($this->_mockery_partial); - } else { - $reflected = new \ReflectionClass($this); - } - - return static::$_mockery_methods = $reflected->getMethods(); - } - - private function hasMethodOverloadingInParentClass() - { - // if there's __call any name would be callable - return is_callable('parent::aFunctionNameThatNoOneWouldEverUseInRealLife12345'); - } - - /** - * @return array - */ - private function getNonPublicMethods() - { - return array_map( - function ($method) { - return $method->getName(); - }, - array_filter($this->mockery_getMethods(), function ($method) { - return !$method->isPublic(); - }) - ); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/MockInterface.php b/vendor/mockery/mockery/library/Mockery/MockInterface.php deleted file mode 100644 index dcf99f64..00000000 --- a/vendor/mockery/mockery/library/Mockery/MockInterface.php +++ /dev/null @@ -1,240 +0,0 @@ - return - * @return self|\Mockery\ExpectationInterface|\Mockery\HigherOrderMessage - */ - public function allows($something = []); - - /** - * @param mixed $something String method name (optional) - * @return \Mockery\ExpectationInterface|\Mockery\ExpectsHigherOrderMessage - */ - public function expects($something = null); - - /** - * Alternative setup method to constructor - * - * @param \Mockery\Container $container - * @param object $partialObject - * @return void - */ - public function mockery_init(\Mockery\Container $container = null, $partialObject = null); - - /** - * Set expected method calls - * - * @param array ...$methodNames one or many methods that are expected to be called in this mock - * - * @return \Mockery\ExpectationInterface|\Mockery\HigherOrderMessage - */ - public function shouldReceive(...$methodNames); - - /** - * Shortcut method for setting an expectation that a method should not be called. - * - * @param array $methodNames one or many methods that are expected not to be called in this mock - * @return \Mockery\Expectation|\Mockery\HigherOrderMessage - */ - public function shouldNotReceive(...$methodNames); - - /** - * Allows additional methods to be mocked that do not explicitly exist on mocked class - * @param String $method name of the method to be mocked - */ - public function shouldAllowMockingMethod($method); - - /** - * Set mock to ignore unexpected methods and return Undefined class - * @param mixed $returnValue the default return value for calls to missing functions on this mock - * @return Mock - */ - public function shouldIgnoreMissing($returnValue = null); - - /** - * @return Mock - */ - public function shouldAllowMockingProtectedMethods(); - - /** - * Set mock to defer unexpected methods to its parent if possible - * - * @return Mock - */ - public function shouldDeferMissing(); - - /** - * Set mock to defer unexpected methods to its parent if possible - * - * @return Mock - */ - public function makePartial(); - - /** - * @param null|string $method - * @param null $args - * @return mixed - */ - public function shouldHaveReceived($method, $args = null); - - /** - * @param null|string $method - * @param null $args - * @return mixed - */ - public function shouldNotHaveReceived($method, $args = null); - - - /** - * In the event shouldReceive() accepting an array of methods/returns - * this method will switch them from normal expectations to default - * expectations - * - * @return self - */ - public function byDefault(); - - /** - * Iterate across all expectation directors and validate each - * - * @throws \Mockery\CountValidator\Exception - * @return void - */ - public function mockery_verify(); - - /** - * Tear down tasks for this mock - * - * @return void - */ - public function mockery_teardown(); - - /** - * Fetch the next available allocation order number - * - * @return int - */ - public function mockery_allocateOrder(); - - /** - * Set ordering for a group - * - * @param mixed $group - * @param int $order - */ - public function mockery_setGroup($group, $order); - - /** - * Fetch array of ordered groups - * - * @return array - */ - public function mockery_getGroups(); - - /** - * Set current ordered number - * - * @param int $order - */ - public function mockery_setCurrentOrder($order); - - /** - * Get current ordered number - * - * @return int - */ - public function mockery_getCurrentOrder(); - - /** - * Validate the current mock's ordering - * - * @param string $method - * @param int $order - * @throws \Mockery\Exception - * @return void - */ - public function mockery_validateOrder($method, $order); - - /** - * Gets the count of expectations for this mock - * - * @return int - */ - public function mockery_getExpectationCount(); - - /** - * Return the expectations director for the given method - * - * @var string $method - * @return \Mockery\ExpectationDirector|null - */ - public function mockery_setExpectationsFor($method, \Mockery\ExpectationDirector $director); - - /** - * Return the expectations director for the given method - * - * @var string $method - * @return \Mockery\ExpectationDirector|null - */ - public function mockery_getExpectationsFor($method); - - /** - * Find an expectation matching the given method and arguments - * - * @var string $method - * @var array $args - * @return \Mockery\Expectation|null - */ - public function mockery_findExpectation($method, array $args); - - /** - * Return the container for this mock - * - * @return \Mockery\Container - */ - public function mockery_getContainer(); - - /** - * Return the name for this mock - * - * @return string - */ - public function mockery_getName(); - - /** - * @return array - */ - public function mockery_getMockableProperties(); - - /** - * @return string[] - */ - public function mockery_getMockableMethods(); - - /** - * @return bool - */ - public function mockery_isAnonymous(); -} diff --git a/vendor/mockery/mockery/library/Mockery/ReceivedMethodCalls.php b/vendor/mockery/mockery/library/Mockery/ReceivedMethodCalls.php deleted file mode 100644 index da771c05..00000000 --- a/vendor/mockery/mockery/library/Mockery/ReceivedMethodCalls.php +++ /dev/null @@ -1,48 +0,0 @@ -methodCalls[] = $methodCall; - } - - public function verify(Expectation $expectation) - { - foreach ($this->methodCalls as $methodCall) { - if ($methodCall->getMethod() !== $expectation->getName()) { - continue; - } - - if (!$expectation->matchArgs($methodCall->getArgs())) { - continue; - } - - $expectation->verifyCall($methodCall->getArgs()); - } - - $expectation->verify(); - } -} diff --git a/vendor/mockery/mockery/library/Mockery/Undefined.php b/vendor/mockery/mockery/library/Mockery/Undefined.php deleted file mode 100644 index 53b05e9c..00000000 --- a/vendor/mockery/mockery/library/Mockery/Undefined.php +++ /dev/null @@ -1,46 +0,0 @@ -receivedMethodCalls = $receivedMethodCalls; - $this->expectation = $expectation; - } - - public function verify() - { - return $this->receivedMethodCalls->verify($this->expectation); - } - - public function with(...$args) - { - return $this->cloneApplyAndVerify("with", $args); - } - - public function withArgs($args) - { - return $this->cloneApplyAndVerify("withArgs", array($args)); - } - - public function withNoArgs() - { - return $this->cloneApplyAndVerify("withNoArgs", array()); - } - - public function withAnyArgs() - { - return $this->cloneApplyAndVerify("withAnyArgs", array()); - } - - public function times($limit = null) - { - return $this->cloneWithoutCountValidatorsApplyAndVerify("times", array($limit)); - } - - public function once() - { - return $this->cloneWithoutCountValidatorsApplyAndVerify("once", array()); - } - - public function twice() - { - return $this->cloneWithoutCountValidatorsApplyAndVerify("twice", array()); - } - - public function atLeast() - { - return $this->cloneWithoutCountValidatorsApplyAndVerify("atLeast", array()); - } - - public function atMost() - { - return $this->cloneWithoutCountValidatorsApplyAndVerify("atMost", array()); - } - - public function between($minimum, $maximum) - { - return $this->cloneWithoutCountValidatorsApplyAndVerify("between", array($minimum, $maximum)); - } - - protected function cloneWithoutCountValidatorsApplyAndVerify($method, $args) - { - $expectation = clone $this->expectation; - $expectation->clearCountValidators(); - call_user_func_array(array($expectation, $method), $args); - $director = new VerificationDirector($this->receivedMethodCalls, $expectation); - $director->verify(); - return $director; - } - - protected function cloneApplyAndVerify($method, $args) - { - $expectation = clone $this->expectation; - call_user_func_array(array($expectation, $method), $args); - $director = new VerificationDirector($this->receivedMethodCalls, $expectation); - $director->verify(); - return $director; - } -} diff --git a/vendor/mockery/mockery/library/Mockery/VerificationExpectation.php b/vendor/mockery/mockery/library/Mockery/VerificationExpectation.php deleted file mode 100644 index 3844a090..00000000 --- a/vendor/mockery/mockery/library/Mockery/VerificationExpectation.php +++ /dev/null @@ -1,35 +0,0 @@ -_countValidators = array(); - } - - public function __clone() - { - parent::__clone(); - $this->_actualCount = 0; - } -} diff --git a/vendor/mockery/mockery/library/helpers.php b/vendor/mockery/mockery/library/helpers.php deleted file mode 100644 index a700d990..00000000 --- a/vendor/mockery/mockery/library/helpers.php +++ /dev/null @@ -1,51 +0,0 @@ - - -> - - - ./tests - ./tests/Mockery/MockingVariadicArgumentsTest.php - ./tests/Mockery/MockingParameterAndReturnTypesTest.php - ./tests/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPassTest.php - ./tests/Mockery/Php72LanguageFeaturesTest.php - ./tests/Mockery/MockingParameterAndReturnTypesTest.php - ./tests/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPassTest.php - ./tests/Mockery/Php72LanguageFeaturesTest.php - - - - - ./library/ - - ./library/Mockery/Adapter/Phpunit/TestListener.php - - - - diff --git a/vendor/mockery/mockery/tests/Bootstrap.php b/vendor/mockery/mockery/tests/Bootstrap.php deleted file mode 100644 index 5da2f672..00000000 --- a/vendor/mockery/mockery/tests/Bootstrap.php +++ /dev/null @@ -1,66 +0,0 @@ -checkMockeryExceptions(); - } - - function markAsRisky() {} -}; - -class MockeryPHPUnitIntegrationTest extends MockeryTestCase -{ - /** - * @test - * @requires PHPUnit 5.7.6 - */ - public function it_marks_a_passing_test_as_risky_if_we_threw_exceptions() - { - $mock = mock(); - try { - $mock->foobar(); - } catch (\Exception $e) { - // exception swallowed... - } - - $test = spy(BaseClassStub::class)->makePartial(); - $test->finish(); - - $test->shouldHaveReceived()->markAsRisky(m::type("string")); - } - - /** - * @test - * @requires PHPUnit 5.7.6 - */ - public function the_user_can_manually_dismiss_an_exception_to_avoid_the_risky_test() - { - $mock = mock(); - try { - $mock->foobar(); - } catch (BadMethodCallException $e) { - $e->dismiss(); - } - - $test = spy(BaseClassStub::class)->makePartial(); - $test->finish(); - - $test->shouldNotHaveReceived()->markAsRisky(m::any()); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Adapter/Phpunit/TestListenerTest.php b/vendor/mockery/mockery/tests/Mockery/Adapter/Phpunit/TestListenerTest.php deleted file mode 100644 index fda081cb..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Adapter/Phpunit/TestListenerTest.php +++ /dev/null @@ -1,94 +0,0 @@ -markTestSkipped('The TestListener is only supported with PHPUnit 6+.'); - return; - } - // We intentionally test the static container here. That is what the - // listener will check. - $this->container = \Mockery::getContainer(); - $this->listener = new TestListener(); - $this->testResult = new TestResult(); - $this->test = new EmptyTestCase(); - - $this->test->setTestResultObject($this->testResult); - $this->testResult->addListener($this->listener); - - $this->assertTrue($this->testResult->wasSuccessful(), 'sanity check: empty test results should be considered successful'); - } - - public function testSuccessOnClose() - { - $mock = $this->container->mock(); - $mock->shouldReceive('bar')->once(); - $mock->bar(); - - // This is what MockeryPHPUnitIntegration and MockeryTestCase trait - // will do. We intentionally call the static close method. - $this->test->addToAssertionCount($this->container->mockery_getExpectationCount()); - \Mockery::close(); - - $this->listener->endTest($this->test, 0); - $this->assertTrue($this->testResult->wasSuccessful(), 'expected test result to indicate success'); - } - - public function testFailureOnMissingClose() - { - $mock = $this->container->mock(); - $mock->shouldReceive('bar')->once(); - - $this->listener->endTest($this->test, 0); - $this->assertFalse($this->testResult->wasSuccessful(), 'expected test result to indicate failure'); - - // Satisfy the expectation and close the global container now so we - // don't taint the environment. - $mock->bar(); - \Mockery::close(); - } -} - -class EmptyTestCase extends TestCase -{ - public function getStatus() - { - return BaseTestRunner::STATUS_PASSED; - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/AdhocTest.php b/vendor/mockery/mockery/tests/Mockery/AdhocTest.php deleted file mode 100644 index 2da4338c..00000000 --- a/vendor/mockery/mockery/tests/Mockery/AdhocTest.php +++ /dev/null @@ -1,119 +0,0 @@ -container = new \Mockery\Container(\Mockery::getDefaultGenerator(), \Mockery::getDefaultLoader()); - } - - public function teardown() - { - $this->container->mockery_close(); - } - - public function testSimplestMockCreation() - { - $m = $this->container->mock('MockeryTest_NameOfExistingClass'); - $this->assertTrue($m instanceof MockeryTest_NameOfExistingClass); - } - - public function testMockeryInterfaceForClass() - { - $m = $this->container->mock('SplFileInfo'); - $this->assertTrue($m instanceof \Mockery\MockInterface); - } - - public function testMockeryInterfaceForNonExistingClass() - { - $m = $this->container->mock('ABC_IDontExist'); - $this->assertTrue($m instanceof \Mockery\MockInterface); - } - - public function testMockeryInterfaceForInterface() - { - $m = $this->container->mock('MockeryTest_NameOfInterface'); - $this->assertTrue($m instanceof \Mockery\MockInterface); - } - - public function testMockeryInterfaceForAbstract() - { - $m = $this->container->mock('MockeryTest_NameOfAbstract'); - $this->assertTrue($m instanceof \Mockery\MockInterface); - } - - public function testInvalidCountExceptionThrowsRuntimeExceptionOnIllegalComparativeSymbol() - { - $this->expectException('Mockery\Exception\RuntimeException'); - $e = new \Mockery\Exception\InvalidCountException; - $e->setExpectedCountComparative('X'); - } - - public function testMockeryConstructAndDestructIsNotCalled() - { - MockeryTest_NameOfExistingClassWithDestructor::$isDestructorWasCalled = false; - // We pass no arguments in constructor, so it's not being called. Then destructor shouldn't be called too. - $this->container->mock('MockeryTest_NameOfExistingClassWithDestructor'); - // Clear references to trigger destructor - $this->container->mockery_close(); - $this->assertFalse(MockeryTest_NameOfExistingClassWithDestructor::$isDestructorWasCalled); - } - - public function testMockeryConstructAndDestructIsCalled() - { - MockeryTest_NameOfExistingClassWithDestructor::$isDestructorWasCalled = false; - - $this->container->mock('MockeryTest_NameOfExistingClassWithDestructor', array()); - // Clear references to trigger destructor - $this->container->mockery_close(); - $this->assertTrue(MockeryTest_NameOfExistingClassWithDestructor::$isDestructorWasCalled); - } -} - -class MockeryTest_NameOfExistingClass -{ -} - -interface MockeryTest_NameOfInterface -{ - public function foo(); -} - -abstract class MockeryTest_NameOfAbstract -{ - abstract public function foo(); -} - -class MockeryTest_NameOfExistingClassWithDestructor -{ - public static $isDestructorWasCalled = false; - - public function __destruct() - { - self::$isDestructorWasCalled = true; - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/AllowsExpectsSyntaxTest.php b/vendor/mockery/mockery/tests/Mockery/AllowsExpectsSyntaxTest.php deleted file mode 100644 index d7492f37..00000000 --- a/vendor/mockery/mockery/tests/Mockery/AllowsExpectsSyntaxTest.php +++ /dev/null @@ -1,111 +0,0 @@ -allows()->foo(123)->andReturns(456); - - $this->assertEquals(456, $stub->foo(123)); - } - - /** @test */ - public function allowsCanTakeAnArrayOfCalls() - { - $stub = m::mock(); - $stub->allows([ - "foo" => "bar", - "bar" => "baz", - ]); - - $this->assertEquals("bar", $stub->foo()); - $this->assertEquals("baz", $stub->bar()); - } - - /** @test */ - public function allowsCanTakeAString() - { - $stub = m::mock(); - $stub->allows("foo")->andReturns("bar"); - $this->assertEquals("bar", $stub->foo()); - } - - /** @test */ - public function expects_can_optionally_match_on_any_arguments() - { - $mock = m::mock(); - $mock->allows()->foo()->withAnyArgs()->andReturns(123); - - $this->assertEquals(123, $mock->foo(456, 789)); - } - - /** @test */ - public function expects_can_take_a_string() - { - $mock = m::mock(); - $mock->expects("foo")->andReturns(123); - - $this->assertEquals(123, $mock->foo(456, 789)); - } - - /** @test */ - public function expectsSetsUpExpectationOfOneCall() - { - $mock = m::mock(); - $mock->expects()->foo(123); - - $this->expectException("Mockery\Exception\InvalidCountException"); - m::close(); - } - - /** @test */ - public function callVerificationCountCanBeOverridenAfterExpectsThrowsExceptionWhenIncorrectNumberOfCalls() - { - $mock = m::mock(); - $mock->expects()->foo(123)->twice(); - - $mock->foo(123); - $this->expectException("Mockery\Exception\InvalidCountException"); - m::close(); - } - - /** @test */ - public function callVerificationCountCanBeOverridenAfterExpects() - { - $mock = m::mock(); - $mock->expects()->foo(123)->twice(); - - $mock->foo(123); - $mock->foo(123); - - m::close(); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/ContainerTest.php b/vendor/mockery/mockery/tests/Mockery/ContainerTest.php deleted file mode 100644 index c8aa55b3..00000000 --- a/vendor/mockery/mockery/tests/Mockery/ContainerTest.php +++ /dev/null @@ -1,1804 +0,0 @@ -shouldReceive('foo')->andReturn('bar'); - $this->assertEquals('bar', $m->foo()); - } - - public function testGetKeyOfDemeterMockShouldReturnKeyWhenMatchingMock() - { - $m = mock(); - $m->shouldReceive('foo->bar'); - $this->assertRegExp( - '/Mockery_(\d+)__demeter_foo/', - Mockery::getContainer()->getKeyOfDemeterMockFor('foo') - ); - } - public function testGetKeyOfDemeterMockShouldReturnNullWhenNoMatchingMock() - { - $method = 'unknownMethod'; - $this->assertNull(Mockery::getContainer()->getKeyOfDemeterMockFor($method)); - - $m = mock(); - $m->shouldReceive('method'); - $this->assertNull(Mockery::getContainer()->getKeyOfDemeterMockFor($method)); - - $m->shouldReceive('foo->bar'); - $this->assertNull(Mockery::getContainer()->getKeyOfDemeterMockFor($method)); - } - - - public function testNamedMocksAddNameToExceptions() - { - $m = mock('Foo'); - $m->shouldReceive('foo')->with(1)->andReturn('bar'); - try { - $m->foo(); - } catch (\Mockery\Exception $e) { - $this->assertTrue((bool) preg_match("/Foo/", $e->getMessage())); - } - } - - public function testSimpleMockWithArrayDefs() - { - $m = mock(array('foo'=>1, 'bar'=>2)); - $this->assertEquals(1, $m->foo()); - $this->assertEquals(2, $m->bar()); - } - - public function testSimpleMockWithArrayDefsCanBeOverridden() - { - // eg. In shared test setup - $m = mock(array('foo' => 1, 'bar' => 2)); - - // and then overridden in one test - $m->shouldReceive('foo')->with('baz')->once()->andReturn(2); - $m->shouldReceive('bar')->with('baz')->once()->andReturn(42); - - $this->assertEquals(2, $m->foo('baz')); - $this->assertEquals(42, $m->bar('baz')); - } - - public function testNamedMockWithArrayDefs() - { - $m = mock('Foo', array('foo'=>1, 'bar'=>2)); - $this->assertEquals(1, $m->foo()); - $this->assertEquals(2, $m->bar()); - try { - $m->f(); - } catch (BadMethodCallException $e) { - $this->assertTrue((bool) preg_match("/Foo/", $e->getMessage())); - } - } - - public function testNamedMockWithArrayDefsCanBeOverridden() - { - // eg. In shared test setup - $m = mock('Foo', array('foo' => 1)); - - // and then overridden in one test - $m->shouldReceive('foo')->with('bar')->once()->andReturn(2); - - $this->assertEquals(2, $m->foo('bar')); - - try { - $m->f(); - } catch (BadMethodCallException $e) { - $this->assertTrue((bool) preg_match("/Foo/", $e->getMessage())); - } - } - - public function testNamedMockMultipleInterfaces() - { - $m = mock('stdClass, ArrayAccess, Countable', array('foo'=>1, 'bar'=>2)); - $this->assertEquals(1, $m->foo()); - $this->assertEquals(2, $m->bar()); - try { - $m->f(); - } catch (BadMethodCallException $e) { - $this->assertTrue((bool) preg_match("/stdClass/", $e->getMessage())); - $this->assertTrue((bool) preg_match("/ArrayAccess/", $e->getMessage())); - $this->assertTrue((bool) preg_match("/Countable/", $e->getMessage())); - } - } - - public function testNamedMockWithConstructorArgs() - { - $m = mock("MockeryTest_ClassConstructor2[foo]", array($param1 = new stdClass())); - $m->shouldReceive("foo")->andReturn(123); - $this->assertEquals(123, $m->foo()); - $this->assertEquals($param1, $m->getParam1()); - } - - public function testNamedMockWithConstructorArgsAndArrayDefs() - { - $m = mock( - "MockeryTest_ClassConstructor2[foo]", - array($param1 = new stdClass()), - array("foo" => 123) - ); - $this->assertEquals(123, $m->foo()); - $this->assertEquals($param1, $m->getParam1()); - } - - public function testNamedMockWithConstructorArgsWithInternalCallToMockedMethod() - { - $m = mock("MockeryTest_ClassConstructor2[foo]", array($param1 = new stdClass())); - $m->shouldReceive("foo")->andReturn(123); - $this->assertEquals(123, $m->bar()); - } - - public function testNamedMockWithConstructorArgsButNoQuickDefsShouldLeaveConstructorIntact() - { - $m = mock("MockeryTest_ClassConstructor2", array($param1 = new stdClass())); - $m->shouldDeferMissing(); - $this->assertEquals($param1, $m->getParam1()); - } - - public function testNamedMockWithShouldDeferMissing() - { - $m = mock("MockeryTest_ClassConstructor2", array($param1 = new stdClass())); - $m->shouldDeferMissing(); - $this->assertEquals('foo', $m->bar()); - $m->shouldReceive("bar")->andReturn(123); - $this->assertEquals(123, $m->bar()); - } - - /** - * @expectedException BadMethodCallException - */ - public function testNamedMockWithShouldDeferMissingThrowsIfNotAvailable() - { - $m = mock("MockeryTest_ClassConstructor2", array($param1 = new stdClass())); - $m->shouldDeferMissing(); - $m->foorbar123(); - $m->mockery_verify(); - } - - public function testMockingAKnownConcreteClassSoMockInheritsClassType() - { - $m = mock('stdClass'); - $m->shouldReceive('foo')->andReturn('bar'); - $this->assertEquals('bar', $m->foo()); - $this->assertTrue($m instanceof stdClass); - } - - public function testMockingAKnownUserClassSoMockInheritsClassType() - { - $m = mock('MockeryTest_TestInheritedType'); - $this->assertTrue($m instanceof MockeryTest_TestInheritedType); - } - - public function testMockingAConcreteObjectCreatesAPartialWithoutError() - { - $m = mock(new stdClass); - $m->shouldReceive('foo')->andReturn('bar'); - $this->assertEquals('bar', $m->foo()); - $this->assertTrue($m instanceof stdClass); - } - - public function testCreatingAPartialAllowsDynamicExpectationsAndPassesThroughUnexpectedMethods() - { - $m = mock(new MockeryTestFoo); - $m->shouldReceive('bar')->andReturn('bar'); - $this->assertEquals('bar', $m->bar()); - $this->assertEquals('foo', $m->foo()); - $this->assertTrue($m instanceof MockeryTestFoo); - } - - public function testCreatingAPartialAllowsExpectationsToInterceptCallsToImplementedMethods() - { - $m = mock(new MockeryTestFoo2); - $m->shouldReceive('bar')->andReturn('baz'); - $this->assertEquals('baz', $m->bar()); - $this->assertEquals('foo', $m->foo()); - $this->assertTrue($m instanceof MockeryTestFoo2); - } - - public function testBlockForwardingToPartialObject() - { - $m = mock(new MockeryTestBar1, array('foo'=>1, Mockery\Container::BLOCKS => array('method1'))); - $this->assertSame($m, $m->method1()); - } - - public function testPartialWithArrayDefs() - { - $m = mock(new MockeryTestBar1, array('foo'=>1, Mockery\Container::BLOCKS => array('method1'))); - $this->assertEquals(1, $m->foo()); - } - - public function testPassingClosureAsFinalParameterUsedToDefineExpectations() - { - $m = mock('foo', function ($m) { - $m->shouldReceive('foo')->once()->andReturn('bar'); - }); - $this->assertEquals('bar', $m->foo()); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testMockingAKnownConcreteFinalClassThrowsErrors_OnlyPartialMocksCanMockFinalElements() - { - $m = mock('MockeryFoo3'); - } - - public function testMockingAKnownConcreteClassWithFinalMethodsThrowsNoException() - { - $this->assertInstanceOf(MockInterface::class, mock('MockeryFoo4')); - } - - /** - * @group finalclass - */ - public function testFinalClassesCanBePartialMocks() - { - $m = mock(new MockeryFoo3); - $m->shouldReceive('foo')->andReturn('baz'); - $this->assertEquals('baz', $m->foo()); - $this->assertFalse($m instanceof MockeryFoo3); - } - - public function testSplClassWithFinalMethodsCanBeMocked() - { - $m = mock('SplFileInfo'); - $m->shouldReceive('foo')->andReturn('baz'); - $this->assertEquals('baz', $m->foo()); - $this->assertTrue($m instanceof SplFileInfo); - } - - public function testSplClassWithFinalMethodsCanBeMockedMultipleTimes() - { - mock('SplFileInfo'); - $m = mock('SplFileInfo'); - $m->shouldReceive('foo')->andReturn('baz'); - $this->assertEquals('baz', $m->foo()); - $this->assertTrue($m instanceof SplFileInfo); - } - - public function testClassesWithFinalMethodsCanBeProxyPartialMocks() - { - $m = mock(new MockeryFoo4); - $m->shouldReceive('foo')->andReturn('baz'); - $this->assertEquals('baz', $m->foo()); - $this->assertEquals('bar', $m->bar()); - $this->assertTrue($m instanceof MockeryFoo4); - } - - public function testClassesWithFinalMethodsCanBeProperPartialMocks() - { - $m = mock('MockeryFoo4[bar]'); - $m->shouldReceive('bar')->andReturn('baz'); - $this->assertEquals('baz', $m->foo()); - $this->assertEquals('baz', $m->bar()); - $this->assertTrue($m instanceof MockeryFoo4); - } - - public function testClassesWithFinalMethodsCanBeProperPartialMocksButFinalMethodsNotPartialed() - { - $m = mock('MockeryFoo4[foo]'); - $m->shouldReceive('foo')->andReturn('foo'); - $this->assertEquals('baz', $m->foo()); // partial expectation ignored - will fail callcount assertion - $this->assertTrue($m instanceof MockeryFoo4); - } - - public function testSplfileinfoClassMockPassesUserExpectations() - { - $file = mock('SplFileInfo[getFilename,getPathname,getExtension,getMTime]', array(__FILE__)); - $file->shouldReceive('getFilename')->once()->andReturn('foo'); - $file->shouldReceive('getPathname')->once()->andReturn('path/to/foo'); - $file->shouldReceive('getExtension')->once()->andReturn('css'); - $file->shouldReceive('getMTime')->once()->andReturn(time()); - - // not sure what this test is for, maybe something special about - // SplFileInfo - $this->assertEquals('foo', $file->getFilename()); - $this->assertEquals('path/to/foo', $file->getPathname()); - $this->assertEquals('css', $file->getExtension()); - $this->assertInternalType('int', $file->getMTime()); - } - - public function testCanMockInterface() - { - $m = mock('MockeryTest_Interface'); - $this->assertTrue($m instanceof MockeryTest_Interface); - } - - public function testCanMockSpl() - { - $m = mock('\\SplFixedArray'); - $this->assertTrue($m instanceof SplFixedArray); - } - - public function testCanMockInterfaceWithAbstractMethod() - { - $m = mock('MockeryTest_InterfaceWithAbstractMethod'); - $this->assertTrue($m instanceof MockeryTest_InterfaceWithAbstractMethod); - $m->shouldReceive('foo')->andReturn(1); - $this->assertEquals(1, $m->foo()); - } - - public function testCanMockAbstractWithAbstractProtectedMethod() - { - $m = mock('MockeryTest_AbstractWithAbstractMethod'); - $this->assertTrue($m instanceof MockeryTest_AbstractWithAbstractMethod); - } - - public function testCanMockInterfaceWithPublicStaticMethod() - { - $m = mock('MockeryTest_InterfaceWithPublicStaticMethod'); - $this->assertTrue($m instanceof MockeryTest_InterfaceWithPublicStaticMethod); - } - - public function testCanMockClassWithConstructor() - { - $m = mock('MockeryTest_ClassConstructor'); - $this->assertTrue($m instanceof MockeryTest_ClassConstructor); - } - - public function testCanMockClassWithConstructorNeedingClassArgs() - { - $m = mock('MockeryTest_ClassConstructor2'); - $this->assertTrue($m instanceof MockeryTest_ClassConstructor2); - } - - /** - * @group partial - */ - public function testCanPartiallyMockANormalClass() - { - $m = mock('MockeryTest_PartialNormalClass[foo]'); - $this->assertTrue($m instanceof MockeryTest_PartialNormalClass); - $m->shouldReceive('foo')->andReturn('cba'); - $this->assertEquals('abc', $m->bar()); - $this->assertEquals('cba', $m->foo()); - } - - /** - * @group partial - */ - public function testCanPartiallyMockAnAbstractClass() - { - $m = mock('MockeryTest_PartialAbstractClass[foo]'); - $this->assertTrue($m instanceof MockeryTest_PartialAbstractClass); - $m->shouldReceive('foo')->andReturn('cba'); - $this->assertEquals('abc', $m->bar()); - $this->assertEquals('cba', $m->foo()); - } - - /** - * @group partial - */ - public function testCanPartiallyMockANormalClassWith2Methods() - { - $m = mock('MockeryTest_PartialNormalClass2[foo, baz]'); - $this->assertTrue($m instanceof MockeryTest_PartialNormalClass2); - $m->shouldReceive('foo')->andReturn('cba'); - $m->shouldReceive('baz')->andReturn('cba'); - $this->assertEquals('abc', $m->bar()); - $this->assertEquals('cba', $m->foo()); - $this->assertEquals('cba', $m->baz()); - } - - /** - * @group partial - */ - public function testCanPartiallyMockAnAbstractClassWith2Methods() - { - $m = mock('MockeryTest_PartialAbstractClass2[foo,baz]'); - $this->assertTrue($m instanceof MockeryTest_PartialAbstractClass2); - $m->shouldReceive('foo')->andReturn('cba'); - $m->shouldReceive('baz')->andReturn('cba'); - $this->assertEquals('abc', $m->bar()); - $this->assertEquals('cba', $m->foo()); - $this->assertEquals('cba', $m->baz()); - } - - /** - * @expectedException \Mockery\Exception - * @group partial - */ - public function testThrowsExceptionIfSettingExpectationForNonMockedMethodOfPartialMock() - { - $this->markTestSkipped('For now...'); - $m = mock('MockeryTest_PartialNormalClass[foo]'); - $this->assertTrue($m instanceof MockeryTest_PartialNormalClass); - $m->shouldReceive('bar')->andReturn('cba'); - } - - /** - * @expectedException \Mockery\Exception - * @group partial - */ - public function testThrowsExceptionIfClassOrInterfaceForPartialMockDoesNotExist() - { - $m = mock('MockeryTest_PartialNormalClassXYZ[foo]'); - } - - /** - * @group issue/4 - */ - public function testCanMockClassContainingMagicCallMethod() - { - $m = mock('MockeryTest_Call1'); - $this->assertTrue($m instanceof MockeryTest_Call1); - } - - /** - * @group issue/4 - */ - public function testCanMockClassContainingMagicCallMethodWithoutTypeHinting() - { - $m = mock('MockeryTest_Call2'); - $this->assertTrue($m instanceof MockeryTest_Call2); - } - - /** - * @group issue/14 - */ - public function testCanMockClassContainingAPublicWakeupMethod() - { - $m = mock('MockeryTest_Wakeup1'); - $this->assertTrue($m instanceof MockeryTest_Wakeup1); - } - - /** - * @group issue/18 - */ - public function testCanMockClassUsingMagicCallMethodsInPlaceOfNormalMethods() - { - $m = Mockery::mock('Gateway'); - $m->shouldReceive('iDoSomethingReallyCoolHere'); - $m->iDoSomethingReallyCoolHere(); - } - - /** - * @group issue/18 - */ - public function testCanPartialMockObjectUsingMagicCallMethodsInPlaceOfNormalMethods() - { - $m = Mockery::mock(new Gateway); - $m->shouldReceive('iDoSomethingReallyCoolHere'); - $m->iDoSomethingReallyCoolHere(); - } - - /** - * @group issue/13 - */ - public function testCanMockClassWhereMethodHasReferencedParameter() - { - $this->assertInstanceOf(MockInterface::class, Mockery::mock(new MockeryTest_MethodParamRef)); - } - - /** - * @group issue/13 - */ - public function testCanPartiallyMockObjectWhereMethodHasReferencedParameter() - { - $this->assertInstanceOf(MockInterface::class, Mockery::mock(new MockeryTest_MethodParamRef2)); - } - - /** - * @group issue/11 - */ - public function testMockingAKnownConcreteClassCanBeGrantedAnArbitraryClassType() - { - $m = mock('alias:MyNamespace\MyClass'); - $m->shouldReceive('foo')->andReturn('bar'); - $this->assertEquals('bar', $m->foo()); - $this->assertTrue($m instanceof MyNamespace\MyClass); - } - - /** - * @group issue/15 - */ - public function testCanMockMultipleInterfaces() - { - $m = mock('MockeryTest_Interface1, MockeryTest_Interface2'); - $this->assertTrue($m instanceof MockeryTest_Interface1); - $this->assertTrue($m instanceof MockeryTest_Interface2); - } - - /** - */ - public function testCanMockMultipleInterfacesThatMayNotExist() - { - $m = mock('NonExistingClass, MockeryTest_Interface1, MockeryTest_Interface2, \Some\Thing\That\Doesnt\Exist'); - $this->assertTrue($m instanceof MockeryTest_Interface1); - $this->assertTrue($m instanceof MockeryTest_Interface2); - $this->assertTrue($m instanceof \Some\Thing\That\Doesnt\Exist); - } - - /** - * @group issue/15 - */ - public function testCanMockClassAndApplyMultipleInterfaces() - { - $m = mock('MockeryTestFoo, MockeryTest_Interface1, MockeryTest_Interface2'); - $this->assertTrue($m instanceof MockeryTestFoo); - $this->assertTrue($m instanceof MockeryTest_Interface1); - $this->assertTrue($m instanceof MockeryTest_Interface2); - } - - /** - * @group issue/7 - * - * Noted: We could complicate internally, but a blind class is better built - * with a real class noted up front (stdClass is a perfect choice it is - * behaviourless). Fine, it's a muddle - but we need to draw a line somewhere. - */ - public function testCanMockStaticMethods() - { - $m = mock('alias:MyNamespace\MyClass2'); - $m->shouldReceive('staticFoo')->andReturn('bar'); - $this->assertEquals('bar', \MyNameSpace\MyClass2::staticFoo()); - } - - /** - * @group issue/7 - * @expectedException \Mockery\CountValidator\Exception - */ - public function testMockedStaticMethodsObeyMethodCounting() - { - $m = mock('alias:MyNamespace\MyClass3'); - $m->shouldReceive('staticFoo')->once()->andReturn('bar'); - Mockery::close(); - } - - /** - */ - public function testMockedStaticThrowsExceptionWhenMethodDoesNotExist() - { - $m = mock('alias:MyNamespace\StaticNoMethod'); - try { - MyNameSpace\StaticNoMethod::staticFoo(); - } catch (BadMethodCallException $e) { - // Mockery + PHPUnit has a fail safe for tests swallowing our - // exceptions - $e->dismiss(); - return; - } - - $this->fail('Exception was not thrown'); - } - - /** - * @group issue/17 - */ - public function testMockingAllowsPublicPropertyStubbingOnRealClass() - { - $m = mock('MockeryTestFoo'); - $m->foo = 'bar'; - $this->assertEquals('bar', $m->foo); - //$this->assertTrue(array_key_exists('foo', $m->mockery_getMockableProperties())); - } - - /** - * @group issue/17 - */ - public function testMockingAllowsPublicPropertyStubbingOnNamedMock() - { - $m = mock('Foo'); - $m->foo = 'bar'; - $this->assertEquals('bar', $m->foo); - //$this->assertTrue(array_key_exists('foo', $m->mockery_getMockableProperties())); - } - - /** - * @group issue/17 - */ - public function testMockingAllowsPublicPropertyStubbingOnPartials() - { - $m = mock(new stdClass); - $m->foo = 'bar'; - $this->assertEquals('bar', $m->foo); - //$this->assertTrue(array_key_exists('foo', $m->mockery_getMockableProperties())); - } - - /** - * @group issue/17 - */ - public function testMockingDoesNotStubNonStubbedPropertiesOnPartials() - { - $m = mock(new MockeryTest_ExistingProperty); - $this->assertEquals('bar', $m->foo); - $this->assertFalse(array_key_exists('foo', $m->mockery_getMockableProperties())); - } - - public function testCreationOfInstanceMock() - { - $m = mock('overload:MyNamespace\MyClass4'); - $this->assertTrue($m instanceof MyNamespace\MyClass4); - } - - public function testInstantiationOfInstanceMock() - { - $m = mock('overload:MyNamespace\MyClass5'); - $instance = new MyNamespace\MyClass5; - $this->assertTrue($instance instanceof MyNamespace\MyClass5); - } - - public function testInstantiationOfInstanceMockImportsExpectations() - { - $m = mock('overload:MyNamespace\MyClass6'); - $m->shouldReceive('foo')->andReturn('bar'); - $instance = new MyNamespace\MyClass6; - $this->assertEquals('bar', $instance->foo()); - } - - public function testInstantiationOfInstanceMockImportsDefaultExpectations() - { - $m = mock('overload:MyNamespace\MyClass6'); - $m->shouldReceive('foo')->andReturn('bar')->byDefault(); - $instance = new MyNamespace\MyClass6; - - $this->assertEquals('bar', $instance->foo()); - - } - - public function testInstantiationOfInstanceMockImportsDefaultExpectationsInTheCorrectOrder() - { - $m = mock('overload:MyNamespace\MyClass6'); - $m->shouldReceive('foo')->andReturn(1)->byDefault(); - $m->shouldReceive('foo')->andReturn(2)->byDefault(); - $m->shouldReceive('foo')->andReturn(3)->byDefault(); - $instance = new MyNamespace\MyClass6; - - $this->assertEquals(3, $instance->foo()); - - } - - public function testInstantiationOfInstanceMocksIgnoresVerificationOfOriginMock() - { - $m = mock('overload:MyNamespace\MyClass7'); - $m->shouldReceive('foo')->once()->andReturn('bar'); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testInstantiationOfInstanceMocksAddsThemToContainerForVerification() - { - $m = mock('overload:MyNamespace\MyClass8'); - $m->shouldReceive('foo')->once(); - $instance = new MyNamespace\MyClass8; - Mockery::close(); - } - - public function testInstantiationOfInstanceMocksDoesNotHaveCountValidatorCrossover() - { - $m = mock('overload:MyNamespace\MyClass9'); - $m->shouldReceive('foo')->once(); - $instance1 = new MyNamespace\MyClass9; - $instance2 = new MyNamespace\MyClass9; - $instance1->foo(); - $instance2->foo(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testInstantiationOfInstanceMocksDoesNotHaveCountValidatorCrossover2() - { - $m = mock('overload:MyNamespace\MyClass10'); - $m->shouldReceive('foo')->once(); - $instance1 = new MyNamespace\MyClass10; - $instance2 = new MyNamespace\MyClass10; - $instance1->foo(); - Mockery::close(); - } - - public function testCreationOfInstanceMockWithFullyQualifiedName() - { - $m = mock('overload:\MyNamespace\MyClass11'); - $this->assertTrue($m instanceof MyNamespace\MyClass11); - } - - public function testInstanceMocksShouldIgnoreMissing() - { - $m = mock('overload:MyNamespace\MyClass12'); - $m->shouldIgnoreMissing(); - - $instance = new MyNamespace\MyClass12(); - $this->assertNull($instance->foo()); - } - - /** - * @group issue/451 - */ - public function testSettingPropertyOnInstanceMockWillSetItOnActualInstance() - { - $m = mock('overload:MyNamespace\MyClass13'); - $m->shouldReceive('foo')->andSet('bar', 'baz'); - $instance = new MyNamespace\MyClass13; - $instance->foo(); - $this->assertEquals('baz', $m->bar); - $this->assertEquals('baz', $instance->bar); - } - - public function testMethodParamsPassedByReferenceHaveReferencePreserved() - { - $m = mock('MockeryTestRef1'); - $m->shouldReceive('foo')->with( - Mockery::on(function (&$a) { - $a += 1; - return true; - }), - Mockery::any() - ); - $a = 1; - $b = 1; - $m->foo($a, $b); - $this->assertEquals(2, $a); - $this->assertEquals(1, $b); - } - - public function testMethodParamsPassedByReferenceThroughWithArgsHaveReferencePreserved() - { - $m = mock('MockeryTestRef1'); - $m->shouldReceive('foo')->withArgs(function (&$a, $b) { - $a += 1; - $b += 1; - return true; - }); - $a = 1; - $b = 1; - $m->foo($a, $b); - $this->assertEquals(2, $a); - $this->assertEquals(1, $b); - } - - /** - * Meant to test the same logic as - * testCanOverrideExpectedParametersOfExtensionPHPClassesToPreserveRefs, - * but: - * - doesn't require an extension - * - isn't actually known to be used - */ - public function testCanOverrideExpectedParametersOfInternalPHPClassesToPreserveRefs() - { - Mockery::getConfiguration()->setInternalClassMethodParamMap( - 'DateTime', 'modify', array('&$string') - ); - // @ used to avoid E_STRICT for incompatible signature - @$m = mock('DateTime'); - $this->assertInstanceOf("Mockery\MockInterface", $m, "Mocking failed, remove @ error suppresion to debug"); - $m->shouldReceive('modify')->with( - Mockery::on(function (&$string) { - $string = 'foo'; - return true; - }) - ); - $data ='bar'; - $m->modify($data); - $this->assertEquals('foo', $data); - Mockery::getConfiguration()->resetInternalClassMethodParamMaps(); - } - - /** - * Real world version of - * testCanOverrideExpectedParametersOfInternalPHPClassesToPreserveRefs - */ - public function testCanOverrideExpectedParametersOfExtensionPHPClassesToPreserveRefs() - { - if (!class_exists('MongoCollection', false)) { - $this->markTestSkipped('ext/mongo not installed'); - } - Mockery::getConfiguration()->setInternalClassMethodParamMap( - 'MongoCollection', 'insert', array('&$data', '$options') - ); - // @ used to avoid E_STRICT for incompatible signature - @$m = mock('MongoCollection'); - $this->assertInstanceOf("Mockery\MockInterface", $m, "Mocking failed, remove @ error suppresion to debug"); - $m->shouldReceive('insert')->with( - Mockery::on(function (&$data) { - $data['_id'] = 123; - return true; - }), - Mockery::type('array') - ); - $data = array('a'=>1,'b'=>2); - $m->insert($data, array()); - $this->assertTrue(isset($data['_id'])); - $this->assertEquals(123, $data['_id']); - Mockery::getConfiguration()->resetInternalClassMethodParamMaps(); - } - - public function testCanCreateNonOverridenInstanceOfPreviouslyOverridenInternalClasses() - { - Mockery::getConfiguration()->setInternalClassMethodParamMap( - 'DateTime', 'modify', array('&$string') - ); - // @ used to avoid E_STRICT for incompatible signature - @$m = mock('DateTime'); - $this->assertInstanceOf("Mockery\MockInterface", $m, "Mocking failed, remove @ error suppresion to debug"); - $rc = new ReflectionClass($m); - $rm = $rc->getMethod('modify'); - $params = $rm->getParameters(); - $this->assertTrue($params[0]->isPassedByReference()); - - Mockery::getConfiguration()->resetInternalClassMethodParamMaps(); - - $m = mock('DateTime'); - $this->assertInstanceOf("Mockery\MockInterface", $m, "Mocking failed"); - $rc = new ReflectionClass($m); - $rm = $rc->getMethod('modify'); - $params = $rm->getParameters(); - $this->assertFalse($params[0]->isPassedByReference()); - - Mockery::getConfiguration()->resetInternalClassMethodParamMaps(); - } - - /** - * @group abstract - */ - public function testCanMockAbstractClassWithAbstractPublicMethod() - { - $m = mock('MockeryTest_AbstractWithAbstractPublicMethod'); - $this->assertTrue($m instanceof MockeryTest_AbstractWithAbstractPublicMethod); - } - - /** - * @issue issue/21 - */ - public function testClassDeclaringIssetDoesNotThrowException() - { - $this->assertInstanceOf(MockInterface::class, mock('MockeryTest_IssetMethod')); - } - - /** - * @issue issue/21 - */ - public function testClassDeclaringUnsetDoesNotThrowException() - { - $this->assertInstanceOf(MockInterface::class, mock('MockeryTest_UnsetMethod')); - } - - /** - * @issue issue/35 - */ - public function testCallingSelfOnlyReturnsLastMockCreatedOrCurrentMockBeingProgrammedSinceTheyAreOneAndTheSame() - { - $m = mock('MockeryTestFoo'); - $this->assertFalse(Mockery::self() instanceof MockeryTestFoo2); - //$m = mock('MockeryTestFoo2'); - //$this->assertTrue(self() instanceof MockeryTestFoo2); - //$m = mock('MockeryTestFoo'); - //$this->assertFalse(Mockery::self() instanceof MockeryTestFoo2); - //$this->assertTrue(Mockery::self() instanceof MockeryTestFoo); - } - - /** - * @issue issue/89 - */ - public function testCreatingMockOfClassWithExistingToStringMethodDoesntCreateClassWithTwoToStringMethods() - { - $m = mock('MockeryTest_WithToString'); // this would fatal - $m->shouldReceive("__toString")->andReturn('dave'); - $this->assertEquals("dave", "$m"); - } - - public function testGetExpectationCount_freshContainer() - { - $this->assertEquals(0, Mockery::getContainer()->mockery_getExpectationCount()); - } - - public function testGetExpectationCount_simplestMock() - { - $m = mock(); - $m->shouldReceive('foo')->andReturn('bar'); - $this->assertEquals(1, Mockery::getContainer()->mockery_getExpectationCount()); - } - - public function testMethodsReturningParamsByReferenceDoesNotErrorOut() - { - mock('MockeryTest_ReturnByRef'); - $mock = mock('MockeryTest_ReturnByRef'); - $mock->shouldReceive("get")->andReturn($var = 123); - $this->assertSame($var, $mock->get()); - } - - - public function testMockCallableTypeHint() - { - $this->assertInstanceOf(MockInterface::class, mock('MockeryTest_MockCallableTypeHint')); - } - - public function testCanMockClassWithReservedWordMethod() - { - if (!extension_loaded("redis")) { - $this->markTestSkipped("phpredis not installed"); - } - - mock("Redis"); - } - - public function testUndeclaredClassIsDeclared() - { - $this->assertFalse(class_exists("BlahBlah")); - $mock = mock("BlahBlah"); - $this->assertInstanceOf("BlahBlah", $mock); - } - - public function testUndeclaredClassWithNamespaceIsDeclared() - { - $this->assertFalse(class_exists("MyClasses\Blah\BlahBlah")); - $mock = mock("MyClasses\Blah\BlahBlah"); - $this->assertInstanceOf("MyClasses\Blah\BlahBlah", $mock); - } - - public function testUndeclaredClassWithNamespaceIncludingLeadingOperatorIsDeclared() - { - $this->assertFalse(class_exists("\MyClasses\DaveBlah\BlahBlah")); - $mock = mock("\MyClasses\DaveBlah\BlahBlah"); - $this->assertInstanceOf("\MyClasses\DaveBlah\BlahBlah", $mock); - } - - public function testMockingPhpredisExtensionClassWorks() - { - if (!class_exists('Redis')) { - $this->markTestSkipped('PHPRedis extension required for this test'); - } - $m = mock('Redis'); - } - - public function testIssetMappingUsingProxiedPartials_CheckNoExceptionThrown() - { - $var = mock(new MockeryTestIsset_Bar()); - $mock = mock(new MockeryTestIsset_Foo($var)); - $mock->shouldReceive('bar')->once(); - $mock->bar(); - Mockery::close(); - - $this->assertTrue(true); - } - - /** - * @group traversable1 - */ - public function testCanMockInterfacesExtendingTraversable() - { - $mock = mock('MockeryTest_InterfaceWithTraversable'); - $this->assertInstanceOf('MockeryTest_InterfaceWithTraversable', $mock); - $this->assertInstanceOf('ArrayAccess', $mock); - $this->assertInstanceOf('Countable', $mock); - $this->assertInstanceOf('Traversable', $mock); - } - - /** - * @group traversable2 - */ - public function testCanMockInterfacesAlongsideTraversable() - { - $mock = mock('stdClass, ArrayAccess, Countable, Traversable'); - $this->assertInstanceOf('stdClass', $mock); - $this->assertInstanceOf('ArrayAccess', $mock); - $this->assertInstanceOf('Countable', $mock); - $this->assertInstanceOf('Traversable', $mock); - } - - public function testInterfacesCanHaveAssertions() - { - $m = mock('stdClass, ArrayAccess, Countable, Traversable'); - $m->shouldReceive('foo')->once(); - $m->foo(); - } - - public function testMockingIteratorAggregateDoesNotImplementIterator() - { - $mock = mock('MockeryTest_ImplementsIteratorAggregate'); - $this->assertInstanceOf('IteratorAggregate', $mock); - $this->assertInstanceOf('Traversable', $mock); - $this->assertNotInstanceOf('Iterator', $mock); - } - - public function testMockingInterfaceThatExtendsIteratorDoesNotImplementIterator() - { - $mock = mock('MockeryTest_InterfaceThatExtendsIterator'); - $this->assertInstanceOf('Iterator', $mock); - $this->assertInstanceOf('Traversable', $mock); - } - - public function testMockingInterfaceThatExtendsIteratorAggregateDoesNotImplementIterator() - { - $mock = mock('MockeryTest_InterfaceThatExtendsIteratorAggregate'); - $this->assertInstanceOf('IteratorAggregate', $mock); - $this->assertInstanceOf('Traversable', $mock); - $this->assertNotInstanceOf('Iterator', $mock); - } - - public function testMockingIteratorAggregateDoesNotImplementIteratorAlongside() - { - $mock = mock('IteratorAggregate'); - $this->assertInstanceOf('IteratorAggregate', $mock); - $this->assertInstanceOf('Traversable', $mock); - $this->assertNotInstanceOf('Iterator', $mock); - } - - public function testMockingIteratorDoesNotImplementIteratorAlongside() - { - $mock = mock('Iterator'); - $this->assertInstanceOf('Iterator', $mock); - $this->assertInstanceOf('Traversable', $mock); - } - - public function testMockingIteratorDoesNotImplementIterator() - { - $mock = mock('MockeryTest_ImplementsIterator'); - $this->assertInstanceOf('Iterator', $mock); - $this->assertInstanceOf('Traversable', $mock); - } - - public function testMockeryCloseForIllegalIssetFileInclude() - { - $m = Mockery::mock('StdClass') - ->shouldReceive('get') - ->andReturn(false) - ->getMock(); - $m->get(); - Mockery::close(); - - // no idea what this test does, adding this as an assertion... - $this->assertTrue(true); - } - - public function testMockeryShouldDistinguishBetweenConstructorParamsAndClosures() - { - $obj = new MockeryTestFoo(); - $this->assertInstanceOf(MockInterface::class, mock('MockeryTest_ClassMultipleConstructorParams[dave]', [ - &$obj, 'foo' - ])); - } - - /** @group nette */ - public function testMockeryShouldNotMockCallstaticMagicMethod() - { - $this->assertInstanceOf(MockInterface::class, mock('MockeryTest_CallStatic')); - } - - /** - * @issue issue/139 - */ - public function testCanMockClassWithOldStyleConstructorAndArguments() - { - $this->assertInstanceOf(MockInterface::class, mock('MockeryTest_OldStyleConstructor')); - } - - /** @group issue/144 */ - public function testMockeryShouldInterpretEmptyArrayAsConstructorArgs() - { - $mock = mock("EmptyConstructorTest", array()); - $this->assertSame(0, $mock->numberOfConstructorArgs); - } - - /** @group issue/144 */ - public function testMockeryShouldCallConstructorByDefaultWhenRequestingPartials() - { - $mock = mock("EmptyConstructorTest[foo]"); - $this->assertSame(0, $mock->numberOfConstructorArgs); - } - - /** @group issue/158 */ - public function testMockeryShouldRespectInterfaceWithMethodParamSelf() - { - $this->assertInstanceOf(MockInterface::class, mock('MockeryTest_InterfaceWithMethodParamSelf')); - } - - /** @group issue/162 */ - public function testMockeryDoesntTryAndMockLowercaseToString() - { - $this->assertInstanceOf(MockInterface::class, mock('MockeryTest_Lowercase_ToString')); - } - - /** @group issue/175 */ - public function testExistingStaticMethodMocking() - { - $mock = mock('MockeryTest_PartialStatic[mockMe]'); - - $mock->shouldReceive('mockMe')->with(5)->andReturn(10); - - $this->assertEquals(10, $mock::mockMe(5)); - $this->assertEquals(3, $mock::keepMe(3)); - } - - /** - * @group issue/154 - * @expectedException InvalidArgumentException - * @expectedExceptionMessage protectedMethod() cannot be mocked as it is a protected method and mocking protected methods is not enabled for the currently used mock object. - */ - public function testShouldThrowIfAttemptingToStubProtectedMethod() - { - $mock = mock('MockeryTest_WithProtectedAndPrivate'); - $mock->shouldReceive("protectedMethod"); - } - - /** - * @group issue/154 - * @expectedException InvalidArgumentException - * @expectedExceptionMessage privateMethod() cannot be mocked as it is a private method - */ - public function testShouldThrowIfAttemptingToStubPrivateMethod() - { - $mock = mock('MockeryTest_WithProtectedAndPrivate'); - $mock->shouldReceive("privateMethod"); - } - - public function testWakeupMagicIsNotMockedToAllowSerialisationInstanceHack() - { - $this->assertInstanceOf(\DateTime::class, mock('DateTime')); - } - - /** - * @group issue/154 - */ - public function testCanMockMethodsWithRequiredParamsThatHaveDefaultValues() - { - $mock = mock('MockeryTest_MethodWithRequiredParamWithDefaultValue'); - $mock->shouldIgnoreMissing(); - $this->assertNull($mock->foo(null, 123)); - } - - /** - * @test - * @group issue/294 - * @expectedException Mockery\Exception\RuntimeException - * @expectedExceptionMessage Could not load mock DateTime, class already exists - */ - public function testThrowsWhenNamedMockClassExistsAndIsNotMockery() - { - $builder = new MockConfigurationBuilder(); - $builder->setName("DateTime"); - $mock = mock($builder); - } - - /** - * @expectedException Mockery\Exception\NoMatchingExpectationException - * @expectedExceptionMessage MyTestClass::foo(resource(...)) - */ - public function testHandlesMethodWithArgumentExpectationWhenCalledWithResource() - { - $mock = mock('MyTestClass'); - $mock->shouldReceive('foo')->with(array('yourself' => 21)); - - $mock->foo(fopen('php://memory', 'r')); - } - - /** - * @expectedException Mockery\Exception\NoMatchingExpectationException - * @expectedExceptionMessage MyTestClass::foo(['myself' => [...]]) - */ - public function testHandlesMethodWithArgumentExpectationWhenCalledWithCircularArray() - { - $testArray = array(); - $testArray['myself'] =& $testArray; - - $mock = mock('MyTestClass'); - $mock->shouldReceive('foo')->with(array('yourself' => 21)); - - $mock->foo($testArray); - } - - /** - * @expectedException Mockery\Exception\NoMatchingExpectationException - * @expectedExceptionMessage MyTestClass::foo(['a_scalar' => 2, 'an_array' => [...]]) - */ - public function testHandlesMethodWithArgumentExpectationWhenCalledWithNestedArray() - { - $testArray = array(); - $testArray['a_scalar'] = 2; - $testArray['an_array'] = array(1, 2, 3); - - $mock = mock('MyTestClass'); - $mock->shouldReceive('foo')->with(array('yourself' => 21)); - - $mock->foo($testArray); - } - - /** - * @expectedException Mockery\Exception\NoMatchingExpectationException - * @expectedExceptionMessage MyTestClass::foo(['a_scalar' => 2, 'an_object' => object(stdClass)]) - */ - public function testHandlesMethodWithArgumentExpectationWhenCalledWithNestedObject() - { - $testArray = array(); - $testArray['a_scalar'] = 2; - $testArray['an_object'] = new stdClass(); - - $mock = mock('MyTestClass'); - $mock->shouldReceive('foo')->with(array('yourself' => 21)); - - $mock->foo($testArray); - } - - /** - * @expectedException Mockery\Exception\NoMatchingExpectationException - * @expectedExceptionMessage MyTestClass::foo(['a_scalar' => 2, 'a_closure' => object(Closure - */ - public function testHandlesMethodWithArgumentExpectationWhenCalledWithNestedClosure() - { - $testArray = array(); - $testArray['a_scalar'] = 2; - $testArray['a_closure'] = function () { - }; - - $mock = mock('MyTestClass'); - $mock->shouldReceive('foo')->with(array('yourself' => 21)); - - $mock->foo($testArray); - } - - /** - * @expectedException Mockery\Exception\NoMatchingExpectationException - * @expectedExceptionMessage MyTestClass::foo(['a_scalar' => 2, 'a_resource' => resource(...)]) - */ - public function testHandlesMethodWithArgumentExpectationWhenCalledWithNestedResource() - { - $testArray = array(); - $testArray['a_scalar'] = 2; - $testArray['a_resource'] = fopen('php://memory', 'r'); - - $mock = mock('MyTestClass'); - $mock->shouldReceive('foo')->with(array('yourself' => 21)); - - $mock->foo($testArray); - } - - public function testExceptionOutputMakesBooleansLookLikeBooleans() - { - $mock = mock('MyTestClass'); - $mock->shouldReceive("foo")->with(123); - - $this->expectException( - "Mockery\Exception\NoMatchingExpectationException", - "MyTestClass::foo(true, false, [0 => true, 1 => false])" - ); - - $mock->foo(true, false, [true, false]); - } - - /** - * @test - * @group issue/339 - */ - public function canMockClassesThatDescendFromInternalClasses() - { - $mock = mock("MockeryTest_ClassThatDescendsFromInternalClass"); - $this->assertInstanceOf("DateTime", $mock); - } - - /** - * @test - * @group issue/339 - */ - public function canMockClassesThatImplementSerializable() - { - $mock = mock("MockeryTest_ClassThatImplementsSerializable"); - $this->assertInstanceOf("Serializable", $mock); - } - - /** - * @test - * @group issue/346 - */ - public function canMockInternalClassesThatImplementSerializable() - { - $mock = mock("ArrayObject"); - $this->assertInstanceOf("Serializable", $mock); - } - - /** - * @dataProvider classNameProvider - */ - public function testIsValidClassName($expected, $className) - { - $container = new \Mockery\Container; - $this->assertSame($expected, $container->isValidClassName($className)); - } - - public function classNameProvider() - { - return array( - array(false, ' '), // just a space - array(false, 'ClassName.WithDot'), - array(false, '\\\\TooManyBackSlashes'), - array(true, 'Foo'), - array(true, '\\Foo\\Bar'), - ); - } -} - -class MockeryTest_CallStatic -{ - public static function __callStatic($method, $args) - { - } -} - -class MockeryTest_ClassMultipleConstructorParams -{ - public function __construct($a, $b) - { - } - - public function dave() - { - } -} - -interface MockeryTest_InterfaceWithTraversable extends ArrayAccess, Traversable, Countable -{ - public function self(); -} - -class MockeryTestIsset_Bar -{ - public function doSomething() - { - } -} - -class MockeryTestIsset_Foo -{ - private $var; - - public function __construct($var) - { - $this->var = $var; - } - - public function __get($name) - { - $this->var->doSomething(); - } - - public function __isset($name) - { - return (bool) strlen($this->__get($name)); - } -} - -class MockeryTest_IssetMethod -{ - protected $_properties = array(); - - public function __construct() - { - } - - public function __isset($property) - { - return isset($this->_properties[$property]); - } -} - -class MockeryTest_UnsetMethod -{ - protected $_properties = array(); - - public function __construct() - { - } - - public function __unset($property) - { - unset($this->_properties[$property]); - } -} - -class MockeryTestFoo -{ - public function foo() - { - return 'foo'; - } -} - -class MockeryTestFoo2 -{ - public function foo() - { - return 'foo'; - } - - public function bar() - { - return 'bar'; - } -} - -final class MockeryFoo3 -{ - public function foo() - { - return 'baz'; - } -} - -class MockeryFoo4 -{ - final public function foo() - { - return 'baz'; - } - - public function bar() - { - return 'bar'; - } -} - -interface MockeryTest_Interface -{ -} -interface MockeryTest_Interface1 -{ -} -interface MockeryTest_Interface2 -{ -} - -interface MockeryTest_InterfaceWithAbstractMethod -{ - public function set(); -} - -interface MockeryTest_InterfaceWithPublicStaticMethod -{ - public static function self(); -} - -abstract class MockeryTest_AbstractWithAbstractMethod -{ - abstract protected function set(); -} - -class MockeryTest_WithProtectedAndPrivate -{ - protected function protectedMethod() - { - } - - private function privateMethod() - { - } -} - -class MockeryTest_ClassConstructor -{ - public function __construct($param1) - { - } -} - -class MockeryTest_ClassConstructor2 -{ - protected $param1; - - public function __construct(stdClass $param1) - { - $this->param1 = $param1; - } - - public function getParam1() - { - return $this->param1; - } - - public function foo() - { - return 'foo'; - } - - public function bar() - { - return $this->foo(); - } -} - -class MockeryTest_Call1 -{ - public function __call($method, array $params) - { - } -} - -class MockeryTest_Call2 -{ - public function __call($method, $params) - { - } -} - -class MockeryTest_Wakeup1 -{ - public function __construct() - { - } - - public function __wakeup() - { - } -} - -class MockeryTest_ExistingProperty -{ - public $foo = 'bar'; -} - -abstract class MockeryTest_AbstractWithAbstractPublicMethod -{ - abstract public function foo($a, $b); -} - -// issue/18 -class SoCool -{ - public function iDoSomethingReallyCoolHere() - { - return 3; - } -} - -class Gateway -{ - public function __call($method, $args) - { - $m = new SoCool(); - return call_user_func_array(array($m, $method), $args); - } -} - -class MockeryTestBar1 -{ - public function method1() - { - return $this; - } -} - -class MockeryTest_ReturnByRef -{ - public $i = 0; - - public function &get() - { - return $this->$i; - } -} - -class MockeryTest_MethodParamRef -{ - public function method1(&$foo) - { - return true; - } -} -class MockeryTest_MethodParamRef2 -{ - public function method1(&$foo) - { - return true; - } -} -class MockeryTestRef1 -{ - public function foo(&$a, $b) - { - } -} - -class MockeryTest_PartialNormalClass -{ - public function foo() - { - return 'abc'; - } - - public function bar() - { - return 'abc'; - } -} - -abstract class MockeryTest_PartialAbstractClass -{ - abstract public function foo(); - - public function bar() - { - return 'abc'; - } -} - -class MockeryTest_PartialNormalClass2 -{ - public function foo() - { - return 'abc'; - } - - public function bar() - { - return 'abc'; - } - - public function baz() - { - return 'abc'; - } -} - -abstract class MockeryTest_PartialAbstractClass2 -{ - abstract public function foo(); - - public function bar() - { - return 'abc'; - } - - abstract public function baz(); -} - -class MockeryTest_TestInheritedType -{ -} - -if (PHP_VERSION_ID >= 50400) { - class MockeryTest_MockCallableTypeHint - { - public function foo(callable $baz) - { - $baz(); - } - - public function bar(callable $callback = null) - { - $callback(); - } - } -} - -class MockeryTest_WithToString -{ - public function __toString() - { - } -} - -class MockeryTest_ImplementsIteratorAggregate implements IteratorAggregate -{ - public function getIterator() - { - return new ArrayIterator(array()); - } -} - -class MockeryTest_ImplementsIterator implements Iterator -{ - public function rewind() - { - } - - public function current() - { - } - - public function key() - { - } - - public function next() - { - } - - public function valid() - { - } -} - -class MockeryTest_OldStyleConstructor -{ - public function MockeryTest_OldStyleConstructor($arg) - { - } -} - -class EmptyConstructorTest -{ - public $numberOfConstructorArgs; - - public function __construct(...$args) - { - $this->numberOfConstructorArgs = count($args); - } - - public function foo() - { - } -} - -interface MockeryTest_InterfaceWithMethodParamSelf -{ - public function foo(self $bar); -} - -class MockeryTest_Lowercase_ToString -{ - public function __tostring() - { - } -} - -class MockeryTest_PartialStatic -{ - public static function mockMe($a) - { - return $a; - } - - public static function keepMe($b) - { - return $b; - } -} - -class MockeryTest_MethodWithRequiredParamWithDefaultValue -{ - public function foo(DateTime $bar = null, $baz) - { - } -} - -interface MockeryTest_InterfaceThatExtendsIterator extends Iterator -{ - public function foo(); -} - -interface MockeryTest_InterfaceThatExtendsIteratorAggregate extends IteratorAggregate -{ - public function foo(); -} - -class MockeryTest_ClassThatDescendsFromInternalClass extends DateTime -{ -} - -class MockeryTest_ClassThatImplementsSerializable implements Serializable -{ - public function serialize() - { - } - - public function unserialize($serialized) - { - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/DemeterChainTest.php b/vendor/mockery/mockery/tests/Mockery/DemeterChainTest.php deleted file mode 100644 index 369effc9..00000000 --- a/vendor/mockery/mockery/tests/Mockery/DemeterChainTest.php +++ /dev/null @@ -1,170 +0,0 @@ -mock */ - private $mock; - - public function setUp() - { - $this->mock = $this->mock = Mockery::mock()->shouldIgnoreMissing(); - } - - public function tearDown() - { - $this->mock->mockery_getContainer()->mockery_close(); - } - - public function testTwoChains() - { - $this->mock->shouldReceive('getElement->getFirst') - ->once() - ->andReturn('something'); - - $this->mock->shouldReceive('getElement->getSecond') - ->once() - ->andReturn('somethingElse'); - - $this->assertEquals( - 'something', - $this->mock->getElement()->getFirst() - ); - $this->assertEquals( - 'somethingElse', - $this->mock->getElement()->getSecond() - ); - $this->mock->mockery_getContainer()->mockery_close(); - } - - public function testTwoChainsWithExpectedParameters() - { - $this->mock->shouldReceive('getElement->getFirst') - ->once() - ->with('parameter') - ->andReturn('something'); - - $this->mock->shouldReceive('getElement->getSecond') - ->once() - ->with('secondParameter') - ->andReturn('somethingElse'); - - $this->assertEquals( - 'something', - $this->mock->getElement()->getFirst('parameter') - ); - $this->assertEquals( - 'somethingElse', - $this->mock->getElement()->getSecond('secondParameter') - ); - $this->mock->mockery_getContainer()->mockery_close(); - } - - public function testThreeChains() - { - $this->mock->shouldReceive('getElement->getFirst') - ->once() - ->andReturn('something'); - - $this->mock->shouldReceive('getElement->getSecond') - ->once() - ->andReturn('somethingElse'); - - $this->assertEquals( - 'something', - $this->mock->getElement()->getFirst() - ); - $this->assertEquals( - 'somethingElse', - $this->mock->getElement()->getSecond() - ); - $this->mock->shouldReceive('getElement->getFirst') - ->once() - ->andReturn('somethingNew'); - $this->assertEquals( - 'somethingNew', - $this->mock->getElement()->getFirst() - ); - } - - public function testManyChains() - { - $this->mock->shouldReceive('getElements->getFirst') - ->once() - ->andReturn('something'); - - $this->mock->shouldReceive('getElements->getSecond') - ->once() - ->andReturn('somethingElse'); - - $this->mock->getElements()->getFirst(); - $this->mock->getElements()->getSecond(); - } - - public function testTwoNotRelatedChains() - { - $this->mock->shouldReceive('getElement->getFirst') - ->once() - ->andReturn('something'); - - $this->mock->shouldReceive('getOtherElement->getSecond') - ->once() - ->andReturn('somethingElse'); - - $this->assertEquals( - 'somethingElse', - $this->mock->getOtherElement()->getSecond() - ); - $this->assertEquals( - 'something', - $this->mock->getElement()->getFirst() - ); - } - - public function testDemeterChain() - { - $this->mock->shouldReceive('getElement->getFirst') - ->once() - ->andReturn('somethingElse'); - - $this->assertEquals('somethingElse', $this->mock->getElement()->getFirst()); - } - - public function testMultiLevelDemeterChain() - { - $this->mock->shouldReceive('levelOne->levelTwo->getFirst') - ->andReturn('first'); - - $this->mock->shouldReceive('levelOne->levelTwo->getSecond') - ->andReturn('second'); - - $this->assertEquals( - 'second', - $this->mock->levelOne()->levelTwo()->getSecond() - ); - $this->assertEquals( - 'first', - $this->mock->levelOne()->levelTwo()->getFirst() - ); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/DummyClasses/Namespaced.php b/vendor/mockery/mockery/tests/Mockery/DummyClasses/Namespaced.php deleted file mode 100644 index 615eb718..00000000 --- a/vendor/mockery/mockery/tests/Mockery/DummyClasses/Namespaced.php +++ /dev/null @@ -1,35 +0,0 @@ -mock = mock(); - } - - public function teardown() - { - parent::tearDown(); - \Mockery::getConfiguration()->allowMockingNonExistentMethods(true); - } - - public function testReturnsNullWhenNoArgs() - { - $this->mock->shouldReceive('foo'); - $this->assertNull($this->mock->foo()); - } - - public function testReturnsNullWhenSingleArg() - { - $this->mock->shouldReceive('foo'); - $this->assertNull($this->mock->foo(1)); - } - - public function testReturnsNullWhenManyArgs() - { - $this->mock->shouldReceive('foo'); - $this->assertNull($this->mock->foo('foo', array(), new stdClass)); - } - - public function testReturnsNullIfNullIsReturnValue() - { - $this->mock->shouldReceive('foo')->andReturn(null); - $this->assertNull($this->mock->foo()); - } - - public function testReturnsNullForMockedExistingClassIfAndreturnnullCalled() - { - $mock = mock('MockeryTest_Foo'); - $mock->shouldReceive('foo')->andReturn(null); - $this->assertNull($mock->foo()); - } - - public function testReturnsNullForMockedExistingClassIfNullIsReturnValue() - { - $mock = mock('MockeryTest_Foo'); - $mock->shouldReceive('foo')->andReturnNull(); - $this->assertNull($mock->foo()); - } - - public function testReturnsSameValueForAllIfNoArgsExpectationAndNoneGiven() - { - $this->mock->shouldReceive('foo')->andReturn(1); - $this->assertEquals(1, $this->mock->foo()); - } - - public function testSetsPublicPropertyWhenRequested() - { - $this->mock->bar = null; - $this->mock->shouldReceive('foo')->andSet('bar', 'baz'); - $this->assertNull($this->mock->bar); - $this->mock->foo(); - $this->assertEquals('baz', $this->mock->bar); - } - - public function testSetsPublicPropertyWhenRequestedUsingAlias() - { - $this->mock->bar = null; - $this->mock->shouldReceive('foo')->set('bar', 'baz'); - $this->assertNull($this->mock->bar); - $this->mock->foo(); - $this->assertEquals('baz', $this->mock->bar); - } - - public function testSetsPublicPropertiesWhenRequested() - { - $this->mock->bar = null; - $this->mock->shouldReceive('foo')->andSet('bar', 'baz', 'bazz', 'bazzz'); - $this->assertNull($this->mock->bar); - $this->mock->foo(); - $this->assertEquals('baz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazzz', $this->mock->bar); - } - - public function testSetsPublicPropertiesWhenRequestedUsingAlias() - { - $this->mock->bar = null; - $this->mock->shouldReceive('foo')->set('bar', 'baz', 'bazz', 'bazzz'); - $this->assertAttributeEmpty('bar', $this->mock); - $this->mock->foo(); - $this->assertEquals('baz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazzz', $this->mock->bar); - } - - public function testSetsPublicPropertiesWhenRequestedMoreTimesThanSetValues() - { - $this->mock->bar = null; - $this->mock->shouldReceive('foo')->andSet('bar', 'baz', 'bazz'); - $this->assertNull($this->mock->bar); - $this->mock->foo(); - $this->assertEquals('baz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazz', $this->mock->bar); - } - - public function testSetsPublicPropertiesWhenRequestedMoreTimesThanSetValuesUsingAlias() - { - $this->mock->bar = null; - $this->mock->shouldReceive('foo')->andSet('bar', 'baz', 'bazz'); - $this->assertNull($this->mock->bar); - $this->mock->foo(); - $this->assertEquals('baz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazz', $this->mock->bar); - } - - public function testSetsPublicPropertiesWhenRequestedMoreTimesThanSetValuesWithDirectSet() - { - $this->mock->bar = null; - $this->mock->shouldReceive('foo')->andSet('bar', 'baz', 'bazz'); - $this->assertNull($this->mock->bar); - $this->mock->foo(); - $this->assertEquals('baz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazz', $this->mock->bar); - $this->mock->bar = null; - $this->mock->foo(); - $this->assertNull($this->mock->bar); - } - - public function testSetsPublicPropertiesWhenRequestedMoreTimesThanSetValuesWithDirectSetUsingAlias() - { - $this->mock->bar = null; - $this->mock->shouldReceive('foo')->set('bar', 'baz', 'bazz'); - $this->assertNull($this->mock->bar); - $this->mock->foo(); - $this->assertEquals('baz', $this->mock->bar); - $this->mock->foo(); - $this->assertEquals('bazz', $this->mock->bar); - $this->mock->bar = null; - $this->mock->foo(); - $this->assertNull($this->mock->bar); - } - - public function testReturnsSameValueForAllIfNoArgsExpectationAndSomeGiven() - { - $this->mock->shouldReceive('foo')->andReturn(1); - $this->assertEquals(1, $this->mock->foo('foo')); - } - - public function testReturnsValueFromSequenceSequentially() - { - $this->mock->shouldReceive('foo')->andReturn(1, 2, 3); - $this->mock->foo('foo'); - $this->assertEquals(2, $this->mock->foo('foo')); - } - - public function testReturnsValueFromSequenceSequentiallyAndRepeatedlyReturnsFinalValueOnExtraCalls() - { - $this->mock->shouldReceive('foo')->andReturn(1, 2, 3); - $this->mock->foo('foo'); - $this->mock->foo('foo'); - $this->assertEquals(3, $this->mock->foo('foo')); - $this->assertEquals(3, $this->mock->foo('foo')); - } - - public function testReturnsValueFromSequenceSequentiallyAndRepeatedlyReturnsFinalValueOnExtraCallsWithManyAndReturnCalls() - { - $this->mock->shouldReceive('foo')->andReturn(1)->andReturn(2, 3); - $this->mock->foo('foo'); - $this->mock->foo('foo'); - $this->assertEquals(3, $this->mock->foo('foo')); - $this->assertEquals(3, $this->mock->foo('foo')); - } - - public function testReturnsValueOfClosure() - { - $this->mock->shouldReceive('foo')->with(5)->andReturnUsing(function ($v) { - return $v+1; - }); - $this->assertEquals(6, $this->mock->foo(5)); - } - - public function testReturnsUndefined() - { - $this->mock->shouldReceive('foo')->andReturnUndefined(); - $this->assertTrue($this->mock->foo() instanceof \Mockery\Undefined); - } - - public function testReturnsValuesSetAsArray() - { - $this->mock->shouldReceive('foo')->andReturnValues(array(1, 2, 3)); - $this->assertEquals(1, $this->mock->foo()); - $this->assertEquals(2, $this->mock->foo()); - $this->assertEquals(3, $this->mock->foo()); - } - - /** - * @expectedException OutOfBoundsException - */ - public function testThrowsException() - { - $this->mock->shouldReceive('foo')->andThrow(new OutOfBoundsException); - $this->mock->foo(); - Mockery::close(); - } - - /** @test */ - public function and_throws_is_an_alias_to_and_throw() - { - $this->mock->shouldReceive('foo')->andThrows(new OutOfBoundsException); - - $this->expectException(OutOfBoundsException::class); - $this->mock->foo(); - } - - /** - * @test - * @requires PHP 7.0.0 - */ - public function it_can_throw_a_throwable() - { - $this->expectException(\Error::class); - $this->mock->shouldReceive('foo')->andThrow(new \Error()); - $this->mock->foo(); - } - - /** - * @expectedException OutOfBoundsException - */ - public function testThrowsExceptionBasedOnArgs() - { - $this->mock->shouldReceive('foo')->andThrow('OutOfBoundsException'); - $this->mock->foo(); - Mockery::close(); - } - - public function testThrowsExceptionBasedOnArgsWithMessage() - { - $this->mock->shouldReceive('foo')->andThrow('OutOfBoundsException', 'foo'); - try { - $this->mock->foo(); - } catch (OutOfBoundsException $e) { - $this->assertEquals('foo', $e->getMessage()); - } - } - - /** - * @expectedException OutOfBoundsException - */ - public function testThrowsExceptionSequentially() - { - $this->mock->shouldReceive('foo')->andThrow(new Exception)->andThrow(new OutOfBoundsException); - try { - $this->mock->foo(); - } catch (Exception $e) { - } - $this->mock->foo(); - Mockery::close(); - } - - public function testAndThrowExceptions() - { - $this->mock->shouldReceive('foo')->andThrowExceptions(array( - new OutOfBoundsException, - new InvalidArgumentException, - )); - - try { - $this->mock->foo(); - throw new Exception("Expected OutOfBoundsException, non thrown"); - } catch (\Exception $e) { - $this->assertInstanceOf("OutOfBoundsException", $e, "Wrong or no exception thrown: {$e->getMessage()}"); - } - - try { - $this->mock->foo(); - throw new Exception("Expected InvalidArgumentException, non thrown"); - } catch (\Exception $e) { - $this->assertInstanceOf("InvalidArgumentException", $e, "Wrong or no exception thrown: {$e->getMessage()}"); - } - } - - /** - * @expectedException Mockery\Exception - * @expectedExceptionMessage You must pass an array of exception objects to andThrowExceptions - */ - public function testAndThrowExceptionsCatchNonExceptionArgument() - { - $this->mock - ->shouldReceive('foo') - ->andThrowExceptions(array('NotAnException')); - Mockery::close(); - } - - public function testMultipleExpectationsWithReturns() - { - $this->mock->shouldReceive('foo')->with(1)->andReturn(10); - $this->mock->shouldReceive('bar')->with(2)->andReturn(20); - $this->assertEquals(10, $this->mock->foo(1)); - $this->assertEquals(20, $this->mock->bar(2)); - } - - public function testExpectsNoArguments() - { - $this->mock->shouldReceive('foo')->withNoArgs(); - $this->mock->foo(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testExpectsNoArgumentsThrowsExceptionIfAnyPassed() - { - $this->mock->shouldReceive('foo')->withNoArgs(); - $this->mock->foo(1); - Mockery::close(); - } - - public function testExpectsArgumentsArray() - { - $this->mock->shouldReceive('foo')->withArgs(array(1, 2)); - $this->mock->foo(1, 2); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testExpectsArgumentsArrayThrowsExceptionIfPassedEmptyArray() - { - $this->mock->shouldReceive('foo')->withArgs(array()); - $this->mock->foo(1, 2); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testExpectsArgumentsArrayThrowsExceptionIfNoArgumentsPassed() - { - $this->mock->shouldReceive('foo')->with(); - $this->mock->foo(1); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testExpectsArgumentsArrayThrowsExceptionIfPassedWrongArguments() - { - $this->mock->shouldReceive('foo')->withArgs(array(1, 2)); - $this->mock->foo(3, 4); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception - * @expectedExceptionMessageRegExp /foo\(NULL\)/ - */ - public function testExpectsStringArgumentExceptionMessageDifferentiatesBetweenNullAndEmptyString() - { - $this->mock->shouldReceive('foo')->withArgs(array('a string')); - $this->mock->foo(null); - Mockery::close(); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessageRegExp /invalid argument (.+), only array and closure are allowed/ - */ - public function testExpectsArgumentsArrayThrowsExceptionIfPassedWrongArgumentType() - { - $this->mock->shouldReceive('foo')->withArgs(5); - Mockery::close(); - } - - public function testExpectsArgumentsArrayAcceptAClosureThatValidatesPassedArguments() - { - $closure = function ($odd, $even) { - return ($odd % 2 != 0) && ($even % 2 == 0); - }; - $this->mock->shouldReceive('foo')->withArgs($closure); - $this->mock->foo(1, 2); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testExpectsArgumentsArrayThrowsExceptionWhenClosureEvaluatesToFalse() - { - $closure = function ($odd, $even) { - return ($odd % 2 != 0) && ($even % 2 == 0); - }; - $this->mock->shouldReceive('foo')->withArgs($closure); - $this->mock->foo(4, 2); - Mockery::close(); - } - - public function testExpectsArgumentsArrayClosureDoesNotThrowExceptionIfOptionalArgumentsAreMissing() - { - $closure = function ($odd, $even, $sum = null) { - $result = ($odd % 2 != 0) && ($even % 2 == 0); - if (!is_null($sum)) { - return $result && ($odd + $even == $sum); - } - return $result; - }; - $this->mock->shouldReceive('foo')->withArgs($closure); - $this->mock->foo(1, 4); - } - - public function testExpectsArgumentsArrayClosureDoesNotThrowExceptionIfOptionalArgumentsMathTheExpectation() - { - $closure = function ($odd, $even, $sum = null) { - $result = ($odd % 2 != 0) && ($even % 2 == 0); - if (!is_null($sum)) { - return $result && ($odd + $even == $sum); - } - return $result; - }; - $this->mock->shouldReceive('foo')->withArgs($closure); - $this->mock->foo(1, 4, 5); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testExpectsArgumentsArrayClosureThrowsExceptionIfOptionalArgumentsDontMatchTheExpectation() - { - $closure = function ($odd, $even, $sum = null) { - $result = ($odd % 2 != 0) && ($even % 2 == 0); - if (!is_null($sum)) { - return $result && ($odd + $even == $sum); - } - return $result; - }; - $this->mock->shouldReceive('foo')->withArgs($closure); - $this->mock->foo(1, 4, 2); - Mockery::close(); - } - - public function testExpectsAnyArguments() - { - $this->mock->shouldReceive('foo')->withAnyArgs(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 'k', new stdClass); - } - - public function testExpectsArgumentMatchingObjectType() - { - $this->mock->shouldReceive('foo')->with('\stdClass'); - $this->mock->foo(new stdClass); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testThrowsExceptionOnNoArgumentMatch() - { - $this->mock->shouldReceive('foo')->with(1); - $this->mock->foo(2); - Mockery::close(); - } - - public function testNeverCalled() - { - $this->mock->shouldReceive('foo')->never(); - } - - public function testShouldNotReceive() - { - $this->mock->shouldNotReceive('foo'); - } - - /** - * @expectedException \Mockery\Exception\InvalidCountException - */ - public function testShouldNotReceiveThrowsExceptionIfMethodCalled() - { - $this->mock->shouldNotReceive('foo'); - $this->mock->foo(); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception\InvalidCountException - */ - public function testShouldNotReceiveWithArgumentThrowsExceptionIfMethodCalled() - { - $this->mock->shouldNotReceive('foo')->with(2); - $this->mock->foo(2); - Mockery::close(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testNeverCalledThrowsExceptionOnCall() - { - $this->mock->shouldReceive('foo')->never(); - $this->mock->foo(); - Mockery::close(); - } - - public function testCalledOnce() - { - $this->mock->shouldReceive('foo')->once(); - $this->mock->foo(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testCalledOnceThrowsExceptionIfNotCalled() - { - $this->mock->shouldReceive('foo')->once(); - Mockery::close(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testCalledOnceThrowsExceptionIfCalledTwice() - { - $this->mock->shouldReceive('foo')->once(); - $this->mock->foo(); - $this->mock->foo(); - Mockery::close(); - } - - public function testCalledTwice() - { - $this->mock->shouldReceive('foo')->twice(); - $this->mock->foo(); - $this->mock->foo(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testCalledTwiceThrowsExceptionIfNotCalled() - { - $this->mock->shouldReceive('foo')->twice(); - Mockery::close(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testCalledOnceThrowsExceptionIfCalledThreeTimes() - { - $this->mock->shouldReceive('foo')->twice(); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - Mockery::close(); - } - - public function testCalledZeroOrMoreTimesAtZeroCalls() - { - $this->mock->shouldReceive('foo')->zeroOrMoreTimes(); - } - - public function testCalledZeroOrMoreTimesAtThreeCalls() - { - $this->mock->shouldReceive('foo')->zeroOrMoreTimes(); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - } - - public function testTimesCountCalls() - { - $this->mock->shouldReceive('foo')->times(4); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testTimesCountCallThrowsExceptionOnTooFewCalls() - { - $this->mock->shouldReceive('foo')->times(2); - $this->mock->foo(); - Mockery::close(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testTimesCountCallThrowsExceptionOnTooManyCalls() - { - $this->mock->shouldReceive('foo')->times(2); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - Mockery::close(); - } - - public function testCalledAtLeastOnceAtExactlyOneCall() - { - $this->mock->shouldReceive('foo')->atLeast()->once(); - $this->mock->foo(); - } - - public function testCalledAtLeastOnceAtExactlyThreeCalls() - { - $this->mock->shouldReceive('foo')->atLeast()->times(3); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testCalledAtLeastThrowsExceptionOnTooFewCalls() - { - $this->mock->shouldReceive('foo')->atLeast()->twice(); - $this->mock->foo(); - Mockery::close(); - } - - public function testCalledAtMostOnceAtExactlyOneCall() - { - $this->mock->shouldReceive('foo')->atMost()->once(); - $this->mock->foo(); - } - - public function testCalledAtMostAtExactlyThreeCalls() - { - $this->mock->shouldReceive('foo')->atMost()->times(3); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testCalledAtLeastThrowsExceptionOnTooManyCalls() - { - $this->mock->shouldReceive('foo')->atMost()->twice(); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - Mockery::close(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testExactCountersOverrideAnyPriorSetNonExactCounters() - { - $this->mock->shouldReceive('foo')->atLeast()->once()->once(); - $this->mock->foo(); - $this->mock->foo(); - Mockery::close(); - } - - public function testComboOfLeastAndMostCallsWithOneCall() - { - $this->mock->shouldReceive('foo')->atleast()->once()->atMost()->twice(); - $this->mock->foo(); - } - - public function testComboOfLeastAndMostCallsWithTwoCalls() - { - $this->mock->shouldReceive('foo')->atleast()->once()->atMost()->twice(); - $this->mock->foo(); - $this->mock->foo(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testComboOfLeastAndMostCallsThrowsExceptionAtTooFewCalls() - { - $this->mock->shouldReceive('foo')->atleast()->once()->atMost()->twice(); - Mockery::close(); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testComboOfLeastAndMostCallsThrowsExceptionAtTooManyCalls() - { - $this->mock->shouldReceive('foo')->atleast()->once()->atMost()->twice(); - $this->mock->foo(); - $this->mock->foo(); - $this->mock->foo(); - Mockery::close(); - } - - public function testCallCountingOnlyAppliesToMatchedExpectations() - { - $this->mock->shouldReceive('foo')->with(1)->once(); - $this->mock->shouldReceive('foo')->with(2)->twice(); - $this->mock->shouldReceive('foo')->with(3); - $this->mock->foo(1); - $this->mock->foo(2); - $this->mock->foo(2); - $this->mock->foo(3); - } - - /** - * @expectedException \Mockery\CountValidator\Exception - */ - public function testCallCountingThrowsExceptionOnAnyMismatch() - { - $this->mock->shouldReceive('foo')->with(1)->once(); - $this->mock->shouldReceive('foo')->with(2)->twice(); - $this->mock->shouldReceive('foo')->with(3); - $this->mock->shouldReceive('bar'); - $this->mock->foo(1); - $this->mock->foo(2); - $this->mock->foo(3); - $this->mock->bar(); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception\InvalidCountException - */ - public function testCallCountingThrowsExceptionFirst() - { - $number_of_calls = 0; - $this->mock->shouldReceive('foo') - ->times(2) - ->with(\Mockery::on(function ($argument) use (&$number_of_calls) { - $number_of_calls++; - return $number_of_calls <= 3; - })); - - $this->mock->foo(1); - $this->mock->foo(1); - $this->mock->foo(1); - Mockery::close(); - } - - public function testOrderedCallsWithoutError() - { - $this->mock->shouldReceive('foo')->ordered(); - $this->mock->shouldReceive('bar')->ordered(); - $this->mock->foo(); - $this->mock->bar(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testOrderedCallsWithOutOfOrderError() - { - $this->mock->shouldReceive('foo')->ordered(); - $this->mock->shouldReceive('bar')->ordered(); - $this->mock->bar(); - $this->mock->foo(); - Mockery::close(); - } - - public function testDifferentArgumentsAndOrderingsPassWithoutException() - { - $this->mock->shouldReceive('foo')->with(1)->ordered(); - $this->mock->shouldReceive('foo')->with(2)->ordered(); - $this->mock->foo(1); - $this->mock->foo(2); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testDifferentArgumentsAndOrderingsThrowExceptionWhenInWrongOrder() - { - $this->mock->shouldReceive('foo')->with(1)->ordered(); - $this->mock->shouldReceive('foo')->with(2)->ordered(); - $this->mock->foo(2); - $this->mock->foo(1); - Mockery::close(); - } - - public function testUnorderedCallsIgnoredForOrdering() - { - $this->mock->shouldReceive('foo')->with(1)->ordered(); - $this->mock->shouldReceive('foo')->with(2); - $this->mock->shouldReceive('foo')->with(3)->ordered(); - $this->mock->foo(2); - $this->mock->foo(1); - $this->mock->foo(2); - $this->mock->foo(3); - $this->mock->foo(2); - } - - public function testOrderingOfDefaultGrouping() - { - $this->mock->shouldReceive('foo')->ordered(); - $this->mock->shouldReceive('bar')->ordered(); - $this->mock->foo(); - $this->mock->bar(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testOrderingOfDefaultGroupingThrowsExceptionOnWrongOrder() - { - $this->mock->shouldReceive('foo')->ordered(); - $this->mock->shouldReceive('bar')->ordered(); - $this->mock->bar(); - $this->mock->foo(); - Mockery::close(); - } - - public function testOrderingUsingNumberedGroups() - { - $this->mock->shouldReceive('start')->ordered(1); - $this->mock->shouldReceive('foo')->ordered(2); - $this->mock->shouldReceive('bar')->ordered(2); - $this->mock->shouldReceive('final')->ordered(); - $this->mock->start(); - $this->mock->bar(); - $this->mock->foo(); - $this->mock->bar(); - $this->mock->final(); - } - - public function testOrderingUsingNamedGroups() - { - $this->mock->shouldReceive('start')->ordered('start'); - $this->mock->shouldReceive('foo')->ordered('foobar'); - $this->mock->shouldReceive('bar')->ordered('foobar'); - $this->mock->shouldReceive('final')->ordered(); - $this->mock->start(); - $this->mock->bar(); - $this->mock->foo(); - $this->mock->bar(); - $this->mock->final(); - } - - /** - * @group 2A - */ - public function testGroupedUngroupedOrderingDoNotOverlap() - { - $s = $this->mock->shouldReceive('start')->ordered(); - $m = $this->mock->shouldReceive('mid')->ordered('foobar'); - $e = $this->mock->shouldReceive('end')->ordered(); - $this->assertTrue($s->getOrderNumber() < $m->getOrderNumber()); - $this->assertTrue($m->getOrderNumber() < $e->getOrderNumber()); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testGroupedOrderingThrowsExceptionWhenCallsDisordered() - { - $this->mock->shouldReceive('foo')->ordered('first'); - $this->mock->shouldReceive('bar')->ordered('second'); - $this->mock->bar(); - $this->mock->foo(); - Mockery::close(); - } - - public function testExpectationMatchingWithNoArgsOrderings() - { - $this->mock->shouldReceive('foo')->withNoArgs()->once()->ordered(); - $this->mock->shouldReceive('bar')->withNoArgs()->once()->ordered(); - $this->mock->shouldReceive('foo')->withNoArgs()->once()->ordered(); - $this->mock->foo(); - $this->mock->bar(); - $this->mock->foo(); - } - - public function testExpectationMatchingWithAnyArgsOrderings() - { - $this->mock->shouldReceive('foo')->withAnyArgs()->once()->ordered(); - $this->mock->shouldReceive('bar')->withAnyArgs()->once()->ordered(); - $this->mock->shouldReceive('foo')->withAnyArgs()->once()->ordered(); - $this->mock->foo(); - $this->mock->bar(); - $this->mock->foo(); - } - - public function testEnsuresOrderingIsNotCrossMockByDefault() - { - $this->mock->shouldReceive('foo')->ordered(); - $mock2 = mock('bar'); - $mock2->shouldReceive('bar')->ordered(); - $mock2->bar(); - $this->mock->foo(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testEnsuresOrderingIsCrossMockWhenGloballyFlagSet() - { - $this->mock->shouldReceive('foo')->globally()->ordered(); - $mock2 = mock('bar'); - $mock2->shouldReceive('bar')->globally()->ordered(); - $mock2->bar(); - $this->mock->foo(); - Mockery::close(); - } - - public function testExpectationCastToStringFormatting() - { - $exp = $this->mock->shouldReceive('foo')->with(1, 'bar', new stdClass, array('Spam' => 'Ham', 'Bar' => 'Baz')); - $this->assertEquals("[foo(1, 'bar', object(stdClass), ['Spam' => 'Ham', 'Bar' => 'Baz'])]", (string) $exp); - } - - public function testLongExpectationCastToStringFormatting() - { - $exp = $this->mock->shouldReceive('foo')->with(array('Spam' => 'Ham', 'Bar' => 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'Bar', 'Baz', 'End')); - $this->assertEquals("[foo(['Spam' => 'Ham', 'Bar' => 'Baz', 0 => 'Bar', 1 => 'Baz', 2 => 'Bar', 3 => 'Baz', 4 => 'Bar', 5 => 'Baz', 6 => 'Bar', 7 => 'Baz', 8 => 'Bar', 9 => 'Baz', 10 => 'Bar', 11 => 'Baz', 12 => 'Bar', 13 => 'Baz', 14 => 'Bar', 15 => 'Baz', 16 => 'Bar', 17 => 'Baz', 18 => 'Bar', 19 => 'Baz', 20 => 'Bar', 21 => 'Baz', 22 => 'Bar', 23 => 'Baz', 24 => 'Bar', 25 => 'Baz', 26 => 'Bar', 27 => 'Baz', 28 => 'Bar', 29 => 'Baz', 30 => 'Bar', 31 => 'Baz', 32 => 'Bar', 33 => 'Baz', 34 => 'Bar', 35 => 'Baz', 36 => 'Bar', 37 => 'Baz', 38 => 'Bar', 39 => 'Baz', 40 => 'Bar', 41 => 'Baz', 42 => 'Bar', 43 => 'Baz', 44 => 'Bar', 45 => 'Baz', 46 => 'Baz', 47 => 'Bar', 48 => 'Baz', 49 => 'Bar', 50 => 'Baz', 51 => 'Bar', 52 => 'Baz', 53 => 'Bar', 54 => 'Baz', 55 => 'Bar', 56 => 'Baz', 57 => 'Baz', 58 => 'Bar', 59 => 'Baz', 60 => 'Bar', 61 => 'Baz', 62 => 'Bar', 63 => 'Baz', 64 => 'Bar', 65 => 'Baz', 66 => 'Bar', 67 => 'Baz', 68 => 'Baz', 69 => 'Bar', 70 => 'Baz', 71 => 'Bar', 72 => 'Baz', 73 => 'Bar', 74 => 'Baz', 7...])]", (string) $exp); - } - - public function testMultipleExpectationCastToStringFormatting() - { - $exp = $this->mock->shouldReceive('foo', 'bar')->with(1); - $this->assertEquals('[foo(1), bar(1)]', (string) $exp); - } - - public function testGroupedOrderingWithLimitsAllowsMultipleReturnValues() - { - $this->mock->shouldReceive('foo')->with(2)->once()->andReturn('first'); - $this->mock->shouldReceive('foo')->with(2)->twice()->andReturn('second/third'); - $this->mock->shouldReceive('foo')->with(2)->andReturn('infinity'); - $this->assertEquals('first', $this->mock->foo(2)); - $this->assertEquals('second/third', $this->mock->foo(2)); - $this->assertEquals('second/third', $this->mock->foo(2)); - $this->assertEquals('infinity', $this->mock->foo(2)); - $this->assertEquals('infinity', $this->mock->foo(2)); - $this->assertEquals('infinity', $this->mock->foo(2)); - } - - public function testExpectationsCanBeMarkedAsDefaults() - { - $this->mock->shouldReceive('foo')->andReturn('bar')->byDefault(); - $this->assertEquals('bar', $this->mock->foo()); - } - - public function testDefaultExpectationsValidatedInCorrectOrder() - { - $this->mock->shouldReceive('foo')->with(1)->once()->andReturn('first')->byDefault(); - $this->mock->shouldReceive('foo')->with(2)->once()->andReturn('second')->byDefault(); - $this->assertEquals('first', $this->mock->foo(1)); - $this->assertEquals('second', $this->mock->foo(2)); - } - - public function testDefaultExpectationsAreReplacedByLaterConcreteExpectations() - { - $this->mock->shouldReceive('foo')->andReturn('bar')->once()->byDefault(); - $this->mock->shouldReceive('foo')->andReturn('baz')->twice(); - $this->assertEquals('baz', $this->mock->foo()); - $this->assertEquals('baz', $this->mock->foo()); - } - - public function testExpectationFallsBackToDefaultExpectationWhenConcreteExpectationsAreUsedUp() - { - $this->mock->shouldReceive('foo')->with(1)->andReturn('bar')->once()->byDefault(); - $this->mock->shouldReceive('foo')->with(2)->andReturn('baz')->once(); - $this->assertEquals('baz', $this->mock->foo(2)); - $this->assertEquals('bar', $this->mock->foo(1)); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testDefaultExpectationsCanBeOrdered() - { - $this->mock->shouldReceive('foo')->ordered()->byDefault(); - $this->mock->shouldReceive('bar')->ordered()->byDefault(); - $this->mock->bar(); - $this->mock->foo(); - Mockery::close(); - } - - public function testDefaultExpectationsCanBeOrderedAndReplaced() - { - $this->mock->shouldReceive('foo')->ordered()->byDefault(); - $this->mock->shouldReceive('bar')->ordered()->byDefault(); - $this->mock->shouldReceive('bar')->ordered(); - $this->mock->shouldReceive('foo')->ordered(); - $this->mock->bar(); - $this->mock->foo(); - } - - public function testByDefaultOperatesFromMockConstruction() - { - $container = new \Mockery\Container(\Mockery::getDefaultGenerator(), \Mockery::getDefaultLoader()); - $mock = $container->mock('f', array('foo'=>'rfoo', 'bar'=>'rbar', 'baz'=>'rbaz'))->byDefault(); - $mock->shouldReceive('foo')->andReturn('foobar'); - $this->assertEquals('foobar', $mock->foo()); - $this->assertEquals('rbar', $mock->bar()); - $this->assertEquals('rbaz', $mock->baz()); - } - - public function testByDefaultOnAMockDoesSquatWithoutExpectations() - { - $this->assertInstanceOf(MockInterface::class, mock('f')->byDefault()); - } - - public function testDefaultExpectationsCanBeOverridden() - { - $this->mock->shouldReceive('foo')->with('test')->andReturn('bar')->byDefault(); - $this->mock->shouldReceive('foo')->with('test')->andReturn('newbar')->byDefault(); - $this->mock->foo('test'); - $this->assertEquals('newbar', $this->mock->foo('test')); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testByDefaultPreventedFromSettingDefaultWhenDefaultingExpectationWasReplaced() - { - $exp = $this->mock->shouldReceive('foo')->andReturn(1); - $this->mock->shouldReceive('foo')->andReturn(2); - $exp->byDefault(); - Mockery::close(); - } - - /** - * Argument Constraint Tests - */ - - public function testAnyConstraintMatchesAnyArg() - { - $this->mock->shouldReceive('foo')->with(1, Mockery::any())->twice(); - $this->mock->foo(1, 2); - $this->mock->foo(1, 'str'); - } - - public function testAnyConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::any())->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - public function testArrayConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('array'))->once(); - $this->mock->foo(array()); - } - - public function testArrayConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('array'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testArrayConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('array')); - $this->mock->foo(1); - Mockery::close(); - } - - public function testBoolConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('bool'))->once(); - $this->mock->foo(true); - } - - public function testBoolConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('bool'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testBoolConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('bool')); - $this->mock->foo(1); - Mockery::close(); - } - - public function testCallableConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('callable'))->once(); - $this->mock->foo(function () { - return 'f'; - }); - } - - public function testCallableConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('callable'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testCallableConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('callable')); - $this->mock->foo(1); - Mockery::close(); - } - - public function testDoubleConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('double'))->once(); - $this->mock->foo(2.25); - } - - public function testDoubleConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('double'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testDoubleConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('double')); - $this->mock->foo(1); - Mockery::close(); - } - - public function testFloatConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('float'))->once(); - $this->mock->foo(2.25); - } - - public function testFloatConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('float'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testFloatConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('float')); - $this->mock->foo(1); - Mockery::close(); - } - - public function testIntConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('int'))->once(); - $this->mock->foo(2); - } - - public function testIntConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('int'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testIntConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('int')); - $this->mock->foo('f'); - Mockery::close(); - } - - public function testLongConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('long'))->once(); - $this->mock->foo(2); - } - - public function testLongConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('long'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testLongConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('long')); - $this->mock->foo('f'); - Mockery::close(); - } - - public function testNullConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('null'))->once(); - $this->mock->foo(null); - } - - public function testNullConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('null'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testNullConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('null')); - $this->mock->foo('f'); - Mockery::close(); - } - - public function testNumericConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('numeric'))->once(); - $this->mock->foo('2'); - } - - public function testNumericConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('numeric'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testNumericConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('numeric')); - $this->mock->foo('f'); - Mockery::close(); - } - - public function testObjectConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('object'))->once(); - $this->mock->foo(new stdClass); - } - - public function testObjectConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('object`'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testObjectConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('object')); - $this->mock->foo('f'); - Mockery::close(); - } - - public function testRealConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('real'))->once(); - $this->mock->foo(2.25); - } - - public function testRealConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('real'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testRealConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('real')); - $this->mock->foo('f'); - Mockery::close(); - } - - public function testResourceConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('resource'))->once(); - $r = fopen(dirname(__FILE__) . '/_files/file.txt', 'r'); - $this->mock->foo($r); - } - - public function testResourceConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('resource'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testResourceConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('resource')); - $this->mock->foo('f'); - Mockery::close(); - } - - public function testScalarConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('scalar'))->once(); - $this->mock->foo(2); - } - - public function testScalarConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('scalar'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testScalarConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('scalar')); - $this->mock->foo(array()); - Mockery::close(); - } - - public function testStringConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('string'))->once(); - $this->mock->foo('2'); - } - - public function testStringConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('string'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testStringConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('string')); - $this->mock->foo(1); - Mockery::close(); - } - - public function testClassConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('stdClass'))->once(); - $this->mock->foo(new stdClass); - } - - public function testClassConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::type('stdClass'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testClassConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::type('stdClass')); - $this->mock->foo(new Exception); - Mockery::close(); - } - - public function testDucktypeConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::ducktype('quack', 'swim'))->once(); - $this->mock->foo(new Mockery_Duck); - } - - public function testDucktypeConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::ducktype('quack', 'swim'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testDucktypeConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::ducktype('quack', 'swim')); - $this->mock->foo(new Mockery_Duck_Nonswimmer); - Mockery::close(); - } - - public function testArrayContentConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::subset(array('a'=>1, 'b'=>2)))->once(); - $this->mock->foo(array('a'=>1, 'b'=>2, 'c'=>3)); - } - - public function testArrayContentConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::subset(array('a'=>1, 'b'=>2)))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testArrayContentConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::subset(array('a'=>1, 'b'=>2))); - $this->mock->foo(array('a'=>1, 'c'=>3)); - Mockery::close(); - } - - public function testContainsConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::contains(1, 2))->once(); - $this->mock->foo(array('a'=>1, 'b'=>2, 'c'=>3)); - } - - public function testContainsConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::contains(1, 2))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testContainsConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::contains(1, 2)); - $this->mock->foo(array('a'=>1, 'c'=>3)); - Mockery::close(); - } - - public function testHasKeyConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::hasKey('c'))->once(); - $this->mock->foo(array('a'=>1, 'b'=>2, 'c'=>3)); - } - - public function testHasKeyConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::hasKey('a'))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, array('a'=>1), 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testHasKeyConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::hasKey('c')); - $this->mock->foo(array('a'=>1, 'b'=>3)); - Mockery::close(); - } - - public function testHasValueConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::hasValue(1))->once(); - $this->mock->foo(array('a'=>1, 'b'=>2, 'c'=>3)); - } - - public function testHasValueConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::hasValue(1))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, array('a'=>1), 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testHasValueConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::hasValue(2)); - $this->mock->foo(array('a'=>1, 'b'=>3)); - Mockery::close(); - } - - public function testOnConstraintMatchesArgument_ClosureEvaluatesToTrue() - { - $function = function ($arg) { - return $arg % 2 == 0; - }; - $this->mock->shouldReceive('foo')->with(Mockery::on($function))->once(); - $this->mock->foo(4); - } - - public function testOnConstraintMatchesArgumentOfTypeArray_ClosureEvaluatesToTrue() - { - $function = function ($arg) { - return is_array($arg); - }; - $this->mock->shouldReceive('foo')->with(Mockery::on($function))->once(); - $this->mock->foo([4, 5]); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testOnConstraintThrowsExceptionWhenConstraintUnmatched_ClosureEvaluatesToFalse() - { - $function = function ($arg) { - return $arg % 2 == 0; - }; - $this->mock->shouldReceive('foo')->with(Mockery::on($function)); - $this->mock->foo(5); - Mockery::close(); - } - - public function testMustBeConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::mustBe(2))->once(); - $this->mock->foo(2); - } - - public function testMustBeConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::mustBe(2))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testMustBeConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::mustBe(2)); - $this->mock->foo('2'); - Mockery::close(); - } - - public function testMustBeConstraintMatchesObjectArgumentWithEqualsComparisonNotIdentical() - { - $a = new stdClass; - $a->foo = 1; - $b = new stdClass; - $b->foo = 1; - $this->mock->shouldReceive('foo')->with(Mockery::mustBe($a))->once(); - $this->mock->foo($b); - } - - public function testMustBeConstraintNonMatchingCaseWithObject() - { - $a = new stdClass; - $a->foo = 1; - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::mustBe($a))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, $a, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testMustBeConstraintThrowsExceptionWhenConstraintUnmatchedWithObject() - { - $a = new stdClass; - $a->foo = 1; - $b = new stdClass; - $b->foo = 2; - $this->mock->shouldReceive('foo')->with(Mockery::mustBe($a)); - $this->mock->foo($b); - Mockery::close(); - } - - public function testMatchPrecedenceBasedOnExpectedCallsFavouringExplicitMatch() - { - $this->mock->shouldReceive('foo')->with(1)->once(); - $this->mock->shouldReceive('foo')->with(Mockery::any())->never(); - $this->mock->foo(1); - } - - public function testMatchPrecedenceBasedOnExpectedCallsFavouringAnyMatch() - { - $this->mock->shouldReceive('foo')->with(Mockery::any())->once(); - $this->mock->shouldReceive('foo')->with(1)->never(); - $this->mock->foo(1); - } - - public function testReturnNullIfIgnoreMissingMethodsSet() - { - $this->mock->shouldIgnoreMissing(); - $this->assertNull($this->mock->g(1, 2)); - } - - public function testReturnUndefinedIfIgnoreMissingMethodsSet() - { - $this->mock->shouldIgnoreMissing()->asUndefined(); - $this->assertTrue($this->mock->g(1, 2) instanceof \Mockery\Undefined); - } - - public function testReturnAsUndefinedAllowsForInfiniteSelfReturningChain() - { - $this->mock->shouldIgnoreMissing()->asUndefined(); - $this->assertTrue($this->mock->g(1, 2)->a()->b()->c() instanceof \Mockery\Undefined); - } - - public function testShouldIgnoreMissingFluentInterface() - { - $this->assertTrue($this->mock->shouldIgnoreMissing() instanceof \Mockery\MockInterface); - } - - public function testShouldIgnoreMissingAsUndefinedFluentInterface() - { - $this->assertTrue($this->mock->shouldIgnoreMissing()->asUndefined() instanceof \Mockery\MockInterface); - } - - public function testShouldIgnoreMissingAsDefinedProxiesToUndefinedAllowingToString() - { - $this->mock->shouldIgnoreMissing()->asUndefined(); - $this->assertInternalType('string', "{$this->mock->g()}"); - $this->assertInternalType('string', "{$this->mock}"); - } - - public function testShouldIgnoreMissingDefaultReturnValue() - { - $this->mock->shouldIgnoreMissing(1); - $this->assertEquals(1, $this->mock->a()); - } - - /** @issue #253 */ - public function testShouldIgnoreMissingDefaultSelfAndReturnsSelf() - { - $this->mock->shouldIgnoreMissing(\Mockery::self()); - $this->assertSame($this->mock, $this->mock->a()->b()); - } - - public function testToStringMagicMethodCanBeMocked() - { - $this->mock->shouldReceive("__toString")->andReturn('dave'); - $this->assertEquals("{$this->mock}", "dave"); - } - - public function testOptionalMockRetrieval() - { - $m = mock('f')->shouldReceive('foo')->with(1)->andReturn(3)->mock(); - $this->assertTrue($m instanceof \Mockery\MockInterface); - } - - public function testNotConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::not(1))->once(); - $this->mock->foo(2); - } - - public function testNotConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::not(2))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testNotConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::not(2)); - $this->mock->foo(2); - Mockery::close(); - } - - public function testAnyOfConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::anyOf(1, 2))->twice(); - $this->mock->foo(2); - $this->mock->foo(1); - } - - public function testAnyOfConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::anyOf(1, 2))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 2, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testAnyOfConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::anyOf(1, 2)); - $this->mock->foo(3); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testAnyOfConstraintThrowsExceptionWhenTrueIsNotAnExpectedArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::anyOf(1, 2)); - $this->mock->foo(true); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testAnyOfConstraintThrowsExceptionWhenFalseIsNotAnExpectedArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::anyOf(0, 1, 2)); - $this->mock->foo(false); - } - - public function testNotAnyOfConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::notAnyOf(1, 2))->once(); - $this->mock->foo(3); - } - - public function testNotAnyOfConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->times(3); - $this->mock->shouldReceive('foo')->with(1, Mockery::notAnyOf(1, 2))->never(); - $this->mock->foo(); - $this->mock->foo(1); - $this->mock->foo(1, 4, 3); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testNotAnyOfConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::notAnyOf(1, 2)); - $this->mock->foo(2); - Mockery::close(); - } - - public function testPatternConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(Mockery::pattern('/foo.*/'))->once(); - $this->mock->foo('foobar'); - } - - public function testPatternConstraintNonMatchingCase() - { - $this->mock->shouldReceive('foo')->once(); - $this->mock->shouldReceive('foo')->with(Mockery::pattern('/foo.*/'))->never(); - $this->mock->foo('bar'); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testPatternConstraintThrowsExceptionWhenConstraintUnmatched() - { - $this->mock->shouldReceive('foo')->with(Mockery::pattern('/foo.*/')); - $this->mock->foo('bar'); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testGlobalConfigMayForbidMockingNonExistentMethodsOnClasses() - { - \Mockery::getConfiguration()->allowMockingNonExistentMethods(false); - $mock = mock('stdClass'); - $mock->shouldReceive('foo'); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception - * @expectedExceptionMessage Mockery can't find 'SomeMadeUpClass' so can't mock it - */ - public function testGlobalConfigMayForbidMockingNonExistentMethodsOnAutoDeclaredClasses() - { - \Mockery::getConfiguration()->allowMockingNonExistentMethods(false); - $mock = mock('SomeMadeUpClass'); - $mock->shouldReceive('foo'); - Mockery::close(); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testGlobalConfigMayForbidMockingNonExistentMethodsOnObjects() - { - \Mockery::getConfiguration()->allowMockingNonExistentMethods(false); - $mock = mock(new stdClass); - $mock->shouldReceive('foo'); - Mockery::close(); - } - - public function testAnExampleWithSomeExpectationAmends() - { - $service = mock('MyService'); - $service->shouldReceive('login')->with('user', 'pass')->once()->andReturn(true); - $service->shouldReceive('hasBookmarksTagged')->with('php')->once()->andReturn(false); - $service->shouldReceive('addBookmark')->with(Mockery::pattern('/^http:/'), \Mockery::type('string'))->times(3)->andReturn(true); - $service->shouldReceive('hasBookmarksTagged')->with('php')->once()->andReturn(true); - - $this->assertTrue($service->login('user', 'pass')); - $this->assertFalse($service->hasBookmarksTagged('php')); - $this->assertTrue($service->addBookmark('http://example.com/1', 'some_tag1')); - $this->assertTrue($service->addBookmark('http://example.com/2', 'some_tag2')); - $this->assertTrue($service->addBookmark('http://example.com/3', 'some_tag3')); - $this->assertTrue($service->hasBookmarksTagged('php')); - } - - public function testAnExampleWithSomeExpectationAmendsOnCallCounts() - { - $service = mock('MyService'); - $service->shouldReceive('login')->with('user', 'pass')->once()->andReturn(true); - $service->shouldReceive('hasBookmarksTagged')->with('php')->once()->andReturn(false); - $service->shouldReceive('addBookmark')->with(Mockery::pattern('/^http:/'), \Mockery::type('string'))->times(3)->andReturn(true); - $service->shouldReceive('hasBookmarksTagged')->with('php')->twice()->andReturn(true); - - $this->assertTrue($service->login('user', 'pass')); - $this->assertFalse($service->hasBookmarksTagged('php')); - $this->assertTrue($service->addBookmark('http://example.com/1', 'some_tag1')); - $this->assertTrue($service->addBookmark('http://example.com/2', 'some_tag2')); - $this->assertTrue($service->addBookmark('http://example.com/3', 'some_tag3')); - $this->assertTrue($service->hasBookmarksTagged('php')); - $this->assertTrue($service->hasBookmarksTagged('php')); - - } - - public function testAnExampleWithSomeExpectationAmendsOnCallCounts_PHPUnitTest() - { - $service = $this->createMock('MyService2'); - $service->expects($this->once())->method('login')->with('user', 'pass')->will($this->returnValue(true)); - $service->expects($this->exactly(3))->method('hasBookmarksTagged')->with('php') - ->will($this->onConsecutiveCalls(false, true, true)); - $service->expects($this->exactly(3))->method('addBookmark') - ->with($this->matchesRegularExpression('/^http:/'), $this->isType('string')) - ->will($this->returnValue(true)); - - $this->assertTrue($service->login('user', 'pass')); - $this->assertFalse($service->hasBookmarksTagged('php')); - $this->assertTrue($service->addBookmark('http://example.com/1', 'some_tag1')); - $this->assertTrue($service->addBookmark('http://example.com/2', 'some_tag2')); - $this->assertTrue($service->addBookmark('http://example.com/3', 'some_tag3')); - $this->assertTrue($service->hasBookmarksTagged('php')); - $this->assertTrue($service->hasBookmarksTagged('php')); - } - - public function testMockedMethodsCallableFromWithinOriginalClass() - { - $mock = mock('MockeryTest_InterMethod1[doThird]'); - $mock->shouldReceive('doThird')->andReturn(true); - $this->assertTrue($mock->doFirst()); - } - - /** - * @group issue #20 - */ - public function testMockingDemeterChainsPassesMockeryExpectationToCompositeExpectation() - { - $mock = mock('Mockery_Demeterowski'); - $mock->shouldReceive('foo->bar->baz')->andReturn('Spam!'); - $demeter = new Mockery_UseDemeter($mock); - $this->assertSame('Spam!', $demeter->doit()); - } - - /** - * @group issue #20 - with args in demeter chain - */ - public function testMockingDemeterChainsPassesMockeryExpectationToCompositeExpectationWithArgs() - { - $mock = mock('Mockery_Demeterowski'); - $mock->shouldReceive('foo->bar->baz')->andReturn('Spam!'); - $demeter = new Mockery_UseDemeter($mock); - $this->assertSame('Spam!', $demeter->doitWithArgs()); - } - - public function testPassthruEnsuresRealMethodCalledForReturnValues() - { - $mock = mock('MockeryTest_SubjectCall1'); - $mock->shouldReceive('foo')->once()->passthru(); - $this->assertEquals('bar', $mock->foo()); - } - - public function testShouldIgnoreMissingExpectationBasedOnArgs() - { - $mock = mock("MyService2")->shouldIgnoreMissing(); - $mock->shouldReceive("hasBookmarksTagged")->with("dave")->once(); - $mock->hasBookmarksTagged("dave"); - $mock->hasBookmarksTagged("padraic"); - } - - public function testShouldDeferMissingExpectationBasedOnArgs() - { - $mock = mock("MockeryTest_SubjectCall1")->shouldDeferMissing(); - - $this->assertEquals('bar', $mock->foo()); - $this->assertEquals('bar', $mock->foo("baz")); - $this->assertEquals('bar', $mock->foo("qux")); - - $mock->shouldReceive("foo")->with("baz")->twice()->andReturn('123'); - $this->assertEquals('bar', $mock->foo()); - $this->assertEquals('123', $mock->foo("baz")); - $this->assertEquals('bar', $mock->foo("qux")); - - $mock->shouldReceive("foo")->withNoArgs()->once()->andReturn('456'); - $this->assertEquals('456', $mock->foo()); - $this->assertEquals('123', $mock->foo("baz")); - $this->assertEquals('bar', $mock->foo("qux")); - - } - - public function testCanReturnSelf() - { - $this->mock->shouldReceive("foo")->andReturnSelf(); - $this->assertSame($this->mock, $this->mock->foo()); - } - - public function testReturnsTrueIfTrueIsReturnValue() - { - $this->mock->shouldReceive("foo")->andReturnTrue(); - $this->assertSame(true, $this->mock->foo()); - } - - public function testReturnsFalseIfFalseIsReturnValue() - { - $this->mock->shouldReceive("foo")->andReturnFalse(); - $this->assertSame(false, $this->mock->foo()); - } - - public function testExpectationCanBeOverridden() - { - $this->mock->shouldReceive('foo')->once()->andReturn('green'); - $this->mock->shouldReceive('foo')->andReturn('blue'); - $this->assertEquals($this->mock->foo(), 'green'); - $this->assertEquals($this->mock->foo(), 'blue'); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testTimesExpectationForbidsFloatNumbers() - { - $this->mock->shouldReceive('foo')->times(1.3); - Mockery::close(); - } - - public function testIfExceptionIndicatesAbsenceOfMethodAndExpectationsOnMock() - { - $mock = mock('Mockery_Duck'); - - $this->expectException( - '\BadMethodCallException', - 'Method ' . get_class($mock) . - '::nonExistent() does not exist on this mock object' - ); - - $mock->nonExistent(); - Mockery::close(); - } - - public function testIfCallingMethodWithNoExpectationsHasSpecificExceptionMessage() - { - $mock = mock('Mockery_Duck'); - - $this->expectException( - '\BadMethodCallException', - 'Received ' . get_class($mock) . - '::quack(), ' . 'but no expectations were specified' - ); - - $mock->quack(); - Mockery::close(); - } - - public function testMockShouldNotBeAnonymousWhenImplementingSpecificInterface() - { - $waterMock = mock('IWater'); - $this->assertFalse($waterMock->mockery_isAnonymous()); - } - - /** - * @expectedException \Mockery\Exception - */ - public function testWetherMockWithInterfaceOnlyCanNotImplementNonExistingMethods() - { - \Mockery::getConfiguration()->allowMockingNonExistentMethods(false); - $waterMock = \Mockery::mock('IWater'); - $waterMock - ->shouldReceive('nonExistentMethod') - ->once() - ->andReturnNull(); - \Mockery::close(); - } - - public function testCountWithBecauseExceptionMessage() - { - $this->expectException(InvalidCountException::class); - $this->expectExceptionMessageRegexp( - '/Method foo\(\) from Mockery_[\d]+ should be called' . PHP_EOL . ' ' . - 'exactly 1 times but called 0 times. Because We like foo/' - ); - - $this->mock->shouldReceive('foo')->once()->because('We like foo'); - Mockery::close(); - } - - /** @test */ - public function it_uses_a_matchers_to_string_method_in_the_exception_output() - { - $mock = Mockery::mock(); - - $mock->expects()->foo(Mockery::hasKey('foo')); - - $this->expectException( - InvalidCountException::class, - "Method foo()" - ); - - Mockery::close(); - } -} - -interface IWater -{ - public function dry(); -} - -class MockeryTest_SubjectCall1 -{ - public function foo() - { - return 'bar'; - } -} - -class MockeryTest_InterMethod1 -{ - public function doFirst() - { - return $this->doSecond(); - } - - private function doSecond() - { - return $this->doThird(); - } - - public function doThird() - { - return false; - } -} - -class MyService2 -{ - public function login($user, $pass) - { - } - public function hasBookmarksTagged($tag) - { - } - public function addBookmark($uri, $tag) - { - } -} - -class Mockery_Duck -{ - public function quack() - { - } - public function swim() - { - } -} - -class Mockery_Duck_Nonswimmer -{ - public function quack() - { - } -} - -class Mockery_Demeterowski -{ - public function foo() - { - return $this; - } - public function bar() - { - return $this; - } - public function baz() - { - return 'Ham!'; - } -} - -class Mockery_UseDemeter -{ - public function __construct($demeter) - { - $this->demeter = $demeter; - } - public function doit() - { - return $this->demeter->foo()->bar()->baz(); - } - public function doitWithArgs() - { - return $this->demeter->foo("foo")->bar("bar")->baz("baz"); - } -} - -class MockeryTest_Foo -{ - public function foo() - { - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithIterableTypeHints.php b/vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithIterableTypeHints.php deleted file mode 100644 index 49739c60..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithIterableTypeHints.php +++ /dev/null @@ -1,29 +0,0 @@ -assertTrue($target->hasInternalAncestor()); - - $target = new DefinedTargetClass(new \ReflectionClass("Mockery\MockeryTest_ClassThatExtendsArrayObject")); - $this->assertTrue($target->hasInternalAncestor()); - - $target = new DefinedTargetClass(new \ReflectionClass("Mockery\DefinedTargetClassTest")); - $this->assertFalse($target->hasInternalAncestor()); - } -} - -class MockeryTest_ClassThatExtendsArrayObject extends \ArrayObject -{ -} diff --git a/vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationBuilderTest.php b/vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationBuilderTest.php deleted file mode 100644 index 8a5a83ac..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationBuilderTest.php +++ /dev/null @@ -1,85 +0,0 @@ -assertContains('__halt_compiler', $builder->getMockConfiguration()->getBlackListedMethods()); - - // need a builtin for this - $this->markTestSkipped("Need a builtin class with a method that is a reserved word"); - } - - /** - * @test - */ - public function magicMethodsAreBlackListedByDefault() - { - $builder = new MockConfigurationBuilder; - $builder->addTarget(ClassWithMagicCall::class); - $methods = $builder->getMockConfiguration()->getMethodsToMock(); - $this->assertEquals(1, count($methods)); - $this->assertEquals("foo", $methods[0]->getName()); - } - - /** @test */ - public function xdebugs_debug_info_is_black_listed_by_default() - { - $builder = new MockConfigurationBuilder; - $builder->addTarget(ClassWithDebugInfo::class); - $methods = $builder->getMockConfiguration()->getMethodsToMock(); - $this->assertEquals(1, count($methods)); - $this->assertEquals("foo", $methods[0]->getName()); - } -} - -class ClassWithMagicCall -{ - public function foo() - { - } - - public function __call($method, $args) - { - } -} - -class ClassWithDebugInfo -{ - public function foo() - { - } - - public function __debugInfo() - { - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationTest.php b/vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationTest.php deleted file mode 100644 index a1b1433e..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationTest.php +++ /dev/null @@ -1,218 +0,0 @@ -getMethodsToMock(); - $this->assertEquals(1, count($methods)); - $this->assertEquals("bar", $methods[0]->getName()); - } - - /** - * @test - */ - public function blackListsAreCaseInsensitive() - { - $config = new MockConfiguration(array("Mockery\Generator\\TestSubject"), array("FOO")); - - $methods = $config->getMethodsToMock(); - $this->assertEquals(1, count($methods)); - $this->assertEquals("bar", $methods[0]->getName()); - } - - - /** - * @test - */ - public function onlyWhiteListedMethodsShouldBeInListToBeMocked() - { - $config = new MockConfiguration(array("Mockery\Generator\\TestSubject"), array(), array('foo')); - - $methods = $config->getMethodsToMock(); - $this->assertEquals(1, count($methods)); - $this->assertEquals("foo", $methods[0]->getName()); - } - - /** - * @test - */ - public function whitelistOverRulesBlackList() - { - $config = new MockConfiguration(array("Mockery\Generator\\TestSubject"), array("foo"), array("foo")); - - $methods = $config->getMethodsToMock(); - $this->assertEquals(1, count($methods)); - $this->assertEquals("foo", $methods[0]->getName()); - } - - /** - * @test - */ - public function whiteListsAreCaseInsensitive() - { - $config = new MockConfiguration(array("Mockery\Generator\\TestSubject"), array(), array("FOO")); - - $methods = $config->getMethodsToMock(); - $this->assertEquals(1, count($methods)); - $this->assertEquals("foo", $methods[0]->getName()); - } - - /** - * @test - */ - public function finalMethodsAreExcluded() - { - $config = new MockConfiguration(array("Mockery\Generator\\ClassWithFinalMethod")); - - $methods = $config->getMethodsToMock(); - $this->assertEquals(1, count($methods)); - $this->assertEquals("bar", $methods[0]->getName()); - } - - /** - * @test - */ - public function shouldIncludeMethodsFromAllTargets() - { - $config = new MockConfiguration(array("Mockery\\Generator\\TestInterface", "Mockery\\Generator\\TestInterface2")); - $methods = $config->getMethodsToMock(); - $this->assertEquals(2, count($methods)); - } - - /** - * @test - * @expectedException Mockery\Exception - */ - public function shouldThrowIfTargetClassIsFinal() - { - $config = new MockConfiguration(array("Mockery\\Generator\\TestFinal")); - $config->getTargetClass(); - } - - /** - * @test - */ - public function shouldTargetIteratorAggregateIfTryingToMockTraversable() - { - $config = new MockConfiguration(array("\\Traversable")); - - $interfaces = $config->getTargetInterfaces(); - $this->assertEquals(1, count($interfaces)); - $first = array_shift($interfaces); - $this->assertEquals("IteratorAggregate", $first->getName()); - } - - /** - * @test - */ - public function shouldTargetIteratorAggregateIfTraversableInTargetsTree() - { - $config = new MockConfiguration(array("Mockery\Generator\TestTraversableInterface")); - - $interfaces = $config->getTargetInterfaces(); - $this->assertEquals(2, count($interfaces)); - $this->assertEquals("IteratorAggregate", $interfaces[0]->getName()); - $this->assertEquals("Mockery\Generator\TestTraversableInterface", $interfaces[1]->getName()); - } - - /** - * @test - */ - public function shouldBringIteratorToHeadOfTargetListIfTraversablePresent() - { - $config = new MockConfiguration(array("Mockery\Generator\TestTraversableInterface2")); - - $interfaces = $config->getTargetInterfaces(); - $this->assertEquals(2, count($interfaces)); - $this->assertEquals("Iterator", $interfaces[0]->getName()); - $this->assertEquals("Mockery\Generator\TestTraversableInterface2", $interfaces[1]->getName()); - } - - /** - * @test - */ - public function shouldBringIteratorAggregateToHeadOfTargetListIfTraversablePresent() - { - $config = new MockConfiguration(array("Mockery\Generator\TestTraversableInterface3")); - - $interfaces = $config->getTargetInterfaces(); - $this->assertEquals(2, count($interfaces)); - $this->assertEquals("IteratorAggregate", $interfaces[0]->getName()); - $this->assertEquals("Mockery\Generator\TestTraversableInterface3", $interfaces[1]->getName()); - } -} - -interface TestTraversableInterface extends \Traversable -{ -} -interface TestTraversableInterface2 extends \Traversable, \Iterator -{ -} -interface TestTraversableInterface3 extends \Traversable, \IteratorAggregate -{ -} - -final class TestFinal -{ -} - -interface TestInterface -{ - public function foo(); -} - -interface TestInterface2 -{ - public function bar(); -} - -class TestSubject -{ - public function foo() - { - } - - public function bar() - { - } -} - -class ClassWithFinalMethod -{ - final public function foo() - { - } - - public function bar() - { - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/CallTypeHintPassTest.php b/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/CallTypeHintPassTest.php deleted file mode 100644 index 99a26de9..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/CallTypeHintPassTest.php +++ /dev/null @@ -1,59 +0,0 @@ - true, - ))->shouldDeferMissing(); - $code = $pass->apply(static::CODE, $config); - $this->assertContains('__call($method, $args)', $code); - } - - /** - * @test - */ - public function shouldRemoveCallStaticTypeHintIfRequired() - { - $pass = new CallTypeHintPass; - $config = m::mock("Mockery\Generator\MockConfiguration", array( - "requiresCallStaticTypeHintRemoval" => true, - ))->shouldDeferMissing(); - $code = $pass->apply(static::CODE, $config); - $this->assertContains('__callStatic($method, $args)', $code); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/ClassNamePassTest.php b/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/ClassNamePassTest.php deleted file mode 100644 index d9209b86..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/ClassNamePassTest.php +++ /dev/null @@ -1,78 +0,0 @@ -pass = new ClassNamePass(); - } - - /** - * @test - */ - public function shouldRemoveNamespaceDefinition() - { - $config = new MockConfiguration(array(), array(), array(), "Dave\Dave"); - $code = $this->pass->apply(static::CODE, $config); - $this->assertNotContains('namespace Mockery;', $code); - } - - /** - * @test - */ - public function shouldReplaceNamespaceIfClassNameIsNamespaced() - { - $config = new MockConfiguration(array(), array(), array(), "Dave\Dave"); - $code = $this->pass->apply(static::CODE, $config); - $this->assertNotContains('namespace Mockery;', $code); - $this->assertContains('namespace Dave;', $code); - } - - /** - * @test - */ - public function shouldReplaceClassNameWithSpecifiedName() - { - $config = new MockConfiguration(array(), array(), array(), "Dave"); - $code = $this->pass->apply(static::CODE, $config); - $this->assertContains('class Dave', $code); - } - - /** - * @test - */ - public function shouldRemoveLeadingBackslashesFromNamespace() - { - $config = new MockConfiguration(array(), array(), array(), "\Dave\Dave"); - $code = $this->pass->apply(static::CODE, $config); - $this->assertContains('namespace Dave;', $code); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InstanceMockPassTest.php b/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InstanceMockPassTest.php deleted file mode 100644 index 7523157b..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InstanceMockPassTest.php +++ /dev/null @@ -1,44 +0,0 @@ -setInstanceMock(true); - $config = $builder->getMockConfiguration(); - $pass = new InstanceMockPass; - $code = $pass->apply('class Dave { }', $config); - $this->assertContains('public function __construct', $code); - $this->assertContains('protected $_mockery_ignoreVerification', $code); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InterfacePassTest.php b/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InterfacePassTest.php deleted file mode 100644 index 99301652..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InterfacePassTest.php +++ /dev/null @@ -1,66 +0,0 @@ - array(), - )); - - $code = $pass->apply(static::CODE, $config); - $this->assertEquals(static::CODE, $code); - } - - /** - * @test - */ - public function shouldAddAnyInterfaceNamesToImplementsDefinition() - { - $pass = new InterfacePass; - - $config = m::mock("Mockery\Generator\MockConfiguration", array( - "getTargetInterfaces" => array( - m::mock(array("getName" => "Dave\Dave")), - m::mock(array("getName" => "Paddy\Paddy")), - ), - )); - - $code = $pass->apply(static::CODE, $config); - - $this->assertContains("implements MockInterface, \Dave\Dave, \Paddy\Paddy", $code); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPassTest.php b/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPassTest.php deleted file mode 100644 index a1957ff1..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPassTest.php +++ /dev/null @@ -1,392 +0,0 @@ -pass = new MagicMethodTypeHintsPass; - $this->mockedConfiguration = m::mock( - 'Mockery\Generator\MockConfiguration' - ); - } - - /** - * @test - */ - public function itShouldWork() - { - $this->assertTrue(true); - } - - /** - * @test - */ - public function itShouldGrabClassMagicMethods() - { - $targetClass = DefinedTargetClass::factory( - 'Mockery\Test\Generator\StringManipulation\Pass\MagicDummy' - ); - $magicMethods = $this->pass->getMagicMethods($targetClass); - - $this->assertCount(6, $magicMethods); - $this->assertEquals('__isset', $magicMethods[0]->getName()); - } - - /** - * @test - */ - public function itShouldGrabInterfaceMagicMethods() - { - $targetClass = DefinedTargetClass::factory( - 'Mockery\Test\Generator\StringManipulation\Pass\MagicInterfaceDummy' - ); - $magicMethods = $this->pass->getMagicMethods($targetClass); - - $this->assertCount(6, $magicMethods); - $this->assertEquals('__isset', $magicMethods[0]->getName()); - } - - /** - * @test - */ - public function itShouldAddStringTypeHintOnMagicMethod() - { - $this->configureForClass(); - $code = $this->pass->apply( - 'public function __isset($name) {}', - $this->mockedConfiguration - ); - $this->assertContains('string $name', $code); - - $this->configureForInterface(); - $code = $this->pass->apply( - 'public function __isset($name) {}', - $this->mockedConfiguration - ); - $this->assertContains('string $name', $code); - } - - /** - * @test - */ - public function itShouldAddStringTypeHintOnAllMagicMethods() - { - $this->configureForInterfaces([ - 'Mockery\Test\Generator\StringManipulation\Pass\MagicInterfaceDummy', - 'Mockery\Test\Generator\StringManipulation\Pass\MagicUnsetInterfaceDummy' - ]); - $code = $this->pass->apply( - 'public function __isset($name) {}', - $this->mockedConfiguration - ); - $this->assertContains('string $name', $code); - $code = $this->pass->apply( - 'public function __unset($name) {}', - $this->mockedConfiguration - ); - $this->assertContains('string $name', $code); - } - - /** - * @test - */ - public function itShouldAddBooleanReturnOnMagicMethod() - { - $this->configureForClass(); - $code = $this->pass->apply( - 'public function __isset($name) {}', - $this->mockedConfiguration - ); - $this->assertContains(' : bool', $code); - - $this->configureForInterface(); - $code = $this->pass->apply( - 'public function __isset($name) {}', - $this->mockedConfiguration - ); - $this->assertContains(' : bool', $code); - } - - /** - * @test - */ - public function itShouldAddTypeHintsOnToStringMethod() - { - $this->configureForClass(); - $code = $this->pass->apply( - 'public function __toString() {}', - $this->mockedConfiguration - ); - $this->assertContains(' : string', $code); - - $this->configureForInterface(); - $code = $this->pass->apply( - 'public function __toString() {}', - $this->mockedConfiguration - ); - $this->assertContains(' : string', $code); - } - - /** - * @test - */ - public function itShouldAddTypeHintsOnCallMethod() - { - $this->configureForClass(); - $code = $this->pass->apply( - 'public function __call($method, array $args) {}', - $this->mockedConfiguration - ); - $this->assertContains('string $method', $code); - - $this->configureForInterface(); - $code = $this->pass->apply( - 'public function __call($method, array $args) {}', - $this->mockedConfiguration - ); - $this->assertContains('string $method', $code); - } - - /** - * @test - */ - public function itShouldAddTypeHintsOnCallStaticMethod() - { - $this->configureForClass(); - $code = $this->pass->apply( - 'public static function __callStatic($method, array $args) {}', - $this->mockedConfiguration - ); - $this->assertContains('string $method', $code); - - $this->configureForInterface(); - $code = $this->pass->apply( - 'public static function __callStatic($method, array $args) {}', - $this->mockedConfiguration - ); - $this->assertContains('string $method', $code); - } - - /** - * @test - */ - public function itShouldNotAddReturnTypeHintIfOneIsNotFound() - { - $this->configureForClass('Mockery\Test\Generator\StringManipulation\Pass\MagicReturnDummy'); - $code = $this->pass->apply( - 'public static function __isset($parameter) {}', - $this->mockedConfiguration - ); - $this->assertContains(') {', $code); - - $this->configureForInterface('Mockery\Test\Generator\StringManipulation\Pass\MagicReturnInterfaceDummy'); - $code = $this->pass->apply( - 'public static function __isset($parameter) {}', - $this->mockedConfiguration - ); - $this->assertContains(') {', $code); - } - - /** - * @test - */ - public function itShouldReturnEmptyArrayIfClassDoesNotHaveMagicMethods() - { - $targetClass = DefinedTargetClass::factory( - '\StdClass' - ); - $magicMethods = $this->pass->getMagicMethods($targetClass); - $this->assertInternalType('array', $magicMethods); - $this->assertEmpty($magicMethods); - } - - /** - * @test - */ - public function itShouldReturnEmptyArrayIfClassTypeIsNotExpected() - { - $magicMethods = $this->pass->getMagicMethods(null); - $this->assertInternalType('array', $magicMethods); - $this->assertEmpty($magicMethods); - } - - /** - * Tests if the pass correclty replaces all the magic - * method parameters with those found in the - * Mock class. This is made to avoid variable - * conflicts withing Mock's magic methods - * implementations. - * - * @test - */ - public function itShouldGrabAndReplaceAllParametersWithTheCodeStringMatches() - { - $this->configureForClass(); - $code = $this->pass->apply( - 'public function __call($method, array $args) {}', - $this->mockedConfiguration - ); - $this->assertContains('$method', $code); - $this->assertContains('array $args', $code); - - $this->configureForInterface(); - $code = $this->pass->apply( - 'public function __call($method, array $args) {}', - $this->mockedConfiguration - ); - $this->assertContains('$method', $code); - $this->assertContains('array $args', $code); - } - - protected function configureForClass(string $className = 'Mockery\Test\Generator\StringManipulation\Pass\MagicDummy') - { - $targetClass = DefinedTargetClass::factory($className); - - $this->mockedConfiguration - ->shouldReceive('getTargetClass') - ->andReturn($targetClass) - ->byDefault(); - $this->mockedConfiguration - ->shouldReceive('getTargetInterfaces') - ->andReturn([]) - ->byDefault(); - } - - protected function configureForInterface(string $interfaceName = 'Mockery\Test\Generator\StringManipulation\Pass\MagicDummy') - { - $targetInterface = DefinedTargetClass::factory($interfaceName); - - $this->mockedConfiguration - ->shouldReceive('getTargetClass') - ->andReturn(null) - ->byDefault(); - $this->mockedConfiguration - ->shouldReceive('getTargetInterfaces') - ->andReturn([$targetInterface]) - ->byDefault(); - } - - protected function configureForInterfaces(array $interfaceNames) - { - $targetInterfaces = array_map([DefinedTargetClass::class, 'factory'], $interfaceNames); - - $this->mockedConfiguration - ->shouldReceive('getTargetClass') - ->andReturn(null) - ->byDefault(); - $this->mockedConfiguration - ->shouldReceive('getTargetInterfaces') - ->andReturn($targetInterfaces) - ->byDefault(); - } -} - -class MagicDummy -{ - public function __isset(string $name) : bool - { - return false; - } - - public function __toString() : string - { - return ''; - } - - public function __wakeup() - { - } - - public function __destruct() - { - } - - public function __call(string $name, array $arguments) : string - { - } - - public static function __callStatic(string $name, array $arguments) : int - { - } - - public function nonMagicMethod() - { - } -} - -class MagicReturnDummy -{ - public function __isset(string $name) - { - return false; - } -} - -interface MagicInterfaceDummy -{ - public function __isset(string $name) : bool; - - public function __toString() : string; - - public function __wakeup(); - - public function __destruct(); - - public function __call(string $name, array $arguments) : string; - - public static function __callStatic(string $name, array $arguments) : int; - - public function nonMagicMethod(); -} - -interface MagicReturnInterfaceDummy -{ - public function __isset(string $name); -} - -interface MagicUnsetInterfaceDummy -{ - public function __unset(string $name); -} diff --git a/vendor/mockery/mockery/tests/Mockery/GlobalHelpersTest.php b/vendor/mockery/mockery/tests/Mockery/GlobalHelpersTest.php deleted file mode 100644 index 0f2b7c4a..00000000 --- a/vendor/mockery/mockery/tests/Mockery/GlobalHelpersTest.php +++ /dev/null @@ -1,63 +0,0 @@ -assertInstanceOf(\Mockery\MockInterface::class, $double); - $this->expectException(\Exception::class); - $double->foo(); - } - - /** @test */ - public function spy_creates_a_spy() - { - $double = spy(); - - $this->assertInstanceOf(\Mockery\MockInterface::class, $double); - $double->foo(); - } - - /** @test */ - public function named_mock_creates_a_named_mock() - { - $className = "Class".uniqid(); - $double = namedMock($className); - - $this->assertInstanceOf(\Mockery\MockInterface::class, $double); - $this->assertInstanceOf($className, $double); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/HamcrestExpectationTest.php b/vendor/mockery/mockery/tests/Mockery/HamcrestExpectationTest.php deleted file mode 100644 index 659397c0..00000000 --- a/vendor/mockery/mockery/tests/Mockery/HamcrestExpectationTest.php +++ /dev/null @@ -1,62 +0,0 @@ -mock = mock('foo'); - } - - - public function tearDown() - { - \Mockery::getConfiguration()->allowMockingNonExistentMethods(true); - parent::tearDown(); - } - - /** Just a quickie roundup of a few Hamcrest matchers to check nothing obvious out of place **/ - - public function testAnythingConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(anything())->once(); - $this->mock->foo(2); - } - - public function testGreaterThanConstraintMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(greaterThan(1))->once(); - $this->mock->foo(2); - } - - /** - * @expectedException Mockery\Exception - */ - public function testGreaterThanConstraintNotMatchesArgument() - { - $this->mock->shouldReceive('foo')->with(greaterThan(1)); - $this->mock->foo(1); - Mockery::close(); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Loader/EvalLoaderTest.php b/vendor/mockery/mockery/tests/Mockery/Loader/EvalLoaderTest.php deleted file mode 100644 index 025a1dab..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Loader/EvalLoaderTest.php +++ /dev/null @@ -1,35 +0,0 @@ -getLoader()->load($definition); - - $this->assertTrue(class_exists($className)); - } - - abstract public function getLoader(); -} diff --git a/vendor/mockery/mockery/tests/Mockery/Loader/RequireLoaderTest.php b/vendor/mockery/mockery/tests/Mockery/Loader/RequireLoaderTest.php deleted file mode 100644 index 9f0664a3..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Loader/RequireLoaderTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertionFailedError = '\PHPUnit\Framework\AssertionFailedError'; - $this->frameworkConstraint = '\PHPUnit\Framework\Constraint'; - } else { - $this->assertionFailedError = '\PHPUnit_Framework_AssertionFailedError'; - $this->frameworkConstraint = '\PHPUnit_Framework_Constraint'; - } - - $this->constraint = \Mockery::mock($this->frameworkConstraint); - $this->matcher = new PHPUnitConstraint($this->constraint); - $this->rethrowingMatcher = new PHPUnitConstraint($this->constraint, true); - } - - public function testMatches() - { - $value1 = 'value1'; - $value2 = 'value1'; - $value3 = 'value1'; - $this->constraint - ->shouldReceive('evaluate') - ->once() - ->with($value1) - ->getMock() - ->shouldReceive('evaluate') - ->once() - ->with($value2) - ->andThrow($this->assertionFailedError) - ->getMock() - ->shouldReceive('evaluate') - ->once() - ->with($value3) - ->getMock() - ; - $this->assertTrue($this->matcher->match($value1)); - $this->assertFalse($this->matcher->match($value2)); - $this->assertTrue($this->rethrowingMatcher->match($value3)); - } - - public function testMatchesWhereNotMatchAndRethrowing() - { - $this->expectException($this->assertionFailedError); - $value = 'value'; - $this->constraint - ->shouldReceive('evaluate') - ->once() - ->with($value) - ->andThrow($this->assertionFailedError) - ; - $this->rethrowingMatcher->match($value); - } - - public function test__toString() - { - $this->assertEquals('', $this->matcher); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Matcher/SubsetTest.php b/vendor/mockery/mockery/tests/Mockery/Matcher/SubsetTest.php deleted file mode 100644 index e45e17cf..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Matcher/SubsetTest.php +++ /dev/null @@ -1,97 +0,0 @@ - 123]); - - $actual = [ - 'foo' => 'bar', - 'dave' => 123, - 'bar' => 'baz', - ]; - - $this->assertTrue($matcher->match($actual)); - } - - /** @test */ - public function it_recursively_matches() - { - $matcher = Subset::strict(['foo' => ['bar' => ['baz' => 123]]]); - - $actual = [ - 'foo' => [ - 'bar' => [ - 'baz' => 123, - ] - ], - 'dave' => 123, - 'bar' => 'baz', - ]; - - $this->assertTrue($matcher->match($actual)); - } - - /** @test */ - public function it_is_strict_by_default() - { - $matcher = new Subset(['dave' => 123]); - - $actual = [ - 'foo' => 'bar', - 'dave' => 123.0, - 'bar' => 'baz', - ]; - - $this->assertFalse($matcher->match($actual)); - } - - /** @test */ - public function it_can_run_a_loose_comparison() - { - $matcher = Subset::loose(['dave' => 123]); - - $actual = [ - 'foo' => 'bar', - 'dave' => 123.0, - 'bar' => 'baz', - ]; - - $this->assertTrue($matcher->match($actual)); - } - - /** @test */ - public function it_returns_false_if_actual_is_not_an_array() - { - $matcher = new Subset(['dave' => 123]); - - $actual = null; - - $this->assertFalse($matcher->match($actual)); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockClassWithFinalWakeupTest.php b/vendor/mockery/mockery/tests/Mockery/MockClassWithFinalWakeupTest.php deleted file mode 100644 index f84b30d3..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockClassWithFinalWakeupTest.php +++ /dev/null @@ -1,94 +0,0 @@ - - * @license http://github.com/padraic/mockery/blob/master/LICENSE New BSD License - */ - -namespace test\Mockery; - -use Mockery\Adapter\Phpunit\MockeryTestCase; - -class MockClassWithFinalWakeupTest extends MockeryTestCase -{ - protected function setUp() - { - $this->container = new \Mockery\Container; - } - - protected function tearDown() - { - $this->container->mockery_close(); - } - - /** - * @test - * - * Test that we are able to create partial mocks of classes that have - * a __wakeup method marked as final. As long as __wakeup is not one of the - * mocked methods. - */ - public function testCreateMockForClassWithFinalWakeup() - { - $mock = $this->container->mock("test\Mockery\TestWithFinalWakeup"); - $this->assertInstanceOf("test\Mockery\TestWithFinalWakeup", $mock); - $this->assertEquals('test\Mockery\TestWithFinalWakeup::__wakeup', $mock->__wakeup()); - - $mock = $this->container->mock('test\Mockery\SubclassWithFinalWakeup'); - $this->assertInstanceOf('test\Mockery\SubclassWithFinalWakeup', $mock); - $this->assertEquals('test\Mockery\TestWithFinalWakeup::__wakeup', $mock->__wakeup()); - } - - public function testCreateMockForClassWithNonFinalWakeup() - { - $mock = $this->container->mock('test\Mockery\TestWithNonFinalWakeup'); - $this->assertInstanceOf('test\Mockery\TestWithNonFinalWakeup', $mock); - - // Make sure __wakeup is overridden and doesn't return anything. - $this->assertNull($mock->__wakeup()); - } -} - -class TestWithFinalWakeup -{ - public function foo() - { - return 'foo'; - } - - public function bar() - { - return 'bar'; - } - - final public function __wakeup() - { - return __METHOD__; - } -} - -class SubclassWithFinalWakeup extends TestWithFinalWakeup -{ -} - -class TestWithNonFinalWakeup -{ - public function __wakeup() - { - return __METHOD__; - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockClassWithMethodOverloadingTest.php b/vendor/mockery/mockery/tests/Mockery/MockClassWithMethodOverloadingTest.php deleted file mode 100644 index b0284dc0..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockClassWithMethodOverloadingTest.php +++ /dev/null @@ -1,43 +0,0 @@ -makePartial(); - $this->assertInstanceOf('test\Mockery\TestWithMethodOverloading', $mock); - - // TestWithMethodOverloading::__call wouldn't be used. See Gotchas!. - $mock->randomMethod(); - } - - public function testCreateMockForClassWithMethodOverloadingWithExistingMethod() - { - $mock = mock('test\Mockery\TestWithMethodOverloading') - ->makePartial(); - $this->assertInstanceOf('test\Mockery\TestWithMethodOverloading', $mock); - - $this->assertSame(1, $mock->thisIsRealMethod()); - } -} - -class TestWithMethodOverloading -{ - public function __call($name, $arguments) - { - return 1; - } - - public function thisIsRealMethod() - { - return 1; - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockClassWithUnknownTypeHintTest.php b/vendor/mockery/mockery/tests/Mockery/MockClassWithUnknownTypeHintTest.php deleted file mode 100644 index 8706f8d7..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockClassWithUnknownTypeHintTest.php +++ /dev/null @@ -1,43 +0,0 @@ -assertInstanceOf(MockInterface::class, $mock); - } -} - -class HasUnknownClassAsTypeHintOnMethod -{ - public function foo(\UnknownTestClass\Bar $bar) - { - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockTest.php b/vendor/mockery/mockery/tests/Mockery/MockTest.php deleted file mode 100644 index c05624c2..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockTest.php +++ /dev/null @@ -1,186 +0,0 @@ -allowMockingNonExistentMethods(false); - $m = mock(); - $m->shouldReceive("test123")->andReturn(true); - assertThat($m->test123(), equalTo(true)); - \Mockery::getConfiguration()->allowMockingNonExistentMethods(true); - } - - public function testMockWithNotAllowingMockingOfNonExistentMethodsCanBeGivenAdditionalMethodsToMockEvenIfTheyDontExistOnClass() - { - \Mockery::getConfiguration()->allowMockingNonExistentMethods(false); - $m = mock('ExampleClassForTestingNonExistentMethod'); - $m->shouldAllowMockingMethod('testSomeNonExistentMethod'); - $m->shouldReceive("testSomeNonExistentMethod")->andReturn(true); - assertThat($m->testSomeNonExistentMethod(), equalTo(true)); - \Mockery::getConfiguration()->allowMockingNonExistentMethods(true); - } - - public function testShouldAllowMockingMethodReturnsMockInstance() - { - $m = Mockery::mock('someClass'); - $this->assertInstanceOf('Mockery\MockInterface', $m->shouldAllowMockingMethod('testFunction')); - } - - public function testShouldAllowMockingProtectedMethodReturnsMockInstance() - { - $m = Mockery::mock('someClass'); - $this->assertInstanceOf('Mockery\MockInterface', $m->shouldAllowMockingProtectedMethods('testFunction')); - } - - public function testMockAddsToString() - { - $mock = mock('ClassWithNoToString'); - $this->assertTrue(method_exists($mock, '__toString')); - } - - public function testMockToStringMayBeDeferred() - { - $mock = mock('ClassWithToString')->shouldDeferMissing(); - $this->assertEquals("foo", (string)$mock); - } - - public function testMockToStringShouldIgnoreMissingAlwaysReturnsString() - { - $mock = mock('ClassWithNoToString')->shouldIgnoreMissing(); - $this->assertNotEquals('', (string)$mock); - - $mock->asUndefined(); - $this->assertNotEquals('', (string)$mock); - } - - public function testShouldIgnoreMissing() - { - $mock = mock('ClassWithNoToString')->shouldIgnoreMissing(); - $this->assertNull($mock->nonExistingMethod()); - } - - /** - * @expectedException Mockery\Exception - */ - public function testShouldIgnoreMissingDisallowMockingNonExistentMethodsUsingGlobalConfiguration() - { - Mockery::getConfiguration()->allowMockingNonExistentMethods(false); - $mock = mock('ClassWithMethods')->shouldIgnoreMissing(); - $mock->shouldReceive('nonExistentMethod'); - } - - /** - * @expectedException BadMethodCallException - */ - public function testShouldIgnoreMissingCallingNonExistentMethodsUsingGlobalConfiguration() - { - Mockery::getConfiguration()->allowMockingNonExistentMethods(false); - $mock = mock('ClassWithMethods')->shouldIgnoreMissing(); - $mock->nonExistentMethod(); - } - - public function testShouldIgnoreMissingCallingExistentMethods() - { - Mockery::getConfiguration()->allowMockingNonExistentMethods(false); - $mock = mock('ClassWithMethods')->shouldIgnoreMissing(); - assertThat(nullValue($mock->foo())); - $mock->shouldReceive('bar')->passthru(); - assertThat($mock->bar(), equalTo('bar')); - } - - public function testShouldIgnoreMissingCallingNonExistentMethods() - { - Mockery::getConfiguration()->allowMockingNonExistentMethods(true); - $mock = mock('ClassWithMethods')->shouldIgnoreMissing(); - assertThat(nullValue($mock->foo())); - assertThat(nullValue($mock->bar())); - assertThat(nullValue($mock->nonExistentMethod())); - - $mock->shouldReceive(array('foo' => 'new_foo', 'nonExistentMethod' => 'result')); - $mock->shouldReceive('bar')->passthru(); - assertThat($mock->foo(), equalTo('new_foo')); - assertThat($mock->bar(), equalTo('bar')); - assertThat($mock->nonExistentMethod(), equalTo('result')); - } - - public function testCanMockException() - { - $exception = Mockery::mock('Exception'); - $this->assertInstanceOf('Exception', $exception); - } - - public function testCanMockSubclassOfException() - { - $errorException = Mockery::mock('ErrorException'); - $this->assertInstanceOf('ErrorException', $errorException); - $this->assertInstanceOf('Exception', $errorException); - } - - public function testCallingShouldReceiveWithoutAValidMethodName() - { - $mock = Mockery::mock(); - - $this->expectException("InvalidArgumentException", "Received empty method name"); - $mock->shouldReceive(""); - } - - /** - * @expectedException Mockery\Exception - */ - public function testShouldThrowExceptionWithInvalidClassName() - { - mock('ClassName.CannotContainDot'); - } -} - - -class ExampleClassForTestingNonExistentMethod -{ -} - -class ClassWithToString -{ - public function __toString() - { - return 'foo'; - } -} - -class ClassWithNoToString -{ -} - -class ClassWithMethods -{ - public function foo() - { - return 'foo'; - } - - public function bar() - { - return 'bar'; - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockeryCanMockClassesWithSemiReservedWordsTest.php b/vendor/mockery/mockery/tests/Mockery/MockeryCanMockClassesWithSemiReservedWordsTest.php deleted file mode 100644 index fe8ed916..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockeryCanMockClassesWithSemiReservedWordsTest.php +++ /dev/null @@ -1,28 +0,0 @@ -shouldReceive("include")->andReturn("foo"); - - $this->assertTrue(method_exists($mock, "include")); - $this->assertEquals("foo", $mock->include()); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockeryCanMockMultipleInterfacesWhichOverlapTest.php b/vendor/mockery/mockery/tests/Mockery/MockeryCanMockMultipleInterfacesWhichOverlapTest.php deleted file mode 100644 index 6f494283..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockeryCanMockMultipleInterfacesWhichOverlapTest.php +++ /dev/null @@ -1,65 +0,0 @@ -mock('Mockery\Tests\Evenement_EventEmitter', 'Mockery\Tests\Chatroulette_ConnectionInterface'); - } -} - -interface Evenement_EventEmitterInterface -{ - public function on($name, $callback); -} - -class Evenement_EventEmitter implements Evenement_EventEmitterInterface -{ - public function on($name, $callback) - { - } -} - -interface React_StreamInterface extends Evenement_EventEmitterInterface -{ - public function close(); -} - -interface React_ReadableStreamInterface extends React_StreamInterface -{ - public function pause(); -} - -interface React_WritableStreamInterface extends React_StreamInterface -{ - public function write($data); -} - -interface Chatroulette_ConnectionInterface extends React_ReadableStreamInterface, React_WritableStreamInterface -{ -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockingMethodsWithIterableTypeHintsTest.php b/vendor/mockery/mockery/tests/Mockery/MockingMethodsWithIterableTypeHintsTest.php deleted file mode 100644 index e1b5e574..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockingMethodsWithIterableTypeHintsTest.php +++ /dev/null @@ -1,39 +0,0 @@ -assertTrue($mock instanceof \test\Mockery\Fixtures\MethodWithIterableTypeHints); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockingMethodsWithNullableParametersTest.php b/vendor/mockery/mockery/tests/Mockery/MockingMethodsWithNullableParametersTest.php deleted file mode 100644 index 2f3b6d47..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockingMethodsWithNullableParametersTest.php +++ /dev/null @@ -1,52 +0,0 @@ -assertTrue($mock instanceof \test\Mockery\Fixtures\MethodWithNullableTypedParameter); - } - - /** - * @test - */ - public function it_can_handle_default_parameters() - { - require __DIR__."/Fixtures/MethodWithParametersWithDefaultValues.php"; - $mock = mock("test\Mockery\Fixtures\MethodWithParametersWithDefaultValues"); - - $this->assertTrue($mock instanceof \test\Mockery\Fixtures\MethodWithParametersWithDefaultValues); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockingNullableMethodsTest.php b/vendor/mockery/mockery/tests/Mockery/MockingNullableMethodsTest.php deleted file mode 100644 index f29c53ae..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockingNullableMethodsTest.php +++ /dev/null @@ -1,217 +0,0 @@ -shouldReceive('nonNullablePrimitive')->andReturn('a string'); - $mock->nonNullablePrimitive(); - } - - /** - * @test - * @expectedException \TypeError - */ - public function itShouldNotAllowNonNullToBeNull() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nonNullablePrimitive')->andReturn(null); - $mock->nonNullablePrimitive(); - } - - /** - * @test - */ - public function itShouldAllowPrimitiveNullableToBeNull() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nullablePrimitive')->andReturn(null); - $mock->nullablePrimitive(); - } - - /** - * @test - */ - public function itShouldAllowPrimitiveNullabeToBeSet() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nullablePrimitive')->andReturn('a string'); - $mock->nullablePrimitive(); - } - - /** - * @test - */ - public function itShouldAllowSelfToBeSet() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nonNullableSelf')->andReturn(new MethodWithNullableReturnType()); - $mock->nonNullableSelf(); - } - - /** - * @test - * @expectedException \TypeError - */ - public function itShouldNotAllowSelfToBeNull() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nonNullableSelf')->andReturn(null); - $mock->nonNullableSelf(); - } - - /** - * @test - */ - public function itShouldAllowNullableSelfToBeSet() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nullableSelf')->andReturn(new MethodWithNullableReturnType()); - $mock->nullableSelf(); - } - - /** - * @test - */ - public function itShouldAllowNullableSelfToBeNull() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nullableSelf')->andReturn(null); - $mock->nullableSelf(); - } - - /** - * @test - */ - public function itShouldAllowClassToBeSet() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nonNullableClass')->andReturn(new MethodWithNullableReturnType()); - $mock->nonNullableClass(); - } - - /** - * @test - * @expectedException \TypeError - */ - public function itShouldNotAllowClassToBeNull() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nonNullableClass')->andReturn(null); - $mock->nonNullableClass(); - } - - /** - * @test - */ - public function itShouldAllowNullalbeClassToBeSet() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nullableClass')->andReturn(new MethodWithNullableReturnType()); - $mock->nullableClass(); - } - - /** - * @test - */ - public function itShouldAllowNullableClassToBeNull() - { - $mock = mock("test\Mockery\Fixtures\MethodWithNullableReturnType"); - - $mock->shouldReceive('nullableClass')->andReturn(null); - $mock->nullableClass(); - } - - /** @test */ - public function it_allows_returning_null_for_nullable_object_return_types() - { - $double= \Mockery::mock(MethodWithNullableReturnType::class); - - $double->shouldReceive("nullableClass")->andReturnNull(); - - $this->assertEquals(null, $double->nullableClass()); - } - - /** @test */ - public function it_allows_returning_null_for_nullable_string_return_types() - { - $double= \Mockery::mock(MethodWithNullableReturnType::class); - - $double->shouldReceive("nullableString")->andReturnNull(); - - $this->assertEquals(null, $double->nullableString()); - } - - /** @test */ - public function it_allows_returning_null_for_nullable_int_return_types() - { - $double= \Mockery::mock(MethodWithNullableReturnType::class); - - $double->shouldReceive("nullableInt")->andReturnNull(); - - $this->assertEquals(null, $double->nullableInt()); - } - - /** @test */ - public function it_returns_null_on_calls_to_ignored_methods_of_spies_if_return_type_is_nullable() - { - $double = \Mockery::spy(MethodWithNullableReturnType::class); - - $this->assertEquals(null, $double->nullableClass()); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockingParameterAndReturnTypesTest.php b/vendor/mockery/mockery/tests/Mockery/MockingParameterAndReturnTypesTest.php deleted file mode 100644 index 3613707a..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockingParameterAndReturnTypesTest.php +++ /dev/null @@ -1,177 +0,0 @@ -shouldReceive("returnString"); - $this->assertSame("", $mock->returnString()); - } - - public function testMockingIntegerReturnType() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldReceive("returnInteger"); - $this->assertSame(0, $mock->returnInteger()); - } - - public function testMockingFloatReturnType() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldReceive("returnFloat"); - $this->assertSame(0.0, $mock->returnFloat()); - } - - public function testMockingBooleanReturnType() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldReceive("returnBoolean"); - $this->assertSame(false, $mock->returnBoolean()); - } - - public function testMockingArrayReturnType() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldReceive("returnArray"); - $this->assertSame([], $mock->returnArray()); - } - - public function testMockingGeneratorReturnTyps() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldReceive("returnGenerator"); - $this->assertInstanceOf("\Generator", $mock->returnGenerator()); - } - - public function testMockingCallableReturnType() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldReceive("returnCallable"); - $this->assertTrue(is_callable($mock->returnCallable())); - } - - public function testMockingClassReturnTypes() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldReceive("withClassReturnType"); - $this->assertInstanceOf("test\Mockery\TestWithParameterAndReturnType", $mock->withClassReturnType()); - } - - public function testMockingParameterTypes() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldReceive("withScalarParameters"); - $mock->withScalarParameters(1, 1.0, true, 'string'); - } - - public function testIgnoringMissingReturnsType() - { - $mock = mock("test\Mockery\TestWithParameterAndReturnType"); - - $mock->shouldIgnoreMissing(); - - $this->assertSame('', $mock->returnString()); - $this->assertSame(0, $mock->returnInteger()); - $this->assertSame(0.0, $mock->returnFloat()); - $this->assertSame(false, $mock->returnBoolean()); - $this->assertSame([], $mock->returnArray()); - $this->assertTrue(is_callable($mock->returnCallable())); - $this->assertInstanceOf("\Generator", $mock->returnGenerator()); - $this->assertInstanceOf("test\Mockery\TestWithParameterAndReturnType", $mock->withClassReturnType()); - } - - public function testAutoStubbingSelf() - { - $spy = \Mockery::spy("test\Mockery\TestWithParameterAndReturnType"); - - $this->assertInstanceOf("test\Mockery\TestWithParameterAndReturnType", $spy->returnSelf()); - } - - public function testItShouldMockClassWithHintedParamsInMagicMethod() - { - $this->assertNotNull( - \Mockery::mock('test\Mockery\MagicParams') - ); - } - - public function testItShouldMockClassWithHintedReturnInMagicMethod() - { - $this->assertNotNull( - \Mockery::mock('test\Mockery\MagicReturns') - ); - } -} - -class MagicParams -{ - public function __isset(string $property) - { - return false; - } -} - -class MagicReturns -{ - public function __isset($property) : bool - { - return false; - } -} - -abstract class TestWithParameterAndReturnType -{ - public function returnString(): string {} - - public function returnInteger(): int {} - - public function returnFloat(): float {} - - public function returnBoolean(): bool {} - - public function returnArray(): array {} - - public function returnCallable(): callable {} - - public function returnGenerator(): \Generator {} - - public function withClassReturnType(): TestWithParameterAndReturnType {} - - public function withScalarParameters(int $integer, float $float, bool $boolean, string $string) {} - - public function returnSelf(): self {} -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockingProtectedMethodsTest.php b/vendor/mockery/mockery/tests/Mockery/MockingProtectedMethodsTest.php deleted file mode 100644 index 4041516d..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockingProtectedMethodsTest.php +++ /dev/null @@ -1,133 +0,0 @@ -assertEquals("bar", $mock->bar()); - } - - /** - * @test - * - * This is a regression test, basically we don't want the mock handling - * interfering with calling protected methods partials - */ - public function shouldAutomaticallyDeferCallsToProtectedMethodsForRuntimePartials() - { - $mock = mock("test\Mockery\TestWithProtectedMethods")->shouldDeferMissing(); - $this->assertEquals("bar", $mock->bar()); - } - - /** @test */ - public function shouldAutomaticallyIgnoreAbstractProtectedMethods() - { - $mock = mock("test\Mockery\TestWithProtectedMethods")->shouldDeferMissing(); - $this->assertEquals(null, $mock->foo()); - } - - /** @test */ - public function shouldAllowMockingProtectedMethods() - { - $mock = mock("test\Mockery\TestWithProtectedMethods") - ->shouldDeferMissing() - ->shouldAllowMockingProtectedMethods(); - - $mock->shouldReceive("protectedBar")->andReturn("notbar"); - $this->assertEquals("notbar", $mock->bar()); - } - - /** @test */ - public function shouldAllowMockingProtectedMethodOnDefinitionTimePartial() - { - $mock = mock("test\Mockery\TestWithProtectedMethods[protectedBar]") - ->shouldAllowMockingProtectedMethods(); - - $mock->shouldReceive("protectedBar")->andReturn("notbar"); - $this->assertEquals("notbar", $mock->bar()); - } - - /** @test */ - public function shouldAllowMockingAbstractProtectedMethods() - { - $mock = mock("test\Mockery\TestWithProtectedMethods") - ->shouldDeferMissing() - ->shouldAllowMockingProtectedMethods(); - - $mock->shouldReceive("abstractProtected")->andReturn("abstractProtected"); - $this->assertEquals("abstractProtected", $mock->foo()); - } - - /** @test */ - public function shouldAllowMockingIncreasedVisabilityMethods() - { - $mock = mock("test\Mockery\TestIncreasedVisibilityChild"); - $mock->shouldReceive('foobar')->andReturn("foobar"); - $this->assertEquals('foobar', $mock->foobar()); - } -} - - -abstract class TestWithProtectedMethods -{ - public function foo() - { - return $this->abstractProtected(); - } - - abstract protected function abstractProtected(); - - public function bar() - { - return $this->protectedBar(); - } - - protected function protectedBar() - { - return 'bar'; - } -} - -class TestIncreasedVisibilityParent -{ - protected function foobar() - { - } -} - -class TestIncreasedVisibilityChild extends TestIncreasedVisibilityParent -{ - public function foobar() - { - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockingVariadicArgumentsTest.php b/vendor/mockery/mockery/tests/Mockery/MockingVariadicArgumentsTest.php deleted file mode 100644 index a940f63a..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockingVariadicArgumentsTest.php +++ /dev/null @@ -1,45 +0,0 @@ -shouldReceive("foo")->andReturn("notbar"); - $this->assertEquals("notbar", $mock->foo()); - } -} - - -abstract class TestWithVariadicArguments -{ - public function foo(...$bar) - { - return $bar; - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/MockingVoidMethodsTest.php b/vendor/mockery/mockery/tests/Mockery/MockingVoidMethodsTest.php deleted file mode 100644 index a9fb3d7b..00000000 --- a/vendor/mockery/mockery/tests/Mockery/MockingVoidMethodsTest.php +++ /dev/null @@ -1,53 +0,0 @@ -assertTrue($mock instanceof \test\Mockery\Fixtures\MethodWithVoidReturnType); - } - - /** @test */ - public function it_can_stub_and_mock_void_methods() - { - $mock = mock("test\Mockery\Fixtures\MethodWithVoidReturnType"); - - $mock->shouldReceive("foo"); - $mock->foo(); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/NamedMockTest.php b/vendor/mockery/mockery/tests/Mockery/NamedMockTest.php deleted file mode 100644 index c9fe9bbe..00000000 --- a/vendor/mockery/mockery/tests/Mockery/NamedMockTest.php +++ /dev/null @@ -1,68 +0,0 @@ -assertEquals("Mockery\Dave123", get_class($mock)); - } - - /** @test */ - public function itCreatesPassesFurtherArgumentsJustLikeMock() - { - $mock = Mockery::namedMock("Mockery\Dave456", "DateTime", array( - "getDave" => "dave" - )); - - $this->assertInstanceOf("DateTime", $mock); - $this->assertEquals("dave", $mock->getDave()); - } - - /** - * @test - * @expectedException Mockery\Exception - * @expectedExceptionMessage The mock named 'Mockery\Dave7' has been already defined with a different mock configuration - */ - public function itShouldThrowIfAttemptingToRedefineNamedMock() - { - $mock = Mockery::namedMock("Mockery\Dave7"); - $mock = Mockery::namedMock("Mockery\Dave7", "DateTime"); - } - - /** @test */ - public function itCreatesConcreteMethodImplementationWithReturnType() - { - $cactus = new \Nature\Plant(); - $gardener = Mockery::namedMock( - "NewNamespace\\ClassName", - "Gardener", - array('water' => true) - ); - $this->assertTrue($gardener->water($cactus)); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/Php72LanguageFeaturesTest.php b/vendor/mockery/mockery/tests/Mockery/Php72LanguageFeaturesTest.php deleted file mode 100644 index 0b87e656..00000000 --- a/vendor/mockery/mockery/tests/Mockery/Php72LanguageFeaturesTest.php +++ /dev/null @@ -1,41 +0,0 @@ -allows()->foo($object); - - $mock->foo($object); - } - - /** @test */ - public function it_can_mock_a_class_with_an_object_return_type_hint() - { - $mock = spy(ReturnTypeObjectTypeHint::class); - - $object = $mock->foo(); - - $this->assertTrue(is_object($object)); - } -} - -class ArgumentObjectTypeHint -{ - function foo(object $foo) {} -} - -class ReturnTypeObjectTypeHint -{ - function foo(): object {} -} diff --git a/vendor/mockery/mockery/tests/Mockery/SpyTest.php b/vendor/mockery/mockery/tests/Mockery/SpyTest.php deleted file mode 100644 index 78be2a7d..00000000 --- a/vendor/mockery/mockery/tests/Mockery/SpyTest.php +++ /dev/null @@ -1,114 +0,0 @@ -myMethod(); - $spy->shouldHaveReceived("myMethod"); - - $this->expectException("Mockery\Exception\InvalidCountException"); - $spy->shouldHaveReceived("someMethodThatWasNotCalled"); - } - - /** @test */ - public function itVerifiesAMethodWasNotCalled() - { - $spy = m::spy(); - $spy->shouldNotHaveReceived("myMethod"); - - $this->expectException("Mockery\Exception\InvalidCountException"); - $spy->myMethod(); - $spy->shouldNotHaveReceived("myMethod"); - } - - /** @test */ - public function itVerifiesAMethodWasNotCalledWithParticularArguments() - { - $spy = m::spy(); - $spy->myMethod(123, 456); - - $spy->shouldNotHaveReceived("myMethod", array(789, 10)); - - $this->expectException("Mockery\Exception\InvalidCountException"); - $spy->shouldNotHaveReceived("myMethod", array(123, 456)); - } - - /** @test */ - public function itVerifiesAMethodWasCalledASpecificNumberOfTimes() - { - $spy = m::spy(); - $spy->myMethod(); - $spy->myMethod(); - $spy->shouldHaveReceived("myMethod")->twice(); - - $this->expectException("Mockery\Exception\InvalidCountException"); - $spy->myMethod(); - $spy->shouldHaveReceived("myMethod")->twice(); - } - - /** @test */ - public function itVerifiesAMethodWasCalledWithSpecificArguments() - { - $spy = m::spy(); - $spy->myMethod(123, "a string"); - $spy->shouldHaveReceived("myMethod")->with(123, "a string"); - $spy->shouldHaveReceived("myMethod", array(123, "a string")); - - $this->expectException("Mockery\Exception\InvalidCountException"); - $spy->shouldHaveReceived("myMethod")->with(123); - } - - /** @test */ - public function itIncrementsExpectationCountWhenShouldHaveReceivedIsUsed() - { - $spy = m::spy(); - $spy->myMethod('param1', 'param2'); - $spy->shouldHaveReceived('myMethod')->with('param1', 'param2'); - $this->assertEquals(1, $spy->mockery_getExpectationCount()); - } - - /** @test */ - public function itIncrementsExpectationCountWhenShouldNotHaveReceivedIsUsed() - { - $spy = m::spy(); - $spy->shouldNotHaveReceived('method'); - $this->assertEquals(1, $spy->mockery_getExpectationCount()); - } - - /** @test */ - public function any_args_can_be_used_with_alternative_syntax() - { - $spy = m::spy(); - $spy->foo(123, 456); - - $spy->shouldHaveReceived()->foo(anyArgs()); - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/TraitsTest.php b/vendor/mockery/mockery/tests/Mockery/TraitsTest.php deleted file mode 100644 index 24e34d0e..00000000 --- a/vendor/mockery/mockery/tests/Mockery/TraitsTest.php +++ /dev/null @@ -1,72 +0,0 @@ -assertEquals('bar', $trait->foo()); - } - - /** @test */ - public function it_creates_abstract_methods_as_necessary() - { - $trait = mock(TraitWithAbstractMethod::class, ['doBaz' => 'baz']); - - $this->assertEquals('baz', $trait->baz()); - } - - /** @test */ - public function it_can_create_an_object_using_multiple_traits() - { - $trait = mock(SimpleTrait::class, TraitWithAbstractMethod::class, [ - 'doBaz' => 123, - ]); - - $this->assertEquals('bar', $trait->foo()); - $this->assertEquals(123, $trait->baz()); - } -} - -trait SimpleTrait -{ - public function foo() - { - return 'bar'; - } -} - -trait TraitWithAbstractMethod -{ - public function baz() - { - return $this->doBaz(); - } - - abstract public function doBaz(); -} diff --git a/vendor/mockery/mockery/tests/Mockery/WithFormatterExpectationTest.php b/vendor/mockery/mockery/tests/Mockery/WithFormatterExpectationTest.php deleted file mode 100644 index 2e3c4f92..00000000 --- a/vendor/mockery/mockery/tests/Mockery/WithFormatterExpectationTest.php +++ /dev/null @@ -1,123 +0,0 @@ -assertEquals( - $expected, - Mockery::formatObjects($args) - ); - } - - /** - * @expectedException Mockery\Exception\NoMatchingExpectationException - * - * Note that without the patch checked in with this test, rather than throwing - * an exception, the program will go into an infinite recursive loop - */ - public function testFormatObjectsWithMockCalledInGetterDoesNotLeadToRecursion() - { - $mock = Mockery::mock('stdClass'); - $mock->shouldReceive('doBar')->with('foo'); - $obj = new ClassWithGetter($mock); - $obj->getFoo(); - } - - public function formatObjectsDataProvider() - { - return array( - array( - array(null), - '' - ), - array( - array('a string', 98768, array('a', 'nother', 'array')), - '' - ), - ); - } - - /** @test */ - public function format_objects_should_not_call_getters_with_params() - { - $obj = new ClassWithGetterWithParam(); - $string = Mockery::formatObjects(array($obj)); - - $this->assertNotContains('Missing argument 1 for', $string); - } - - public function testFormatObjectsExcludesStaticProperties() - { - $obj = new ClassWithPublicStaticProperty(); - $string = Mockery::formatObjects(array($obj)); - - $this->assertNotContains('excludedProperty', $string); - } - - public function testFormatObjectsExcludesStaticGetters() - { - $obj = new ClassWithPublicStaticGetter(); - $string = Mockery::formatObjects(array($obj)); - - $this->assertNotContains('getExcluded', $string); - } -} - -class ClassWithGetter -{ - private $dep; - - public function __construct($dep) - { - $this->dep = $dep; - } - - public function getFoo() - { - return $this->dep->doBar('bar', $this); - } -} - -class ClassWithGetterWithParam -{ - public function getBar($bar) - { - } -} - -class ClassWithPublicStaticProperty -{ - public static $excludedProperty; -} - -class ClassWithPublicStaticGetter -{ - public static function getExcluded() - { - } -} diff --git a/vendor/mockery/mockery/tests/Mockery/_files/file.txt b/vendor/mockery/mockery/tests/Mockery/_files/file.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/vendor/monolog/monolog/.php_cs b/vendor/monolog/monolog/.php_cs deleted file mode 100644 index 366ccd08..00000000 --- a/vendor/monolog/monolog/.php_cs +++ /dev/null @@ -1,59 +0,0 @@ - - -For the full copyright and license information, please view the LICENSE -file that was distributed with this source code. -EOF; - -$finder = Symfony\CS\Finder::create() - ->files() - ->name('*.php') - ->exclude('Fixtures') - ->in(__DIR__.'/src') - ->in(__DIR__.'/tests') -; - -return Symfony\CS\Config::create() - ->setUsingCache(true) - //->setUsingLinter(false) - ->setRiskyAllowed(true) - ->setRules(array( - '@PSR2' => true, - 'binary_operator_spaces' => true, - 'blank_line_before_return' => true, - 'header_comment' => array('header' => $header), - 'include' => true, - 'long_array_syntax' => true, - 'method_separation' => true, - 'no_blank_lines_after_class_opening' => true, - 'no_blank_lines_after_phpdoc' => true, - 'no_blank_lines_between_uses' => true, - 'no_duplicate_semicolons' => true, - 'no_extra_consecutive_blank_lines' => true, - 'no_leading_import_slash' => true, - 'no_leading_namespace_whitespace' => true, - 'no_trailing_comma_in_singleline_array' => true, - 'no_unused_imports' => true, - 'object_operator_without_whitespace' => true, - 'phpdoc_align' => true, - 'phpdoc_indent' => true, - 'phpdoc_no_access' => true, - 'phpdoc_no_package' => true, - 'phpdoc_order' => true, - 'phpdoc_scalar' => true, - 'phpdoc_trim' => true, - 'phpdoc_type_to_var' => true, - 'psr0' => true, - 'single_blank_line_before_namespace' => true, - 'spaces_cast' => true, - 'standardize_not_equals' => true, - 'ternary_operator_spaces' => true, - 'trailing_comma_in_multiline_array' => true, - 'whitespacy_lines' => true, - )) - ->finder($finder) -; diff --git a/vendor/monolog/monolog/CHANGELOG.md b/vendor/monolog/monolog/CHANGELOG.md deleted file mode 100644 index cd1142d1..00000000 --- a/vendor/monolog/monolog/CHANGELOG.md +++ /dev/null @@ -1,342 +0,0 @@ -### 1.23.0 (2017-06-19) - - * Improved SyslogUdpHandler's support for RFC5424 and added optional `$ident` argument - * Fixed GelfHandler truncation to be per field and not per message - * Fixed compatibility issue with PHP <5.3.6 - * Fixed support for headless Chrome in ChromePHPHandler - * Fixed support for latest Aws SDK in DynamoDbHandler - * Fixed support for SwiftMailer 6.0+ in SwiftMailerHandler - -### 1.22.1 (2017-03-13) - - * Fixed lots of minor issues in the new Slack integrations - * Fixed support for allowInlineLineBreaks in LineFormatter when formatting exception backtraces - -### 1.22.0 (2016-11-26) - - * Added SlackbotHandler and SlackWebhookHandler to set up Slack integration more easily - * Added MercurialProcessor to add mercurial revision and branch names to log records - * Added support for AWS SDK v3 in DynamoDbHandler - * Fixed fatal errors occuring when normalizing generators that have been fully consumed - * Fixed RollbarHandler to include a level (rollbar level), monolog_level (original name), channel and datetime (unix) - * Fixed RollbarHandler not flushing records automatically, calling close() explicitly is not necessary anymore - * Fixed SyslogUdpHandler to avoid sending empty frames - * Fixed a few PHP 7.0 and 7.1 compatibility issues - -### 1.21.0 (2016-07-29) - - * Break: Reverted the addition of $context when the ErrorHandler handles regular php errors from 1.20.0 as it was causing issues - * Added support for more formats in RotatingFileHandler::setFilenameFormat as long as they have Y, m and d in order - * Added ability to format the main line of text the SlackHandler sends by explictly setting a formatter on the handler - * Added information about SoapFault instances in NormalizerFormatter - * Added $handleOnlyReportedErrors option on ErrorHandler::registerErrorHandler (default true) to allow logging of all errors no matter the error_reporting level - -### 1.20.0 (2016-07-02) - - * Added FingersCrossedHandler::activate() to manually trigger the handler regardless of the activation policy - * Added StreamHandler::getUrl to retrieve the stream's URL - * Added ability to override addRow/addTitle in HtmlFormatter - * Added the $context to context information when the ErrorHandler handles a regular php error - * Deprecated RotatingFileHandler::setFilenameFormat to only support 3 formats: Y, Y-m and Y-m-d - * Fixed WhatFailureGroupHandler to work with PHP7 throwables - * Fixed a few minor bugs - -### 1.19.0 (2016-04-12) - - * Break: StreamHandler will not close streams automatically that it does not own. If you pass in a stream (not a path/url), then it will not close it for you. You can retrieve those using getStream() if needed - * Added DeduplicationHandler to remove duplicate records from notifications across multiple requests, useful for email or other notifications on errors - * Added ability to use `%message%` and other LineFormatter replacements in the subject line of emails sent with NativeMailHandler and SwiftMailerHandler - * Fixed HipChatHandler handling of long messages - -### 1.18.2 (2016-04-02) - - * Fixed ElasticaFormatter to use more precise dates - * Fixed GelfMessageFormatter sending too long messages - -### 1.18.1 (2016-03-13) - - * Fixed SlackHandler bug where slack dropped messages randomly - * Fixed RedisHandler issue when using with the PHPRedis extension - * Fixed AmqpHandler content-type being incorrectly set when using with the AMQP extension - * Fixed BrowserConsoleHandler regression - -### 1.18.0 (2016-03-01) - - * Added optional reduction of timestamp precision via `Logger->useMicrosecondTimestamps(false)`, disabling it gets you a bit of performance boost but reduces the precision to the second instead of microsecond - * Added possibility to skip some extra stack frames in IntrospectionProcessor if you have some library wrapping Monolog that is always adding frames - * Added `Logger->withName` to clone a logger (keeping all handlers) with a new name - * Added FluentdFormatter for the Fluentd unix socket protocol - * Added HandlerWrapper base class to ease the creation of handler wrappers, just extend it and override as needed - * Added support for replacing context sub-keys using `%context.*%` in LineFormatter - * Added support for `payload` context value in RollbarHandler - * Added setRelease to RavenHandler to describe the application version, sent with every log - * Added support for `fingerprint` context value in RavenHandler - * Fixed JSON encoding errors that would gobble up the whole log record, we now handle those more gracefully by dropping chars as needed - * Fixed write timeouts in SocketHandler and derivatives, set to 10sec by default, lower it with `setWritingTimeout()` - * Fixed PHP7 compatibility with regard to Exception/Throwable handling in a few places - -### 1.17.2 (2015-10-14) - - * Fixed ErrorHandler compatibility with non-Monolog PSR-3 loggers - * Fixed SlackHandler handling to use slack functionalities better - * Fixed SwiftMailerHandler bug when sending multiple emails they all had the same id - * Fixed 5.3 compatibility regression - -### 1.17.1 (2015-08-31) - - * Fixed RollbarHandler triggering PHP notices - -### 1.17.0 (2015-08-30) - - * Added support for `checksum` and `release` context/extra values in RavenHandler - * Added better support for exceptions in RollbarHandler - * Added UidProcessor::getUid - * Added support for showing the resource type in NormalizedFormatter - * Fixed IntrospectionProcessor triggering PHP notices - -### 1.16.0 (2015-08-09) - - * Added IFTTTHandler to notify ifttt.com triggers - * Added Logger::setHandlers() to allow setting/replacing all handlers - * Added $capSize in RedisHandler to cap the log size - * Fixed StreamHandler creation of directory to only trigger when the first log write happens - * Fixed bug in the handling of curl failures - * Fixed duplicate logging of fatal errors when both error and fatal error handlers are registered in monolog's ErrorHandler - * Fixed missing fatal errors records with handlers that need to be closed to flush log records - * Fixed TagProcessor::addTags support for associative arrays - -### 1.15.0 (2015-07-12) - - * Added addTags and setTags methods to change a TagProcessor - * Added automatic creation of directories if they are missing for a StreamHandler to open a log file - * Added retry functionality to Loggly, Cube and Mandrill handlers so they retry up to 5 times in case of network failure - * Fixed process exit code being incorrectly reset to 0 if ErrorHandler::registerExceptionHandler was used - * Fixed HTML/JS escaping in BrowserConsoleHandler - * Fixed JSON encoding errors being silently suppressed (PHP 5.5+ only) - -### 1.14.0 (2015-06-19) - - * Added PHPConsoleHandler to send record to Chrome's PHP Console extension and library - * Added support for objects implementing __toString in the NormalizerFormatter - * Added support for HipChat's v2 API in HipChatHandler - * Added Logger::setTimezone() to initialize the timezone monolog should use in case date.timezone isn't correct for your app - * Added an option to send formatted message instead of the raw record on PushoverHandler via ->useFormattedMessage(true) - * Fixed curl errors being silently suppressed - -### 1.13.1 (2015-03-09) - - * Fixed regression in HipChat requiring a new token to be created - -### 1.13.0 (2015-03-05) - - * Added Registry::hasLogger to check for the presence of a logger instance - * Added context.user support to RavenHandler - * Added HipChat API v2 support in the HipChatHandler - * Added NativeMailerHandler::addParameter to pass params to the mail() process - * Added context data to SlackHandler when $includeContextAndExtra is true - * Added ability to customize the Swift_Message per-email in SwiftMailerHandler - * Fixed SwiftMailerHandler to lazily create message instances if a callback is provided - * Fixed serialization of INF and NaN values in Normalizer and LineFormatter - -### 1.12.0 (2014-12-29) - - * Break: HandlerInterface::isHandling now receives a partial record containing only a level key. This was always the intent and does not break any Monolog handler but is strictly speaking a BC break and you should check if you relied on any other field in your own handlers. - * Added PsrHandler to forward records to another PSR-3 logger - * Added SamplingHandler to wrap around a handler and include only every Nth record - * Added MongoDBFormatter to support better storage with MongoDBHandler (it must be enabled manually for now) - * Added exception codes in the output of most formatters - * Added LineFormatter::includeStacktraces to enable exception stack traces in logs (uses more than one line) - * Added $useShortAttachment to SlackHandler to minify attachment size and $includeExtra to append extra data - * Added $host to HipChatHandler for users of private instances - * Added $transactionName to NewRelicHandler and support for a transaction_name context value - * Fixed MandrillHandler to avoid outputing API call responses - * Fixed some non-standard behaviors in SyslogUdpHandler - -### 1.11.0 (2014-09-30) - - * Break: The NewRelicHandler extra and context data are now prefixed with extra_ and context_ to avoid clashes. Watch out if you have scripts reading those from the API and rely on names - * Added WhatFailureGroupHandler to suppress any exception coming from the wrapped handlers and avoid chain failures if a logging service fails - * Added MandrillHandler to send emails via the Mandrillapp.com API - * Added SlackHandler to log records to a Slack.com account - * Added FleepHookHandler to log records to a Fleep.io account - * Added LogglyHandler::addTag to allow adding tags to an existing handler - * Added $ignoreEmptyContextAndExtra to LineFormatter to avoid empty [] at the end - * Added $useLocking to StreamHandler and RotatingFileHandler to enable flock() while writing - * Added support for PhpAmqpLib in the AmqpHandler - * Added FingersCrossedHandler::clear and BufferHandler::clear to reset them between batches in long running jobs - * Added support for adding extra fields from $_SERVER in the WebProcessor - * Fixed support for non-string values in PrsLogMessageProcessor - * Fixed SwiftMailer messages being sent with the wrong date in long running scripts - * Fixed minor PHP 5.6 compatibility issues - * Fixed BufferHandler::close being called twice - -### 1.10.0 (2014-06-04) - - * Added Logger::getHandlers() and Logger::getProcessors() methods - * Added $passthruLevel argument to FingersCrossedHandler to let it always pass some records through even if the trigger level is not reached - * Added support for extra data in NewRelicHandler - * Added $expandNewlines flag to the ErrorLogHandler to create multiple log entries when a message has multiple lines - -### 1.9.1 (2014-04-24) - - * Fixed regression in RotatingFileHandler file permissions - * Fixed initialization of the BufferHandler to make sure it gets flushed after receiving records - * Fixed ChromePHPHandler and FirePHPHandler's activation strategies to be more conservative - -### 1.9.0 (2014-04-20) - - * Added LogEntriesHandler to send logs to a LogEntries account - * Added $filePermissions to tweak file mode on StreamHandler and RotatingFileHandler - * Added $useFormatting flag to MemoryProcessor to make it send raw data in bytes - * Added support for table formatting in FirePHPHandler via the table context key - * Added a TagProcessor to add tags to records, and support for tags in RavenHandler - * Added $appendNewline flag to the JsonFormatter to enable using it when logging to files - * Added sound support to the PushoverHandler - * Fixed multi-threading support in StreamHandler - * Fixed empty headers issue when ChromePHPHandler received no records - * Fixed default format of the ErrorLogHandler - -### 1.8.0 (2014-03-23) - - * Break: the LineFormatter now strips newlines by default because this was a bug, set $allowInlineLineBreaks to true if you need them - * Added BrowserConsoleHandler to send logs to any browser's console via console.log() injection in the output - * Added FilterHandler to filter records and only allow those of a given list of levels through to the wrapped handler - * Added FlowdockHandler to send logs to a Flowdock account - * Added RollbarHandler to send logs to a Rollbar account - * Added HtmlFormatter to send prettier log emails with colors for each log level - * Added GitProcessor to add the current branch/commit to extra record data - * Added a Monolog\Registry class to allow easier global access to pre-configured loggers - * Added support for the new official graylog2/gelf-php lib for GelfHandler, upgrade if you can by replacing the mlehner/gelf-php requirement - * Added support for HHVM - * Added support for Loggly batch uploads - * Added support for tweaking the content type and encoding in NativeMailerHandler - * Added $skipClassesPartials to tweak the ignored classes in the IntrospectionProcessor - * Fixed batch request support in GelfHandler - -### 1.7.0 (2013-11-14) - - * Added ElasticSearchHandler to send logs to an Elastic Search server - * Added DynamoDbHandler and ScalarFormatter to send logs to Amazon's Dynamo DB - * Added SyslogUdpHandler to send logs to a remote syslogd server - * Added LogglyHandler to send logs to a Loggly account - * Added $level to IntrospectionProcessor so it only adds backtraces when needed - * Added $version to LogstashFormatter to allow using the new v1 Logstash format - * Added $appName to NewRelicHandler - * Added configuration of Pushover notification retries/expiry - * Added $maxColumnWidth to NativeMailerHandler to change the 70 chars default - * Added chainability to most setters for all handlers - * Fixed RavenHandler batch processing so it takes the message from the record with highest priority - * Fixed HipChatHandler batch processing so it sends all messages at once - * Fixed issues with eAccelerator - * Fixed and improved many small things - -### 1.6.0 (2013-07-29) - - * Added HipChatHandler to send logs to a HipChat chat room - * Added ErrorLogHandler to send logs to PHP's error_log function - * Added NewRelicHandler to send logs to NewRelic's service - * Added Monolog\ErrorHandler helper class to register a Logger as exception/error/fatal handler - * Added ChannelLevelActivationStrategy for the FingersCrossedHandler to customize levels by channel - * Added stack traces output when normalizing exceptions (json output & co) - * Added Monolog\Logger::API constant (currently 1) - * Added support for ChromePHP's v4.0 extension - * Added support for message priorities in PushoverHandler, see $highPriorityLevel and $emergencyLevel - * Added support for sending messages to multiple users at once with the PushoverHandler - * Fixed RavenHandler's support for batch sending of messages (when behind a Buffer or FingersCrossedHandler) - * Fixed normalization of Traversables with very large data sets, only the first 1000 items are shown now - * Fixed issue in RotatingFileHandler when an open_basedir restriction is active - * Fixed minor issues in RavenHandler and bumped the API to Raven 0.5.0 - * Fixed SyslogHandler issue when many were used concurrently with different facilities - -### 1.5.0 (2013-04-23) - - * Added ProcessIdProcessor to inject the PID in log records - * Added UidProcessor to inject a unique identifier to all log records of one request/run - * Added support for previous exceptions in the LineFormatter exception serialization - * Added Monolog\Logger::getLevels() to get all available levels - * Fixed ChromePHPHandler so it avoids sending headers larger than Chrome can handle - -### 1.4.1 (2013-04-01) - - * Fixed exception formatting in the LineFormatter to be more minimalistic - * Fixed RavenHandler's handling of context/extra data, requires Raven client >0.1.0 - * Fixed log rotation in RotatingFileHandler to work with long running scripts spanning multiple days - * Fixed WebProcessor array access so it checks for data presence - * Fixed Buffer, Group and FingersCrossed handlers to make use of their processors - -### 1.4.0 (2013-02-13) - - * Added RedisHandler to log to Redis via the Predis library or the phpredis extension - * Added ZendMonitorHandler to log to the Zend Server monitor - * Added the possibility to pass arrays of handlers and processors directly in the Logger constructor - * Added `$useSSL` option to the PushoverHandler which is enabled by default - * Fixed ChromePHPHandler and FirePHPHandler issue when multiple instances are used simultaneously - * Fixed header injection capability in the NativeMailHandler - -### 1.3.1 (2013-01-11) - - * Fixed LogstashFormatter to be usable with stream handlers - * Fixed GelfMessageFormatter levels on Windows - -### 1.3.0 (2013-01-08) - - * Added PSR-3 compliance, the `Monolog\Logger` class is now an instance of `Psr\Log\LoggerInterface` - * Added PsrLogMessageProcessor that you can selectively enable for full PSR-3 compliance - * Added LogstashFormatter (combine with SocketHandler or StreamHandler to send logs to Logstash) - * Added PushoverHandler to send mobile notifications - * Added CouchDBHandler and DoctrineCouchDBHandler - * Added RavenHandler to send data to Sentry servers - * Added support for the new MongoClient class in MongoDBHandler - * Added microsecond precision to log records' timestamps - * Added `$flushOnOverflow` param to BufferHandler to flush by batches instead of losing - the oldest entries - * Fixed normalization of objects with cyclic references - -### 1.2.1 (2012-08-29) - - * Added new $logopts arg to SyslogHandler to provide custom openlog options - * Fixed fatal error in SyslogHandler - -### 1.2.0 (2012-08-18) - - * Added AmqpHandler (for use with AMQP servers) - * Added CubeHandler - * Added NativeMailerHandler::addHeader() to send custom headers in mails - * Added the possibility to specify more than one recipient in NativeMailerHandler - * Added the possibility to specify float timeouts in SocketHandler - * Added NOTICE and EMERGENCY levels to conform with RFC 5424 - * Fixed the log records to use the php default timezone instead of UTC - * Fixed BufferHandler not being flushed properly on PHP fatal errors - * Fixed normalization of exotic resource types - * Fixed the default format of the SyslogHandler to avoid duplicating datetimes in syslog - -### 1.1.0 (2012-04-23) - - * Added Monolog\Logger::isHandling() to check if a handler will - handle the given log level - * Added ChromePHPHandler - * Added MongoDBHandler - * Added GelfHandler (for use with Graylog2 servers) - * Added SocketHandler (for use with syslog-ng for example) - * Added NormalizerFormatter - * Added the possibility to change the activation strategy of the FingersCrossedHandler - * Added possibility to show microseconds in logs - * Added `server` and `referer` to WebProcessor output - -### 1.0.2 (2011-10-24) - - * Fixed bug in IE with large response headers and FirePHPHandler - -### 1.0.1 (2011-08-25) - - * Added MemoryPeakUsageProcessor and MemoryUsageProcessor - * Added Monolog\Logger::getName() to get a logger's channel name - -### 1.0.0 (2011-07-06) - - * Added IntrospectionProcessor to get info from where the logger was called - * Fixed WebProcessor in CLI - -### 1.0.0-RC1 (2011-07-01) - - * Initial release diff --git a/vendor/monolog/monolog/LICENSE b/vendor/monolog/monolog/LICENSE deleted file mode 100644 index 16473219..00000000 --- a/vendor/monolog/monolog/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011-2016 Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/monolog/monolog/README.md b/vendor/monolog/monolog/README.md deleted file mode 100644 index 7d8ade52..00000000 --- a/vendor/monolog/monolog/README.md +++ /dev/null @@ -1,95 +0,0 @@ -# Monolog - Logging for PHP [![Build Status](https://img.shields.io/travis/Seldaek/monolog.svg)](https://travis-ci.org/Seldaek/monolog) - -[![Total Downloads](https://img.shields.io/packagist/dt/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog) -[![Latest Stable Version](https://img.shields.io/packagist/v/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog) -[![Reference Status](https://www.versioneye.com/php/monolog:monolog/reference_badge.svg)](https://www.versioneye.com/php/monolog:monolog/references) - - -Monolog sends your logs to files, sockets, inboxes, databases and various -web services. See the complete list of handlers below. Special handlers -allow you to build advanced logging strategies. - -This library implements the [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) -interface that you can type-hint against in your own libraries to keep -a maximum of interoperability. You can also use it in your applications to -make sure you can always use another compatible logger at a later time. -As of 1.11.0 Monolog public APIs will also accept PSR-3 log levels. -Internally Monolog still uses its own level scheme since it predates PSR-3. - -## Installation - -Install the latest version with - -```bash -$ composer require monolog/monolog -``` - -## Basic Usage - -```php -pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); - -// add records to the log -$log->addWarning('Foo'); -$log->addError('Bar'); -``` - -## Documentation - -- [Usage Instructions](doc/01-usage.md) -- [Handlers, Formatters and Processors](doc/02-handlers-formatters-processors.md) -- [Utility classes](doc/03-utilities.md) -- [Extending Monolog](doc/04-extending.md) - -## Third Party Packages - -Third party handlers, formatters and processors are -[listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You -can also add your own there if you publish one. - -## About - -### Requirements - -- Monolog works with PHP 5.3 or above, and is also tested to work with HHVM. - -### Submitting bugs and feature requests - -Bugs and feature request are tracked on [GitHub](https://github.com/Seldaek/monolog/issues) - -### Framework Integrations - -- Frameworks and libraries using [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) - can be used very easily with Monolog since it implements the interface. -- [Symfony2](http://symfony.com) comes out of the box with Monolog. -- [Silex](http://silex.sensiolabs.org/) comes out of the box with Monolog. -- [Laravel 4 & 5](http://laravel.com/) come out of the box with Monolog. -- [Lumen](http://lumen.laravel.com/) comes out of the box with Monolog. -- [PPI](http://www.ppi.io/) comes out of the box with Monolog. -- [CakePHP](http://cakephp.org/) is usable with Monolog via the [cakephp-monolog](https://github.com/jadb/cakephp-monolog) plugin. -- [Slim](http://www.slimframework.com/) is usable with Monolog via the [Slim-Monolog](https://github.com/Flynsarmy/Slim-Monolog) log writer. -- [XOOPS 2.6](http://xoops.org/) comes out of the box with Monolog. -- [Aura.Web_Project](https://github.com/auraphp/Aura.Web_Project) comes out of the box with Monolog. -- [Nette Framework](http://nette.org/en/) can be used with Monolog via [Kdyby/Monolog](https://github.com/Kdyby/Monolog) extension. -- [Proton Micro Framework](https://github.com/alexbilbie/Proton) comes out of the box with Monolog. - -### Author - -Jordi Boggiano - -
    -See also the list of [contributors](https://github.com/Seldaek/monolog/contributors) which participated in this project. - -### License - -Monolog is licensed under the MIT License - see the `LICENSE` file for details - -### Acknowledgements - -This library is heavily inspired by Python's [Logbook](http://packages.python.org/Logbook/) -library, although most concepts have been adjusted to fit to the PHP world. diff --git a/vendor/monolog/monolog/composer.json b/vendor/monolog/monolog/composer.json deleted file mode 100644 index 3b0c8805..00000000 --- a/vendor/monolog/monolog/composer.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "monolog/monolog", - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "keywords": ["log", "logging", "psr-3"], - "homepage": "http://github.com/Seldaek/monolog", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.5", - "graylog2/gelf-php": "~1.0", - "sentry/sentry": "^0.13", - "ruflin/elastica": ">=0.90 <3.0", - "doctrine/couchdb": "~1.0@dev", - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "php-amqplib/php-amqplib": "~2.4", - "swiftmailer/swiftmailer": "^5.3|^6.0", - "php-console/php-console": "^3.1.3", - "phpunit/phpunit-mock-objects": "2.3.0", - "jakub-onderka/php-parallel-lint": "0.9" - }, - "_": "phpunit/phpunit-mock-objects required in 2.3.0 due to https://github.com/sebastianbergmann/phpunit-mock-objects/issues/223 - needs hhvm 3.8+ on travis", - "suggest": { - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "sentry/sentry": "Allow sending log messages to a Sentry server", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "php-console/php-console": "Allow sending log messages to Google Chrome" - }, - "autoload": { - "psr-4": {"Monolog\\": "src/Monolog"} - }, - "autoload-dev": { - "psr-4": {"Monolog\\": "tests/Monolog"} - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "scripts": { - "test": [ - "parallel-lint . --exclude vendor", - "phpunit" - ] - } -} diff --git a/vendor/monolog/monolog/doc/01-usage.md b/vendor/monolog/monolog/doc/01-usage.md deleted file mode 100644 index 8e2551f3..00000000 --- a/vendor/monolog/monolog/doc/01-usage.md +++ /dev/null @@ -1,231 +0,0 @@ -# Using Monolog - -- [Installation](#installation) -- [Core Concepts](#core-concepts) -- [Log Levels](#log-levels) -- [Configuring a logger](#configuring-a-logger) -- [Adding extra data in the records](#adding-extra-data-in-the-records) -- [Leveraging channels](#leveraging-channels) -- [Customizing the log format](#customizing-the-log-format) - -## Installation - -Monolog is available on Packagist ([monolog/monolog](http://packagist.org/packages/monolog/monolog)) -and as such installable via [Composer](http://getcomposer.org/). - -```bash -composer require monolog/monolog -``` - -If you do not use Composer, you can grab the code from GitHub, and use any -PSR-0 compatible autoloader (e.g. the [Symfony2 ClassLoader component](https://github.com/symfony/ClassLoader)) -to load Monolog classes. - -## Core Concepts - -Every `Logger` instance has a channel (name) and a stack of handlers. Whenever -you add a record to the logger, it traverses the handler stack. Each handler -decides whether it fully handled the record, and if so, the propagation of the -record ends there. - -This allows for flexible logging setups, for example having a `StreamHandler` at -the bottom of the stack that will log anything to disk, and on top of that add -a `MailHandler` that will send emails only when an error message is logged. -Handlers also have a `$bubble` property which defines whether they block the -record or not if they handled it. In this example, setting the `MailHandler`'s -`$bubble` argument to false means that records handled by the `MailHandler` will -not propagate to the `StreamHandler` anymore. - -You can create many `Logger`s, each defining a channel (e.g.: db, request, -router, ..) and each of them combining various handlers, which can be shared -or not. The channel is reflected in the logs and allows you to easily see or -filter records. - -Each Handler also has a Formatter, a default one with settings that make sense -will be created if you don't set one. The formatters normalize and format -incoming records so that they can be used by the handlers to output useful -information. - -Custom severity levels are not available. Only the eight -[RFC 5424](http://tools.ietf.org/html/rfc5424) levels (debug, info, notice, -warning, error, critical, alert, emergency) are present for basic filtering -purposes, but for sorting and other use cases that would require -flexibility, you should add Processors to the Logger that can add extra -information (tags, user ip, ..) to the records before they are handled. - -## Log Levels - -Monolog supports the logging levels described by [RFC 5424](http://tools.ietf.org/html/rfc5424). - -- **DEBUG** (100): Detailed debug information. - -- **INFO** (200): Interesting events. Examples: User logs in, SQL logs. - -- **NOTICE** (250): Normal but significant events. - -- **WARNING** (300): Exceptional occurrences that are not errors. Examples: - Use of deprecated APIs, poor use of an API, undesirable things that are not - necessarily wrong. - -- **ERROR** (400): Runtime errors that do not require immediate action but - should typically be logged and monitored. - -- **CRITICAL** (500): Critical conditions. Example: Application component - unavailable, unexpected exception. - -- **ALERT** (550): Action must be taken immediately. Example: Entire website - down, database unavailable, etc. This should trigger the SMS alerts and wake - you up. - -- **EMERGENCY** (600): Emergency: system is unusable. - -## Configuring a logger - -Here is a basic setup to log to a file and to firephp on the DEBUG level: - -```php -pushHandler(new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG)); -$logger->pushHandler(new FirePHPHandler()); - -// You can now use your logger -$logger->addInfo('My logger is now ready'); -``` - -Let's explain it. The first step is to create the logger instance which will -be used in your code. The argument is a channel name, which is useful when -you use several loggers (see below for more details about it). - -The logger itself does not know how to handle a record. It delegates it to -some handlers. The code above registers two handlers in the stack to allow -handling records in two different ways. - -Note that the FirePHPHandler is called first as it is added on top of the -stack. This allows you to temporarily add a logger with bubbling disabled if -you want to override other configured loggers. - -> If you use Monolog standalone and are looking for an easy way to -> configure many handlers, the [theorchard/monolog-cascade](https://github.com/theorchard/monolog-cascade) -> can help you build complex logging configs via PHP arrays, yaml or json configs. - -## Adding extra data in the records - -Monolog provides two different ways to add extra informations along the simple -textual message. - -### Using the logging context - -The first way is the context, allowing to pass an array of data along the -record: - -```php -addInfo('Adding a new user', array('username' => 'Seldaek')); -``` - -Simple handlers (like the StreamHandler for instance) will simply format -the array to a string but richer handlers can take advantage of the context -(FirePHP is able to display arrays in pretty way for instance). - -### Using processors - -The second way is to add extra data for all records by using a processor. -Processors can be any callable. They will get the record as parameter and -must return it after having eventually changed the `extra` part of it. Let's -write a processor adding some dummy data in the record: - -```php -pushProcessor(function ($record) { - $record['extra']['dummy'] = 'Hello world!'; - - return $record; -}); -``` - -Monolog provides some built-in processors that can be used in your project. -Look at the [dedicated chapter](https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md#processors) for the list. - -> Tip: processors can also be registered on a specific handler instead of - the logger to apply only for this handler. - -## Leveraging channels - -Channels are a great way to identify to which part of the application a record -is related. This is useful in big applications (and is leveraged by -MonologBundle in Symfony2). - -Picture two loggers sharing a handler that writes to a single log file. -Channels would allow you to identify the logger that issued every record. -You can easily grep through the log files filtering this or that channel. - -```php -pushHandler($stream); -$logger->pushHandler($firephp); - -// Create a logger for the security-related stuff with a different channel -$securityLogger = new Logger('security'); -$securityLogger->pushHandler($stream); -$securityLogger->pushHandler($firephp); - -// Or clone the first one to only change the channel -$securityLogger = $logger->withName('security'); -``` - -## Customizing the log format - -In Monolog it's easy to customize the format of the logs written into files, -sockets, mails, databases and other handlers. Most of the handlers use the - -```php -$record['formatted'] -``` - -value to be automatically put into the log device. This value depends on the -formatter settings. You can choose between predefined formatter classes or -write your own (e.g. a multiline text file for human-readable output). - -To configure a predefined formatter class, just set it as the handler's field: - -```php -// the default date format is "Y-m-d H:i:s" -$dateFormat = "Y n j, g:i a"; -// the default output format is "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n" -$output = "%datetime% > %level_name% > %message% %context% %extra%\n"; -// finally, create a formatter -$formatter = new LineFormatter($output, $dateFormat); - -// Create a handler -$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG); -$stream->setFormatter($formatter); -// bind it to a logger object -$securityLogger = new Logger('security'); -$securityLogger->pushHandler($stream); -``` - -You may also reuse the same formatter between multiple handlers and share those -handlers between multiple loggers. - -[Handlers, Formatters and Processors](02-handlers-formatters-processors.md) → diff --git a/vendor/monolog/monolog/doc/02-handlers-formatters-processors.md b/vendor/monolog/monolog/doc/02-handlers-formatters-processors.md deleted file mode 100644 index bea968ac..00000000 --- a/vendor/monolog/monolog/doc/02-handlers-formatters-processors.md +++ /dev/null @@ -1,157 +0,0 @@ -# Handlers, Formatters and Processors - -- [Handlers](#handlers) - - [Log to files and syslog](#log-to-files-and-syslog) - - [Send alerts and emails](#send-alerts-and-emails) - - [Log specific servers and networked logging](#log-specific-servers-and-networked-logging) - - [Logging in development](#logging-in-development) - - [Log to databases](#log-to-databases) - - [Wrappers / Special Handlers](#wrappers--special-handlers) -- [Formatters](#formatters) -- [Processors](#processors) -- [Third Party Packages](#third-party-packages) - -## Handlers - -### Log to files and syslog - -- _StreamHandler_: Logs records into any PHP stream, use this for log files. -- _RotatingFileHandler_: Logs records to a file and creates one logfile per day. - It will also delete files older than `$maxFiles`. You should use - [logrotate](http://linuxcommand.org/man_pages/logrotate8.html) for high profile - setups though, this is just meant as a quick and dirty solution. -- _SyslogHandler_: Logs records to the syslog. -- _ErrorLogHandler_: Logs records to PHP's - [`error_log()`](http://docs.php.net/manual/en/function.error-log.php) function. - -### Send alerts and emails - -- _NativeMailerHandler_: Sends emails using PHP's - [`mail()`](http://php.net/manual/en/function.mail.php) function. -- _SwiftMailerHandler_: Sends emails using a [`Swift_Mailer`](http://swiftmailer.org/) instance. -- _PushoverHandler_: Sends mobile notifications via the [Pushover](https://www.pushover.net/) API. -- _HipChatHandler_: Logs records to a [HipChat](http://hipchat.com) chat room using its API. -- _FlowdockHandler_: Logs records to a [Flowdock](https://www.flowdock.com/) account. -- _SlackHandler_: Logs records to a [Slack](https://www.slack.com/) account using the Slack API. -- _SlackbotHandler_: Logs records to a [Slack](https://www.slack.com/) account using the Slackbot incoming hook. -- _SlackWebhookHandler_: Logs records to a [Slack](https://www.slack.com/) account using Slack Webhooks. -- _MandrillHandler_: Sends emails via the Mandrill API using a [`Swift_Message`](http://swiftmailer.org/) instance. -- _FleepHookHandler_: Logs records to a [Fleep](https://fleep.io/) conversation using Webhooks. -- _IFTTTHandler_: Notifies an [IFTTT](https://ifttt.com/maker) trigger with the log channel, level name and message. - -### Log specific servers and networked logging - -- _SocketHandler_: Logs records to [sockets](http://php.net/fsockopen), use this - for UNIX and TCP sockets. See an [example](sockets.md). -- _AmqpHandler_: Logs records to an [amqp](http://www.amqp.org/) compatible - server. Requires the [php-amqp](http://pecl.php.net/package/amqp) extension (1.0+). -- _GelfHandler_: Logs records to a [Graylog2](http://www.graylog2.org) server. -- _CubeHandler_: Logs records to a [Cube](http://square.github.com/cube/) server. -- _RavenHandler_: Logs records to a [Sentry](http://getsentry.com/) server using - [raven](https://packagist.org/packages/raven/raven). -- _ZendMonitorHandler_: Logs records to the Zend Monitor present in Zend Server. -- _NewRelicHandler_: Logs records to a [NewRelic](http://newrelic.com/) application. -- _LogglyHandler_: Logs records to a [Loggly](http://www.loggly.com/) account. -- _RollbarHandler_: Logs records to a [Rollbar](https://rollbar.com/) account. -- _SyslogUdpHandler_: Logs records to a remote [Syslogd](http://www.rsyslog.com/) server. -- _LogEntriesHandler_: Logs records to a [LogEntries](http://logentries.com/) account. - -### Logging in development - -- _FirePHPHandler_: Handler for [FirePHP](http://www.firephp.org/), providing - inline `console` messages within [FireBug](http://getfirebug.com/). -- _ChromePHPHandler_: Handler for [ChromePHP](http://www.chromephp.com/), providing - inline `console` messages within Chrome. -- _BrowserConsoleHandler_: Handler to send logs to browser's Javascript `console` with - no browser extension required. Most browsers supporting `console` API are supported. -- _PHPConsoleHandler_: Handler for [PHP Console](https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef), providing - inline `console` and notification popup messages within Chrome. - -### Log to databases - -- _RedisHandler_: Logs records to a [redis](http://redis.io) server. -- _MongoDBHandler_: Handler to write records in MongoDB via a - [Mongo](http://pecl.php.net/package/mongo) extension connection. -- _CouchDBHandler_: Logs records to a CouchDB server. -- _DoctrineCouchDBHandler_: Logs records to a CouchDB server via the Doctrine CouchDB ODM. -- _ElasticSearchHandler_: Logs records to an Elastic Search server. -- _DynamoDbHandler_: Logs records to a DynamoDB table with the [AWS SDK](https://github.com/aws/aws-sdk-php). - -### Wrappers / Special Handlers - -- _FingersCrossedHandler_: A very interesting wrapper. It takes a logger as - parameter and will accumulate log records of all levels until a record - exceeds the defined severity level. At which point it delivers all records, - including those of lower severity, to the handler it wraps. This means that - until an error actually happens you will not see anything in your logs, but - when it happens you will have the full information, including debug and info - records. This provides you with all the information you need, but only when - you need it. -- _DeduplicationHandler_: Useful if you are sending notifications or emails - when critical errors occur. It takes a logger as parameter and will - accumulate log records of all levels until the end of the request (or - `flush()` is called). At that point it delivers all records to the handler - it wraps, but only if the records are unique over a given time period - (60seconds by default). If the records are duplicates they are simply - discarded. The main use of this is in case of critical failure like if your - database is unreachable for example all your requests will fail and that - can result in a lot of notifications being sent. Adding this handler reduces - the amount of notifications to a manageable level. -- _WhatFailureGroupHandler_: This handler extends the _GroupHandler_ ignoring - exceptions raised by each child handler. This allows you to ignore issues - where a remote tcp connection may have died but you do not want your entire - application to crash and may wish to continue to log to other handlers. -- _BufferHandler_: This handler will buffer all the log records it receives - until `close()` is called at which point it will call `handleBatch()` on the - handler it wraps with all the log messages at once. This is very useful to - send an email with all records at once for example instead of having one mail - for every log record. -- _GroupHandler_: This handler groups other handlers. Every record received is - sent to all the handlers it is configured with. -- _FilterHandler_: This handler only lets records of the given levels through - to the wrapped handler. -- _SamplingHandler_: Wraps around another handler and lets you sample records - if you only want to store some of them. -- _NullHandler_: Any record it can handle will be thrown away. This can be used - to put on top of an existing handler stack to disable it temporarily. -- _PsrHandler_: Can be used to forward log records to an existing PSR-3 logger -- _TestHandler_: Used for testing, it records everything that is sent to it and - has accessors to read out the information. -- _HandlerWrapper_: A simple handler wrapper you can inherit from to create - your own wrappers easily. - -## Formatters - -- _LineFormatter_: Formats a log record into a one-line string. -- _HtmlFormatter_: Used to format log records into a human readable html table, mainly suitable for emails. -- _NormalizerFormatter_: Normalizes objects/resources down to strings so a record can easily be serialized/encoded. -- _ScalarFormatter_: Used to format log records into an associative array of scalar values. -- _JsonFormatter_: Encodes a log record into json. -- _WildfireFormatter_: Used to format log records into the Wildfire/FirePHP protocol, only useful for the FirePHPHandler. -- _ChromePHPFormatter_: Used to format log records into the ChromePHP format, only useful for the ChromePHPHandler. -- _GelfMessageFormatter_: Used to format log records into Gelf message instances, only useful for the GelfHandler. -- _LogstashFormatter_: Used to format log records into [logstash](http://logstash.net/) event json, useful for any handler listed under inputs [here](http://logstash.net/docs/latest). -- _ElasticaFormatter_: Used to format log records into an Elastica\Document object, only useful for the ElasticSearchHandler. -- _LogglyFormatter_: Used to format log records into Loggly messages, only useful for the LogglyHandler. -- _FlowdockFormatter_: Used to format log records into Flowdock messages, only useful for the FlowdockHandler. -- _MongoDBFormatter_: Converts \DateTime instances to \MongoDate and objects recursively to arrays, only useful with the MongoDBHandler. - -## Processors - -- _PsrLogMessageProcessor_: Processes a log record's message according to PSR-3 rules, replacing `{foo}` with the value from `$context['foo']`. -- _IntrospectionProcessor_: Adds the line/file/class/method from which the log call originated. -- _WebProcessor_: Adds the current request URI, request method and client IP to a log record. -- _MemoryUsageProcessor_: Adds the current memory usage to a log record. -- _MemoryPeakUsageProcessor_: Adds the peak memory usage to a log record. -- _ProcessIdProcessor_: Adds the process id to a log record. -- _UidProcessor_: Adds a unique identifier to a log record. -- _GitProcessor_: Adds the current git branch and commit to a log record. -- _TagProcessor_: Adds an array of predefined tags to a log record. - -## Third Party Packages - -Third party handlers, formatters and processors are -[listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You -can also add your own there if you publish one. - -← [Usage](01-usage.md) | [Utility classes](03-utilities.md) → diff --git a/vendor/monolog/monolog/doc/03-utilities.md b/vendor/monolog/monolog/doc/03-utilities.md deleted file mode 100644 index c62aa416..00000000 --- a/vendor/monolog/monolog/doc/03-utilities.md +++ /dev/null @@ -1,13 +0,0 @@ -# Utilities - -- _Registry_: The `Monolog\Registry` class lets you configure global loggers that you - can then statically access from anywhere. It is not really a best practice but can - help in some older codebases or for ease of use. -- _ErrorHandler_: The `Monolog\ErrorHandler` class allows you to easily register - a Logger instance as an exception handler, error handler or fatal error handler. -- _ErrorLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain log - level is reached. -- _ChannelLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain - log level is reached, depending on which channel received the log record. - -← [Handlers, Formatters and Processors](02-handlers-formatters-processors.md) | [Extending Monolog](04-extending.md) → diff --git a/vendor/monolog/monolog/doc/04-extending.md b/vendor/monolog/monolog/doc/04-extending.md deleted file mode 100644 index ebd9104d..00000000 --- a/vendor/monolog/monolog/doc/04-extending.md +++ /dev/null @@ -1,76 +0,0 @@ -# Extending Monolog - -Monolog is fully extensible, allowing you to adapt your logger to your needs. - -## Writing your own handler - -Monolog provides many built-in handlers. But if the one you need does not -exist, you can write it and use it in your logger. The only requirement is -to implement `Monolog\Handler\HandlerInterface`. - -Let's write a PDOHandler to log records to a database. We will extend the -abstract class provided by Monolog to keep things DRY. - -```php -pdo = $pdo; - parent::__construct($level, $bubble); - } - - protected function write(array $record) - { - if (!$this->initialized) { - $this->initialize(); - } - - $this->statement->execute(array( - 'channel' => $record['channel'], - 'level' => $record['level'], - 'message' => $record['formatted'], - 'time' => $record['datetime']->format('U'), - )); - } - - private function initialize() - { - $this->pdo->exec( - 'CREATE TABLE IF NOT EXISTS monolog ' - .'(channel VARCHAR(255), level INTEGER, message LONGTEXT, time INTEGER UNSIGNED)' - ); - $this->statement = $this->pdo->prepare( - 'INSERT INTO monolog (channel, level, message, time) VALUES (:channel, :level, :message, :time)' - ); - - $this->initialized = true; - } -} -``` - -You can now use this handler in your logger: - -```php -pushHandler(new PDOHandler(new PDO('sqlite:logs.sqlite'))); - -// You can now use your logger -$logger->addInfo('My logger is now ready'); -``` - -The `Monolog\Handler\AbstractProcessingHandler` class provides most of the -logic needed for the handler, including the use of processors and the formatting -of the record (which is why we use ``$record['formatted']`` instead of ``$record['message']``). - -← [Utility classes](03-utilities.md) diff --git a/vendor/monolog/monolog/doc/sockets.md b/vendor/monolog/monolog/doc/sockets.md deleted file mode 100644 index ea9cf0ea..00000000 --- a/vendor/monolog/monolog/doc/sockets.md +++ /dev/null @@ -1,39 +0,0 @@ -Sockets Handler -=============== - -This handler allows you to write your logs to sockets using [fsockopen](http://php.net/fsockopen) -or [pfsockopen](http://php.net/pfsockopen). - -Persistent sockets are mainly useful in web environments where you gain some performance not closing/opening -the connections between requests. - -You can use a `unix://` prefix to access unix sockets and `udp://` to open UDP sockets instead of the default TCP. - -Basic Example -------------- - -```php -setPersistent(true); - -// Now add the handler -$logger->pushHandler($handler, Logger::DEBUG); - -// You can now use your logger -$logger->addInfo('My logger is now ready'); - -``` - -In this example, using syslog-ng, you should see the log on the log server: - - cweb1 [2012-02-26 00:12:03] my_logger.INFO: My logger is now ready [] [] - diff --git a/vendor/monolog/monolog/phpunit.xml.dist b/vendor/monolog/monolog/phpunit.xml.dist deleted file mode 100644 index 20d82b63..00000000 --- a/vendor/monolog/monolog/phpunit.xml.dist +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - tests/Monolog/ - - - - - - src/Monolog/ - - - - - - - diff --git a/vendor/monolog/monolog/src/Monolog/ErrorHandler.php b/vendor/monolog/monolog/src/Monolog/ErrorHandler.php deleted file mode 100644 index 7bfcd833..00000000 --- a/vendor/monolog/monolog/src/Monolog/ErrorHandler.php +++ /dev/null @@ -1,230 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Psr\Log\LoggerInterface; -use Psr\Log\LogLevel; -use Monolog\Handler\AbstractHandler; - -/** - * Monolog error handler - * - * A facility to enable logging of runtime errors, exceptions and fatal errors. - * - * Quick setup: ErrorHandler::register($logger); - * - * @author Jordi Boggiano - */ -class ErrorHandler -{ - private $logger; - - private $previousExceptionHandler; - private $uncaughtExceptionLevel; - - private $previousErrorHandler; - private $errorLevelMap; - private $handleOnlyReportedErrors; - - private $hasFatalErrorHandler; - private $fatalLevel; - private $reservedMemory; - private static $fatalErrors = array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR); - - public function __construct(LoggerInterface $logger) - { - $this->logger = $logger; - } - - /** - * Registers a new ErrorHandler for a given Logger - * - * By default it will handle errors, exceptions and fatal errors - * - * @param LoggerInterface $logger - * @param array|false $errorLevelMap an array of E_* constant to LogLevel::* constant mapping, or false to disable error handling - * @param int|false $exceptionLevel a LogLevel::* constant, or false to disable exception handling - * @param int|false $fatalLevel a LogLevel::* constant, or false to disable fatal error handling - * @return ErrorHandler - */ - public static function register(LoggerInterface $logger, $errorLevelMap = array(), $exceptionLevel = null, $fatalLevel = null) - { - //Forces the autoloader to run for LogLevel. Fixes an autoload issue at compile-time on PHP5.3. See https://github.com/Seldaek/monolog/pull/929 - class_exists('\\Psr\\Log\\LogLevel', true); - - $handler = new static($logger); - if ($errorLevelMap !== false) { - $handler->registerErrorHandler($errorLevelMap); - } - if ($exceptionLevel !== false) { - $handler->registerExceptionHandler($exceptionLevel); - } - if ($fatalLevel !== false) { - $handler->registerFatalHandler($fatalLevel); - } - - return $handler; - } - - public function registerExceptionHandler($level = null, $callPrevious = true) - { - $prev = set_exception_handler(array($this, 'handleException')); - $this->uncaughtExceptionLevel = $level; - if ($callPrevious && $prev) { - $this->previousExceptionHandler = $prev; - } - } - - public function registerErrorHandler(array $levelMap = array(), $callPrevious = true, $errorTypes = -1, $handleOnlyReportedErrors = true) - { - $prev = set_error_handler(array($this, 'handleError'), $errorTypes); - $this->errorLevelMap = array_replace($this->defaultErrorLevelMap(), $levelMap); - if ($callPrevious) { - $this->previousErrorHandler = $prev ?: true; - } - - $this->handleOnlyReportedErrors = $handleOnlyReportedErrors; - } - - public function registerFatalHandler($level = null, $reservedMemorySize = 20) - { - register_shutdown_function(array($this, 'handleFatalError')); - - $this->reservedMemory = str_repeat(' ', 1024 * $reservedMemorySize); - $this->fatalLevel = $level; - $this->hasFatalErrorHandler = true; - } - - protected function defaultErrorLevelMap() - { - return array( - E_ERROR => LogLevel::CRITICAL, - E_WARNING => LogLevel::WARNING, - E_PARSE => LogLevel::ALERT, - E_NOTICE => LogLevel::NOTICE, - E_CORE_ERROR => LogLevel::CRITICAL, - E_CORE_WARNING => LogLevel::WARNING, - E_COMPILE_ERROR => LogLevel::ALERT, - E_COMPILE_WARNING => LogLevel::WARNING, - E_USER_ERROR => LogLevel::ERROR, - E_USER_WARNING => LogLevel::WARNING, - E_USER_NOTICE => LogLevel::NOTICE, - E_STRICT => LogLevel::NOTICE, - E_RECOVERABLE_ERROR => LogLevel::ERROR, - E_DEPRECATED => LogLevel::NOTICE, - E_USER_DEPRECATED => LogLevel::NOTICE, - ); - } - - /** - * @private - */ - public function handleException($e) - { - $this->logger->log( - $this->uncaughtExceptionLevel === null ? LogLevel::ERROR : $this->uncaughtExceptionLevel, - sprintf('Uncaught Exception %s: "%s" at %s line %s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()), - array('exception' => $e) - ); - - if ($this->previousExceptionHandler) { - call_user_func($this->previousExceptionHandler, $e); - } - - exit(255); - } - - /** - * @private - */ - public function handleError($code, $message, $file = '', $line = 0, $context = array()) - { - if ($this->handleOnlyReportedErrors && !(error_reporting() & $code)) { - return; - } - - // fatal error codes are ignored if a fatal error handler is present as well to avoid duplicate log entries - if (!$this->hasFatalErrorHandler || !in_array($code, self::$fatalErrors, true)) { - $level = isset($this->errorLevelMap[$code]) ? $this->errorLevelMap[$code] : LogLevel::CRITICAL; - $this->logger->log($level, self::codeToString($code).': '.$message, array('code' => $code, 'message' => $message, 'file' => $file, 'line' => $line)); - } - - if ($this->previousErrorHandler === true) { - return false; - } elseif ($this->previousErrorHandler) { - return call_user_func($this->previousErrorHandler, $code, $message, $file, $line, $context); - } - } - - /** - * @private - */ - public function handleFatalError() - { - $this->reservedMemory = null; - - $lastError = error_get_last(); - if ($lastError && in_array($lastError['type'], self::$fatalErrors, true)) { - $this->logger->log( - $this->fatalLevel === null ? LogLevel::ALERT : $this->fatalLevel, - 'Fatal Error ('.self::codeToString($lastError['type']).'): '.$lastError['message'], - array('code' => $lastError['type'], 'message' => $lastError['message'], 'file' => $lastError['file'], 'line' => $lastError['line']) - ); - - if ($this->logger instanceof Logger) { - foreach ($this->logger->getHandlers() as $handler) { - if ($handler instanceof AbstractHandler) { - $handler->close(); - } - } - } - } - } - - private static function codeToString($code) - { - switch ($code) { - case E_ERROR: - return 'E_ERROR'; - case E_WARNING: - return 'E_WARNING'; - case E_PARSE: - return 'E_PARSE'; - case E_NOTICE: - return 'E_NOTICE'; - case E_CORE_ERROR: - return 'E_CORE_ERROR'; - case E_CORE_WARNING: - return 'E_CORE_WARNING'; - case E_COMPILE_ERROR: - return 'E_COMPILE_ERROR'; - case E_COMPILE_WARNING: - return 'E_COMPILE_WARNING'; - case E_USER_ERROR: - return 'E_USER_ERROR'; - case E_USER_WARNING: - return 'E_USER_WARNING'; - case E_USER_NOTICE: - return 'E_USER_NOTICE'; - case E_STRICT: - return 'E_STRICT'; - case E_RECOVERABLE_ERROR: - return 'E_RECOVERABLE_ERROR'; - case E_DEPRECATED: - return 'E_DEPRECATED'; - case E_USER_DEPRECATED: - return 'E_USER_DEPRECATED'; - } - - return 'Unknown PHP error'; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php deleted file mode 100644 index 9beda1e7..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -/** - * Formats a log message according to the ChromePHP array format - * - * @author Christophe Coevoet - */ -class ChromePHPFormatter implements FormatterInterface -{ - /** - * Translates Monolog log levels to Wildfire levels. - */ - private $logLevels = array( - Logger::DEBUG => 'log', - Logger::INFO => 'info', - Logger::NOTICE => 'info', - Logger::WARNING => 'warn', - Logger::ERROR => 'error', - Logger::CRITICAL => 'error', - Logger::ALERT => 'error', - Logger::EMERGENCY => 'error', - ); - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - // Retrieve the line and file if set and remove them from the formatted extra - $backtrace = 'unknown'; - if (isset($record['extra']['file'], $record['extra']['line'])) { - $backtrace = $record['extra']['file'].' : '.$record['extra']['line']; - unset($record['extra']['file'], $record['extra']['line']); - } - - $message = array('message' => $record['message']); - if ($record['context']) { - $message['context'] = $record['context']; - } - if ($record['extra']) { - $message['extra'] = $record['extra']; - } - if (count($message) === 1) { - $message = reset($message); - } - - return array( - $record['channel'], - $message, - $backtrace, - $this->logLevels[$record['level']], - ); - } - - public function formatBatch(array $records) - { - $formatted = array(); - - foreach ($records as $record) { - $formatted[] = $this->format($record); - } - - return $formatted; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php deleted file mode 100644 index 4c556cf1..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Elastica\Document; - -/** - * Format a log message into an Elastica Document - * - * @author Jelle Vink - */ -class ElasticaFormatter extends NormalizerFormatter -{ - /** - * @var string Elastic search index name - */ - protected $index; - - /** - * @var string Elastic search document type - */ - protected $type; - - /** - * @param string $index Elastic Search index name - * @param string $type Elastic Search document type - */ - public function __construct($index, $type) - { - // elasticsearch requires a ISO 8601 format date with optional millisecond precision. - parent::__construct('Y-m-d\TH:i:s.uP'); - - $this->index = $index; - $this->type = $type; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - - return $this->getDocument($record); - } - - /** - * Getter index - * @return string - */ - public function getIndex() - { - return $this->index; - } - - /** - * Getter type - * @return string - */ - public function getType() - { - return $this->type; - } - - /** - * Convert a log message into an Elastica Document - * - * @param array $record Log message - * @return Document - */ - protected function getDocument($record) - { - $document = new Document(); - $document->setData($record); - $document->setType($this->type); - $document->setIndex($this->index); - - return $document; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php deleted file mode 100644 index 5094af3c..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php +++ /dev/null @@ -1,116 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * formats the record to be used in the FlowdockHandler - * - * @author Dominik Liebler - */ -class FlowdockFormatter implements FormatterInterface -{ - /** - * @var string - */ - private $source; - - /** - * @var string - */ - private $sourceEmail; - - /** - * @param string $source - * @param string $sourceEmail - */ - public function __construct($source, $sourceEmail) - { - $this->source = $source; - $this->sourceEmail = $sourceEmail; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $tags = array( - '#logs', - '#' . strtolower($record['level_name']), - '#' . $record['channel'], - ); - - foreach ($record['extra'] as $value) { - $tags[] = '#' . $value; - } - - $subject = sprintf( - 'in %s: %s - %s', - $this->source, - $record['level_name'], - $this->getShortMessage($record['message']) - ); - - $record['flowdock'] = array( - 'source' => $this->source, - 'from_address' => $this->sourceEmail, - 'subject' => $subject, - 'content' => $record['message'], - 'tags' => $tags, - 'project' => $this->source, - ); - - return $record; - } - - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - $formatted = array(); - - foreach ($records as $record) { - $formatted[] = $this->format($record); - } - - return $formatted; - } - - /** - * @param string $message - * - * @return string - */ - public function getShortMessage($message) - { - static $hasMbString; - - if (null === $hasMbString) { - $hasMbString = function_exists('mb_strlen'); - } - - $maxLength = 45; - - if ($hasMbString) { - if (mb_strlen($message, 'UTF-8') > $maxLength) { - $message = mb_substr($message, 0, $maxLength - 4, 'UTF-8') . ' ...'; - } - } else { - if (strlen($message) > $maxLength) { - $message = substr($message, 0, $maxLength - 4) . ' ...'; - } - } - - return $message; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php deleted file mode 100644 index 02632bb5..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php +++ /dev/null @@ -1,85 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Class FluentdFormatter - * - * Serializes a log message to Fluentd unix socket protocol - * - * Fluentd config: - * - * - * type unix - * path /var/run/td-agent/td-agent.sock - * - * - * Monolog setup: - * - * $logger = new Monolog\Logger('fluent.tag'); - * $fluentHandler = new Monolog\Handler\SocketHandler('unix:///var/run/td-agent/td-agent.sock'); - * $fluentHandler->setFormatter(new Monolog\Formatter\FluentdFormatter()); - * $logger->pushHandler($fluentHandler); - * - * @author Andrius Putna - */ -class FluentdFormatter implements FormatterInterface -{ - /** - * @var bool $levelTag should message level be a part of the fluentd tag - */ - protected $levelTag = false; - - public function __construct($levelTag = false) - { - if (!function_exists('json_encode')) { - throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s FluentdUnixFormatter'); - } - - $this->levelTag = (bool) $levelTag; - } - - public function isUsingLevelsInTag() - { - return $this->levelTag; - } - - public function format(array $record) - { - $tag = $record['channel']; - if ($this->levelTag) { - $tag .= '.' . strtolower($record['level_name']); - } - - $message = array( - 'message' => $record['message'], - 'extra' => $record['extra'], - ); - - if (!$this->levelTag) { - $message['level'] = $record['level']; - $message['level_name'] = $record['level_name']; - } - - return json_encode(array($tag, $record['datetime']->getTimestamp(), $message)); - } - - public function formatBatch(array $records) - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - - return $message; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php b/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php deleted file mode 100644 index b5de7511..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Interface for formatters - * - * @author Jordi Boggiano - */ -interface FormatterInterface -{ - /** - * Formats a log record. - * - * @param array $record A record to format - * @return mixed The formatted record - */ - public function format(array $record); - - /** - * Formats a set of log records. - * - * @param array $records A set of records to format - * @return mixed The formatted set of records - */ - public function formatBatch(array $records); -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php deleted file mode 100644 index 2c1b0e86..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php +++ /dev/null @@ -1,138 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; -use Gelf\Message; - -/** - * Serializes a log message to GELF - * @see http://www.graylog2.org/about/gelf - * - * @author Matt Lehner - */ -class GelfMessageFormatter extends NormalizerFormatter -{ - const DEFAULT_MAX_LENGTH = 32766; - - /** - * @var string the name of the system for the Gelf log message - */ - protected $systemName; - - /** - * @var string a prefix for 'extra' fields from the Monolog record (optional) - */ - protected $extraPrefix; - - /** - * @var string a prefix for 'context' fields from the Monolog record (optional) - */ - protected $contextPrefix; - - /** - * @var int max length per field - */ - protected $maxLength; - - /** - * Translates Monolog log levels to Graylog2 log priorities. - */ - private $logLevels = array( - Logger::DEBUG => 7, - Logger::INFO => 6, - Logger::NOTICE => 5, - Logger::WARNING => 4, - Logger::ERROR => 3, - Logger::CRITICAL => 2, - Logger::ALERT => 1, - Logger::EMERGENCY => 0, - ); - - public function __construct($systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $maxLength = null) - { - parent::__construct('U.u'); - - $this->systemName = $systemName ?: gethostname(); - - $this->extraPrefix = $extraPrefix; - $this->contextPrefix = $contextPrefix; - $this->maxLength = is_null($maxLength) ? self::DEFAULT_MAX_LENGTH : $maxLength; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - - if (!isset($record['datetime'], $record['message'], $record['level'])) { - throw new \InvalidArgumentException('The record should at least contain datetime, message and level keys, '.var_export($record, true).' given'); - } - - $message = new Message(); - $message - ->setTimestamp($record['datetime']) - ->setShortMessage((string) $record['message']) - ->setHost($this->systemName) - ->setLevel($this->logLevels[$record['level']]); - - // message length + system name length + 200 for padding / metadata - $len = 200 + strlen((string) $record['message']) + strlen($this->systemName); - - if ($len > $this->maxLength) { - $message->setShortMessage(substr($record['message'], 0, $this->maxLength)); - } - - if (isset($record['channel'])) { - $message->setFacility($record['channel']); - } - if (isset($record['extra']['line'])) { - $message->setLine($record['extra']['line']); - unset($record['extra']['line']); - } - if (isset($record['extra']['file'])) { - $message->setFile($record['extra']['file']); - unset($record['extra']['file']); - } - - foreach ($record['extra'] as $key => $val) { - $val = is_scalar($val) || null === $val ? $val : $this->toJson($val); - $len = strlen($this->extraPrefix . $key . $val); - if ($len > $this->maxLength) { - $message->setAdditional($this->extraPrefix . $key, substr($val, 0, $this->maxLength)); - break; - } - $message->setAdditional($this->extraPrefix . $key, $val); - } - - foreach ($record['context'] as $key => $val) { - $val = is_scalar($val) || null === $val ? $val : $this->toJson($val); - $len = strlen($this->contextPrefix . $key . $val); - if ($len > $this->maxLength) { - $message->setAdditional($this->contextPrefix . $key, substr($val, 0, $this->maxLength)); - break; - } - $message->setAdditional($this->contextPrefix . $key, $val); - } - - if (null === $message->getFile() && isset($record['context']['exception']['file'])) { - if (preg_match("/^(.+):([0-9]+)$/", $record['context']['exception']['file'], $matches)) { - $message->setFile($matches[1]); - $message->setLine($matches[2]); - } - } - - return $message; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php deleted file mode 100644 index 3eec95f6..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php +++ /dev/null @@ -1,141 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -/** - * Formats incoming records into an HTML table - * - * This is especially useful for html email logging - * - * @author Tiago Brito - */ -class HtmlFormatter extends NormalizerFormatter -{ - /** - * Translates Monolog log levels to html color priorities. - */ - protected $logLevels = array( - Logger::DEBUG => '#cccccc', - Logger::INFO => '#468847', - Logger::NOTICE => '#3a87ad', - Logger::WARNING => '#c09853', - Logger::ERROR => '#f0ad4e', - Logger::CRITICAL => '#FF7708', - Logger::ALERT => '#C12A19', - Logger::EMERGENCY => '#000000', - ); - - /** - * @param string $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct($dateFormat = null) - { - parent::__construct($dateFormat); - } - - /** - * Creates an HTML table row - * - * @param string $th Row header content - * @param string $td Row standard cell content - * @param bool $escapeTd false if td content must not be html escaped - * @return string - */ - protected function addRow($th, $td = ' ', $escapeTd = true) - { - $th = htmlspecialchars($th, ENT_NOQUOTES, 'UTF-8'); - if ($escapeTd) { - $td = '
    '.htmlspecialchars($td, ENT_NOQUOTES, 'UTF-8').'
    '; - } - - return "\n$th:\n".$td."\n"; - } - - /** - * Create a HTML h1 tag - * - * @param string $title Text to be in the h1 - * @param int $level Error level - * @return string - */ - protected function addTitle($title, $level) - { - $title = htmlspecialchars($title, ENT_NOQUOTES, 'UTF-8'); - - return '

    '.$title.'

    '; - } - - /** - * Formats a log record. - * - * @param array $record A record to format - * @return mixed The formatted record - */ - public function format(array $record) - { - $output = $this->addTitle($record['level_name'], $record['level']); - $output .= ''; - - $output .= $this->addRow('Message', (string) $record['message']); - $output .= $this->addRow('Time', $record['datetime']->format($this->dateFormat)); - $output .= $this->addRow('Channel', $record['channel']); - if ($record['context']) { - $embeddedTable = '
    '; - foreach ($record['context'] as $key => $value) { - $embeddedTable .= $this->addRow($key, $this->convertToString($value)); - } - $embeddedTable .= '
    '; - $output .= $this->addRow('Context', $embeddedTable, false); - } - if ($record['extra']) { - $embeddedTable = ''; - foreach ($record['extra'] as $key => $value) { - $embeddedTable .= $this->addRow($key, $this->convertToString($value)); - } - $embeddedTable .= '
    '; - $output .= $this->addRow('Extra', $embeddedTable, false); - } - - return $output.''; - } - - /** - * Formats a set of log records. - * - * @param array $records A set of records to format - * @return mixed The formatted set of records - */ - public function formatBatch(array $records) - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - - return $message; - } - - protected function convertToString($data) - { - if (null === $data || is_scalar($data)) { - return (string) $data; - } - - $data = $this->normalize($data); - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - return str_replace('\\/', '/', json_encode($data)); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php deleted file mode 100644 index 0782f149..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php +++ /dev/null @@ -1,208 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Exception; -use Throwable; - -/** - * Encodes whatever record data is passed to it as json - * - * This can be useful to log to databases or remote APIs - * - * @author Jordi Boggiano - */ -class JsonFormatter extends NormalizerFormatter -{ - const BATCH_MODE_JSON = 1; - const BATCH_MODE_NEWLINES = 2; - - protected $batchMode; - protected $appendNewline; - - /** - * @var bool - */ - protected $includeStacktraces = false; - - /** - * @param int $batchMode - * @param bool $appendNewline - */ - public function __construct($batchMode = self::BATCH_MODE_JSON, $appendNewline = true) - { - $this->batchMode = $batchMode; - $this->appendNewline = $appendNewline; - } - - /** - * The batch mode option configures the formatting style for - * multiple records. By default, multiple records will be - * formatted as a JSON-encoded array. However, for - * compatibility with some API endpoints, alternative styles - * are available. - * - * @return int - */ - public function getBatchMode() - { - return $this->batchMode; - } - - /** - * True if newlines are appended to every formatted record - * - * @return bool - */ - public function isAppendingNewlines() - { - return $this->appendNewline; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - return $this->toJson($this->normalize($record), true) . ($this->appendNewline ? "\n" : ''); - } - - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - switch ($this->batchMode) { - case static::BATCH_MODE_NEWLINES: - return $this->formatBatchNewlines($records); - - case static::BATCH_MODE_JSON: - default: - return $this->formatBatchJson($records); - } - } - - /** - * @param bool $include - */ - public function includeStacktraces($include = true) - { - $this->includeStacktraces = $include; - } - - /** - * Return a JSON-encoded array of records. - * - * @param array $records - * @return string - */ - protected function formatBatchJson(array $records) - { - return $this->toJson($this->normalize($records), true); - } - - /** - * Use new lines to separate records instead of a - * JSON-encoded array. - * - * @param array $records - * @return string - */ - protected function formatBatchNewlines(array $records) - { - $instance = $this; - - $oldNewline = $this->appendNewline; - $this->appendNewline = false; - array_walk($records, function (&$value, $key) use ($instance) { - $value = $instance->format($value); - }); - $this->appendNewline = $oldNewline; - - return implode("\n", $records); - } - - /** - * Normalizes given $data. - * - * @param mixed $data - * - * @return mixed - */ - protected function normalize($data) - { - if (is_array($data) || $data instanceof \Traversable) { - $normalized = array(); - - $count = 1; - foreach ($data as $key => $value) { - if ($count++ >= 1000) { - $normalized['...'] = 'Over 1000 items, aborting normalization'; - break; - } - $normalized[$key] = $this->normalize($value); - } - - return $normalized; - } - - if ($data instanceof Exception || $data instanceof Throwable) { - return $this->normalizeException($data); - } - - return $data; - } - - /** - * Normalizes given exception with or without its own stack trace based on - * `includeStacktraces` property. - * - * @param Exception|Throwable $e - * - * @return array - */ - protected function normalizeException($e) - { - // TODO 2.0 only check for Throwable - if (!$e instanceof Exception && !$e instanceof Throwable) { - throw new \InvalidArgumentException('Exception/Throwable expected, got '.gettype($e).' / '.get_class($e)); - } - - $data = array( - 'class' => get_class($e), - 'message' => $e->getMessage(), - 'code' => $e->getCode(), - 'file' => $e->getFile().':'.$e->getLine(), - ); - - if ($this->includeStacktraces) { - $trace = $e->getTrace(); - foreach ($trace as $frame) { - if (isset($frame['file'])) { - $data['trace'][] = $frame['file'].':'.$frame['line']; - } elseif (isset($frame['function']) && $frame['function'] === '{closure}') { - // We should again normalize the frames, because it might contain invalid items - $data['trace'][] = $frame['function']; - } else { - // We should again normalize the frames, because it might contain invalid items - $data['trace'][] = $this->normalize($frame); - } - } - } - - if ($previous = $e->getPrevious()) { - $data['previous'] = $this->normalizeException($previous); - } - - return $data; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php deleted file mode 100644 index d3e209e6..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php +++ /dev/null @@ -1,179 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Formats incoming records into a one-line string - * - * This is especially useful for logging to files - * - * @author Jordi Boggiano - * @author Christophe Coevoet - */ -class LineFormatter extends NormalizerFormatter -{ - const SIMPLE_FORMAT = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"; - - protected $format; - protected $allowInlineLineBreaks; - protected $ignoreEmptyContextAndExtra; - protected $includeStacktraces; - - /** - * @param string $format The format of the message - * @param string $dateFormat The format of the timestamp: one supported by DateTime::format - * @param bool $allowInlineLineBreaks Whether to allow inline line breaks in log entries - * @param bool $ignoreEmptyContextAndExtra - */ - public function __construct($format = null, $dateFormat = null, $allowInlineLineBreaks = false, $ignoreEmptyContextAndExtra = false) - { - $this->format = $format ?: static::SIMPLE_FORMAT; - $this->allowInlineLineBreaks = $allowInlineLineBreaks; - $this->ignoreEmptyContextAndExtra = $ignoreEmptyContextAndExtra; - parent::__construct($dateFormat); - } - - public function includeStacktraces($include = true) - { - $this->includeStacktraces = $include; - if ($this->includeStacktraces) { - $this->allowInlineLineBreaks = true; - } - } - - public function allowInlineLineBreaks($allow = true) - { - $this->allowInlineLineBreaks = $allow; - } - - public function ignoreEmptyContextAndExtra($ignore = true) - { - $this->ignoreEmptyContextAndExtra = $ignore; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $vars = parent::format($record); - - $output = $this->format; - - foreach ($vars['extra'] as $var => $val) { - if (false !== strpos($output, '%extra.'.$var.'%')) { - $output = str_replace('%extra.'.$var.'%', $this->stringify($val), $output); - unset($vars['extra'][$var]); - } - } - - - foreach ($vars['context'] as $var => $val) { - if (false !== strpos($output, '%context.'.$var.'%')) { - $output = str_replace('%context.'.$var.'%', $this->stringify($val), $output); - unset($vars['context'][$var]); - } - } - - if ($this->ignoreEmptyContextAndExtra) { - if (empty($vars['context'])) { - unset($vars['context']); - $output = str_replace('%context%', '', $output); - } - - if (empty($vars['extra'])) { - unset($vars['extra']); - $output = str_replace('%extra%', '', $output); - } - } - - foreach ($vars as $var => $val) { - if (false !== strpos($output, '%'.$var.'%')) { - $output = str_replace('%'.$var.'%', $this->stringify($val), $output); - } - } - - // remove leftover %extra.xxx% and %context.xxx% if any - if (false !== strpos($output, '%')) { - $output = preg_replace('/%(?:extra|context)\..+?%/', '', $output); - } - - return $output; - } - - public function formatBatch(array $records) - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - - return $message; - } - - public function stringify($value) - { - return $this->replaceNewlines($this->convertToString($value)); - } - - protected function normalizeException($e) - { - // TODO 2.0 only check for Throwable - if (!$e instanceof \Exception && !$e instanceof \Throwable) { - throw new \InvalidArgumentException('Exception/Throwable expected, got '.gettype($e).' / '.get_class($e)); - } - - $previousText = ''; - if ($previous = $e->getPrevious()) { - do { - $previousText .= ', '.get_class($previous).'(code: '.$previous->getCode().'): '.$previous->getMessage().' at '.$previous->getFile().':'.$previous->getLine(); - } while ($previous = $previous->getPrevious()); - } - - $str = '[object] ('.get_class($e).'(code: '.$e->getCode().'): '.$e->getMessage().' at '.$e->getFile().':'.$e->getLine().$previousText.')'; - if ($this->includeStacktraces) { - $str .= "\n[stacktrace]\n".$e->getTraceAsString()."\n"; - } - - return $str; - } - - protected function convertToString($data) - { - if (null === $data || is_bool($data)) { - return var_export($data, true); - } - - if (is_scalar($data)) { - return (string) $data; - } - - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return $this->toJson($data, true); - } - - return str_replace('\\/', '/', @json_encode($data)); - } - - protected function replaceNewlines($str) - { - if ($this->allowInlineLineBreaks) { - if (0 === strpos($str, '{')) { - return str_replace(array('\r', '\n'), array("\r", "\n"), $str); - } - - return $str; - } - - return str_replace(array("\r\n", "\r", "\n"), ' ', $str); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php deleted file mode 100644 index 401859bb..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Encodes message information into JSON in a format compatible with Loggly. - * - * @author Adam Pancutt - */ -class LogglyFormatter extends JsonFormatter -{ - /** - * Overrides the default batch mode to new lines for compatibility with the - * Loggly bulk API. - * - * @param int $batchMode - */ - public function __construct($batchMode = self::BATCH_MODE_NEWLINES, $appendNewline = false) - { - parent::__construct($batchMode, $appendNewline); - } - - /** - * Appends the 'timestamp' parameter for indexing by Loggly. - * - * @see https://www.loggly.com/docs/automated-parsing/#json - * @see \Monolog\Formatter\JsonFormatter::format() - */ - public function format(array $record) - { - if (isset($record["datetime"]) && ($record["datetime"] instanceof \DateTime)) { - $record["timestamp"] = $record["datetime"]->format("Y-m-d\TH:i:s.uO"); - // TODO 2.0 unset the 'datetime' parameter, retained for BC - } - - return parent::format($record); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php deleted file mode 100644 index 8f83bec0..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php +++ /dev/null @@ -1,166 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Serializes a log message to Logstash Event Format - * - * @see http://logstash.net/ - * @see https://github.com/logstash/logstash/blob/master/lib/logstash/event.rb - * - * @author Tim Mower - */ -class LogstashFormatter extends NormalizerFormatter -{ - const V0 = 0; - const V1 = 1; - - /** - * @var string the name of the system for the Logstash log message, used to fill the @source field - */ - protected $systemName; - - /** - * @var string an application name for the Logstash log message, used to fill the @type field - */ - protected $applicationName; - - /** - * @var string a prefix for 'extra' fields from the Monolog record (optional) - */ - protected $extraPrefix; - - /** - * @var string a prefix for 'context' fields from the Monolog record (optional) - */ - protected $contextPrefix; - - /** - * @var int logstash format version to use - */ - protected $version; - - /** - * @param string $applicationName the application that sends the data, used as the "type" field of logstash - * @param string $systemName the system/machine name, used as the "source" field of logstash, defaults to the hostname of the machine - * @param string $extraPrefix prefix for extra keys inside logstash "fields" - * @param string $contextPrefix prefix for context keys inside logstash "fields", defaults to ctxt_ - * @param int $version the logstash format version to use, defaults to 0 - */ - public function __construct($applicationName, $systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $version = self::V0) - { - // logstash requires a ISO 8601 format date with optional millisecond precision. - parent::__construct('Y-m-d\TH:i:s.uP'); - - $this->systemName = $systemName ?: gethostname(); - $this->applicationName = $applicationName; - $this->extraPrefix = $extraPrefix; - $this->contextPrefix = $contextPrefix; - $this->version = $version; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - - if ($this->version === self::V1) { - $message = $this->formatV1($record); - } else { - $message = $this->formatV0($record); - } - - return $this->toJson($message) . "\n"; - } - - protected function formatV0(array $record) - { - if (empty($record['datetime'])) { - $record['datetime'] = gmdate('c'); - } - $message = array( - '@timestamp' => $record['datetime'], - '@source' => $this->systemName, - '@fields' => array(), - ); - if (isset($record['message'])) { - $message['@message'] = $record['message']; - } - if (isset($record['channel'])) { - $message['@tags'] = array($record['channel']); - $message['@fields']['channel'] = $record['channel']; - } - if (isset($record['level'])) { - $message['@fields']['level'] = $record['level']; - } - if ($this->applicationName) { - $message['@type'] = $this->applicationName; - } - if (isset($record['extra']['server'])) { - $message['@source_host'] = $record['extra']['server']; - } - if (isset($record['extra']['url'])) { - $message['@source_path'] = $record['extra']['url']; - } - if (!empty($record['extra'])) { - foreach ($record['extra'] as $key => $val) { - $message['@fields'][$this->extraPrefix . $key] = $val; - } - } - if (!empty($record['context'])) { - foreach ($record['context'] as $key => $val) { - $message['@fields'][$this->contextPrefix . $key] = $val; - } - } - - return $message; - } - - protected function formatV1(array $record) - { - if (empty($record['datetime'])) { - $record['datetime'] = gmdate('c'); - } - $message = array( - '@timestamp' => $record['datetime'], - '@version' => 1, - 'host' => $this->systemName, - ); - if (isset($record['message'])) { - $message['message'] = $record['message']; - } - if (isset($record['channel'])) { - $message['type'] = $record['channel']; - $message['channel'] = $record['channel']; - } - if (isset($record['level_name'])) { - $message['level'] = $record['level_name']; - } - if ($this->applicationName) { - $message['type'] = $this->applicationName; - } - if (!empty($record['extra'])) { - foreach ($record['extra'] as $key => $val) { - $message[$this->extraPrefix . $key] = $val; - } - } - if (!empty($record['context'])) { - foreach ($record['context'] as $key => $val) { - $message[$this->contextPrefix . $key] = $val; - } - } - - return $message; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php deleted file mode 100644 index eb067bb7..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php +++ /dev/null @@ -1,105 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Formats a record for use with the MongoDBHandler. - * - * @author Florian Plattner - */ -class MongoDBFormatter implements FormatterInterface -{ - private $exceptionTraceAsString; - private $maxNestingLevel; - - /** - * @param int $maxNestingLevel 0 means infinite nesting, the $record itself is level 1, $record['context'] is 2 - * @param bool $exceptionTraceAsString set to false to log exception traces as a sub documents instead of strings - */ - public function __construct($maxNestingLevel = 3, $exceptionTraceAsString = true) - { - $this->maxNestingLevel = max($maxNestingLevel, 0); - $this->exceptionTraceAsString = (bool) $exceptionTraceAsString; - } - - /** - * {@inheritDoc} - */ - public function format(array $record) - { - return $this->formatArray($record); - } - - /** - * {@inheritDoc} - */ - public function formatBatch(array $records) - { - foreach ($records as $key => $record) { - $records[$key] = $this->format($record); - } - - return $records; - } - - protected function formatArray(array $record, $nestingLevel = 0) - { - if ($this->maxNestingLevel == 0 || $nestingLevel <= $this->maxNestingLevel) { - foreach ($record as $name => $value) { - if ($value instanceof \DateTime) { - $record[$name] = $this->formatDate($value, $nestingLevel + 1); - } elseif ($value instanceof \Exception) { - $record[$name] = $this->formatException($value, $nestingLevel + 1); - } elseif (is_array($value)) { - $record[$name] = $this->formatArray($value, $nestingLevel + 1); - } elseif (is_object($value)) { - $record[$name] = $this->formatObject($value, $nestingLevel + 1); - } - } - } else { - $record = '[...]'; - } - - return $record; - } - - protected function formatObject($value, $nestingLevel) - { - $objectVars = get_object_vars($value); - $objectVars['class'] = get_class($value); - - return $this->formatArray($objectVars, $nestingLevel); - } - - protected function formatException(\Exception $exception, $nestingLevel) - { - $formattedException = array( - 'class' => get_class($exception), - 'message' => $exception->getMessage(), - 'code' => $exception->getCode(), - 'file' => $exception->getFile() . ':' . $exception->getLine(), - ); - - if ($this->exceptionTraceAsString === true) { - $formattedException['trace'] = $exception->getTraceAsString(); - } else { - $formattedException['trace'] = $exception->getTrace(); - } - - return $this->formatArray($formattedException, $nestingLevel); - } - - protected function formatDate(\DateTime $value, $nestingLevel) - { - return new \MongoDate($value->getTimestamp()); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php deleted file mode 100644 index d4414882..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +++ /dev/null @@ -1,297 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Exception; - -/** - * Normalizes incoming records to remove objects/resources so it's easier to dump to various targets - * - * @author Jordi Boggiano - */ -class NormalizerFormatter implements FormatterInterface -{ - const SIMPLE_DATE = "Y-m-d H:i:s"; - - protected $dateFormat; - - /** - * @param string $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct($dateFormat = null) - { - $this->dateFormat = $dateFormat ?: static::SIMPLE_DATE; - if (!function_exists('json_encode')) { - throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s NormalizerFormatter'); - } - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - return $this->normalize($record); - } - - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - foreach ($records as $key => $record) { - $records[$key] = $this->format($record); - } - - return $records; - } - - protected function normalize($data) - { - if (null === $data || is_scalar($data)) { - if (is_float($data)) { - if (is_infinite($data)) { - return ($data > 0 ? '' : '-') . 'INF'; - } - if (is_nan($data)) { - return 'NaN'; - } - } - - return $data; - } - - if (is_array($data)) { - $normalized = array(); - - $count = 1; - foreach ($data as $key => $value) { - if ($count++ >= 1000) { - $normalized['...'] = 'Over 1000 items ('.count($data).' total), aborting normalization'; - break; - } - $normalized[$key] = $this->normalize($value); - } - - return $normalized; - } - - if ($data instanceof \DateTime) { - return $data->format($this->dateFormat); - } - - if (is_object($data)) { - // TODO 2.0 only check for Throwable - if ($data instanceof Exception || (PHP_VERSION_ID > 70000 && $data instanceof \Throwable)) { - return $this->normalizeException($data); - } - - // non-serializable objects that implement __toString stringified - if (method_exists($data, '__toString') && !$data instanceof \JsonSerializable) { - $value = $data->__toString(); - } else { - // the rest is json-serialized in some way - $value = $this->toJson($data, true); - } - - return sprintf("[object] (%s: %s)", get_class($data), $value); - } - - if (is_resource($data)) { - return sprintf('[resource] (%s)', get_resource_type($data)); - } - - return '[unknown('.gettype($data).')]'; - } - - protected function normalizeException($e) - { - // TODO 2.0 only check for Throwable - if (!$e instanceof Exception && !$e instanceof \Throwable) { - throw new \InvalidArgumentException('Exception/Throwable expected, got '.gettype($e).' / '.get_class($e)); - } - - $data = array( - 'class' => get_class($e), - 'message' => $e->getMessage(), - 'code' => $e->getCode(), - 'file' => $e->getFile().':'.$e->getLine(), - ); - - if ($e instanceof \SoapFault) { - if (isset($e->faultcode)) { - $data['faultcode'] = $e->faultcode; - } - - if (isset($e->faultactor)) { - $data['faultactor'] = $e->faultactor; - } - - if (isset($e->detail)) { - $data['detail'] = $e->detail; - } - } - - $trace = $e->getTrace(); - foreach ($trace as $frame) { - if (isset($frame['file'])) { - $data['trace'][] = $frame['file'].':'.$frame['line']; - } elseif (isset($frame['function']) && $frame['function'] === '{closure}') { - // We should again normalize the frames, because it might contain invalid items - $data['trace'][] = $frame['function']; - } else { - // We should again normalize the frames, because it might contain invalid items - $data['trace'][] = $this->toJson($this->normalize($frame), true); - } - } - - if ($previous = $e->getPrevious()) { - $data['previous'] = $this->normalizeException($previous); - } - - return $data; - } - - /** - * Return the JSON representation of a value - * - * @param mixed $data - * @param bool $ignoreErrors - * @throws \RuntimeException if encoding fails and errors are not ignored - * @return string - */ - protected function toJson($data, $ignoreErrors = false) - { - // suppress json_encode errors since it's twitchy with some inputs - if ($ignoreErrors) { - return @$this->jsonEncode($data); - } - - $json = $this->jsonEncode($data); - - if ($json === false) { - $json = $this->handleJsonError(json_last_error(), $data); - } - - return $json; - } - - /** - * @param mixed $data - * @return string JSON encoded data or null on failure - */ - private function jsonEncode($data) - { - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - return json_encode($data); - } - - /** - * Handle a json_encode failure. - * - * If the failure is due to invalid string encoding, try to clean the - * input and encode again. If the second encoding attempt fails, the - * inital error is not encoding related or the input can't be cleaned then - * raise a descriptive exception. - * - * @param int $code return code of json_last_error function - * @param mixed $data data that was meant to be encoded - * @throws \RuntimeException if failure can't be corrected - * @return string JSON encoded data after error correction - */ - private function handleJsonError($code, $data) - { - if ($code !== JSON_ERROR_UTF8) { - $this->throwEncodeError($code, $data); - } - - if (is_string($data)) { - $this->detectAndCleanUtf8($data); - } elseif (is_array($data)) { - array_walk_recursive($data, array($this, 'detectAndCleanUtf8')); - } else { - $this->throwEncodeError($code, $data); - } - - $json = $this->jsonEncode($data); - - if ($json === false) { - $this->throwEncodeError(json_last_error(), $data); - } - - return $json; - } - - /** - * Throws an exception according to a given code with a customized message - * - * @param int $code return code of json_last_error function - * @param mixed $data data that was meant to be encoded - * @throws \RuntimeException - */ - private function throwEncodeError($code, $data) - { - switch ($code) { - case JSON_ERROR_DEPTH: - $msg = 'Maximum stack depth exceeded'; - break; - case JSON_ERROR_STATE_MISMATCH: - $msg = 'Underflow or the modes mismatch'; - break; - case JSON_ERROR_CTRL_CHAR: - $msg = 'Unexpected control character found'; - break; - case JSON_ERROR_UTF8: - $msg = 'Malformed UTF-8 characters, possibly incorrectly encoded'; - break; - default: - $msg = 'Unknown error'; - } - - throw new \RuntimeException('JSON encoding failed: '.$msg.'. Encoding: '.var_export($data, true)); - } - - /** - * Detect invalid UTF-8 string characters and convert to valid UTF-8. - * - * Valid UTF-8 input will be left unmodified, but strings containing - * invalid UTF-8 codepoints will be reencoded as UTF-8 with an assumed - * original encoding of ISO-8859-15. This conversion may result in - * incorrect output if the actual encoding was not ISO-8859-15, but it - * will be clean UTF-8 output and will not rely on expensive and fragile - * detection algorithms. - * - * Function converts the input in place in the passed variable so that it - * can be used as a callback for array_walk_recursive. - * - * @param mixed &$data Input to check and convert if needed - * @private - */ - public function detectAndCleanUtf8(&$data) - { - if (is_string($data) && !preg_match('//u', $data)) { - $data = preg_replace_callback( - '/[\x80-\xFF]+/', - function ($m) { return utf8_encode($m[0]); }, - $data - ); - $data = str_replace( - array('¤', '¦', '¨', '´', '¸', '¼', '½', '¾'), - array('€', 'Å ', 'Å¡', 'Ž', 'ž', 'Å’', 'Å“', 'Ÿ'), - $data - ); - } - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php deleted file mode 100644 index 5d345d53..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Formats data into an associative array of scalar values. - * Objects and arrays will be JSON encoded. - * - * @author Andrew Lawson - */ -class ScalarFormatter extends NormalizerFormatter -{ - /** - * {@inheritdoc} - */ - public function format(array $record) - { - foreach ($record as $key => $value) { - $record[$key] = $this->normalizeValue($value); - } - - return $record; - } - - /** - * @param mixed $value - * @return mixed - */ - protected function normalizeValue($value) - { - $normalized = $this->normalize($value); - - if (is_array($normalized) || is_object($normalized)) { - return $this->toJson($normalized, true); - } - - return $normalized; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php deleted file mode 100644 index 654710a8..00000000 --- a/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -/** - * Serializes a log message according to Wildfire's header requirements - * - * @author Eric Clemmons (@ericclemmons) - * @author Christophe Coevoet - * @author Kirill chEbba Chebunin - */ -class WildfireFormatter extends NormalizerFormatter -{ - const TABLE = 'table'; - - /** - * Translates Monolog log levels to Wildfire levels. - */ - private $logLevels = array( - Logger::DEBUG => 'LOG', - Logger::INFO => 'INFO', - Logger::NOTICE => 'INFO', - Logger::WARNING => 'WARN', - Logger::ERROR => 'ERROR', - Logger::CRITICAL => 'ERROR', - Logger::ALERT => 'ERROR', - Logger::EMERGENCY => 'ERROR', - ); - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - // Retrieve the line and file if set and remove them from the formatted extra - $file = $line = ''; - if (isset($record['extra']['file'])) { - $file = $record['extra']['file']; - unset($record['extra']['file']); - } - if (isset($record['extra']['line'])) { - $line = $record['extra']['line']; - unset($record['extra']['line']); - } - - $record = $this->normalize($record); - $message = array('message' => $record['message']); - $handleError = false; - if ($record['context']) { - $message['context'] = $record['context']; - $handleError = true; - } - if ($record['extra']) { - $message['extra'] = $record['extra']; - $handleError = true; - } - if (count($message) === 1) { - $message = reset($message); - } - - if (isset($record['context'][self::TABLE])) { - $type = 'TABLE'; - $label = $record['channel'] .': '. $record['message']; - $message = $record['context'][self::TABLE]; - } else { - $type = $this->logLevels[$record['level']]; - $label = $record['channel']; - } - - // Create JSON object describing the appearance of the message in the console - $json = $this->toJson(array( - array( - 'Type' => $type, - 'File' => $file, - 'Line' => $line, - 'Label' => $label, - ), - $message, - ), $handleError); - - // The message itself is a serialization of the above JSON object + it's length - return sprintf( - '%s|%s|', - strlen($json), - $json - ); - } - - public function formatBatch(array $records) - { - throw new \BadMethodCallException('Batch formatting does not make sense for the WildfireFormatter'); - } - - protected function normalize($data) - { - if (is_object($data) && !$data instanceof \DateTime) { - return $data; - } - - return parent::normalize($data); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php deleted file mode 100644 index 758a425c..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php +++ /dev/null @@ -1,186 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LineFormatter; - -/** - * Base Handler class providing the Handler structure - * - * @author Jordi Boggiano - */ -abstract class AbstractHandler implements HandlerInterface -{ - protected $level = Logger::DEBUG; - protected $bubble = true; - - /** - * @var FormatterInterface - */ - protected $formatter; - protected $processors = array(); - - /** - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($level = Logger::DEBUG, $bubble = true) - { - $this->setLevel($level); - $this->bubble = $bubble; - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return $record['level'] >= $this->level; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - foreach ($records as $record) { - $this->handle($record); - } - } - - /** - * Closes the handler. - * - * This will be called automatically when the object is destroyed - */ - public function close() - { - } - - /** - * {@inheritdoc} - */ - public function pushProcessor($callback) - { - if (!is_callable($callback)) { - throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given'); - } - array_unshift($this->processors, $callback); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function popProcessor() - { - if (!$this->processors) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - - return array_shift($this->processors); - } - - /** - * {@inheritdoc} - */ - public function setFormatter(FormatterInterface $formatter) - { - $this->formatter = $formatter; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function getFormatter() - { - if (!$this->formatter) { - $this->formatter = $this->getDefaultFormatter(); - } - - return $this->formatter; - } - - /** - * Sets minimum logging level at which this handler will be triggered. - * - * @param int|string $level Level or level name - * @return self - */ - public function setLevel($level) - { - $this->level = Logger::toMonologLevel($level); - - return $this; - } - - /** - * Gets minimum logging level at which this handler will be triggered. - * - * @return int - */ - public function getLevel() - { - return $this->level; - } - - /** - * Sets the bubbling behavior. - * - * @param Boolean $bubble true means that this handler allows bubbling. - * false means that bubbling is not permitted. - * @return self - */ - public function setBubble($bubble) - { - $this->bubble = $bubble; - - return $this; - } - - /** - * Gets the bubbling behavior. - * - * @return Boolean true means that this handler allows bubbling. - * false means that bubbling is not permitted. - */ - public function getBubble() - { - return $this->bubble; - } - - public function __destruct() - { - try { - $this->close(); - } catch (\Exception $e) { - // do nothing - } catch (\Throwable $e) { - // do nothing - } - } - - /** - * Gets the default formatter. - * - * @return FormatterInterface - */ - protected function getDefaultFormatter() - { - return new LineFormatter(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php deleted file mode 100644 index 6f18f72e..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Base Handler class providing the Handler structure - * - * Classes extending it should (in most cases) only implement write($record) - * - * @author Jordi Boggiano - * @author Christophe Coevoet - */ -abstract class AbstractProcessingHandler extends AbstractHandler -{ - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return false; - } - - $record = $this->processRecord($record); - - $record['formatted'] = $this->getFormatter()->format($record); - - $this->write($record); - - return false === $this->bubble; - } - - /** - * Writes the record down to the log of the implementing handler - * - * @param array $record - * @return void - */ - abstract protected function write(array $record); - - /** - * Processes a record. - * - * @param array $record - * @return array - */ - protected function processRecord(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - return $record; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php deleted file mode 100644 index e2b2832d..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; - -/** - * Common syslog functionality - */ -abstract class AbstractSyslogHandler extends AbstractProcessingHandler -{ - protected $facility; - - /** - * Translates Monolog log levels to syslog log priorities. - */ - protected $logLevels = array( - Logger::DEBUG => LOG_DEBUG, - Logger::INFO => LOG_INFO, - Logger::NOTICE => LOG_NOTICE, - Logger::WARNING => LOG_WARNING, - Logger::ERROR => LOG_ERR, - Logger::CRITICAL => LOG_CRIT, - Logger::ALERT => LOG_ALERT, - Logger::EMERGENCY => LOG_EMERG, - ); - - /** - * List of valid log facility names. - */ - protected $facilities = array( - 'auth' => LOG_AUTH, - 'authpriv' => LOG_AUTHPRIV, - 'cron' => LOG_CRON, - 'daemon' => LOG_DAEMON, - 'kern' => LOG_KERN, - 'lpr' => LOG_LPR, - 'mail' => LOG_MAIL, - 'news' => LOG_NEWS, - 'syslog' => LOG_SYSLOG, - 'user' => LOG_USER, - 'uucp' => LOG_UUCP, - ); - - /** - * @param mixed $facility - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($facility = LOG_USER, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - - if (!defined('PHP_WINDOWS_VERSION_BUILD')) { - $this->facilities['local0'] = LOG_LOCAL0; - $this->facilities['local1'] = LOG_LOCAL1; - $this->facilities['local2'] = LOG_LOCAL2; - $this->facilities['local3'] = LOG_LOCAL3; - $this->facilities['local4'] = LOG_LOCAL4; - $this->facilities['local5'] = LOG_LOCAL5; - $this->facilities['local6'] = LOG_LOCAL6; - $this->facilities['local7'] = LOG_LOCAL7; - } else { - $this->facilities['local0'] = 128; // LOG_LOCAL0 - $this->facilities['local1'] = 136; // LOG_LOCAL1 - $this->facilities['local2'] = 144; // LOG_LOCAL2 - $this->facilities['local3'] = 152; // LOG_LOCAL3 - $this->facilities['local4'] = 160; // LOG_LOCAL4 - $this->facilities['local5'] = 168; // LOG_LOCAL5 - $this->facilities['local6'] = 176; // LOG_LOCAL6 - $this->facilities['local7'] = 184; // LOG_LOCAL7 - } - - // convert textual description of facility to syslog constant - if (array_key_exists(strtolower($facility), $this->facilities)) { - $facility = $this->facilities[strtolower($facility)]; - } elseif (!in_array($facility, array_values($this->facilities), true)) { - throw new \UnexpectedValueException('Unknown facility value "'.$facility.'" given'); - } - - $this->facility = $facility; - } - - /** - * {@inheritdoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter('%channel%.%level_name%: %message% %context% %extra%'); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php deleted file mode 100644 index e5a46bc0..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php +++ /dev/null @@ -1,148 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\JsonFormatter; -use PhpAmqpLib\Message\AMQPMessage; -use PhpAmqpLib\Channel\AMQPChannel; -use AMQPExchange; - -class AmqpHandler extends AbstractProcessingHandler -{ - /** - * @var AMQPExchange|AMQPChannel $exchange - */ - protected $exchange; - - /** - * @var string - */ - protected $exchangeName; - - /** - * @param AMQPExchange|AMQPChannel $exchange AMQPExchange (php AMQP ext) or PHP AMQP lib channel, ready for use - * @param string $exchangeName - * @param int $level - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($exchange, $exchangeName = 'log', $level = Logger::DEBUG, $bubble = true) - { - if ($exchange instanceof AMQPExchange) { - $exchange->setName($exchangeName); - } elseif ($exchange instanceof AMQPChannel) { - $this->exchangeName = $exchangeName; - } else { - throw new \InvalidArgumentException('PhpAmqpLib\Channel\AMQPChannel or AMQPExchange instance required'); - } - $this->exchange = $exchange; - - parent::__construct($level, $bubble); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $data = $record["formatted"]; - $routingKey = $this->getRoutingKey($record); - - if ($this->exchange instanceof AMQPExchange) { - $this->exchange->publish( - $data, - $routingKey, - 0, - array( - 'delivery_mode' => 2, - 'content_type' => 'application/json', - ) - ); - } else { - $this->exchange->basic_publish( - $this->createAmqpMessage($data), - $this->exchangeName, - $routingKey - ); - } - } - - /** - * {@inheritDoc} - */ - public function handleBatch(array $records) - { - if ($this->exchange instanceof AMQPExchange) { - parent::handleBatch($records); - - return; - } - - foreach ($records as $record) { - if (!$this->isHandling($record)) { - continue; - } - - $record = $this->processRecord($record); - $data = $this->getFormatter()->format($record); - - $this->exchange->batch_basic_publish( - $this->createAmqpMessage($data), - $this->exchangeName, - $this->getRoutingKey($record) - ); - } - - $this->exchange->publish_batch(); - } - - /** - * Gets the routing key for the AMQP exchange - * - * @param array $record - * @return string - */ - protected function getRoutingKey(array $record) - { - $routingKey = sprintf( - '%s.%s', - // TODO 2.0 remove substr call - substr($record['level_name'], 0, 4), - $record['channel'] - ); - - return strtolower($routingKey); - } - - /** - * @param string $data - * @return AMQPMessage - */ - private function createAmqpMessage($data) - { - return new AMQPMessage( - (string) $data, - array( - 'delivery_mode' => 2, - 'content_type' => 'application/json', - ) - ); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php deleted file mode 100644 index b3a21bd4..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php +++ /dev/null @@ -1,230 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; - -/** - * Handler sending logs to browser's javascript console with no browser extension required - * - * @author Olivier Poitrey - */ -class BrowserConsoleHandler extends AbstractProcessingHandler -{ - protected static $initialized = false; - protected static $records = array(); - - /** - * {@inheritDoc} - * - * Formatted output may contain some formatting markers to be transferred to `console.log` using the %c format. - * - * Example of formatted string: - * - * You can do [[blue text]]{color: blue} or [[green background]]{background-color: green; color: white} - */ - protected function getDefaultFormatter() - { - return new LineFormatter('[[%channel%]]{macro: autolabel} [[%level_name%]]{font-weight: bold} %message%'); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - // Accumulate records - self::$records[] = $record; - - // Register shutdown handler if not already done - if (!self::$initialized) { - self::$initialized = true; - $this->registerShutdownFunction(); - } - } - - /** - * Convert records to javascript console commands and send it to the browser. - * This method is automatically called on PHP shutdown if output is HTML or Javascript. - */ - public static function send() - { - $format = self::getResponseFormat(); - if ($format === 'unknown') { - return; - } - - if (count(self::$records)) { - if ($format === 'html') { - self::writeOutput(''); - } elseif ($format === 'js') { - self::writeOutput(self::generateScript()); - } - self::reset(); - } - } - - /** - * Forget all logged records - */ - public static function reset() - { - self::$records = array(); - } - - /** - * Wrapper for register_shutdown_function to allow overriding - */ - protected function registerShutdownFunction() - { - if (PHP_SAPI !== 'cli') { - register_shutdown_function(array('Monolog\Handler\BrowserConsoleHandler', 'send')); - } - } - - /** - * Wrapper for echo to allow overriding - * - * @param string $str - */ - protected static function writeOutput($str) - { - echo $str; - } - - /** - * Checks the format of the response - * - * If Content-Type is set to application/javascript or text/javascript -> js - * If Content-Type is set to text/html, or is unset -> html - * If Content-Type is anything else -> unknown - * - * @return string One of 'js', 'html' or 'unknown' - */ - protected static function getResponseFormat() - { - // Check content type - foreach (headers_list() as $header) { - if (stripos($header, 'content-type:') === 0) { - // This handler only works with HTML and javascript outputs - // text/javascript is obsolete in favour of application/javascript, but still used - if (stripos($header, 'application/javascript') !== false || stripos($header, 'text/javascript') !== false) { - return 'js'; - } - if (stripos($header, 'text/html') === false) { - return 'unknown'; - } - break; - } - } - - return 'html'; - } - - private static function generateScript() - { - $script = array(); - foreach (self::$records as $record) { - $context = self::dump('Context', $record['context']); - $extra = self::dump('Extra', $record['extra']); - - if (empty($context) && empty($extra)) { - $script[] = self::call_array('log', self::handleStyles($record['formatted'])); - } else { - $script = array_merge($script, - array(self::call_array('groupCollapsed', self::handleStyles($record['formatted']))), - $context, - $extra, - array(self::call('groupEnd')) - ); - } - } - - return "(function (c) {if (c && c.groupCollapsed) {\n" . implode("\n", $script) . "\n}})(console);"; - } - - private static function handleStyles($formatted) - { - $args = array(self::quote('font-weight: normal')); - $format = '%c' . $formatted; - preg_match_all('/\[\[(.*?)\]\]\{([^}]*)\}/s', $format, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); - - foreach (array_reverse($matches) as $match) { - $args[] = self::quote(self::handleCustomStyles($match[2][0], $match[1][0])); - $args[] = '"font-weight: normal"'; - - $pos = $match[0][1]; - $format = substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . substr($format, $pos + strlen($match[0][0])); - } - - array_unshift($args, self::quote($format)); - - return $args; - } - - private static function handleCustomStyles($style, $string) - { - static $colors = array('blue', 'green', 'red', 'magenta', 'orange', 'black', 'grey'); - static $labels = array(); - - return preg_replace_callback('/macro\s*:(.*?)(?:;|$)/', function ($m) use ($string, &$colors, &$labels) { - if (trim($m[1]) === 'autolabel') { - // Format the string as a label with consistent auto assigned background color - if (!isset($labels[$string])) { - $labels[$string] = $colors[count($labels) % count($colors)]; - } - $color = $labels[$string]; - - return "background-color: $color; color: white; border-radius: 3px; padding: 0 2px 0 2px"; - } - - return $m[1]; - }, $style); - } - - private static function dump($title, array $dict) - { - $script = array(); - $dict = array_filter($dict); - if (empty($dict)) { - return $script; - } - $script[] = self::call('log', self::quote('%c%s'), self::quote('font-weight: bold'), self::quote($title)); - foreach ($dict as $key => $value) { - $value = json_encode($value); - if (empty($value)) { - $value = self::quote(''); - } - $script[] = self::call('log', self::quote('%s: %o'), self::quote($key), $value); - } - - return $script; - } - - private static function quote($arg) - { - return '"' . addcslashes($arg, "\"\n\\") . '"'; - } - - private static function call() - { - $args = func_get_args(); - $method = array_shift($args); - - return self::call_array($method, $args); - } - - private static function call_array($method, array $args) - { - return 'c.' . $method . '(' . implode(', ', $args) . ');'; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php deleted file mode 100644 index 72f89535..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php +++ /dev/null @@ -1,117 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Buffers all records until closing the handler and then pass them as batch. - * - * This is useful for a MailHandler to send only one mail per request instead of - * sending one per log message. - * - * @author Christophe Coevoet - */ -class BufferHandler extends AbstractHandler -{ - protected $handler; - protected $bufferSize = 0; - protected $bufferLimit; - protected $flushOnOverflow; - protected $buffer = array(); - protected $initialized = false; - - /** - * @param HandlerInterface $handler Handler. - * @param int $bufferLimit How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param Boolean $flushOnOverflow If true, the buffer is flushed when the max size has been reached, by default oldest entries are discarded - */ - public function __construct(HandlerInterface $handler, $bufferLimit = 0, $level = Logger::DEBUG, $bubble = true, $flushOnOverflow = false) - { - parent::__construct($level, $bubble); - $this->handler = $handler; - $this->bufferLimit = (int) $bufferLimit; - $this->flushOnOverflow = $flushOnOverflow; - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($record['level'] < $this->level) { - return false; - } - - if (!$this->initialized) { - // __destructor() doesn't get called on Fatal errors - register_shutdown_function(array($this, 'close')); - $this->initialized = true; - } - - if ($this->bufferLimit > 0 && $this->bufferSize === $this->bufferLimit) { - if ($this->flushOnOverflow) { - $this->flush(); - } else { - array_shift($this->buffer); - $this->bufferSize--; - } - } - - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - $this->buffer[] = $record; - $this->bufferSize++; - - return false === $this->bubble; - } - - public function flush() - { - if ($this->bufferSize === 0) { - return; - } - - $this->handler->handleBatch($this->buffer); - $this->clear(); - } - - public function __destruct() - { - // suppress the parent behavior since we already have register_shutdown_function() - // to call close(), and the reference contained there will prevent this from being - // GC'd until the end of the request - } - - /** - * {@inheritdoc} - */ - public function close() - { - $this->flush(); - } - - /** - * Clears the buffer without flushing any messages down to the wrapped handler. - */ - public function clear() - { - $this->bufferSize = 0; - $this->buffer = array(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php deleted file mode 100644 index 785cb0c9..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +++ /dev/null @@ -1,211 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\ChromePHPFormatter; -use Monolog\Logger; - -/** - * Handler sending logs to the ChromePHP extension (http://www.chromephp.com/) - * - * This also works out of the box with Firefox 43+ - * - * @author Christophe Coevoet - */ -class ChromePHPHandler extends AbstractProcessingHandler -{ - /** - * Version of the extension - */ - const VERSION = '4.0'; - - /** - * Header name - */ - const HEADER_NAME = 'X-ChromeLogger-Data'; - - /** - * Regular expression to detect supported browsers (matches any Chrome, or Firefox 43+) - */ - const USER_AGENT_REGEX = '{\b(?:Chrome/\d+(?:\.\d+)*|HeadlessChrome|Firefox/(?:4[3-9]|[5-9]\d|\d{3,})(?:\.\d)*)\b}'; - - protected static $initialized = false; - - /** - * Tracks whether we sent too much data - * - * Chrome limits the headers to 256KB, so when we sent 240KB we stop sending - * - * @var Boolean - */ - protected static $overflowed = false; - - protected static $json = array( - 'version' => self::VERSION, - 'columns' => array('label', 'log', 'backtrace', 'type'), - 'rows' => array(), - ); - - protected static $sendHeaders = true; - - /** - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - if (!function_exists('json_encode')) { - throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s ChromePHPHandler'); - } - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $messages = array(); - - foreach ($records as $record) { - if ($record['level'] < $this->level) { - continue; - } - $messages[] = $this->processRecord($record); - } - - if (!empty($messages)) { - $messages = $this->getFormatter()->formatBatch($messages); - self::$json['rows'] = array_merge(self::$json['rows'], $messages); - $this->send(); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new ChromePHPFormatter(); - } - - /** - * Creates & sends header for a record - * - * @see sendHeader() - * @see send() - * @param array $record - */ - protected function write(array $record) - { - self::$json['rows'][] = $record['formatted']; - - $this->send(); - } - - /** - * Sends the log header - * - * @see sendHeader() - */ - protected function send() - { - if (self::$overflowed || !self::$sendHeaders) { - return; - } - - if (!self::$initialized) { - self::$initialized = true; - - self::$sendHeaders = $this->headersAccepted(); - if (!self::$sendHeaders) { - return; - } - - self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; - } - - $json = @json_encode(self::$json); - $data = base64_encode(utf8_encode($json)); - if (strlen($data) > 240 * 1024) { - self::$overflowed = true; - - $record = array( - 'message' => 'Incomplete logs, chrome header size limit reached', - 'context' => array(), - 'level' => Logger::WARNING, - 'level_name' => Logger::getLevelName(Logger::WARNING), - 'channel' => 'monolog', - 'datetime' => new \DateTime(), - 'extra' => array(), - ); - self::$json['rows'][count(self::$json['rows']) - 1] = $this->getFormatter()->format($record); - $json = @json_encode(self::$json); - $data = base64_encode(utf8_encode($json)); - } - - if (trim($data) !== '') { - $this->sendHeader(self::HEADER_NAME, $data); - } - } - - /** - * Send header string to the client - * - * @param string $header - * @param string $content - */ - protected function sendHeader($header, $content) - { - if (!headers_sent() && self::$sendHeaders) { - header(sprintf('%s: %s', $header, $content)); - } - } - - /** - * Verifies if the headers are accepted by the current user agent - * - * @return Boolean - */ - protected function headersAccepted() - { - if (empty($_SERVER['HTTP_USER_AGENT'])) { - return false; - } - - return preg_match(self::USER_AGENT_REGEX, $_SERVER['HTTP_USER_AGENT']); - } - - /** - * BC getter for the sendHeaders property that has been made static - */ - public function __get($property) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property '.$property); - } - - return static::$sendHeaders; - } - - /** - * BC setter for the sendHeaders property that has been made static - */ - public function __set($property, $value) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property '.$property); - } - - static::$sendHeaders = $value; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php deleted file mode 100644 index cc986971..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\JsonFormatter; -use Monolog\Logger; - -/** - * CouchDB handler - * - * @author Markus Bachmann - */ -class CouchDBHandler extends AbstractProcessingHandler -{ - private $options; - - public function __construct(array $options = array(), $level = Logger::DEBUG, $bubble = true) - { - $this->options = array_merge(array( - 'host' => 'localhost', - 'port' => 5984, - 'dbname' => 'logger', - 'username' => null, - 'password' => null, - ), $options); - - parent::__construct($level, $bubble); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $basicAuth = null; - if ($this->options['username']) { - $basicAuth = sprintf('%s:%s@', $this->options['username'], $this->options['password']); - } - - $url = 'http://'.$basicAuth.$this->options['host'].':'.$this->options['port'].'/'.$this->options['dbname']; - $context = stream_context_create(array( - 'http' => array( - 'method' => 'POST', - 'content' => $record['formatted'], - 'ignore_errors' => true, - 'max_redirects' => 0, - 'header' => 'Content-type: application/json', - ), - )); - - if (false === @file_get_contents($url, null, $context)) { - throw new \RuntimeException(sprintf('Could not connect to %s', $url)); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php deleted file mode 100644 index 96b3ca0c..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php +++ /dev/null @@ -1,151 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Logs to Cube. - * - * @link http://square.github.com/cube/ - * @author Wan Chen - */ -class CubeHandler extends AbstractProcessingHandler -{ - private $udpConnection; - private $httpConnection; - private $scheme; - private $host; - private $port; - private $acceptedSchemes = array('http', 'udp'); - - /** - * Create a Cube handler - * - * @throws \UnexpectedValueException when given url is not a valid url. - * A valid url must consist of three parts : protocol://host:port - * Only valid protocols used by Cube are http and udp - */ - public function __construct($url, $level = Logger::DEBUG, $bubble = true) - { - $urlInfo = parse_url($url); - - if (!isset($urlInfo['scheme'], $urlInfo['host'], $urlInfo['port'])) { - throw new \UnexpectedValueException('URL "'.$url.'" is not valid'); - } - - if (!in_array($urlInfo['scheme'], $this->acceptedSchemes)) { - throw new \UnexpectedValueException( - 'Invalid protocol (' . $urlInfo['scheme'] . ').' - . ' Valid options are ' . implode(', ', $this->acceptedSchemes)); - } - - $this->scheme = $urlInfo['scheme']; - $this->host = $urlInfo['host']; - $this->port = $urlInfo['port']; - - parent::__construct($level, $bubble); - } - - /** - * Establish a connection to an UDP socket - * - * @throws \LogicException when unable to connect to the socket - * @throws MissingExtensionException when there is no socket extension - */ - protected function connectUdp() - { - if (!extension_loaded('sockets')) { - throw new MissingExtensionException('The sockets extension is required to use udp URLs with the CubeHandler'); - } - - $this->udpConnection = socket_create(AF_INET, SOCK_DGRAM, 0); - if (!$this->udpConnection) { - throw new \LogicException('Unable to create a socket'); - } - - if (!socket_connect($this->udpConnection, $this->host, $this->port)) { - throw new \LogicException('Unable to connect to the socket at ' . $this->host . ':' . $this->port); - } - } - - /** - * Establish a connection to a http server - * @throws \LogicException when no curl extension - */ - protected function connectHttp() - { - if (!extension_loaded('curl')) { - throw new \LogicException('The curl extension is needed to use http URLs with the CubeHandler'); - } - - $this->httpConnection = curl_init('http://'.$this->host.':'.$this->port.'/1.0/event/put'); - - if (!$this->httpConnection) { - throw new \LogicException('Unable to connect to ' . $this->host . ':' . $this->port); - } - - curl_setopt($this->httpConnection, CURLOPT_CUSTOMREQUEST, "POST"); - curl_setopt($this->httpConnection, CURLOPT_RETURNTRANSFER, true); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $date = $record['datetime']; - - $data = array('time' => $date->format('Y-m-d\TH:i:s.uO')); - unset($record['datetime']); - - if (isset($record['context']['type'])) { - $data['type'] = $record['context']['type']; - unset($record['context']['type']); - } else { - $data['type'] = $record['channel']; - } - - $data['data'] = $record['context']; - $data['data']['level'] = $record['level']; - - if ($this->scheme === 'http') { - $this->writeHttp(json_encode($data)); - } else { - $this->writeUdp(json_encode($data)); - } - } - - private function writeUdp($data) - { - if (!$this->udpConnection) { - $this->connectUdp(); - } - - socket_send($this->udpConnection, $data, strlen($data), 0); - } - - private function writeHttp($data) - { - if (!$this->httpConnection) { - $this->connectHttp(); - } - - curl_setopt($this->httpConnection, CURLOPT_POSTFIELDS, '['.$data.']'); - curl_setopt($this->httpConnection, CURLOPT_HTTPHEADER, array( - 'Content-Type: application/json', - 'Content-Length: ' . strlen('['.$data.']'), - )); - - Curl\Util::execute($this->httpConnection, 5, false); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php b/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php deleted file mode 100644 index 48d30b35..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\Curl; - -class Util -{ - private static $retriableErrorCodes = array( - CURLE_COULDNT_RESOLVE_HOST, - CURLE_COULDNT_CONNECT, - CURLE_HTTP_NOT_FOUND, - CURLE_READ_ERROR, - CURLE_OPERATION_TIMEOUTED, - CURLE_HTTP_POST_ERROR, - CURLE_SSL_CONNECT_ERROR, - ); - - /** - * Executes a CURL request with optional retries and exception on failure - * - * @param resource $ch curl handler - * @throws \RuntimeException - */ - public static function execute($ch, $retries = 5, $closeAfterDone = true) - { - while ($retries--) { - if (curl_exec($ch) === false) { - $curlErrno = curl_errno($ch); - - if (false === in_array($curlErrno, self::$retriableErrorCodes, true) || !$retries) { - $curlError = curl_error($ch); - - if ($closeAfterDone) { - curl_close($ch); - } - - throw new \RuntimeException(sprintf('Curl error (code %s): %s', $curlErrno, $curlError)); - } - - continue; - } - - if ($closeAfterDone) { - curl_close($ch); - } - break; - } - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php deleted file mode 100644 index 7778c22a..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php +++ /dev/null @@ -1,169 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Simple handler wrapper that deduplicates log records across multiple requests - * - * It also includes the BufferHandler functionality and will buffer - * all messages until the end of the request or flush() is called. - * - * This works by storing all log records' messages above $deduplicationLevel - * to the file specified by $deduplicationStore. When further logs come in at the end of the - * request (or when flush() is called), all those above $deduplicationLevel are checked - * against the existing stored logs. If they match and the timestamps in the stored log is - * not older than $time seconds, the new log record is discarded. If no log record is new, the - * whole data set is discarded. - * - * This is mainly useful in combination with Mail handlers or things like Slack or HipChat handlers - * that send messages to people, to avoid spamming with the same message over and over in case of - * a major component failure like a database server being down which makes all requests fail in the - * same way. - * - * @author Jordi Boggiano - */ -class DeduplicationHandler extends BufferHandler -{ - /** - * @var string - */ - protected $deduplicationStore; - - /** - * @var int - */ - protected $deduplicationLevel; - - /** - * @var int - */ - protected $time; - - /** - * @var bool - */ - private $gc = false; - - /** - * @param HandlerInterface $handler Handler. - * @param string $deduplicationStore The file/path where the deduplication log should be kept - * @param int $deduplicationLevel The minimum logging level for log records to be looked at for deduplication purposes - * @param int $time The period (in seconds) during which duplicate entries should be suppressed after a given log is sent through - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(HandlerInterface $handler, $deduplicationStore = null, $deduplicationLevel = Logger::ERROR, $time = 60, $bubble = true) - { - parent::__construct($handler, 0, Logger::DEBUG, $bubble, false); - - $this->deduplicationStore = $deduplicationStore === null ? sys_get_temp_dir() . '/monolog-dedup-' . substr(md5(__FILE__), 0, 20) .'.log' : $deduplicationStore; - $this->deduplicationLevel = Logger::toMonologLevel($deduplicationLevel); - $this->time = $time; - } - - public function flush() - { - if ($this->bufferSize === 0) { - return; - } - - $passthru = null; - - foreach ($this->buffer as $record) { - if ($record['level'] >= $this->deduplicationLevel) { - - $passthru = $passthru || !$this->isDuplicate($record); - if ($passthru) { - $this->appendRecord($record); - } - } - } - - // default of null is valid as well as if no record matches duplicationLevel we just pass through - if ($passthru === true || $passthru === null) { - $this->handler->handleBatch($this->buffer); - } - - $this->clear(); - - if ($this->gc) { - $this->collectLogs(); - } - } - - private function isDuplicate(array $record) - { - if (!file_exists($this->deduplicationStore)) { - return false; - } - - $store = file($this->deduplicationStore, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - if (!is_array($store)) { - return false; - } - - $yesterday = time() - 86400; - $timestampValidity = $record['datetime']->getTimestamp() - $this->time; - $expectedMessage = preg_replace('{[\r\n].*}', '', $record['message']); - - for ($i = count($store) - 1; $i >= 0; $i--) { - list($timestamp, $level, $message) = explode(':', $store[$i], 3); - - if ($level === $record['level_name'] && $message === $expectedMessage && $timestamp > $timestampValidity) { - return true; - } - - if ($timestamp < $yesterday) { - $this->gc = true; - } - } - - return false; - } - - private function collectLogs() - { - if (!file_exists($this->deduplicationStore)) { - return false; - } - - $handle = fopen($this->deduplicationStore, 'rw+'); - flock($handle, LOCK_EX); - $validLogs = array(); - - $timestampValidity = time() - $this->time; - - while (!feof($handle)) { - $log = fgets($handle); - if (substr($log, 0, 10) >= $timestampValidity) { - $validLogs[] = $log; - } - } - - ftruncate($handle, 0); - rewind($handle); - foreach ($validLogs as $log) { - fwrite($handle, $log); - } - - flock($handle, LOCK_UN); - fclose($handle); - - $this->gc = false; - } - - private function appendRecord(array $record) - { - file_put_contents($this->deduplicationStore, $record['datetime']->getTimestamp() . ':' . $record['level_name'] . ':' . preg_replace('{[\r\n].*}', '', $record['message']) . "\n", FILE_APPEND); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php deleted file mode 100644 index b91ffec9..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\NormalizerFormatter; -use Doctrine\CouchDB\CouchDBClient; - -/** - * CouchDB handler for Doctrine CouchDB ODM - * - * @author Markus Bachmann - */ -class DoctrineCouchDBHandler extends AbstractProcessingHandler -{ - private $client; - - public function __construct(CouchDBClient $client, $level = Logger::DEBUG, $bubble = true) - { - $this->client = $client; - parent::__construct($level, $bubble); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $this->client->postDocument($record['formatted']); - } - - protected function getDefaultFormatter() - { - return new NormalizerFormatter; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php deleted file mode 100644 index 237b71f6..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php +++ /dev/null @@ -1,107 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Aws\Sdk; -use Aws\DynamoDb\DynamoDbClient; -use Aws\DynamoDb\Marshaler; -use Monolog\Formatter\ScalarFormatter; -use Monolog\Logger; - -/** - * Amazon DynamoDB handler (http://aws.amazon.com/dynamodb/) - * - * @link https://github.com/aws/aws-sdk-php/ - * @author Andrew Lawson - */ -class DynamoDbHandler extends AbstractProcessingHandler -{ - const DATE_FORMAT = 'Y-m-d\TH:i:s.uO'; - - /** - * @var DynamoDbClient - */ - protected $client; - - /** - * @var string - */ - protected $table; - - /** - * @var int - */ - protected $version; - - /** - * @var Marshaler - */ - protected $marshaler; - - /** - * @param DynamoDbClient $client - * @param string $table - * @param int $level - * @param bool $bubble - */ - public function __construct(DynamoDbClient $client, $table, $level = Logger::DEBUG, $bubble = true) - { - if (defined('Aws\Sdk::VERSION') && version_compare(Sdk::VERSION, '3.0', '>=')) { - $this->version = 3; - $this->marshaler = new Marshaler; - } else { - $this->version = 2; - } - - $this->client = $client; - $this->table = $table; - - parent::__construct($level, $bubble); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $filtered = $this->filterEmptyFields($record['formatted']); - if ($this->version === 3) { - $formatted = $this->marshaler->marshalItem($filtered); - } else { - $formatted = $this->client->formatAttributes($filtered); - } - - $this->client->putItem(array( - 'TableName' => $this->table, - 'Item' => $formatted, - )); - } - - /** - * @param array $record - * @return array - */ - protected function filterEmptyFields(array $record) - { - return array_filter($record, function ($value) { - return !empty($value) || false === $value || 0 === $value; - }); - } - - /** - * {@inheritdoc} - */ - protected function getDefaultFormatter() - { - return new ScalarFormatter(self::DATE_FORMAT); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php deleted file mode 100644 index 81967406..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php +++ /dev/null @@ -1,128 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\ElasticaFormatter; -use Monolog\Logger; -use Elastica\Client; -use Elastica\Exception\ExceptionInterface; - -/** - * Elastic Search handler - * - * Usage example: - * - * $client = new \Elastica\Client(); - * $options = array( - * 'index' => 'elastic_index_name', - * 'type' => 'elastic_doc_type', - * ); - * $handler = new ElasticSearchHandler($client, $options); - * $log = new Logger('application'); - * $log->pushHandler($handler); - * - * @author Jelle Vink - */ -class ElasticSearchHandler extends AbstractProcessingHandler -{ - /** - * @var Client - */ - protected $client; - - /** - * @var array Handler config options - */ - protected $options = array(); - - /** - * @param Client $client Elastica Client object - * @param array $options Handler configuration - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(Client $client, array $options = array(), $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - $this->client = $client; - $this->options = array_merge( - array( - 'index' => 'monolog', // Elastic index name - 'type' => 'record', // Elastic document type - 'ignore_error' => false, // Suppress Elastica exceptions - ), - $options - ); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $this->bulkSend(array($record['formatted'])); - } - - /** - * {@inheritdoc} - */ - public function setFormatter(FormatterInterface $formatter) - { - if ($formatter instanceof ElasticaFormatter) { - return parent::setFormatter($formatter); - } - throw new \InvalidArgumentException('ElasticSearchHandler is only compatible with ElasticaFormatter'); - } - - /** - * Getter options - * @return array - */ - public function getOptions() - { - return $this->options; - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new ElasticaFormatter($this->options['index'], $this->options['type']); - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $documents = $this->getFormatter()->formatBatch($records); - $this->bulkSend($documents); - } - - /** - * Use Elasticsearch bulk API to send list of documents - * @param array $documents - * @throws \RuntimeException - */ - protected function bulkSend(array $documents) - { - try { - $this->client->addDocuments($documents); - } catch (ExceptionInterface $e) { - if (!$this->options['ignore_error']) { - throw new \RuntimeException("Error sending messages to Elasticsearch", 0, $e); - } - } - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php deleted file mode 100644 index 1447a584..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Logger; - -/** - * Stores to PHP error_log() handler. - * - * @author Elan Ruusamäe - */ -class ErrorLogHandler extends AbstractProcessingHandler -{ - const OPERATING_SYSTEM = 0; - const SAPI = 4; - - protected $messageType; - protected $expandNewlines; - - /** - * @param int $messageType Says where the error should go. - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param Boolean $expandNewlines If set to true, newlines in the message will be expanded to be take multiple log entries - */ - public function __construct($messageType = self::OPERATING_SYSTEM, $level = Logger::DEBUG, $bubble = true, $expandNewlines = false) - { - parent::__construct($level, $bubble); - - if (false === in_array($messageType, self::getAvailableTypes())) { - $message = sprintf('The given message type "%s" is not supported', print_r($messageType, true)); - throw new \InvalidArgumentException($message); - } - - $this->messageType = $messageType; - $this->expandNewlines = $expandNewlines; - } - - /** - * @return array With all available types - */ - public static function getAvailableTypes() - { - return array( - self::OPERATING_SYSTEM, - self::SAPI, - ); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter('[%datetime%] %channel%.%level_name%: %message% %context% %extra%'); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if ($this->expandNewlines) { - $lines = preg_split('{[\r\n]+}', (string) $record['formatted']); - foreach ($lines as $line) { - error_log($line, $this->messageType); - } - } else { - error_log((string) $record['formatted'], $this->messageType); - } - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php deleted file mode 100644 index 2a0f7fd1..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php +++ /dev/null @@ -1,140 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Simple handler wrapper that filters records based on a list of levels - * - * It can be configured with an exact list of levels to allow, or a min/max level. - * - * @author Hennadiy Verkh - * @author Jordi Boggiano - */ -class FilterHandler extends AbstractHandler -{ - /** - * Handler or factory callable($record, $this) - * - * @var callable|\Monolog\Handler\HandlerInterface - */ - protected $handler; - - /** - * Minimum level for logs that are passed to handler - * - * @var int[] - */ - protected $acceptedLevels; - - /** - * Whether the messages that are handled can bubble up the stack or not - * - * @var Boolean - */ - protected $bubble; - - /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $this). - * @param int|array $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided - * @param int $maxLevel Maximum level to accept, only used if $minLevelOrList is not an array - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($handler, $minLevelOrList = Logger::DEBUG, $maxLevel = Logger::EMERGENCY, $bubble = true) - { - $this->handler = $handler; - $this->bubble = $bubble; - $this->setAcceptedLevels($minLevelOrList, $maxLevel); - - if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { - throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); - } - } - - /** - * @return array - */ - public function getAcceptedLevels() - { - return array_flip($this->acceptedLevels); - } - - /** - * @param int|string|array $minLevelOrList A list of levels to accept or a minimum level or level name if maxLevel is provided - * @param int|string $maxLevel Maximum level or level name to accept, only used if $minLevelOrList is not an array - */ - public function setAcceptedLevels($minLevelOrList = Logger::DEBUG, $maxLevel = Logger::EMERGENCY) - { - if (is_array($minLevelOrList)) { - $acceptedLevels = array_map('Monolog\Logger::toMonologLevel', $minLevelOrList); - } else { - $minLevelOrList = Logger::toMonologLevel($minLevelOrList); - $maxLevel = Logger::toMonologLevel($maxLevel); - $acceptedLevels = array_values(array_filter(Logger::getLevels(), function ($level) use ($minLevelOrList, $maxLevel) { - return $level >= $minLevelOrList && $level <= $maxLevel; - })); - } - $this->acceptedLevels = array_flip($acceptedLevels); - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return isset($this->acceptedLevels[$record['level']]); - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return false; - } - - // The same logic as in FingersCrossedHandler - if (!$this->handler instanceof HandlerInterface) { - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - $this->handler->handle($record); - - return false === $this->bubble; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $filtered = array(); - foreach ($records as $record) { - if ($this->isHandling($record)) { - $filtered[] = $record; - } - } - - $this->handler->handleBatch($filtered); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php deleted file mode 100644 index c3e42efe..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\FingersCrossed; - -/** - * Interface for activation strategies for the FingersCrossedHandler. - * - * @author Johannes M. Schmitt - */ -interface ActivationStrategyInterface -{ - /** - * Returns whether the given record activates the handler. - * - * @param array $record - * @return Boolean - */ - public function isHandlerActivated(array $record); -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php deleted file mode 100644 index 2a2a64d9..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php +++ /dev/null @@ -1,59 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\FingersCrossed; - -use Monolog\Logger; - -/** - * Channel and Error level based monolog activation strategy. Allows to trigger activation - * based on level per channel. e.g. trigger activation on level 'ERROR' by default, except - * for records of the 'sql' channel; those should trigger activation on level 'WARN'. - * - * Example: - * - * - * $activationStrategy = new ChannelLevelActivationStrategy( - * Logger::CRITICAL, - * array( - * 'request' => Logger::ALERT, - * 'sensitive' => Logger::ERROR, - * ) - * ); - * $handler = new FingersCrossedHandler(new StreamHandler('php://stderr'), $activationStrategy); - * - * - * @author Mike Meessen - */ -class ChannelLevelActivationStrategy implements ActivationStrategyInterface -{ - private $defaultActionLevel; - private $channelToActionLevel; - - /** - * @param int $defaultActionLevel The default action level to be used if the record's category doesn't match any - * @param array $channelToActionLevel An array that maps channel names to action levels. - */ - public function __construct($defaultActionLevel, $channelToActionLevel = array()) - { - $this->defaultActionLevel = Logger::toMonologLevel($defaultActionLevel); - $this->channelToActionLevel = array_map('Monolog\Logger::toMonologLevel', $channelToActionLevel); - } - - public function isHandlerActivated(array $record) - { - if (isset($this->channelToActionLevel[$record['channel']])) { - return $record['level'] >= $this->channelToActionLevel[$record['channel']]; - } - - return $record['level'] >= $this->defaultActionLevel; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php deleted file mode 100644 index 6e630852..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\FingersCrossed; - -use Monolog\Logger; - -/** - * Error level based activation strategy. - * - * @author Johannes M. Schmitt - */ -class ErrorLevelActivationStrategy implements ActivationStrategyInterface -{ - private $actionLevel; - - public function __construct($actionLevel) - { - $this->actionLevel = Logger::toMonologLevel($actionLevel); - } - - public function isHandlerActivated(array $record) - { - return $record['level'] >= $this->actionLevel; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php deleted file mode 100644 index d1dcaacf..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php +++ /dev/null @@ -1,163 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; -use Monolog\Handler\FingersCrossed\ActivationStrategyInterface; -use Monolog\Logger; - -/** - * Buffers all records until a certain level is reached - * - * The advantage of this approach is that you don't get any clutter in your log files. - * Only requests which actually trigger an error (or whatever your actionLevel is) will be - * in the logs, but they will contain all records, not only those above the level threshold. - * - * You can find the various activation strategies in the - * Monolog\Handler\FingersCrossed\ namespace. - * - * @author Jordi Boggiano - */ -class FingersCrossedHandler extends AbstractHandler -{ - protected $handler; - protected $activationStrategy; - protected $buffering = true; - protected $bufferSize; - protected $buffer = array(); - protected $stopBuffering; - protected $passthruLevel; - - /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). - * @param int|ActivationStrategyInterface $activationStrategy Strategy which determines when this handler takes action - * @param int $bufferSize How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param Boolean $stopBuffering Whether the handler should stop buffering after being triggered (default true) - * @param int $passthruLevel Minimum level to always flush to handler on close, even if strategy not triggered - */ - public function __construct($handler, $activationStrategy = null, $bufferSize = 0, $bubble = true, $stopBuffering = true, $passthruLevel = null) - { - if (null === $activationStrategy) { - $activationStrategy = new ErrorLevelActivationStrategy(Logger::WARNING); - } - - // convert simple int activationStrategy to an object - if (!$activationStrategy instanceof ActivationStrategyInterface) { - $activationStrategy = new ErrorLevelActivationStrategy($activationStrategy); - } - - $this->handler = $handler; - $this->activationStrategy = $activationStrategy; - $this->bufferSize = $bufferSize; - $this->bubble = $bubble; - $this->stopBuffering = $stopBuffering; - - if ($passthruLevel !== null) { - $this->passthruLevel = Logger::toMonologLevel($passthruLevel); - } - - if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { - throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); - } - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return true; - } - - /** - * Manually activate this logger regardless of the activation strategy - */ - public function activate() - { - if ($this->stopBuffering) { - $this->buffering = false; - } - if (!$this->handler instanceof HandlerInterface) { - $record = end($this->buffer) ?: null; - - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - $this->handler->handleBatch($this->buffer); - $this->buffer = array(); - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - if ($this->buffering) { - $this->buffer[] = $record; - if ($this->bufferSize > 0 && count($this->buffer) > $this->bufferSize) { - array_shift($this->buffer); - } - if ($this->activationStrategy->isHandlerActivated($record)) { - $this->activate(); - } - } else { - $this->handler->handle($record); - } - - return false === $this->bubble; - } - - /** - * {@inheritdoc} - */ - public function close() - { - if (null !== $this->passthruLevel) { - $level = $this->passthruLevel; - $this->buffer = array_filter($this->buffer, function ($record) use ($level) { - return $record['level'] >= $level; - }); - if (count($this->buffer) > 0) { - $this->handler->handleBatch($this->buffer); - $this->buffer = array(); - } - } - } - - /** - * Resets the state of the handler. Stops forwarding records to the wrapped handler. - */ - public function reset() - { - $this->buffering = true; - } - - /** - * Clears the buffer without flushing any messages down to the wrapped handler. - * - * It also resets the handler to its initial buffering state. - */ - public function clear() - { - $this->buffer = array(); - $this->reset(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php deleted file mode 100644 index fee47950..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php +++ /dev/null @@ -1,195 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\WildfireFormatter; - -/** - * Simple FirePHP Handler (http://www.firephp.org/), which uses the Wildfire protocol. - * - * @author Eric Clemmons (@ericclemmons) - */ -class FirePHPHandler extends AbstractProcessingHandler -{ - /** - * WildFire JSON header message format - */ - const PROTOCOL_URI = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2'; - - /** - * FirePHP structure for parsing messages & their presentation - */ - const STRUCTURE_URI = 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'; - - /** - * Must reference a "known" plugin, otherwise headers won't display in FirePHP - */ - const PLUGIN_URI = 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3'; - - /** - * Header prefix for Wildfire to recognize & parse headers - */ - const HEADER_PREFIX = 'X-Wf'; - - /** - * Whether or not Wildfire vendor-specific headers have been generated & sent yet - */ - protected static $initialized = false; - - /** - * Shared static message index between potentially multiple handlers - * @var int - */ - protected static $messageIndex = 1; - - protected static $sendHeaders = true; - - /** - * Base header creation function used by init headers & record headers - * - * @param array $meta Wildfire Plugin, Protocol & Structure Indexes - * @param string $message Log message - * @return array Complete header string ready for the client as key and message as value - */ - protected function createHeader(array $meta, $message) - { - $header = sprintf('%s-%s', self::HEADER_PREFIX, join('-', $meta)); - - return array($header => $message); - } - - /** - * Creates message header from record - * - * @see createHeader() - * @param array $record - * @return string - */ - protected function createRecordHeader(array $record) - { - // Wildfire is extensible to support multiple protocols & plugins in a single request, - // but we're not taking advantage of that (yet), so we're using "1" for simplicity's sake. - return $this->createHeader( - array(1, 1, 1, self::$messageIndex++), - $record['formatted'] - ); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new WildfireFormatter(); - } - - /** - * Wildfire initialization headers to enable message parsing - * - * @see createHeader() - * @see sendHeader() - * @return array - */ - protected function getInitHeaders() - { - // Initial payload consists of required headers for Wildfire - return array_merge( - $this->createHeader(array('Protocol', 1), self::PROTOCOL_URI), - $this->createHeader(array(1, 'Structure', 1), self::STRUCTURE_URI), - $this->createHeader(array(1, 'Plugin', 1), self::PLUGIN_URI) - ); - } - - /** - * Send header string to the client - * - * @param string $header - * @param string $content - */ - protected function sendHeader($header, $content) - { - if (!headers_sent() && self::$sendHeaders) { - header(sprintf('%s: %s', $header, $content)); - } - } - - /** - * Creates & sends header for a record, ensuring init headers have been sent prior - * - * @see sendHeader() - * @see sendInitHeaders() - * @param array $record - */ - protected function write(array $record) - { - if (!self::$sendHeaders) { - return; - } - - // WildFire-specific headers must be sent prior to any messages - if (!self::$initialized) { - self::$initialized = true; - - self::$sendHeaders = $this->headersAccepted(); - if (!self::$sendHeaders) { - return; - } - - foreach ($this->getInitHeaders() as $header => $content) { - $this->sendHeader($header, $content); - } - } - - $header = $this->createRecordHeader($record); - if (trim(current($header)) !== '') { - $this->sendHeader(key($header), current($header)); - } - } - - /** - * Verifies if the headers are accepted by the current user agent - * - * @return Boolean - */ - protected function headersAccepted() - { - if (!empty($_SERVER['HTTP_USER_AGENT']) && preg_match('{\bFirePHP/\d+\.\d+\b}', $_SERVER['HTTP_USER_AGENT'])) { - return true; - } - - return isset($_SERVER['HTTP_X_FIREPHP_VERSION']); - } - - /** - * BC getter for the sendHeaders property that has been made static - */ - public function __get($property) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property '.$property); - } - - return static::$sendHeaders; - } - - /** - * BC setter for the sendHeaders property that has been made static - */ - public function __set($property, $value) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property '.$property); - } - - static::$sendHeaders = $value; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php deleted file mode 100644 index c43c0134..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php +++ /dev/null @@ -1,126 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Logger; - -/** - * Sends logs to Fleep.io using Webhook integrations - * - * You'll need a Fleep.io account to use this handler. - * - * @see https://fleep.io/integrations/webhooks/ Fleep Webhooks Documentation - * @author Ando Roots - */ -class FleepHookHandler extends SocketHandler -{ - const FLEEP_HOST = 'fleep.io'; - - const FLEEP_HOOK_URI = '/hook/'; - - /** - * @var string Webhook token (specifies the conversation where logs are sent) - */ - protected $token; - - /** - * Construct a new Fleep.io Handler. - * - * For instructions on how to create a new web hook in your conversations - * see https://fleep.io/integrations/webhooks/ - * - * @param string $token Webhook token - * @param bool|int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @throws MissingExtensionException - */ - public function __construct($token, $level = Logger::DEBUG, $bubble = true) - { - if (!extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FleepHookHandler'); - } - - $this->token = $token; - - $connectionString = 'ssl://' . self::FLEEP_HOST . ':443'; - parent::__construct($connectionString, $level, $bubble); - } - - /** - * Returns the default formatter to use with this handler - * - * Overloaded to remove empty context and extra arrays from the end of the log message. - * - * @return LineFormatter - */ - protected function getDefaultFormatter() - { - return new LineFormatter(null, null, true, true); - } - - /** - * Handles a log record - * - * @param array $record - */ - public function write(array $record) - { - parent::write($record); - $this->closeSocket(); - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST " . self::FLEEP_HOOK_URI . $this->token . " HTTP/1.1\r\n"; - $header .= "Host: " . self::FLEEP_HOST . "\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = array( - 'message' => $record['formatted'], - ); - - return http_build_query($dataArray); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php deleted file mode 100644 index dd9a361c..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php +++ /dev/null @@ -1,127 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\FlowdockFormatter; -use Monolog\Formatter\FormatterInterface; - -/** - * Sends notifications through the Flowdock push API - * - * This must be configured with a FlowdockFormatter instance via setFormatter() - * - * Notes: - * API token - Flowdock API token - * - * @author Dominik Liebler - * @see https://www.flowdock.com/api/push - */ -class FlowdockHandler extends SocketHandler -{ - /** - * @var string - */ - protected $apiToken; - - /** - * @param string $apiToken - * @param bool|int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * - * @throws MissingExtensionException if OpenSSL is missing - */ - public function __construct($apiToken, $level = Logger::DEBUG, $bubble = true) - { - if (!extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FlowdockHandler'); - } - - parent::__construct('ssl://api.flowdock.com:443', $level, $bubble); - $this->apiToken = $apiToken; - } - - /** - * {@inheritdoc} - */ - public function setFormatter(FormatterInterface $formatter) - { - if (!$formatter instanceof FlowdockFormatter) { - throw new \InvalidArgumentException('The FlowdockHandler requires an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); - } - - return parent::setFormatter($formatter); - } - - /** - * Gets the default formatter. - * - * @return FormatterInterface - */ - protected function getDefaultFormatter() - { - throw new \InvalidArgumentException('The FlowdockHandler must be configured (via setFormatter) with an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); - } - - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - - $this->closeSocket(); - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - return json_encode($record['formatted']['flowdock']); - } - - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST /v1/messages/team_inbox/" . $this->apiToken . " HTTP/1.1\r\n"; - $header .= "Host: api.flowdock.com\r\n"; - $header .= "Content-Type: application/json\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php deleted file mode 100644 index d3847d82..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Gelf\IMessagePublisher; -use Gelf\PublisherInterface; -use Gelf\Publisher; -use InvalidArgumentException; -use Monolog\Logger; -use Monolog\Formatter\GelfMessageFormatter; - -/** - * Handler to send messages to a Graylog2 (http://www.graylog2.org) server - * - * @author Matt Lehner - * @author Benjamin Zikarsky - */ -class GelfHandler extends AbstractProcessingHandler -{ - /** - * @var Publisher the publisher object that sends the message to the server - */ - protected $publisher; - - /** - * @param PublisherInterface|IMessagePublisher|Publisher $publisher a publisher object - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($publisher, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - - if (!$publisher instanceof Publisher && !$publisher instanceof IMessagePublisher && !$publisher instanceof PublisherInterface) { - throw new InvalidArgumentException('Invalid publisher, expected a Gelf\Publisher, Gelf\IMessagePublisher or Gelf\PublisherInterface instance'); - } - - $this->publisher = $publisher; - } - - /** - * {@inheritdoc} - */ - public function close() - { - $this->publisher = null; - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->publisher->publish($record['formatted']); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new GelfMessageFormatter(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php deleted file mode 100644 index 663f5a92..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; - -/** - * Forwards records to multiple handlers - * - * @author Lenar Lõhmus - */ -class GroupHandler extends AbstractHandler -{ - protected $handlers; - - /** - * @param array $handlers Array of Handlers. - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(array $handlers, $bubble = true) - { - foreach ($handlers as $handler) { - if (!$handler instanceof HandlerInterface) { - throw new \InvalidArgumentException('The first argument of the GroupHandler must be an array of HandlerInterface instances.'); - } - } - - $this->handlers = $handlers; - $this->bubble = $bubble; - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - foreach ($this->handlers as $handler) { - if ($handler->isHandling($record)) { - return true; - } - } - - return false; - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - foreach ($this->handlers as $handler) { - $handler->handle($record); - } - - return false === $this->bubble; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - if ($this->processors) { - $processed = array(); - foreach ($records as $record) { - foreach ($this->processors as $processor) { - $processed[] = call_user_func($processor, $record); - } - } - $records = $processed; - } - - foreach ($this->handlers as $handler) { - $handler->handleBatch($records); - } - } - - /** - * {@inheritdoc} - */ - public function setFormatter(FormatterInterface $formatter) - { - foreach ($this->handlers as $handler) { - $handler->setFormatter($formatter); - } - - return $this; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php b/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php deleted file mode 100644 index d920c4ba..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; - -/** - * Interface that all Monolog Handlers must implement - * - * @author Jordi Boggiano - */ -interface HandlerInterface -{ - /** - * Checks whether the given record will be handled by this handler. - * - * This is mostly done for performance reasons, to avoid calling processors for nothing. - * - * Handlers should still check the record levels within handle(), returning false in isHandling() - * is no guarantee that handle() will not be called, and isHandling() might not be called - * for a given record. - * - * @param array $record Partial log record containing only a level key - * - * @return Boolean - */ - public function isHandling(array $record); - - /** - * Handles a record. - * - * All records may be passed to this method, and the handler should discard - * those that it does not want to handle. - * - * The return value of this function controls the bubbling process of the handler stack. - * Unless the bubbling is interrupted (by returning true), the Logger class will keep on - * calling further handlers in the stack with a given log record. - * - * @param array $record The record to handle - * @return Boolean true means that this handler handled the record, and that bubbling is not permitted. - * false means the record was either not processed or that this handler allows bubbling. - */ - public function handle(array $record); - - /** - * Handles a set of records at once. - * - * @param array $records The records to handle (an array of record arrays) - */ - public function handleBatch(array $records); - - /** - * Adds a processor in the stack. - * - * @param callable $callback - * @return self - */ - public function pushProcessor($callback); - - /** - * Removes the processor on top of the stack and returns it. - * - * @return callable - */ - public function popProcessor(); - - /** - * Sets the formatter. - * - * @param FormatterInterface $formatter - * @return self - */ - public function setFormatter(FormatterInterface $formatter); - - /** - * Gets the formatter. - * - * @return FormatterInterface - */ - public function getFormatter(); -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php b/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php deleted file mode 100644 index e540d80f..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php +++ /dev/null @@ -1,108 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; - -/** - * This simple wrapper class can be used to extend handlers functionality. - * - * Example: A custom filtering that can be applied to any handler. - * - * Inherit from this class and override handle() like this: - * - * public function handle(array $record) - * { - * if ($record meets certain conditions) { - * return false; - * } - * return $this->handler->handle($record); - * } - * - * @author Alexey Karapetov - */ -class HandlerWrapper implements HandlerInterface -{ - /** - * @var HandlerInterface - */ - protected $handler; - - /** - * HandlerWrapper constructor. - * @param HandlerInterface $handler - */ - public function __construct(HandlerInterface $handler) - { - $this->handler = $handler; - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return $this->handler->isHandling($record); - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - return $this->handler->handle($record); - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - return $this->handler->handleBatch($records); - } - - /** - * {@inheritdoc} - */ - public function pushProcessor($callback) - { - $this->handler->pushProcessor($callback); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function popProcessor() - { - return $this->handler->popProcessor(); - } - - /** - * {@inheritdoc} - */ - public function setFormatter(FormatterInterface $formatter) - { - $this->handler->setFormatter($formatter); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function getFormatter() - { - return $this->handler->getFormatter(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php deleted file mode 100644 index 73049f36..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php +++ /dev/null @@ -1,350 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Sends notifications through the hipchat api to a hipchat room - * - * Notes: - * API token - HipChat API token - * Room - HipChat Room Id or name, where messages are sent - * Name - Name used to send the message (from) - * notify - Should the message trigger a notification in the clients - * version - The API version to use (HipChatHandler::API_V1 | HipChatHandler::API_V2) - * - * @author Rafael Dohms - * @see https://www.hipchat.com/docs/api - */ -class HipChatHandler extends SocketHandler -{ - /** - * Use API version 1 - */ - const API_V1 = 'v1'; - - /** - * Use API version v2 - */ - const API_V2 = 'v2'; - - /** - * The maximum allowed length for the name used in the "from" field. - */ - const MAXIMUM_NAME_LENGTH = 15; - - /** - * The maximum allowed length for the message. - */ - const MAXIMUM_MESSAGE_LENGTH = 9500; - - /** - * @var string - */ - private $token; - - /** - * @var string - */ - private $room; - - /** - * @var string - */ - private $name; - - /** - * @var bool - */ - private $notify; - - /** - * @var string - */ - private $format; - - /** - * @var string - */ - private $host; - - /** - * @var string - */ - private $version; - - /** - * @param string $token HipChat API Token - * @param string $room The room that should be alerted of the message (Id or Name) - * @param string $name Name used in the "from" field. - * @param bool $notify Trigger a notification in clients or not - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param bool $useSSL Whether to connect via SSL. - * @param string $format The format of the messages (default to text, can be set to html if you have html in the messages) - * @param string $host The HipChat server hostname. - * @param string $version The HipChat API version (default HipChatHandler::API_V1) - */ - public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1) - { - if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) { - throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.'); - } - - $connectionString = $useSSL ? 'ssl://'.$host.':443' : $host.':80'; - parent::__construct($connectionString, $level, $bubble); - - $this->token = $token; - $this->name = $name; - $this->notify = $notify; - $this->room = $room; - $this->format = $format; - $this->host = $host; - $this->version = $version; - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = array( - 'notify' => $this->version == self::API_V1 ? - ($this->notify ? 1 : 0) : - ($this->notify ? 'true' : 'false'), - 'message' => $record['formatted'], - 'message_format' => $this->format, - 'color' => $this->getAlertColor($record['level']), - ); - - if (!$this->validateStringLength($dataArray['message'], static::MAXIMUM_MESSAGE_LENGTH)) { - if (function_exists('mb_substr')) { - $dataArray['message'] = mb_substr($dataArray['message'], 0, static::MAXIMUM_MESSAGE_LENGTH).' [truncated]'; - } else { - $dataArray['message'] = substr($dataArray['message'], 0, static::MAXIMUM_MESSAGE_LENGTH).' [truncated]'; - } - } - - // if we are using the legacy API then we need to send some additional information - if ($this->version == self::API_V1) { - $dataArray['room_id'] = $this->room; - } - - // append the sender name if it is set - // always append it if we use the v1 api (it is required in v1) - if ($this->version == self::API_V1 || $this->name !== null) { - $dataArray['from'] = (string) $this->name; - } - - return http_build_query($dataArray); - } - - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - if ($this->version == self::API_V1) { - $header = "POST /v1/rooms/message?format=json&auth_token={$this->token} HTTP/1.1\r\n"; - } else { - // needed for rooms with special (spaces, etc) characters in the name - $room = rawurlencode($this->room); - $header = "POST /v2/room/{$room}/notification?auth_token={$this->token} HTTP/1.1\r\n"; - } - - $header .= "Host: {$this->host}\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - /** - * Assigns a color to each level of log records. - * - * @param int $level - * @return string - */ - protected function getAlertColor($level) - { - switch (true) { - case $level >= Logger::ERROR: - return 'red'; - case $level >= Logger::WARNING: - return 'yellow'; - case $level >= Logger::INFO: - return 'green'; - case $level == Logger::DEBUG: - return 'gray'; - default: - return 'yellow'; - } - } - - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - $this->closeSocket(); - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - if (count($records) == 0) { - return true; - } - - $batchRecords = $this->combineRecords($records); - - $handled = false; - foreach ($batchRecords as $batchRecord) { - if ($this->isHandling($batchRecord)) { - $this->write($batchRecord); - $handled = true; - } - } - - if (!$handled) { - return false; - } - - return false === $this->bubble; - } - - /** - * Combines multiple records into one. Error level of the combined record - * will be the highest level from the given records. Datetime will be taken - * from the first record. - * - * @param $records - * @return array - */ - private function combineRecords($records) - { - $batchRecord = null; - $batchRecords = array(); - $messages = array(); - $formattedMessages = array(); - $level = 0; - $levelName = null; - $datetime = null; - - foreach ($records as $record) { - $record = $this->processRecord($record); - - if ($record['level'] > $level) { - $level = $record['level']; - $levelName = $record['level_name']; - } - - if (null === $datetime) { - $datetime = $record['datetime']; - } - - $messages[] = $record['message']; - $messageStr = implode(PHP_EOL, $messages); - $formattedMessages[] = $this->getFormatter()->format($record); - $formattedMessageStr = implode('', $formattedMessages); - - $batchRecord = array( - 'message' => $messageStr, - 'formatted' => $formattedMessageStr, - 'context' => array(), - 'extra' => array(), - ); - - if (!$this->validateStringLength($batchRecord['formatted'], static::MAXIMUM_MESSAGE_LENGTH)) { - // Pop the last message and implode the remaining messages - $lastMessage = array_pop($messages); - $lastFormattedMessage = array_pop($formattedMessages); - $batchRecord['message'] = implode(PHP_EOL, $messages); - $batchRecord['formatted'] = implode('', $formattedMessages); - - $batchRecords[] = $batchRecord; - $messages = array($lastMessage); - $formattedMessages = array($lastFormattedMessage); - - $batchRecord = null; - } - } - - if (null !== $batchRecord) { - $batchRecords[] = $batchRecord; - } - - // Set the max level and datetime for all records - foreach ($batchRecords as &$batchRecord) { - $batchRecord = array_merge( - $batchRecord, - array( - 'level' => $level, - 'level_name' => $levelName, - 'datetime' => $datetime, - ) - ); - } - - return $batchRecords; - } - - /** - * Validates the length of a string. - * - * If the `mb_strlen()` function is available, it will use that, as HipChat - * allows UTF-8 characters. Otherwise, it will fall back to `strlen()`. - * - * Note that this might cause false failures in the specific case of using - * a valid name with less than 16 characters, but 16 or more bytes, on a - * system where `mb_strlen()` is unavailable. - * - * @param string $str - * @param int $length - * - * @return bool - */ - private function validateStringLength($str, $length) - { - if (function_exists('mb_strlen')) { - return (mb_strlen($str) <= $length); - } - - return (strlen($str) <= $length); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php deleted file mode 100644 index d60a3c82..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * IFTTTHandler uses cURL to trigger IFTTT Maker actions - * - * Register a secret key and trigger/event name at https://ifttt.com/maker - * - * value1 will be the channel from monolog's Logger constructor, - * value2 will be the level name (ERROR, WARNING, ..) - * value3 will be the log record's message - * - * @author Nehal Patel - */ -class IFTTTHandler extends AbstractProcessingHandler -{ - private $eventName; - private $secretKey; - - /** - * @param string $eventName The name of the IFTTT Maker event that should be triggered - * @param string $secretKey A valid IFTTT secret key - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($eventName, $secretKey, $level = Logger::ERROR, $bubble = true) - { - $this->eventName = $eventName; - $this->secretKey = $secretKey; - - parent::__construct($level, $bubble); - } - - /** - * {@inheritdoc} - */ - public function write(array $record) - { - $postData = array( - "value1" => $record["channel"], - "value2" => $record["level_name"], - "value3" => $record["message"], - ); - $postString = json_encode($postData); - - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, "https://maker.ifttt.com/trigger/" . $this->eventName . "/with/key/" . $this->secretKey); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); - curl_setopt($ch, CURLOPT_HTTPHEADER, array( - "Content-Type: application/json", - )); - - Curl\Util::execute($ch); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php deleted file mode 100644 index 494c605b..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * @author Robert Kaufmann III - */ -class LogEntriesHandler extends SocketHandler -{ - /** - * @var string - */ - protected $logToken; - - /** - * @param string $token Log token supplied by LogEntries - * @param bool $useSSL Whether or not SSL encryption should be used. - * @param int $level The minimum logging level to trigger this handler - * @param bool $bubble Whether or not messages that are handled should bubble up the stack. - * - * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing - */ - public function __construct($token, $useSSL = true, $level = Logger::DEBUG, $bubble = true) - { - if ($useSSL && !extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler'); - } - - $endpoint = $useSSL ? 'ssl://data.logentries.com:443' : 'data.logentries.com:80'; - parent::__construct($endpoint, $level, $bubble); - $this->logToken = $token; - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - return $this->logToken . ' ' . $record['formatted']; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php deleted file mode 100644 index bcd62e1c..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\LogglyFormatter; - -/** - * Sends errors to Loggly. - * - * @author Przemek Sobstel - * @author Adam Pancutt - * @author Gregory Barchard - */ -class LogglyHandler extends AbstractProcessingHandler -{ - const HOST = 'logs-01.loggly.com'; - const ENDPOINT_SINGLE = 'inputs'; - const ENDPOINT_BATCH = 'bulk'; - - protected $token; - - protected $tag = array(); - - public function __construct($token, $level = Logger::DEBUG, $bubble = true) - { - if (!extension_loaded('curl')) { - throw new \LogicException('The curl extension is needed to use the LogglyHandler'); - } - - $this->token = $token; - - parent::__construct($level, $bubble); - } - - public function setTag($tag) - { - $tag = !empty($tag) ? $tag : array(); - $this->tag = is_array($tag) ? $tag : array($tag); - } - - public function addTag($tag) - { - if (!empty($tag)) { - $tag = is_array($tag) ? $tag : array($tag); - $this->tag = array_unique(array_merge($this->tag, $tag)); - } - } - - protected function write(array $record) - { - $this->send($record["formatted"], self::ENDPOINT_SINGLE); - } - - public function handleBatch(array $records) - { - $level = $this->level; - - $records = array_filter($records, function ($record) use ($level) { - return ($record['level'] >= $level); - }); - - if ($records) { - $this->send($this->getFormatter()->formatBatch($records), self::ENDPOINT_BATCH); - } - } - - protected function send($data, $endpoint) - { - $url = sprintf("https://%s/%s/%s/", self::HOST, $endpoint, $this->token); - - $headers = array('Content-Type: application/json'); - - if (!empty($this->tag)) { - $headers[] = 'X-LOGGLY-TAG: '.implode(',', $this->tag); - } - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, $data); - curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - - Curl\Util::execute($ch); - } - - protected function getDefaultFormatter() - { - return new LogglyFormatter(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php deleted file mode 100644 index 9e232838..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Base class for all mail handlers - * - * @author Gyula Sallai - */ -abstract class MailHandler extends AbstractProcessingHandler -{ - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $messages = array(); - - foreach ($records as $record) { - if ($record['level'] < $this->level) { - continue; - } - $messages[] = $this->processRecord($record); - } - - if (!empty($messages)) { - $this->send((string) $this->getFormatter()->formatBatch($messages), $messages); - } - } - - /** - * Send a mail with the given content - * - * @param string $content formatted email body to be sent - * @param array $records the array of log records that formed this content - */ - abstract protected function send($content, array $records); - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->send((string) $record['formatted'], array($record)); - } - - protected function getHighestRecord(array $records) - { - $highestRecord = null; - foreach ($records as $record) { - if ($highestRecord === null || $highestRecord['level'] < $record['level']) { - $highestRecord = $record; - } - } - - return $highestRecord; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php deleted file mode 100644 index ab95924f..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * MandrillHandler uses cURL to send the emails to the Mandrill API - * - * @author Adam Nicholson - */ -class MandrillHandler extends MailHandler -{ - protected $message; - protected $apiKey; - - /** - * @param string $apiKey A valid Mandrill API key - * @param callable|\Swift_Message $message An example message for real messages, only the body will be replaced - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($apiKey, $message, $level = Logger::ERROR, $bubble = true) - { - parent::__construct($level, $bubble); - - if (!$message instanceof \Swift_Message && is_callable($message)) { - $message = call_user_func($message); - } - if (!$message instanceof \Swift_Message) { - throw new \InvalidArgumentException('You must provide either a Swift_Message instance or a callable returning it'); - } - $this->message = $message; - $this->apiKey = $apiKey; - } - - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $message = clone $this->message; - $message->setBody($content); - $message->setDate(time()); - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_URL, 'https://mandrillapp.com/api/1.0/messages/send-raw.json'); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array( - 'key' => $this->apiKey, - 'raw_message' => (string) $message, - 'async' => false, - ))); - - Curl\Util::execute($ch); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php b/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php deleted file mode 100644 index 4724a7e2..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Exception can be thrown if an extension for an handler is missing - * - * @author Christian Bergau - */ -class MissingExtensionException extends \Exception -{ -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php deleted file mode 100644 index 56fe755b..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php +++ /dev/null @@ -1,59 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\NormalizerFormatter; - -/** - * Logs to a MongoDB database. - * - * usage example: - * - * $log = new Logger('application'); - * $mongodb = new MongoDBHandler(new \Mongo("mongodb://localhost:27017"), "logs", "prod"); - * $log->pushHandler($mongodb); - * - * @author Thomas Tourlourat - */ -class MongoDBHandler extends AbstractProcessingHandler -{ - protected $mongoCollection; - - public function __construct($mongo, $database, $collection, $level = Logger::DEBUG, $bubble = true) - { - if (!($mongo instanceof \MongoClient || $mongo instanceof \Mongo || $mongo instanceof \MongoDB\Client)) { - throw new \InvalidArgumentException('MongoClient, Mongo or MongoDB\Client instance required'); - } - - $this->mongoCollection = $mongo->selectCollection($database, $collection); - - parent::__construct($level, $bubble); - } - - protected function write(array $record) - { - if ($this->mongoCollection instanceof \MongoDB\Collection) { - $this->mongoCollection->insertOne($record["formatted"]); - } else { - $this->mongoCollection->save($record["formatted"]); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new NormalizerFormatter(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php deleted file mode 100644 index d7807fd1..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php +++ /dev/null @@ -1,185 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; - -/** - * NativeMailerHandler uses the mail() function to send the emails - * - * @author Christophe Coevoet - * @author Mark Garrett - */ -class NativeMailerHandler extends MailHandler -{ - /** - * The email addresses to which the message will be sent - * @var array - */ - protected $to; - - /** - * The subject of the email - * @var string - */ - protected $subject; - - /** - * Optional headers for the message - * @var array - */ - protected $headers = array(); - - /** - * Optional parameters for the message - * @var array - */ - protected $parameters = array(); - - /** - * The wordwrap length for the message - * @var int - */ - protected $maxColumnWidth; - - /** - * The Content-type for the message - * @var string - */ - protected $contentType = 'text/plain'; - - /** - * The encoding for the message - * @var string - */ - protected $encoding = 'utf-8'; - - /** - * @param string|array $to The receiver of the mail - * @param string $subject The subject of the mail - * @param string $from The sender of the mail - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param int $maxColumnWidth The maximum column width that the message lines will have - */ - public function __construct($to, $subject, $from, $level = Logger::ERROR, $bubble = true, $maxColumnWidth = 70) - { - parent::__construct($level, $bubble); - $this->to = is_array($to) ? $to : array($to); - $this->subject = $subject; - $this->addHeader(sprintf('From: %s', $from)); - $this->maxColumnWidth = $maxColumnWidth; - } - - /** - * Add headers to the message - * - * @param string|array $headers Custom added headers - * @return self - */ - public function addHeader($headers) - { - foreach ((array) $headers as $header) { - if (strpos($header, "\n") !== false || strpos($header, "\r") !== false) { - throw new \InvalidArgumentException('Headers can not contain newline characters for security reasons'); - } - $this->headers[] = $header; - } - - return $this; - } - - /** - * Add parameters to the message - * - * @param string|array $parameters Custom added parameters - * @return self - */ - public function addParameter($parameters) - { - $this->parameters = array_merge($this->parameters, (array) $parameters); - - return $this; - } - - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $content = wordwrap($content, $this->maxColumnWidth); - $headers = ltrim(implode("\r\n", $this->headers) . "\r\n", "\r\n"); - $headers .= 'Content-type: ' . $this->getContentType() . '; charset=' . $this->getEncoding() . "\r\n"; - if ($this->getContentType() == 'text/html' && false === strpos($headers, 'MIME-Version:')) { - $headers .= 'MIME-Version: 1.0' . "\r\n"; - } - - $subject = $this->subject; - if ($records) { - $subjectFormatter = new LineFormatter($this->subject); - $subject = $subjectFormatter->format($this->getHighestRecord($records)); - } - - $parameters = implode(' ', $this->parameters); - foreach ($this->to as $to) { - mail($to, $subject, $content, $headers, $parameters); - } - } - - /** - * @return string $contentType - */ - public function getContentType() - { - return $this->contentType; - } - - /** - * @return string $encoding - */ - public function getEncoding() - { - return $this->encoding; - } - - /** - * @param string $contentType The content type of the email - Defaults to text/plain. Use text/html for HTML - * messages. - * @return self - */ - public function setContentType($contentType) - { - if (strpos($contentType, "\n") !== false || strpos($contentType, "\r") !== false) { - throw new \InvalidArgumentException('The content type can not contain newline characters to prevent email header injection'); - } - - $this->contentType = $contentType; - - return $this; - } - - /** - * @param string $encoding - * @return self - */ - public function setEncoding($encoding) - { - if (strpos($encoding, "\n") !== false || strpos($encoding, "\r") !== false) { - throw new \InvalidArgumentException('The encoding can not contain newline characters to prevent email header injection'); - } - - $this->encoding = $encoding; - - return $this; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php deleted file mode 100644 index 6718e9e0..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php +++ /dev/null @@ -1,202 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\NormalizerFormatter; - -/** - * Class to record a log on a NewRelic application. - * Enabling New Relic High Security mode may prevent capture of useful information. - * - * @see https://docs.newrelic.com/docs/agents/php-agent - * @see https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/high-security - */ -class NewRelicHandler extends AbstractProcessingHandler -{ - /** - * Name of the New Relic application that will receive logs from this handler. - * - * @var string - */ - protected $appName; - - /** - * Name of the current transaction - * - * @var string - */ - protected $transactionName; - - /** - * Some context and extra data is passed into the handler as arrays of values. Do we send them as is - * (useful if we are using the API), or explode them for display on the NewRelic RPM website? - * - * @var bool - */ - protected $explodeArrays; - - /** - * {@inheritDoc} - * - * @param string $appName - * @param bool $explodeArrays - * @param string $transactionName - */ - public function __construct( - $level = Logger::ERROR, - $bubble = true, - $appName = null, - $explodeArrays = false, - $transactionName = null - ) { - parent::__construct($level, $bubble); - - $this->appName = $appName; - $this->explodeArrays = $explodeArrays; - $this->transactionName = $transactionName; - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - if (!$this->isNewRelicEnabled()) { - throw new MissingExtensionException('The newrelic PHP extension is required to use the NewRelicHandler'); - } - - if ($appName = $this->getAppName($record['context'])) { - $this->setNewRelicAppName($appName); - } - - if ($transactionName = $this->getTransactionName($record['context'])) { - $this->setNewRelicTransactionName($transactionName); - unset($record['formatted']['context']['transaction_name']); - } - - if (isset($record['context']['exception']) && $record['context']['exception'] instanceof \Exception) { - newrelic_notice_error($record['message'], $record['context']['exception']); - unset($record['formatted']['context']['exception']); - } else { - newrelic_notice_error($record['message']); - } - - if (isset($record['formatted']['context']) && is_array($record['formatted']['context'])) { - foreach ($record['formatted']['context'] as $key => $parameter) { - if (is_array($parameter) && $this->explodeArrays) { - foreach ($parameter as $paramKey => $paramValue) { - $this->setNewRelicParameter('context_' . $key . '_' . $paramKey, $paramValue); - } - } else { - $this->setNewRelicParameter('context_' . $key, $parameter); - } - } - } - - if (isset($record['formatted']['extra']) && is_array($record['formatted']['extra'])) { - foreach ($record['formatted']['extra'] as $key => $parameter) { - if (is_array($parameter) && $this->explodeArrays) { - foreach ($parameter as $paramKey => $paramValue) { - $this->setNewRelicParameter('extra_' . $key . '_' . $paramKey, $paramValue); - } - } else { - $this->setNewRelicParameter('extra_' . $key, $parameter); - } - } - } - } - - /** - * Checks whether the NewRelic extension is enabled in the system. - * - * @return bool - */ - protected function isNewRelicEnabled() - { - return extension_loaded('newrelic'); - } - - /** - * Returns the appname where this log should be sent. Each log can override the default appname, set in this - * handler's constructor, by providing the appname in it's context. - * - * @param array $context - * @return null|string - */ - protected function getAppName(array $context) - { - if (isset($context['appname'])) { - return $context['appname']; - } - - return $this->appName; - } - - /** - * Returns the name of the current transaction. Each log can override the default transaction name, set in this - * handler's constructor, by providing the transaction_name in it's context - * - * @param array $context - * - * @return null|string - */ - protected function getTransactionName(array $context) - { - if (isset($context['transaction_name'])) { - return $context['transaction_name']; - } - - return $this->transactionName; - } - - /** - * Sets the NewRelic application that should receive this log. - * - * @param string $appName - */ - protected function setNewRelicAppName($appName) - { - newrelic_set_appname($appName); - } - - /** - * Overwrites the name of the current transaction - * - * @param string $transactionName - */ - protected function setNewRelicTransactionName($transactionName) - { - newrelic_name_transaction($transactionName); - } - - /** - * @param string $key - * @param mixed $value - */ - protected function setNewRelicParameter($key, $value) - { - if (null === $value || is_scalar($value)) { - newrelic_add_custom_parameter($key, $value); - } else { - newrelic_add_custom_parameter($key, @json_encode($value)); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new NormalizerFormatter(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php deleted file mode 100644 index 4b845883..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Blackhole - * - * Any record it can handle will be thrown away. This can be used - * to put on top of an existing stack to override it temporarily. - * - * @author Jordi Boggiano - */ -class NullHandler extends AbstractHandler -{ - /** - * @param int $level The minimum logging level at which this handler will be triggered - */ - public function __construct($level = Logger::DEBUG) - { - parent::__construct($level, false); - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($record['level'] < $this->level) { - return false; - } - - return true; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php deleted file mode 100644 index 1f2076a4..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php +++ /dev/null @@ -1,242 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Exception; -use Monolog\Formatter\LineFormatter; -use Monolog\Logger; -use PhpConsole\Connector; -use PhpConsole\Handler; -use PhpConsole\Helper; - -/** - * Monolog handler for Google Chrome extension "PHP Console" - * - * Display PHP error/debug log messages in Google Chrome console and notification popups, executes PHP code remotely - * - * Usage: - * 1. Install Google Chrome extension https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef - * 2. See overview https://github.com/barbushin/php-console#overview - * 3. Install PHP Console library https://github.com/barbushin/php-console#installation - * 4. Example (result will looks like http://i.hizliresim.com/vg3Pz4.png) - * - * $logger = new \Monolog\Logger('all', array(new \Monolog\Handler\PHPConsoleHandler())); - * \Monolog\ErrorHandler::register($logger); - * echo $undefinedVar; - * $logger->addDebug('SELECT * FROM users', array('db', 'time' => 0.012)); - * PC::debug($_SERVER); // PHP Console debugger for any type of vars - * - * @author Sergey Barbushin https://www.linkedin.com/in/barbushin - */ -class PHPConsoleHandler extends AbstractProcessingHandler -{ - private $options = array( - 'enabled' => true, // bool Is PHP Console server enabled - 'classesPartialsTraceIgnore' => array('Monolog\\'), // array Hide calls of classes started with... - 'debugTagsKeysInContext' => array(0, 'tag'), // bool Is PHP Console server enabled - 'useOwnErrorsHandler' => false, // bool Enable errors handling - 'useOwnExceptionsHandler' => false, // bool Enable exceptions handling - 'sourcesBasePath' => null, // string Base path of all project sources to strip in errors source paths - 'registerHelper' => true, // bool Register PhpConsole\Helper that allows short debug calls like PC::debug($var, 'ta.g.s') - 'serverEncoding' => null, // string|null Server internal encoding - 'headersLimit' => null, // int|null Set headers size limit for your web-server - 'password' => null, // string|null Protect PHP Console connection by password - 'enableSslOnlyMode' => false, // bool Force connection by SSL for clients with PHP Console installed - 'ipMasks' => array(), // array Set IP masks of clients that will be allowed to connect to PHP Console: array('192.168.*.*', '127.0.0.1') - 'enableEvalListener' => false, // bool Enable eval request to be handled by eval dispatcher(if enabled, 'password' option is also required) - 'dumperDetectCallbacks' => false, // bool Convert callback items in dumper vars to (callback SomeClass::someMethod) strings - 'dumperLevelLimit' => 5, // int Maximum dumped vars array or object nested dump level - 'dumperItemsCountLimit' => 100, // int Maximum dumped var same level array items or object properties number - 'dumperItemSizeLimit' => 5000, // int Maximum length of any string or dumped array item - 'dumperDumpSizeLimit' => 500000, // int Maximum approximate size of dumped vars result formatted in JSON - 'detectDumpTraceAndSource' => false, // bool Autodetect and append trace data to debug - 'dataStorage' => null, // PhpConsole\Storage|null Fixes problem with custom $_SESSION handler(see http://goo.gl/Ne8juJ) - ); - - /** @var Connector */ - private $connector; - - /** - * @param array $options See \Monolog\Handler\PHPConsoleHandler::$options for more details - * @param Connector|null $connector Instance of \PhpConsole\Connector class (optional) - * @param int $level - * @param bool $bubble - * @throws Exception - */ - public function __construct(array $options = array(), Connector $connector = null, $level = Logger::DEBUG, $bubble = true) - { - if (!class_exists('PhpConsole\Connector')) { - throw new Exception('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); - } - parent::__construct($level, $bubble); - $this->options = $this->initOptions($options); - $this->connector = $this->initConnector($connector); - } - - private function initOptions(array $options) - { - $wrongOptions = array_diff(array_keys($options), array_keys($this->options)); - if ($wrongOptions) { - throw new Exception('Unknown options: ' . implode(', ', $wrongOptions)); - } - - return array_replace($this->options, $options); - } - - private function initConnector(Connector $connector = null) - { - if (!$connector) { - if ($this->options['dataStorage']) { - Connector::setPostponeStorage($this->options['dataStorage']); - } - $connector = Connector::getInstance(); - } - - if ($this->options['registerHelper'] && !Helper::isRegistered()) { - Helper::register(); - } - - if ($this->options['enabled'] && $connector->isActiveClient()) { - if ($this->options['useOwnErrorsHandler'] || $this->options['useOwnExceptionsHandler']) { - $handler = Handler::getInstance(); - $handler->setHandleErrors($this->options['useOwnErrorsHandler']); - $handler->setHandleExceptions($this->options['useOwnExceptionsHandler']); - $handler->start(); - } - if ($this->options['sourcesBasePath']) { - $connector->setSourcesBasePath($this->options['sourcesBasePath']); - } - if ($this->options['serverEncoding']) { - $connector->setServerEncoding($this->options['serverEncoding']); - } - if ($this->options['password']) { - $connector->setPassword($this->options['password']); - } - if ($this->options['enableSslOnlyMode']) { - $connector->enableSslOnlyMode(); - } - if ($this->options['ipMasks']) { - $connector->setAllowedIpMasks($this->options['ipMasks']); - } - if ($this->options['headersLimit']) { - $connector->setHeadersLimit($this->options['headersLimit']); - } - if ($this->options['detectDumpTraceAndSource']) { - $connector->getDebugDispatcher()->detectTraceAndSource = true; - } - $dumper = $connector->getDumper(); - $dumper->levelLimit = $this->options['dumperLevelLimit']; - $dumper->itemsCountLimit = $this->options['dumperItemsCountLimit']; - $dumper->itemSizeLimit = $this->options['dumperItemSizeLimit']; - $dumper->dumpSizeLimit = $this->options['dumperDumpSizeLimit']; - $dumper->detectCallbacks = $this->options['dumperDetectCallbacks']; - if ($this->options['enableEvalListener']) { - $connector->startEvalRequestsListener(); - } - } - - return $connector; - } - - public function getConnector() - { - return $this->connector; - } - - public function getOptions() - { - return $this->options; - } - - public function handle(array $record) - { - if ($this->options['enabled'] && $this->connector->isActiveClient()) { - return parent::handle($record); - } - - return !$this->bubble; - } - - /** - * Writes the record down to the log of the implementing handler - * - * @param array $record - * @return void - */ - protected function write(array $record) - { - if ($record['level'] < Logger::NOTICE) { - $this->handleDebugRecord($record); - } elseif (isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) { - $this->handleExceptionRecord($record); - } else { - $this->handleErrorRecord($record); - } - } - - private function handleDebugRecord(array $record) - { - $tags = $this->getRecordTags($record); - $message = $record['message']; - if ($record['context']) { - $message .= ' ' . json_encode($this->connector->getDumper()->dump(array_filter($record['context']))); - } - $this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']); - } - - private function handleExceptionRecord(array $record) - { - $this->connector->getErrorsDispatcher()->dispatchException($record['context']['exception']); - } - - private function handleErrorRecord(array $record) - { - $context = $record['context']; - - $this->connector->getErrorsDispatcher()->dispatchError( - isset($context['code']) ? $context['code'] : null, - isset($context['message']) ? $context['message'] : $record['message'], - isset($context['file']) ? $context['file'] : null, - isset($context['line']) ? $context['line'] : null, - $this->options['classesPartialsTraceIgnore'] - ); - } - - private function getRecordTags(array &$record) - { - $tags = null; - if (!empty($record['context'])) { - $context = & $record['context']; - foreach ($this->options['debugTagsKeysInContext'] as $key) { - if (!empty($context[$key])) { - $tags = $context[$key]; - if ($key === 0) { - array_shift($context); - } else { - unset($context[$key]); - } - break; - } - } - } - - return $tags ?: strtolower($record['level_name']); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter('%message%'); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php deleted file mode 100644 index 1ae85845..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Psr\Log\LoggerInterface; - -/** - * Proxies log messages to an existing PSR-3 compliant logger. - * - * @author Michael Moussa - */ -class PsrHandler extends AbstractHandler -{ - /** - * PSR-3 compliant logger - * - * @var LoggerInterface - */ - protected $logger; - - /** - * @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(LoggerInterface $logger, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - - $this->logger = $logger; - } - - /** - * {@inheritDoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return false; - } - - $this->logger->log(strtolower($record['level_name']), $record['message'], $record['context']); - - return false === $this->bubble; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php deleted file mode 100644 index bba72005..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php +++ /dev/null @@ -1,185 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Sends notifications through the pushover api to mobile phones - * - * @author Sebastian Göttschkes - * @see https://www.pushover.net/api - */ -class PushoverHandler extends SocketHandler -{ - private $token; - private $users; - private $title; - private $user; - private $retry; - private $expire; - - private $highPriorityLevel; - private $emergencyLevel; - private $useFormattedMessage = false; - - /** - * All parameters that can be sent to Pushover - * @see https://pushover.net/api - * @var array - */ - private $parameterNames = array( - 'token' => true, - 'user' => true, - 'message' => true, - 'device' => true, - 'title' => true, - 'url' => true, - 'url_title' => true, - 'priority' => true, - 'timestamp' => true, - 'sound' => true, - 'retry' => true, - 'expire' => true, - 'callback' => true, - ); - - /** - * Sounds the api supports by default - * @see https://pushover.net/api#sounds - * @var array - */ - private $sounds = array( - 'pushover', 'bike', 'bugle', 'cashregister', 'classical', 'cosmic', 'falling', 'gamelan', 'incoming', - 'intermission', 'magic', 'mechanical', 'pianobar', 'siren', 'spacealarm', 'tugboat', 'alien', 'climb', - 'persistent', 'echo', 'updown', 'none', - ); - - /** - * @param string $token Pushover api token - * @param string|array $users Pushover user id or array of ids the message will be sent to - * @param string $title Title sent to the Pushover API - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param Boolean $useSSL Whether to connect via SSL. Required when pushing messages to users that are not - * the pushover.net app owner. OpenSSL is required for this option. - * @param int $highPriorityLevel The minimum logging level at which this handler will start - * sending "high priority" requests to the Pushover API - * @param int $emergencyLevel The minimum logging level at which this handler will start - * sending "emergency" requests to the Pushover API - * @param int $retry The retry parameter specifies how often (in seconds) the Pushover servers will send the same notification to the user. - * @param int $expire The expire parameter specifies how many seconds your notification will continue to be retried for (every retry seconds). - */ - public function __construct($token, $users, $title = null, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $highPriorityLevel = Logger::CRITICAL, $emergencyLevel = Logger::EMERGENCY, $retry = 30, $expire = 25200) - { - $connectionString = $useSSL ? 'ssl://api.pushover.net:443' : 'api.pushover.net:80'; - parent::__construct($connectionString, $level, $bubble); - - $this->token = $token; - $this->users = (array) $users; - $this->title = $title ?: gethostname(); - $this->highPriorityLevel = Logger::toMonologLevel($highPriorityLevel); - $this->emergencyLevel = Logger::toMonologLevel($emergencyLevel); - $this->retry = $retry; - $this->expire = $expire; - } - - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - private function buildContent($record) - { - // Pushover has a limit of 512 characters on title and message combined. - $maxMessageLength = 512 - strlen($this->title); - - $message = ($this->useFormattedMessage) ? $record['formatted'] : $record['message']; - $message = substr($message, 0, $maxMessageLength); - - $timestamp = $record['datetime']->getTimestamp(); - - $dataArray = array( - 'token' => $this->token, - 'user' => $this->user, - 'message' => $message, - 'title' => $this->title, - 'timestamp' => $timestamp, - ); - - if (isset($record['level']) && $record['level'] >= $this->emergencyLevel) { - $dataArray['priority'] = 2; - $dataArray['retry'] = $this->retry; - $dataArray['expire'] = $this->expire; - } elseif (isset($record['level']) && $record['level'] >= $this->highPriorityLevel) { - $dataArray['priority'] = 1; - } - - // First determine the available parameters - $context = array_intersect_key($record['context'], $this->parameterNames); - $extra = array_intersect_key($record['extra'], $this->parameterNames); - - // Least important info should be merged with subsequent info - $dataArray = array_merge($extra, $context, $dataArray); - - // Only pass sounds that are supported by the API - if (isset($dataArray['sound']) && !in_array($dataArray['sound'], $this->sounds)) { - unset($dataArray['sound']); - } - - return http_build_query($dataArray); - } - - private function buildHeader($content) - { - $header = "POST /1/messages.json HTTP/1.1\r\n"; - $header .= "Host: api.pushover.net\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - protected function write(array $record) - { - foreach ($this->users as $user) { - $this->user = $user; - - parent::write($record); - $this->closeSocket(); - } - - $this->user = null; - } - - public function setHighPriorityLevel($value) - { - $this->highPriorityLevel = $value; - } - - public function setEmergencyLevel($value) - { - $this->emergencyLevel = $value; - } - - /** - * Use the formatted message? - * @param bool $value - */ - public function useFormattedMessage($value) - { - $this->useFormattedMessage = (boolean) $value; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php deleted file mode 100644 index 53a8b391..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php +++ /dev/null @@ -1,232 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\Logger; -use Raven_Client; - -/** - * Handler to send messages to a Sentry (https://github.com/getsentry/sentry) server - * using raven-php (https://github.com/getsentry/raven-php) - * - * @author Marc Abramowitz - */ -class RavenHandler extends AbstractProcessingHandler -{ - /** - * Translates Monolog log levels to Raven log levels. - */ - private $logLevels = array( - Logger::DEBUG => Raven_Client::DEBUG, - Logger::INFO => Raven_Client::INFO, - Logger::NOTICE => Raven_Client::INFO, - Logger::WARNING => Raven_Client::WARNING, - Logger::ERROR => Raven_Client::ERROR, - Logger::CRITICAL => Raven_Client::FATAL, - Logger::ALERT => Raven_Client::FATAL, - Logger::EMERGENCY => Raven_Client::FATAL, - ); - - /** - * @var string should represent the current version of the calling - * software. Can be any string (git commit, version number) - */ - private $release; - - /** - * @var Raven_Client the client object that sends the message to the server - */ - protected $ravenClient; - - /** - * @var LineFormatter The formatter to use for the logs generated via handleBatch() - */ - protected $batchFormatter; - - /** - * @param Raven_Client $ravenClient - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(Raven_Client $ravenClient, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - - $this->ravenClient = $ravenClient; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $level = $this->level; - - // filter records based on their level - $records = array_filter($records, function ($record) use ($level) { - return $record['level'] >= $level; - }); - - if (!$records) { - return; - } - - // the record with the highest severity is the "main" one - $record = array_reduce($records, function ($highest, $record) { - if ($record['level'] > $highest['level']) { - return $record; - } - - return $highest; - }); - - // the other ones are added as a context item - $logs = array(); - foreach ($records as $r) { - $logs[] = $this->processRecord($r); - } - - if ($logs) { - $record['context']['logs'] = (string) $this->getBatchFormatter()->formatBatch($logs); - } - - $this->handle($record); - } - - /** - * Sets the formatter for the logs generated by handleBatch(). - * - * @param FormatterInterface $formatter - */ - public function setBatchFormatter(FormatterInterface $formatter) - { - $this->batchFormatter = $formatter; - } - - /** - * Gets the formatter for the logs generated by handleBatch(). - * - * @return FormatterInterface - */ - public function getBatchFormatter() - { - if (!$this->batchFormatter) { - $this->batchFormatter = $this->getDefaultBatchFormatter(); - } - - return $this->batchFormatter; - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $previousUserContext = false; - $options = array(); - $options['level'] = $this->logLevels[$record['level']]; - $options['tags'] = array(); - if (!empty($record['extra']['tags'])) { - $options['tags'] = array_merge($options['tags'], $record['extra']['tags']); - unset($record['extra']['tags']); - } - if (!empty($record['context']['tags'])) { - $options['tags'] = array_merge($options['tags'], $record['context']['tags']); - unset($record['context']['tags']); - } - if (!empty($record['context']['fingerprint'])) { - $options['fingerprint'] = $record['context']['fingerprint']; - unset($record['context']['fingerprint']); - } - if (!empty($record['context']['logger'])) { - $options['logger'] = $record['context']['logger']; - unset($record['context']['logger']); - } else { - $options['logger'] = $record['channel']; - } - foreach ($this->getExtraParameters() as $key) { - foreach (array('extra', 'context') as $source) { - if (!empty($record[$source][$key])) { - $options[$key] = $record[$source][$key]; - unset($record[$source][$key]); - } - } - } - if (!empty($record['context'])) { - $options['extra']['context'] = $record['context']; - if (!empty($record['context']['user'])) { - $previousUserContext = $this->ravenClient->context->user; - $this->ravenClient->user_context($record['context']['user']); - unset($options['extra']['context']['user']); - } - } - if (!empty($record['extra'])) { - $options['extra']['extra'] = $record['extra']; - } - - if (!empty($this->release) && !isset($options['release'])) { - $options['release'] = $this->release; - } - - if (isset($record['context']['exception']) && ($record['context']['exception'] instanceof \Exception || (PHP_VERSION_ID >= 70000 && $record['context']['exception'] instanceof \Throwable))) { - $options['extra']['message'] = $record['formatted']; - $this->ravenClient->captureException($record['context']['exception'], $options); - } else { - $this->ravenClient->captureMessage($record['formatted'], array(), $options); - } - - if ($previousUserContext !== false) { - $this->ravenClient->user_context($previousUserContext); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter('[%channel%] %message%'); - } - - /** - * Gets the default formatter for the logs generated by handleBatch(). - * - * @return FormatterInterface - */ - protected function getDefaultBatchFormatter() - { - return new LineFormatter(); - } - - /** - * Gets extra parameters supported by Raven that can be found in "extra" and "context" - * - * @return array - */ - protected function getExtraParameters() - { - return array('checksum', 'release', 'event_id'); - } - - /** - * @param string $value - * @return self - */ - public function setRelease($value) - { - $this->release = $value; - - return $this; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php deleted file mode 100644 index 590f9965..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Logger; - -/** - * Logs to a Redis key using rpush - * - * usage example: - * - * $log = new Logger('application'); - * $redis = new RedisHandler(new Predis\Client("tcp://localhost:6379"), "logs", "prod"); - * $log->pushHandler($redis); - * - * @author Thomas Tourlourat - */ -class RedisHandler extends AbstractProcessingHandler -{ - private $redisClient; - private $redisKey; - protected $capSize; - - /** - * @param \Predis\Client|\Redis $redis The redis instance - * @param string $key The key name to push records to - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param int $capSize Number of entries to limit list size to - */ - public function __construct($redis, $key, $level = Logger::DEBUG, $bubble = true, $capSize = false) - { - if (!(($redis instanceof \Predis\Client) || ($redis instanceof \Redis))) { - throw new \InvalidArgumentException('Predis\Client or Redis instance required'); - } - - $this->redisClient = $redis; - $this->redisKey = $key; - $this->capSize = $capSize; - - parent::__construct($level, $bubble); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - if ($this->capSize) { - $this->writeCapped($record); - } else { - $this->redisClient->rpush($this->redisKey, $record["formatted"]); - } - } - - /** - * Write and cap the collection - * Writes the record to the redis list and caps its - * - * @param array $record associative record array - * @return void - */ - protected function writeCapped(array $record) - { - if ($this->redisClient instanceof \Redis) { - $this->redisClient->multi() - ->rpush($this->redisKey, $record["formatted"]) - ->ltrim($this->redisKey, -$this->capSize, -1) - ->exec(); - } else { - $redisKey = $this->redisKey; - $capSize = $this->capSize; - $this->redisClient->transaction(function ($tx) use ($record, $redisKey, $capSize) { - $tx->rpush($redisKey, $record["formatted"]); - $tx->ltrim($redisKey, -$capSize, -1); - }); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php deleted file mode 100644 index 6c8a3e3e..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php +++ /dev/null @@ -1,132 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use RollbarNotifier; -use Exception; -use Monolog\Logger; - -/** - * Sends errors to Rollbar - * - * If the context data contains a `payload` key, that is used as an array - * of payload options to RollbarNotifier's report_message/report_exception methods. - * - * Rollbar's context info will contain the context + extra keys from the log record - * merged, and then on top of that a few keys: - * - * - level (rollbar level name) - * - monolog_level (monolog level name, raw level, as rollbar only has 5 but monolog 8) - * - channel - * - datetime (unix timestamp) - * - * @author Paul Statezny - */ -class RollbarHandler extends AbstractProcessingHandler -{ - /** - * Rollbar notifier - * - * @var RollbarNotifier - */ - protected $rollbarNotifier; - - protected $levelMap = array( - Logger::DEBUG => 'debug', - Logger::INFO => 'info', - Logger::NOTICE => 'info', - Logger::WARNING => 'warning', - Logger::ERROR => 'error', - Logger::CRITICAL => 'critical', - Logger::ALERT => 'critical', - Logger::EMERGENCY => 'critical', - ); - - /** - * Records whether any log records have been added since the last flush of the rollbar notifier - * - * @var bool - */ - private $hasRecords = false; - - protected $initialized = false; - - /** - * @param RollbarNotifier $rollbarNotifier RollbarNotifier object constructed with valid token - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(RollbarNotifier $rollbarNotifier, $level = Logger::ERROR, $bubble = true) - { - $this->rollbarNotifier = $rollbarNotifier; - - parent::__construct($level, $bubble); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (!$this->initialized) { - // __destructor() doesn't get called on Fatal errors - register_shutdown_function(array($this, 'close')); - $this->initialized = true; - } - - $context = $record['context']; - $payload = array(); - if (isset($context['payload'])) { - $payload = $context['payload']; - unset($context['payload']); - } - $context = array_merge($context, $record['extra'], array( - 'level' => $this->levelMap[$record['level']], - 'monolog_level' => $record['level_name'], - 'channel' => $record['channel'], - 'datetime' => $record['datetime']->format('U'), - )); - - if (isset($context['exception']) && $context['exception'] instanceof Exception) { - $payload['level'] = $context['level']; - $exception = $context['exception']; - unset($context['exception']); - - $this->rollbarNotifier->report_exception($exception, $context, $payload); - } else { - $this->rollbarNotifier->report_message( - $record['message'], - $context['level'], - $context, - $payload - ); - } - - $this->hasRecords = true; - } - - public function flush() - { - if ($this->hasRecords) { - $this->rollbarNotifier->flush(); - $this->hasRecords = false; - } - } - - /** - * {@inheritdoc} - */ - public function close() - { - $this->flush(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php deleted file mode 100644 index 3b60b3d1..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php +++ /dev/null @@ -1,178 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Stores logs to files that are rotated every day and a limited number of files are kept. - * - * This rotation is only intended to be used as a workaround. Using logrotate to - * handle the rotation is strongly encouraged when you can use it. - * - * @author Christophe Coevoet - * @author Jordi Boggiano - */ -class RotatingFileHandler extends StreamHandler -{ - const FILE_PER_DAY = 'Y-m-d'; - const FILE_PER_MONTH = 'Y-m'; - const FILE_PER_YEAR = 'Y'; - - protected $filename; - protected $maxFiles; - protected $mustRotate; - protected $nextRotation; - protected $filenameFormat; - protected $dateFormat; - - /** - * @param string $filename - * @param int $maxFiles The maximal amount of files to keep (0 means unlimited) - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) - * @param Boolean $useLocking Try to lock log file before doing any writes - */ - public function __construct($filename, $maxFiles = 0, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false) - { - $this->filename = $filename; - $this->maxFiles = (int) $maxFiles; - $this->nextRotation = new \DateTime('tomorrow'); - $this->filenameFormat = '{filename}-{date}'; - $this->dateFormat = 'Y-m-d'; - - parent::__construct($this->getTimedFilename(), $level, $bubble, $filePermission, $useLocking); - } - - /** - * {@inheritdoc} - */ - public function close() - { - parent::close(); - - if (true === $this->mustRotate) { - $this->rotate(); - } - } - - public function setFilenameFormat($filenameFormat, $dateFormat) - { - if (!preg_match('{^Y(([/_.-]?m)([/_.-]?d)?)?$}', $dateFormat)) { - trigger_error( - 'Invalid date format - format must be one of '. - 'RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), RotatingFileHandler::FILE_PER_MONTH ("Y-m") '. - 'or RotatingFileHandler::FILE_PER_YEAR ("Y"), or you can set one of the '. - 'date formats using slashes, underscores and/or dots instead of dashes.', - E_USER_DEPRECATED - ); - } - if (substr_count($filenameFormat, '{date}') === 0) { - trigger_error( - 'Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.', - E_USER_DEPRECATED - ); - } - $this->filenameFormat = $filenameFormat; - $this->dateFormat = $dateFormat; - $this->url = $this->getTimedFilename(); - $this->close(); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - // on the first record written, if the log is new, we should rotate (once per day) - if (null === $this->mustRotate) { - $this->mustRotate = !file_exists($this->url); - } - - if ($this->nextRotation < $record['datetime']) { - $this->mustRotate = true; - $this->close(); - } - - parent::write($record); - } - - /** - * Rotates the files. - */ - protected function rotate() - { - // update filename - $this->url = $this->getTimedFilename(); - $this->nextRotation = new \DateTime('tomorrow'); - - // skip GC of old logs if files are unlimited - if (0 === $this->maxFiles) { - return; - } - - $logFiles = glob($this->getGlobPattern()); - if ($this->maxFiles >= count($logFiles)) { - // no files to remove - return; - } - - // Sorting the files by name to remove the older ones - usort($logFiles, function ($a, $b) { - return strcmp($b, $a); - }); - - foreach (array_slice($logFiles, $this->maxFiles) as $file) { - if (is_writable($file)) { - // suppress errors here as unlink() might fail if two processes - // are cleaning up/rotating at the same time - set_error_handler(function ($errno, $errstr, $errfile, $errline) {}); - unlink($file); - restore_error_handler(); - } - } - - $this->mustRotate = false; - } - - protected function getTimedFilename() - { - $fileInfo = pathinfo($this->filename); - $timedFilename = str_replace( - array('{filename}', '{date}'), - array($fileInfo['filename'], date($this->dateFormat)), - $fileInfo['dirname'] . '/' . $this->filenameFormat - ); - - if (!empty($fileInfo['extension'])) { - $timedFilename .= '.'.$fileInfo['extension']; - } - - return $timedFilename; - } - - protected function getGlobPattern() - { - $fileInfo = pathinfo($this->filename); - $glob = str_replace( - array('{filename}', '{date}'), - array($fileInfo['filename'], '*'), - $fileInfo['dirname'] . '/' . $this->filenameFormat - ); - if (!empty($fileInfo['extension'])) { - $glob .= '.'.$fileInfo['extension']; - } - - return $glob; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php deleted file mode 100644 index 9509ae37..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Sampling handler - * - * A sampled event stream can be useful for logging high frequency events in - * a production environment where you only need an idea of what is happening - * and are not concerned with capturing every occurrence. Since the decision to - * handle or not handle a particular event is determined randomly, the - * resulting sampled log is not guaranteed to contain 1/N of the events that - * occurred in the application, but based on the Law of large numbers, it will - * tend to be close to this ratio with a large number of attempts. - * - * @author Bryan Davis - * @author Kunal Mehta - */ -class SamplingHandler extends AbstractHandler -{ - /** - * @var callable|HandlerInterface $handler - */ - protected $handler; - - /** - * @var int $factor - */ - protected $factor; - - /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). - * @param int $factor Sample factor - */ - public function __construct($handler, $factor) - { - parent::__construct(); - $this->handler = $handler; - $this->factor = $factor; - - if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { - throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); - } - } - - public function isHandling(array $record) - { - return $this->handler->isHandling($record); - } - - public function handle(array $record) - { - if ($this->isHandling($record) && mt_rand(1, $this->factor) === 1) { - // The same logic as in FingersCrossedHandler - if (!$this->handler instanceof HandlerInterface) { - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - $this->handler->handle($record); - } - - return false === $this->bubble; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php b/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php deleted file mode 100644 index 38bc838a..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php +++ /dev/null @@ -1,294 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\Slack; - -use Monolog\Logger; -use Monolog\Formatter\NormalizerFormatter; -use Monolog\Formatter\FormatterInterface; - -/** - * Slack record utility helping to log to Slack webhooks or API. - * - * @author Greg Kedzierski - * @author Haralan Dobrev - * @see https://api.slack.com/incoming-webhooks - * @see https://api.slack.com/docs/message-attachments - */ -class SlackRecord -{ - const COLOR_DANGER = 'danger'; - - const COLOR_WARNING = 'warning'; - - const COLOR_GOOD = 'good'; - - const COLOR_DEFAULT = '#e3e4e6'; - - /** - * Slack channel (encoded ID or name) - * @var string|null - */ - private $channel; - - /** - * Name of a bot - * @var string|null - */ - private $username; - - /** - * User icon e.g. 'ghost', 'http://example.com/user.png' - * @var string - */ - private $userIcon; - - /** - * Whether the message should be added to Slack as attachment (plain text otherwise) - * @var bool - */ - private $useAttachment; - - /** - * Whether the the context/extra messages added to Slack as attachments are in a short style - * @var bool - */ - private $useShortAttachment; - - /** - * Whether the attachment should include context and extra data - * @var bool - */ - private $includeContextAndExtra; - - /** - * Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] - * @var array - */ - private $excludeFields; - - /** - * @var FormatterInterface - */ - private $formatter; - - /** - * @var NormalizerFormatter - */ - private $normalizerFormatter; - - public function __construct($channel = null, $username = null, $useAttachment = true, $userIcon = null, $useShortAttachment = false, $includeContextAndExtra = false, array $excludeFields = array(), FormatterInterface $formatter = null) - { - $this->channel = $channel; - $this->username = $username; - $this->userIcon = trim($userIcon, ':'); - $this->useAttachment = $useAttachment; - $this->useShortAttachment = $useShortAttachment; - $this->includeContextAndExtra = $includeContextAndExtra; - $this->excludeFields = $excludeFields; - $this->formatter = $formatter; - - if ($this->includeContextAndExtra) { - $this->normalizerFormatter = new NormalizerFormatter(); - } - } - - public function getSlackData(array $record) - { - $dataArray = array(); - $record = $this->excludeFields($record); - - if ($this->username) { - $dataArray['username'] = $this->username; - } - - if ($this->channel) { - $dataArray['channel'] = $this->channel; - } - - if ($this->formatter && !$this->useAttachment) { - $message = $this->formatter->format($record); - } else { - $message = $record['message']; - } - - if ($this->useAttachment) { - $attachment = array( - 'fallback' => $message, - 'text' => $message, - 'color' => $this->getAttachmentColor($record['level']), - 'fields' => array(), - 'mrkdwn_in' => array('fields'), - 'ts' => $record['datetime']->getTimestamp() - ); - - if ($this->useShortAttachment) { - $attachment['title'] = $record['level_name']; - } else { - $attachment['title'] = 'Message'; - $attachment['fields'][] = $this->generateAttachmentField('Level', $record['level_name']); - } - - - if ($this->includeContextAndExtra) { - foreach (array('extra', 'context') as $key) { - if (empty($record[$key])) { - continue; - } - - if ($this->useShortAttachment) { - $attachment['fields'][] = $this->generateAttachmentField( - ucfirst($key), - $record[$key] - ); - } else { - // Add all extra fields as individual fields in attachment - $attachment['fields'] = array_merge( - $attachment['fields'], - $this->generateAttachmentFields($record[$key]) - ); - } - } - } - - $dataArray['attachments'] = array($attachment); - } else { - $dataArray['text'] = $message; - } - - if ($this->userIcon) { - if (filter_var($this->userIcon, FILTER_VALIDATE_URL)) { - $dataArray['icon_url'] = $this->userIcon; - } else { - $dataArray['icon_emoji'] = ":{$this->userIcon}:"; - } - } - - return $dataArray; - } - - /** - * Returned a Slack message attachment color associated with - * provided level. - * - * @param int $level - * @return string - */ - public function getAttachmentColor($level) - { - switch (true) { - case $level >= Logger::ERROR: - return self::COLOR_DANGER; - case $level >= Logger::WARNING: - return self::COLOR_WARNING; - case $level >= Logger::INFO: - return self::COLOR_GOOD; - default: - return self::COLOR_DEFAULT; - } - } - - /** - * Stringifies an array of key/value pairs to be used in attachment fields - * - * @param array $fields - * - * @return string - */ - public function stringify($fields) - { - $normalized = $this->normalizerFormatter->format($fields); - $prettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128; - - $hasSecondDimension = count(array_filter($normalized, 'is_array')); - $hasNonNumericKeys = !count(array_filter(array_keys($normalized), 'is_numeric')); - - return $hasSecondDimension || $hasNonNumericKeys - ? json_encode($normalized, $prettyPrintFlag) - : json_encode($normalized); - } - - /** - * Sets the formatter - * - * @param FormatterInterface $formatter - */ - public function setFormatter(FormatterInterface $formatter) - { - $this->formatter = $formatter; - } - - /** - * Generates attachment field - * - * @param string $title - * @param string|array $value\ - * - * @return array - */ - private function generateAttachmentField($title, $value) - { - $value = is_array($value) - ? sprintf('```%s```', $this->stringify($value)) - : $value; - - return array( - 'title' => $title, - 'value' => $value, - 'short' => false - ); - } - - /** - * Generates a collection of attachment fields from array - * - * @param array $data - * - * @return array - */ - private function generateAttachmentFields(array $data) - { - $fields = array(); - foreach ($data as $key => $value) { - $fields[] = $this->generateAttachmentField($key, $value); - } - - return $fields; - } - - /** - * Get a copy of record with fields excluded according to $this->excludeFields - * - * @param array $record - * - * @return array - */ - private function excludeFields(array $record) - { - foreach ($this->excludeFields as $field) { - $keys = explode('.', $field); - $node = &$record; - $lastKey = end($keys); - foreach ($keys as $key) { - if (!isset($node[$key])) { - break; - } - if ($lastKey === $key) { - unset($node[$key]); - break; - } - $node = &$node[$key]; - } - } - - return $record; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php deleted file mode 100644 index 3ac4d836..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php +++ /dev/null @@ -1,215 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Logger; -use Monolog\Handler\Slack\SlackRecord; - -/** - * Sends notifications through Slack API - * - * @author Greg Kedzierski - * @see https://api.slack.com/ - */ -class SlackHandler extends SocketHandler -{ - /** - * Slack API token - * @var string - */ - private $token; - - /** - * Instance of the SlackRecord util class preparing data for Slack API. - * @var SlackRecord - */ - private $slackRecord; - - /** - * @param string $token Slack API token - * @param string $channel Slack channel (encoded ID or name) - * @param string|null $username Name of a bot - * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) - * @param string|null $iconEmoji The emoji name to use (or null) - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param bool $useShortAttachment Whether the the context/extra messages added to Slack as attachments are in a short style - * @param bool $includeContextAndExtra Whether the attachment should include context and extra data - * @param array $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] - * @throws MissingExtensionException If no OpenSSL PHP extension configured - */ - public function __construct($token, $channel, $username = null, $useAttachment = true, $iconEmoji = null, $level = Logger::CRITICAL, $bubble = true, $useShortAttachment = false, $includeContextAndExtra = false, array $excludeFields = array()) - { - if (!extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the SlackHandler'); - } - - parent::__construct('ssl://slack.com:443', $level, $bubble); - - $this->slackRecord = new SlackRecord( - $channel, - $username, - $useAttachment, - $iconEmoji, - $useShortAttachment, - $includeContextAndExtra, - $excludeFields, - $this->formatter - ); - - $this->token = $token; - } - - public function getSlackRecord() - { - return $this->slackRecord; - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = $this->prepareContentData($record); - - return http_build_query($dataArray); - } - - /** - * Prepares content data - * - * @param array $record - * @return array - */ - protected function prepareContentData($record) - { - $dataArray = $this->slackRecord->getSlackData($record); - $dataArray['token'] = $this->token; - - if (!empty($dataArray['attachments'])) { - $dataArray['attachments'] = json_encode($dataArray['attachments']); - } - - return $dataArray; - } - - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST /api/chat.postMessage HTTP/1.1\r\n"; - $header .= "Host: slack.com\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - $this->finalizeWrite(); - } - - /** - * Finalizes the request by reading some bytes and then closing the socket - * - * If we do not read some but close the socket too early, slack sometimes - * drops the request entirely. - */ - protected function finalizeWrite() - { - $res = $this->getResource(); - if (is_resource($res)) { - @fread($res, 2048); - } - $this->closeSocket(); - } - - /** - * Returned a Slack message attachment color associated with - * provided level. - * - * @param int $level - * @return string - * @deprecated Use underlying SlackRecord instead - */ - protected function getAttachmentColor($level) - { - trigger_error( - 'SlackHandler::getAttachmentColor() is deprecated. Use underlying SlackRecord instead.', - E_USER_DEPRECATED - ); - - return $this->slackRecord->getAttachmentColor($level); - } - - /** - * Stringifies an array of key/value pairs to be used in attachment fields - * - * @param array $fields - * @return string - * @deprecated Use underlying SlackRecord instead - */ - protected function stringify($fields) - { - trigger_error( - 'SlackHandler::stringify() is deprecated. Use underlying SlackRecord instead.', - E_USER_DEPRECATED - ); - - return $this->slackRecord->stringify($fields); - } - - public function setFormatter(FormatterInterface $formatter) - { - parent::setFormatter($formatter); - $this->slackRecord->setFormatter($formatter); - - return $this; - } - - public function getFormatter() - { - $formatter = parent::getFormatter(); - $this->slackRecord->setFormatter($formatter); - - return $formatter; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php deleted file mode 100644 index 9a1bbb44..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Logger; -use Monolog\Handler\Slack\SlackRecord; - -/** - * Sends notifications through Slack Webhooks - * - * @author Haralan Dobrev - * @see https://api.slack.com/incoming-webhooks - */ -class SlackWebhookHandler extends AbstractProcessingHandler -{ - /** - * Slack Webhook token - * @var string - */ - private $webhookUrl; - - /** - * Instance of the SlackRecord util class preparing data for Slack API. - * @var SlackRecord - */ - private $slackRecord; - - /** - * @param string $webhookUrl Slack Webhook URL - * @param string|null $channel Slack channel (encoded ID or name) - * @param string|null $username Name of a bot - * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) - * @param string|null $iconEmoji The emoji name to use (or null) - * @param bool $useShortAttachment Whether the the context/extra messages added to Slack as attachments are in a short style - * @param bool $includeContextAndExtra Whether the attachment should include context and extra data - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param array $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] - */ - public function __construct($webhookUrl, $channel = null, $username = null, $useAttachment = true, $iconEmoji = null, $useShortAttachment = false, $includeContextAndExtra = false, $level = Logger::CRITICAL, $bubble = true, array $excludeFields = array()) - { - parent::__construct($level, $bubble); - - $this->webhookUrl = $webhookUrl; - - $this->slackRecord = new SlackRecord( - $channel, - $username, - $useAttachment, - $iconEmoji, - $useShortAttachment, - $includeContextAndExtra, - $excludeFields, - $this->formatter - ); - } - - public function getSlackRecord() - { - return $this->slackRecord; - } - - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - $postData = $this->slackRecord->getSlackData($record); - $postString = json_encode($postData); - - $ch = curl_init(); - $options = array( - CURLOPT_URL => $this->webhookUrl, - CURLOPT_POST => true, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_HTTPHEADER => array('Content-type: application/json'), - CURLOPT_POSTFIELDS => $postString - ); - if (defined('CURLOPT_SAFE_UPLOAD')) { - $options[CURLOPT_SAFE_UPLOAD] = true; - } - - curl_setopt_array($ch, $options); - - Curl\Util::execute($ch); - } - - public function setFormatter(FormatterInterface $formatter) - { - parent::setFormatter($formatter); - $this->slackRecord->setFormatter($formatter); - - return $this; - } - - public function getFormatter() - { - $formatter = parent::getFormatter(); - $this->slackRecord->setFormatter($formatter); - - return $formatter; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php deleted file mode 100644 index baead525..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Sends notifications through Slack's Slackbot - * - * @author Haralan Dobrev - * @see https://slack.com/apps/A0F81R8ET-slackbot - */ -class SlackbotHandler extends AbstractProcessingHandler -{ - /** - * The slug of the Slack team - * @var string - */ - private $slackTeam; - - /** - * Slackbot token - * @var string - */ - private $token; - - /** - * Slack channel name - * @var string - */ - private $channel; - - /** - * @param string $slackTeam Slack team slug - * @param string $token Slackbot token - * @param string $channel Slack channel (encoded ID or name) - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($slackTeam, $token, $channel, $level = Logger::CRITICAL, $bubble = true) - { - parent::__construct($level, $bubble); - - $this->slackTeam = $slackTeam; - $this->token = $token; - $this->channel = $channel; - } - - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - $slackbotUrl = sprintf( - 'https://%s.slack.com/services/hooks/slackbot?token=%s&channel=%s', - $this->slackTeam, - $this->token, - $this->channel - ); - - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $slackbotUrl); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, $record['message']); - - Curl\Util::execute($ch); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php deleted file mode 100644 index 7a61bf4e..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php +++ /dev/null @@ -1,346 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Stores to any socket - uses fsockopen() or pfsockopen(). - * - * @author Pablo de Leon Belloc - * @see http://php.net/manual/en/function.fsockopen.php - */ -class SocketHandler extends AbstractProcessingHandler -{ - private $connectionString; - private $connectionTimeout; - private $resource; - private $timeout = 0; - private $writingTimeout = 10; - private $lastSentBytes = null; - private $persistent = false; - private $errno; - private $errstr; - private $lastWritingAt; - - /** - * @param string $connectionString Socket connection string - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($connectionString, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - $this->connectionString = $connectionString; - $this->connectionTimeout = (float) ini_get('default_socket_timeout'); - } - - /** - * Connect (if necessary) and write to the socket - * - * @param array $record - * - * @throws \UnexpectedValueException - * @throws \RuntimeException - */ - protected function write(array $record) - { - $this->connectIfNotConnected(); - $data = $this->generateDataStream($record); - $this->writeToSocket($data); - } - - /** - * We will not close a PersistentSocket instance so it can be reused in other requests. - */ - public function close() - { - if (!$this->isPersistent()) { - $this->closeSocket(); - } - } - - /** - * Close socket, if open - */ - public function closeSocket() - { - if (is_resource($this->resource)) { - fclose($this->resource); - $this->resource = null; - } - } - - /** - * Set socket connection to nbe persistent. It only has effect before the connection is initiated. - * - * @param bool $persistent - */ - public function setPersistent($persistent) - { - $this->persistent = (boolean) $persistent; - } - - /** - * Set connection timeout. Only has effect before we connect. - * - * @param float $seconds - * - * @see http://php.net/manual/en/function.fsockopen.php - */ - public function setConnectionTimeout($seconds) - { - $this->validateTimeout($seconds); - $this->connectionTimeout = (float) $seconds; - } - - /** - * Set write timeout. Only has effect before we connect. - * - * @param float $seconds - * - * @see http://php.net/manual/en/function.stream-set-timeout.php - */ - public function setTimeout($seconds) - { - $this->validateTimeout($seconds); - $this->timeout = (float) $seconds; - } - - /** - * Set writing timeout. Only has effect during connection in the writing cycle. - * - * @param float $seconds 0 for no timeout - */ - public function setWritingTimeout($seconds) - { - $this->validateTimeout($seconds); - $this->writingTimeout = (float) $seconds; - } - - /** - * Get current connection string - * - * @return string - */ - public function getConnectionString() - { - return $this->connectionString; - } - - /** - * Get persistent setting - * - * @return bool - */ - public function isPersistent() - { - return $this->persistent; - } - - /** - * Get current connection timeout setting - * - * @return float - */ - public function getConnectionTimeout() - { - return $this->connectionTimeout; - } - - /** - * Get current in-transfer timeout - * - * @return float - */ - public function getTimeout() - { - return $this->timeout; - } - - /** - * Get current local writing timeout - * - * @return float - */ - public function getWritingTimeout() - { - return $this->writingTimeout; - } - - /** - * Check to see if the socket is currently available. - * - * UDP might appear to be connected but might fail when writing. See http://php.net/fsockopen for details. - * - * @return bool - */ - public function isConnected() - { - return is_resource($this->resource) - && !feof($this->resource); // on TCP - other party can close connection. - } - - /** - * Wrapper to allow mocking - */ - protected function pfsockopen() - { - return @pfsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); - } - - /** - * Wrapper to allow mocking - */ - protected function fsockopen() - { - return @fsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); - } - - /** - * Wrapper to allow mocking - * - * @see http://php.net/manual/en/function.stream-set-timeout.php - */ - protected function streamSetTimeout() - { - $seconds = floor($this->timeout); - $microseconds = round(($this->timeout - $seconds) * 1e6); - - return stream_set_timeout($this->resource, $seconds, $microseconds); - } - - /** - * Wrapper to allow mocking - */ - protected function fwrite($data) - { - return @fwrite($this->resource, $data); - } - - /** - * Wrapper to allow mocking - */ - protected function streamGetMetadata() - { - return stream_get_meta_data($this->resource); - } - - private function validateTimeout($value) - { - $ok = filter_var($value, FILTER_VALIDATE_FLOAT); - if ($ok === false || $value < 0) { - throw new \InvalidArgumentException("Timeout must be 0 or a positive float (got $value)"); - } - } - - private function connectIfNotConnected() - { - if ($this->isConnected()) { - return; - } - $this->connect(); - } - - protected function generateDataStream($record) - { - return (string) $record['formatted']; - } - - /** - * @return resource|null - */ - protected function getResource() - { - return $this->resource; - } - - private function connect() - { - $this->createSocketResource(); - $this->setSocketTimeout(); - } - - private function createSocketResource() - { - if ($this->isPersistent()) { - $resource = $this->pfsockopen(); - } else { - $resource = $this->fsockopen(); - } - if (!$resource) { - throw new \UnexpectedValueException("Failed connecting to $this->connectionString ($this->errno: $this->errstr)"); - } - $this->resource = $resource; - } - - private function setSocketTimeout() - { - if (!$this->streamSetTimeout()) { - throw new \UnexpectedValueException("Failed setting timeout with stream_set_timeout()"); - } - } - - private function writeToSocket($data) - { - $length = strlen($data); - $sent = 0; - $this->lastSentBytes = $sent; - while ($this->isConnected() && $sent < $length) { - if (0 == $sent) { - $chunk = $this->fwrite($data); - } else { - $chunk = $this->fwrite(substr($data, $sent)); - } - if ($chunk === false) { - throw new \RuntimeException("Could not write to socket"); - } - $sent += $chunk; - $socketInfo = $this->streamGetMetadata(); - if ($socketInfo['timed_out']) { - throw new \RuntimeException("Write timed-out"); - } - - if ($this->writingIsTimedOut($sent)) { - throw new \RuntimeException("Write timed-out, no data sent for `{$this->writingTimeout}` seconds, probably we got disconnected (sent $sent of $length)"); - } - } - if (!$this->isConnected() && $sent < $length) { - throw new \RuntimeException("End-of-file reached, probably we got disconnected (sent $sent of $length)"); - } - } - - private function writingIsTimedOut($sent) - { - $writingTimeout = (int) floor($this->writingTimeout); - if (0 === $writingTimeout) { - return false; - } - - if ($sent !== $this->lastSentBytes) { - $this->lastWritingAt = time(); - $this->lastSentBytes = $sent; - - return false; - } else { - usleep(100); - } - - if ((time() - $this->lastWritingAt) >= $writingTimeout) { - $this->closeSocket(); - - return true; - } - - return false; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php deleted file mode 100644 index 09a15738..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php +++ /dev/null @@ -1,176 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Stores to any stream resource - * - * Can be used to store into php://stderr, remote and local files, etc. - * - * @author Jordi Boggiano - */ -class StreamHandler extends AbstractProcessingHandler -{ - protected $stream; - protected $url; - private $errorMessage; - protected $filePermission; - protected $useLocking; - private $dirCreated; - - /** - * @param resource|string $stream - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) - * @param Boolean $useLocking Try to lock log file before doing any writes - * - * @throws \Exception If a missing directory is not buildable - * @throws \InvalidArgumentException If stream is not a resource or string - */ - public function __construct($stream, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false) - { - parent::__construct($level, $bubble); - if (is_resource($stream)) { - $this->stream = $stream; - } elseif (is_string($stream)) { - $this->url = $stream; - } else { - throw new \InvalidArgumentException('A stream must either be a resource or a string.'); - } - - $this->filePermission = $filePermission; - $this->useLocking = $useLocking; - } - - /** - * {@inheritdoc} - */ - public function close() - { - if ($this->url && is_resource($this->stream)) { - fclose($this->stream); - } - $this->stream = null; - } - - /** - * Return the currently active stream if it is open - * - * @return resource|null - */ - public function getStream() - { - return $this->stream; - } - - /** - * Return the stream URL if it was configured with a URL and not an active resource - * - * @return string|null - */ - public function getUrl() - { - return $this->url; - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (!is_resource($this->stream)) { - if (null === $this->url || '' === $this->url) { - throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().'); - } - $this->createDir(); - $this->errorMessage = null; - set_error_handler(array($this, 'customErrorHandler')); - $this->stream = fopen($this->url, 'a'); - if ($this->filePermission !== null) { - @chmod($this->url, $this->filePermission); - } - restore_error_handler(); - if (!is_resource($this->stream)) { - $this->stream = null; - throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url)); - } - } - - if ($this->useLocking) { - // ignoring errors here, there's not much we can do about them - flock($this->stream, LOCK_EX); - } - - $this->streamWrite($this->stream, $record); - - if ($this->useLocking) { - flock($this->stream, LOCK_UN); - } - } - - /** - * Write to stream - * @param resource $stream - * @param array $record - */ - protected function streamWrite($stream, array $record) - { - fwrite($stream, (string) $record['formatted']); - } - - private function customErrorHandler($code, $msg) - { - $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg); - } - - /** - * @param string $stream - * - * @return null|string - */ - private function getDirFromStream($stream) - { - $pos = strpos($stream, '://'); - if ($pos === false) { - return dirname($stream); - } - - if ('file://' === substr($stream, 0, 7)) { - return dirname(substr($stream, 7)); - } - - return; - } - - private function createDir() - { - // Do not try to create dir if it has already been tried. - if ($this->dirCreated) { - return; - } - - $dir = $this->getDirFromStream($this->url); - if (null !== $dir && !is_dir($dir)) { - $this->errorMessage = null; - set_error_handler(array($this, 'customErrorHandler')); - $status = mkdir($dir, 0777, true); - restore_error_handler(); - if (false === $status) { - throw new \UnexpectedValueException(sprintf('There is no existing directory at "%s" and its not buildable: '.$this->errorMessage, $dir)); - } - } - $this->dirCreated = true; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php deleted file mode 100644 index 72f44a53..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; -use Swift; - -/** - * SwiftMailerHandler uses Swift_Mailer to send the emails - * - * @author Gyula Sallai - */ -class SwiftMailerHandler extends MailHandler -{ - protected $mailer; - private $messageTemplate; - - /** - * @param \Swift_Mailer $mailer The mailer to use - * @param callable|\Swift_Message $message An example message for real messages, only the body will be replaced - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(\Swift_Mailer $mailer, $message, $level = Logger::ERROR, $bubble = true) - { - parent::__construct($level, $bubble); - - $this->mailer = $mailer; - $this->messageTemplate = $message; - } - - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $this->mailer->send($this->buildMessage($content, $records)); - } - - /** - * Creates instance of Swift_Message to be sent - * - * @param string $content formatted email body to be sent - * @param array $records Log records that formed the content - * @return \Swift_Message - */ - protected function buildMessage($content, array $records) - { - $message = null; - if ($this->messageTemplate instanceof \Swift_Message) { - $message = clone $this->messageTemplate; - $message->generateId(); - } elseif (is_callable($this->messageTemplate)) { - $message = call_user_func($this->messageTemplate, $content, $records); - } - - if (!$message instanceof \Swift_Message) { - throw new \InvalidArgumentException('Could not resolve message as instance of Swift_Message or a callable returning it'); - } - - if ($records) { - $subjectFormatter = new LineFormatter($message->getSubject()); - $message->setSubject($subjectFormatter->format($this->getHighestRecord($records))); - } - - $message->setBody($content); - if (version_compare(Swift::VERSION, '6.0.0', '>=')) { - $message->setDate(new \DateTimeImmutable()); - } else { - $message->setDate(time()); - } - - return $message; - } - - /** - * BC getter, to be removed in 2.0 - */ - public function __get($name) - { - if ($name === 'message') { - trigger_error('SwiftMailerHandler->message is deprecated, use ->buildMessage() instead to retrieve the message', E_USER_DEPRECATED); - - return $this->buildMessage(null, array()); - } - - throw new \InvalidArgumentException('Invalid property '.$name); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php deleted file mode 100644 index 376bc3b2..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Logs to syslog service. - * - * usage example: - * - * $log = new Logger('application'); - * $syslog = new SyslogHandler('myfacility', 'local6'); - * $formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%"); - * $syslog->setFormatter($formatter); - * $log->pushHandler($syslog); - * - * @author Sven Paulus - */ -class SyslogHandler extends AbstractSyslogHandler -{ - protected $ident; - protected $logopts; - - /** - * @param string $ident - * @param mixed $facility - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param int $logopts Option flags for the openlog() call, defaults to LOG_PID - */ - public function __construct($ident, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $logopts = LOG_PID) - { - parent::__construct($facility, $level, $bubble); - - $this->ident = $ident; - $this->logopts = $logopts; - } - - /** - * {@inheritdoc} - */ - public function close() - { - closelog(); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (!openlog($this->ident, $this->logopts, $this->facility)) { - throw new \LogicException('Can\'t open syslog for ident "'.$this->ident.'" and facility "'.$this->facility.'"'); - } - syslog($this->logLevels[$record['level']], (string) $record['formatted']); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php deleted file mode 100644 index 3bff085b..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\SyslogUdp; - -class UdpSocket -{ - const DATAGRAM_MAX_LENGTH = 65023; - - protected $ip; - protected $port; - protected $socket; - - public function __construct($ip, $port = 514) - { - $this->ip = $ip; - $this->port = $port; - $this->socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); - } - - public function write($line, $header = "") - { - $this->send($this->assembleMessage($line, $header)); - } - - public function close() - { - if (is_resource($this->socket)) { - socket_close($this->socket); - $this->socket = null; - } - } - - protected function send($chunk) - { - if (!is_resource($this->socket)) { - throw new \LogicException('The UdpSocket to '.$this->ip.':'.$this->port.' has been closed and can not be written to anymore'); - } - socket_sendto($this->socket, $chunk, strlen($chunk), $flags = 0, $this->ip, $this->port); - } - - protected function assembleMessage($line, $header) - { - $chunkSize = self::DATAGRAM_MAX_LENGTH - strlen($header); - - return $header . substr($line, 0, $chunkSize); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php deleted file mode 100644 index 4718711b..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Handler\SyslogUdp\UdpSocket; - -/** - * A Handler for logging to a remote syslogd server. - * - * @author Jesper Skovgaard Nielsen - */ -class SyslogUdpHandler extends AbstractSyslogHandler -{ - protected $socket; - protected $ident; - - /** - * @param string $host - * @param int $port - * @param mixed $facility - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param string $ident Program name or tag for each log message. - */ - public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $ident = 'php') - { - parent::__construct($facility, $level, $bubble); - - $this->ident = $ident; - - $this->socket = new UdpSocket($host, $port ?: 514); - } - - protected function write(array $record) - { - $lines = $this->splitMessageIntoLines($record['formatted']); - - $header = $this->makeCommonSyslogHeader($this->logLevels[$record['level']]); - - foreach ($lines as $line) { - $this->socket->write($line, $header); - } - } - - public function close() - { - $this->socket->close(); - } - - private function splitMessageIntoLines($message) - { - if (is_array($message)) { - $message = implode("\n", $message); - } - - return preg_split('/$\R?^/m', $message, -1, PREG_SPLIT_NO_EMPTY); - } - - /** - * Make common syslog header (see rfc5424) - */ - protected function makeCommonSyslogHeader($severity) - { - $priority = $severity + $this->facility; - - if (!$pid = getmypid()) { - $pid = '-'; - } - - if (!$hostname = gethostname()) { - $hostname = '-'; - } - - return "<$priority>1 " . - $this->getDateTime() . " " . - $hostname . " " . - $this->ident . " " . - $pid . " - - "; - } - - protected function getDateTime() - { - return date(\DateTime::RFC3339); - } - - /** - * Inject your own socket, mainly used for testing - */ - public function setSocket($socket) - { - $this->socket = $socket; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php deleted file mode 100644 index e39cfc66..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php +++ /dev/null @@ -1,154 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Used for testing purposes. - * - * It records all records and gives you access to them for verification. - * - * @author Jordi Boggiano - * - * @method bool hasEmergency($record) - * @method bool hasAlert($record) - * @method bool hasCritical($record) - * @method bool hasError($record) - * @method bool hasWarning($record) - * @method bool hasNotice($record) - * @method bool hasInfo($record) - * @method bool hasDebug($record) - * - * @method bool hasEmergencyRecords() - * @method bool hasAlertRecords() - * @method bool hasCriticalRecords() - * @method bool hasErrorRecords() - * @method bool hasWarningRecords() - * @method bool hasNoticeRecords() - * @method bool hasInfoRecords() - * @method bool hasDebugRecords() - * - * @method bool hasEmergencyThatContains($message) - * @method bool hasAlertThatContains($message) - * @method bool hasCriticalThatContains($message) - * @method bool hasErrorThatContains($message) - * @method bool hasWarningThatContains($message) - * @method bool hasNoticeThatContains($message) - * @method bool hasInfoThatContains($message) - * @method bool hasDebugThatContains($message) - * - * @method bool hasEmergencyThatMatches($message) - * @method bool hasAlertThatMatches($message) - * @method bool hasCriticalThatMatches($message) - * @method bool hasErrorThatMatches($message) - * @method bool hasWarningThatMatches($message) - * @method bool hasNoticeThatMatches($message) - * @method bool hasInfoThatMatches($message) - * @method bool hasDebugThatMatches($message) - * - * @method bool hasEmergencyThatPasses($message) - * @method bool hasAlertThatPasses($message) - * @method bool hasCriticalThatPasses($message) - * @method bool hasErrorThatPasses($message) - * @method bool hasWarningThatPasses($message) - * @method bool hasNoticeThatPasses($message) - * @method bool hasInfoThatPasses($message) - * @method bool hasDebugThatPasses($message) - */ -class TestHandler extends AbstractProcessingHandler -{ - protected $records = array(); - protected $recordsByLevel = array(); - - public function getRecords() - { - return $this->records; - } - - public function clear() - { - $this->records = array(); - $this->recordsByLevel = array(); - } - - public function hasRecords($level) - { - return isset($this->recordsByLevel[$level]); - } - - public function hasRecord($record, $level) - { - if (is_array($record)) { - $record = $record['message']; - } - - return $this->hasRecordThatPasses(function ($rec) use ($record) { - return $rec['message'] === $record; - }, $level); - } - - public function hasRecordThatContains($message, $level) - { - return $this->hasRecordThatPasses(function ($rec) use ($message) { - return strpos($rec['message'], $message) !== false; - }, $level); - } - - public function hasRecordThatMatches($regex, $level) - { - return $this->hasRecordThatPasses(function ($rec) use ($regex) { - return preg_match($regex, $rec['message']) > 0; - }, $level); - } - - public function hasRecordThatPasses($predicate, $level) - { - if (!is_callable($predicate)) { - throw new \InvalidArgumentException("Expected a callable for hasRecordThatSucceeds"); - } - - if (!isset($this->recordsByLevel[$level])) { - return false; - } - - foreach ($this->recordsByLevel[$level] as $i => $rec) { - if (call_user_func($predicate, $rec, $i)) { - return true; - } - } - - return false; - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->recordsByLevel[$record['level']][] = $record; - $this->records[] = $record; - } - - public function __call($method, $args) - { - if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) { - $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3]; - $level = constant('Monolog\Logger::' . strtoupper($matches[2])); - if (method_exists($this, $genericMethod)) { - $args[] = $level; - - return call_user_func_array(array($this, $genericMethod), $args); - } - } - - throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()'); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php deleted file mode 100644 index 2732ba3d..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Forwards records to multiple handlers suppressing failures of each handler - * and continuing through to give every handler a chance to succeed. - * - * @author Craig D'Amelio - */ -class WhatFailureGroupHandler extends GroupHandler -{ - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - foreach ($this->handlers as $handler) { - try { - $handler->handle($record); - } catch (\Exception $e) { - // What failure? - } catch (\Throwable $e) { - // What failure? - } - } - - return false === $this->bubble; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - foreach ($this->handlers as $handler) { - try { - $handler->handleBatch($records); - } catch (\Exception $e) { - // What failure? - } catch (\Throwable $e) { - // What failure? - } - } - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php deleted file mode 100644 index f22cf218..00000000 --- a/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\NormalizerFormatter; -use Monolog\Logger; - -/** - * Handler sending logs to Zend Monitor - * - * @author Christian Bergau - */ -class ZendMonitorHandler extends AbstractProcessingHandler -{ - /** - * Monolog level / ZendMonitor Custom Event priority map - * - * @var array - */ - protected $levelMap = array( - Logger::DEBUG => 1, - Logger::INFO => 2, - Logger::NOTICE => 3, - Logger::WARNING => 4, - Logger::ERROR => 5, - Logger::CRITICAL => 6, - Logger::ALERT => 7, - Logger::EMERGENCY => 0, - ); - - /** - * Construct - * - * @param int $level - * @param bool $bubble - * @throws MissingExtensionException - */ - public function __construct($level = Logger::DEBUG, $bubble = true) - { - if (!function_exists('zend_monitor_custom_event')) { - throw new MissingExtensionException('You must have Zend Server installed in order to use this handler'); - } - parent::__construct($level, $bubble); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->writeZendMonitorCustomEvent( - $this->levelMap[$record['level']], - $record['message'], - $record['formatted'] - ); - } - - /** - * Write a record to Zend Monitor - * - * @param int $level - * @param string $message - * @param array $formatted - */ - protected function writeZendMonitorCustomEvent($level, $message, $formatted) - { - zend_monitor_custom_event($level, $message, $formatted); - } - - /** - * {@inheritdoc} - */ - public function getDefaultFormatter() - { - return new NormalizerFormatter(); - } - - /** - * Get the level map - * - * @return array - */ - public function getLevelMap() - { - return $this->levelMap; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Logger.php b/vendor/monolog/monolog/src/Monolog/Logger.php deleted file mode 100644 index 49d00af1..00000000 --- a/vendor/monolog/monolog/src/Monolog/Logger.php +++ /dev/null @@ -1,700 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Monolog\Handler\HandlerInterface; -use Monolog\Handler\StreamHandler; -use Psr\Log\LoggerInterface; -use Psr\Log\InvalidArgumentException; - -/** - * Monolog log channel - * - * It contains a stack of Handlers and a stack of Processors, - * and uses them to store records that are added to it. - * - * @author Jordi Boggiano - */ -class Logger implements LoggerInterface -{ - /** - * Detailed debug information - */ - const DEBUG = 100; - - /** - * Interesting events - * - * Examples: User logs in, SQL logs. - */ - const INFO = 200; - - /** - * Uncommon events - */ - const NOTICE = 250; - - /** - * Exceptional occurrences that are not errors - * - * Examples: Use of deprecated APIs, poor use of an API, - * undesirable things that are not necessarily wrong. - */ - const WARNING = 300; - - /** - * Runtime errors - */ - const ERROR = 400; - - /** - * Critical conditions - * - * Example: Application component unavailable, unexpected exception. - */ - const CRITICAL = 500; - - /** - * Action must be taken immediately - * - * Example: Entire website down, database unavailable, etc. - * This should trigger the SMS alerts and wake you up. - */ - const ALERT = 550; - - /** - * Urgent alert. - */ - const EMERGENCY = 600; - - /** - * Monolog API version - * - * This is only bumped when API breaks are done and should - * follow the major version of the library - * - * @var int - */ - const API = 1; - - /** - * Logging levels from syslog protocol defined in RFC 5424 - * - * @var array $levels Logging levels - */ - protected static $levels = array( - self::DEBUG => 'DEBUG', - self::INFO => 'INFO', - self::NOTICE => 'NOTICE', - self::WARNING => 'WARNING', - self::ERROR => 'ERROR', - self::CRITICAL => 'CRITICAL', - self::ALERT => 'ALERT', - self::EMERGENCY => 'EMERGENCY', - ); - - /** - * @var \DateTimeZone - */ - protected static $timezone; - - /** - * @var string - */ - protected $name; - - /** - * The handler stack - * - * @var HandlerInterface[] - */ - protected $handlers; - - /** - * Processors that will process all log records - * - * To process records of a single handler instead, add the processor on that specific handler - * - * @var callable[] - */ - protected $processors; - - /** - * @var bool - */ - protected $microsecondTimestamps = true; - - /** - * @param string $name The logging channel - * @param HandlerInterface[] $handlers Optional stack of handlers, the first one in the array is called first, etc. - * @param callable[] $processors Optional array of processors - */ - public function __construct($name, array $handlers = array(), array $processors = array()) - { - $this->name = $name; - $this->handlers = $handlers; - $this->processors = $processors; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Return a new cloned instance with the name changed - * - * @return static - */ - public function withName($name) - { - $new = clone $this; - $new->name = $name; - - return $new; - } - - /** - * Pushes a handler on to the stack. - * - * @param HandlerInterface $handler - * @return $this - */ - public function pushHandler(HandlerInterface $handler) - { - array_unshift($this->handlers, $handler); - - return $this; - } - - /** - * Pops a handler from the stack - * - * @return HandlerInterface - */ - public function popHandler() - { - if (!$this->handlers) { - throw new \LogicException('You tried to pop from an empty handler stack.'); - } - - return array_shift($this->handlers); - } - - /** - * Set handlers, replacing all existing ones. - * - * If a map is passed, keys will be ignored. - * - * @param HandlerInterface[] $handlers - * @return $this - */ - public function setHandlers(array $handlers) - { - $this->handlers = array(); - foreach (array_reverse($handlers) as $handler) { - $this->pushHandler($handler); - } - - return $this; - } - - /** - * @return HandlerInterface[] - */ - public function getHandlers() - { - return $this->handlers; - } - - /** - * Adds a processor on to the stack. - * - * @param callable $callback - * @return $this - */ - public function pushProcessor($callback) - { - if (!is_callable($callback)) { - throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given'); - } - array_unshift($this->processors, $callback); - - return $this; - } - - /** - * Removes the processor on top of the stack and returns it. - * - * @return callable - */ - public function popProcessor() - { - if (!$this->processors) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - - return array_shift($this->processors); - } - - /** - * @return callable[] - */ - public function getProcessors() - { - return $this->processors; - } - - /** - * Control the use of microsecond resolution timestamps in the 'datetime' - * member of new records. - * - * Generating microsecond resolution timestamps by calling - * microtime(true), formatting the result via sprintf() and then parsing - * the resulting string via \DateTime::createFromFormat() can incur - * a measurable runtime overhead vs simple usage of DateTime to capture - * a second resolution timestamp in systems which generate a large number - * of log events. - * - * @param bool $micro True to use microtime() to create timestamps - */ - public function useMicrosecondTimestamps($micro) - { - $this->microsecondTimestamps = (bool) $micro; - } - - /** - * Adds a log record. - * - * @param int $level The logging level - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addRecord($level, $message, array $context = array()) - { - if (!$this->handlers) { - $this->pushHandler(new StreamHandler('php://stderr', static::DEBUG)); - } - - $levelName = static::getLevelName($level); - - // check if any handler will handle this message so we can return early and save cycles - $handlerKey = null; - reset($this->handlers); - while ($handler = current($this->handlers)) { - if ($handler->isHandling(array('level' => $level))) { - $handlerKey = key($this->handlers); - break; - } - - next($this->handlers); - } - - if (null === $handlerKey) { - return false; - } - - if (!static::$timezone) { - static::$timezone = new \DateTimeZone(date_default_timezone_get() ?: 'UTC'); - } - - // php7.1+ always has microseconds enabled, so we do not need this hack - if ($this->microsecondTimestamps && PHP_VERSION_ID < 70100) { - $ts = \DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true)), static::$timezone); - } else { - $ts = new \DateTime(null, static::$timezone); - } - $ts->setTimezone(static::$timezone); - - $record = array( - 'message' => (string) $message, - 'context' => $context, - 'level' => $level, - 'level_name' => $levelName, - 'channel' => $this->name, - 'datetime' => $ts, - 'extra' => array(), - ); - - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - - while ($handler = current($this->handlers)) { - if (true === $handler->handle($record)) { - break; - } - - next($this->handlers); - } - - return true; - } - - /** - * Adds a log record at the DEBUG level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addDebug($message, array $context = array()) - { - return $this->addRecord(static::DEBUG, $message, $context); - } - - /** - * Adds a log record at the INFO level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addInfo($message, array $context = array()) - { - return $this->addRecord(static::INFO, $message, $context); - } - - /** - * Adds a log record at the NOTICE level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addNotice($message, array $context = array()) - { - return $this->addRecord(static::NOTICE, $message, $context); - } - - /** - * Adds a log record at the WARNING level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addWarning($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - - /** - * Adds a log record at the ERROR level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addError($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - - /** - * Adds a log record at the CRITICAL level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addCritical($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - - /** - * Adds a log record at the ALERT level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addAlert($message, array $context = array()) - { - return $this->addRecord(static::ALERT, $message, $context); - } - - /** - * Adds a log record at the EMERGENCY level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addEmergency($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } - - /** - * Gets all supported logging levels. - * - * @return array Assoc array with human-readable level names => level codes. - */ - public static function getLevels() - { - return array_flip(static::$levels); - } - - /** - * Gets the name of the logging level. - * - * @param int $level - * @return string - */ - public static function getLevelName($level) - { - if (!isset(static::$levels[$level])) { - throw new InvalidArgumentException('Level "'.$level.'" is not defined, use one of: '.implode(', ', array_keys(static::$levels))); - } - - return static::$levels[$level]; - } - - /** - * Converts PSR-3 levels to Monolog ones if necessary - * - * @param string|int Level number (monolog) or name (PSR-3) - * @return int - */ - public static function toMonologLevel($level) - { - if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) { - return constant(__CLASS__.'::'.strtoupper($level)); - } - - return $level; - } - - /** - * Checks whether the Logger has a handler that listens on the given level - * - * @param int $level - * @return Boolean - */ - public function isHandling($level) - { - $record = array( - 'level' => $level, - ); - - foreach ($this->handlers as $handler) { - if ($handler->isHandling($record)) { - return true; - } - } - - return false; - } - - /** - * Adds a log record at an arbitrary level. - * - * This method allows for compatibility with common interfaces. - * - * @param mixed $level The log level - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function log($level, $message, array $context = array()) - { - $level = static::toMonologLevel($level); - - return $this->addRecord($level, $message, $context); - } - - /** - * Adds a log record at the DEBUG level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function debug($message, array $context = array()) - { - return $this->addRecord(static::DEBUG, $message, $context); - } - - /** - * Adds a log record at the INFO level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function info($message, array $context = array()) - { - return $this->addRecord(static::INFO, $message, $context); - } - - /** - * Adds a log record at the NOTICE level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function notice($message, array $context = array()) - { - return $this->addRecord(static::NOTICE, $message, $context); - } - - /** - * Adds a log record at the WARNING level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function warn($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - - /** - * Adds a log record at the WARNING level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function warning($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - - /** - * Adds a log record at the ERROR level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function err($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - - /** - * Adds a log record at the ERROR level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function error($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - - /** - * Adds a log record at the CRITICAL level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function crit($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - - /** - * Adds a log record at the CRITICAL level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function critical($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - - /** - * Adds a log record at the ALERT level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function alert($message, array $context = array()) - { - return $this->addRecord(static::ALERT, $message, $context); - } - - /** - * Adds a log record at the EMERGENCY level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function emerg($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } - - /** - * Adds a log record at the EMERGENCY level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function emergency($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } - - /** - * Set the timezone to be used for the timestamp of log records. - * - * This is stored globally for all Logger instances - * - * @param \DateTimeZone $tz Timezone object - */ - public static function setTimezone(\DateTimeZone $tz) - { - self::$timezone = $tz; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php deleted file mode 100644 index 1899400d..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Logger; - -/** - * Injects Git branch and Git commit SHA in all records - * - * @author Nick Otter - * @author Jordi Boggiano - */ -class GitProcessor -{ - private $level; - private static $cache; - - public function __construct($level = Logger::DEBUG) - { - $this->level = Logger::toMonologLevel($level); - } - - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - - $record['extra']['git'] = self::getGitInfo(); - - return $record; - } - - private static function getGitInfo() - { - if (self::$cache) { - return self::$cache; - } - - $branches = `git branch -v --no-abbrev`; - if (preg_match('{^\* (.+?)\s+([a-f0-9]{40})(?:\s|$)}m', $branches, $matches)) { - return self::$cache = array( - 'branch' => $matches[1], - 'commit' => $matches[2], - ); - } - - return self::$cache = array(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php deleted file mode 100644 index 2c07caed..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php +++ /dev/null @@ -1,112 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Logger; - -/** - * Injects line/file:class/function where the log message came from - * - * Warning: This only works if the handler processes the logs directly. - * If you put the processor on a handler that is behind a FingersCrossedHandler - * for example, the processor will only be called once the trigger level is reached, - * and all the log records will have the same file/line/.. data from the call that - * triggered the FingersCrossedHandler. - * - * @author Jordi Boggiano - */ -class IntrospectionProcessor -{ - private $level; - - private $skipClassesPartials; - - private $skipStackFramesCount; - - private $skipFunctions = array( - 'call_user_func', - 'call_user_func_array', - ); - - public function __construct($level = Logger::DEBUG, array $skipClassesPartials = array(), $skipStackFramesCount = 0) - { - $this->level = Logger::toMonologLevel($level); - $this->skipClassesPartials = array_merge(array('Monolog\\'), $skipClassesPartials); - $this->skipStackFramesCount = $skipStackFramesCount; - } - - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - - /* - * http://php.net/manual/en/function.debug-backtrace.php - * As of 5.3.6, DEBUG_BACKTRACE_IGNORE_ARGS option was added. - * Any version less than 5.3.6 must use the DEBUG_BACKTRACE_IGNORE_ARGS constant value '2'. - */ - $trace = debug_backtrace((PHP_VERSION_ID < 50306) ? 2 : DEBUG_BACKTRACE_IGNORE_ARGS); - - // skip first since it's always the current method - array_shift($trace); - // the call_user_func call is also skipped - array_shift($trace); - - $i = 0; - - while ($this->isTraceClassOrSkippedFunction($trace, $i)) { - if (isset($trace[$i]['class'])) { - foreach ($this->skipClassesPartials as $part) { - if (strpos($trace[$i]['class'], $part) !== false) { - $i++; - continue 2; - } - } - } elseif (in_array($trace[$i]['function'], $this->skipFunctions)) { - $i++; - continue; - } - - break; - } - - $i += $this->skipStackFramesCount; - - // we should have the call source now - $record['extra'] = array_merge( - $record['extra'], - array( - 'file' => isset($trace[$i - 1]['file']) ? $trace[$i - 1]['file'] : null, - 'line' => isset($trace[$i - 1]['line']) ? $trace[$i - 1]['line'] : null, - 'class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : null, - 'function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : null, - ) - ); - - return $record; - } - - private function isTraceClassOrSkippedFunction(array $trace, $index) - { - if (!isset($trace[$index])) { - return false; - } - - return isset($trace[$index]['class']) || in_array($trace[$index]['function'], $this->skipFunctions); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php deleted file mode 100644 index 0543e929..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Injects memory_get_peak_usage in all records - * - * @see Monolog\Processor\MemoryProcessor::__construct() for options - * @author Rob Jensen - */ -class MemoryPeakUsageProcessor extends MemoryProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $bytes = memory_get_peak_usage($this->realUsage); - $formatted = $this->formatBytes($bytes); - - $record['extra']['memory_peak_usage'] = $formatted; - - return $record; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php deleted file mode 100644 index 85f9dc5e..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Some methods that are common for all memory processors - * - * @author Rob Jensen - */ -abstract class MemoryProcessor -{ - /** - * @var bool If true, get the real size of memory allocated from system. Else, only the memory used by emalloc() is reported. - */ - protected $realUsage; - - /** - * @var bool If true, then format memory size to human readable string (MB, KB, B depending on size) - */ - protected $useFormatting; - - /** - * @param bool $realUsage Set this to true to get the real size of memory allocated from system. - * @param bool $useFormatting If true, then format memory size to human readable string (MB, KB, B depending on size) - */ - public function __construct($realUsage = true, $useFormatting = true) - { - $this->realUsage = (boolean) $realUsage; - $this->useFormatting = (boolean) $useFormatting; - } - - /** - * Formats bytes into a human readable string if $this->useFormatting is true, otherwise return $bytes as is - * - * @param int $bytes - * @return string|int Formatted string if $this->useFormatting is true, otherwise return $bytes as is - */ - protected function formatBytes($bytes) - { - $bytes = (int) $bytes; - - if (!$this->useFormatting) { - return $bytes; - } - - if ($bytes > 1024 * 1024) { - return round($bytes / 1024 / 1024, 2).' MB'; - } elseif ($bytes > 1024) { - return round($bytes / 1024, 2).' KB'; - } - - return $bytes . ' B'; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php deleted file mode 100644 index 2783d656..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Injects memory_get_usage in all records - * - * @see Monolog\Processor\MemoryProcessor::__construct() for options - * @author Rob Jensen - */ -class MemoryUsageProcessor extends MemoryProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $bytes = memory_get_usage($this->realUsage); - $formatted = $this->formatBytes($bytes); - - $record['extra']['memory_usage'] = $formatted; - - return $record; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php deleted file mode 100644 index 7c07a7e9..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Logger; - -/** - * Injects Hg branch and Hg revision number in all records - * - * @author Jonathan A. Schweder - */ -class MercurialProcessor -{ - private $level; - private static $cache; - - public function __construct($level = Logger::DEBUG) - { - $this->level = Logger::toMonologLevel($level); - } - - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - - $record['extra']['hg'] = self::getMercurialInfo(); - - return $record; - } - - private static function getMercurialInfo() - { - if (self::$cache) { - return self::$cache; - } - - $result = explode(' ', trim(`hg id -nb`)); - if (count($result) >= 3) { - return self::$cache = array( - 'branch' => $result[1], - 'revision' => $result[2], - ); - } - - return self::$cache = array(); - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php deleted file mode 100644 index 9d3f5590..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Adds value of getmypid into records - * - * @author Andreas Hörnicke - */ -class ProcessIdProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $record['extra']['process_id'] = getmypid(); - - return $record; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php deleted file mode 100644 index c2686ce5..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Processes a record's message according to PSR-3 rules - * - * It replaces {foo} with the value from $context['foo'] - * - * @author Jordi Boggiano - */ -class PsrLogMessageProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - if (false === strpos($record['message'], '{')) { - return $record; - } - - $replacements = array(); - foreach ($record['context'] as $key => $val) { - if (is_null($val) || is_scalar($val) || (is_object($val) && method_exists($val, "__toString"))) { - $replacements['{'.$key.'}'] = $val; - } elseif (is_object($val)) { - $replacements['{'.$key.'}'] = '[object '.get_class($val).']'; - } else { - $replacements['{'.$key.'}'] = '['.gettype($val).']'; - } - } - - $record['message'] = strtr($record['message'], $replacements); - - return $record; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php deleted file mode 100644 index 7e2df2ac..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Adds a tags array into record - * - * @author Martijn Riemers - */ -class TagProcessor -{ - private $tags; - - public function __construct(array $tags = array()) - { - $this->setTags($tags); - } - - public function addTags(array $tags = array()) - { - $this->tags = array_merge($this->tags, $tags); - } - - public function setTags(array $tags = array()) - { - $this->tags = $tags; - } - - public function __invoke(array $record) - { - $record['extra']['tags'] = $this->tags; - - return $record; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php deleted file mode 100644 index 812707cd..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Adds a unique identifier into records - * - * @author Simon Mönch - */ -class UidProcessor -{ - private $uid; - - public function __construct($length = 7) - { - if (!is_int($length) || $length > 32 || $length < 1) { - throw new \InvalidArgumentException('The uid length must be an integer between 1 and 32'); - } - - $this->uid = substr(hash('md5', uniqid('', true)), 0, $length); - } - - public function __invoke(array $record) - { - $record['extra']['uid'] = $this->uid; - - return $record; - } - - /** - * @return string - */ - public function getUid() - { - return $this->uid; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php deleted file mode 100644 index ea1d8978..00000000 --- a/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Injects url/method and remote IP of the current web request in all records - * - * @author Jordi Boggiano - */ -class WebProcessor -{ - /** - * @var array|\ArrayAccess - */ - protected $serverData; - - /** - * Default fields - * - * Array is structured as [key in record.extra => key in $serverData] - * - * @var array - */ - protected $extraFields = array( - 'url' => 'REQUEST_URI', - 'ip' => 'REMOTE_ADDR', - 'http_method' => 'REQUEST_METHOD', - 'server' => 'SERVER_NAME', - 'referrer' => 'HTTP_REFERER', - ); - - /** - * @param array|\ArrayAccess $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data - * @param array|null $extraFields Field names and the related key inside $serverData to be added. If not provided it defaults to: url, ip, http_method, server, referrer - */ - public function __construct($serverData = null, array $extraFields = null) - { - if (null === $serverData) { - $this->serverData = &$_SERVER; - } elseif (is_array($serverData) || $serverData instanceof \ArrayAccess) { - $this->serverData = $serverData; - } else { - throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.'); - } - - if (null !== $extraFields) { - if (isset($extraFields[0])) { - foreach (array_keys($this->extraFields) as $fieldName) { - if (!in_array($fieldName, $extraFields)) { - unset($this->extraFields[$fieldName]); - } - } - } else { - $this->extraFields = $extraFields; - } - } - } - - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // skip processing if for some reason request data - // is not present (CLI or wonky SAPIs) - if (!isset($this->serverData['REQUEST_URI'])) { - return $record; - } - - $record['extra'] = $this->appendExtraFields($record['extra']); - - return $record; - } - - /** - * @param string $extraName - * @param string $serverName - * @return $this - */ - public function addExtraField($extraName, $serverName) - { - $this->extraFields[$extraName] = $serverName; - - return $this; - } - - /** - * @param array $extra - * @return array - */ - private function appendExtraFields(array $extra) - { - foreach ($this->extraFields as $extraName => $serverName) { - $extra[$extraName] = isset($this->serverData[$serverName]) ? $this->serverData[$serverName] : null; - } - - if (isset($this->serverData['UNIQUE_ID'])) { - $extra['unique_id'] = $this->serverData['UNIQUE_ID']; - } - - return $extra; - } -} diff --git a/vendor/monolog/monolog/src/Monolog/Registry.php b/vendor/monolog/monolog/src/Monolog/Registry.php deleted file mode 100644 index 159b751c..00000000 --- a/vendor/monolog/monolog/src/Monolog/Registry.php +++ /dev/null @@ -1,134 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use InvalidArgumentException; - -/** - * Monolog log registry - * - * Allows to get `Logger` instances in the global scope - * via static method calls on this class. - * - * - * $application = new Monolog\Logger('application'); - * $api = new Monolog\Logger('api'); - * - * Monolog\Registry::addLogger($application); - * Monolog\Registry::addLogger($api); - * - * function testLogger() - * { - * Monolog\Registry::api()->addError('Sent to $api Logger instance'); - * Monolog\Registry::application()->addError('Sent to $application Logger instance'); - * } - * - * - * @author Tomas Tatarko - */ -class Registry -{ - /** - * List of all loggers in the registry (by named indexes) - * - * @var Logger[] - */ - private static $loggers = array(); - - /** - * Adds new logging channel to the registry - * - * @param Logger $logger Instance of the logging channel - * @param string|null $name Name of the logging channel ($logger->getName() by default) - * @param bool $overwrite Overwrite instance in the registry if the given name already exists? - * @throws \InvalidArgumentException If $overwrite set to false and named Logger instance already exists - */ - public static function addLogger(Logger $logger, $name = null, $overwrite = false) - { - $name = $name ?: $logger->getName(); - - if (isset(self::$loggers[$name]) && !$overwrite) { - throw new InvalidArgumentException('Logger with the given name already exists'); - } - - self::$loggers[$name] = $logger; - } - - /** - * Checks if such logging channel exists by name or instance - * - * @param string|Logger $logger Name or logger instance - */ - public static function hasLogger($logger) - { - if ($logger instanceof Logger) { - $index = array_search($logger, self::$loggers, true); - - return false !== $index; - } else { - return isset(self::$loggers[$logger]); - } - } - - /** - * Removes instance from registry by name or instance - * - * @param string|Logger $logger Name or logger instance - */ - public static function removeLogger($logger) - { - if ($logger instanceof Logger) { - if (false !== ($idx = array_search($logger, self::$loggers, true))) { - unset(self::$loggers[$idx]); - } - } else { - unset(self::$loggers[$logger]); - } - } - - /** - * Clears the registry - */ - public static function clear() - { - self::$loggers = array(); - } - - /** - * Gets Logger instance from the registry - * - * @param string $name Name of the requested Logger instance - * @throws \InvalidArgumentException If named Logger instance is not in the registry - * @return Logger Requested instance of Logger - */ - public static function getInstance($name) - { - if (!isset(self::$loggers[$name])) { - throw new InvalidArgumentException(sprintf('Requested "%s" logger instance is not in the registry', $name)); - } - - return self::$loggers[$name]; - } - - /** - * Gets Logger instance from the registry via static method call - * - * @param string $name Name of the requested Logger instance - * @param array $arguments Arguments passed to static method call - * @throws \InvalidArgumentException If named Logger instance is not in the registry - * @return Logger Requested instance of Logger - */ - public static function __callStatic($name, $arguments) - { - return self::getInstance($name); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php deleted file mode 100644 index a9a3f301..00000000 --- a/vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Monolog\Handler\TestHandler; - -class ErrorHandlerTest extends \PHPUnit_Framework_TestCase -{ - public function testHandleError() - { - $logger = new Logger('test', array($handler = new TestHandler)); - $errHandler = new ErrorHandler($logger); - - $errHandler->registerErrorHandler(array(E_USER_NOTICE => Logger::EMERGENCY), false); - trigger_error('Foo', E_USER_ERROR); - $this->assertCount(1, $handler->getRecords()); - $this->assertTrue($handler->hasErrorRecords()); - trigger_error('Foo', E_USER_NOTICE); - $this->assertCount(2, $handler->getRecords()); - $this->assertTrue($handler->hasEmergencyRecords()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php deleted file mode 100644 index 71c42046..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php +++ /dev/null @@ -1,158 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -class ChromePHPFormatterTest extends \PHPUnit_Framework_TestCase -{ - /** - * @covers Monolog\Formatter\ChromePHPFormatter::format - */ - public function testDefaultFormat() - { - $formatter = new ChromePHPFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('ip' => '127.0.0.1'), - 'message' => 'log', - ); - - $message = $formatter->format($record); - - $this->assertEquals( - array( - 'meh', - array( - 'message' => 'log', - 'context' => array('from' => 'logger'), - 'extra' => array('ip' => '127.0.0.1'), - ), - 'unknown', - 'error', - ), - $message - ); - } - - /** - * @covers Monolog\Formatter\ChromePHPFormatter::format - */ - public function testFormatWithFileAndLine() - { - $formatter = new ChromePHPFormatter(); - $record = array( - 'level' => Logger::CRITICAL, - 'level_name' => 'CRITICAL', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('ip' => '127.0.0.1', 'file' => 'test', 'line' => 14), - 'message' => 'log', - ); - - $message = $formatter->format($record); - - $this->assertEquals( - array( - 'meh', - array( - 'message' => 'log', - 'context' => array('from' => 'logger'), - 'extra' => array('ip' => '127.0.0.1'), - ), - 'test : 14', - 'error', - ), - $message - ); - } - - /** - * @covers Monolog\Formatter\ChromePHPFormatter::format - */ - public function testFormatWithoutContext() - { - $formatter = new ChromePHPFormatter(); - $record = array( - 'level' => Logger::DEBUG, - 'level_name' => 'DEBUG', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $message = $formatter->format($record); - - $this->assertEquals( - array( - 'meh', - 'log', - 'unknown', - 'log', - ), - $message - ); - } - - /** - * @covers Monolog\Formatter\ChromePHPFormatter::formatBatch - */ - public function testBatchFormatThrowException() - { - $formatter = new ChromePHPFormatter(); - $records = array( - array( - 'level' => Logger::INFO, - 'level_name' => 'INFO', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ), - array( - 'level' => Logger::WARNING, - 'level_name' => 'WARNING', - 'channel' => 'foo', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log2', - ), - ); - - $this->assertEquals( - array( - array( - 'meh', - 'log', - 'unknown', - 'info', - ), - array( - 'foo', - 'log2', - 'unknown', - 'warn', - ), - ), - $formatter->formatBatch($records) - ); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php deleted file mode 100644 index 90cc48dd..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php +++ /dev/null @@ -1,79 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -class ElasticaFormatterTest extends \PHPUnit_Framework_TestCase -{ - public function setUp() - { - if (!class_exists("Elastica\Document")) { - $this->markTestSkipped("ruflin/elastica not installed"); - } - } - - /** - * @covers Monolog\Formatter\ElasticaFormatter::__construct - * @covers Monolog\Formatter\ElasticaFormatter::format - * @covers Monolog\Formatter\ElasticaFormatter::getDocument - */ - public function testFormat() - { - // test log message - $msg = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - // expected values - $expected = $msg; - $expected['datetime'] = '1970-01-01T00:00:00.000000+00:00'; - $expected['context'] = array( - 'class' => '[object] (stdClass: {})', - 'foo' => 7, - 0 => 'bar', - ); - - // format log message - $formatter = new ElasticaFormatter('my_index', 'doc_type'); - $doc = $formatter->format($msg); - $this->assertInstanceOf('Elastica\Document', $doc); - - // Document parameters - $params = $doc->getParams(); - $this->assertEquals('my_index', $params['_index']); - $this->assertEquals('doc_type', $params['_type']); - - // Document data values - $data = $doc->getData(); - foreach (array_keys($expected) as $key) { - $this->assertEquals($expected[$key], $data[$key]); - } - } - - /** - * @covers Monolog\Formatter\ElasticaFormatter::getIndex - * @covers Monolog\Formatter\ElasticaFormatter::getType - */ - public function testGetters() - { - $formatter = new ElasticaFormatter('my_index', 'doc_type'); - $this->assertEquals('my_index', $formatter->getIndex()); - $this->assertEquals('doc_type', $formatter->getType()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php deleted file mode 100644 index 1b2fd97a..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; -use Monolog\TestCase; - -class FlowdockFormatterTest extends TestCase -{ - /** - * @covers Monolog\Formatter\FlowdockFormatter::format - */ - public function testFormat() - { - $formatter = new FlowdockFormatter('test_source', 'source@test.com'); - $record = $this->getRecord(); - - $expected = array( - 'source' => 'test_source', - 'from_address' => 'source@test.com', - 'subject' => 'in test_source: WARNING - test', - 'content' => 'test', - 'tags' => array('#logs', '#warning', '#test'), - 'project' => 'test_source', - ); - $formatted = $formatter->format($record); - - $this->assertEquals($expected, $formatted['flowdock']); - } - - /** - * @ covers Monolog\Formatter\FlowdockFormatter::formatBatch - */ - public function testFormatBatch() - { - $formatter = new FlowdockFormatter('test_source', 'source@test.com'); - $records = array( - $this->getRecord(Logger::WARNING), - $this->getRecord(Logger::DEBUG), - ); - $formatted = $formatter->formatBatch($records); - - $this->assertArrayHasKey('flowdock', $formatted[0]); - $this->assertArrayHasKey('flowdock', $formatted[1]); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php deleted file mode 100644 index 622b2bae..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; -use Monolog\TestCase; - -class FluentdFormatterTest extends TestCase -{ - /** - * @covers Monolog\Formatter\FluentdFormatter::__construct - * @covers Monolog\Formatter\FluentdFormatter::isUsingLevelsInTag - */ - public function testConstruct() - { - $formatter = new FluentdFormatter(); - $this->assertEquals(false, $formatter->isUsingLevelsInTag()); - $formatter = new FluentdFormatter(false); - $this->assertEquals(false, $formatter->isUsingLevelsInTag()); - $formatter = new FluentdFormatter(true); - $this->assertEquals(true, $formatter->isUsingLevelsInTag()); - } - - /** - * @covers Monolog\Formatter\FluentdFormatter::format - */ - public function testFormat() - { - $record = $this->getRecord(Logger::WARNING); - $record['datetime'] = new \DateTime("@0"); - - $formatter = new FluentdFormatter(); - $this->assertEquals( - '["test",0,{"message":"test","extra":[],"level":300,"level_name":"WARNING"}]', - $formatter->format($record) - ); - } - - /** - * @covers Monolog\Formatter\FluentdFormatter::format - */ - public function testFormatWithTag() - { - $record = $this->getRecord(Logger::ERROR); - $record['datetime'] = new \DateTime("@0"); - - $formatter = new FluentdFormatter(true); - $this->assertEquals( - '["test.error",0,{"message":"test","extra":[]}]', - $formatter->format($record) - ); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php deleted file mode 100644 index 4a247616..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php +++ /dev/null @@ -1,258 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase -{ - public function setUp() - { - if (!class_exists('\Gelf\Message')) { - $this->markTestSkipped("graylog2/gelf-php or mlehner/gelf-php is not installed"); - } - } - - /** - * @covers Monolog\Formatter\GelfMessageFormatter::format - */ - public function testDefaultFormatter() - { - $formatter = new GelfMessageFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $message = $formatter->format($record); - - $this->assertInstanceOf('Gelf\Message', $message); - $this->assertEquals(0, $message->getTimestamp()); - $this->assertEquals('log', $message->getShortMessage()); - $this->assertEquals('meh', $message->getFacility()); - $this->assertEquals(null, $message->getLine()); - $this->assertEquals(null, $message->getFile()); - $this->assertEquals($this->isLegacy() ? 3 : 'error', $message->getLevel()); - $this->assertNotEmpty($message->getHost()); - - $formatter = new GelfMessageFormatter('mysystem'); - - $message = $formatter->format($record); - - $this->assertInstanceOf('Gelf\Message', $message); - $this->assertEquals('mysystem', $message->getHost()); - } - - /** - * @covers Monolog\Formatter\GelfMessageFormatter::format - */ - public function testFormatWithFileAndLine() - { - $formatter = new GelfMessageFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('file' => 'test', 'line' => 14), - 'message' => 'log', - ); - - $message = $formatter->format($record); - - $this->assertInstanceOf('Gelf\Message', $message); - $this->assertEquals('test', $message->getFile()); - $this->assertEquals(14, $message->getLine()); - } - - /** - * @covers Monolog\Formatter\GelfMessageFormatter::format - * @expectedException InvalidArgumentException - */ - public function testFormatInvalidFails() - { - $formatter = new GelfMessageFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - ); - - $formatter->format($record); - } - - /** - * @covers Monolog\Formatter\GelfMessageFormatter::format - */ - public function testFormatWithContext() - { - $formatter = new GelfMessageFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = $formatter->format($record); - - $this->assertInstanceOf('Gelf\Message', $message); - - $message_array = $message->toArray(); - - $this->assertArrayHasKey('_ctxt_from', $message_array); - $this->assertEquals('logger', $message_array['_ctxt_from']); - - // Test with extraPrefix - $formatter = new GelfMessageFormatter(null, null, 'CTX'); - $message = $formatter->format($record); - - $this->assertInstanceOf('Gelf\Message', $message); - - $message_array = $message->toArray(); - - $this->assertArrayHasKey('_CTXfrom', $message_array); - $this->assertEquals('logger', $message_array['_CTXfrom']); - } - - /** - * @covers Monolog\Formatter\GelfMessageFormatter::format - */ - public function testFormatWithContextContainingException() - { - $formatter = new GelfMessageFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger', 'exception' => array( - 'class' => '\Exception', - 'file' => '/some/file/in/dir.php:56', - 'trace' => array('/some/file/1.php:23', '/some/file/2.php:3'), - )), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $message = $formatter->format($record); - - $this->assertInstanceOf('Gelf\Message', $message); - - $this->assertEquals("/some/file/in/dir.php", $message->getFile()); - $this->assertEquals("56", $message->getLine()); - } - - /** - * @covers Monolog\Formatter\GelfMessageFormatter::format - */ - public function testFormatWithExtra() - { - $formatter = new GelfMessageFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = $formatter->format($record); - - $this->assertInstanceOf('Gelf\Message', $message); - - $message_array = $message->toArray(); - - $this->assertArrayHasKey('_key', $message_array); - $this->assertEquals('pair', $message_array['_key']); - - // Test with extraPrefix - $formatter = new GelfMessageFormatter(null, 'EXT'); - $message = $formatter->format($record); - - $this->assertInstanceOf('Gelf\Message', $message); - - $message_array = $message->toArray(); - - $this->assertArrayHasKey('_EXTkey', $message_array); - $this->assertEquals('pair', $message_array['_EXTkey']); - } - - public function testFormatWithLargeData() - { - $formatter = new GelfMessageFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('exception' => str_repeat(' ', 32767)), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => str_repeat(' ', 32767)), - 'message' => 'log' - ); - $message = $formatter->format($record); - $messageArray = $message->toArray(); - - // 200 for padding + metadata - $length = 200; - - foreach ($messageArray as $key => $value) { - if (!in_array($key, array('level', 'timestamp'))) { - $length += strlen($value); - } - } - - $this->assertLessThanOrEqual(65792, $length, 'The message length is no longer than the maximum allowed length'); - } - - public function testFormatWithUnlimitedLength() - { - $formatter = new GelfMessageFormatter('LONG_SYSTEM_NAME', null, 'ctxt_', PHP_INT_MAX); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('exception' => str_repeat(' ', 32767 * 2)), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => str_repeat(' ', 32767 * 2)), - 'message' => 'log' - ); - $message = $formatter->format($record); - $messageArray = $message->toArray(); - - // 200 for padding + metadata - $length = 200; - - foreach ($messageArray as $key => $value) { - if (!in_array($key, array('level', 'timestamp'))) { - $length += strlen($value); - } - } - - $this->assertGreaterThanOrEqual(131289, $length, 'The message should not be truncated'); - } - - private function isLegacy() - { - return interface_exists('\Gelf\IMessagePublisher'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php deleted file mode 100644 index c9445f36..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php +++ /dev/null @@ -1,183 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; -use Monolog\TestCase; - -class JsonFormatterTest extends TestCase -{ - /** - * @covers Monolog\Formatter\JsonFormatter::__construct - * @covers Monolog\Formatter\JsonFormatter::getBatchMode - * @covers Monolog\Formatter\JsonFormatter::isAppendingNewlines - */ - public function testConstruct() - { - $formatter = new JsonFormatter(); - $this->assertEquals(JsonFormatter::BATCH_MODE_JSON, $formatter->getBatchMode()); - $this->assertEquals(true, $formatter->isAppendingNewlines()); - $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_NEWLINES, false); - $this->assertEquals(JsonFormatter::BATCH_MODE_NEWLINES, $formatter->getBatchMode()); - $this->assertEquals(false, $formatter->isAppendingNewlines()); - } - - /** - * @covers Monolog\Formatter\JsonFormatter::format - */ - public function testFormat() - { - $formatter = new JsonFormatter(); - $record = $this->getRecord(); - $this->assertEquals(json_encode($record)."\n", $formatter->format($record)); - - $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); - $record = $this->getRecord(); - $this->assertEquals(json_encode($record), $formatter->format($record)); - } - - /** - * @covers Monolog\Formatter\JsonFormatter::formatBatch - * @covers Monolog\Formatter\JsonFormatter::formatBatchJson - */ - public function testFormatBatch() - { - $formatter = new JsonFormatter(); - $records = array( - $this->getRecord(Logger::WARNING), - $this->getRecord(Logger::DEBUG), - ); - $this->assertEquals(json_encode($records), $formatter->formatBatch($records)); - } - - /** - * @covers Monolog\Formatter\JsonFormatter::formatBatch - * @covers Monolog\Formatter\JsonFormatter::formatBatchNewlines - */ - public function testFormatBatchNewlines() - { - $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_NEWLINES); - $records = $expected = array( - $this->getRecord(Logger::WARNING), - $this->getRecord(Logger::DEBUG), - ); - array_walk($expected, function (&$value, $key) { - $value = json_encode($value); - }); - $this->assertEquals(implode("\n", $expected), $formatter->formatBatch($records)); - } - - public function testDefFormatWithException() - { - $formatter = new JsonFormatter(); - $exception = new \RuntimeException('Foo'); - $formattedException = $this->formatException($exception); - - $message = $this->formatRecordWithExceptionInContext($formatter, $exception); - - $this->assertContextContainsFormattedException($formattedException, $message); - } - - public function testDefFormatWithPreviousException() - { - $formatter = new JsonFormatter(); - $exception = new \RuntimeException('Foo', 0, new \LogicException('Wut?')); - $formattedPrevException = $this->formatException($exception->getPrevious()); - $formattedException = $this->formatException($exception, $formattedPrevException); - - $message = $this->formatRecordWithExceptionInContext($formatter, $exception); - - $this->assertContextContainsFormattedException($formattedException, $message); - } - - public function testDefFormatWithThrowable() - { - if (!class_exists('Error') || !is_subclass_of('Error', 'Throwable')) { - $this->markTestSkipped('Requires PHP >=7'); - } - - $formatter = new JsonFormatter(); - $throwable = new \Error('Foo'); - $formattedThrowable = $this->formatException($throwable); - - $message = $this->formatRecordWithExceptionInContext($formatter, $throwable); - - $this->assertContextContainsFormattedException($formattedThrowable, $message); - } - - /** - * @param string $expected - * @param string $actual - * - * @internal param string $exception - */ - private function assertContextContainsFormattedException($expected, $actual) - { - $this->assertEquals( - '{"level_name":"CRITICAL","channel":"core","context":{"exception":'.$expected.'},"datetime":null,"extra":[],"message":"foobar"}'."\n", - $actual - ); - } - - /** - * @param JsonFormatter $formatter - * @param \Exception|\Throwable $exception - * - * @return string - */ - private function formatRecordWithExceptionInContext(JsonFormatter $formatter, $exception) - { - $message = $formatter->format(array( - 'level_name' => 'CRITICAL', - 'channel' => 'core', - 'context' => array('exception' => $exception), - 'datetime' => null, - 'extra' => array(), - 'message' => 'foobar', - )); - return $message; - } - - /** - * @param \Exception|\Throwable $exception - * - * @return string - */ - private function formatExceptionFilePathWithLine($exception) - { - $options = 0; - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - $options = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE; - } - $path = substr(json_encode($exception->getFile(), $options), 1, -1); - return $path . ':' . $exception->getLine(); - } - - /** - * @param \Exception|\Throwable $exception - * - * @param null|string $previous - * - * @return string - */ - private function formatException($exception, $previous = null) - { - $formattedException = - '{"class":"' . get_class($exception) . - '","message":"' . $exception->getMessage() . - '","code":' . $exception->getCode() . - ',"file":"' . $this->formatExceptionFilePathWithLine($exception) . - ($previous ? '","previous":' . $previous : '"') . - '}'; - return $formattedException; - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php deleted file mode 100644 index 310d93ca..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php +++ /dev/null @@ -1,222 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * @covers Monolog\Formatter\LineFormatter - */ -class LineFormatterTest extends \PHPUnit_Framework_TestCase -{ - public function testDefFormatWithString() - { - $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( - 'level_name' => 'WARNING', - 'channel' => 'log', - 'context' => array(), - 'message' => 'foo', - 'datetime' => new \DateTime, - 'extra' => array(), - )); - $this->assertEquals('['.date('Y-m-d').'] log.WARNING: foo [] []'."\n", $message); - } - - public function testDefFormatWithArrayContext() - { - $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'message' => 'foo', - 'datetime' => new \DateTime, - 'extra' => array(), - 'context' => array( - 'foo' => 'bar', - 'baz' => 'qux', - 'bool' => false, - 'null' => null, - ), - )); - $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foo {"foo":"bar","baz":"qux","bool":false,"null":null} []'."\n", $message); - } - - public function testDefFormatExtras() - { - $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array('ip' => '127.0.0.1'), - 'message' => 'log', - )); - $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log [] {"ip":"127.0.0.1"}'."\n", $message); - } - - public function testFormatExtras() - { - $formatter = new LineFormatter("[%datetime%] %channel%.%level_name%: %message% %context% %extra.file% %extra%\n", 'Y-m-d'); - $message = $formatter->format(array( - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array('ip' => '127.0.0.1', 'file' => 'test'), - 'message' => 'log', - )); - $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log [] test {"ip":"127.0.0.1"}'."\n", $message); - } - - public function testContextAndExtraOptionallyNotShownIfEmpty() - { - $formatter = new LineFormatter(null, 'Y-m-d', false, true); - $message = $formatter->format(array( - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - 'message' => 'log', - )); - $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log '."\n", $message); - } - - public function testContextAndExtraReplacement() - { - $formatter = new LineFormatter('%context.foo% => %extra.foo%'); - $message = $formatter->format(array( - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('foo' => 'bar'), - 'datetime' => new \DateTime, - 'extra' => array('foo' => 'xbar'), - 'message' => 'log', - )); - $this->assertEquals('bar => xbar', $message); - } - - public function testDefFormatWithObject() - { - $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array('foo' => new TestFoo, 'bar' => new TestBar, 'baz' => array(), 'res' => fopen('php://memory', 'rb')), - 'message' => 'foobar', - )); - - $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\\\Formatter\\\\TestFoo: {\\"foo\\":\\"foo\\"})","bar":"[object] (Monolog\\\\Formatter\\\\TestBar: bar)","baz":[],"res":"[resource] (stream)"}'."\n", $message); - } - - public function testDefFormatWithException() - { - $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( - 'level_name' => 'CRITICAL', - 'channel' => 'core', - 'context' => array('exception' => new \RuntimeException('Foo')), - 'datetime' => new \DateTime, - 'extra' => array(), - 'message' => 'foobar', - )); - - $path = str_replace('\\/', '/', json_encode(__FILE__)); - - $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).')"} []'."\n", $message); - } - - public function testDefFormatWithPreviousException() - { - $formatter = new LineFormatter(null, 'Y-m-d'); - $previous = new \LogicException('Wut?'); - $message = $formatter->format(array( - 'level_name' => 'CRITICAL', - 'channel' => 'core', - 'context' => array('exception' => new \RuntimeException('Foo', 0, $previous)), - 'datetime' => new \DateTime, - 'extra' => array(), - 'message' => 'foobar', - )); - - $path = str_replace('\\/', '/', json_encode(__FILE__)); - - $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).', LogicException(code: 0): Wut? at '.substr($path, 1, -1).':'.(__LINE__ - 12).')"} []'."\n", $message); - } - - public function testBatchFormat() - { - $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->formatBatch(array( - array( - 'level_name' => 'CRITICAL', - 'channel' => 'test', - 'message' => 'bar', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - ), - array( - 'level_name' => 'WARNING', - 'channel' => 'log', - 'message' => 'foo', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - ), - )); - $this->assertEquals('['.date('Y-m-d').'] test.CRITICAL: bar [] []'."\n".'['.date('Y-m-d').'] log.WARNING: foo [] []'."\n", $message); - } - - public function testFormatShouldStripInlineLineBreaks() - { - $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format( - array( - 'message' => "foo\nbar", - 'context' => array(), - 'extra' => array(), - ) - ); - - $this->assertRegExp('/foo bar/', $message); - } - - public function testFormatShouldNotStripInlineLineBreaksWhenFlagIsSet() - { - $formatter = new LineFormatter(null, 'Y-m-d', true); - $message = $formatter->format( - array( - 'message' => "foo\nbar", - 'context' => array(), - 'extra' => array(), - ) - ); - - $this->assertRegExp('/foo\nbar/', $message); - } -} - -class TestFoo -{ - public $foo = 'foo'; -} - -class TestBar -{ - public function __toString() - { - return 'bar'; - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php deleted file mode 100644 index 6d59b3f3..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\TestCase; - -class LogglyFormatterTest extends TestCase -{ - /** - * @covers Monolog\Formatter\LogglyFormatter::__construct - */ - public function testConstruct() - { - $formatter = new LogglyFormatter(); - $this->assertEquals(LogglyFormatter::BATCH_MODE_NEWLINES, $formatter->getBatchMode()); - $formatter = new LogglyFormatter(LogglyFormatter::BATCH_MODE_JSON); - $this->assertEquals(LogglyFormatter::BATCH_MODE_JSON, $formatter->getBatchMode()); - } - - /** - * @covers Monolog\Formatter\LogglyFormatter::format - */ - public function testFormat() - { - $formatter = new LogglyFormatter(); - $record = $this->getRecord(); - $formatted_decoded = json_decode($formatter->format($record), true); - $this->assertArrayHasKey("timestamp", $formatted_decoded); - $this->assertEquals(new \DateTime($formatted_decoded["timestamp"]), $record["datetime"]); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php deleted file mode 100644 index 9f6b1cc4..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php +++ /dev/null @@ -1,333 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -class LogstashFormatterTest extends \PHPUnit_Framework_TestCase -{ - public function tearDown() - { - \PHPUnit_Framework_Error_Warning::$enabled = true; - - return parent::tearDown(); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testDefaultFormatter() - { - $formatter = new LogstashFormatter('test', 'hostname'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); - $this->assertEquals('log', $message['@message']); - $this->assertEquals('meh', $message['@fields']['channel']); - $this->assertContains('meh', $message['@tags']); - $this->assertEquals(Logger::ERROR, $message['@fields']['level']); - $this->assertEquals('test', $message['@type']); - $this->assertEquals('hostname', $message['@source']); - - $formatter = new LogstashFormatter('mysystem'); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals('mysystem', $message['@type']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithFileAndLine() - { - $formatter = new LogstashFormatter('test'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('file' => 'test', 'line' => 14), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals('test', $message['@fields']['file']); - $this->assertEquals(14, $message['@fields']['line']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithContext() - { - $formatter = new LogstashFormatter('test'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $message_array = $message['@fields']; - - $this->assertArrayHasKey('ctxt_from', $message_array); - $this->assertEquals('logger', $message_array['ctxt_from']); - - // Test with extraPrefix - $formatter = new LogstashFormatter('test', null, null, 'CTX'); - $message = json_decode($formatter->format($record), true); - - $message_array = $message['@fields']; - - $this->assertArrayHasKey('CTXfrom', $message_array); - $this->assertEquals('logger', $message_array['CTXfrom']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithExtra() - { - $formatter = new LogstashFormatter('test'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $message_array = $message['@fields']; - - $this->assertArrayHasKey('key', $message_array); - $this->assertEquals('pair', $message_array['key']); - - // Test with extraPrefix - $formatter = new LogstashFormatter('test', null, 'EXT'); - $message = json_decode($formatter->format($record), true); - - $message_array = $message['@fields']; - - $this->assertArrayHasKey('EXTkey', $message_array); - $this->assertEquals('pair', $message_array['EXTkey']); - } - - public function testFormatWithApplicationName() - { - $formatter = new LogstashFormatter('app', 'test'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertArrayHasKey('@type', $message); - $this->assertEquals('app', $message['@type']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testDefaultFormatterV1() - { - $formatter = new LogstashFormatter('test', 'hostname', null, 'ctxt_', LogstashFormatter::V1); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); - $this->assertEquals("1", $message['@version']); - $this->assertEquals('log', $message['message']); - $this->assertEquals('meh', $message['channel']); - $this->assertEquals('ERROR', $message['level']); - $this->assertEquals('test', $message['type']); - $this->assertEquals('hostname', $message['host']); - - $formatter = new LogstashFormatter('mysystem', null, null, 'ctxt_', LogstashFormatter::V1); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals('mysystem', $message['type']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithFileAndLineV1() - { - $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('file' => 'test', 'line' => 14), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals('test', $message['file']); - $this->assertEquals(14, $message['line']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithContextV1() - { - $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertArrayHasKey('ctxt_from', $message); - $this->assertEquals('logger', $message['ctxt_from']); - - // Test with extraPrefix - $formatter = new LogstashFormatter('test', null, null, 'CTX', LogstashFormatter::V1); - $message = json_decode($formatter->format($record), true); - - $this->assertArrayHasKey('CTXfrom', $message); - $this->assertEquals('logger', $message['CTXfrom']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithExtraV1() - { - $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertArrayHasKey('key', $message); - $this->assertEquals('pair', $message['key']); - - // Test with extraPrefix - $formatter = new LogstashFormatter('test', null, 'EXT', 'ctxt_', LogstashFormatter::V1); - $message = json_decode($formatter->format($record), true); - - $this->assertArrayHasKey('EXTkey', $message); - $this->assertEquals('pair', $message['EXTkey']); - } - - public function testFormatWithApplicationNameV1() - { - $formatter = new LogstashFormatter('app', 'test', null, 'ctxt_', LogstashFormatter::V1); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertArrayHasKey('type', $message); - $this->assertEquals('app', $message['type']); - } - - public function testFormatWithLatin9Data() - { - if (version_compare(PHP_VERSION, '5.5.0', '<')) { - // Ignore the warning that will be emitted by PHP <5.5.0 - \PHPUnit_Framework_Error_Warning::$enabled = false; - } - $formatter = new LogstashFormatter('test', 'hostname'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => '¯\_(ツ)_/¯', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array( - 'user_agent' => "\xD6WN; FBCR/OrangeEspa\xF1a; Vers\xE3o/4.0; F\xE4rist", - ), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); - $this->assertEquals('log', $message['@message']); - $this->assertEquals('¯\_(ツ)_/¯', $message['@fields']['channel']); - $this->assertContains('¯\_(ツ)_/¯', $message['@tags']); - $this->assertEquals(Logger::ERROR, $message['@fields']['level']); - $this->assertEquals('test', $message['@type']); - $this->assertEquals('hostname', $message['@source']); - if (version_compare(PHP_VERSION, '5.5.0', '>=')) { - $this->assertEquals('ÖWN; FBCR/OrangeEspaña; Versão/4.0; Färist', $message['@fields']['user_agent']); - } else { - // PHP <5.5 does not return false for an element encoding failure, - // instead it emits a warning (possibly) and nulls the value. - $this->assertEquals(null, $message['@fields']['user_agent']); - } - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php deleted file mode 100644 index 52e699e0..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php +++ /dev/null @@ -1,262 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -/** - * @author Florian Plattner - */ -class MongoDBFormatterTest extends \PHPUnit_Framework_TestCase -{ - public function setUp() - { - if (!class_exists('MongoDate')) { - $this->markTestSkipped('mongo extension not installed'); - } - } - - public function constructArgumentProvider() - { - return array( - array(1, true, 1, true), - array(0, false, 0, false), - ); - } - - /** - * @param $traceDepth - * @param $traceAsString - * @param $expectedTraceDepth - * @param $expectedTraceAsString - * - * @dataProvider constructArgumentProvider - */ - public function testConstruct($traceDepth, $traceAsString, $expectedTraceDepth, $expectedTraceAsString) - { - $formatter = new MongoDBFormatter($traceDepth, $traceAsString); - - $reflTrace = new \ReflectionProperty($formatter, 'exceptionTraceAsString'); - $reflTrace->setAccessible(true); - $this->assertEquals($expectedTraceAsString, $reflTrace->getValue($formatter)); - - $reflDepth = new\ReflectionProperty($formatter, 'maxNestingLevel'); - $reflDepth->setAccessible(true); - $this->assertEquals($expectedTraceDepth, $reflDepth->getValue($formatter)); - } - - public function testSimpleFormat() - { - $record = array( - 'message' => 'some log message', - 'context' => array(), - 'level' => Logger::WARNING, - 'level_name' => Logger::getLevelName(Logger::WARNING), - 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); - - $formatter = new MongoDBFormatter(); - $formattedRecord = $formatter->format($record); - - $this->assertCount(7, $formattedRecord); - $this->assertEquals('some log message', $formattedRecord['message']); - $this->assertEquals(array(), $formattedRecord['context']); - $this->assertEquals(Logger::WARNING, $formattedRecord['level']); - $this->assertEquals(Logger::getLevelName(Logger::WARNING), $formattedRecord['level_name']); - $this->assertEquals('test', $formattedRecord['channel']); - $this->assertInstanceOf('\MongoDate', $formattedRecord['datetime']); - $this->assertEquals('0.00000000 1391212800', $formattedRecord['datetime']->__toString()); - $this->assertEquals(array(), $formattedRecord['extra']); - } - - public function testRecursiveFormat() - { - $someObject = new \stdClass(); - $someObject->foo = 'something'; - $someObject->bar = 'stuff'; - - $record = array( - 'message' => 'some log message', - 'context' => array( - 'stuff' => new \DateTime('2014-02-01 02:31:33'), - 'some_object' => $someObject, - 'context_string' => 'some string', - 'context_int' => 123456, - 'except' => new \Exception('exception message', 987), - ), - 'level' => Logger::WARNING, - 'level_name' => Logger::getLevelName(Logger::WARNING), - 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); - - $formatter = new MongoDBFormatter(); - $formattedRecord = $formatter->format($record); - - $this->assertCount(5, $formattedRecord['context']); - $this->assertInstanceOf('\MongoDate', $formattedRecord['context']['stuff']); - $this->assertEquals('0.00000000 1391221893', $formattedRecord['context']['stuff']->__toString()); - $this->assertEquals( - array( - 'foo' => 'something', - 'bar' => 'stuff', - 'class' => 'stdClass', - ), - $formattedRecord['context']['some_object'] - ); - $this->assertEquals('some string', $formattedRecord['context']['context_string']); - $this->assertEquals(123456, $formattedRecord['context']['context_int']); - - $this->assertCount(5, $formattedRecord['context']['except']); - $this->assertEquals('exception message', $formattedRecord['context']['except']['message']); - $this->assertEquals(987, $formattedRecord['context']['except']['code']); - $this->assertInternalType('string', $formattedRecord['context']['except']['file']); - $this->assertInternalType('integer', $formattedRecord['context']['except']['code']); - $this->assertInternalType('string', $formattedRecord['context']['except']['trace']); - $this->assertEquals('Exception', $formattedRecord['context']['except']['class']); - } - - public function testFormatDepthArray() - { - $record = array( - 'message' => 'some log message', - 'context' => array( - 'nest2' => array( - 'property' => 'anything', - 'nest3' => array( - 'nest4' => 'value', - 'property' => 'nothing', - ), - ), - ), - 'level' => Logger::WARNING, - 'level_name' => Logger::getLevelName(Logger::WARNING), - 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); - - $formatter = new MongoDBFormatter(2); - $formattedResult = $formatter->format($record); - - $this->assertEquals( - array( - 'nest2' => array( - 'property' => 'anything', - 'nest3' => '[...]', - ), - ), - $formattedResult['context'] - ); - } - - public function testFormatDepthArrayInfiniteNesting() - { - $record = array( - 'message' => 'some log message', - 'context' => array( - 'nest2' => array( - 'property' => 'something', - 'nest3' => array( - 'property' => 'anything', - 'nest4' => array( - 'property' => 'nothing', - ), - ), - ), - ), - 'level' => Logger::WARNING, - 'level_name' => Logger::getLevelName(Logger::WARNING), - 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); - - $formatter = new MongoDBFormatter(0); - $formattedResult = $formatter->format($record); - - $this->assertEquals( - array( - 'nest2' => array( - 'property' => 'something', - 'nest3' => array( - 'property' => 'anything', - 'nest4' => array( - 'property' => 'nothing', - ), - ), - ), - ), - $formattedResult['context'] - ); - } - - public function testFormatDepthObjects() - { - $someObject = new \stdClass(); - $someObject->property = 'anything'; - $someObject->nest3 = new \stdClass(); - $someObject->nest3->property = 'nothing'; - $someObject->nest3->nest4 = 'invisible'; - - $record = array( - 'message' => 'some log message', - 'context' => array( - 'nest2' => $someObject, - ), - 'level' => Logger::WARNING, - 'level_name' => Logger::getLevelName(Logger::WARNING), - 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); - - $formatter = new MongoDBFormatter(2, true); - $formattedResult = $formatter->format($record); - - $this->assertEquals( - array( - 'nest2' => array( - 'property' => 'anything', - 'nest3' => '[...]', - 'class' => 'stdClass', - ), - ), - $formattedResult['context'] - ); - } - - public function testFormatDepthException() - { - $record = array( - 'message' => 'some log message', - 'context' => array( - 'nest2' => new \Exception('exception message', 987), - ), - 'level' => Logger::WARNING, - 'level_name' => Logger::getLevelName(Logger::WARNING), - 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); - - $formatter = new MongoDBFormatter(2, false); - $formattedRecord = $formatter->format($record); - - $this->assertEquals('exception message', $formattedRecord['context']['nest2']['message']); - $this->assertEquals(987, $formattedRecord['context']['nest2']['code']); - $this->assertEquals('[...]', $formattedRecord['context']['nest2']['trace']); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php deleted file mode 100644 index 57bcdf98..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php +++ /dev/null @@ -1,423 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * @covers Monolog\Formatter\NormalizerFormatter - */ -class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase -{ - public function tearDown() - { - \PHPUnit_Framework_Error_Warning::$enabled = true; - - return parent::tearDown(); - } - - public function testFormat() - { - $formatter = new NormalizerFormatter('Y-m-d'); - $formatted = $formatter->format(array( - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'message' => 'foo', - 'datetime' => new \DateTime, - 'extra' => array('foo' => new TestFooNorm, 'bar' => new TestBarNorm, 'baz' => array(), 'res' => fopen('php://memory', 'rb')), - 'context' => array( - 'foo' => 'bar', - 'baz' => 'qux', - 'inf' => INF, - '-inf' => -INF, - 'nan' => acos(4), - ), - )); - - $this->assertEquals(array( - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'message' => 'foo', - 'datetime' => date('Y-m-d'), - 'extra' => array( - 'foo' => '[object] (Monolog\\Formatter\\TestFooNorm: {"foo":"foo"})', - 'bar' => '[object] (Monolog\\Formatter\\TestBarNorm: bar)', - 'baz' => array(), - 'res' => '[resource] (stream)', - ), - 'context' => array( - 'foo' => 'bar', - 'baz' => 'qux', - 'inf' => 'INF', - '-inf' => '-INF', - 'nan' => 'NaN', - ), - ), $formatted); - } - - public function testFormatExceptions() - { - $formatter = new NormalizerFormatter('Y-m-d'); - $e = new \LogicException('bar'); - $e2 = new \RuntimeException('foo', 0, $e); - $formatted = $formatter->format(array( - 'exception' => $e2, - )); - - $this->assertGreaterThan(5, count($formatted['exception']['trace'])); - $this->assertTrue(isset($formatted['exception']['previous'])); - unset($formatted['exception']['trace'], $formatted['exception']['previous']); - - $this->assertEquals(array( - 'exception' => array( - 'class' => get_class($e2), - 'message' => $e2->getMessage(), - 'code' => $e2->getCode(), - 'file' => $e2->getFile().':'.$e2->getLine(), - ), - ), $formatted); - } - - public function testFormatSoapFaultException() - { - if (!class_exists('SoapFault')) { - $this->markTestSkipped('Requires the soap extension'); - } - - $formatter = new NormalizerFormatter('Y-m-d'); - $e = new \SoapFault('foo', 'bar', 'hello', 'world'); - $formatted = $formatter->format(array( - 'exception' => $e, - )); - - unset($formatted['exception']['trace']); - - $this->assertEquals(array( - 'exception' => array( - 'class' => 'SoapFault', - 'message' => 'bar', - 'code' => 0, - 'file' => $e->getFile().':'.$e->getLine(), - 'faultcode' => 'foo', - 'faultactor' => 'hello', - 'detail' => 'world', - ), - ), $formatted); - } - - public function testFormatToStringExceptionHandle() - { - $formatter = new NormalizerFormatter('Y-m-d'); - $this->setExpectedException('RuntimeException', 'Could not convert to string'); - $formatter->format(array( - 'myObject' => new TestToStringError(), - )); - } - - public function testBatchFormat() - { - $formatter = new NormalizerFormatter('Y-m-d'); - $formatted = $formatter->formatBatch(array( - array( - 'level_name' => 'CRITICAL', - 'channel' => 'test', - 'message' => 'bar', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - ), - array( - 'level_name' => 'WARNING', - 'channel' => 'log', - 'message' => 'foo', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - ), - )); - $this->assertEquals(array( - array( - 'level_name' => 'CRITICAL', - 'channel' => 'test', - 'message' => 'bar', - 'context' => array(), - 'datetime' => date('Y-m-d'), - 'extra' => array(), - ), - array( - 'level_name' => 'WARNING', - 'channel' => 'log', - 'message' => 'foo', - 'context' => array(), - 'datetime' => date('Y-m-d'), - 'extra' => array(), - ), - ), $formatted); - } - - /** - * Test issue #137 - */ - public function testIgnoresRecursiveObjectReferences() - { - // set up the recursion - $foo = new \stdClass(); - $bar = new \stdClass(); - - $foo->bar = $bar; - $bar->foo = $foo; - - // set an error handler to assert that the error is not raised anymore - $that = $this; - set_error_handler(function ($level, $message, $file, $line, $context) use ($that) { - if (error_reporting() & $level) { - restore_error_handler(); - $that->fail("$message should not be raised"); - } - }); - - $formatter = new NormalizerFormatter(); - $reflMethod = new \ReflectionMethod($formatter, 'toJson'); - $reflMethod->setAccessible(true); - $res = $reflMethod->invoke($formatter, array($foo, $bar), true); - - restore_error_handler(); - - $this->assertEquals(@json_encode(array($foo, $bar)), $res); - } - - public function testIgnoresInvalidTypes() - { - // set up the recursion - $resource = fopen(__FILE__, 'r'); - - // set an error handler to assert that the error is not raised anymore - $that = $this; - set_error_handler(function ($level, $message, $file, $line, $context) use ($that) { - if (error_reporting() & $level) { - restore_error_handler(); - $that->fail("$message should not be raised"); - } - }); - - $formatter = new NormalizerFormatter(); - $reflMethod = new \ReflectionMethod($formatter, 'toJson'); - $reflMethod->setAccessible(true); - $res = $reflMethod->invoke($formatter, array($resource), true); - - restore_error_handler(); - - $this->assertEquals(@json_encode(array($resource)), $res); - } - - public function testNormalizeHandleLargeArrays() - { - $formatter = new NormalizerFormatter(); - $largeArray = range(1, 2000); - - $res = $formatter->format(array( - 'level_name' => 'CRITICAL', - 'channel' => 'test', - 'message' => 'bar', - 'context' => array($largeArray), - 'datetime' => new \DateTime, - 'extra' => array(), - )); - - $this->assertCount(1000, $res['context'][0]); - $this->assertEquals('Over 1000 items (2000 total), aborting normalization', $res['context'][0]['...']); - } - - /** - * @expectedException RuntimeException - */ - public function testThrowsOnInvalidEncoding() - { - if (version_compare(PHP_VERSION, '5.5.0', '<')) { - // Ignore the warning that will be emitted by PHP <5.5.0 - \PHPUnit_Framework_Error_Warning::$enabled = false; - } - $formatter = new NormalizerFormatter(); - $reflMethod = new \ReflectionMethod($formatter, 'toJson'); - $reflMethod->setAccessible(true); - - // send an invalid unicode sequence as a object that can't be cleaned - $record = new \stdClass; - $record->message = "\xB1\x31"; - $res = $reflMethod->invoke($formatter, $record); - if (PHP_VERSION_ID < 50500 && $res === '{"message":null}') { - throw new \RuntimeException('PHP 5.3/5.4 throw a warning and null the value instead of returning false entirely'); - } - } - - public function testConvertsInvalidEncodingAsLatin9() - { - if (version_compare(PHP_VERSION, '5.5.0', '<')) { - // Ignore the warning that will be emitted by PHP <5.5.0 - \PHPUnit_Framework_Error_Warning::$enabled = false; - } - $formatter = new NormalizerFormatter(); - $reflMethod = new \ReflectionMethod($formatter, 'toJson'); - $reflMethod->setAccessible(true); - - $res = $reflMethod->invoke($formatter, array('message' => "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE")); - - if (version_compare(PHP_VERSION, '5.5.0', '>=')) { - $this->assertSame('{"message":"€ŠšŽžŒœŸ"}', $res); - } else { - // PHP <5.5 does not return false for an element encoding failure, - // instead it emits a warning (possibly) and nulls the value. - $this->assertSame('{"message":null}', $res); - } - } - - /** - * @param mixed $in Input - * @param mixed $expect Expected output - * @covers Monolog\Formatter\NormalizerFormatter::detectAndCleanUtf8 - * @dataProvider providesDetectAndCleanUtf8 - */ - public function testDetectAndCleanUtf8($in, $expect) - { - $formatter = new NormalizerFormatter(); - $formatter->detectAndCleanUtf8($in); - $this->assertSame($expect, $in); - } - - public function providesDetectAndCleanUtf8() - { - $obj = new \stdClass; - - return array( - 'null' => array(null, null), - 'int' => array(123, 123), - 'float' => array(123.45, 123.45), - 'bool false' => array(false, false), - 'bool true' => array(true, true), - 'ascii string' => array('abcdef', 'abcdef'), - 'latin9 string' => array("\xB1\x31\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE\xFF", '±1€ŠšŽžŒœŸÿ'), - 'unicode string' => array('¤¦¨´¸¼½¾€ŠšŽžŒœŸ', '¤¦¨´¸¼½¾€ŠšŽžŒœŸ'), - 'empty array' => array(array(), array()), - 'array' => array(array('abcdef'), array('abcdef')), - 'object' => array($obj, $obj), - ); - } - - /** - * @param int $code - * @param string $msg - * @dataProvider providesHandleJsonErrorFailure - */ - public function testHandleJsonErrorFailure($code, $msg) - { - $formatter = new NormalizerFormatter(); - $reflMethod = new \ReflectionMethod($formatter, 'handleJsonError'); - $reflMethod->setAccessible(true); - - $this->setExpectedException('RuntimeException', $msg); - $reflMethod->invoke($formatter, $code, 'faked'); - } - - public function providesHandleJsonErrorFailure() - { - return array( - 'depth' => array(JSON_ERROR_DEPTH, 'Maximum stack depth exceeded'), - 'state' => array(JSON_ERROR_STATE_MISMATCH, 'Underflow or the modes mismatch'), - 'ctrl' => array(JSON_ERROR_CTRL_CHAR, 'Unexpected control character found'), - 'default' => array(-1, 'Unknown error'), - ); - } - - public function testExceptionTraceWithArgs() - { - if (defined('HHVM_VERSION')) { - $this->markTestSkipped('Not supported in HHVM since it detects errors differently'); - } - - // This happens i.e. in React promises or Guzzle streams where stream wrappers are registered - // and no file or line are included in the trace because it's treated as internal function - set_error_handler(function ($errno, $errstr, $errfile, $errline) { - throw new \ErrorException($errstr, 0, $errno, $errfile, $errline); - }); - - try { - // This will contain $resource and $wrappedResource as arguments in the trace item - $resource = fopen('php://memory', 'rw+'); - fwrite($resource, 'test_resource'); - $wrappedResource = new TestFooNorm; - $wrappedResource->foo = $resource; - // Just do something stupid with a resource/wrapped resource as argument - array_keys($wrappedResource); - } catch (\Exception $e) { - restore_error_handler(); - } - - $formatter = new NormalizerFormatter(); - $record = array('context' => array('exception' => $e)); - $result = $formatter->format($record); - - $this->assertRegExp( - '%"resource":"\[resource\] \(stream\)"%', - $result['context']['exception']['trace'][0] - ); - - if (version_compare(PHP_VERSION, '5.5.0', '>=')) { - $pattern = '%"wrappedResource":"\[object\] \(Monolog\\\\\\\\Formatter\\\\\\\\TestFooNorm: \)"%'; - } else { - $pattern = '%\\\\"foo\\\\":null%'; - } - - // Tests that the wrapped resource is ignored while encoding, only works for PHP <= 5.4 - $this->assertRegExp( - $pattern, - $result['context']['exception']['trace'][0] - ); - } -} - -class TestFooNorm -{ - public $foo = 'foo'; -} - -class TestBarNorm -{ - public function __toString() - { - return 'bar'; - } -} - -class TestStreamFoo -{ - public $foo; - public $resource; - - public function __construct($resource) - { - $this->resource = $resource; - $this->foo = 'BAR'; - } - - public function __toString() - { - fseek($this->resource, 0); - - return $this->foo . ' - ' . (string) stream_get_contents($this->resource); - } -} - -class TestToStringError -{ - public function __toString() - { - throw new \RuntimeException('Could not convert to string'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php deleted file mode 100644 index b1c8fd49..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php +++ /dev/null @@ -1,110 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -class ScalarFormatterTest extends \PHPUnit_Framework_TestCase -{ - private $formatter; - - public function setUp() - { - $this->formatter = new ScalarFormatter(); - } - - public function buildTrace(\Exception $e) - { - $data = array(); - $trace = $e->getTrace(); - foreach ($trace as $frame) { - if (isset($frame['file'])) { - $data[] = $frame['file'].':'.$frame['line']; - } else { - $data[] = json_encode($frame); - } - } - - return $data; - } - - public function encodeJson($data) - { - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - return json_encode($data); - } - - public function testFormat() - { - $exception = new \Exception('foo'); - $formatted = $this->formatter->format(array( - 'foo' => 'string', - 'bar' => 1, - 'baz' => false, - 'bam' => array(1, 2, 3), - 'bat' => array('foo' => 'bar'), - 'bap' => \DateTime::createFromFormat(\DateTime::ISO8601, '1970-01-01T00:00:00+0000'), - 'ban' => $exception, - )); - - $this->assertSame(array( - 'foo' => 'string', - 'bar' => 1, - 'baz' => false, - 'bam' => $this->encodeJson(array(1, 2, 3)), - 'bat' => $this->encodeJson(array('foo' => 'bar')), - 'bap' => '1970-01-01 00:00:00', - 'ban' => $this->encodeJson(array( - 'class' => get_class($exception), - 'message' => $exception->getMessage(), - 'code' => $exception->getCode(), - 'file' => $exception->getFile() . ':' . $exception->getLine(), - 'trace' => $this->buildTrace($exception), - )), - ), $formatted); - } - - public function testFormatWithErrorContext() - { - $context = array('file' => 'foo', 'line' => 1); - $formatted = $this->formatter->format(array( - 'context' => $context, - )); - - $this->assertSame(array( - 'context' => $this->encodeJson($context), - ), $formatted); - } - - public function testFormatWithExceptionContext() - { - $exception = new \Exception('foo'); - $formatted = $this->formatter->format(array( - 'context' => array( - 'exception' => $exception, - ), - )); - - $this->assertSame(array( - 'context' => $this->encodeJson(array( - 'exception' => array( - 'class' => get_class($exception), - 'message' => $exception->getMessage(), - 'code' => $exception->getCode(), - 'file' => $exception->getFile() . ':' . $exception->getLine(), - 'trace' => $this->buildTrace($exception), - ), - )), - ), $formatted); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php deleted file mode 100644 index 52f15a36..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php +++ /dev/null @@ -1,142 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -class WildfireFormatterTest extends \PHPUnit_Framework_TestCase -{ - /** - * @covers Monolog\Formatter\WildfireFormatter::format - */ - public function testDefaultFormat() - { - $wildfire = new WildfireFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('ip' => '127.0.0.1'), - 'message' => 'log', - ); - - $message = $wildfire->format($record); - - $this->assertEquals( - '125|[{"Type":"ERROR","File":"","Line":"","Label":"meh"},' - .'{"message":"log","context":{"from":"logger"},"extra":{"ip":"127.0.0.1"}}]|', - $message - ); - } - - /** - * @covers Monolog\Formatter\WildfireFormatter::format - */ - public function testFormatWithFileAndLine() - { - $wildfire = new WildfireFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('ip' => '127.0.0.1', 'file' => 'test', 'line' => 14), - 'message' => 'log', - ); - - $message = $wildfire->format($record); - - $this->assertEquals( - '129|[{"Type":"ERROR","File":"test","Line":14,"Label":"meh"},' - .'{"message":"log","context":{"from":"logger"},"extra":{"ip":"127.0.0.1"}}]|', - $message - ); - } - - /** - * @covers Monolog\Formatter\WildfireFormatter::format - */ - public function testFormatWithoutContext() - { - $wildfire = new WildfireFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $message = $wildfire->format($record); - - $this->assertEquals( - '58|[{"Type":"ERROR","File":"","Line":"","Label":"meh"},"log"]|', - $message - ); - } - - /** - * @covers Monolog\Formatter\WildfireFormatter::formatBatch - * @expectedException BadMethodCallException - */ - public function testBatchFormatThrowException() - { - $wildfire = new WildfireFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $wildfire->formatBatch(array($record)); - } - - /** - * @covers Monolog\Formatter\WildfireFormatter::format - */ - public function testTableFormat() - { - $wildfire = new WildfireFormatter(); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'table-channel', - 'context' => array( - WildfireFormatter::TABLE => array( - array('col1', 'col2', 'col3'), - array('val1', 'val2', 'val3'), - array('foo1', 'foo2', 'foo3'), - array('bar1', 'bar2', 'bar3'), - ), - ), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'table-message', - ); - - $message = $wildfire->format($record); - - $this->assertEquals( - '171|[{"Type":"TABLE","File":"","Line":"","Label":"table-channel: table-message"},[["col1","col2","col3"],["val1","val2","val3"],["foo1","foo2","foo3"],["bar1","bar2","bar3"]]]|', - $message - ); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php deleted file mode 100644 index 568eb9da..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; -use Monolog\Processor\WebProcessor; - -class AbstractHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\AbstractHandler::__construct - * @covers Monolog\Handler\AbstractHandler::getLevel - * @covers Monolog\Handler\AbstractHandler::setLevel - * @covers Monolog\Handler\AbstractHandler::getBubble - * @covers Monolog\Handler\AbstractHandler::setBubble - * @covers Monolog\Handler\AbstractHandler::getFormatter - * @covers Monolog\Handler\AbstractHandler::setFormatter - */ - public function testConstructAndGetSet() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array(Logger::WARNING, false)); - $this->assertEquals(Logger::WARNING, $handler->getLevel()); - $this->assertEquals(false, $handler->getBubble()); - - $handler->setLevel(Logger::ERROR); - $handler->setBubble(true); - $handler->setFormatter($formatter = new LineFormatter); - $this->assertEquals(Logger::ERROR, $handler->getLevel()); - $this->assertEquals(true, $handler->getBubble()); - $this->assertSame($formatter, $handler->getFormatter()); - } - - /** - * @covers Monolog\Handler\AbstractHandler::handleBatch - */ - public function testHandleBatch() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); - $handler->expects($this->exactly(2)) - ->method('handle'); - $handler->handleBatch(array($this->getRecord(), $this->getRecord())); - } - - /** - * @covers Monolog\Handler\AbstractHandler::isHandling - */ - public function testIsHandling() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array(Logger::WARNING, false)); - $this->assertTrue($handler->isHandling($this->getRecord())); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); - } - - /** - * @covers Monolog\Handler\AbstractHandler::__construct - */ - public function testHandlesPsrStyleLevels() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array('warning', false)); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); - $handler->setLevel('debug'); - $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG))); - } - - /** - * @covers Monolog\Handler\AbstractHandler::getFormatter - * @covers Monolog\Handler\AbstractHandler::getDefaultFormatter - */ - public function testGetFormatterInitializesDefault() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); - $this->assertInstanceOf('Monolog\Formatter\LineFormatter', $handler->getFormatter()); - } - - /** - * @covers Monolog\Handler\AbstractHandler::pushProcessor - * @covers Monolog\Handler\AbstractHandler::popProcessor - * @expectedException LogicException - */ - public function testPushPopProcessor() - { - $logger = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); - $processor1 = new WebProcessor; - $processor2 = new WebProcessor; - - $logger->pushProcessor($processor1); - $logger->pushProcessor($processor2); - - $this->assertEquals($processor2, $logger->popProcessor()); - $this->assertEquals($processor1, $logger->popProcessor()); - $logger->popProcessor(); - } - - /** - * @covers Monolog\Handler\AbstractHandler::pushProcessor - * @expectedException InvalidArgumentException - */ - public function testPushProcessorWithNonCallable() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); - - $handler->pushProcessor(new \stdClass()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php deleted file mode 100644 index 24d4f63c..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Processor\WebProcessor; - -class AbstractProcessingHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\AbstractProcessingHandler::handle - */ - public function testHandleLowerLevelMessage() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::WARNING, true)); - $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); - } - - /** - * @covers Monolog\Handler\AbstractProcessingHandler::handle - */ - public function testHandleBubbling() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::DEBUG, true)); - $this->assertFalse($handler->handle($this->getRecord())); - } - - /** - * @covers Monolog\Handler\AbstractProcessingHandler::handle - */ - public function testHandleNotBubbling() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::DEBUG, false)); - $this->assertTrue($handler->handle($this->getRecord())); - } - - /** - * @covers Monolog\Handler\AbstractProcessingHandler::handle - */ - public function testHandleIsFalseWhenNotHandled() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::WARNING, false)); - $this->assertTrue($handler->handle($this->getRecord())); - $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); - } - - /** - * @covers Monolog\Handler\AbstractProcessingHandler::processRecord - */ - public function testProcessRecord() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler'); - $handler->pushProcessor(new WebProcessor(array( - 'REQUEST_URI' => '', - 'REQUEST_METHOD' => '', - 'REMOTE_ADDR' => '', - 'SERVER_NAME' => '', - 'UNIQUE_ID' => '', - ))); - $handledRecord = null; - $handler->expects($this->once()) - ->method('write') - ->will($this->returnCallback(function ($record) use (&$handledRecord) { - $handledRecord = $record; - })) - ; - $handler->handle($this->getRecord()); - $this->assertEquals(6, count($handledRecord['extra'])); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php deleted file mode 100644 index 8e0e7237..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php +++ /dev/null @@ -1,136 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use PhpAmqpLib\Message\AMQPMessage; -use PhpAmqpLib\Connection\AMQPConnection; - -/** - * @covers Monolog\Handler\RotatingFileHandler - */ -class AmqpHandlerTest extends TestCase -{ - public function testHandleAmqpExt() - { - if (!class_exists('AMQPConnection') || !class_exists('AMQPExchange')) { - $this->markTestSkipped("amqp-php not installed"); - } - - if (!class_exists('AMQPChannel')) { - $this->markTestSkipped("Please update AMQP to version >= 1.0"); - } - - $messages = array(); - - $exchange = $this->getMock('AMQPExchange', array('publish', 'setName'), array(), '', false); - $exchange->expects($this->once()) - ->method('setName') - ->with('log') - ; - $exchange->expects($this->any()) - ->method('publish') - ->will($this->returnCallback(function ($message, $routing_key, $flags = 0, $attributes = array()) use (&$messages) { - $messages[] = array($message, $routing_key, $flags, $attributes); - })) - ; - - $handler = new AmqpHandler($exchange, 'log'); - - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $expected = array( - array( - 'message' => 'test', - 'context' => array( - 'data' => array(), - 'foo' => 34, - ), - 'level' => 300, - 'level_name' => 'WARNING', - 'channel' => 'test', - 'extra' => array(), - ), - 'warn.test', - 0, - array( - 'delivery_mode' => 2, - 'content_type' => 'application/json', - ), - ); - - $handler->handle($record); - - $this->assertCount(1, $messages); - $messages[0][0] = json_decode($messages[0][0], true); - unset($messages[0][0]['datetime']); - $this->assertEquals($expected, $messages[0]); - } - - public function testHandlePhpAmqpLib() - { - if (!class_exists('PhpAmqpLib\Connection\AMQPConnection')) { - $this->markTestSkipped("php-amqplib not installed"); - } - - $messages = array(); - - $exchange = $this->getMock('PhpAmqpLib\Channel\AMQPChannel', array('basic_publish', '__destruct'), array(), '', false); - - $exchange->expects($this->any()) - ->method('basic_publish') - ->will($this->returnCallback(function (AMQPMessage $msg, $exchange = "", $routing_key = "", $mandatory = false, $immediate = false, $ticket = null) use (&$messages) { - $messages[] = array($msg, $exchange, $routing_key, $mandatory, $immediate, $ticket); - })) - ; - - $handler = new AmqpHandler($exchange, 'log'); - - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $expected = array( - array( - 'message' => 'test', - 'context' => array( - 'data' => array(), - 'foo' => 34, - ), - 'level' => 300, - 'level_name' => 'WARNING', - 'channel' => 'test', - 'extra' => array(), - ), - 'log', - 'warn.test', - false, - false, - null, - array( - 'delivery_mode' => 2, - 'content_type' => 'application/json', - ), - ); - - $handler->handle($record); - - $this->assertCount(1, $messages); - - /* @var $msg AMQPMessage */ - $msg = $messages[0][0]; - $messages[0][0] = json_decode($msg->body, true); - $messages[0][] = $msg->get_properties(); - unset($messages[0][0]['datetime']); - - $this->assertEquals($expected, $messages[0]); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php deleted file mode 100644 index ffb1d746..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php +++ /dev/null @@ -1,130 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @covers Monolog\Handler\BrowserConsoleHandlerTest - */ -class BrowserConsoleHandlerTest extends TestCase -{ - protected function setUp() - { - BrowserConsoleHandler::reset(); - } - - protected function generateScript() - { - $reflMethod = new \ReflectionMethod('Monolog\Handler\BrowserConsoleHandler', 'generateScript'); - $reflMethod->setAccessible(true); - - return $reflMethod->invoke(null); - } - - public function testStyling() - { - $handler = new BrowserConsoleHandler(); - $handler->setFormatter($this->getIdentityFormatter()); - - $handler->handle($this->getRecord(Logger::DEBUG, 'foo[[bar]]{color: red}')); - - $expected = <<assertEquals($expected, $this->generateScript()); - } - - public function testEscaping() - { - $handler = new BrowserConsoleHandler(); - $handler->setFormatter($this->getIdentityFormatter()); - - $handler->handle($this->getRecord(Logger::DEBUG, "[foo] [[\"bar\n[baz]\"]]{color: red}")); - - $expected = <<assertEquals($expected, $this->generateScript()); - } - - public function testAutolabel() - { - $handler = new BrowserConsoleHandler(); - $handler->setFormatter($this->getIdentityFormatter()); - - $handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}')); - $handler->handle($this->getRecord(Logger::DEBUG, '[[bar]]{macro: autolabel}')); - $handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}')); - - $expected = <<assertEquals($expected, $this->generateScript()); - } - - public function testContext() - { - $handler = new BrowserConsoleHandler(); - $handler->setFormatter($this->getIdentityFormatter()); - - $handler->handle($this->getRecord(Logger::DEBUG, 'test', array('foo' => 'bar'))); - - $expected = <<assertEquals($expected, $this->generateScript()); - } - - public function testConcurrentHandlers() - { - $handler1 = new BrowserConsoleHandler(); - $handler1->setFormatter($this->getIdentityFormatter()); - - $handler2 = new BrowserConsoleHandler(); - $handler2->setFormatter($this->getIdentityFormatter()); - - $handler1->handle($this->getRecord(Logger::DEBUG, 'test1')); - $handler2->handle($this->getRecord(Logger::DEBUG, 'test2')); - $handler1->handle($this->getRecord(Logger::DEBUG, 'test3')); - $handler2->handle($this->getRecord(Logger::DEBUG, 'test4')); - - $expected = <<assertEquals($expected, $this->generateScript()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php deleted file mode 100644 index da8b3c39..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php +++ /dev/null @@ -1,158 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -class BufferHandlerTest extends TestCase -{ - private $shutdownCheckHandler; - - /** - * @covers Monolog\Handler\BufferHandler::__construct - * @covers Monolog\Handler\BufferHandler::handle - * @covers Monolog\Handler\BufferHandler::close - */ - public function testHandleBuffers() - { - $test = new TestHandler(); - $handler = new BufferHandler($test); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $this->assertFalse($test->hasDebugRecords()); - $this->assertFalse($test->hasInfoRecords()); - $handler->close(); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue(count($test->getRecords()) === 2); - } - - /** - * @covers Monolog\Handler\BufferHandler::close - * @covers Monolog\Handler\BufferHandler::flush - */ - public function testPropagatesRecordsAtEndOfRequest() - { - $test = new TestHandler(); - $handler = new BufferHandler($test); - $handler->handle($this->getRecord(Logger::WARNING)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $this->shutdownCheckHandler = $test; - register_shutdown_function(array($this, 'checkPropagation')); - } - - public function checkPropagation() - { - if (!$this->shutdownCheckHandler->hasWarningRecords() || !$this->shutdownCheckHandler->hasDebugRecords()) { - echo '!!! BufferHandlerTest::testPropagatesRecordsAtEndOfRequest failed to verify that the messages have been propagated' . PHP_EOL; - exit(1); - } - } - - /** - * @covers Monolog\Handler\BufferHandler::handle - */ - public function testHandleBufferLimit() - { - $test = new TestHandler(); - $handler = new BufferHandler($test, 2); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $handler->handle($this->getRecord(Logger::WARNING)); - $handler->close(); - $this->assertTrue($test->hasWarningRecords()); - $this->assertTrue($test->hasInfoRecords()); - $this->assertFalse($test->hasDebugRecords()); - } - - /** - * @covers Monolog\Handler\BufferHandler::handle - */ - public function testHandleBufferLimitWithFlushOnOverflow() - { - $test = new TestHandler(); - $handler = new BufferHandler($test, 3, Logger::DEBUG, true, true); - - // send two records - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $this->assertFalse($test->hasDebugRecords()); - $this->assertCount(0, $test->getRecords()); - - // overflow - $handler->handle($this->getRecord(Logger::INFO)); - $this->assertTrue($test->hasDebugRecords()); - $this->assertCount(3, $test->getRecords()); - - // should buffer again - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertCount(3, $test->getRecords()); - - $handler->close(); - $this->assertCount(5, $test->getRecords()); - $this->assertTrue($test->hasWarningRecords()); - $this->assertTrue($test->hasInfoRecords()); - } - - /** - * @covers Monolog\Handler\BufferHandler::handle - */ - public function testHandleLevel() - { - $test = new TestHandler(); - $handler = new BufferHandler($test, 0, Logger::INFO); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $handler->handle($this->getRecord(Logger::WARNING)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->close(); - $this->assertTrue($test->hasWarningRecords()); - $this->assertTrue($test->hasInfoRecords()); - $this->assertFalse($test->hasDebugRecords()); - } - - /** - * @covers Monolog\Handler\BufferHandler::flush - */ - public function testFlush() - { - $test = new TestHandler(); - $handler = new BufferHandler($test, 0); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $handler->flush(); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue($test->hasDebugRecords()); - $this->assertFalse($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\BufferHandler::handle - */ - public function testHandleUsesProcessors() - { - $test = new TestHandler(); - $handler = new BufferHandler($test); - $handler->pushProcessor(function ($record) { - $record['extra']['foo'] = true; - - return $record; - }); - $handler->handle($this->getRecord(Logger::WARNING)); - $handler->flush(); - $this->assertTrue($test->hasWarningRecords()); - $records = $test->getRecords(); - $this->assertTrue($records[0]['extra']['foo']); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php deleted file mode 100644 index 0449f8b1..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php +++ /dev/null @@ -1,156 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @covers Monolog\Handler\ChromePHPHandler - */ -class ChromePHPHandlerTest extends TestCase -{ - protected function setUp() - { - TestChromePHPHandler::reset(); - $_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; Chrome/1.0'; - } - - /** - * @dataProvider agentsProvider - */ - public function testHeaders($agent) - { - $_SERVER['HTTP_USER_AGENT'] = $agent; - - $handler = new TestChromePHPHandler(); - $handler->setFormatter($this->getIdentityFormatter()); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::WARNING)); - - $expected = array( - 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( - 'version' => ChromePHPHandler::VERSION, - 'columns' => array('label', 'log', 'backtrace', 'type'), - 'rows' => array( - 'test', - 'test', - ), - 'request_uri' => '', - )))), - ); - - $this->assertEquals($expected, $handler->getHeaders()); - } - - public static function agentsProvider() - { - return array( - array('Monolog Test; Chrome/1.0'), - array('Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'), - array('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/56.0.2924.76 Chrome/56.0.2924.76 Safari/537.36'), - array('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36'), - ); - } - - public function testHeadersOverflow() - { - $handler = new TestChromePHPHandler(); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 150 * 1024))); - - // overflow chrome headers limit - $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 100 * 1024))); - - $expected = array( - 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( - 'version' => ChromePHPHandler::VERSION, - 'columns' => array('label', 'log', 'backtrace', 'type'), - 'rows' => array( - array( - 'test', - 'test', - 'unknown', - 'log', - ), - array( - 'test', - str_repeat('a', 150 * 1024), - 'unknown', - 'warn', - ), - array( - 'monolog', - 'Incomplete logs, chrome header size limit reached', - 'unknown', - 'warn', - ), - ), - 'request_uri' => '', - )))), - ); - - $this->assertEquals($expected, $handler->getHeaders()); - } - - public function testConcurrentHandlers() - { - $handler = new TestChromePHPHandler(); - $handler->setFormatter($this->getIdentityFormatter()); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::WARNING)); - - $handler2 = new TestChromePHPHandler(); - $handler2->setFormatter($this->getIdentityFormatter()); - $handler2->handle($this->getRecord(Logger::DEBUG)); - $handler2->handle($this->getRecord(Logger::WARNING)); - - $expected = array( - 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( - 'version' => ChromePHPHandler::VERSION, - 'columns' => array('label', 'log', 'backtrace', 'type'), - 'rows' => array( - 'test', - 'test', - 'test', - 'test', - ), - 'request_uri' => '', - )))), - ); - - $this->assertEquals($expected, $handler2->getHeaders()); - } -} - -class TestChromePHPHandler extends ChromePHPHandler -{ - protected $headers = array(); - - public static function reset() - { - self::$initialized = false; - self::$overflowed = false; - self::$sendHeaders = true; - self::$json['rows'] = array(); - } - - protected function sendHeader($header, $content) - { - $this->headers[$header] = $content; - } - - public function getHeaders() - { - return $this->headers; - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php deleted file mode 100644 index 9fc4b388..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -class CouchDBHandlerTest extends TestCase -{ - public function testHandle() - { - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $handler = new CouchDBHandler(); - - try { - $handler->handle($record); - } catch (\RuntimeException $e) { - $this->markTestSkipped('Could not connect to couchdb server on http://localhost:5984'); - } - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php deleted file mode 100644 index e2aff868..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php +++ /dev/null @@ -1,165 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -class DeduplicationHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\DeduplicationHandler::flush - */ - public function testFlushPassthruIfAllRecordsUnderTrigger() - { - $test = new TestHandler(); - @unlink(sys_get_temp_dir().'/monolog_dedup.log'); - $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); - - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - - $handler->flush(); - - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue($test->hasDebugRecords()); - $this->assertFalse($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\DeduplicationHandler::flush - * @covers Monolog\Handler\DeduplicationHandler::appendRecord - */ - public function testFlushPassthruIfEmptyLog() - { - $test = new TestHandler(); - @unlink(sys_get_temp_dir().'/monolog_dedup.log'); - $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); - - $handler->handle($this->getRecord(Logger::ERROR, 'Foo:bar')); - $handler->handle($this->getRecord(Logger::CRITICAL, "Foo\nbar")); - - $handler->flush(); - - $this->assertTrue($test->hasErrorRecords()); - $this->assertTrue($test->hasCriticalRecords()); - $this->assertFalse($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\DeduplicationHandler::flush - * @covers Monolog\Handler\DeduplicationHandler::appendRecord - * @covers Monolog\Handler\DeduplicationHandler::isDuplicate - * @depends testFlushPassthruIfEmptyLog - */ - public function testFlushSkipsIfLogExists() - { - $test = new TestHandler(); - $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); - - $handler->handle($this->getRecord(Logger::ERROR, 'Foo:bar')); - $handler->handle($this->getRecord(Logger::CRITICAL, "Foo\nbar")); - - $handler->flush(); - - $this->assertFalse($test->hasErrorRecords()); - $this->assertFalse($test->hasCriticalRecords()); - $this->assertFalse($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\DeduplicationHandler::flush - * @covers Monolog\Handler\DeduplicationHandler::appendRecord - * @covers Monolog\Handler\DeduplicationHandler::isDuplicate - * @depends testFlushPassthruIfEmptyLog - */ - public function testFlushPassthruIfLogTooOld() - { - $test = new TestHandler(); - $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); - - $record = $this->getRecord(Logger::ERROR); - $record['datetime']->modify('+62seconds'); - $handler->handle($record); - $record = $this->getRecord(Logger::CRITICAL); - $record['datetime']->modify('+62seconds'); - $handler->handle($record); - - $handler->flush(); - - $this->assertTrue($test->hasErrorRecords()); - $this->assertTrue($test->hasCriticalRecords()); - $this->assertFalse($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\DeduplicationHandler::flush - * @covers Monolog\Handler\DeduplicationHandler::appendRecord - * @covers Monolog\Handler\DeduplicationHandler::isDuplicate - * @covers Monolog\Handler\DeduplicationHandler::collectLogs - */ - public function testGcOldLogs() - { - $test = new TestHandler(); - @unlink(sys_get_temp_dir().'/monolog_dedup.log'); - $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); - - // handle two records from yesterday, and one recent - $record = $this->getRecord(Logger::ERROR); - $record['datetime']->modify('-1day -10seconds'); - $handler->handle($record); - $record2 = $this->getRecord(Logger::CRITICAL); - $record2['datetime']->modify('-1day -10seconds'); - $handler->handle($record2); - $record3 = $this->getRecord(Logger::CRITICAL); - $record3['datetime']->modify('-30seconds'); - $handler->handle($record3); - - // log is written as none of them are duplicate - $handler->flush(); - $this->assertSame( - $record['datetime']->getTimestamp() . ":ERROR:test\n" . - $record2['datetime']->getTimestamp() . ":CRITICAL:test\n" . - $record3['datetime']->getTimestamp() . ":CRITICAL:test\n", - file_get_contents(sys_get_temp_dir() . '/monolog_dedup.log') - ); - $this->assertTrue($test->hasErrorRecords()); - $this->assertTrue($test->hasCriticalRecords()); - $this->assertFalse($test->hasWarningRecords()); - - // clear test handler - $test->clear(); - $this->assertFalse($test->hasErrorRecords()); - $this->assertFalse($test->hasCriticalRecords()); - - // log new records, duplicate log gets GC'd at the end of this flush call - $handler->handle($record = $this->getRecord(Logger::ERROR)); - $handler->handle($record2 = $this->getRecord(Logger::CRITICAL)); - $handler->flush(); - - // log should now contain the new errors and the previous one that was recent enough - $this->assertSame( - $record3['datetime']->getTimestamp() . ":CRITICAL:test\n" . - $record['datetime']->getTimestamp() . ":ERROR:test\n" . - $record2['datetime']->getTimestamp() . ":CRITICAL:test\n", - file_get_contents(sys_get_temp_dir() . '/monolog_dedup.log') - ); - $this->assertTrue($test->hasErrorRecords()); - $this->assertTrue($test->hasCriticalRecords()); - $this->assertFalse($test->hasWarningRecords()); - } - - public static function tearDownAfterClass() - { - @unlink(sys_get_temp_dir().'/monolog_dedup.log'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php deleted file mode 100644 index d67da90a..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -class DoctrineCouchDBHandlerTest extends TestCase -{ - protected function setup() - { - if (!class_exists('Doctrine\CouchDB\CouchDBClient')) { - $this->markTestSkipped('The "doctrine/couchdb" package is not installed'); - } - } - - public function testHandle() - { - $client = $this->getMockBuilder('Doctrine\\CouchDB\\CouchDBClient') - ->setMethods(array('postDocument')) - ->disableOriginalConstructor() - ->getMock(); - - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $expected = array( - 'message' => 'test', - 'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34), - 'level' => Logger::WARNING, - 'level_name' => 'WARNING', - 'channel' => 'test', - 'datetime' => $record['datetime']->format('Y-m-d H:i:s'), - 'extra' => array(), - ); - - $client->expects($this->once()) - ->method('postDocument') - ->with($expected); - - $handler = new DoctrineCouchDBHandler($client); - $handler->handle($record); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php deleted file mode 100644 index 2e6c348d..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; - -class DynamoDbHandlerTest extends TestCase -{ - private $client; - - public function setUp() - { - if (!class_exists('Aws\DynamoDb\DynamoDbClient')) { - $this->markTestSkipped('aws/aws-sdk-php not installed'); - } - - $this->client = $this->getMockBuilder('Aws\DynamoDb\DynamoDbClient') - ->setMethods(array('formatAttributes', '__call')) - ->disableOriginalConstructor()->getMock(); - } - - public function testConstruct() - { - $this->assertInstanceOf('Monolog\Handler\DynamoDbHandler', new DynamoDbHandler($this->client, 'foo')); - } - - public function testInterface() - { - $this->assertInstanceOf('Monolog\Handler\HandlerInterface', new DynamoDbHandler($this->client, 'foo')); - } - - public function testGetFormatter() - { - $handler = new DynamoDbHandler($this->client, 'foo'); - $this->assertInstanceOf('Monolog\Formatter\ScalarFormatter', $handler->getFormatter()); - } - - public function testHandle() - { - $record = $this->getRecord(); - $formatter = $this->getMock('Monolog\Formatter\FormatterInterface'); - $formatted = array('foo' => 1, 'bar' => 2); - $handler = new DynamoDbHandler($this->client, 'foo'); - $handler->setFormatter($formatter); - - $isV3 = defined('Aws\Sdk::VERSION') && version_compare(\Aws\Sdk::VERSION, '3.0', '>='); - if ($isV3) { - $expFormatted = array('foo' => array('N' => 1), 'bar' => array('N' => 2)); - } else { - $expFormatted = $formatted; - } - - $formatter - ->expects($this->once()) - ->method('format') - ->with($record) - ->will($this->returnValue($formatted)); - $this->client - ->expects($isV3 ? $this->never() : $this->once()) - ->method('formatAttributes') - ->with($this->isType('array')) - ->will($this->returnValue($formatted)); - $this->client - ->expects($this->once()) - ->method('__call') - ->with('putItem', array(array( - 'TableName' => 'foo', - 'Item' => $expFormatted, - ))); - - $handler->handle($record); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php deleted file mode 100644 index 1687074b..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php +++ /dev/null @@ -1,239 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\ElasticaFormatter; -use Monolog\Formatter\NormalizerFormatter; -use Monolog\TestCase; -use Monolog\Logger; -use Elastica\Client; -use Elastica\Request; -use Elastica\Response; - -class ElasticSearchHandlerTest extends TestCase -{ - /** - * @var Client mock - */ - protected $client; - - /** - * @var array Default handler options - */ - protected $options = array( - 'index' => 'my_index', - 'type' => 'doc_type', - ); - - public function setUp() - { - // Elastica lib required - if (!class_exists("Elastica\Client")) { - $this->markTestSkipped("ruflin/elastica not installed"); - } - - // base mock Elastica Client object - $this->client = $this->getMockBuilder('Elastica\Client') - ->setMethods(array('addDocuments')) - ->disableOriginalConstructor() - ->getMock(); - } - - /** - * @covers Monolog\Handler\ElasticSearchHandler::write - * @covers Monolog\Handler\ElasticSearchHandler::handleBatch - * @covers Monolog\Handler\ElasticSearchHandler::bulkSend - * @covers Monolog\Handler\ElasticSearchHandler::getDefaultFormatter - */ - public function testHandle() - { - // log message - $msg = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - // format expected result - $formatter = new ElasticaFormatter($this->options['index'], $this->options['type']); - $expected = array($formatter->format($msg)); - - // setup ES client mock - $this->client->expects($this->any()) - ->method('addDocuments') - ->with($expected); - - // perform tests - $handler = new ElasticSearchHandler($this->client, $this->options); - $handler->handle($msg); - $handler->handleBatch(array($msg)); - } - - /** - * @covers Monolog\Handler\ElasticSearchHandler::setFormatter - */ - public function testSetFormatter() - { - $handler = new ElasticSearchHandler($this->client); - $formatter = new ElasticaFormatter('index_new', 'type_new'); - $handler->setFormatter($formatter); - $this->assertInstanceOf('Monolog\Formatter\ElasticaFormatter', $handler->getFormatter()); - $this->assertEquals('index_new', $handler->getFormatter()->getIndex()); - $this->assertEquals('type_new', $handler->getFormatter()->getType()); - } - - /** - * @covers Monolog\Handler\ElasticSearchHandler::setFormatter - * @expectedException InvalidArgumentException - * @expectedExceptionMessage ElasticSearchHandler is only compatible with ElasticaFormatter - */ - public function testSetFormatterInvalid() - { - $handler = new ElasticSearchHandler($this->client); - $formatter = new NormalizerFormatter(); - $handler->setFormatter($formatter); - } - - /** - * @covers Monolog\Handler\ElasticSearchHandler::__construct - * @covers Monolog\Handler\ElasticSearchHandler::getOptions - */ - public function testOptions() - { - $expected = array( - 'index' => $this->options['index'], - 'type' => $this->options['type'], - 'ignore_error' => false, - ); - $handler = new ElasticSearchHandler($this->client, $this->options); - $this->assertEquals($expected, $handler->getOptions()); - } - - /** - * @covers Monolog\Handler\ElasticSearchHandler::bulkSend - * @dataProvider providerTestConnectionErrors - */ - public function testConnectionErrors($ignore, $expectedError) - { - $clientOpts = array('host' => '127.0.0.1', 'port' => 1); - $client = new Client($clientOpts); - $handlerOpts = array('ignore_error' => $ignore); - $handler = new ElasticSearchHandler($client, $handlerOpts); - - if ($expectedError) { - $this->setExpectedException($expectedError[0], $expectedError[1]); - $handler->handle($this->getRecord()); - } else { - $this->assertFalse($handler->handle($this->getRecord())); - } - } - - /** - * @return array - */ - public function providerTestConnectionErrors() - { - return array( - array(false, array('RuntimeException', 'Error sending messages to Elasticsearch')), - array(true, false), - ); - } - - /** - * Integration test using localhost Elastic Search server - * - * @covers Monolog\Handler\ElasticSearchHandler::__construct - * @covers Monolog\Handler\ElasticSearchHandler::handleBatch - * @covers Monolog\Handler\ElasticSearchHandler::bulkSend - * @covers Monolog\Handler\ElasticSearchHandler::getDefaultFormatter - */ - public function testHandleIntegration() - { - $msg = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $expected = $msg; - $expected['datetime'] = $msg['datetime']->format(\DateTime::ISO8601); - $expected['context'] = array( - 'class' => '[object] (stdClass: {})', - 'foo' => 7, - 0 => 'bar', - ); - - $client = new Client(); - $handler = new ElasticSearchHandler($client, $this->options); - try { - $handler->handleBatch(array($msg)); - } catch (\RuntimeException $e) { - $this->markTestSkipped("Cannot connect to Elastic Search server on localhost"); - } - - // check document id from ES server response - $documentId = $this->getCreatedDocId($client->getLastResponse()); - $this->assertNotEmpty($documentId, 'No elastic document id received'); - - // retrieve document source from ES and validate - $document = $this->getDocSourceFromElastic( - $client, - $this->options['index'], - $this->options['type'], - $documentId - ); - $this->assertEquals($expected, $document); - - // remove test index from ES - $client->request("/{$this->options['index']}", Request::DELETE); - } - - /** - * Return last created document id from ES response - * @param Response $response Elastica Response object - * @return string|null - */ - protected function getCreatedDocId(Response $response) - { - $data = $response->getData(); - if (!empty($data['items'][0]['create']['_id'])) { - return $data['items'][0]['create']['_id']; - } - } - - /** - * Retrieve document by id from Elasticsearch - * @param Client $client Elastica client - * @param string $index - * @param string $type - * @param string $documentId - * @return array - */ - protected function getDocSourceFromElastic(Client $client, $index, $type, $documentId) - { - $resp = $client->request("/{$index}/{$type}/{$documentId}", Request::GET); - $data = $resp->getData(); - if (!empty($data['_source'])) { - return $data['_source']; - } - - return array(); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php deleted file mode 100644 index 99785cbb..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; - -function error_log() -{ - $GLOBALS['error_log'][] = func_get_args(); -} - -class ErrorLogHandlerTest extends TestCase -{ - protected function setUp() - { - $GLOBALS['error_log'] = array(); - } - - /** - * @covers Monolog\Handler\ErrorLogHandler::__construct - * @expectedException InvalidArgumentException - * @expectedExceptionMessage The given message type "42" is not supported - */ - public function testShouldNotAcceptAnInvalidTypeOnContructor() - { - new ErrorLogHandler(42); - } - - /** - * @covers Monolog\Handler\ErrorLogHandler::write - */ - public function testShouldLogMessagesUsingErrorLogFuncion() - { - $type = ErrorLogHandler::OPERATING_SYSTEM; - $handler = new ErrorLogHandler($type); - $handler->setFormatter(new LineFormatter('%channel%.%level_name%: %message% %context% %extra%', null, true)); - $handler->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); - - $this->assertSame("test.ERROR: Foo\nBar\r\n\r\nBaz [] []", $GLOBALS['error_log'][0][0]); - $this->assertSame($GLOBALS['error_log'][0][1], $type); - - $handler = new ErrorLogHandler($type, Logger::DEBUG, true, true); - $handler->setFormatter(new LineFormatter(null, null, true)); - $handler->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); - - $this->assertStringMatchesFormat('[%s] test.ERROR: Foo', $GLOBALS['error_log'][1][0]); - $this->assertSame($GLOBALS['error_log'][1][1], $type); - - $this->assertStringMatchesFormat('Bar', $GLOBALS['error_log'][2][0]); - $this->assertSame($GLOBALS['error_log'][2][1], $type); - - $this->assertStringMatchesFormat('Baz [] []', $GLOBALS['error_log'][3][0]); - $this->assertSame($GLOBALS['error_log'][3][1], $type); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php deleted file mode 100644 index 31b7686a..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php +++ /dev/null @@ -1,170 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\TestCase; - -class FilterHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\FilterHandler::isHandling - */ - public function testIsHandling() - { - $test = new TestHandler(); - $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); - $this->assertTrue($handler->isHandling($this->getRecord(Logger::INFO))); - $this->assertTrue($handler->isHandling($this->getRecord(Logger::NOTICE))); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::WARNING))); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::ERROR))); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::CRITICAL))); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::ALERT))); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::EMERGENCY))); - } - - /** - * @covers Monolog\Handler\FilterHandler::handle - * @covers Monolog\Handler\FilterHandler::setAcceptedLevels - * @covers Monolog\Handler\FilterHandler::isHandling - */ - public function testHandleProcessOnlyNeededLevels() - { - $test = new TestHandler(); - $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE); - - $handler->handle($this->getRecord(Logger::DEBUG)); - $this->assertFalse($test->hasDebugRecords()); - - $handler->handle($this->getRecord(Logger::INFO)); - $this->assertTrue($test->hasInfoRecords()); - $handler->handle($this->getRecord(Logger::NOTICE)); - $this->assertTrue($test->hasNoticeRecords()); - - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertFalse($test->hasWarningRecords()); - $handler->handle($this->getRecord(Logger::ERROR)); - $this->assertFalse($test->hasErrorRecords()); - $handler->handle($this->getRecord(Logger::CRITICAL)); - $this->assertFalse($test->hasCriticalRecords()); - $handler->handle($this->getRecord(Logger::ALERT)); - $this->assertFalse($test->hasAlertRecords()); - $handler->handle($this->getRecord(Logger::EMERGENCY)); - $this->assertFalse($test->hasEmergencyRecords()); - - $test = new TestHandler(); - $handler = new FilterHandler($test, array(Logger::INFO, Logger::ERROR)); - - $handler->handle($this->getRecord(Logger::DEBUG)); - $this->assertFalse($test->hasDebugRecords()); - $handler->handle($this->getRecord(Logger::INFO)); - $this->assertTrue($test->hasInfoRecords()); - $handler->handle($this->getRecord(Logger::NOTICE)); - $this->assertFalse($test->hasNoticeRecords()); - $handler->handle($this->getRecord(Logger::ERROR)); - $this->assertTrue($test->hasErrorRecords()); - $handler->handle($this->getRecord(Logger::CRITICAL)); - $this->assertFalse($test->hasCriticalRecords()); - } - - /** - * @covers Monolog\Handler\FilterHandler::setAcceptedLevels - * @covers Monolog\Handler\FilterHandler::getAcceptedLevels - */ - public function testAcceptedLevelApi() - { - $test = new TestHandler(); - $handler = new FilterHandler($test); - - $levels = array(Logger::INFO, Logger::ERROR); - $handler->setAcceptedLevels($levels); - $this->assertSame($levels, $handler->getAcceptedLevels()); - - $handler->setAcceptedLevels(array('info', 'error')); - $this->assertSame($levels, $handler->getAcceptedLevels()); - - $levels = array(Logger::CRITICAL, Logger::ALERT, Logger::EMERGENCY); - $handler->setAcceptedLevels(Logger::CRITICAL, Logger::EMERGENCY); - $this->assertSame($levels, $handler->getAcceptedLevels()); - - $handler->setAcceptedLevels('critical', 'emergency'); - $this->assertSame($levels, $handler->getAcceptedLevels()); - } - - /** - * @covers Monolog\Handler\FilterHandler::handle - */ - public function testHandleUsesProcessors() - { - $test = new TestHandler(); - $handler = new FilterHandler($test, Logger::DEBUG, Logger::EMERGENCY); - $handler->pushProcessor( - function ($record) { - $record['extra']['foo'] = true; - - return $record; - } - ); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasWarningRecords()); - $records = $test->getRecords(); - $this->assertTrue($records[0]['extra']['foo']); - } - - /** - * @covers Monolog\Handler\FilterHandler::handle - */ - public function testHandleRespectsBubble() - { - $test = new TestHandler(); - - $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE, false); - $this->assertTrue($handler->handle($this->getRecord(Logger::INFO))); - $this->assertFalse($handler->handle($this->getRecord(Logger::WARNING))); - - $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE, true); - $this->assertFalse($handler->handle($this->getRecord(Logger::INFO))); - $this->assertFalse($handler->handle($this->getRecord(Logger::WARNING))); - } - - /** - * @covers Monolog\Handler\FilterHandler::handle - */ - public function testHandleWithCallback() - { - $test = new TestHandler(); - $handler = new FilterHandler( - function ($record, $handler) use ($test) { - return $test; - }, Logger::INFO, Logger::NOTICE, false - ); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $this->assertFalse($test->hasDebugRecords()); - $this->assertTrue($test->hasInfoRecords()); - } - - /** - * @covers Monolog\Handler\FilterHandler::handle - * @expectedException \RuntimeException - */ - public function testHandleWithBadCallbackThrowsException() - { - $handler = new FilterHandler( - function ($record, $handler) { - return 'foo'; - } - ); - $handler->handle($this->getRecord(Logger::WARNING)); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php deleted file mode 100644 index b92bf437..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php +++ /dev/null @@ -1,279 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; -use Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy; -use Psr\Log\LogLevel; - -class FingersCrossedHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\FingersCrossedHandler::__construct - * @covers Monolog\Handler\FingersCrossedHandler::handle - * @covers Monolog\Handler\FingersCrossedHandler::activate - */ - public function testHandleBuffers() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $this->assertFalse($test->hasDebugRecords()); - $this->assertFalse($test->hasInfoRecords()); - $handler->handle($this->getRecord(Logger::WARNING)); - $handler->close(); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue(count($test->getRecords()) === 3); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::handle - * @covers Monolog\Handler\FingersCrossedHandler::activate - */ - public function testHandleStopsBufferingAfterTrigger() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test); - $handler->handle($this->getRecord(Logger::WARNING)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->close(); - $this->assertTrue($test->hasWarningRecords()); - $this->assertTrue($test->hasDebugRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::handle - * @covers Monolog\Handler\FingersCrossedHandler::activate - * @covers Monolog\Handler\FingersCrossedHandler::reset - */ - public function testHandleRestartBufferingAfterReset() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test); - $handler->handle($this->getRecord(Logger::WARNING)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->reset(); - $handler->handle($this->getRecord(Logger::INFO)); - $handler->close(); - $this->assertTrue($test->hasWarningRecords()); - $this->assertTrue($test->hasDebugRecords()); - $this->assertFalse($test->hasInfoRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::handle - * @covers Monolog\Handler\FingersCrossedHandler::activate - */ - public function testHandleRestartBufferingAfterBeingTriggeredWhenStopBufferingIsDisabled() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, Logger::WARNING, 0, false, false); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::WARNING)); - $handler->handle($this->getRecord(Logger::INFO)); - $handler->close(); - $this->assertTrue($test->hasWarningRecords()); - $this->assertTrue($test->hasDebugRecords()); - $this->assertFalse($test->hasInfoRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::handle - * @covers Monolog\Handler\FingersCrossedHandler::activate - */ - public function testHandleBufferLimit() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, Logger::WARNING, 2); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasWarningRecords()); - $this->assertTrue($test->hasInfoRecords()); - $this->assertFalse($test->hasDebugRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::handle - * @covers Monolog\Handler\FingersCrossedHandler::activate - */ - public function testHandleWithCallback() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler(function ($record, $handler) use ($test) { - return $test; - }); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $this->assertFalse($test->hasDebugRecords()); - $this->assertFalse($test->hasInfoRecords()); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue(count($test->getRecords()) === 3); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::handle - * @covers Monolog\Handler\FingersCrossedHandler::activate - * @expectedException RuntimeException - */ - public function testHandleWithBadCallbackThrowsException() - { - $handler = new FingersCrossedHandler(function ($record, $handler) { - return 'foo'; - }); - $handler->handle($this->getRecord(Logger::WARNING)); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::isHandling - */ - public function testIsHandlingAlways() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, Logger::ERROR); - $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG))); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::__construct - * @covers Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy::__construct - * @covers Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy::isHandlerActivated - */ - public function testErrorLevelActivationStrategy() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING)); - $handler->handle($this->getRecord(Logger::DEBUG)); - $this->assertFalse($test->hasDebugRecords()); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::__construct - * @covers Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy::__construct - * @covers Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy::isHandlerActivated - */ - public function testErrorLevelActivationStrategyWithPsrLevel() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy('warning')); - $handler->handle($this->getRecord(Logger::DEBUG)); - $this->assertFalse($test->hasDebugRecords()); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::__construct - * @covers Monolog\Handler\FingersCrossedHandler::activate - */ - public function testOverrideActivationStrategy() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy('warning')); - $handler->handle($this->getRecord(Logger::DEBUG)); - $this->assertFalse($test->hasDebugRecords()); - $handler->activate(); - $this->assertTrue($test->hasDebugRecords()); - $handler->handle($this->getRecord(Logger::INFO)); - $this->assertTrue($test->hasInfoRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::__construct - * @covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::isHandlerActivated - */ - public function testChannelLevelActivationStrategy() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy(Logger::ERROR, array('othertest' => Logger::DEBUG))); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertFalse($test->hasWarningRecords()); - $record = $this->getRecord(Logger::DEBUG); - $record['channel'] = 'othertest'; - $handler->handle($record); - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::__construct - * @covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::isHandlerActivated - */ - public function testChannelLevelActivationStrategyWithPsrLevels() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy('error', array('othertest' => 'debug'))); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertFalse($test->hasWarningRecords()); - $record = $this->getRecord(Logger::DEBUG); - $record['channel'] = 'othertest'; - $handler->handle($record); - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasWarningRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::handle - * @covers Monolog\Handler\FingersCrossedHandler::activate - */ - public function testHandleUsesProcessors() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, Logger::INFO); - $handler->pushProcessor(function ($record) { - $record['extra']['foo'] = true; - - return $record; - }); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasWarningRecords()); - $records = $test->getRecords(); - $this->assertTrue($records[0]['extra']['foo']); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::close - */ - public function testPassthruOnClose() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, Logger::INFO); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $handler->close(); - $this->assertFalse($test->hasDebugRecords()); - $this->assertTrue($test->hasInfoRecords()); - } - - /** - * @covers Monolog\Handler\FingersCrossedHandler::close - */ - public function testPsrLevelPassthruOnClose() - { - $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, LogLevel::INFO); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - $handler->close(); - $this->assertFalse($test->hasDebugRecords()); - $this->assertTrue($test->hasInfoRecords()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php deleted file mode 100644 index 0eb10a63..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @covers Monolog\Handler\FirePHPHandler - */ -class FirePHPHandlerTest extends TestCase -{ - public function setUp() - { - TestFirePHPHandler::reset(); - $_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; FirePHP/1.0'; - } - - public function testHeaders() - { - $handler = new TestFirePHPHandler; - $handler->setFormatter($this->getIdentityFormatter()); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::WARNING)); - - $expected = array( - 'X-Wf-Protocol-1' => 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2', - 'X-Wf-1-Structure-1' => 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1', - 'X-Wf-1-Plugin-1' => 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3', - 'X-Wf-1-1-1-1' => 'test', - 'X-Wf-1-1-1-2' => 'test', - ); - - $this->assertEquals($expected, $handler->getHeaders()); - } - - public function testConcurrentHandlers() - { - $handler = new TestFirePHPHandler; - $handler->setFormatter($this->getIdentityFormatter()); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::WARNING)); - - $handler2 = new TestFirePHPHandler; - $handler2->setFormatter($this->getIdentityFormatter()); - $handler2->handle($this->getRecord(Logger::DEBUG)); - $handler2->handle($this->getRecord(Logger::WARNING)); - - $expected = array( - 'X-Wf-Protocol-1' => 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2', - 'X-Wf-1-Structure-1' => 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1', - 'X-Wf-1-Plugin-1' => 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3', - 'X-Wf-1-1-1-1' => 'test', - 'X-Wf-1-1-1-2' => 'test', - ); - - $expected2 = array( - 'X-Wf-1-1-1-3' => 'test', - 'X-Wf-1-1-1-4' => 'test', - ); - - $this->assertEquals($expected, $handler->getHeaders()); - $this->assertEquals($expected2, $handler2->getHeaders()); - } -} - -class TestFirePHPHandler extends FirePHPHandler -{ - protected $headers = array(); - - public static function reset() - { - self::$initialized = false; - self::$sendHeaders = true; - self::$messageIndex = 1; - } - - protected function sendHeader($header, $content) - { - $this->headers[$header] = $content; - } - - public function getHeaders() - { - return $this->headers; - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep b/vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php deleted file mode 100644 index 91cdd312..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php +++ /dev/null @@ -1,85 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Logger; -use Monolog\TestCase; - -/** - * @coversDefaultClass \Monolog\Handler\FleepHookHandler - */ -class FleepHookHandlerTest extends TestCase -{ - /** - * Default token to use in tests - */ - const TOKEN = '123abc'; - - /** - * @var FleepHookHandler - */ - private $handler; - - public function setUp() - { - parent::setUp(); - - if (!extension_loaded('openssl')) { - $this->markTestSkipped('This test requires openssl extension to run'); - } - - // Create instances of the handler and logger for convenience - $this->handler = new FleepHookHandler(self::TOKEN); - } - - /** - * @covers ::__construct - */ - public function testConstructorSetsExpectedDefaults() - { - $this->assertEquals(Logger::DEBUG, $this->handler->getLevel()); - $this->assertEquals(true, $this->handler->getBubble()); - } - - /** - * @covers ::getDefaultFormatter - */ - public function testHandlerUsesLineFormatterWhichIgnoresEmptyArrays() - { - $record = array( - 'message' => 'msg', - 'context' => array(), - 'level' => Logger::DEBUG, - 'level_name' => Logger::getLevelName(Logger::DEBUG), - 'channel' => 'channel', - 'datetime' => new \DateTime(), - 'extra' => array(), - ); - - $expectedFormatter = new LineFormatter(null, null, true, true); - $expected = $expectedFormatter->format($record); - - $handlerFormatter = $this->handler->getFormatter(); - $actual = $handlerFormatter->format($record); - - $this->assertEquals($expected, $actual, 'Empty context and extra arrays should not be rendered'); - } - - /** - * @covers ::__construct - */ - public function testConnectionStringisConstructedCorrectly() - { - $this->assertEquals('ssl://' . FleepHookHandler::FLEEP_HOST . ':443', $this->handler->getConnectionString()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php deleted file mode 100644 index 4b120d51..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FlowdockFormatter; -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @author Dominik Liebler - * @see https://www.hipchat.com/docs/api - */ -class FlowdockHandlerTest extends TestCase -{ - /** - * @var resource - */ - private $res; - - /** - * @var FlowdockHandler - */ - private $handler; - - public function setUp() - { - if (!extension_loaded('openssl')) { - $this->markTestSkipped('This test requires openssl to run'); - } - } - - public function testWriteHeader() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/v1\/messages\/team_inbox\/.* HTTP\/1.1\\r\\nHost: api.flowdock.com\\r\\nContent-Type: application\/json\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - - /** - * @depends testWriteHeader - */ - public function testWriteContent($content) - { - $this->assertRegexp('/"source":"test_source"/', $content); - $this->assertRegexp('/"from_address":"source@test\.com"/', $content); - } - - private function createHandler($token = 'myToken') - { - $constructorArgs = array($token, Logger::DEBUG); - $this->res = fopen('php://memory', 'a'); - $this->handler = $this->getMock( - '\Monolog\Handler\FlowdockHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), - $constructorArgs - ); - - $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); - $reflectionProperty->setAccessible(true); - $reflectionProperty->setValue($this->handler, 'localhost:1234'); - - $this->handler->expects($this->any()) - ->method('fsockopen') - ->will($this->returnValue($this->res)); - $this->handler->expects($this->any()) - ->method('streamSetTimeout') - ->will($this->returnValue(true)); - $this->handler->expects($this->any()) - ->method('closeSocket') - ->will($this->returnValue(true)); - - $this->handler->setFormatter(new FlowdockFormatter('test_source', 'source@test.com')); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php deleted file mode 100644 index 9d007b13..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Gelf\Message; -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Formatter\GelfMessageFormatter; - -class GelfHandlerLegacyTest extends TestCase -{ - public function setUp() - { - if (!class_exists('Gelf\MessagePublisher') || !class_exists('Gelf\Message')) { - $this->markTestSkipped("mlehner/gelf-php not installed"); - } - - require_once __DIR__ . '/GelfMockMessagePublisher.php'; - } - - /** - * @covers Monolog\Handler\GelfHandler::__construct - */ - public function testConstruct() - { - $handler = new GelfHandler($this->getMessagePublisher()); - $this->assertInstanceOf('Monolog\Handler\GelfHandler', $handler); - } - - protected function getHandler($messagePublisher) - { - $handler = new GelfHandler($messagePublisher); - - return $handler; - } - - protected function getMessagePublisher() - { - return new GelfMockMessagePublisher('localhost'); - } - - public function testDebug() - { - $messagePublisher = $this->getMessagePublisher(); - $handler = $this->getHandler($messagePublisher); - - $record = $this->getRecord(Logger::DEBUG, "A test debug message"); - $handler->handle($record); - - $this->assertEquals(7, $messagePublisher->lastMessage->getLevel()); - $this->assertEquals('test', $messagePublisher->lastMessage->getFacility()); - $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage()); - $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage()); - } - - public function testWarning() - { - $messagePublisher = $this->getMessagePublisher(); - $handler = $this->getHandler($messagePublisher); - - $record = $this->getRecord(Logger::WARNING, "A test warning message"); - $handler->handle($record); - - $this->assertEquals(4, $messagePublisher->lastMessage->getLevel()); - $this->assertEquals('test', $messagePublisher->lastMessage->getFacility()); - $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage()); - $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage()); - } - - public function testInjectedGelfMessageFormatter() - { - $messagePublisher = $this->getMessagePublisher(); - $handler = $this->getHandler($messagePublisher); - - $handler->setFormatter(new GelfMessageFormatter('mysystem', 'EXT', 'CTX')); - - $record = $this->getRecord(Logger::WARNING, "A test warning message"); - $record['extra']['blarg'] = 'yep'; - $record['context']['from'] = 'logger'; - $handler->handle($record); - - $this->assertEquals('mysystem', $messagePublisher->lastMessage->getHost()); - $this->assertArrayHasKey('_EXTblarg', $messagePublisher->lastMessage->toArray()); - $this->assertArrayHasKey('_CTXfrom', $messagePublisher->lastMessage->toArray()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php deleted file mode 100644 index 8cdd64f4..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php +++ /dev/null @@ -1,117 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Gelf\Message; -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Formatter\GelfMessageFormatter; - -class GelfHandlerTest extends TestCase -{ - public function setUp() - { - if (!class_exists('Gelf\Publisher') || !class_exists('Gelf\Message')) { - $this->markTestSkipped("graylog2/gelf-php not installed"); - } - } - - /** - * @covers Monolog\Handler\GelfHandler::__construct - */ - public function testConstruct() - { - $handler = new GelfHandler($this->getMessagePublisher()); - $this->assertInstanceOf('Monolog\Handler\GelfHandler', $handler); - } - - protected function getHandler($messagePublisher) - { - $handler = new GelfHandler($messagePublisher); - - return $handler; - } - - protected function getMessagePublisher() - { - return $this->getMock('Gelf\Publisher', array('publish'), array(), '', false); - } - - public function testDebug() - { - $record = $this->getRecord(Logger::DEBUG, "A test debug message"); - $expectedMessage = new Message(); - $expectedMessage - ->setLevel(7) - ->setFacility("test") - ->setShortMessage($record['message']) - ->setTimestamp($record['datetime']) - ; - - $messagePublisher = $this->getMessagePublisher(); - $messagePublisher->expects($this->once()) - ->method('publish') - ->with($expectedMessage); - - $handler = $this->getHandler($messagePublisher); - - $handler->handle($record); - } - - public function testWarning() - { - $record = $this->getRecord(Logger::WARNING, "A test warning message"); - $expectedMessage = new Message(); - $expectedMessage - ->setLevel(4) - ->setFacility("test") - ->setShortMessage($record['message']) - ->setTimestamp($record['datetime']) - ; - - $messagePublisher = $this->getMessagePublisher(); - $messagePublisher->expects($this->once()) - ->method('publish') - ->with($expectedMessage); - - $handler = $this->getHandler($messagePublisher); - - $handler->handle($record); - } - - public function testInjectedGelfMessageFormatter() - { - $record = $this->getRecord(Logger::WARNING, "A test warning message"); - $record['extra']['blarg'] = 'yep'; - $record['context']['from'] = 'logger'; - - $expectedMessage = new Message(); - $expectedMessage - ->setLevel(4) - ->setFacility("test") - ->setHost("mysystem") - ->setShortMessage($record['message']) - ->setTimestamp($record['datetime']) - ->setAdditional("EXTblarg", 'yep') - ->setAdditional("CTXfrom", 'logger') - ; - - $messagePublisher = $this->getMessagePublisher(); - $messagePublisher->expects($this->once()) - ->method('publish') - ->with($expectedMessage); - - $handler = $this->getHandler($messagePublisher); - $handler->setFormatter(new GelfMessageFormatter('mysystem', 'EXT', 'CTX')); - $handler->handle($record); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php deleted file mode 100644 index 873d92fb..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Gelf\MessagePublisher; -use Gelf\Message; - -class GelfMockMessagePublisher extends MessagePublisher -{ - public function publish(Message $message) - { - $this->lastMessage = $message; - } - - public $lastMessage = null; -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php deleted file mode 100644 index a1b86176..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php +++ /dev/null @@ -1,112 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -class GroupHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\GroupHandler::__construct - * @expectedException InvalidArgumentException - */ - public function testConstructorOnlyTakesHandler() - { - new GroupHandler(array(new TestHandler(), "foo")); - } - - /** - * @covers Monolog\Handler\GroupHandler::__construct - * @covers Monolog\Handler\GroupHandler::handle - */ - public function testHandle() - { - $testHandlers = array(new TestHandler(), new TestHandler()); - $handler = new GroupHandler($testHandlers); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - foreach ($testHandlers as $test) { - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue(count($test->getRecords()) === 2); - } - } - - /** - * @covers Monolog\Handler\GroupHandler::handleBatch - */ - public function testHandleBatch() - { - $testHandlers = array(new TestHandler(), new TestHandler()); - $handler = new GroupHandler($testHandlers); - $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); - foreach ($testHandlers as $test) { - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue(count($test->getRecords()) === 2); - } - } - - /** - * @covers Monolog\Handler\GroupHandler::isHandling - */ - public function testIsHandling() - { - $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING)); - $handler = new GroupHandler($testHandlers); - $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR))); - $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING))); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); - } - - /** - * @covers Monolog\Handler\GroupHandler::handle - */ - public function testHandleUsesProcessors() - { - $test = new TestHandler(); - $handler = new GroupHandler(array($test)); - $handler->pushProcessor(function ($record) { - $record['extra']['foo'] = true; - - return $record; - }); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasWarningRecords()); - $records = $test->getRecords(); - $this->assertTrue($records[0]['extra']['foo']); - } - - /** - * @covers Monolog\Handler\GroupHandler::handle - */ - public function testHandleBatchUsesProcessors() - { - $testHandlers = array(new TestHandler(), new TestHandler()); - $handler = new GroupHandler($testHandlers); - $handler->pushProcessor(function ($record) { - $record['extra']['foo'] = true; - - return $record; - }); - $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); - foreach ($testHandlers as $test) { - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue(count($test->getRecords()) === 2); - $records = $test->getRecords(); - $this->assertTrue($records[0]['extra']['foo']); - $this->assertTrue($records[1]['extra']['foo']); - } - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php deleted file mode 100644 index d8d0452c..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php +++ /dev/null @@ -1,130 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; - -/** - * @author Alexey Karapetov - */ -class HandlerWrapperTest extends TestCase -{ - /** - * @var HandlerWrapper - */ - private $wrapper; - - private $handler; - - public function setUp() - { - parent::setUp(); - $this->handler = $this->getMock('Monolog\\Handler\\HandlerInterface'); - $this->wrapper = new HandlerWrapper($this->handler); - } - - /** - * @return array - */ - public function trueFalseDataProvider() - { - return array( - array(true), - array(false), - ); - } - - /** - * @param $result - * @dataProvider trueFalseDataProvider - */ - public function testIsHandling($result) - { - $record = $this->getRecord(); - $this->handler->expects($this->once()) - ->method('isHandling') - ->with($record) - ->willReturn($result); - - $this->assertEquals($result, $this->wrapper->isHandling($record)); - } - - /** - * @param $result - * @dataProvider trueFalseDataProvider - */ - public function testHandle($result) - { - $record = $this->getRecord(); - $this->handler->expects($this->once()) - ->method('handle') - ->with($record) - ->willReturn($result); - - $this->assertEquals($result, $this->wrapper->handle($record)); - } - - /** - * @param $result - * @dataProvider trueFalseDataProvider - */ - public function testHandleBatch($result) - { - $records = $this->getMultipleRecords(); - $this->handler->expects($this->once()) - ->method('handleBatch') - ->with($records) - ->willReturn($result); - - $this->assertEquals($result, $this->wrapper->handleBatch($records)); - } - - public function testPushProcessor() - { - $processor = function () {}; - $this->handler->expects($this->once()) - ->method('pushProcessor') - ->with($processor); - - $this->assertEquals($this->wrapper, $this->wrapper->pushProcessor($processor)); - } - - public function testPopProcessor() - { - $processor = function () {}; - $this->handler->expects($this->once()) - ->method('popProcessor') - ->willReturn($processor); - - $this->assertEquals($processor, $this->wrapper->popProcessor()); - } - - public function testSetFormatter() - { - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $this->handler->expects($this->once()) - ->method('setFormatter') - ->with($formatter); - - $this->assertEquals($this->wrapper, $this->wrapper->setFormatter($formatter)); - } - - public function testGetFormatter() - { - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $this->handler->expects($this->once()) - ->method('getFormatter') - ->willReturn($formatter); - - $this->assertEquals($formatter, $this->wrapper->getFormatter()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php deleted file mode 100644 index 52dc9dac..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php +++ /dev/null @@ -1,279 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @author Rafael Dohms - * @see https://www.hipchat.com/docs/api - */ -class HipChatHandlerTest extends TestCase -{ - private $res; - /** @var HipChatHandler */ - private $handler; - - public function testWriteHeader() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/v1\/rooms\/message\?format=json&auth_token=.* HTTP\/1.1\\r\\nHost: api.hipchat.com\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - - public function testWriteCustomHostHeader() - { - $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/v1\/rooms\/message\?format=json&auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - - public function testWriteV2() - { - $this->createHandler('myToken', 'room1', 'Monolog', false, 'hipchat.foo.bar', 'v2'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/v2\/room\/room1\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - - public function testWriteV2Notify() - { - $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar', 'v2'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/v2\/room\/room1\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - - public function testRoomSpaces() - { - $this->createHandler('myToken', 'room name', 'Monolog', false, 'hipchat.foo.bar', 'v2'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/v2\/room\/room%20name\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - - /** - * @depends testWriteHeader - */ - public function testWriteContent($content) - { - $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content); - } - - public function testWriteContentV1WithoutName() - { - $this->createHandler('myToken', 'room1', null, false, 'hipchat.foo.bar', 'v1'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=$/', $content); - - return $content; - } - - /** - * @depends testWriteCustomHostHeader - */ - public function testWriteContentNotify($content) - { - $this->assertRegexp('/notify=1&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content); - } - - /** - * @depends testWriteV2 - */ - public function testWriteContentV2($content) - { - $this->assertRegexp('/notify=false&message=test1&message_format=text&color=red&from=Monolog$/', $content); - } - - /** - * @depends testWriteV2Notify - */ - public function testWriteContentV2Notify($content) - { - $this->assertRegexp('/notify=true&message=test1&message_format=text&color=red&from=Monolog$/', $content); - } - - public function testWriteContentV2WithoutName() - { - $this->createHandler('myToken', 'room1', null, false, 'hipchat.foo.bar', 'v2'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/notify=false&message=test1&message_format=text&color=red$/', $content); - - return $content; - } - - public function testWriteWithComplexMessage() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Backup of database "example" finished in 16 minutes.')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/message=Backup\+of\+database\+%22example%22\+finished\+in\+16\+minutes\./', $content); - } - - public function testWriteTruncatesLongMessage() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, str_repeat('abcde', 2000))); - fseek($this->res, 0); - $content = fread($this->res, 12000); - - $this->assertRegexp('/message='.str_repeat('abcde', 1900).'\+%5Btruncated%5D/', $content); - } - - /** - * @dataProvider provideLevelColors - */ - public function testWriteWithErrorLevelsAndColors($level, $expectedColor) - { - $this->createHandler(); - $this->handler->handle($this->getRecord($level, 'Backup of database "example" finished in 16 minutes.')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/color='.$expectedColor.'/', $content); - } - - public function provideLevelColors() - { - return array( - array(Logger::DEBUG, 'gray'), - array(Logger::INFO, 'green'), - array(Logger::WARNING, 'yellow'), - array(Logger::ERROR, 'red'), - array(Logger::CRITICAL, 'red'), - array(Logger::ALERT, 'red'), - array(Logger::EMERGENCY,'red'), - array(Logger::NOTICE, 'green'), - ); - } - - /** - * @dataProvider provideBatchRecords - */ - public function testHandleBatch($records, $expectedColor) - { - $this->createHandler(); - - $this->handler->handleBatch($records); - - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/color='.$expectedColor.'/', $content); - } - - public function provideBatchRecords() - { - return array( - array( - array( - array('level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \DateTime()), - array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), - array('level' => Logger::CRITICAL, 'message' => 'Everything is broken!', 'level_name' => 'critical', 'datetime' => new \DateTime()), - ), - 'red', - ), - array( - array( - array('level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \DateTime()), - array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), - ), - 'yellow', - ), - array( - array( - array('level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \DateTime()), - array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), - ), - 'green', - ), - array( - array( - array('level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \DateTime()), - ), - 'gray', - ), - ); - } - - private function createHandler($token = 'myToken', $room = 'room1', $name = 'Monolog', $notify = false, $host = 'api.hipchat.com', $version = 'v1') - { - $constructorArgs = array($token, $room, $name, $notify, Logger::DEBUG, true, true, 'text', $host, $version); - $this->res = fopen('php://memory', 'a'); - $this->handler = $this->getMock( - '\Monolog\Handler\HipChatHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), - $constructorArgs - ); - - $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); - $reflectionProperty->setAccessible(true); - $reflectionProperty->setValue($this->handler, 'localhost:1234'); - - $this->handler->expects($this->any()) - ->method('fsockopen') - ->will($this->returnValue($this->res)); - $this->handler->expects($this->any()) - ->method('streamSetTimeout') - ->will($this->returnValue(true)); - $this->handler->expects($this->any()) - ->method('closeSocket') - ->will($this->returnValue(true)); - - $this->handler->setFormatter($this->getIdentityFormatter()); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testCreateWithTooLongName() - { - $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere'); - } - - public function testCreateWithTooLongNameV2() - { - // creating a handler with too long of a name but using the v2 api doesn't matter. - $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere', false, Logger::CRITICAL, true, true, 'test', 'api.hipchat.com', 'v2'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php deleted file mode 100644 index b2deb40a..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @author Robert Kaufmann III - */ -class LogEntriesHandlerTest extends TestCase -{ - /** - * @var resource - */ - private $res; - - /** - * @var LogEntriesHandler - */ - private $handler; - - public function testWriteContent() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Critical write test')); - - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/testToken \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] test.CRITICAL: Critical write test/', $content); - } - - public function testWriteBatchContent() - { - $records = array( - $this->getRecord(), - $this->getRecord(), - $this->getRecord(), - ); - $this->createHandler(); - $this->handler->handleBatch($records); - - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/(testToken \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] .* \[\] \[\]\n){3}/', $content); - } - - private function createHandler() - { - $useSSL = extension_loaded('openssl'); - $args = array('testToken', $useSSL, Logger::DEBUG, true); - $this->res = fopen('php://memory', 'a'); - $this->handler = $this->getMock( - '\Monolog\Handler\LogEntriesHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), - $args - ); - - $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); - $reflectionProperty->setAccessible(true); - $reflectionProperty->setValue($this->handler, 'localhost:1234'); - - $this->handler->expects($this->any()) - ->method('fsockopen') - ->will($this->returnValue($this->res)); - $this->handler->expects($this->any()) - ->method('streamSetTimeout') - ->will($this->returnValue(true)); - $this->handler->expects($this->any()) - ->method('closeSocket') - ->will($this->returnValue(true)); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php deleted file mode 100644 index 6754f3d6..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\TestCase; - -class MailHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\MailHandler::handleBatch - */ - public function testHandleBatch() - { - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $formatter->expects($this->once()) - ->method('formatBatch'); // Each record is formatted - - $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); - $handler->expects($this->once()) - ->method('send'); - $handler->expects($this->never()) - ->method('write'); // write is for individual records - - $handler->setFormatter($formatter); - - $handler->handleBatch($this->getMultipleRecords()); - } - - /** - * @covers Monolog\Handler\MailHandler::handleBatch - */ - public function testHandleBatchNotSendsMailIfMessagesAreBelowLevel() - { - $records = array( - $this->getRecord(Logger::DEBUG, 'debug message 1'), - $this->getRecord(Logger::DEBUG, 'debug message 2'), - $this->getRecord(Logger::INFO, 'information'), - ); - - $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); - $handler->expects($this->never()) - ->method('send'); - $handler->setLevel(Logger::ERROR); - - $handler->handleBatch($records); - } - - /** - * @covers Monolog\Handler\MailHandler::write - */ - public function testHandle() - { - $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); - - $record = $this->getRecord(); - $records = array($record); - $records[0]['formatted'] = '['.$record['datetime']->format('Y-m-d H:i:s').'] test.WARNING: test [] []'."\n"; - - $handler->expects($this->once()) - ->method('send') - ->with($records[0]['formatted'], $records); - - $handler->handle($record); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php b/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php deleted file mode 100644 index a0833225..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Raven_Client; - -class MockRavenClient extends Raven_Client -{ - public function capture($data, $stack, $vars = null) - { - $data = array_merge($this->get_user_data(), $data); - $this->lastData = $data; - $this->lastStack = $stack; - } - - public $lastData; - public $lastStack; -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php deleted file mode 100644 index 0fdef63a..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -class MongoDBHandlerTest extends TestCase -{ - /** - * @expectedException InvalidArgumentException - */ - public function testConstructorShouldThrowExceptionForInvalidMongo() - { - new MongoDBHandler(new \stdClass(), 'DB', 'Collection'); - } - - public function testHandle() - { - $mongo = $this->getMock('Mongo', array('selectCollection'), array(), '', false); - $collection = $this->getMock('stdClass', array('save')); - - $mongo->expects($this->once()) - ->method('selectCollection') - ->with('DB', 'Collection') - ->will($this->returnValue($collection)); - - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $expected = array( - 'message' => 'test', - 'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34), - 'level' => Logger::WARNING, - 'level_name' => 'WARNING', - 'channel' => 'test', - 'datetime' => $record['datetime']->format('Y-m-d H:i:s'), - 'extra' => array(), - ); - - $collection->expects($this->once()) - ->method('save') - ->with($expected); - - $handler = new MongoDBHandler($mongo, 'DB', 'Collection'); - $handler->handle($record); - } -} - -if (!class_exists('Mongo')) { - class Mongo - { - public function selectCollection() - { - } - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php deleted file mode 100644 index ddf545db..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php +++ /dev/null @@ -1,111 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use InvalidArgumentException; - -function mail($to, $subject, $message, $additional_headers = null, $additional_parameters = null) -{ - $GLOBALS['mail'][] = func_get_args(); -} - -class NativeMailerHandlerTest extends TestCase -{ - protected function setUp() - { - $GLOBALS['mail'] = array(); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testConstructorHeaderInjection() - { - $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', "receiver@example.org\r\nFrom: faked@attacker.org"); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testSetterHeaderInjection() - { - $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); - $mailer->addHeader("Content-Type: text/html\r\nFrom: faked@attacker.org"); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testSetterArrayHeaderInjection() - { - $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); - $mailer->addHeader(array("Content-Type: text/html\r\nFrom: faked@attacker.org")); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testSetterContentTypeInjection() - { - $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); - $mailer->setContentType("text/html\r\nFrom: faked@attacker.org"); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testSetterEncodingInjection() - { - $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); - $mailer->setEncoding("utf-8\r\nFrom: faked@attacker.org"); - } - - public function testSend() - { - $to = 'spammer@example.org'; - $subject = 'dear victim'; - $from = 'receiver@example.org'; - - $mailer = new NativeMailerHandler($to, $subject, $from); - $mailer->handleBatch(array()); - - // batch is empty, nothing sent - $this->assertEmpty($GLOBALS['mail']); - - // non-empty batch - $mailer->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); - $this->assertNotEmpty($GLOBALS['mail']); - $this->assertInternalType('array', $GLOBALS['mail']); - $this->assertArrayHasKey('0', $GLOBALS['mail']); - $params = $GLOBALS['mail'][0]; - $this->assertCount(5, $params); - $this->assertSame($to, $params[0]); - $this->assertSame($subject, $params[1]); - $this->assertStringEndsWith(" test.ERROR: Foo Bar Baz [] []\n", $params[2]); - $this->assertSame("From: $from\r\nContent-type: text/plain; charset=utf-8\r\n", $params[3]); - $this->assertSame('', $params[4]); - } - - public function testMessageSubjectFormatting() - { - $mailer = new NativeMailerHandler('to@example.org', 'Alert: %level_name% %message%', 'from@example.org'); - $mailer->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); - $this->assertNotEmpty($GLOBALS['mail']); - $this->assertInternalType('array', $GLOBALS['mail']); - $this->assertArrayHasKey('0', $GLOBALS['mail']); - $params = $GLOBALS['mail'][0]; - $this->assertCount(5, $params); - $this->assertSame('Alert: ERROR Foo Bar Baz', $params[1]); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php deleted file mode 100644 index 4d3a615f..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php +++ /dev/null @@ -1,200 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\TestCase; -use Monolog\Logger; - -class NewRelicHandlerTest extends TestCase -{ - public static $appname; - public static $customParameters; - public static $transactionName; - - public function setUp() - { - self::$appname = null; - self::$customParameters = array(); - self::$transactionName = null; - } - - /** - * @expectedException Monolog\Handler\MissingExtensionException - */ - public function testThehandlerThrowsAnExceptionIfTheNRExtensionIsNotLoaded() - { - $handler = new StubNewRelicHandlerWithoutExtension(); - $handler->handle($this->getRecord(Logger::ERROR)); - } - - public function testThehandlerCanHandleTheRecord() - { - $handler = new StubNewRelicHandler(); - $handler->handle($this->getRecord(Logger::ERROR)); - } - - public function testThehandlerCanAddContextParamsToTheNewRelicTrace() - { - $handler = new StubNewRelicHandler(); - $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('a' => 'b'))); - $this->assertEquals(array('context_a' => 'b'), self::$customParameters); - } - - public function testThehandlerCanAddExplodedContextParamsToTheNewRelicTrace() - { - $handler = new StubNewRelicHandler(Logger::ERROR, true, self::$appname, true); - $handler->handle($this->getRecord( - Logger::ERROR, - 'log message', - array('a' => array('key1' => 'value1', 'key2' => 'value2')) - )); - $this->assertEquals( - array('context_a_key1' => 'value1', 'context_a_key2' => 'value2'), - self::$customParameters - ); - } - - public function testThehandlerCanAddExtraParamsToTheNewRelicTrace() - { - $record = $this->getRecord(Logger::ERROR, 'log message'); - $record['extra'] = array('c' => 'd'); - - $handler = new StubNewRelicHandler(); - $handler->handle($record); - - $this->assertEquals(array('extra_c' => 'd'), self::$customParameters); - } - - public function testThehandlerCanAddExplodedExtraParamsToTheNewRelicTrace() - { - $record = $this->getRecord(Logger::ERROR, 'log message'); - $record['extra'] = array('c' => array('key1' => 'value1', 'key2' => 'value2')); - - $handler = new StubNewRelicHandler(Logger::ERROR, true, self::$appname, true); - $handler->handle($record); - - $this->assertEquals( - array('extra_c_key1' => 'value1', 'extra_c_key2' => 'value2'), - self::$customParameters - ); - } - - public function testThehandlerCanAddExtraContextAndParamsToTheNewRelicTrace() - { - $record = $this->getRecord(Logger::ERROR, 'log message', array('a' => 'b')); - $record['extra'] = array('c' => 'd'); - - $handler = new StubNewRelicHandler(); - $handler->handle($record); - - $expected = array( - 'context_a' => 'b', - 'extra_c' => 'd', - ); - - $this->assertEquals($expected, self::$customParameters); - } - - public function testThehandlerCanHandleTheRecordsFormattedUsingTheLineFormatter() - { - $handler = new StubNewRelicHandler(); - $handler->setFormatter(new LineFormatter()); - $handler->handle($this->getRecord(Logger::ERROR)); - } - - public function testTheAppNameIsNullByDefault() - { - $handler = new StubNewRelicHandler(); - $handler->handle($this->getRecord(Logger::ERROR, 'log message')); - - $this->assertEquals(null, self::$appname); - } - - public function testTheAppNameCanBeInjectedFromtheConstructor() - { - $handler = new StubNewRelicHandler(Logger::DEBUG, false, 'myAppName'); - $handler->handle($this->getRecord(Logger::ERROR, 'log message')); - - $this->assertEquals('myAppName', self::$appname); - } - - public function testTheAppNameCanBeOverriddenFromEachLog() - { - $handler = new StubNewRelicHandler(Logger::DEBUG, false, 'myAppName'); - $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('appname' => 'logAppName'))); - - $this->assertEquals('logAppName', self::$appname); - } - - public function testTheTransactionNameIsNullByDefault() - { - $handler = new StubNewRelicHandler(); - $handler->handle($this->getRecord(Logger::ERROR, 'log message')); - - $this->assertEquals(null, self::$transactionName); - } - - public function testTheTransactionNameCanBeInjectedFromTheConstructor() - { - $handler = new StubNewRelicHandler(Logger::DEBUG, false, null, false, 'myTransaction'); - $handler->handle($this->getRecord(Logger::ERROR, 'log message')); - - $this->assertEquals('myTransaction', self::$transactionName); - } - - public function testTheTransactionNameCanBeOverriddenFromEachLog() - { - $handler = new StubNewRelicHandler(Logger::DEBUG, false, null, false, 'myTransaction'); - $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('transaction_name' => 'logTransactName'))); - - $this->assertEquals('logTransactName', self::$transactionName); - } -} - -class StubNewRelicHandlerWithoutExtension extends NewRelicHandler -{ - protected function isNewRelicEnabled() - { - return false; - } -} - -class StubNewRelicHandler extends NewRelicHandler -{ - protected function isNewRelicEnabled() - { - return true; - } -} - -function newrelic_notice_error() -{ - return true; -} - -function newrelic_set_appname($appname) -{ - return NewRelicHandlerTest::$appname = $appname; -} - -function newrelic_name_transaction($transactionName) -{ - return NewRelicHandlerTest::$transactionName = $transactionName; -} - -function newrelic_add_custom_parameter($key, $value) -{ - NewRelicHandlerTest::$customParameters[$key] = $value; - - return true; -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php deleted file mode 100644 index 292df78c..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @covers Monolog\Handler\NullHandler::handle - */ -class NullHandlerTest extends TestCase -{ - public function testHandle() - { - $handler = new NullHandler(); - $this->assertTrue($handler->handle($this->getRecord())); - } - - public function testHandleLowerLevelRecord() - { - $handler = new NullHandler(Logger::WARNING); - $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php deleted file mode 100644 index 152573ef..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php +++ /dev/null @@ -1,273 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Exception; -use Monolog\ErrorHandler; -use Monolog\Logger; -use Monolog\TestCase; -use PhpConsole\Connector; -use PhpConsole\Dispatcher\Debug as DebugDispatcher; -use PhpConsole\Dispatcher\Errors as ErrorDispatcher; -use PhpConsole\Handler; -use PHPUnit_Framework_MockObject_MockObject; - -/** - * @covers Monolog\Handler\PHPConsoleHandler - * @author Sergey Barbushin https://www.linkedin.com/in/barbushin - */ -class PHPConsoleHandlerTest extends TestCase -{ - /** @var Connector|PHPUnit_Framework_MockObject_MockObject */ - protected $connector; - /** @var DebugDispatcher|PHPUnit_Framework_MockObject_MockObject */ - protected $debugDispatcher; - /** @var ErrorDispatcher|PHPUnit_Framework_MockObject_MockObject */ - protected $errorDispatcher; - - protected function setUp() - { - if (!class_exists('PhpConsole\Connector')) { - $this->markTestSkipped('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); - } - $this->connector = $this->initConnectorMock(); - - $this->debugDispatcher = $this->initDebugDispatcherMock($this->connector); - $this->connector->setDebugDispatcher($this->debugDispatcher); - - $this->errorDispatcher = $this->initErrorDispatcherMock($this->connector); - $this->connector->setErrorsDispatcher($this->errorDispatcher); - } - - protected function initDebugDispatcherMock(Connector $connector) - { - return $this->getMockBuilder('PhpConsole\Dispatcher\Debug') - ->disableOriginalConstructor() - ->setMethods(array('dispatchDebug')) - ->setConstructorArgs(array($connector, $connector->getDumper())) - ->getMock(); - } - - protected function initErrorDispatcherMock(Connector $connector) - { - return $this->getMockBuilder('PhpConsole\Dispatcher\Errors') - ->disableOriginalConstructor() - ->setMethods(array('dispatchError', 'dispatchException')) - ->setConstructorArgs(array($connector, $connector->getDumper())) - ->getMock(); - } - - protected function initConnectorMock() - { - $connector = $this->getMockBuilder('PhpConsole\Connector') - ->disableOriginalConstructor() - ->setMethods(array( - 'sendMessage', - 'onShutDown', - 'isActiveClient', - 'setSourcesBasePath', - 'setServerEncoding', - 'setPassword', - 'enableSslOnlyMode', - 'setAllowedIpMasks', - 'setHeadersLimit', - 'startEvalRequestsListener', - )) - ->getMock(); - - $connector->expects($this->any()) - ->method('isActiveClient') - ->will($this->returnValue(true)); - - return $connector; - } - - protected function getHandlerDefaultOption($name) - { - $handler = new PHPConsoleHandler(array(), $this->connector); - $options = $handler->getOptions(); - - return $options[$name]; - } - - protected function initLogger($handlerOptions = array(), $level = Logger::DEBUG) - { - return new Logger('test', array( - new PHPConsoleHandler($handlerOptions, $this->connector, $level), - )); - } - - public function testInitWithDefaultConnector() - { - $handler = new PHPConsoleHandler(); - $this->assertEquals(spl_object_hash(Connector::getInstance()), spl_object_hash($handler->getConnector())); - } - - public function testInitWithCustomConnector() - { - $handler = new PHPConsoleHandler(array(), $this->connector); - $this->assertEquals(spl_object_hash($this->connector), spl_object_hash($handler->getConnector())); - } - - public function testDebug() - { - $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with($this->equalTo('test')); - $this->initLogger()->addDebug('test'); - } - - public function testDebugContextInMessage() - { - $message = 'test'; - $tag = 'tag'; - $context = array($tag, 'custom' => mt_rand()); - $expectedMessage = $message . ' ' . json_encode(array_slice($context, 1)); - $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with( - $this->equalTo($expectedMessage), - $this->equalTo($tag) - ); - $this->initLogger()->addDebug($message, $context); - } - - public function testDebugTags($tagsContextKeys = null) - { - $expectedTags = mt_rand(); - $logger = $this->initLogger($tagsContextKeys ? array('debugTagsKeysInContext' => $tagsContextKeys) : array()); - if (!$tagsContextKeys) { - $tagsContextKeys = $this->getHandlerDefaultOption('debugTagsKeysInContext'); - } - foreach ($tagsContextKeys as $key) { - $debugDispatcher = $this->initDebugDispatcherMock($this->connector); - $debugDispatcher->expects($this->once())->method('dispatchDebug')->with( - $this->anything(), - $this->equalTo($expectedTags) - ); - $this->connector->setDebugDispatcher($debugDispatcher); - $logger->addDebug('test', array($key => $expectedTags)); - } - } - - public function testError($classesPartialsTraceIgnore = null) - { - $code = E_USER_NOTICE; - $message = 'message'; - $file = __FILE__; - $line = __LINE__; - $this->errorDispatcher->expects($this->once())->method('dispatchError')->with( - $this->equalTo($code), - $this->equalTo($message), - $this->equalTo($file), - $this->equalTo($line), - $classesPartialsTraceIgnore ?: $this->equalTo($this->getHandlerDefaultOption('classesPartialsTraceIgnore')) - ); - $errorHandler = ErrorHandler::register($this->initLogger($classesPartialsTraceIgnore ? array('classesPartialsTraceIgnore' => $classesPartialsTraceIgnore) : array()), false); - $errorHandler->registerErrorHandler(array(), false, E_USER_WARNING); - $errorHandler->handleError($code, $message, $file, $line); - } - - public function testException() - { - $e = new Exception(); - $this->errorDispatcher->expects($this->once())->method('dispatchException')->with( - $this->equalTo($e) - ); - $handler = $this->initLogger(); - $handler->log( - \Psr\Log\LogLevel::ERROR, - sprintf('Uncaught Exception %s: "%s" at %s line %s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()), - array('exception' => $e) - ); - } - - /** - * @expectedException Exception - */ - public function testWrongOptionsThrowsException() - { - new PHPConsoleHandler(array('xxx' => 1)); - } - - public function testOptionEnabled() - { - $this->debugDispatcher->expects($this->never())->method('dispatchDebug'); - $this->initLogger(array('enabled' => false))->addDebug('test'); - } - - public function testOptionClassesPartialsTraceIgnore() - { - $this->testError(array('Class', 'Namespace\\')); - } - - public function testOptionDebugTagsKeysInContext() - { - $this->testDebugTags(array('key1', 'key2')); - } - - public function testOptionUseOwnErrorsAndExceptionsHandler() - { - $this->initLogger(array('useOwnErrorsHandler' => true, 'useOwnExceptionsHandler' => true)); - $this->assertEquals(array(Handler::getInstance(), 'handleError'), set_error_handler(function () { - })); - $this->assertEquals(array(Handler::getInstance(), 'handleException'), set_exception_handler(function () { - })); - } - - public static function provideConnectorMethodsOptionsSets() - { - return array( - array('sourcesBasePath', 'setSourcesBasePath', __DIR__), - array('serverEncoding', 'setServerEncoding', 'cp1251'), - array('password', 'setPassword', '******'), - array('enableSslOnlyMode', 'enableSslOnlyMode', true, false), - array('ipMasks', 'setAllowedIpMasks', array('127.0.0.*')), - array('headersLimit', 'setHeadersLimit', 2500), - array('enableEvalListener', 'startEvalRequestsListener', true, false), - ); - } - - /** - * @dataProvider provideConnectorMethodsOptionsSets - */ - public function testOptionCallsConnectorMethod($option, $method, $value, $isArgument = true) - { - $expectCall = $this->connector->expects($this->once())->method($method); - if ($isArgument) { - $expectCall->with($value); - } - new PHPConsoleHandler(array($option => $value), $this->connector); - } - - public function testOptionDetectDumpTraceAndSource() - { - new PHPConsoleHandler(array('detectDumpTraceAndSource' => true), $this->connector); - $this->assertTrue($this->connector->getDebugDispatcher()->detectTraceAndSource); - } - - public static function provideDumperOptionsValues() - { - return array( - array('dumperLevelLimit', 'levelLimit', 1001), - array('dumperItemsCountLimit', 'itemsCountLimit', 1002), - array('dumperItemSizeLimit', 'itemSizeLimit', 1003), - array('dumperDumpSizeLimit', 'dumpSizeLimit', 1004), - array('dumperDetectCallbacks', 'detectCallbacks', true), - ); - } - - /** - * @dataProvider provideDumperOptionsValues - */ - public function testDumperOptions($option, $dumperProperty, $value) - { - new PHPConsoleHandler(array($option => $value), $this->connector); - $this->assertEquals($value, $this->connector->getDumper()->$dumperProperty); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php deleted file mode 100644 index 64eaab16..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @covers Monolog\Handler\PsrHandler::handle - */ -class PsrHandlerTest extends TestCase -{ - public function logLevelProvider() - { - $levels = array(); - $monologLogger = new Logger(''); - - foreach ($monologLogger->getLevels() as $levelName => $level) { - $levels[] = array($levelName, $level); - } - - return $levels; - } - - /** - * @dataProvider logLevelProvider - */ - public function testHandlesAllLevels($levelName, $level) - { - $message = 'Hello, world! ' . $level; - $context = array('foo' => 'bar', 'level' => $level); - - $psrLogger = $this->getMock('Psr\Log\NullLogger'); - $psrLogger->expects($this->once()) - ->method('log') - ->with(strtolower($levelName), $message, $context); - - $handler = new PsrHandler($psrLogger); - $handler->handle(array('level' => $level, 'level_name' => $levelName, 'message' => $message, 'context' => $context)); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php deleted file mode 100644 index 56df474a..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php +++ /dev/null @@ -1,141 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * Almost all examples (expected header, titles, messages) taken from - * https://www.pushover.net/api - * @author Sebastian Göttschkes - * @see https://www.pushover.net/api - */ -class PushoverHandlerTest extends TestCase -{ - private $res; - private $handler; - - public function testWriteHeader() - { - $this->createHandler(); - $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/1\/messages.json HTTP\/1.1\\r\\nHost: api.pushover.net\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - - /** - * @depends testWriteHeader - */ - public function testWriteContent($content) - { - $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}$/', $content); - } - - public function testWriteWithComplexTitle() - { - $this->createHandler('myToken', 'myUser', 'Backup finished - SQL1'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/title=Backup\+finished\+-\+SQL1/', $content); - } - - public function testWriteWithComplexMessage() - { - $this->createHandler(); - $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Backup of database "example" finished in 16 minutes.')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/message=Backup\+of\+database\+%22example%22\+finished\+in\+16\+minutes\./', $content); - } - - public function testWriteWithTooLongMessage() - { - $message = str_pad('test', 520, 'a'); - $this->createHandler(); - $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications - $this->handler->handle($this->getRecord(Logger::CRITICAL, $message)); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $expectedMessage = substr($message, 0, 505); - - $this->assertRegexp('/message=' . $expectedMessage . '&title/', $content); - } - - public function testWriteWithHighPriority() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}&priority=1$/', $content); - } - - public function testWriteWithEmergencyPriority() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}&priority=2&retry=30&expire=25200$/', $content); - } - - public function testWriteToMultipleUsers() - { - $this->createHandler('myToken', array('userA', 'userB')); - $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/token=myToken&user=userA&message=test1&title=Monolog×tamp=\d{10}&priority=2&retry=30&expire=25200POST/', $content); - $this->assertRegexp('/token=myToken&user=userB&message=test1&title=Monolog×tamp=\d{10}&priority=2&retry=30&expire=25200$/', $content); - } - - private function createHandler($token = 'myToken', $user = 'myUser', $title = 'Monolog') - { - $constructorArgs = array($token, $user, $title); - $this->res = fopen('php://memory', 'a'); - $this->handler = $this->getMock( - '\Monolog\Handler\PushoverHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), - $constructorArgs - ); - - $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); - $reflectionProperty->setAccessible(true); - $reflectionProperty->setValue($this->handler, 'localhost:1234'); - - $this->handler->expects($this->any()) - ->method('fsockopen') - ->will($this->returnValue($this->res)); - $this->handler->expects($this->any()) - ->method('streamSetTimeout') - ->will($this->returnValue(true)); - $this->handler->expects($this->any()) - ->method('closeSocket') - ->will($this->returnValue(true)); - - $this->handler->setFormatter($this->getIdentityFormatter()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php deleted file mode 100644 index 26d212b9..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php +++ /dev/null @@ -1,255 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; - -class RavenHandlerTest extends TestCase -{ - public function setUp() - { - if (!class_exists('Raven_Client')) { - $this->markTestSkipped('raven/raven not installed'); - } - - require_once __DIR__ . '/MockRavenClient.php'; - } - - /** - * @covers Monolog\Handler\RavenHandler::__construct - */ - public function testConstruct() - { - $handler = new RavenHandler($this->getRavenClient()); - $this->assertInstanceOf('Monolog\Handler\RavenHandler', $handler); - } - - protected function getHandler($ravenClient) - { - $handler = new RavenHandler($ravenClient); - - return $handler; - } - - protected function getRavenClient() - { - $dsn = 'http://43f6017361224d098402974103bfc53d:a6a0538fc2934ba2bed32e08741b2cd3@marca.python.live.cheggnet.com:9000/1'; - - return new MockRavenClient($dsn); - } - - public function testDebug() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - - $record = $this->getRecord(Logger::DEBUG, 'A test debug message'); - $handler->handle($record); - - $this->assertEquals($ravenClient::DEBUG, $ravenClient->lastData['level']); - $this->assertContains($record['message'], $ravenClient->lastData['message']); - } - - public function testWarning() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - - $record = $this->getRecord(Logger::WARNING, 'A test warning message'); - $handler->handle($record); - - $this->assertEquals($ravenClient::WARNING, $ravenClient->lastData['level']); - $this->assertContains($record['message'], $ravenClient->lastData['message']); - } - - public function testTag() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - - $tags = array(1, 2, 'foo'); - $record = $this->getRecord(Logger::INFO, 'test', array('tags' => $tags)); - $handler->handle($record); - - $this->assertEquals($tags, $ravenClient->lastData['tags']); - } - - public function testExtraParameters() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - - $checksum = '098f6bcd4621d373cade4e832627b4f6'; - $release = '05a671c66aefea124cc08b76ea6d30bb'; - $eventId = '31423'; - $record = $this->getRecord(Logger::INFO, 'test', array('checksum' => $checksum, 'release' => $release, 'event_id' => $eventId)); - $handler->handle($record); - - $this->assertEquals($checksum, $ravenClient->lastData['checksum']); - $this->assertEquals($release, $ravenClient->lastData['release']); - $this->assertEquals($eventId, $ravenClient->lastData['event_id']); - } - - public function testFingerprint() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - - $fingerprint = array('{{ default }}', 'other value'); - $record = $this->getRecord(Logger::INFO, 'test', array('fingerprint' => $fingerprint)); - $handler->handle($record); - - $this->assertEquals($fingerprint, $ravenClient->lastData['fingerprint']); - } - - public function testUserContext() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - - $recordWithNoContext = $this->getRecord(Logger::INFO, 'test with default user context'); - // set user context 'externally' - - $user = array( - 'id' => '123', - 'email' => 'test@test.com', - ); - - $recordWithContext = $this->getRecord(Logger::INFO, 'test', array('user' => $user)); - - $ravenClient->user_context(array('id' => 'test_user_id')); - // handle context - $handler->handle($recordWithContext); - $this->assertEquals($user, $ravenClient->lastData['user']); - - // check to see if its reset - $handler->handle($recordWithNoContext); - $this->assertInternalType('array', $ravenClient->context->user); - $this->assertSame('test_user_id', $ravenClient->context->user['id']); - - // handle with null context - $ravenClient->user_context(null); - $handler->handle($recordWithContext); - $this->assertEquals($user, $ravenClient->lastData['user']); - - // check to see if its reset - $handler->handle($recordWithNoContext); - $this->assertNull($ravenClient->context->user); - } - - public function testException() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - - try { - $this->methodThatThrowsAnException(); - } catch (\Exception $e) { - $record = $this->getRecord(Logger::ERROR, $e->getMessage(), array('exception' => $e)); - $handler->handle($record); - } - - $this->assertEquals($record['message'], $ravenClient->lastData['message']); - } - - public function testHandleBatch() - { - $records = $this->getMultipleRecords(); - $records[] = $this->getRecord(Logger::WARNING, 'warning'); - $records[] = $this->getRecord(Logger::WARNING, 'warning'); - - $logFormatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $logFormatter->expects($this->once())->method('formatBatch'); - - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $formatter->expects($this->once())->method('format')->with($this->callback(function ($record) { - return $record['level'] == 400; - })); - - $handler = $this->getHandler($this->getRavenClient()); - $handler->setBatchFormatter($logFormatter); - $handler->setFormatter($formatter); - $handler->handleBatch($records); - } - - public function testHandleBatchDoNothingIfRecordsAreBelowLevel() - { - $records = array( - $this->getRecord(Logger::DEBUG, 'debug message 1'), - $this->getRecord(Logger::DEBUG, 'debug message 2'), - $this->getRecord(Logger::INFO, 'information'), - ); - - $handler = $this->getMock('Monolog\Handler\RavenHandler', null, array($this->getRavenClient())); - $handler->expects($this->never())->method('handle'); - $handler->setLevel(Logger::ERROR); - $handler->handleBatch($records); - } - - public function testHandleBatchPicksProperMessage() - { - $records = array( - $this->getRecord(Logger::DEBUG, 'debug message 1'), - $this->getRecord(Logger::DEBUG, 'debug message 2'), - $this->getRecord(Logger::INFO, 'information 1'), - $this->getRecord(Logger::ERROR, 'error 1'), - $this->getRecord(Logger::WARNING, 'warning'), - $this->getRecord(Logger::ERROR, 'error 2'), - $this->getRecord(Logger::INFO, 'information 2'), - ); - - $logFormatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $logFormatter->expects($this->once())->method('formatBatch'); - - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $formatter->expects($this->once())->method('format')->with($this->callback(function ($record) use ($records) { - return $record['message'] == 'error 1'; - })); - - $handler = $this->getHandler($this->getRavenClient()); - $handler->setBatchFormatter($logFormatter); - $handler->setFormatter($formatter); - $handler->handleBatch($records); - } - - public function testGetSetBatchFormatter() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - - $handler->setBatchFormatter($formatter = new LineFormatter()); - $this->assertSame($formatter, $handler->getBatchFormatter()); - } - - public function testRelease() - { - $ravenClient = $this->getRavenClient(); - $handler = $this->getHandler($ravenClient); - $release = 'v42.42.42'; - $handler->setRelease($release); - $record = $this->getRecord(Logger::INFO, 'test'); - $handler->handle($record); - $this->assertEquals($release, $ravenClient->lastData['release']); - - $localRelease = 'v41.41.41'; - $record = $this->getRecord(Logger::INFO, 'test', array('release' => $localRelease)); - $handler->handle($record); - $this->assertEquals($localRelease, $ravenClient->lastData['release']); - } - - private function methodThatThrowsAnException() - { - throw new \Exception('This is an exception'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php deleted file mode 100644 index 689d5278..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php +++ /dev/null @@ -1,127 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; - -class RedisHandlerTest extends TestCase -{ - /** - * @expectedException InvalidArgumentException - */ - public function testConstructorShouldThrowExceptionForInvalidRedis() - { - new RedisHandler(new \stdClass(), 'key'); - } - - public function testConstructorShouldWorkWithPredis() - { - $redis = $this->getMock('Predis\Client'); - $this->assertInstanceof('Monolog\Handler\RedisHandler', new RedisHandler($redis, 'key')); - } - - public function testConstructorShouldWorkWithRedis() - { - $redis = $this->getMock('Redis'); - $this->assertInstanceof('Monolog\Handler\RedisHandler', new RedisHandler($redis, 'key')); - } - - public function testPredisHandle() - { - $redis = $this->getMock('Predis\Client', array('rpush')); - - // Predis\Client uses rpush - $redis->expects($this->once()) - ->method('rpush') - ->with('key', 'test'); - - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $handler = new RedisHandler($redis, 'key'); - $handler->setFormatter(new LineFormatter("%message%")); - $handler->handle($record); - } - - public function testRedisHandle() - { - $redis = $this->getMock('Redis', array('rpush')); - - // Redis uses rPush - $redis->expects($this->once()) - ->method('rPush') - ->with('key', 'test'); - - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $handler = new RedisHandler($redis, 'key'); - $handler->setFormatter(new LineFormatter("%message%")); - $handler->handle($record); - } - - public function testRedisHandleCapped() - { - $redis = $this->getMock('Redis', array('multi', 'rpush', 'ltrim', 'exec')); - - // Redis uses multi - $redis->expects($this->once()) - ->method('multi') - ->will($this->returnSelf()); - - $redis->expects($this->once()) - ->method('rpush') - ->will($this->returnSelf()); - - $redis->expects($this->once()) - ->method('ltrim') - ->will($this->returnSelf()); - - $redis->expects($this->once()) - ->method('exec') - ->will($this->returnSelf()); - - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10); - $handler->setFormatter(new LineFormatter("%message%")); - $handler->handle($record); - } - - public function testPredisHandleCapped() - { - $redis = $this->getMock('Predis\Client', array('transaction')); - - $redisTransaction = $this->getMock('Predis\Client', array('rpush', 'ltrim')); - - $redisTransaction->expects($this->once()) - ->method('rpush') - ->will($this->returnSelf()); - - $redisTransaction->expects($this->once()) - ->method('ltrim') - ->will($this->returnSelf()); - - // Redis uses multi - $redis->expects($this->once()) - ->method('transaction') - ->will($this->returnCallback(function ($cb) use ($redisTransaction) { - $cb($redisTransaction); - })); - - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10); - $handler->setFormatter(new LineFormatter("%message%")); - $handler->handle($record); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php deleted file mode 100644 index f302e917..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Exception; -use Monolog\TestCase; -use Monolog\Logger; -use PHPUnit_Framework_MockObject_MockObject as MockObject; - -/** - * @author Erik Johansson - * @see https://rollbar.com/docs/notifier/rollbar-php/ - * - * @coversDefaultClass Monolog\Handler\RollbarHandler - */ -class RollbarHandlerTest extends TestCase -{ - /** - * @var MockObject - */ - private $rollbarNotifier; - - /** - * @var array - */ - public $reportedExceptionArguments = null; - - protected function setUp() - { - parent::setUp(); - - $this->setupRollbarNotifierMock(); - } - - /** - * When reporting exceptions to Rollbar the - * level has to be set in the payload data - */ - public function testExceptionLogLevel() - { - $handler = $this->createHandler(); - - $handler->handle($this->createExceptionRecord(Logger::DEBUG)); - - $this->assertEquals('debug', $this->reportedExceptionArguments['payload']['level']); - } - - private function setupRollbarNotifierMock() - { - $this->rollbarNotifier = $this->getMockBuilder('RollbarNotifier') - ->setMethods(array('report_message', 'report_exception', 'flush')) - ->getMock(); - - $that = $this; - - $this->rollbarNotifier - ->expects($this->any()) - ->method('report_exception') - ->willReturnCallback(function ($exception, $context, $payload) use ($that) { - $that->reportedExceptionArguments = compact('exception', 'context', 'payload'); - }); - } - - private function createHandler() - { - return new RollbarHandler($this->rollbarNotifier, Logger::DEBUG); - } - - private function createExceptionRecord($level = Logger::DEBUG, $message = 'test', $exception = null) - { - return $this->getRecord($level, $message, array( - 'exception' => $exception ?: new Exception() - )); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php deleted file mode 100644 index f1feb228..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php +++ /dev/null @@ -1,211 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use PHPUnit_Framework_Error_Deprecated; - -/** - * @covers Monolog\Handler\RotatingFileHandler - */ -class RotatingFileHandlerTest extends TestCase -{ - /** - * This var should be private but then the anonymous function - * in the `setUp` method won't be able to set it. `$this` cant't - * be used in the anonymous function in `setUp` because PHP 5.3 - * does not support it. - */ - public $lastError; - - public function setUp() - { - $dir = __DIR__.'/Fixtures'; - chmod($dir, 0777); - if (!is_writable($dir)) { - $this->markTestSkipped($dir.' must be writable to test the RotatingFileHandler.'); - } - $this->lastError = null; - $self = $this; - // workaround with &$self used for PHP 5.3 - set_error_handler(function($code, $message) use (&$self) { - $self->lastError = array( - 'code' => $code, - 'message' => $message, - ); - }); - } - - private function assertErrorWasTriggered($code, $message) - { - if (empty($this->lastError)) { - $this->fail( - sprintf( - 'Failed asserting that error with code `%d` and message `%s` was triggered', - $code, - $message - ) - ); - } - $this->assertEquals($code, $this->lastError['code'], sprintf('Expected an error with code %d to be triggered, got `%s` instead', $code, $this->lastError['code'])); - $this->assertEquals($message, $this->lastError['message'], sprintf('Expected an error with message `%d` to be triggered, got `%s` instead', $message, $this->lastError['message'])); - } - - public function testRotationCreatesNewFile() - { - touch(__DIR__.'/Fixtures/foo-'.date('Y-m-d', time() - 86400).'.rot'); - - $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot'); - $handler->setFormatter($this->getIdentityFormatter()); - $handler->handle($this->getRecord()); - - $log = __DIR__.'/Fixtures/foo-'.date('Y-m-d').'.rot'; - $this->assertTrue(file_exists($log)); - $this->assertEquals('test', file_get_contents($log)); - } - - /** - * @dataProvider rotationTests - */ - public function testRotation($createFile, $dateFormat, $timeCallback) - { - touch($old1 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-1)).'.rot'); - touch($old2 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-2)).'.rot'); - touch($old3 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-3)).'.rot'); - touch($old4 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-4)).'.rot'); - - $log = __DIR__.'/Fixtures/foo-'.date($dateFormat).'.rot'; - - if ($createFile) { - touch($log); - } - - $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); - $handler->setFormatter($this->getIdentityFormatter()); - $handler->setFilenameFormat('{filename}-{date}', $dateFormat); - $handler->handle($this->getRecord()); - - $handler->close(); - - $this->assertTrue(file_exists($log)); - $this->assertTrue(file_exists($old1)); - $this->assertEquals($createFile, file_exists($old2)); - $this->assertEquals($createFile, file_exists($old3)); - $this->assertEquals($createFile, file_exists($old4)); - $this->assertEquals('test', file_get_contents($log)); - } - - public function rotationTests() - { - $now = time(); - $dayCallback = function($ago) use ($now) { - return $now + 86400 * $ago; - }; - $monthCallback = function($ago) { - return gmmktime(0, 0, 0, date('n') + $ago, 1, date('Y')); - }; - $yearCallback = function($ago) { - return gmmktime(0, 0, 0, 1, 1, date('Y') + $ago); - }; - - return array( - 'Rotation is triggered when the file of the current day is not present' - => array(true, RotatingFileHandler::FILE_PER_DAY, $dayCallback), - 'Rotation is not triggered when the file of the current day is already present' - => array(false, RotatingFileHandler::FILE_PER_DAY, $dayCallback), - - 'Rotation is triggered when the file of the current month is not present' - => array(true, RotatingFileHandler::FILE_PER_MONTH, $monthCallback), - 'Rotation is not triggered when the file of the current month is already present' - => array(false, RotatingFileHandler::FILE_PER_MONTH, $monthCallback), - - 'Rotation is triggered when the file of the current year is not present' - => array(true, RotatingFileHandler::FILE_PER_YEAR, $yearCallback), - 'Rotation is not triggered when the file of the current year is already present' - => array(false, RotatingFileHandler::FILE_PER_YEAR, $yearCallback), - ); - } - - /** - * @dataProvider dateFormatProvider - */ - public function testAllowOnlyFixedDefinedDateFormats($dateFormat, $valid) - { - $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); - $handler->setFilenameFormat('{filename}-{date}', $dateFormat); - if (!$valid) { - $this->assertErrorWasTriggered( - E_USER_DEPRECATED, - 'Invalid date format - format must be one of RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), '. - 'RotatingFileHandler::FILE_PER_MONTH ("Y-m") or RotatingFileHandler::FILE_PER_YEAR ("Y"), '. - 'or you can set one of the date formats using slashes, underscores and/or dots instead of dashes.' - ); - } - } - - public function dateFormatProvider() - { - return array( - array(RotatingFileHandler::FILE_PER_DAY, true), - array(RotatingFileHandler::FILE_PER_MONTH, true), - array(RotatingFileHandler::FILE_PER_YEAR, true), - array('m-d-Y', false), - array('Y-m-d-h-i', false) - ); - } - - /** - * @dataProvider filenameFormatProvider - */ - public function testDisallowFilenameFormatsWithoutDate($filenameFormat, $valid) - { - $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); - $handler->setFilenameFormat($filenameFormat, RotatingFileHandler::FILE_PER_DAY); - if (!$valid) { - $this->assertErrorWasTriggered( - E_USER_DEPRECATED, - 'Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.' - ); - } - } - - public function filenameFormatProvider() - { - return array( - array('{filename}', false), - array('{filename}-{date}', true), - array('{date}', true), - array('foobar-{date}', true), - array('foo-{date}-bar', true), - array('{date}-foobar', true), - array('foobar', false), - ); - } - - public function testReuseCurrentFile() - { - $log = __DIR__.'/Fixtures/foo-'.date('Y-m-d').'.rot'; - file_put_contents($log, "foo"); - $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot'); - $handler->setFormatter($this->getIdentityFormatter()); - $handler->handle($this->getRecord()); - $this->assertEquals('footest', file_get_contents($log)); - } - - public function tearDown() - { - foreach (glob(__DIR__.'/Fixtures/*.rot') as $file) { - unlink($file); - } - restore_error_handler(); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php deleted file mode 100644 index b354cee1..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; - -/** - * @covers Monolog\Handler\SamplingHandler::handle - */ -class SamplingHandlerTest extends TestCase -{ - public function testHandle() - { - $testHandler = new TestHandler(); - $handler = new SamplingHandler($testHandler, 2); - for ($i = 0; $i < 10000; $i++) { - $handler->handle($this->getRecord()); - } - $count = count($testHandler->getRecords()); - // $count should be half of 10k, so between 4k and 6k - $this->assertLessThan(6000, $count); - $this->assertGreaterThan(4000, $count); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php deleted file mode 100644 index e1aa96d7..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php +++ /dev/null @@ -1,387 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\Slack; - -use Monolog\Logger; -use Monolog\TestCase; - -/** - * @coversDefaultClass Monolog\Handler\Slack\SlackRecord - */ -class SlackRecordTest extends TestCase -{ - private $jsonPrettyPrintFlag; - - protected function setUp() - { - $this->jsonPrettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128; - } - - public function dataGetAttachmentColor() - { - return array( - array(Logger::DEBUG, SlackRecord::COLOR_DEFAULT), - array(Logger::INFO, SlackRecord::COLOR_GOOD), - array(Logger::NOTICE, SlackRecord::COLOR_GOOD), - array(Logger::WARNING, SlackRecord::COLOR_WARNING), - array(Logger::ERROR, SlackRecord::COLOR_DANGER), - array(Logger::CRITICAL, SlackRecord::COLOR_DANGER), - array(Logger::ALERT, SlackRecord::COLOR_DANGER), - array(Logger::EMERGENCY, SlackRecord::COLOR_DANGER), - ); - } - - /** - * @dataProvider dataGetAttachmentColor - * @param int $logLevel - * @param string $expectedColour RGB hex color or name of Slack color - * @covers ::getAttachmentColor - */ - public function testGetAttachmentColor($logLevel, $expectedColour) - { - $slackRecord = new SlackRecord(); - $this->assertSame( - $expectedColour, - $slackRecord->getAttachmentColor($logLevel) - ); - } - - public function testAddsChannel() - { - $channel = '#test'; - $record = new SlackRecord($channel); - $data = $record->getSlackData($this->getRecord()); - - $this->assertArrayHasKey('channel', $data); - $this->assertSame($channel, $data['channel']); - } - - public function testNoUsernameByDefault() - { - $record = new SlackRecord(); - $data = $record->getSlackData($this->getRecord()); - - $this->assertArrayNotHasKey('username', $data); - } - - /** - * @return array - */ - public function dataStringify() - { - $jsonPrettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128; - - $multipleDimensions = array(array(1, 2)); - $numericKeys = array('library' => 'monolog'); - $singleDimension = array(1, 'Hello', 'Jordi'); - - return array( - array(array(), '[]'), - array($multipleDimensions, json_encode($multipleDimensions, $jsonPrettyPrintFlag)), - array($numericKeys, json_encode($numericKeys, $jsonPrettyPrintFlag)), - array($singleDimension, json_encode($singleDimension)) - ); - } - - /** - * @dataProvider dataStringify - */ - public function testStringify($fields, $expectedResult) - { - $slackRecord = new SlackRecord( - '#test', - 'test', - true, - null, - true, - true - ); - - $this->assertSame($expectedResult, $slackRecord->stringify($fields)); - } - - public function testAddsCustomUsername() - { - $username = 'Monolog bot'; - $record = new SlackRecord(null, $username); - $data = $record->getSlackData($this->getRecord()); - - $this->assertArrayHasKey('username', $data); - $this->assertSame($username, $data['username']); - } - - public function testNoIcon() - { - $record = new SlackRecord(); - $data = $record->getSlackData($this->getRecord()); - - $this->assertArrayNotHasKey('icon_emoji', $data); - } - - public function testAddsIcon() - { - $record = $this->getRecord(); - $slackRecord = new SlackRecord(null, null, false, 'ghost'); - $data = $slackRecord->getSlackData($record); - - $slackRecord2 = new SlackRecord(null, null, false, 'http://github.com/Seldaek/monolog'); - $data2 = $slackRecord2->getSlackData($record); - - $this->assertArrayHasKey('icon_emoji', $data); - $this->assertSame(':ghost:', $data['icon_emoji']); - $this->assertArrayHasKey('icon_url', $data2); - $this->assertSame('http://github.com/Seldaek/monolog', $data2['icon_url']); - } - - public function testAttachmentsNotPresentIfNoAttachment() - { - $record = new SlackRecord(null, null, false); - $data = $record->getSlackData($this->getRecord()); - - $this->assertArrayNotHasKey('attachments', $data); - } - - public function testAddsOneAttachment() - { - $record = new SlackRecord(); - $data = $record->getSlackData($this->getRecord()); - - $this->assertArrayHasKey('attachments', $data); - $this->assertArrayHasKey(0, $data['attachments']); - $this->assertInternalType('array', $data['attachments'][0]); - } - - public function testTextEqualsMessageIfNoAttachment() - { - $message = 'Test message'; - $record = new SlackRecord(null, null, false); - $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message)); - - $this->assertArrayHasKey('text', $data); - $this->assertSame($message, $data['text']); - } - - public function testTextEqualsFormatterOutput() - { - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $formatter - ->expects($this->any()) - ->method('format') - ->will($this->returnCallback(function ($record) { return $record['message'] . 'test'; })); - - $formatter2 = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $formatter2 - ->expects($this->any()) - ->method('format') - ->will($this->returnCallback(function ($record) { return $record['message'] . 'test1'; })); - - $message = 'Test message'; - $record = new SlackRecord(null, null, false, null, false, false, array(), $formatter); - $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message)); - - $this->assertArrayHasKey('text', $data); - $this->assertSame($message . 'test', $data['text']); - - $record->setFormatter($formatter2); - $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message)); - - $this->assertArrayHasKey('text', $data); - $this->assertSame($message . 'test1', $data['text']); - } - - public function testAddsFallbackAndTextToAttachment() - { - $message = 'Test message'; - $record = new SlackRecord(null); - $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message)); - - $this->assertSame($message, $data['attachments'][0]['text']); - $this->assertSame($message, $data['attachments'][0]['fallback']); - } - - public function testMapsLevelToColorAttachmentColor() - { - $record = new SlackRecord(null); - $errorLoggerRecord = $this->getRecord(Logger::ERROR); - $emergencyLoggerRecord = $this->getRecord(Logger::EMERGENCY); - $warningLoggerRecord = $this->getRecord(Logger::WARNING); - $infoLoggerRecord = $this->getRecord(Logger::INFO); - $debugLoggerRecord = $this->getRecord(Logger::DEBUG); - - $data = $record->getSlackData($errorLoggerRecord); - $this->assertSame(SlackRecord::COLOR_DANGER, $data['attachments'][0]['color']); - - $data = $record->getSlackData($emergencyLoggerRecord); - $this->assertSame(SlackRecord::COLOR_DANGER, $data['attachments'][0]['color']); - - $data = $record->getSlackData($warningLoggerRecord); - $this->assertSame(SlackRecord::COLOR_WARNING, $data['attachments'][0]['color']); - - $data = $record->getSlackData($infoLoggerRecord); - $this->assertSame(SlackRecord::COLOR_GOOD, $data['attachments'][0]['color']); - - $data = $record->getSlackData($debugLoggerRecord); - $this->assertSame(SlackRecord::COLOR_DEFAULT, $data['attachments'][0]['color']); - } - - public function testAddsShortAttachmentWithoutContextAndExtra() - { - $level = Logger::ERROR; - $levelName = Logger::getLevelName($level); - $record = new SlackRecord(null, null, true, null, true); - $data = $record->getSlackData($this->getRecord($level, 'test', array('test' => 1))); - - $attachment = $data['attachments'][0]; - $this->assertArrayHasKey('title', $attachment); - $this->assertArrayHasKey('fields', $attachment); - $this->assertSame($levelName, $attachment['title']); - $this->assertSame(array(), $attachment['fields']); - } - - public function testAddsShortAttachmentWithContextAndExtra() - { - $level = Logger::ERROR; - $levelName = Logger::getLevelName($level); - $context = array('test' => 1); - $extra = array('tags' => array('web')); - $record = new SlackRecord(null, null, true, null, true, true); - $loggerRecord = $this->getRecord($level, 'test', $context); - $loggerRecord['extra'] = $extra; - $data = $record->getSlackData($loggerRecord); - - $attachment = $data['attachments'][0]; - $this->assertArrayHasKey('title', $attachment); - $this->assertArrayHasKey('fields', $attachment); - $this->assertCount(2, $attachment['fields']); - $this->assertSame($levelName, $attachment['title']); - $this->assertSame( - array( - array( - 'title' => 'Extra', - 'value' => sprintf('```%s```', json_encode($extra, $this->jsonPrettyPrintFlag)), - 'short' => false - ), - array( - 'title' => 'Context', - 'value' => sprintf('```%s```', json_encode($context, $this->jsonPrettyPrintFlag)), - 'short' => false - ) - ), - $attachment['fields'] - ); - } - - public function testAddsLongAttachmentWithoutContextAndExtra() - { - $level = Logger::ERROR; - $levelName = Logger::getLevelName($level); - $record = new SlackRecord(null, null, true, null); - $data = $record->getSlackData($this->getRecord($level, 'test', array('test' => 1))); - - $attachment = $data['attachments'][0]; - $this->assertArrayHasKey('title', $attachment); - $this->assertArrayHasKey('fields', $attachment); - $this->assertCount(1, $attachment['fields']); - $this->assertSame('Message', $attachment['title']); - $this->assertSame( - array(array( - 'title' => 'Level', - 'value' => $levelName, - 'short' => false - )), - $attachment['fields'] - ); - } - - public function testAddsLongAttachmentWithContextAndExtra() - { - $level = Logger::ERROR; - $levelName = Logger::getLevelName($level); - $context = array('test' => 1); - $extra = array('tags' => array('web')); - $record = new SlackRecord(null, null, true, null, false, true); - $loggerRecord = $this->getRecord($level, 'test', $context); - $loggerRecord['extra'] = $extra; - $data = $record->getSlackData($loggerRecord); - - $expectedFields = array( - array( - 'title' => 'Level', - 'value' => $levelName, - 'short' => false, - ), - array( - 'title' => 'tags', - 'value' => sprintf('```%s```', json_encode($extra['tags'])), - 'short' => false - ), - array( - 'title' => 'test', - 'value' => $context['test'], - 'short' => false - ) - ); - - $attachment = $data['attachments'][0]; - $this->assertArrayHasKey('title', $attachment); - $this->assertArrayHasKey('fields', $attachment); - $this->assertCount(3, $attachment['fields']); - $this->assertSame('Message', $attachment['title']); - $this->assertSame( - $expectedFields, - $attachment['fields'] - ); - } - - public function testAddsTimestampToAttachment() - { - $record = $this->getRecord(); - $slackRecord = new SlackRecord(); - $data = $slackRecord->getSlackData($this->getRecord()); - - $attachment = $data['attachments'][0]; - $this->assertArrayHasKey('ts', $attachment); - $this->assertSame($record['datetime']->getTimestamp(), $attachment['ts']); - } - - public function testExcludeExtraAndContextFields() - { - $record = $this->getRecord( - Logger::WARNING, - 'test', - array('info' => array('library' => 'monolog', 'author' => 'Jordi')) - ); - $record['extra'] = array('tags' => array('web', 'cli')); - - $slackRecord = new SlackRecord(null, null, true, null, false, true, array('context.info.library', 'extra.tags.1')); - $data = $slackRecord->getSlackData($record); - $attachment = $data['attachments'][0]; - - $expected = array( - array( - 'title' => 'info', - 'value' => sprintf('```%s```', json_encode(array('author' => 'Jordi'), $this->jsonPrettyPrintFlag)), - 'short' => false - ), - array( - 'title' => 'tags', - 'value' => sprintf('```%s```', json_encode(array('web'))), - 'short' => false - ), - ); - - foreach ($expected as $field) { - $this->assertNotFalse(array_search($field, $attachment['fields'])); - break; - } - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php deleted file mode 100644 index b12b01f4..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php +++ /dev/null @@ -1,155 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; -use Monolog\Handler\Slack\SlackRecord; - -/** - * @author Greg Kedzierski - * @see https://api.slack.com/ - */ -class SlackHandlerTest extends TestCase -{ - /** - * @var resource - */ - private $res; - - /** - * @var SlackHandler - */ - private $handler; - - public function setUp() - { - if (!extension_loaded('openssl')) { - $this->markTestSkipped('This test requires openssl to run'); - } - } - - public function testWriteHeader() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/api\/chat.postMessage HTTP\/1.1\\r\\nHost: slack.com\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - } - - public function testWriteContent() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegExp('/username=Monolog/', $content); - $this->assertRegExp('/channel=channel1/', $content); - $this->assertRegExp('/token=myToken/', $content); - $this->assertRegExp('/attachments/', $content); - } - - public function testWriteContentUsesFormatterIfProvided() - { - $this->createHandler('myToken', 'channel1', 'Monolog', false); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->createHandler('myToken', 'channel1', 'Monolog', false); - $this->handler->setFormatter(new LineFormatter('foo--%message%')); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test2')); - fseek($this->res, 0); - $content2 = fread($this->res, 1024); - - $this->assertRegexp('/text=test1/', $content); - $this->assertRegexp('/text=foo--test2/', $content2); - } - - public function testWriteContentWithEmoji() - { - $this->createHandler('myToken', 'channel1', 'Monolog', true, 'alien'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/icon_emoji=%3Aalien%3A/', $content); - } - - /** - * @dataProvider provideLevelColors - */ - public function testWriteContentWithColors($level, $expectedColor) - { - $this->createHandler(); - $this->handler->handle($this->getRecord($level, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/%22color%22%3A%22'.$expectedColor.'/', $content); - } - - public function testWriteContentWithPlainTextMessage() - { - $this->createHandler('myToken', 'channel1', 'Monolog', false); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/text=test1/', $content); - } - - public function provideLevelColors() - { - return array( - array(Logger::DEBUG, urlencode(SlackRecord::COLOR_DEFAULT)), - array(Logger::INFO, SlackRecord::COLOR_GOOD), - array(Logger::NOTICE, SlackRecord::COLOR_GOOD), - array(Logger::WARNING, SlackRecord::COLOR_WARNING), - array(Logger::ERROR, SlackRecord::COLOR_DANGER), - array(Logger::CRITICAL, SlackRecord::COLOR_DANGER), - array(Logger::ALERT, SlackRecord::COLOR_DANGER), - array(Logger::EMERGENCY,SlackRecord::COLOR_DANGER), - ); - } - - private function createHandler($token = 'myToken', $channel = 'channel1', $username = 'Monolog', $useAttachment = true, $iconEmoji = null, $useShortAttachment = false, $includeExtra = false) - { - $constructorArgs = array($token, $channel, $username, $useAttachment, $iconEmoji, Logger::DEBUG, true, $useShortAttachment, $includeExtra); - $this->res = fopen('php://memory', 'a'); - $this->handler = $this->getMock( - '\Monolog\Handler\SlackHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), - $constructorArgs - ); - - $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); - $reflectionProperty->setAccessible(true); - $reflectionProperty->setValue($this->handler, 'localhost:1234'); - - $this->handler->expects($this->any()) - ->method('fsockopen') - ->will($this->returnValue($this->res)); - $this->handler->expects($this->any()) - ->method('streamSetTimeout') - ->will($this->returnValue(true)); - $this->handler->expects($this->any()) - ->method('closeSocket') - ->will($this->returnValue(true)); - - $this->handler->setFormatter($this->getIdentityFormatter()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php deleted file mode 100644 index c9229e26..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php +++ /dev/null @@ -1,107 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; -use Monolog\Handler\Slack\SlackRecord; - -/** - * @author Haralan Dobrev - * @see https://api.slack.com/incoming-webhooks - * @coversDefaultClass Monolog\Handler\SlackWebhookHandler - */ -class SlackWebhookHandlerTest extends TestCase -{ - const WEBHOOK_URL = 'https://hooks.slack.com/services/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E'; - - /** - * @covers ::__construct - * @covers ::getSlackRecord - */ - public function testConstructorMinimal() - { - $handler = new SlackWebhookHandler(self::WEBHOOK_URL); - $record = $this->getRecord(); - $slackRecord = $handler->getSlackRecord(); - $this->assertInstanceOf('Monolog\Handler\Slack\SlackRecord', $slackRecord); - $this->assertEquals(array( - 'attachments' => array( - array( - 'fallback' => 'test', - 'text' => 'test', - 'color' => SlackRecord::COLOR_WARNING, - 'fields' => array( - array( - 'title' => 'Level', - 'value' => 'WARNING', - 'short' => false, - ), - ), - 'title' => 'Message', - 'mrkdwn_in' => array('fields'), - 'ts' => $record['datetime']->getTimestamp(), - ), - ), - ), $slackRecord->getSlackData($record)); - } - - /** - * @covers ::__construct - * @covers ::getSlackRecord - */ - public function testConstructorFull() - { - $handler = new SlackWebhookHandler( - self::WEBHOOK_URL, - 'test-channel', - 'test-username', - false, - ':ghost:', - false, - false, - Logger::DEBUG, - false - ); - - $slackRecord = $handler->getSlackRecord(); - $this->assertInstanceOf('Monolog\Handler\Slack\SlackRecord', $slackRecord); - $this->assertEquals(array( - 'username' => 'test-username', - 'text' => 'test', - 'channel' => 'test-channel', - 'icon_emoji' => ':ghost:', - ), $slackRecord->getSlackData($this->getRecord())); - } - - /** - * @covers ::getFormatter - */ - public function testGetFormatter() - { - $handler = new SlackWebhookHandler(self::WEBHOOK_URL); - $formatter = $handler->getFormatter(); - $this->assertInstanceOf('Monolog\Formatter\FormatterInterface', $formatter); - } - - /** - * @covers ::setFormatter - */ - public function testSetFormatter() - { - $handler = new SlackWebhookHandler(self::WEBHOOK_URL); - $formatter = new LineFormatter(); - $handler->setFormatter($formatter); - $this->assertSame($formatter, $handler->getFormatter()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php deleted file mode 100644 index b1b02bde..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @author Haralan Dobrev - * @see https://slack.com/apps/A0F81R8ET-slackbot - * @coversDefaultClass Monolog\Handler\SlackbotHandler - */ -class SlackbotHandlerTest extends TestCase -{ - /** - * @covers ::__construct - */ - public function testConstructorMinimal() - { - $handler = new SlackbotHandler('test-team', 'test-token', 'test-channel'); - $this->assertInstanceOf('Monolog\Handler\AbstractProcessingHandler', $handler); - } - - /** - * @covers ::__construct - */ - public function testConstructorFull() - { - $handler = new SlackbotHandler( - 'test-team', - 'test-token', - 'test-channel', - Logger::DEBUG, - false - ); - $this->assertInstanceOf('Monolog\Handler\AbstractProcessingHandler', $handler); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php deleted file mode 100644 index 1f9c1f28..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php +++ /dev/null @@ -1,309 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @author Pablo de Leon Belloc - */ -class SocketHandlerTest extends TestCase -{ - /** - * @var Monolog\Handler\SocketHandler - */ - private $handler; - - /** - * @var resource - */ - private $res; - - /** - * @expectedException UnexpectedValueException - */ - public function testInvalidHostname() - { - $this->createHandler('garbage://here'); - $this->writeRecord('data'); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testBadConnectionTimeout() - { - $this->createHandler('localhost:1234'); - $this->handler->setConnectionTimeout(-1); - } - - public function testSetConnectionTimeout() - { - $this->createHandler('localhost:1234'); - $this->handler->setConnectionTimeout(10.1); - $this->assertEquals(10.1, $this->handler->getConnectionTimeout()); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testBadTimeout() - { - $this->createHandler('localhost:1234'); - $this->handler->setTimeout(-1); - } - - public function testSetTimeout() - { - $this->createHandler('localhost:1234'); - $this->handler->setTimeout(10.25); - $this->assertEquals(10.25, $this->handler->getTimeout()); - } - - public function testSetWritingTimeout() - { - $this->createHandler('localhost:1234'); - $this->handler->setWritingTimeout(10.25); - $this->assertEquals(10.25, $this->handler->getWritingTimeout()); - } - - public function testSetConnectionString() - { - $this->createHandler('tcp://localhost:9090'); - $this->assertEquals('tcp://localhost:9090', $this->handler->getConnectionString()); - } - - /** - * @expectedException UnexpectedValueException - */ - public function testExceptionIsThrownOnFsockopenError() - { - $this->setMockHandler(array('fsockopen')); - $this->handler->expects($this->once()) - ->method('fsockopen') - ->will($this->returnValue(false)); - $this->writeRecord('Hello world'); - } - - /** - * @expectedException UnexpectedValueException - */ - public function testExceptionIsThrownOnPfsockopenError() - { - $this->setMockHandler(array('pfsockopen')); - $this->handler->expects($this->once()) - ->method('pfsockopen') - ->will($this->returnValue(false)); - $this->handler->setPersistent(true); - $this->writeRecord('Hello world'); - } - - /** - * @expectedException UnexpectedValueException - */ - public function testExceptionIsThrownIfCannotSetTimeout() - { - $this->setMockHandler(array('streamSetTimeout')); - $this->handler->expects($this->once()) - ->method('streamSetTimeout') - ->will($this->returnValue(false)); - $this->writeRecord('Hello world'); - } - - /** - * @expectedException RuntimeException - */ - public function testWriteFailsOnIfFwriteReturnsFalse() - { - $this->setMockHandler(array('fwrite')); - - $callback = function ($arg) { - $map = array( - 'Hello world' => 6, - 'world' => false, - ); - - return $map[$arg]; - }; - - $this->handler->expects($this->exactly(2)) - ->method('fwrite') - ->will($this->returnCallback($callback)); - - $this->writeRecord('Hello world'); - } - - /** - * @expectedException RuntimeException - */ - public function testWriteFailsIfStreamTimesOut() - { - $this->setMockHandler(array('fwrite', 'streamGetMetadata')); - - $callback = function ($arg) { - $map = array( - 'Hello world' => 6, - 'world' => 5, - ); - - return $map[$arg]; - }; - - $this->handler->expects($this->exactly(1)) - ->method('fwrite') - ->will($this->returnCallback($callback)); - $this->handler->expects($this->exactly(1)) - ->method('streamGetMetadata') - ->will($this->returnValue(array('timed_out' => true))); - - $this->writeRecord('Hello world'); - } - - /** - * @expectedException RuntimeException - */ - public function testWriteFailsOnIncompleteWrite() - { - $this->setMockHandler(array('fwrite', 'streamGetMetadata')); - - $res = $this->res; - $callback = function ($string) use ($res) { - fclose($res); - - return strlen('Hello'); - }; - - $this->handler->expects($this->exactly(1)) - ->method('fwrite') - ->will($this->returnCallback($callback)); - $this->handler->expects($this->exactly(1)) - ->method('streamGetMetadata') - ->will($this->returnValue(array('timed_out' => false))); - - $this->writeRecord('Hello world'); - } - - public function testWriteWithMemoryFile() - { - $this->setMockHandler(); - $this->writeRecord('test1'); - $this->writeRecord('test2'); - $this->writeRecord('test3'); - fseek($this->res, 0); - $this->assertEquals('test1test2test3', fread($this->res, 1024)); - } - - public function testWriteWithMock() - { - $this->setMockHandler(array('fwrite')); - - $callback = function ($arg) { - $map = array( - 'Hello world' => 6, - 'world' => 5, - ); - - return $map[$arg]; - }; - - $this->handler->expects($this->exactly(2)) - ->method('fwrite') - ->will($this->returnCallback($callback)); - - $this->writeRecord('Hello world'); - } - - public function testClose() - { - $this->setMockHandler(); - $this->writeRecord('Hello world'); - $this->assertInternalType('resource', $this->res); - $this->handler->close(); - $this->assertFalse(is_resource($this->res), "Expected resource to be closed after closing handler"); - } - - public function testCloseDoesNotClosePersistentSocket() - { - $this->setMockHandler(); - $this->handler->setPersistent(true); - $this->writeRecord('Hello world'); - $this->assertTrue(is_resource($this->res)); - $this->handler->close(); - $this->assertTrue(is_resource($this->res)); - } - - /** - * @expectedException \RuntimeException - */ - public function testAvoidInfiniteLoopWhenNoDataIsWrittenForAWritingTimeoutSeconds() - { - $this->setMockHandler(array('fwrite', 'streamGetMetadata')); - - $this->handler->expects($this->any()) - ->method('fwrite') - ->will($this->returnValue(0)); - - $this->handler->expects($this->any()) - ->method('streamGetMetadata') - ->will($this->returnValue(array('timed_out' => false))); - - $this->handler->setWritingTimeout(1); - - $this->writeRecord('Hello world'); - } - - private function createHandler($connectionString) - { - $this->handler = new SocketHandler($connectionString); - $this->handler->setFormatter($this->getIdentityFormatter()); - } - - private function writeRecord($string) - { - $this->handler->handle($this->getRecord(Logger::WARNING, $string)); - } - - private function setMockHandler(array $methods = array()) - { - $this->res = fopen('php://memory', 'a'); - - $defaultMethods = array('fsockopen', 'pfsockopen', 'streamSetTimeout'); - $newMethods = array_diff($methods, $defaultMethods); - - $finalMethods = array_merge($defaultMethods, $newMethods); - - $this->handler = $this->getMock( - '\Monolog\Handler\SocketHandler', $finalMethods, array('localhost:1234') - ); - - if (!in_array('fsockopen', $methods)) { - $this->handler->expects($this->any()) - ->method('fsockopen') - ->will($this->returnValue($this->res)); - } - - if (!in_array('pfsockopen', $methods)) { - $this->handler->expects($this->any()) - ->method('pfsockopen') - ->will($this->returnValue($this->res)); - } - - if (!in_array('streamSetTimeout', $methods)) { - $this->handler->expects($this->any()) - ->method('streamSetTimeout') - ->will($this->returnValue(true)); - } - - $this->handler->setFormatter($this->getIdentityFormatter()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php deleted file mode 100644 index 487030fe..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php +++ /dev/null @@ -1,184 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -class StreamHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWrite() - { - $handle = fopen('php://memory', 'a+'); - $handler = new StreamHandler($handle); - $handler->setFormatter($this->getIdentityFormatter()); - $handler->handle($this->getRecord(Logger::WARNING, 'test')); - $handler->handle($this->getRecord(Logger::WARNING, 'test2')); - $handler->handle($this->getRecord(Logger::WARNING, 'test3')); - fseek($handle, 0); - $this->assertEquals('testtest2test3', fread($handle, 100)); - } - - /** - * @covers Monolog\Handler\StreamHandler::close - */ - public function testCloseKeepsExternalHandlersOpen() - { - $handle = fopen('php://memory', 'a+'); - $handler = new StreamHandler($handle); - $this->assertTrue(is_resource($handle)); - $handler->close(); - $this->assertTrue(is_resource($handle)); - } - - /** - * @covers Monolog\Handler\StreamHandler::close - */ - public function testClose() - { - $handler = new StreamHandler('php://memory'); - $handler->handle($this->getRecord(Logger::WARNING, 'test')); - $streamProp = new \ReflectionProperty('Monolog\Handler\StreamHandler', 'stream'); - $streamProp->setAccessible(true); - $handle = $streamProp->getValue($handler); - - $this->assertTrue(is_resource($handle)); - $handler->close(); - $this->assertFalse(is_resource($handle)); - } - - /** - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteCreatesTheStreamResource() - { - $handler = new StreamHandler('php://memory'); - $handler->handle($this->getRecord()); - } - - /** - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteLocking() - { - $temp = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'monolog_locked_log'; - $handler = new StreamHandler($temp, Logger::DEBUG, true, null, true); - $handler->handle($this->getRecord()); - } - - /** - * @expectedException LogicException - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteMissingResource() - { - $handler = new StreamHandler(null); - $handler->handle($this->getRecord()); - } - - public function invalidArgumentProvider() - { - return array( - array(1), - array(array()), - array(array('bogus://url')), - ); - } - - /** - * @dataProvider invalidArgumentProvider - * @expectedException InvalidArgumentException - * @covers Monolog\Handler\StreamHandler::__construct - */ - public function testWriteInvalidArgument($invalidArgument) - { - $handler = new StreamHandler($invalidArgument); - } - - /** - * @expectedException UnexpectedValueException - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteInvalidResource() - { - $handler = new StreamHandler('bogus://url'); - $handler->handle($this->getRecord()); - } - - /** - * @expectedException UnexpectedValueException - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteNonExistingResource() - { - $handler = new StreamHandler('ftp://foo/bar/baz/'.rand(0, 10000)); - $handler->handle($this->getRecord()); - } - - /** - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteNonExistingPath() - { - $handler = new StreamHandler(sys_get_temp_dir().'/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); - $handler->handle($this->getRecord()); - } - - /** - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteNonExistingFileResource() - { - $handler = new StreamHandler('file://'.sys_get_temp_dir().'/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); - $handler->handle($this->getRecord()); - } - - /** - * @expectedException Exception - * @expectedExceptionMessageRegExp /There is no existing directory at/ - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteNonExistingAndNotCreatablePath() - { - if (defined('PHP_WINDOWS_VERSION_BUILD')) { - $this->markTestSkipped('Permissions checks can not run on windows'); - } - $handler = new StreamHandler('/foo/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); - $handler->handle($this->getRecord()); - } - - /** - * @expectedException Exception - * @expectedExceptionMessageRegExp /There is no existing directory at/ - * @covers Monolog\Handler\StreamHandler::__construct - * @covers Monolog\Handler\StreamHandler::write - */ - public function testWriteNonExistingAndNotCreatableFileResource() - { - if (defined('PHP_WINDOWS_VERSION_BUILD')) { - $this->markTestSkipped('Permissions checks can not run on windows'); - } - $handler = new StreamHandler('file:///foo/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); - $handler->handle($this->getRecord()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php deleted file mode 100644 index 1d62940f..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\TestCase; - -class SwiftMailerHandlerTest extends TestCase -{ - /** @var \Swift_Mailer|\PHPUnit_Framework_MockObject_MockObject */ - private $mailer; - - public function setUp() - { - $this->mailer = $this - ->getMockBuilder('Swift_Mailer') - ->disableOriginalConstructor() - ->getMock(); - } - - public function testMessageCreationIsLazyWhenUsingCallback() - { - $this->mailer->expects($this->never()) - ->method('send'); - - $callback = function () { - throw new \RuntimeException('Swift_Message creation callback should not have been called in this test'); - }; - $handler = new SwiftMailerHandler($this->mailer, $callback); - - $records = array( - $this->getRecord(Logger::DEBUG), - $this->getRecord(Logger::INFO), - ); - $handler->handleBatch($records); - } - - public function testMessageCanBeCustomizedGivenLoggedData() - { - // Wire Mailer to expect a specific Swift_Message with a customized Subject - $expectedMessage = new \Swift_Message(); - $this->mailer->expects($this->once()) - ->method('send') - ->with($this->callback(function ($value) use ($expectedMessage) { - return $value instanceof \Swift_Message - && $value->getSubject() === 'Emergency' - && $value === $expectedMessage; - })); - - // Callback dynamically changes subject based on number of logged records - $callback = function ($content, array $records) use ($expectedMessage) { - $subject = count($records) > 0 ? 'Emergency' : 'Normal'; - $expectedMessage->setSubject($subject); - - return $expectedMessage; - }; - $handler = new SwiftMailerHandler($this->mailer, $callback); - - // Logging 1 record makes this an Emergency - $records = array( - $this->getRecord(Logger::EMERGENCY), - ); - $handler->handleBatch($records); - } - - public function testMessageSubjectFormatting() - { - // Wire Mailer to expect a specific Swift_Message with a customized Subject - $messageTemplate = new \Swift_Message(); - $messageTemplate->setSubject('Alert: %level_name% %message%'); - $receivedMessage = null; - - $this->mailer->expects($this->once()) - ->method('send') - ->with($this->callback(function ($value) use (&$receivedMessage) { - $receivedMessage = $value; - return true; - })); - - $handler = new SwiftMailerHandler($this->mailer, $messageTemplate); - - $records = array( - $this->getRecord(Logger::EMERGENCY), - ); - $handler->handleBatch($records); - - $this->assertEquals('Alert: EMERGENCY test', $receivedMessage->getSubject()); - } - - public function testMessageHaveUniqueId() - { - $messageTemplate = new \Swift_Message(); - $handler = new SwiftMailerHandler($this->mailer, $messageTemplate); - - $method = new \ReflectionMethod('Monolog\Handler\SwiftMailerHandler', 'buildMessage'); - $method->setAccessible(true); - $method->invokeArgs($handler, array($messageTemplate, array())); - - $builtMessage1 = $method->invoke($handler, $messageTemplate, array()); - $builtMessage2 = $method->invoke($handler, $messageTemplate, array()); - - $this->assertFalse($builtMessage1->getId() === $builtMessage2->getId(), 'Two different messages have the same id'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php deleted file mode 100644 index 8f9e46bf..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -class SyslogHandlerTest extends \PHPUnit_Framework_TestCase -{ - /** - * @covers Monolog\Handler\SyslogHandler::__construct - */ - public function testConstruct() - { - $handler = new SyslogHandler('test'); - $this->assertInstanceOf('Monolog\Handler\SyslogHandler', $handler); - - $handler = new SyslogHandler('test', LOG_USER); - $this->assertInstanceOf('Monolog\Handler\SyslogHandler', $handler); - - $handler = new SyslogHandler('test', 'user'); - $this->assertInstanceOf('Monolog\Handler\SyslogHandler', $handler); - - $handler = new SyslogHandler('test', LOG_USER, Logger::DEBUG, true, LOG_PERROR); - $this->assertInstanceOf('Monolog\Handler\SyslogHandler', $handler); - } - - /** - * @covers Monolog\Handler\SyslogHandler::__construct - */ - public function testConstructInvalidFacility() - { - $this->setExpectedException('UnexpectedValueException'); - $handler = new SyslogHandler('test', 'unknown'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php deleted file mode 100644 index 7ee8a985..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; - -/** - * @requires extension sockets - */ -class SyslogUdpHandlerTest extends TestCase -{ - /** - * @expectedException UnexpectedValueException - */ - public function testWeValidateFacilities() - { - $handler = new SyslogUdpHandler("ip", null, "invalidFacility"); - } - - public function testWeSplitIntoLines() - { - $time = '2014-01-07T12:34'; - $pid = getmypid(); - $host = gethostname(); - - $handler = $this->getMockBuilder('\Monolog\Handler\SyslogUdpHandler') - ->setConstructorArgs(array("127.0.0.1", 514, "authpriv")) - ->setMethods(array('getDateTime')) - ->getMock(); - - $handler->method('getDateTime') - ->willReturn($time); - - $handler->setFormatter(new \Monolog\Formatter\ChromePHPFormatter()); - - $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('write'), array('lol', 'lol')); - $socket->expects($this->at(0)) - ->method('write') - ->with("lol", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 $time $host php $pid - - "); - $socket->expects($this->at(1)) - ->method('write') - ->with("hej", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 $time $host php $pid - - "); - - $handler->setSocket($socket); - - $handler->handle($this->getRecordWithMessage("hej\nlol")); - } - - public function testSplitWorksOnEmptyMsg() - { - $handler = new SyslogUdpHandler("127.0.0.1", 514, "authpriv"); - $handler->setFormatter($this->getIdentityFormatter()); - - $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('write'), array('lol', 'lol')); - $socket->expects($this->never()) - ->method('write'); - - $handler->setSocket($socket); - - $handler->handle($this->getRecordWithMessage(null)); - } - - protected function getRecordWithMessage($msg) - { - return array('message' => $msg, 'level' => \Monolog\Logger::WARNING, 'context' => null, 'extra' => array(), 'channel' => 'lol'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php deleted file mode 100644 index bfb8d3df..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -/** - * @covers Monolog\Handler\TestHandler - */ -class TestHandlerTest extends TestCase -{ - /** - * @dataProvider methodProvider - */ - public function testHandler($method, $level) - { - $handler = new TestHandler; - $record = $this->getRecord($level, 'test'.$method); - $this->assertFalse($handler->hasRecords($level)); - $this->assertFalse($handler->hasRecord($record, $level)); - $this->assertFalse($handler->{'has'.$method}($record), 'has'.$method); - $this->assertFalse($handler->{'has'.$method.'ThatContains'}('test'), 'has'.$method.'ThatContains'); - $this->assertFalse($handler->{'has'.$method.'ThatPasses'}(function ($rec) { - return true; - }), 'has'.$method.'ThatPasses'); - $this->assertFalse($handler->{'has'.$method.'ThatMatches'}('/test\w+/')); - $this->assertFalse($handler->{'has'.$method.'Records'}(), 'has'.$method.'Records'); - $handler->handle($record); - - $this->assertFalse($handler->{'has'.$method}('bar'), 'has'.$method); - $this->assertTrue($handler->hasRecords($level)); - $this->assertTrue($handler->hasRecord($record, $level)); - $this->assertTrue($handler->{'has'.$method}($record), 'has'.$method); - $this->assertTrue($handler->{'has'.$method}('test'.$method), 'has'.$method); - $this->assertTrue($handler->{'has'.$method.'ThatContains'}('test'), 'has'.$method.'ThatContains'); - $this->assertTrue($handler->{'has'.$method.'ThatPasses'}(function ($rec) { - return true; - }), 'has'.$method.'ThatPasses'); - $this->assertTrue($handler->{'has'.$method.'ThatMatches'}('/test\w+/')); - $this->assertTrue($handler->{'has'.$method.'Records'}(), 'has'.$method.'Records'); - - $records = $handler->getRecords(); - unset($records[0]['formatted']); - $this->assertEquals(array($record), $records); - } - - public function methodProvider() - { - return array( - array('Emergency', Logger::EMERGENCY), - array('Alert' , Logger::ALERT), - array('Critical' , Logger::CRITICAL), - array('Error' , Logger::ERROR), - array('Warning' , Logger::WARNING), - array('Info' , Logger::INFO), - array('Notice' , Logger::NOTICE), - array('Debug' , Logger::DEBUG), - ); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php deleted file mode 100644 index fa524d00..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Handler\SyslogUdp\UdpSocket; - -/** - * @requires extension sockets - */ -class UdpSocketTest extends TestCase -{ - public function testWeDoNotTruncateShortMessages() - { - $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('send'), array('lol', 'lol')); - - $socket->expects($this->at(0)) - ->method('send') - ->with("HEADER: The quick brown fox jumps over the lazy dog"); - - $socket->write("The quick brown fox jumps over the lazy dog", "HEADER: "); - } - - public function testLongMessagesAreTruncated() - { - $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('send'), array('lol', 'lol')); - - $truncatedString = str_repeat("derp", 16254).'d'; - - $socket->expects($this->exactly(1)) - ->method('send') - ->with("HEADER" . $truncatedString); - - $longString = str_repeat("derp", 20000); - - $socket->write($longString, "HEADER"); - } - - public function testDoubleCloseDoesNotError() - { - $socket = new UdpSocket('127.0.0.1', 514); - $socket->close(); - $socket->close(); - } - - /** - * @expectedException LogicException - */ - public function testWriteAfterCloseErrors() - { - $socket = new UdpSocket('127.0.0.1', 514); - $socket->close(); - $socket->write('foo', "HEADER"); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php deleted file mode 100644 index 8d37a1fc..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php +++ /dev/null @@ -1,121 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; -use Monolog\Logger; - -class WhatFailureGroupHandlerTest extends TestCase -{ - /** - * @covers Monolog\Handler\WhatFailureGroupHandler::__construct - * @expectedException InvalidArgumentException - */ - public function testConstructorOnlyTakesHandler() - { - new WhatFailureGroupHandler(array(new TestHandler(), "foo")); - } - - /** - * @covers Monolog\Handler\WhatFailureGroupHandler::__construct - * @covers Monolog\Handler\WhatFailureGroupHandler::handle - */ - public function testHandle() - { - $testHandlers = array(new TestHandler(), new TestHandler()); - $handler = new WhatFailureGroupHandler($testHandlers); - $handler->handle($this->getRecord(Logger::DEBUG)); - $handler->handle($this->getRecord(Logger::INFO)); - foreach ($testHandlers as $test) { - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue(count($test->getRecords()) === 2); - } - } - - /** - * @covers Monolog\Handler\WhatFailureGroupHandler::handleBatch - */ - public function testHandleBatch() - { - $testHandlers = array(new TestHandler(), new TestHandler()); - $handler = new WhatFailureGroupHandler($testHandlers); - $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); - foreach ($testHandlers as $test) { - $this->assertTrue($test->hasDebugRecords()); - $this->assertTrue($test->hasInfoRecords()); - $this->assertTrue(count($test->getRecords()) === 2); - } - } - - /** - * @covers Monolog\Handler\WhatFailureGroupHandler::isHandling - */ - public function testIsHandling() - { - $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING)); - $handler = new WhatFailureGroupHandler($testHandlers); - $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR))); - $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING))); - $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); - } - - /** - * @covers Monolog\Handler\WhatFailureGroupHandler::handle - */ - public function testHandleUsesProcessors() - { - $test = new TestHandler(); - $handler = new WhatFailureGroupHandler(array($test)); - $handler->pushProcessor(function ($record) { - $record['extra']['foo'] = true; - - return $record; - }); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasWarningRecords()); - $records = $test->getRecords(); - $this->assertTrue($records[0]['extra']['foo']); - } - - /** - * @covers Monolog\Handler\WhatFailureGroupHandler::handle - */ - public function testHandleException() - { - $test = new TestHandler(); - $exception = new ExceptionTestHandler(); - $handler = new WhatFailureGroupHandler(array($exception, $test, $exception)); - $handler->pushProcessor(function ($record) { - $record['extra']['foo'] = true; - - return $record; - }); - $handler->handle($this->getRecord(Logger::WARNING)); - $this->assertTrue($test->hasWarningRecords()); - $records = $test->getRecords(); - $this->assertTrue($records[0]['extra']['foo']); - } -} - -class ExceptionTestHandler extends TestHandler -{ - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - parent::handle($record); - - throw new \Exception("ExceptionTestHandler::handle"); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php deleted file mode 100644 index 69b001ea..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\TestCase; - -class ZendMonitorHandlerTest extends TestCase -{ - protected $zendMonitorHandler; - - public function setUp() - { - if (!function_exists('zend_monitor_custom_event')) { - $this->markTestSkipped('ZendServer is not installed'); - } - } - - /** - * @covers Monolog\Handler\ZendMonitorHandler::write - */ - public function testWrite() - { - $record = $this->getRecord(); - $formatterResult = array( - 'message' => $record['message'], - ); - - $zendMonitor = $this->getMockBuilder('Monolog\Handler\ZendMonitorHandler') - ->setMethods(array('writeZendMonitorCustomEvent', 'getDefaultFormatter')) - ->getMock(); - - $formatterMock = $this->getMockBuilder('Monolog\Formatter\NormalizerFormatter') - ->disableOriginalConstructor() - ->getMock(); - - $formatterMock->expects($this->once()) - ->method('format') - ->will($this->returnValue($formatterResult)); - - $zendMonitor->expects($this->once()) - ->method('getDefaultFormatter') - ->will($this->returnValue($formatterMock)); - - $levelMap = $zendMonitor->getLevelMap(); - - $zendMonitor->expects($this->once()) - ->method('writeZendMonitorCustomEvent') - ->with($levelMap[$record['level']], $record['message'], $formatterResult); - - $zendMonitor->handle($record); - } - - /** - * @covers Monolog\Handler\ZendMonitorHandler::getDefaultFormatter - */ - public function testGetDefaultFormatterReturnsNormalizerFormatter() - { - $zendMonitor = new ZendMonitorHandler(); - $this->assertInstanceOf('Monolog\Formatter\NormalizerFormatter', $zendMonitor->getDefaultFormatter()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/LoggerTest.php b/vendor/monolog/monolog/tests/Monolog/LoggerTest.php deleted file mode 100644 index 1ecc34a0..00000000 --- a/vendor/monolog/monolog/tests/Monolog/LoggerTest.php +++ /dev/null @@ -1,548 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Monolog\Processor\WebProcessor; -use Monolog\Handler\TestHandler; - -class LoggerTest extends \PHPUnit_Framework_TestCase -{ - /** - * @covers Monolog\Logger::getName - */ - public function testGetName() - { - $logger = new Logger('foo'); - $this->assertEquals('foo', $logger->getName()); - } - - /** - * @covers Monolog\Logger::getLevelName - */ - public function testGetLevelName() - { - $this->assertEquals('ERROR', Logger::getLevelName(Logger::ERROR)); - } - - /** - * @covers Monolog\Logger::withName - */ - public function testWithName() - { - $first = new Logger('first', array($handler = new TestHandler())); - $second = $first->withName('second'); - - $this->assertSame('first', $first->getName()); - $this->assertSame('second', $second->getName()); - $this->assertSame($handler, $second->popHandler()); - } - - /** - * @covers Monolog\Logger::toMonologLevel - */ - public function testConvertPSR3ToMonologLevel() - { - $this->assertEquals(Logger::toMonologLevel('debug'), 100); - $this->assertEquals(Logger::toMonologLevel('info'), 200); - $this->assertEquals(Logger::toMonologLevel('notice'), 250); - $this->assertEquals(Logger::toMonologLevel('warning'), 300); - $this->assertEquals(Logger::toMonologLevel('error'), 400); - $this->assertEquals(Logger::toMonologLevel('critical'), 500); - $this->assertEquals(Logger::toMonologLevel('alert'), 550); - $this->assertEquals(Logger::toMonologLevel('emergency'), 600); - } - - /** - * @covers Monolog\Logger::getLevelName - * @expectedException InvalidArgumentException - */ - public function testGetLevelNameThrows() - { - Logger::getLevelName(5); - } - - /** - * @covers Monolog\Logger::__construct - */ - public function testChannel() - { - $logger = new Logger('foo'); - $handler = new TestHandler; - $logger->pushHandler($handler); - $logger->addWarning('test'); - list($record) = $handler->getRecords(); - $this->assertEquals('foo', $record['channel']); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testLog() - { - $logger = new Logger(__METHOD__); - - $handler = $this->getMock('Monolog\Handler\NullHandler', array('handle')); - $handler->expects($this->once()) - ->method('handle'); - $logger->pushHandler($handler); - - $this->assertTrue($logger->addWarning('test')); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testLogNotHandled() - { - $logger = new Logger(__METHOD__); - - $handler = $this->getMock('Monolog\Handler\NullHandler', array('handle'), array(Logger::ERROR)); - $handler->expects($this->never()) - ->method('handle'); - $logger->pushHandler($handler); - - $this->assertFalse($logger->addWarning('test')); - } - - public function testHandlersInCtor() - { - $handler1 = new TestHandler; - $handler2 = new TestHandler; - $logger = new Logger(__METHOD__, array($handler1, $handler2)); - - $this->assertEquals($handler1, $logger->popHandler()); - $this->assertEquals($handler2, $logger->popHandler()); - } - - public function testProcessorsInCtor() - { - $processor1 = new WebProcessor; - $processor2 = new WebProcessor; - $logger = new Logger(__METHOD__, array(), array($processor1, $processor2)); - - $this->assertEquals($processor1, $logger->popProcessor()); - $this->assertEquals($processor2, $logger->popProcessor()); - } - - /** - * @covers Monolog\Logger::pushHandler - * @covers Monolog\Logger::popHandler - * @expectedException LogicException - */ - public function testPushPopHandler() - { - $logger = new Logger(__METHOD__); - $handler1 = new TestHandler; - $handler2 = new TestHandler; - - $logger->pushHandler($handler1); - $logger->pushHandler($handler2); - - $this->assertEquals($handler2, $logger->popHandler()); - $this->assertEquals($handler1, $logger->popHandler()); - $logger->popHandler(); - } - - /** - * @covers Monolog\Logger::setHandlers - */ - public function testSetHandlers() - { - $logger = new Logger(__METHOD__); - $handler1 = new TestHandler; - $handler2 = new TestHandler; - - $logger->pushHandler($handler1); - $logger->setHandlers(array($handler2)); - - // handler1 has been removed - $this->assertEquals(array($handler2), $logger->getHandlers()); - - $logger->setHandlers(array( - "AMapKey" => $handler1, - "Woop" => $handler2, - )); - - // Keys have been scrubbed - $this->assertEquals(array($handler1, $handler2), $logger->getHandlers()); - } - - /** - * @covers Monolog\Logger::pushProcessor - * @covers Monolog\Logger::popProcessor - * @expectedException LogicException - */ - public function testPushPopProcessor() - { - $logger = new Logger(__METHOD__); - $processor1 = new WebProcessor; - $processor2 = new WebProcessor; - - $logger->pushProcessor($processor1); - $logger->pushProcessor($processor2); - - $this->assertEquals($processor2, $logger->popProcessor()); - $this->assertEquals($processor1, $logger->popProcessor()); - $logger->popProcessor(); - } - - /** - * @covers Monolog\Logger::pushProcessor - * @expectedException InvalidArgumentException - */ - public function testPushProcessorWithNonCallable() - { - $logger = new Logger(__METHOD__); - - $logger->pushProcessor(new \stdClass()); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testProcessorsAreExecuted() - { - $logger = new Logger(__METHOD__); - $handler = new TestHandler; - $logger->pushHandler($handler); - $logger->pushProcessor(function ($record) { - $record['extra']['win'] = true; - - return $record; - }); - $logger->addError('test'); - list($record) = $handler->getRecords(); - $this->assertTrue($record['extra']['win']); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testProcessorsAreCalledOnlyOnce() - { - $logger = new Logger(__METHOD__); - $handler = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler->expects($this->any()) - ->method('isHandling') - ->will($this->returnValue(true)) - ; - $handler->expects($this->any()) - ->method('handle') - ->will($this->returnValue(true)) - ; - $logger->pushHandler($handler); - - $processor = $this->getMockBuilder('Monolog\Processor\WebProcessor') - ->disableOriginalConstructor() - ->setMethods(array('__invoke')) - ->getMock() - ; - $processor->expects($this->once()) - ->method('__invoke') - ->will($this->returnArgument(0)) - ; - $logger->pushProcessor($processor); - - $logger->addError('test'); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testProcessorsNotCalledWhenNotHandled() - { - $logger = new Logger(__METHOD__); - $handler = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler->expects($this->once()) - ->method('isHandling') - ->will($this->returnValue(false)) - ; - $logger->pushHandler($handler); - $that = $this; - $logger->pushProcessor(function ($record) use ($that) { - $that->fail('The processor should not be called'); - }); - $logger->addAlert('test'); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testHandlersNotCalledBeforeFirstHandling() - { - $logger = new Logger(__METHOD__); - - $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler1->expects($this->never()) - ->method('isHandling') - ->will($this->returnValue(false)) - ; - $handler1->expects($this->once()) - ->method('handle') - ->will($this->returnValue(false)) - ; - $logger->pushHandler($handler1); - - $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler2->expects($this->once()) - ->method('isHandling') - ->will($this->returnValue(true)) - ; - $handler2->expects($this->once()) - ->method('handle') - ->will($this->returnValue(false)) - ; - $logger->pushHandler($handler2); - - $handler3 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler3->expects($this->once()) - ->method('isHandling') - ->will($this->returnValue(false)) - ; - $handler3->expects($this->never()) - ->method('handle') - ; - $logger->pushHandler($handler3); - - $logger->debug('test'); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testHandlersNotCalledBeforeFirstHandlingWithAssocArray() - { - $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler1->expects($this->never()) - ->method('isHandling') - ->will($this->returnValue(false)) - ; - $handler1->expects($this->once()) - ->method('handle') - ->will($this->returnValue(false)) - ; - - $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler2->expects($this->once()) - ->method('isHandling') - ->will($this->returnValue(true)) - ; - $handler2->expects($this->once()) - ->method('handle') - ->will($this->returnValue(false)) - ; - - $handler3 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler3->expects($this->once()) - ->method('isHandling') - ->will($this->returnValue(false)) - ; - $handler3->expects($this->never()) - ->method('handle') - ; - - $logger = new Logger(__METHOD__, array('last' => $handler3, 'second' => $handler2, 'first' => $handler1)); - - $logger->debug('test'); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testBubblingWhenTheHandlerReturnsFalse() - { - $logger = new Logger(__METHOD__); - - $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler1->expects($this->any()) - ->method('isHandling') - ->will($this->returnValue(true)) - ; - $handler1->expects($this->once()) - ->method('handle') - ->will($this->returnValue(false)) - ; - $logger->pushHandler($handler1); - - $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler2->expects($this->any()) - ->method('isHandling') - ->will($this->returnValue(true)) - ; - $handler2->expects($this->once()) - ->method('handle') - ->will($this->returnValue(false)) - ; - $logger->pushHandler($handler2); - - $logger->debug('test'); - } - - /** - * @covers Monolog\Logger::addRecord - */ - public function testNotBubblingWhenTheHandlerReturnsTrue() - { - $logger = new Logger(__METHOD__); - - $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler1->expects($this->any()) - ->method('isHandling') - ->will($this->returnValue(true)) - ; - $handler1->expects($this->never()) - ->method('handle') - ; - $logger->pushHandler($handler1); - - $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler2->expects($this->any()) - ->method('isHandling') - ->will($this->returnValue(true)) - ; - $handler2->expects($this->once()) - ->method('handle') - ->will($this->returnValue(true)) - ; - $logger->pushHandler($handler2); - - $logger->debug('test'); - } - - /** - * @covers Monolog\Logger::isHandling - */ - public function testIsHandling() - { - $logger = new Logger(__METHOD__); - - $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler1->expects($this->any()) - ->method('isHandling') - ->will($this->returnValue(false)) - ; - - $logger->pushHandler($handler1); - $this->assertFalse($logger->isHandling(Logger::DEBUG)); - - $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); - $handler2->expects($this->any()) - ->method('isHandling') - ->will($this->returnValue(true)) - ; - - $logger->pushHandler($handler2); - $this->assertTrue($logger->isHandling(Logger::DEBUG)); - } - - /** - * @dataProvider logMethodProvider - * @covers Monolog\Logger::addDebug - * @covers Monolog\Logger::addInfo - * @covers Monolog\Logger::addNotice - * @covers Monolog\Logger::addWarning - * @covers Monolog\Logger::addError - * @covers Monolog\Logger::addCritical - * @covers Monolog\Logger::addAlert - * @covers Monolog\Logger::addEmergency - * @covers Monolog\Logger::debug - * @covers Monolog\Logger::info - * @covers Monolog\Logger::notice - * @covers Monolog\Logger::warn - * @covers Monolog\Logger::err - * @covers Monolog\Logger::crit - * @covers Monolog\Logger::alert - * @covers Monolog\Logger::emerg - */ - public function testLogMethods($method, $expectedLevel) - { - $logger = new Logger('foo'); - $handler = new TestHandler; - $logger->pushHandler($handler); - $logger->{$method}('test'); - list($record) = $handler->getRecords(); - $this->assertEquals($expectedLevel, $record['level']); - } - - public function logMethodProvider() - { - return array( - // monolog methods - array('addDebug', Logger::DEBUG), - array('addInfo', Logger::INFO), - array('addNotice', Logger::NOTICE), - array('addWarning', Logger::WARNING), - array('addError', Logger::ERROR), - array('addCritical', Logger::CRITICAL), - array('addAlert', Logger::ALERT), - array('addEmergency', Logger::EMERGENCY), - - // ZF/Sf2 compat methods - array('debug', Logger::DEBUG), - array('info', Logger::INFO), - array('notice', Logger::NOTICE), - array('warn', Logger::WARNING), - array('err', Logger::ERROR), - array('crit', Logger::CRITICAL), - array('alert', Logger::ALERT), - array('emerg', Logger::EMERGENCY), - ); - } - - /** - * @dataProvider setTimezoneProvider - * @covers Monolog\Logger::setTimezone - */ - public function testSetTimezone($tz) - { - Logger::setTimezone($tz); - $logger = new Logger('foo'); - $handler = new TestHandler; - $logger->pushHandler($handler); - $logger->info('test'); - list($record) = $handler->getRecords(); - $this->assertEquals($tz, $record['datetime']->getTimezone()); - } - - public function setTimezoneProvider() - { - return array_map( - function ($tz) { return array(new \DateTimeZone($tz)); }, - \DateTimeZone::listIdentifiers() - ); - } - - /** - * @dataProvider useMicrosecondTimestampsProvider - * @covers Monolog\Logger::useMicrosecondTimestamps - * @covers Monolog\Logger::addRecord - */ - public function testUseMicrosecondTimestamps($micro, $assert) - { - $logger = new Logger('foo'); - $logger->useMicrosecondTimestamps($micro); - $handler = new TestHandler; - $logger->pushHandler($handler); - $logger->info('test'); - list($record) = $handler->getRecords(); - $this->{$assert}('000000', $record['datetime']->format('u')); - } - - public function useMicrosecondTimestampsProvider() - { - return array( - // this has a very small chance of a false negative (1/10^6) - 'with microseconds' => array(true, 'assertNotSame'), - 'without microseconds' => array(false, PHP_VERSION_ID >= 70100 ? 'assertNotSame' : 'assertSame'), - ); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php deleted file mode 100644 index 5adb505d..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\TestCase; - -class GitProcessorTest extends TestCase -{ - /** - * @covers Monolog\Processor\GitProcessor::__invoke - */ - public function testProcessor() - { - $processor = new GitProcessor(); - $record = $processor($this->getRecord()); - - $this->assertArrayHasKey('git', $record['extra']); - $this->assertTrue(!is_array($record['extra']['git']['branch'])); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php deleted file mode 100644 index 0dd411d7..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php +++ /dev/null @@ -1,123 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Acme; - -class Tester -{ - public function test($handler, $record) - { - $handler->handle($record); - } -} - -function tester($handler, $record) -{ - $handler->handle($record); -} - -namespace Monolog\Processor; - -use Monolog\Logger; -use Monolog\TestCase; -use Monolog\Handler\TestHandler; - -class IntrospectionProcessorTest extends TestCase -{ - public function getHandler() - { - $processor = new IntrospectionProcessor(); - $handler = new TestHandler(); - $handler->pushProcessor($processor); - - return $handler; - } - - public function testProcessorFromClass() - { - $handler = $this->getHandler(); - $tester = new \Acme\Tester; - $tester->test($handler, $this->getRecord()); - list($record) = $handler->getRecords(); - $this->assertEquals(__FILE__, $record['extra']['file']); - $this->assertEquals(18, $record['extra']['line']); - $this->assertEquals('Acme\Tester', $record['extra']['class']); - $this->assertEquals('test', $record['extra']['function']); - } - - public function testProcessorFromFunc() - { - $handler = $this->getHandler(); - \Acme\tester($handler, $this->getRecord()); - list($record) = $handler->getRecords(); - $this->assertEquals(__FILE__, $record['extra']['file']); - $this->assertEquals(24, $record['extra']['line']); - $this->assertEquals(null, $record['extra']['class']); - $this->assertEquals('Acme\tester', $record['extra']['function']); - } - - public function testLevelTooLow() - { - $input = array( - 'level' => Logger::DEBUG, - 'extra' => array(), - ); - - $expected = $input; - - $processor = new IntrospectionProcessor(Logger::CRITICAL); - $actual = $processor($input); - - $this->assertEquals($expected, $actual); - } - - public function testLevelEqual() - { - $input = array( - 'level' => Logger::CRITICAL, - 'extra' => array(), - ); - - $expected = $input; - $expected['extra'] = array( - 'file' => null, - 'line' => null, - 'class' => 'ReflectionMethod', - 'function' => 'invokeArgs', - ); - - $processor = new IntrospectionProcessor(Logger::CRITICAL); - $actual = $processor($input); - - $this->assertEquals($expected, $actual); - } - - public function testLevelHigher() - { - $input = array( - 'level' => Logger::EMERGENCY, - 'extra' => array(), - ); - - $expected = $input; - $expected['extra'] = array( - 'file' => null, - 'line' => null, - 'class' => 'ReflectionMethod', - 'function' => 'invokeArgs', - ); - - $processor = new IntrospectionProcessor(Logger::CRITICAL); - $actual = $processor($input); - - $this->assertEquals($expected, $actual); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php deleted file mode 100644 index eb666144..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\TestCase; - -class MemoryPeakUsageProcessorTest extends TestCase -{ - /** - * @covers Monolog\Processor\MemoryPeakUsageProcessor::__invoke - * @covers Monolog\Processor\MemoryProcessor::formatBytes - */ - public function testProcessor() - { - $processor = new MemoryPeakUsageProcessor(); - $record = $processor($this->getRecord()); - $this->assertArrayHasKey('memory_peak_usage', $record['extra']); - $this->assertRegExp('#[0-9.]+ (M|K)?B$#', $record['extra']['memory_peak_usage']); - } - - /** - * @covers Monolog\Processor\MemoryPeakUsageProcessor::__invoke - * @covers Monolog\Processor\MemoryProcessor::formatBytes - */ - public function testProcessorWithoutFormatting() - { - $processor = new MemoryPeakUsageProcessor(true, false); - $record = $processor($this->getRecord()); - $this->assertArrayHasKey('memory_peak_usage', $record['extra']); - $this->assertInternalType('int', $record['extra']['memory_peak_usage']); - $this->assertGreaterThan(0, $record['extra']['memory_peak_usage']); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php deleted file mode 100644 index 4692dbfc..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\TestCase; - -class MemoryUsageProcessorTest extends TestCase -{ - /** - * @covers Monolog\Processor\MemoryUsageProcessor::__invoke - * @covers Monolog\Processor\MemoryProcessor::formatBytes - */ - public function testProcessor() - { - $processor = new MemoryUsageProcessor(); - $record = $processor($this->getRecord()); - $this->assertArrayHasKey('memory_usage', $record['extra']); - $this->assertRegExp('#[0-9.]+ (M|K)?B$#', $record['extra']['memory_usage']); - } - - /** - * @covers Monolog\Processor\MemoryUsageProcessor::__invoke - * @covers Monolog\Processor\MemoryProcessor::formatBytes - */ - public function testProcessorWithoutFormatting() - { - $processor = new MemoryUsageProcessor(true, false); - $record = $processor($this->getRecord()); - $this->assertArrayHasKey('memory_usage', $record['extra']); - $this->assertInternalType('int', $record['extra']['memory_usage']); - $this->assertGreaterThan(0, $record['extra']['memory_usage']); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php deleted file mode 100644 index 11f2b35a..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\TestCase; - -class MercurialProcessorTest extends TestCase -{ - /** - * @covers Monolog\Processor\MercurialProcessor::__invoke - */ - public function testProcessor() - { - if (defined('PHP_WINDOWS_VERSION_BUILD')) { - exec("where hg 2>NUL", $output, $result); - } else { - exec("which hg 2>/dev/null >/dev/null", $output, $result); - } - if ($result != 0) { - $this->markTestSkipped('hg is missing'); - return; - } - - `hg init`; - $processor = new MercurialProcessor(); - $record = $processor($this->getRecord()); - - $this->assertArrayHasKey('hg', $record['extra']); - $this->assertTrue(!is_array($record['extra']['hg']['branch'])); - $this->assertTrue(!is_array($record['extra']['hg']['revision'])); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php deleted file mode 100644 index 458d2a33..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\TestCase; - -class ProcessIdProcessorTest extends TestCase -{ - /** - * @covers Monolog\Processor\ProcessIdProcessor::__invoke - */ - public function testProcessor() - { - $processor = new ProcessIdProcessor(); - $record = $processor($this->getRecord()); - $this->assertArrayHasKey('process_id', $record['extra']); - $this->assertInternalType('int', $record['extra']['process_id']); - $this->assertGreaterThan(0, $record['extra']['process_id']); - $this->assertEquals(getmypid(), $record['extra']['process_id']); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php deleted file mode 100644 index 029a0c02..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -class PsrLogMessageProcessorTest extends \PHPUnit_Framework_TestCase -{ - /** - * @dataProvider getPairs - */ - public function testReplacement($val, $expected) - { - $proc = new PsrLogMessageProcessor; - - $message = $proc(array( - 'message' => '{foo}', - 'context' => array('foo' => $val), - )); - $this->assertEquals($expected, $message['message']); - } - - public function getPairs() - { - return array( - array('foo', 'foo'), - array('3', '3'), - array(3, '3'), - array(null, ''), - array(true, '1'), - array(false, ''), - array(new \stdClass, '[object stdClass]'), - array(array(), '[array]'), - ); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php deleted file mode 100644 index 0d860c61..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\TestCase; - -class TagProcessorTest extends TestCase -{ - /** - * @covers Monolog\Processor\TagProcessor::__invoke - */ - public function testProcessor() - { - $tags = array(1, 2, 3); - $processor = new TagProcessor($tags); - $record = $processor($this->getRecord()); - - $this->assertEquals($tags, $record['extra']['tags']); - } - - /** - * @covers Monolog\Processor\TagProcessor::__invoke - */ - public function testProcessorTagModification() - { - $tags = array(1, 2, 3); - $processor = new TagProcessor($tags); - - $record = $processor($this->getRecord()); - $this->assertEquals($tags, $record['extra']['tags']); - - $processor->setTags(array('a', 'b')); - $record = $processor($this->getRecord()); - $this->assertEquals(array('a', 'b'), $record['extra']['tags']); - - $processor->addTags(array('a', 'c', 'foo' => 'bar')); - $record = $processor($this->getRecord()); - $this->assertEquals(array('a', 'b', 'a', 'c', 'foo' => 'bar'), $record['extra']['tags']); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php deleted file mode 100644 index 5d13058f..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\TestCase; - -class UidProcessorTest extends TestCase -{ - /** - * @covers Monolog\Processor\UidProcessor::__invoke - */ - public function testProcessor() - { - $processor = new UidProcessor(); - $record = $processor($this->getRecord()); - $this->assertArrayHasKey('uid', $record['extra']); - } - - public function testGetUid() - { - $processor = new UidProcessor(10); - $this->assertEquals(10, strlen($processor->getUid())); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php deleted file mode 100644 index 4105baf7..00000000 --- a/vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\TestCase; - -class WebProcessorTest extends TestCase -{ - public function testProcessor() - { - $server = array( - 'REQUEST_URI' => 'A', - 'REMOTE_ADDR' => 'B', - 'REQUEST_METHOD' => 'C', - 'HTTP_REFERER' => 'D', - 'SERVER_NAME' => 'F', - 'UNIQUE_ID' => 'G', - ); - - $processor = new WebProcessor($server); - $record = $processor($this->getRecord()); - $this->assertEquals($server['REQUEST_URI'], $record['extra']['url']); - $this->assertEquals($server['REMOTE_ADDR'], $record['extra']['ip']); - $this->assertEquals($server['REQUEST_METHOD'], $record['extra']['http_method']); - $this->assertEquals($server['HTTP_REFERER'], $record['extra']['referrer']); - $this->assertEquals($server['SERVER_NAME'], $record['extra']['server']); - $this->assertEquals($server['UNIQUE_ID'], $record['extra']['unique_id']); - } - - public function testProcessorDoNothingIfNoRequestUri() - { - $server = array( - 'REMOTE_ADDR' => 'B', - 'REQUEST_METHOD' => 'C', - ); - $processor = new WebProcessor($server); - $record = $processor($this->getRecord()); - $this->assertEmpty($record['extra']); - } - - public function testProcessorReturnNullIfNoHttpReferer() - { - $server = array( - 'REQUEST_URI' => 'A', - 'REMOTE_ADDR' => 'B', - 'REQUEST_METHOD' => 'C', - 'SERVER_NAME' => 'F', - ); - $processor = new WebProcessor($server); - $record = $processor($this->getRecord()); - $this->assertNull($record['extra']['referrer']); - } - - public function testProcessorDoesNotAddUniqueIdIfNotPresent() - { - $server = array( - 'REQUEST_URI' => 'A', - 'REMOTE_ADDR' => 'B', - 'REQUEST_METHOD' => 'C', - 'SERVER_NAME' => 'F', - ); - $processor = new WebProcessor($server); - $record = $processor($this->getRecord()); - $this->assertFalse(isset($record['extra']['unique_id'])); - } - - public function testProcessorAddsOnlyRequestedExtraFields() - { - $server = array( - 'REQUEST_URI' => 'A', - 'REMOTE_ADDR' => 'B', - 'REQUEST_METHOD' => 'C', - 'SERVER_NAME' => 'F', - ); - - $processor = new WebProcessor($server, array('url', 'http_method')); - $record = $processor($this->getRecord()); - - $this->assertSame(array('url' => 'A', 'http_method' => 'C'), $record['extra']); - } - - public function testProcessorConfiguringOfExtraFields() - { - $server = array( - 'REQUEST_URI' => 'A', - 'REMOTE_ADDR' => 'B', - 'REQUEST_METHOD' => 'C', - 'SERVER_NAME' => 'F', - ); - - $processor = new WebProcessor($server, array('url' => 'REMOTE_ADDR')); - $record = $processor($this->getRecord()); - - $this->assertSame(array('url' => 'B'), $record['extra']); - } - - /** - * @expectedException UnexpectedValueException - */ - public function testInvalidData() - { - new WebProcessor(new \stdClass); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php b/vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php deleted file mode 100644 index ab899449..00000000 --- a/vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Monolog\Handler\TestHandler; -use Monolog\Formatter\LineFormatter; -use Monolog\Processor\PsrLogMessageProcessor; -use Psr\Log\Test\LoggerInterfaceTest; - -class PsrLogCompatTest extends LoggerInterfaceTest -{ - private $handler; - - public function getLogger() - { - $logger = new Logger('foo'); - $logger->pushHandler($handler = new TestHandler); - $logger->pushProcessor(new PsrLogMessageProcessor); - $handler->setFormatter(new LineFormatter('%level_name% %message%')); - - $this->handler = $handler; - - return $logger; - } - - public function getLogs() - { - $convert = function ($record) { - $lower = function ($match) { - return strtolower($match[0]); - }; - - return preg_replace_callback('{^[A-Z]+}', $lower, $record['formatted']); - }; - - return array_map($convert, $this->handler->getRecords()); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/RegistryTest.php b/vendor/monolog/monolog/tests/Monolog/RegistryTest.php deleted file mode 100644 index 15fdfbd2..00000000 --- a/vendor/monolog/monolog/tests/Monolog/RegistryTest.php +++ /dev/null @@ -1,153 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -class RegistryTest extends \PHPUnit_Framework_TestCase -{ - protected function setUp() - { - Registry::clear(); - } - - /** - * @dataProvider hasLoggerProvider - * @covers Monolog\Registry::hasLogger - */ - public function testHasLogger(array $loggersToAdd, array $loggersToCheck, array $expectedResult) - { - foreach ($loggersToAdd as $loggerToAdd) { - Registry::addLogger($loggerToAdd); - } - foreach ($loggersToCheck as $index => $loggerToCheck) { - $this->assertSame($expectedResult[$index], Registry::hasLogger($loggerToCheck)); - } - } - - public function hasLoggerProvider() - { - $logger1 = new Logger('test1'); - $logger2 = new Logger('test2'); - $logger3 = new Logger('test3'); - - return array( - // only instances - array( - array($logger1), - array($logger1, $logger2), - array(true, false), - ), - // only names - array( - array($logger1), - array('test1', 'test2'), - array(true, false), - ), - // mixed case - array( - array($logger1, $logger2), - array('test1', $logger2, 'test3', $logger3), - array(true, true, false, false), - ), - ); - } - - /** - * @covers Monolog\Registry::clear - */ - public function testClearClears() - { - Registry::addLogger(new Logger('test1'), 'log'); - Registry::clear(); - - $this->setExpectedException('\InvalidArgumentException'); - Registry::getInstance('log'); - } - - /** - * @dataProvider removedLoggerProvider - * @covers Monolog\Registry::addLogger - * @covers Monolog\Registry::removeLogger - */ - public function testRemovesLogger($loggerToAdd, $remove) - { - Registry::addLogger($loggerToAdd); - Registry::removeLogger($remove); - - $this->setExpectedException('\InvalidArgumentException'); - Registry::getInstance($loggerToAdd->getName()); - } - - public function removedLoggerProvider() - { - $logger1 = new Logger('test1'); - - return array( - array($logger1, $logger1), - array($logger1, 'test1'), - ); - } - - /** - * @covers Monolog\Registry::addLogger - * @covers Monolog\Registry::getInstance - * @covers Monolog\Registry::__callStatic - */ - public function testGetsSameLogger() - { - $logger1 = new Logger('test1'); - $logger2 = new Logger('test2'); - - Registry::addLogger($logger1, 'test1'); - Registry::addLogger($logger2); - - $this->assertSame($logger1, Registry::getInstance('test1')); - $this->assertSame($logger2, Registry::test2()); - } - - /** - * @expectedException \InvalidArgumentException - * @covers Monolog\Registry::getInstance - */ - public function testFailsOnNonExistantLogger() - { - Registry::getInstance('test1'); - } - - /** - * @covers Monolog\Registry::addLogger - */ - public function testReplacesLogger() - { - $log1 = new Logger('test1'); - $log2 = new Logger('test2'); - - Registry::addLogger($log1, 'log'); - - Registry::addLogger($log2, 'log', true); - - $this->assertSame($log2, Registry::getInstance('log')); - } - - /** - * @expectedException \InvalidArgumentException - * @covers Monolog\Registry::addLogger - */ - public function testFailsOnUnspecifiedReplacement() - { - $log1 = new Logger('test1'); - $log2 = new Logger('test2'); - - Registry::addLogger($log1, 'log'); - - Registry::addLogger($log2, 'log'); - } -} diff --git a/vendor/monolog/monolog/tests/Monolog/TestCase.php b/vendor/monolog/monolog/tests/Monolog/TestCase.php deleted file mode 100644 index 4eb7b4c9..00000000 --- a/vendor/monolog/monolog/tests/Monolog/TestCase.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -class TestCase extends \PHPUnit_Framework_TestCase -{ - /** - * @return array Record - */ - protected function getRecord($level = Logger::WARNING, $message = 'test', $context = array()) - { - return array( - 'message' => $message, - 'context' => $context, - 'level' => $level, - 'level_name' => Logger::getLevelName($level), - 'channel' => 'test', - 'datetime' => \DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true))), - 'extra' => array(), - ); - } - - /** - * @return array - */ - protected function getMultipleRecords() - { - return array( - $this->getRecord(Logger::DEBUG, 'debug message 1'), - $this->getRecord(Logger::DEBUG, 'debug message 2'), - $this->getRecord(Logger::INFO, 'information'), - $this->getRecord(Logger::WARNING, 'warning'), - $this->getRecord(Logger::ERROR, 'error'), - ); - } - - /** - * @return Monolog\Formatter\FormatterInterface - */ - protected function getIdentityFormatter() - { - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $formatter->expects($this->any()) - ->method('format') - ->will($this->returnCallback(function ($record) { return $record['message']; })); - - return $formatter; - } -} diff --git a/vendor/mtdowling/cron-expression/.editorconfig b/vendor/mtdowling/cron-expression/.editorconfig deleted file mode 100644 index 1492202b..00000000 --- a/vendor/mtdowling/cron-expression/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false - -[*.yml] -indent_style = space -indent_size = 2 diff --git a/vendor/mtdowling/cron-expression/CHANGELOG.md b/vendor/mtdowling/cron-expression/CHANGELOG.md deleted file mode 100644 index 8ddab905..00000000 --- a/vendor/mtdowling/cron-expression/CHANGELOG.md +++ /dev/null @@ -1,36 +0,0 @@ -# Change Log - -## [1.2.0] - 2017-01-22 -### Added -- Added IDE, CodeSniffer, and StyleCI.IO support - -### Changed -- Switched to PSR-4 Autoloading - -### Fixed -- 0 step expressions are handled better -- Fixed `DayOfMonth` validation to be more strict -- Typos - -## [1.1.0] - 2016-01-26 -### Added -- Support for non-hourly offset timezones -- Checks for valid expressions - -### Changed -- Max Iterations no longer hardcoded for `getRunDate()` -- Supports DateTimeImmutable for newer PHP verions - -### Fixed -- Fixed looping bug for PHP 7 when determining the last specified weekday of a month - -## [1.0.3] - 2013-11-23 -### Added -- Now supports expressions with any number of extra spaces, tabs, or newlines - -### Changed -- Using static instead of self in `CronExpression::factory` - -### Fixed -- Fixes issue [#28](https://github.com/mtdowling/cron-expression/issues/28) where PHP increments of ranges were failing due to PHP casting hyphens to 0 -- Only set default timezone if the given $currentTime is not a DateTime instance ([#34](https://github.com/mtdowling/cron-expression/issues/34)) diff --git a/vendor/mtdowling/cron-expression/LICENSE b/vendor/mtdowling/cron-expression/LICENSE deleted file mode 100644 index c6d88ac6..00000000 --- a/vendor/mtdowling/cron-expression/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Michael Dowling and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/mtdowling/cron-expression/README.md b/vendor/mtdowling/cron-expression/README.md deleted file mode 100644 index c9e3bf3e..00000000 --- a/vendor/mtdowling/cron-expression/README.md +++ /dev/null @@ -1,71 +0,0 @@ -PHP Cron Expression Parser -========================== - -[![Latest Stable Version](https://poser.pugx.org/mtdowling/cron-expression/v/stable.png)](https://packagist.org/packages/mtdowling/cron-expression) [![Total Downloads](https://poser.pugx.org/mtdowling/cron-expression/downloads.png)](https://packagist.org/packages/mtdowling/cron-expression) [![Build Status](https://secure.travis-ci.org/mtdowling/cron-expression.png)](http://travis-ci.org/mtdowling/cron-expression) - -The PHP cron expression parser can parse a CRON expression, determine if it is -due to run, calculate the next run date of the expression, and calculate the previous -run date of the expression. You can calculate dates far into the future or past by -skipping n number of matching dates. - -The parser can handle increments of ranges (e.g. */12, 2-59/3), intervals (e.g. 0-9), -lists (e.g. 1,2,3), W to find the nearest weekday for a given day of the month, L to -find the last day of the month, L to find the last given weekday of a month, and hash -(#) to find the nth weekday of a given month. - -Installing -========== - -Add the dependency to your project: - -```bash -composer require mtdowling/cron-expression -``` - -Usage -===== -```php -isDue(); -echo $cron->getNextRunDate()->format('Y-m-d H:i:s'); -echo $cron->getPreviousRunDate()->format('Y-m-d H:i:s'); - -// Works with complex expressions -$cron = Cron\CronExpression::factory('3-59/15 2,6-12 */15 1 2-5'); -echo $cron->getNextRunDate()->format('Y-m-d H:i:s'); - -// Calculate a run date two iterations into the future -$cron = Cron\CronExpression::factory('@daily'); -echo $cron->getNextRunDate(null, 2)->format('Y-m-d H:i:s'); - -// Calculate a run date relative to a specific time -$cron = Cron\CronExpression::factory('@monthly'); -echo $cron->getNextRunDate('2010-01-12 00:00:00')->format('Y-m-d H:i:s'); -``` - -CRON Expressions -================ - -A CRON expression is a string representing the schedule for a particular command to execute. The parts of a CRON schedule are as follows: - - * * * * * * - - - - - - - - | | | | | | - | | | | | + year [optional] - | | | | +----- day of week (0 - 7) (Sunday=0 or 7) - | | | +---------- month (1 - 12) - | | +--------------- day of month (1 - 31) - | +-------------------- hour (0 - 23) - +------------------------- min (0 - 59) - -Requirements -============ - -- PHP 5.3+ -- PHPUnit is required to run the unit tests -- Composer is required to run the unit tests \ No newline at end of file diff --git a/vendor/mtdowling/cron-expression/composer.json b/vendor/mtdowling/cron-expression/composer.json deleted file mode 100644 index ce42d40d..00000000 --- a/vendor/mtdowling/cron-expression/composer.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "mtdowling/cron-expression", - "type": "library", - "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": ["cron", "schedule"], - "license": "MIT", - "authors": [{ - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }], - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "autoload": { - "psr-4": { - "Cron\\": "src/Cron/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/Cron/" - } - } -} \ No newline at end of file diff --git a/vendor/mtdowling/cron-expression/src/Cron/AbstractField.php b/vendor/mtdowling/cron-expression/src/Cron/AbstractField.php deleted file mode 100644 index cd2410ab..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/AbstractField.php +++ /dev/null @@ -1,148 +0,0 @@ -isIncrementsOfRanges($value)) { - return $this->isInIncrementsOfRanges($dateValue, $value); - } elseif ($this->isRange($value)) { - return $this->isInRange($dateValue, $value); - } - - return $value == '*' || $dateValue == $value; - } - - /** - * Check if a value is a range - * - * @param string $value Value to test - * - * @return bool - */ - public function isRange($value) - { - return strpos($value, '-') !== false; - } - - /** - * Check if a value is an increments of ranges - * - * @param string $value Value to test - * - * @return bool - */ - public function isIncrementsOfRanges($value) - { - return strpos($value, '/') !== false; - } - - /** - * Test if a value is within a range - * - * @param string $dateValue Set date value - * @param string $value Value to test - * - * @return bool - */ - public function isInRange($dateValue, $value) - { - $parts = array_map('trim', explode('-', $value, 2)); - - return $dateValue >= $parts[0] && $dateValue <= $parts[1]; - } - - /** - * Test if a value is within an increments of ranges (offset[-to]/step size) - * - * @param string $dateValue Set date value - * @param string $value Value to test - * - * @return bool - */ - public function isInIncrementsOfRanges($dateValue, $value) - { - $parts = array_map('trim', explode('/', $value, 2)); - $stepSize = isset($parts[1]) ? (int) $parts[1] : 0; - - if ($stepSize === 0) { - return false; - } - - if (($parts[0] == '*' || $parts[0] === '0')) { - return (int) $dateValue % $stepSize == 0; - } - - $range = explode('-', $parts[0], 2); - $offset = $range[0]; - $to = isset($range[1]) ? $range[1] : $dateValue; - // Ensure that the date value is within the range - if ($dateValue < $offset || $dateValue > $to) { - return false; - } - - if ($dateValue > $offset && 0 === $stepSize) { - return false; - } - - for ($i = $offset; $i <= $to; $i+= $stepSize) { - if ($i == $dateValue) { - return true; - } - } - - return false; - } - - /** - * Returns a range of values for the given cron expression - * - * @param string $expression The expression to evaluate - * @param int $max Maximum offset for range - * - * @return array - */ - public function getRangeForExpression($expression, $max) - { - $values = array(); - - if ($this->isRange($expression) || $this->isIncrementsOfRanges($expression)) { - if (!$this->isIncrementsOfRanges($expression)) { - list ($offset, $to) = explode('-', $expression); - $stepSize = 1; - } - else { - $range = array_map('trim', explode('/', $expression, 2)); - $stepSize = isset($range[1]) ? $range[1] : 0; - $range = $range[0]; - $range = explode('-', $range, 2); - $offset = $range[0]; - $to = isset($range[1]) ? $range[1] : $max; - } - $offset = $offset == '*' ? 0 : $offset; - for ($i = $offset; $i <= $to; $i += $stepSize) { - $values[] = $i; - } - sort($values); - } - else { - $values = array($expression); - } - - return $values; - } - -} diff --git a/vendor/mtdowling/cron-expression/src/Cron/CronExpression.php b/vendor/mtdowling/cron-expression/src/Cron/CronExpression.php deleted file mode 100644 index d69b4154..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/CronExpression.php +++ /dev/null @@ -1,389 +0,0 @@ - '0 0 1 1 *', - '@annually' => '0 0 1 1 *', - '@monthly' => '0 0 1 * *', - '@weekly' => '0 0 * * 0', - '@daily' => '0 0 * * *', - '@hourly' => '0 * * * *' - ); - - if (isset($mappings[$expression])) { - $expression = $mappings[$expression]; - } - - return new static($expression, $fieldFactory ?: new FieldFactory()); - } - - /** - * Validate a CronExpression. - * - * @param string $expression The CRON expression to validate. - * - * @return bool True if a valid CRON expression was passed. False if not. - * @see \Cron\CronExpression::factory - */ - public static function isValidExpression($expression) - { - try { - self::factory($expression); - } catch (InvalidArgumentException $e) { - return false; - } - - return true; - } - - /** - * Parse a CRON expression - * - * @param string $expression CRON expression (e.g. '8 * * * *') - * @param FieldFactory $fieldFactory Factory to create cron fields - */ - public function __construct($expression, FieldFactory $fieldFactory) - { - $this->fieldFactory = $fieldFactory; - $this->setExpression($expression); - } - - /** - * Set or change the CRON expression - * - * @param string $value CRON expression (e.g. 8 * * * *) - * - * @return CronExpression - * @throws \InvalidArgumentException if not a valid CRON expression - */ - public function setExpression($value) - { - $this->cronParts = preg_split('/\s/', $value, -1, PREG_SPLIT_NO_EMPTY); - if (count($this->cronParts) < 5) { - throw new InvalidArgumentException( - $value . ' is not a valid CRON expression' - ); - } - - foreach ($this->cronParts as $position => $part) { - $this->setPart($position, $part); - } - - return $this; - } - - /** - * Set part of the CRON expression - * - * @param int $position The position of the CRON expression to set - * @param string $value The value to set - * - * @return CronExpression - * @throws \InvalidArgumentException if the value is not valid for the part - */ - public function setPart($position, $value) - { - if (!$this->fieldFactory->getField($position)->validate($value)) { - throw new InvalidArgumentException( - 'Invalid CRON field value ' . $value . ' at position ' . $position - ); - } - - $this->cronParts[$position] = $value; - - return $this; - } - - /** - * Set max iteration count for searching next run dates - * - * @param int $maxIterationCount Max iteration count when searching for next run date - * - * @return CronExpression - */ - public function setMaxIterationCount($maxIterationCount) - { - $this->maxIterationCount = $maxIterationCount; - - return $this; - } - - /** - * Get a next run date relative to the current date or a specific date - * - * @param string|\DateTime $currentTime Relative calculation date - * @param int $nth Number of matches to skip before returning a - * matching next run date. 0, the default, will return the current - * date and time if the next run date falls on the current date and - * time. Setting this value to 1 will skip the first match and go to - * the second match. Setting this value to 2 will skip the first 2 - * matches and so on. - * @param bool $allowCurrentDate Set to TRUE to return the current date if - * it matches the cron expression. - * - * @return \DateTime - * @throws \RuntimeException on too many iterations - */ - public function getNextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false) - { - return $this->getRunDate($currentTime, $nth, false, $allowCurrentDate); - } - - /** - * Get a previous run date relative to the current date or a specific date - * - * @param string|\DateTime $currentTime Relative calculation date - * @param int $nth Number of matches to skip before returning - * @param bool $allowCurrentDate Set to TRUE to return the - * current date if it matches the cron expression - * - * @return \DateTime - * @throws \RuntimeException on too many iterations - * @see \Cron\CronExpression::getNextRunDate - */ - public function getPreviousRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false) - { - return $this->getRunDate($currentTime, $nth, true, $allowCurrentDate); - } - - /** - * Get multiple run dates starting at the current date or a specific date - * - * @param int $total Set the total number of dates to calculate - * @param string|\DateTime $currentTime Relative calculation date - * @param bool $invert Set to TRUE to retrieve previous dates - * @param bool $allowCurrentDate Set to TRUE to return the - * current date if it matches the cron expression - * - * @return array Returns an array of run dates - */ - public function getMultipleRunDates($total, $currentTime = 'now', $invert = false, $allowCurrentDate = false) - { - $matches = array(); - for ($i = 0; $i < max(0, $total); $i++) { - try { - $matches[] = $this->getRunDate($currentTime, $i, $invert, $allowCurrentDate); - } catch (RuntimeException $e) { - break; - } - } - - return $matches; - } - - /** - * Get all or part of the CRON expression - * - * @param string $part Specify the part to retrieve or NULL to get the full - * cron schedule string. - * - * @return string|null Returns the CRON expression, a part of the - * CRON expression, or NULL if the part was specified but not found - */ - public function getExpression($part = null) - { - if (null === $part) { - return implode(' ', $this->cronParts); - } elseif (array_key_exists($part, $this->cronParts)) { - return $this->cronParts[$part]; - } - - return null; - } - - /** - * Helper method to output the full expression. - * - * @return string Full CRON expression - */ - public function __toString() - { - return $this->getExpression(); - } - - /** - * Determine if the cron is due to run based on the current date or a - * specific date. This method assumes that the current number of - * seconds are irrelevant, and should be called once per minute. - * - * @param string|\DateTime $currentTime Relative calculation date - * - * @return bool Returns TRUE if the cron is due to run or FALSE if not - */ - public function isDue($currentTime = 'now') - { - if ('now' === $currentTime) { - $currentDate = date('Y-m-d H:i'); - $currentTime = strtotime($currentDate); - } elseif ($currentTime instanceof DateTime) { - $currentDate = clone $currentTime; - // Ensure time in 'current' timezone is used - $currentDate->setTimezone(new DateTimeZone(date_default_timezone_get())); - $currentDate = $currentDate->format('Y-m-d H:i'); - $currentTime = strtotime($currentDate); - } elseif ($currentTime instanceof DateTimeImmutable) { - $currentDate = DateTime::createFromFormat('U', $currentTime->format('U')); - $currentDate->setTimezone(new DateTimeZone(date_default_timezone_get())); - $currentDate = $currentDate->format('Y-m-d H:i'); - $currentTime = strtotime($currentDate); - } else { - $currentTime = new DateTime($currentTime); - $currentTime->setTime($currentTime->format('H'), $currentTime->format('i'), 0); - $currentDate = $currentTime->format('Y-m-d H:i'); - $currentTime = $currentTime->getTimeStamp(); - } - - try { - return $this->getNextRunDate($currentDate, 0, true)->getTimestamp() == $currentTime; - } catch (Exception $e) { - return false; - } - } - - /** - * Get the next or previous run date of the expression relative to a date - * - * @param string|\DateTime $currentTime Relative calculation date - * @param int $nth Number of matches to skip before returning - * @param bool $invert Set to TRUE to go backwards in time - * @param bool $allowCurrentDate Set to TRUE to return the - * current date if it matches the cron expression - * - * @return \DateTime - * @throws \RuntimeException on too many iterations - */ - protected function getRunDate($currentTime = null, $nth = 0, $invert = false, $allowCurrentDate = false) - { - if ($currentTime instanceof DateTime) { - $currentDate = clone $currentTime; - } elseif ($currentTime instanceof DateTimeImmutable) { - $currentDate = DateTime::createFromFormat('U', $currentTime->format('U')); - $currentDate->setTimezone($currentTime->getTimezone()); - } else { - $currentDate = new DateTime($currentTime ?: 'now'); - $currentDate->setTimezone(new DateTimeZone(date_default_timezone_get())); - } - - $currentDate->setTime($currentDate->format('H'), $currentDate->format('i'), 0); - $nextRun = clone $currentDate; - $nth = (int) $nth; - - // We don't have to satisfy * or null fields - $parts = array(); - $fields = array(); - foreach (self::$order as $position) { - $part = $this->getExpression($position); - if (null === $part || '*' === $part) { - continue; - } - $parts[$position] = $part; - $fields[$position] = $this->fieldFactory->getField($position); - } - - // Set a hard limit to bail on an impossible date - for ($i = 0; $i < $this->maxIterationCount; $i++) { - - foreach ($parts as $position => $part) { - $satisfied = false; - // Get the field object used to validate this part - $field = $fields[$position]; - // Check if this is singular or a list - if (strpos($part, ',') === false) { - $satisfied = $field->isSatisfiedBy($nextRun, $part); - } else { - foreach (array_map('trim', explode(',', $part)) as $listPart) { - if ($field->isSatisfiedBy($nextRun, $listPart)) { - $satisfied = true; - break; - } - } - } - - // If the field is not satisfied, then start over - if (!$satisfied) { - $field->increment($nextRun, $invert, $part); - continue 2; - } - } - - // Skip this match if needed - if ((!$allowCurrentDate && $nextRun == $currentDate) || --$nth > -1) { - $this->fieldFactory->getField(0)->increment($nextRun, $invert, isset($parts[0]) ? $parts[0] : null); - continue; - } - - return $nextRun; - } - - // @codeCoverageIgnoreStart - throw new RuntimeException('Impossible CRON expression'); - // @codeCoverageIgnoreEnd - } -} diff --git a/vendor/mtdowling/cron-expression/src/Cron/DayOfMonthField.php b/vendor/mtdowling/cron-expression/src/Cron/DayOfMonthField.php deleted file mode 100644 index 53e15bc4..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/DayOfMonthField.php +++ /dev/null @@ -1,173 +0,0 @@ - - */ -class DayOfMonthField extends AbstractField -{ - /** - * Get the nearest day of the week for a given day in a month - * - * @param int $currentYear Current year - * @param int $currentMonth Current month - * @param int $targetDay Target day of the month - * - * @return \DateTime Returns the nearest date - */ - private static function getNearestWeekday($currentYear, $currentMonth, $targetDay) - { - $tday = str_pad($targetDay, 2, '0', STR_PAD_LEFT); - $target = DateTime::createFromFormat('Y-m-d', "$currentYear-$currentMonth-$tday"); - $currentWeekday = (int) $target->format('N'); - - if ($currentWeekday < 6) { - return $target; - } - - $lastDayOfMonth = $target->format('t'); - - foreach (array(-1, 1, -2, 2) as $i) { - $adjusted = $targetDay + $i; - if ($adjusted > 0 && $adjusted <= $lastDayOfMonth) { - $target->setDate($currentYear, $currentMonth, $adjusted); - if ($target->format('N') < 6 && $target->format('m') == $currentMonth) { - return $target; - } - } - } - } - - public function isSatisfiedBy(DateTime $date, $value) - { - // ? states that the field value is to be skipped - if ($value == '?') { - return true; - } - - $fieldValue = $date->format('d'); - - // Check to see if this is the last day of the month - if ($value == 'L') { - return $fieldValue == $date->format('t'); - } - - // Check to see if this is the nearest weekday to a particular value - if (strpos($value, 'W')) { - // Parse the target day - $targetDay = substr($value, 0, strpos($value, 'W')); - // Find out if the current day is the nearest day of the week - return $date->format('j') == self::getNearestWeekday( - $date->format('Y'), - $date->format('m'), - $targetDay - )->format('j'); - } - - return $this->isSatisfied($date->format('d'), $value); - } - - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('previous day'); - $date->setTime(23, 59); - } else { - $date->modify('next day'); - $date->setTime(0, 0); - } - - return $this; - } - - /** - * Validates that the value is valid for the Day of the Month field - * Days of the month can contain values of 1-31, *, L, or ? by default. This can be augmented with lists via a ',', - * ranges via a '-', or with a '[0-9]W' to specify the closest weekday. - * - * @param string $value - * @return bool - */ - public function validate($value) - { - // Allow wildcards and a single L - if ($value === '?' || $value === '*' || $value === 'L') { - return true; - } - - // If you only contain numbers and are within 1-31 - if ((bool) preg_match('/^\d{1,2}$/', $value) && ($value >= 1 && $value <= 31)) { - return true; - } - - // If you have a -, we will deal with each of your chunks - if ((bool) preg_match('/-/', $value)) { - // We cannot have a range within a list or vice versa - if ((bool) preg_match('/,/', $value)) { - return false; - } - - $chunks = explode('-', $value); - foreach ($chunks as $chunk) { - if (!$this->validate($chunk)) { - return false; - } - } - - return true; - } - - // If you have a comma, we will deal with each value - if ((bool) preg_match('/,/', $value)) { - // We cannot have a range within a list or vice versa - if ((bool) preg_match('/-/', $value)) { - return false; - } - - $chunks = explode(',', $value); - foreach ($chunks as $chunk) { - if (!$this->validate($chunk)) { - return false; - } - } - - return true; - } - - // If you contain a /, we'll deal with it - if ((bool) preg_match('/\//', $value)) { - $chunks = explode('/', $value); - foreach ($chunks as $chunk) { - if (!$this->validate($chunk)) { - return false; - } - } - return true; - } - - // If you end in W, make sure that it has a numeric in front of it - if ((bool) preg_match('/^\d{1,2}W$/', $value)) { - return true; - } - - return false; - } -} diff --git a/vendor/mtdowling/cron-expression/src/Cron/DayOfWeekField.php b/vendor/mtdowling/cron-expression/src/Cron/DayOfWeekField.php deleted file mode 100644 index 83e2f4c1..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/DayOfWeekField.php +++ /dev/null @@ -1,141 +0,0 @@ -convertLiterals($value); - - $currentYear = $date->format('Y'); - $currentMonth = $date->format('m'); - $lastDayOfMonth = $date->format('t'); - - // Find out if this is the last specific weekday of the month - if (strpos($value, 'L')) { - $weekday = str_replace('7', '0', substr($value, 0, strpos($value, 'L'))); - $tdate = clone $date; - $tdate->setDate($currentYear, $currentMonth, $lastDayOfMonth); - while ($tdate->format('w') != $weekday) { - $tdateClone = new DateTime(); - $tdate = $tdateClone - ->setTimezone($tdate->getTimezone()) - ->setDate($currentYear, $currentMonth, --$lastDayOfMonth); - } - - return $date->format('j') == $lastDayOfMonth; - } - - // Handle # hash tokens - if (strpos($value, '#')) { - list($weekday, $nth) = explode('#', $value); - - // 0 and 7 are both Sunday, however 7 matches date('N') format ISO-8601 - if ($weekday === '0') { - $weekday = 7; - } - - // Validate the hash fields - if ($weekday < 0 || $weekday > 7) { - throw new InvalidArgumentException("Weekday must be a value between 0 and 7. {$weekday} given"); - } - if ($nth > 5) { - throw new InvalidArgumentException('There are never more than 5 of a given weekday in a month'); - } - // The current weekday must match the targeted weekday to proceed - if ($date->format('N') != $weekday) { - return false; - } - - $tdate = clone $date; - $tdate->setDate($currentYear, $currentMonth, 1); - $dayCount = 0; - $currentDay = 1; - while ($currentDay < $lastDayOfMonth + 1) { - if ($tdate->format('N') == $weekday) { - if (++$dayCount >= $nth) { - break; - } - } - $tdate->setDate($currentYear, $currentMonth, ++$currentDay); - } - - return $date->format('j') == $currentDay; - } - - // Handle day of the week values - if (strpos($value, '-')) { - $parts = explode('-', $value); - if ($parts[0] == '7') { - $parts[0] = '0'; - } elseif ($parts[1] == '0') { - $parts[1] = '7'; - } - $value = implode('-', $parts); - } - - // Test to see which Sunday to use -- 0 == 7 == Sunday - $format = in_array(7, str_split($value)) ? 'N' : 'w'; - $fieldValue = $date->format($format); - - return $this->isSatisfied($fieldValue, $value); - } - - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('-1 day'); - $date->setTime(23, 59, 0); - } else { - $date->modify('+1 day'); - $date->setTime(0, 0, 0); - } - - return $this; - } - - public function validate($value) - { - $value = $this->convertLiterals($value); - - foreach (explode(',', $value) as $expr) { - if (!preg_match('/^(\*|[0-7](L?|#[1-5]))([\/\,\-][0-7]+)*$/', $expr)) { - return false; - } - } - - return true; - } - - private function convertLiterals($string) - { - return str_ireplace( - array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'), - range(0, 6), - $string - ); - } -} diff --git a/vendor/mtdowling/cron-expression/src/Cron/FieldFactory.php b/vendor/mtdowling/cron-expression/src/Cron/FieldFactory.php deleted file mode 100644 index fa0e6fe2..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/FieldFactory.php +++ /dev/null @@ -1,57 +0,0 @@ -fields[$position])) { - switch ($position) { - case 0: - $this->fields[$position] = new MinutesField(); - break; - case 1: - $this->fields[$position] = new HoursField(); - break; - case 2: - $this->fields[$position] = new DayOfMonthField(); - break; - case 3: - $this->fields[$position] = new MonthField(); - break; - case 4: - $this->fields[$position] = new DayOfWeekField(); - break; - case 5: - $this->fields[$position] = new YearField(); - break; - default: - throw new InvalidArgumentException( - $position . ' is not a valid position' - ); - } - } - - return $this->fields[$position]; - } -} diff --git a/vendor/mtdowling/cron-expression/src/Cron/FieldInterface.php b/vendor/mtdowling/cron-expression/src/Cron/FieldInterface.php deleted file mode 100644 index be37b938..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/FieldInterface.php +++ /dev/null @@ -1,40 +0,0 @@ -isSatisfied($date->format('H'), $value); - } - - public function increment(DateTime $date, $invert = false, $parts = null) - { - // Change timezone to UTC temporarily. This will - // allow us to go back or forwards and hour even - // if DST will be changed between the hours. - if (is_null($parts) || $parts == '*') { - $timezone = $date->getTimezone(); - $date->setTimezone(new DateTimeZone('UTC')); - if ($invert) { - $date->modify('-1 hour'); - } else { - $date->modify('+1 hour'); - } - $date->setTimezone($timezone); - - $date->setTime($date->format('H'), $invert ? 59 : 0); - return $this; - } - - $parts = strpos($parts, ',') !== false ? explode(',', $parts) : array($parts); - $hours = array(); - foreach ($parts as $part) { - $hours = array_merge($hours, $this->getRangeForExpression($part, 23)); - } - - $current_hour = $date->format('H'); - $position = $invert ? count($hours) - 1 : 0; - if (count($hours) > 1) { - for ($i = 0; $i < count($hours) - 1; $i++) { - if ((!$invert && $current_hour >= $hours[$i] && $current_hour < $hours[$i + 1]) || - ($invert && $current_hour > $hours[$i] && $current_hour <= $hours[$i + 1])) { - $position = $invert ? $i : $i + 1; - break; - } - } - } - - $hour = $hours[$position]; - if ((!$invert && $date->format('H') >= $hour) || ($invert && $date->format('H') <= $hour)) { - $date->modify(($invert ? '-' : '+') . '1 day'); - $date->setTime($invert ? 23 : 0, $invert ? 59 : 0); - } - else { - $date->setTime($hour, $invert ? 59 : 0); - } - - return $this; - } - - public function validate($value) - { - return (bool) preg_match('/^[\*,\/\-0-9]+$/', $value); - } -} diff --git a/vendor/mtdowling/cron-expression/src/Cron/MinutesField.php b/vendor/mtdowling/cron-expression/src/Cron/MinutesField.php deleted file mode 100644 index d8432b55..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/MinutesField.php +++ /dev/null @@ -1,62 +0,0 @@ -isSatisfied($date->format('i'), $value); - } - - public function increment(DateTime $date, $invert = false, $parts = null) - { - if (is_null($parts)) { - if ($invert) { - $date->modify('-1 minute'); - } else { - $date->modify('+1 minute'); - } - return $this; - } - - $parts = strpos($parts, ',') !== false ? explode(',', $parts) : array($parts); - $minutes = array(); - foreach ($parts as $part) { - $minutes = array_merge($minutes, $this->getRangeForExpression($part, 59)); - } - - $current_minute = $date->format('i'); - $position = $invert ? count($minutes) - 1 : 0; - if (count($minutes) > 1) { - for ($i = 0; $i < count($minutes) - 1; $i++) { - if ((!$invert && $current_minute >= $minutes[$i] && $current_minute < $minutes[$i + 1]) || - ($invert && $current_minute > $minutes[$i] && $current_minute <= $minutes[$i + 1])) { - $position = $invert ? $i : $i + 1; - break; - } - } - } - - if ((!$invert && $current_minute >= $minutes[$position]) || ($invert && $current_minute <= $minutes[$position])) { - $date->modify(($invert ? '-' : '+') . '1 hour'); - $date->setTime($date->format('H'), $invert ? 59 : 0); - } - else { - $date->setTime($date->format('H'), $minutes[$position]); - } - - return $this; - } - - public function validate($value) - { - return (bool) preg_match('/^[\*,\/\-0-9]+$/', $value); - } -} diff --git a/vendor/mtdowling/cron-expression/src/Cron/MonthField.php b/vendor/mtdowling/cron-expression/src/Cron/MonthField.php deleted file mode 100644 index 0205c171..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/MonthField.php +++ /dev/null @@ -1,44 +0,0 @@ -isSatisfied($date->format('m'), $value); - } - - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('last day of previous month'); - $date->setTime(23, 59); - } else { - $date->modify('first day of next month'); - $date->setTime(0, 0); - } - - return $this; - } - - public function validate($value) - { - return (bool) preg_match('/^[\*,\/\-0-9A-Z]+$/', $value); - } -} diff --git a/vendor/mtdowling/cron-expression/src/Cron/YearField.php b/vendor/mtdowling/cron-expression/src/Cron/YearField.php deleted file mode 100644 index db244fba..00000000 --- a/vendor/mtdowling/cron-expression/src/Cron/YearField.php +++ /dev/null @@ -1,37 +0,0 @@ -isSatisfied($date->format('Y'), $value); - } - - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('-1 year'); - $date->setDate($date->format('Y'), 12, 31); - $date->setTime(23, 59, 0); - } else { - $date->modify('+1 year'); - $date->setDate($date->format('Y'), 1, 1); - $date->setTime(0, 0, 0); - } - - return $this; - } - - public function validate($value) - { - return (bool) preg_match('/^[\*,\/\-0-9]+$/', $value); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/AbstractFieldTest.php b/vendor/mtdowling/cron-expression/tests/Cron/AbstractFieldTest.php deleted file mode 100644 index a1d653b2..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/AbstractFieldTest.php +++ /dev/null @@ -1,86 +0,0 @@ - - */ -class AbstractFieldTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\AbstractField::isRange - */ - public function testTestsIfRange() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isRange('1-2')); - $this->assertFalse($f->isRange('2')); - } - - /** - * @covers Cron\AbstractField::isIncrementsOfRanges - */ - public function testTestsIfIncrementsOfRanges() - { - $f = new DayOfWeekField(); - $this->assertFalse($f->isIncrementsOfRanges('1-2')); - $this->assertTrue($f->isIncrementsOfRanges('1/2')); - $this->assertTrue($f->isIncrementsOfRanges('*/2')); - $this->assertTrue($f->isIncrementsOfRanges('3-12/2')); - } - - /** - * @covers Cron\AbstractField::isInRange - */ - public function testTestsIfInRange() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isInRange('1', '1-2')); - $this->assertTrue($f->isInRange('2', '1-2')); - $this->assertTrue($f->isInRange('5', '4-12')); - $this->assertFalse($f->isInRange('3', '4-12')); - $this->assertFalse($f->isInRange('13', '4-12')); - } - - /** - * @covers Cron\AbstractField::isInIncrementsOfRanges - */ - public function testTestsIfInIncrementsOfRanges() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isInIncrementsOfRanges('3', '3-59/2')); - $this->assertTrue($f->isInIncrementsOfRanges('13', '3-59/2')); - $this->assertTrue($f->isInIncrementsOfRanges('15', '3-59/2')); - $this->assertTrue($f->isInIncrementsOfRanges('14', '*/2')); - $this->assertFalse($f->isInIncrementsOfRanges('2', '3-59/13')); - $this->assertFalse($f->isInIncrementsOfRanges('14', '*/13')); - $this->assertFalse($f->isInIncrementsOfRanges('14', '3-59/2')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '2-59')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '2')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '*')); - $this->assertFalse($f->isInIncrementsOfRanges('0', '*/0')); - $this->assertFalse($f->isInIncrementsOfRanges('1', '*/0')); - - $this->assertTrue($f->isInIncrementsOfRanges('4', '4/10')); - $this->assertTrue($f->isInIncrementsOfRanges('14', '4/10')); - $this->assertTrue($f->isInIncrementsOfRanges('34', '4/10')); - } - - /** - * @covers Cron\AbstractField::isSatisfied - */ - public function testTestsIfSatisfied() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfied('12', '3-13')); - $this->assertTrue($f->isSatisfied('15', '3-59/12')); - $this->assertTrue($f->isSatisfied('12', '*')); - $this->assertTrue($f->isSatisfied('12', '12')); - $this->assertFalse($f->isSatisfied('12', '3-11')); - $this->assertFalse($f->isSatisfied('12', '3-59/13')); - $this->assertFalse($f->isSatisfied('12', '11')); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/CronExpressionTest.php b/vendor/mtdowling/cron-expression/tests/Cron/CronExpressionTest.php deleted file mode 100644 index f6fedb98..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/CronExpressionTest.php +++ /dev/null @@ -1,414 +0,0 @@ - - */ -class CronExpressionTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\CronExpression::factory - */ - public function testFactoryRecognizesTemplates() - { - $this->assertEquals('0 0 1 1 *', CronExpression::factory('@annually')->getExpression()); - $this->assertEquals('0 0 1 1 *', CronExpression::factory('@yearly')->getExpression()); - $this->assertEquals('0 0 * * 0', CronExpression::factory('@weekly')->getExpression()); - } - - /** - * @covers Cron\CronExpression::__construct - * @covers Cron\CronExpression::getExpression - * @covers Cron\CronExpression::__toString - */ - public function testParsesCronSchedule() - { - // '2010-09-10 12:00:00' - $cron = CronExpression::factory('1 2-4 * 4,5,6 */3'); - $this->assertEquals('1', $cron->getExpression(CronExpression::MINUTE)); - $this->assertEquals('2-4', $cron->getExpression(CronExpression::HOUR)); - $this->assertEquals('*', $cron->getExpression(CronExpression::DAY)); - $this->assertEquals('4,5,6', $cron->getExpression(CronExpression::MONTH)); - $this->assertEquals('*/3', $cron->getExpression(CronExpression::WEEKDAY)); - $this->assertEquals('1 2-4 * 4,5,6 */3', $cron->getExpression()); - $this->assertEquals('1 2-4 * 4,5,6 */3', (string) $cron); - $this->assertNull($cron->getExpression('foo')); - - try { - $cron = CronExpression::factory('A 1 2 3 4'); - $this->fail('Validation exception not thrown'); - } catch (InvalidArgumentException $e) { - } - } - - /** - * @covers Cron\CronExpression::__construct - * @covers Cron\CronExpression::getExpression - * @dataProvider scheduleWithDifferentSeparatorsProvider - */ - public function testParsesCronScheduleWithAnySpaceCharsAsSeparators($schedule, array $expected) - { - $cron = CronExpression::factory($schedule); - $this->assertEquals($expected[0], $cron->getExpression(CronExpression::MINUTE)); - $this->assertEquals($expected[1], $cron->getExpression(CronExpression::HOUR)); - $this->assertEquals($expected[2], $cron->getExpression(CronExpression::DAY)); - $this->assertEquals($expected[3], $cron->getExpression(CronExpression::MONTH)); - $this->assertEquals($expected[4], $cron->getExpression(CronExpression::WEEKDAY)); - $this->assertEquals($expected[5], $cron->getExpression(CronExpression::YEAR)); - } - - /** - * Data provider for testParsesCronScheduleWithAnySpaceCharsAsSeparators - * - * @return array - */ - public static function scheduleWithDifferentSeparatorsProvider() - { - return array( - array("*\t*\t*\t*\t*\t*", array('*', '*', '*', '*', '*', '*')), - array("* * * * * *", array('*', '*', '*', '*', '*', '*')), - array("* \t * \t * \t * \t * \t *", array('*', '*', '*', '*', '*', '*')), - array("*\t \t*\t \t*\t \t*\t \t*\t \t*", array('*', '*', '*', '*', '*', '*')), - ); - } - - /** - * @covers Cron\CronExpression::__construct - * @covers Cron\CronExpression::setExpression - * @covers Cron\CronExpression::setPart - * @expectedException InvalidArgumentException - */ - public function testInvalidCronsWillFail() - { - // Only four values - $cron = CronExpression::factory('* * * 1'); - } - - /** - * @covers Cron\CronExpression::setPart - * @expectedException InvalidArgumentException - */ - public function testInvalidPartsWillFail() - { - // Only four values - $cron = CronExpression::factory('* * * * *'); - $cron->setPart(1, 'abc'); - } - - /** - * Data provider for cron schedule - * - * @return array - */ - public function scheduleProvider() - { - return array( - array('*/2 */2 * * *', '2015-08-10 21:47:27', '2015-08-10 22:00:00', false), - array('* * * * *', '2015-08-10 21:50:37', '2015-08-10 21:50:00', true), - array('* 20,21,22 * * *', '2015-08-10 21:50:00', '2015-08-10 21:50:00', true), - // Handles CSV values - array('* 20,22 * * *', '2015-08-10 21:50:00', '2015-08-10 22:00:00', false), - // CSV values can be complex - array('* 5,21-22 * * *', '2015-08-10 21:50:00', '2015-08-10 21:50:00', true), - array('7-9 * */9 * *', '2015-08-10 22:02:33', '2015-08-18 00:07:00', false), - // 15th minute, of the second hour, every 15 days, in January, every Friday - array('1 * * * 7', '2015-08-10 21:47:27', '2015-08-16 00:01:00', false), - // Test with exact times - array('47 21 * * *', strtotime('2015-08-10 21:47:30'), '2015-08-10 21:47:00', true), - // Test Day of the week (issue #1) - // According cron implementation, 0|7 = sunday, 1 => monday, etc - array('* * * * 0', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('* * * * 7', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('* * * * 1', strtotime('2011-06-15 23:09:00'), '2011-06-20 00:00:00', false), - // Should return the sunday date as 7 equals 0 - array('0 0 * * MON,SUN', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('0 0 * * 1,7', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('0 0 * * 0-4', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false), - array('0 0 * * 7-4', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false), - array('0 0 * * 4-7', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false), - array('0 0 * * 7-3', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('0 0 * * 3-7', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false), - array('0 0 * * 3-7', strtotime('2011-06-18 23:09:00'), '2011-06-19 00:00:00', false), - // Test lists of values and ranges (Abhoryo) - array('0 0 * * 2-7', strtotime('2011-06-20 23:09:00'), '2011-06-21 00:00:00', false), - array('0 0 * * 0,2-6', strtotime('2011-06-20 23:09:00'), '2011-06-21 00:00:00', false), - array('0 0 * * 2-7', strtotime('2011-06-18 23:09:00'), '2011-06-19 00:00:00', false), - array('0 0 * * 4-7', strtotime('2011-07-19 00:00:00'), '2011-07-21 00:00:00', false), - // Test increments of ranges - array('0-12/4 * * * *', strtotime('2011-06-20 12:04:00'), '2011-06-20 12:04:00', true), - array('4-59/2 * * * *', strtotime('2011-06-20 12:04:00'), '2011-06-20 12:04:00', true), - array('4-59/2 * * * *', strtotime('2011-06-20 12:06:00'), '2011-06-20 12:06:00', true), - array('4-59/3 * * * *', strtotime('2011-06-20 12:06:00'), '2011-06-20 12:07:00', false), - //array('0 0 * * 0,2-6', strtotime('2011-06-20 23:09:00'), '2011-06-21 00:00:00', false), - // Test Day of the Week and the Day of the Month (issue #1) - array('0 0 1 1 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false), - array('0 0 1 JAN 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false), - array('0 0 1 * 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false), - array('0 0 L * *', strtotime('2011-07-15 00:00:00'), '2011-07-31 00:00:00', false), - // Test the W day of the week modifier for day of the month field - array('0 0 2W * *', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true), - array('0 0 1W * *', strtotime('2011-05-01 00:00:00'), '2011-05-02 00:00:00', false), - array('0 0 1W * *', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true), - array('0 0 3W * *', strtotime('2011-07-01 00:00:00'), '2011-07-04 00:00:00', false), - array('0 0 16W * *', strtotime('2011-07-01 00:00:00'), '2011-07-15 00:00:00', false), - array('0 0 28W * *', strtotime('2011-07-01 00:00:00'), '2011-07-28 00:00:00', false), - array('0 0 30W * *', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false), - array('0 0 31W * *', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false), - // Test the year field - array('* * * * * 2012', strtotime('2011-05-01 00:00:00'), '2012-01-01 00:00:00', false), - // Test the last weekday of a month - array('* * * * 5L', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false), - array('* * * * 6L', strtotime('2011-07-01 00:00:00'), '2011-07-30 00:00:00', false), - array('* * * * 7L', strtotime('2011-07-01 00:00:00'), '2011-07-31 00:00:00', false), - array('* * * * 1L', strtotime('2011-07-24 00:00:00'), '2011-07-25 00:00:00', false), - array('* * * * TUEL', strtotime('2011-07-24 00:00:00'), '2011-07-26 00:00:00', false), - array('* * * 1 5L', strtotime('2011-12-25 00:00:00'), '2012-01-27 00:00:00', false), - // Test the hash symbol for the nth weekday of a given month - array('* * * * 5#2', strtotime('2011-07-01 00:00:00'), '2011-07-08 00:00:00', false), - array('* * * * 5#1', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true), - array('* * * * 3#4', strtotime('2011-07-01 00:00:00'), '2011-07-27 00:00:00', false), - ); - } - - /** - * @covers Cron\CronExpression::isDue - * @covers Cron\CronExpression::getNextRunDate - * @covers Cron\DayOfMonthField - * @covers Cron\DayOfWeekField - * @covers Cron\MinutesField - * @covers Cron\HoursField - * @covers Cron\MonthField - * @covers Cron\YearField - * @covers Cron\CronExpression::getRunDate - * @dataProvider scheduleProvider - */ - public function testDeterminesIfCronIsDue($schedule, $relativeTime, $nextRun, $isDue) - { - $relativeTimeString = is_int($relativeTime) ? date('Y-m-d H:i:s', $relativeTime) : $relativeTime; - - // Test next run date - $cron = CronExpression::factory($schedule); - if (is_string($relativeTime)) { - $relativeTime = new DateTime($relativeTime); - } elseif (is_int($relativeTime)) { - $relativeTime = date('Y-m-d H:i:s', $relativeTime); - } - $this->assertEquals($isDue, $cron->isDue($relativeTime)); - $next = $cron->getNextRunDate($relativeTime, 0, true); - $this->assertEquals(new DateTime($nextRun), $next); - } - - /** - * @covers Cron\CronExpression::isDue - */ - public function testIsDueHandlesDifferentDates() - { - $cron = CronExpression::factory('* * * * *'); - $this->assertTrue($cron->isDue()); - $this->assertTrue($cron->isDue('now')); - $this->assertTrue($cron->isDue(new DateTime('now'))); - $this->assertTrue($cron->isDue(date('Y-m-d H:i'))); - } - - /** - * @covers Cron\CronExpression::isDue - */ - public function testIsDueHandlesDifferentTimezones() - { - $cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00 - $date = '2014-01-01 15:00'; //Wednesday - $utc = new DateTimeZone('UTC'); - $amsterdam = new DateTimeZone('Europe/Amsterdam'); - $tokyo = new DateTimeZone('Asia/Tokyo'); - - date_default_timezone_set('UTC'); - $this->assertTrue($cron->isDue(new DateTime($date, $utc))); - $this->assertFalse($cron->isDue(new DateTime($date, $amsterdam))); - $this->assertFalse($cron->isDue(new DateTime($date, $tokyo))); - - date_default_timezone_set('Europe/Amsterdam'); - $this->assertFalse($cron->isDue(new DateTime($date, $utc))); - $this->assertTrue($cron->isDue(new DateTime($date, $amsterdam))); - $this->assertFalse($cron->isDue(new DateTime($date, $tokyo))); - - date_default_timezone_set('Asia/Tokyo'); - $this->assertFalse($cron->isDue(new DateTime($date, $utc))); - $this->assertFalse($cron->isDue(new DateTime($date, $amsterdam))); - $this->assertTrue($cron->isDue(new DateTime($date, $tokyo))); - } - - /** - * @covers Cron\CronExpression::getPreviousRunDate - */ - public function testCanGetPreviousRunDates() - { - $cron = CronExpression::factory('* * * * *'); - $next = $cron->getNextRunDate('now'); - $two = $cron->getNextRunDate('now', 1); - $this->assertEquals($next, $cron->getPreviousRunDate($two)); - - $cron = CronExpression::factory('* */2 * * *'); - $next = $cron->getNextRunDate('now'); - $two = $cron->getNextRunDate('now', 1); - $this->assertEquals($next, $cron->getPreviousRunDate($two)); - - $cron = CronExpression::factory('* * * */2 *'); - $next = $cron->getNextRunDate('now'); - $two = $cron->getNextRunDate('now', 1); - $this->assertEquals($next, $cron->getPreviousRunDate($two)); - } - - /** - * @covers Cron\CronExpression::getMultipleRunDates - */ - public function testProvidesMultipleRunDates() - { - $cron = CronExpression::factory('*/2 * * * *'); - $this->assertEquals(array( - new DateTime('2008-11-09 00:00:00'), - new DateTime('2008-11-09 00:02:00'), - new DateTime('2008-11-09 00:04:00'), - new DateTime('2008-11-09 00:06:00') - ), $cron->getMultipleRunDates(4, '2008-11-09 00:00:00', false, true)); - } - - /** - * @covers Cron\CronExpression::getMultipleRunDates - * @covers Cron\CronExpression::setMaxIterationCount - */ - public function testProvidesMultipleRunDatesForTheFarFuture() { - // Fails with the default 1000 iteration limit - $cron = CronExpression::factory('0 0 12 1 * */2'); - $cron->setMaxIterationCount(2000); - $this->assertEquals(array( - new DateTime('2016-01-12 00:00:00'), - new DateTime('2018-01-12 00:00:00'), - new DateTime('2020-01-12 00:00:00'), - new DateTime('2022-01-12 00:00:00'), - new DateTime('2024-01-12 00:00:00'), - new DateTime('2026-01-12 00:00:00'), - new DateTime('2028-01-12 00:00:00'), - new DateTime('2030-01-12 00:00:00'), - new DateTime('2032-01-12 00:00:00'), - ), $cron->getMultipleRunDates(9, '2015-04-28 00:00:00', false, true)); - } - - /** - * @covers Cron\CronExpression - */ - public function testCanIterateOverNextRuns() - { - $cron = CronExpression::factory('@weekly'); - $nextRun = $cron->getNextRunDate("2008-11-09 08:00:00"); - $this->assertEquals($nextRun, new DateTime("2008-11-16 00:00:00")); - - // true is cast to 1 - $nextRun = $cron->getNextRunDate("2008-11-09 00:00:00", true, true); - $this->assertEquals($nextRun, new DateTime("2008-11-16 00:00:00")); - - // You can iterate over them - $nextRun = $cron->getNextRunDate($cron->getNextRunDate("2008-11-09 00:00:00", 1, true), 1, true); - $this->assertEquals($nextRun, new DateTime("2008-11-23 00:00:00")); - - // You can skip more than one - $nextRun = $cron->getNextRunDate("2008-11-09 00:00:00", 2, true); - $this->assertEquals($nextRun, new DateTime("2008-11-23 00:00:00")); - $nextRun = $cron->getNextRunDate("2008-11-09 00:00:00", 3, true); - $this->assertEquals($nextRun, new DateTime("2008-11-30 00:00:00")); - } - - /** - * @covers Cron\CronExpression::getRunDate - */ - public function testSkipsCurrentDateByDefault() - { - $cron = CronExpression::factory('* * * * *'); - $current = new DateTime('now'); - $next = $cron->getNextRunDate($current); - $nextPrev = $cron->getPreviousRunDate($next); - $this->assertEquals($current->format('Y-m-d H:i:00'), $nextPrev->format('Y-m-d H:i:s')); - } - - /** - * @covers Cron\CronExpression::getRunDate - * @ticket 7 - */ - public function testStripsForSeconds() - { - $cron = CronExpression::factory('* * * * *'); - $current = new DateTime('2011-09-27 10:10:54'); - $this->assertEquals('2011-09-27 10:11:00', $cron->getNextRunDate($current)->format('Y-m-d H:i:s')); - } - - /** - * @covers Cron\CronExpression::getRunDate - */ - public function testFixesPhpBugInDateIntervalMonth() - { - $cron = CronExpression::factory('0 0 27 JAN *'); - $this->assertEquals('2011-01-27 00:00:00', $cron->getPreviousRunDate('2011-08-22 00:00:00')->format('Y-m-d H:i:s')); - } - - public function testIssue29() - { - $cron = CronExpression::factory('@weekly'); - $this->assertEquals( - '2013-03-10 00:00:00', - $cron->getPreviousRunDate('2013-03-17 00:00:00')->format('Y-m-d H:i:s') - ); - } - - /** - * @see https://github.com/mtdowling/cron-expression/issues/20 - */ - public function testIssue20() { - $e = CronExpression::factory('* * * * MON#1'); - $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00'))); - $this->assertFalse($e->isDue(new DateTime('2014-04-14 00:00:00'))); - $this->assertFalse($e->isDue(new DateTime('2014-04-21 00:00:00'))); - - $e = CronExpression::factory('* * * * SAT#2'); - $this->assertFalse($e->isDue(new DateTime('2014-04-05 00:00:00'))); - $this->assertTrue($e->isDue(new DateTime('2014-04-12 00:00:00'))); - $this->assertFalse($e->isDue(new DateTime('2014-04-19 00:00:00'))); - - $e = CronExpression::factory('* * * * SUN#3'); - $this->assertFalse($e->isDue(new DateTime('2014-04-13 00:00:00'))); - $this->assertTrue($e->isDue(new DateTime('2014-04-20 00:00:00'))); - $this->assertFalse($e->isDue(new DateTime('2014-04-27 00:00:00'))); - } - - /** - * @covers Cron\CronExpression::getRunDate - */ - public function testKeepOriginalTime() - { - $now = new \DateTime; - $strNow = $now->format(DateTime::ISO8601); - $cron = CronExpression::factory('0 0 * * *'); - $cron->getPreviousRunDate($now); - $this->assertEquals($strNow, $now->format(DateTime::ISO8601)); - } - - /** - * @covers Cron\CronExpression::__construct - * @covers Cron\CronExpression::factory - * @covers Cron\CronExpression::isValidExpression - * @covers Cron\CronExpression::setExpression - * @covers Cron\CronExpression::setPart - */ - public function testValidationWorks() - { - // Invalid. Only four values - $this->assertFalse(CronExpression::isValidExpression('* * * 1')); - // Valid - $this->assertTrue(CronExpression::isValidExpression('* * * * 1')); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/DayOfMonthFieldTest.php b/vendor/mtdowling/cron-expression/tests/Cron/DayOfMonthFieldTest.php deleted file mode 100644 index eff04557..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/DayOfMonthFieldTest.php +++ /dev/null @@ -1,61 +0,0 @@ - - */ -class DayOfMonthFieldTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\DayOfMonthField::validate - */ - public function testValidatesField() - { - $f = new DayOfMonthField(); - $this->assertTrue($f->validate('1')); - $this->assertTrue($f->validate('*')); - $this->assertTrue($f->validate('5W,L')); - $this->assertFalse($f->validate('1.')); - } - - /** - * @covers Cron\DayOfMonthField::isSatisfiedBy - */ - public function testChecksIfSatisfied() - { - $f = new DayOfMonthField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?')); - } - - /** - * @covers Cron\DayOfMonthField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new DayOfMonthField(); - $f->increment($d); - $this->assertEquals('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s')); - - $d = new DateTime('2011-03-15 11:15:00'); - $f->increment($d, true); - $this->assertEquals('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s')); - } - - /** - * Day of the month cannot accept a 0 value, it must be between 1 and 31 - * See Github issue #120 - * - * @since 2017-01-22 - */ - public function testDoesNotAccept0Date() - { - $f = new DayOfMonthField(); - $this->assertFalse($f->validate(0)); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/DayOfWeekFieldTest.php b/vendor/mtdowling/cron-expression/tests/Cron/DayOfWeekFieldTest.php deleted file mode 100644 index 182d5e90..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/DayOfWeekFieldTest.php +++ /dev/null @@ -1,117 +0,0 @@ - - */ -class DayOfWeekFieldTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\DayOfWeekField::validate - */ - public function testValidatesField() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->validate('1')); - $this->assertTrue($f->validate('*')); - $this->assertTrue($f->validate('*/3,1,1-12')); - $this->assertTrue($f->validate('SUN-2')); - $this->assertFalse($f->validate('1.')); - } - - /** - * @covers Cron\DayOfWeekField::isSatisfiedBy - */ - public function testChecksIfSatisfied() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?')); - } - - /** - * @covers Cron\DayOfWeekField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new DayOfWeekField(); - $f->increment($d); - $this->assertEquals('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s')); - - $d = new DateTime('2011-03-15 11:15:00'); - $f->increment($d, true); - $this->assertEquals('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s')); - } - - /** - * @covers Cron\DayOfWeekField::isSatisfiedBy - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Weekday must be a value between 0 and 7. 12 given - */ - public function testValidatesHashValueWeekday() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime(), '12#1')); - } - - /** - * @covers Cron\DayOfWeekField::isSatisfiedBy - * @expectedException InvalidArgumentException - * @expectedExceptionMessage There are never more than 5 of a given weekday in a month - */ - public function testValidatesHashValueNth() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime(), '3#6')); - } - - /** - * @covers Cron\DayOfWeekField::validate - */ - public function testValidateWeekendHash() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->validate('MON#1')); - $this->assertTrue($f->validate('TUE#2')); - $this->assertTrue($f->validate('WED#3')); - $this->assertTrue($f->validate('THU#4')); - $this->assertTrue($f->validate('FRI#5')); - $this->assertTrue($f->validate('SAT#1')); - $this->assertTrue($f->validate('SUN#3')); - $this->assertTrue($f->validate('MON#1,MON#3')); - } - - /** - * @covers Cron\DayOfWeekField::isSatisfiedBy - */ - public function testHandlesZeroAndSevenDayOfTheWeekValues() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2011-09-04 00:00:00'), '0-2')); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2011-09-04 00:00:00'), '6-0')); - - $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), 'SUN')); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), 'SUN#3')); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), '0#3')); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), '7#3')); - } - - /** - * @see https://github.com/mtdowling/cron-expression/issues/47 - */ - public function testIssue47() { - $f = new DayOfWeekField(); - $this->assertFalse($f->validate('mon,')); - $this->assertFalse($f->validate('mon-')); - $this->assertFalse($f->validate('*/2,')); - $this->assertFalse($f->validate('-mon')); - $this->assertFalse($f->validate(',1')); - $this->assertFalse($f->validate('*-')); - $this->assertFalse($f->validate(',-')); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/FieldFactoryTest.php b/vendor/mtdowling/cron-expression/tests/Cron/FieldFactoryTest.php deleted file mode 100644 index f34cc9b5..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/FieldFactoryTest.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class FieldFactoryTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\FieldFactory::getField - */ - public function testRetrievesFieldInstances() - { - $mappings = array( - 0 => 'Cron\MinutesField', - 1 => 'Cron\HoursField', - 2 => 'Cron\DayOfMonthField', - 3 => 'Cron\MonthField', - 4 => 'Cron\DayOfWeekField', - 5 => 'Cron\YearField' - ); - - $f = new FieldFactory(); - - foreach ($mappings as $position => $class) { - $this->assertEquals($class, get_class($f->getField($position))); - } - } - - /** - * @covers Cron\FieldFactory::getField - * @expectedException InvalidArgumentException - */ - public function testValidatesFieldPosition() - { - $f = new FieldFactory(); - $f->getField(-1); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/HoursFieldTest.php b/vendor/mtdowling/cron-expression/tests/Cron/HoursFieldTest.php deleted file mode 100644 index d2d8a22a..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/HoursFieldTest.php +++ /dev/null @@ -1,75 +0,0 @@ - - */ -class HoursFieldTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\HoursField::validate - */ - public function testValidatesField() - { - $f = new HoursField(); - $this->assertTrue($f->validate('1')); - $this->assertTrue($f->validate('*')); - $this->assertTrue($f->validate('*/3,1,1-12')); - } - - /** - * @covers Cron\HoursField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new HoursField(); - $f->increment($d); - $this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s')); - - $d->setTime(11, 15, 0); - $f->increment($d, true); - $this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s')); - } - - /** - * @covers Cron\HoursField::increment - */ - public function testIncrementsDateWithThirtyMinuteOffsetTimezone() - { - $tz = date_default_timezone_get(); - date_default_timezone_set('America/St_Johns'); - $d = new DateTime('2011-03-15 11:15:00'); - $f = new HoursField(); - $f->increment($d); - $this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s')); - - $d->setTime(11, 15, 0); - $f->increment($d, true); - $this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s')); - date_default_timezone_set($tz); - } - - /** - * @covers Cron\HoursField::increment - */ - public function testIncrementDateWithFifteenMinuteOffsetTimezone() - { - $tz = date_default_timezone_get(); - date_default_timezone_set('Asia/Kathmandu'); - $d = new DateTime('2011-03-15 11:15:00'); - $f = new HoursField(); - $f->increment($d); - $this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s')); - - $d->setTime(11, 15, 0); - $f->increment($d, true); - $this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s')); - date_default_timezone_set($tz); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/MinutesFieldTest.php b/vendor/mtdowling/cron-expression/tests/Cron/MinutesFieldTest.php deleted file mode 100644 index af3fef7f..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/MinutesFieldTest.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class MinutesFieldTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\MinutesField::validate - */ - public function testValidatesField() - { - $f = new MinutesField(); - $this->assertTrue($f->validate('1')); - $this->assertTrue($f->validate('*')); - $this->assertTrue($f->validate('*/3,1,1-12')); - } - - /** - * @covers Cron\MinutesField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new MinutesField(); - $f->increment($d); - $this->assertEquals('2011-03-15 11:16:00', $d->format('Y-m-d H:i:s')); - $f->increment($d, true); - $this->assertEquals('2011-03-15 11:15:00', $d->format('Y-m-d H:i:s')); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/MonthFieldTest.php b/vendor/mtdowling/cron-expression/tests/Cron/MonthFieldTest.php deleted file mode 100644 index 2d9b0ad2..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/MonthFieldTest.php +++ /dev/null @@ -1,81 +0,0 @@ - - */ -class MonthFieldTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\MonthField::validate - */ - public function testValidatesField() - { - $f = new MonthField(); - $this->assertTrue($f->validate('12')); - $this->assertTrue($f->validate('*')); - $this->assertTrue($f->validate('*/10,2,1-12')); - $this->assertFalse($f->validate('1.fix-regexp')); - } - - /** - * @covers Cron\MonthField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new MonthField(); - $f->increment($d); - $this->assertEquals('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s')); - - $d = new DateTime('2011-03-15 11:15:00'); - $f->increment($d, true); - $this->assertEquals('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s')); - } - - /** - * @covers Cron\MonthField::increment - */ - public function testIncrementsDateWithThirtyMinuteTimezone() - { - $tz = date_default_timezone_get(); - date_default_timezone_set('America/St_Johns'); - $d = new DateTime('2011-03-31 11:59:59'); - $f = new MonthField(); - $f->increment($d); - $this->assertEquals('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s')); - - $d = new DateTime('2011-03-15 11:15:00'); - $f->increment($d, true); - $this->assertEquals('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s')); - date_default_timezone_set($tz); - } - - - /** - * @covers Cron\MonthField::increment - */ - public function testIncrementsYearAsNeeded() - { - $f = new MonthField(); - $d = new DateTime('2011-12-15 00:00:00'); - $f->increment($d); - $this->assertEquals('2012-01-01 00:00:00', $d->format('Y-m-d H:i:s')); - } - - /** - * @covers Cron\MonthField::increment - */ - public function testDecrementsYearAsNeeded() - { - $f = new MonthField(); - $d = new DateTime('2011-01-15 00:00:00'); - $f->increment($d, true); - $this->assertEquals('2010-12-31 23:59:00', $d->format('Y-m-d H:i:s')); - } -} diff --git a/vendor/mtdowling/cron-expression/tests/Cron/YearFieldTest.php b/vendor/mtdowling/cron-expression/tests/Cron/YearFieldTest.php deleted file mode 100644 index b5059ece..00000000 --- a/vendor/mtdowling/cron-expression/tests/Cron/YearFieldTest.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class YearFieldTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers Cron\YearField::validate - */ - public function testValidatesField() - { - $f = new YearField(); - $this->assertTrue($f->validate('2011')); - $this->assertTrue($f->validate('*')); - $this->assertTrue($f->validate('*/10,2012,1-12')); - } - - /** - * @covers Cron\YearField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new YearField(); - $f->increment($d); - $this->assertEquals('2012-01-01 00:00:00', $d->format('Y-m-d H:i:s')); - $f->increment($d, true); - $this->assertEquals('2011-12-31 23:59:00', $d->format('Y-m-d H:i:s')); - } -} diff --git a/vendor/myclabs/deep-copy/.gitattributes b/vendor/myclabs/deep-copy/.gitattributes deleted file mode 100755 index 8018068b..00000000 --- a/vendor/myclabs/deep-copy/.gitattributes +++ /dev/null @@ -1,7 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -*.png binary - -tests/ export-ignore -phpunit.xml.dist export-ignore diff --git a/vendor/myclabs/deep-copy/.gitignore b/vendor/myclabs/deep-copy/.gitignore deleted file mode 100755 index eef72f75..00000000 --- a/vendor/myclabs/deep-copy/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/composer.phar -/composer.lock -/vendor/* diff --git a/vendor/myclabs/deep-copy/.travis.yml b/vendor/myclabs/deep-copy/.travis.yml deleted file mode 100755 index 89dc02af..00000000 --- a/vendor/myclabs/deep-copy/.travis.yml +++ /dev/null @@ -1,40 +0,0 @@ -language: php - -sudo: false - -php: - - '5.6' - - '7.0' - - '7.1' - - nightly - -matrix: - fast_finish: true - include: - - php: '5.6' - env: COMPOSER_FLAGS="--prefer-lowest" - allow_failures: - - php: nightly - -cache: - directories: - - $HOME/.composer/cache/files - -before_install: - - | - if [ "$TRAVIS_PHP_VERSION" = "nightly" ]; then - COMPOSER_FLAGS="$COMPOSER_FLAGS --ignore-platform-reqs" - fi; - -install: - - composer update --no-interaction --no-progress --no-suggest --prefer-dist $COMPOSER_FLAGS - - wget https://github.com/satooshi/php-coveralls/releases/download/v1.0.0/coveralls.phar - -before_script: - - mkdir -p build/logs - -script: - - vendor/bin/phpunit --coverage-clover build/logs/clover.xml - -after_script: - - php coveralls.phar -v diff --git a/vendor/myclabs/deep-copy/LICENSE b/vendor/myclabs/deep-copy/LICENSE deleted file mode 100644 index c3e83500..00000000 --- a/vendor/myclabs/deep-copy/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 My C-Sense - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/myclabs/deep-copy/README.md b/vendor/myclabs/deep-copy/README.md deleted file mode 100644 index 7f010df2..00000000 --- a/vendor/myclabs/deep-copy/README.md +++ /dev/null @@ -1,372 +0,0 @@ -# DeepCopy - -DeepCopy helps you create deep copies (clones) of your objects. It is designed to handle cycles in the association graph. - -[![Build Status](https://travis-ci.org/myclabs/DeepCopy.png?branch=master)](https://travis-ci.org/myclabs/DeepCopy) -[![Coverage Status](https://coveralls.io/repos/myclabs/DeepCopy/badge.png?branch=master)](https://coveralls.io/r/myclabs/DeepCopy?branch=master) -[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/myclabs/DeepCopy/badges/quality-score.png?s=2747100c19b275f93a777e3297c6c12d1b68b934)](https://scrutinizer-ci.com/g/myclabs/DeepCopy/) -[![Total Downloads](https://poser.pugx.org/myclabs/deep-copy/downloads.svg)](https://packagist.org/packages/myclabs/deep-copy) - - -## Table of Contents - -1. [How](#how) -1. [Why](#why) - 1. [Using simply `clone`](#using-simply-clone) - 1. [Overridding `__clone()`](#overridding-__clone) - 1. [With `DeepCopy`](#with-deepcopy) -1. [How it works](#how-it-works) -1. [Going further](#going-further) - 1. [Matchers](#matchers) - 1. [Property name](#property-name) - 1. [Specific property](#specific-property) - 1. [Type](#type) - 1. [Filters](#filters) - 1. [`SetNullFilter`](#setnullfilter-filter) - 1. [`KeepFilter`](#keepfilter-filter) - 1. [`DoctrineCollectionFilter`](#doctrinecollectionfilter-filter) - 1. [`DoctrineEmptyCollectionFilter`](#doctrineemptycollectionfilter-filter) - 1. [`DoctrineProxyFilter`](#doctrineproxyfilter-filter) - 1. [`ReplaceFilter`](#replacefilter-type-filter) - 1. [`ShallowCopyFilter`](#doctrinecollectionfilter-type-filter) -1. [Edge cases](#edge-cases) -1. [Contributing](#contributing) - 1. [Tests](#tests) - - -## How? - -Install with Composer: - -```json -composer require myclabs/deep-copy -``` - -Use simply: - -```php -use DeepCopy\DeepCopy; - -$copier = new DeepCopy(); -$myCopy = $copier->copy($myObject); -``` - - -## Why? - -- How do you create copies of your objects? - -```php -$myCopy = clone $myObject; -``` - -- How do you create **deep** copies of your objects (i.e. copying also all the objects referenced in the properties)? - -You use [`__clone()`](http://www.php.net/manual/en/language.oop5.cloning.php#object.clone) and implement the behavior -yourself. - -- But how do you handle **cycles** in the association graph? - -Now you're in for a big mess :( - -![association graph](doc/graph.png) - - -### Using simply `clone` - -![Using clone](doc/clone.png) - - -### Overridding `__clone()` - -![Overridding __clone](doc/deep-clone.png) - - -### With `DeepCopy` - -![With DeepCopy](doc/deep-copy.png) - - -## How it works - -DeepCopy recursively traverses all the object's properties and clones them. To avoid cloning the same object twice it -keeps a hash map of all instances and thus preserves the object graph. - -To use it: - -```php -use function DeepCopy\deep_copy; - -$copy = deep_copy($var); -``` - -Alternatively, you can create your own `DeepCopy` instance to configure it differently for example: - -```php -use DeepCopy\DeepCopy; - -$copier = new DeepCopy(true); - -$copy = $copier->copy($var); -``` - -You may want to roll your own deep copy function: - -```php -namespace Acme; - -use DeepCopy\DeepCopy; - -function deep_copy($var) -{ - static $copier = null; - - if (null === $copier) { - $copier = new DeepCopy(true); - } - - return $copier->copy($var); -} -``` - - -## Going further - -You can add filters to customize the copy process. - -The method to add a filter is `DeepCopy\DeepCopy::addFilter($filter, $matcher)`, -with `$filter` implementing `DeepCopy\Filter\Filter` -and `$matcher` implementing `DeepCopy\Matcher\Matcher`. - -We provide some generic filters and matchers. - - -### Matchers - - - `DeepCopy\Matcher` applies on a object attribute. - - `DeepCopy\TypeMatcher` applies on any element found in graph, including array elements. - - -#### Property name - -The `PropertyNameMatcher` will match a property by its name: - -```php -use DeepCopy\Matcher\PropertyNameMatcher; - -// Will apply a filter to any property of any objects named "id" -$matcher = new PropertyNameMatcher('id'); -``` - - -#### Specific property - -The `PropertyMatcher` will match a specific property of a specific class: - -```php -use DeepCopy\Matcher\PropertyMatcher; - -// Will apply a filter to the property "id" of any objects of the class "MyClass" -$matcher = new PropertyMatcher('MyClass', 'id'); -``` - - -#### Type - -The `TypeMatcher` will match any element by its type (instance of a class or any value that could be parameter of -[gettype()](http://php.net/manual/en/function.gettype.php) function): - -```php -use DeepCopy\TypeMatcher\TypeMatcher; - -// Will apply a filter to any object that is an instance of Doctrine\Common\Collections\Collection -$matcher = new TypeMatcher('Doctrine\Common\Collections\Collection'); -``` - - -### Filters - -- `DeepCopy\Filter` applies a transformation to the object attribute matched by `DeepCopy\Matcher` -- `DeepCopy\TypeFilter` applies a transformation to any element matched by `DeepCopy\TypeMatcher` - - -#### `SetNullFilter` (filter) - -Let's say for example that you are copying a database record (or a Doctrine entity), so you want the copy not to have -any ID: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\SetNullFilter; -use DeepCopy\Matcher\PropertyNameMatcher; - -$object = MyClass::load(123); -echo $object->id; // 123 - -$copier = new DeepCopy(); -$copier->addFilter(new SetNullFilter(), new PropertyNameMatcher('id')); - -$copy = $copier->copy($object); - -echo $copy->id; // null -``` - - -#### `KeepFilter` (filter) - -If you want a property to remain untouched (for example, an association to an object): - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\KeepFilter; -use DeepCopy\Matcher\PropertyMatcher; - -$copier = new DeepCopy(); -$copier->addFilter(new KeepFilter(), new PropertyMatcher('MyClass', 'category')); - -$copy = $copier->copy($object); -// $copy->category has not been touched -``` - - -#### `DoctrineCollectionFilter` (filter) - -If you use Doctrine and want to copy an entity, you will need to use the `DoctrineCollectionFilter`: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\Doctrine\DoctrineCollectionFilter; -use DeepCopy\Matcher\PropertyTypeMatcher; - -$copier = new DeepCopy(); -$copier->addFilter(new DoctrineCollectionFilter(), new PropertyTypeMatcher('Doctrine\Common\Collections\Collection')); - -$copy = $copier->copy($object); -``` - - -#### `DoctrineEmptyCollectionFilter` (filter) - -If you use Doctrine and want to copy an entity who contains a `Collection` that you want to be reset, you can use the -`DoctrineEmptyCollectionFilter` - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\Doctrine\DoctrineEmptyCollectionFilter; -use DeepCopy\Matcher\PropertyMatcher; - -$copier = new DeepCopy(); -$copier->addFilter(new DoctrineEmptyCollectionFilter(), new PropertyMatcher('MyClass', 'myProperty')); - -$copy = $copier->copy($object); - -// $copy->myProperty will return an empty collection -``` - - -#### `DoctrineProxyFilter` (filter) - -If you use Doctrine and use cloning on lazy loaded entities, you might encounter errors mentioning missing fields on a -Doctrine proxy class (...\\\_\_CG\_\_\Proxy). -You can use the `DoctrineProxyFilter` to load the actual entity behind the Doctrine proxy class. -**Make sure, though, to put this as one of your very first filters in the filter chain so that the entity is loaded -before other filters are applied!** - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\Doctrine\DoctrineProxyFilter; -use DeepCopy\Matcher\Doctrine\DoctrineProxyMatcher; - -$copier = new DeepCopy(); -$copier->addFilter(new DoctrineProxyFilter(), new DoctrineProxyMatcher()); - -$copy = $copier->copy($object); - -// $copy should now contain a clone of all entities, including those that were not yet fully loaded. -``` - - -#### `ReplaceFilter` (type filter) - -1. If you want to replace the value of a property: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\ReplaceFilter; -use DeepCopy\Matcher\PropertyMatcher; - -$copier = new DeepCopy(); -$callback = function ($currentValue) { - return $currentValue . ' (copy)' -}; -$copier->addFilter(new ReplaceFilter($callback), new PropertyMatcher('MyClass', 'title')); - -$copy = $copier->copy($object); - -// $copy->title will contain the data returned by the callback, e.g. 'The title (copy)' -``` - -2. If you want to replace whole element: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\TypeFilter\ReplaceFilter; -use DeepCopy\TypeMatcher\TypeMatcher; - -$copier = new DeepCopy(); -$callback = function (MyClass $myClass) { - return get_class($myClass); -}; -$copier->addTypeFilter(new ReplaceFilter($callback), new TypeMatcher('MyClass')); - -$copy = $copier->copy([new MyClass, 'some string', new MyClass]); - -// $copy will contain ['MyClass', 'some string', 'MyClass'] -``` - - -The `$callback` parameter of the `ReplaceFilter` constructor accepts any PHP callable. - - -#### `ShallowCopyFilter` (type filter) - -Stop *DeepCopy* from recursively copying element, using standard `clone` instead: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\TypeFilter\ShallowCopyFilter; -use DeepCopy\TypeMatcher\TypeMatcher; -use Mockery as m; - -$this->deepCopy = new DeepCopy(); -$this->deepCopy->addTypeFilter( - new ShallowCopyFilter, - new TypeMatcher(m\MockInterface::class) -); - -$myServiceWithMocks = new MyService(m::mock(MyDependency1::class), m::mock(MyDependency2::class)); -// All mocks will be just cloned, not deep copied -``` - - -## Edge cases - -The following structures cannot be deep-copied with PHP Reflection. As a result they are shallow cloned and filters are -not applied. There is two ways for you to handle them: - -- Implement your own `__clone()` method -- Use a filter with a type matcher - - -## Contributing - -DeepCopy is distributed under the MIT license. - - -### Tests - -Running the tests is simple: - -```php -vendor/bin/phpunit -``` diff --git a/vendor/myclabs/deep-copy/composer.json b/vendor/myclabs/deep-copy/composer.json deleted file mode 100644 index d5d3a779..00000000 --- a/vendor/myclabs/deep-copy/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "myclabs/deep-copy", - "type": "library", - "description": "Create deep copies (clones) of your objects", - "keywords": ["clone", "copy", "duplicate", "object", "object graph"], - "license": "MIT", - - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "autoload-dev": { - "psr-4": { - "DeepCopy\\": "fixtures/", - "DeepCopyTest\\": "tests/DeepCopyTest/" - } - }, - - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" - }, - - "config": { - "sort-packages": true - } -} diff --git a/vendor/myclabs/deep-copy/doc/clone.png b/vendor/myclabs/deep-copy/doc/clone.png deleted file mode 100644 index 376afd491257d44a8c3772b0b7b0bd7b6c747086..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12380 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�+9eLb17NhZax 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 diff --git a/vendor/myclabs/deep-copy/doc/graph.png b/vendor/myclabs/deep-copy/doc/graph.png deleted file mode 100644 index 4d5c9428f719bf6ad68f25a46d6e935c2362c4a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6436 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 diff --git a/vendor/myclabs/deep-copy/fixtures/f001/A.php b/vendor/myclabs/deep-copy/fixtures/f001/A.php deleted file mode 100644 index 648d5dff..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f001/A.php +++ /dev/null @@ -1,20 +0,0 @@ -aProp; - } - - public function setAProp($prop) - { - $this->aProp = $prop; - - return $this; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f001/B.php b/vendor/myclabs/deep-copy/fixtures/f001/B.php deleted file mode 100644 index 462bb44e..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f001/B.php +++ /dev/null @@ -1,20 +0,0 @@ -bProp; - } - - public function setBProp($prop) - { - $this->bProp = $prop; - - return $this; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f002/A.php b/vendor/myclabs/deep-copy/fixtures/f002/A.php deleted file mode 100644 index d9aa5c35..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f002/A.php +++ /dev/null @@ -1,33 +0,0 @@ -prop1; - } - - public function setProp1($prop) - { - $this->prop1 = $prop; - - return $this; - } - - public function getProp2() - { - return $this->prop2; - } - - public function setProp2($prop) - { - $this->prop2 = $prop; - - return $this; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f003/Foo.php b/vendor/myclabs/deep-copy/fixtures/f003/Foo.php deleted file mode 100644 index 9cd76224..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f003/Foo.php +++ /dev/null @@ -1,26 +0,0 @@ -name = $name; - } - - public function getProp() - { - return $this->prop; - } - - public function setProp($prop) - { - $this->prop = $prop; - - return $this; - } -} \ No newline at end of file diff --git a/vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php b/vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php deleted file mode 100644 index 82c6c67c..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php +++ /dev/null @@ -1,13 +0,0 @@ -cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f006/A.php b/vendor/myclabs/deep-copy/fixtures/f006/A.php deleted file mode 100644 index d9efb116..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f006/A.php +++ /dev/null @@ -1,26 +0,0 @@ -aProp; - } - - public function setAProp($prop) - { - $this->aProp = $prop; - - return $this; - } - - public function __clone() - { - $this->cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f006/B.php b/vendor/myclabs/deep-copy/fixtures/f006/B.php deleted file mode 100644 index 1f80b3d4..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f006/B.php +++ /dev/null @@ -1,26 +0,0 @@ -bProp; - } - - public function setBProp($prop) - { - $this->bProp = $prop; - - return $this; - } - - public function __clone() - { - $this->cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php b/vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php deleted file mode 100644 index e16bc6aa..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php +++ /dev/null @@ -1,15 +0,0 @@ -cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php b/vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php deleted file mode 100644 index 6f4e61fe..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php +++ /dev/null @@ -1,15 +0,0 @@ -cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f008/A.php b/vendor/myclabs/deep-copy/fixtures/f008/A.php deleted file mode 100644 index 88471d01..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f008/A.php +++ /dev/null @@ -1,18 +0,0 @@ -foo = $foo; - } - - public function getFoo() - { - return $this->foo; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f008/B.php b/vendor/myclabs/deep-copy/fixtures/f008/B.php deleted file mode 100644 index 6053092d..00000000 --- a/vendor/myclabs/deep-copy/fixtures/f008/B.php +++ /dev/null @@ -1,7 +0,0 @@ - Filter, 'matcher' => Matcher] pairs. - */ - private $filters = []; - - /** - * Type Filters to apply. - * - * @var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs. - */ - private $typeFilters = []; - - /** - * @var bool - */ - private $skipUncloneable = false; - - /** - * @var bool - */ - private $useCloneMethod; - - /** - * @param bool $useCloneMethod If set to true, when an object implements the __clone() function, it will be used - * instead of the regular deep cloning. - */ - public function __construct($useCloneMethod = false) - { - $this->useCloneMethod = $useCloneMethod; - - $this->addTypeFilter(new DateIntervalFilter(), new TypeMatcher(DateInterval::class)); - $this->addTypeFilter(new SplDoublyLinkedListFilter($this), new TypeMatcher(SplDoublyLinkedList::class)); - } - - /** - * If enabled, will not throw an exception when coming across an uncloneable property. - * - * @param $skipUncloneable - * - * @return $this - */ - public function skipUncloneable($skipUncloneable = true) - { - $this->skipUncloneable = $skipUncloneable; - - return $this; - } - - /** - * Deep copies the given object. - * - * @param mixed $object - * - * @return mixed - */ - public function copy($object) - { - $this->hashMap = []; - - return $this->recursiveCopy($object); - } - - public function addFilter(Filter $filter, Matcher $matcher) - { - $this->filters[] = [ - 'matcher' => $matcher, - 'filter' => $filter, - ]; - } - - public function addTypeFilter(TypeFilter $filter, TypeMatcher $matcher) - { - $this->typeFilters[] = [ - 'matcher' => $matcher, - 'filter' => $filter, - ]; - } - - private function recursiveCopy($var) - { - // Matches Type Filter - if ($filter = $this->getFirstMatchedTypeFilter($this->typeFilters, $var)) { - return $filter->apply($var); - } - - // Resource - if (is_resource($var)) { - return $var; - } - - // Array - if (is_array($var)) { - return $this->copyArray($var); - } - - // Scalar - if (! is_object($var)) { - return $var; - } - - // Object - return $this->copyObject($var); - } - - /** - * Copy an array - * @param array $array - * @return array - */ - private function copyArray(array $array) - { - foreach ($array as $key => $value) { - $array[$key] = $this->recursiveCopy($value); - } - - return $array; - } - - /** - * Copies an object. - * - * @param object $object - * - * @throws CloneException - * - * @return object - */ - private function copyObject($object) - { - $objectHash = spl_object_hash($object); - - if (isset($this->hashMap[$objectHash])) { - return $this->hashMap[$objectHash]; - } - - $reflectedObject = new ReflectionObject($object); - $isCloneable = $reflectedObject->isCloneable(); - - if (false === $isCloneable) { - if ($this->skipUncloneable) { - $this->hashMap[$objectHash] = $object; - - return $object; - } - - throw new CloneException( - sprintf( - 'The class "%s" is not cloneable.', - $reflectedObject->getName() - ) - ); - } - - $newObject = clone $object; - $this->hashMap[$objectHash] = $newObject; - - if ($this->useCloneMethod && $reflectedObject->hasMethod('__clone')) { - return $newObject; - } - - if ($newObject instanceof DateTimeInterface || $newObject instanceof DateTimeZone) { - return $newObject; - } - - foreach (ReflectionHelper::getProperties($reflectedObject) as $property) { - $this->copyObjectProperty($newObject, $property); - } - - return $newObject; - } - - private function copyObjectProperty($object, ReflectionProperty $property) - { - // Ignore static properties - if ($property->isStatic()) { - return; - } - - // Apply the filters - foreach ($this->filters as $item) { - /** @var Matcher $matcher */ - $matcher = $item['matcher']; - /** @var Filter $filter */ - $filter = $item['filter']; - - if ($matcher->matches($object, $property->getName())) { - $filter->apply( - $object, - $property->getName(), - function ($object) { - return $this->recursiveCopy($object); - } - ); - - // If a filter matches, we stop processing this property - return; - } - } - - $property->setAccessible(true); - $propertyValue = $property->getValue($object); - - // Copy the property - $property->setValue($object, $this->recursiveCopy($propertyValue)); - } - - /** - * Returns first filter that matches variable, `null` if no such filter found. - * - * @param array $filterRecords Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and - * 'matcher' with value of type {@see TypeMatcher} - * @param mixed $var - * - * @return TypeFilter|null - */ - private function getFirstMatchedTypeFilter(array $filterRecords, $var) - { - $matched = $this->first( - $filterRecords, - function (array $record) use ($var) { - /* @var TypeMatcher $matcher */ - $matcher = $record['matcher']; - - return $matcher->matches($var); - } - ); - - return isset($matched) ? $matched['filter'] : null; - } - - /** - * Returns first element that matches predicate, `null` if no such element found. - * - * @param array $elements Array of ['filter' => Filter, 'matcher' => Matcher] pairs. - * @param callable $predicate Predicate arguments are: element. - * - * @return array|null Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and 'matcher' - * with value of type {@see TypeMatcher} or `null`. - */ - private function first(array $elements, callable $predicate) - { - foreach ($elements as $element) { - if (call_user_func($predicate, $element)) { - return $element; - } - } - - return null; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php b/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php deleted file mode 100644 index c046706a..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php +++ /dev/null @@ -1,9 +0,0 @@ -setAccessible(true); - $oldCollection = $reflectionProperty->getValue($object); - - $newCollection = $oldCollection->map( - function ($item) use ($objectCopier) { - return $objectCopier($item); - } - ); - - $reflectionProperty->setValue($object, $newCollection); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php deleted file mode 100644 index 7b33fd54..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php +++ /dev/null @@ -1,28 +0,0 @@ -setAccessible(true); - - $reflectionProperty->setValue($object, new ArrayCollection()); - } -} \ No newline at end of file diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php deleted file mode 100644 index 8bee8f76..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php +++ /dev/null @@ -1,22 +0,0 @@ -__load(); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php deleted file mode 100644 index 85ba18ce..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php +++ /dev/null @@ -1,18 +0,0 @@ -callback = $callable; - } - - /** - * Replaces the object property by the result of the callback called with the object property. - * - * {@inheritdoc} - */ - public function apply($object, $property, $objectCopier) - { - $reflectionProperty = ReflectionHelper::getProperty($object, $property); - $reflectionProperty->setAccessible(true); - - $value = call_user_func($this->callback, $reflectionProperty->getValue($object)); - - $reflectionProperty->setValue($object, $value); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php deleted file mode 100644 index bea86b88..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php +++ /dev/null @@ -1,24 +0,0 @@ -setAccessible(true); - $reflectionProperty->setValue($object, null); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php deleted file mode 100644 index ec8856f5..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php +++ /dev/null @@ -1,22 +0,0 @@ -class = $class; - $this->property = $property; - } - - /** - * Matches a specific property of a specific class. - * - * {@inheritdoc} - */ - public function matches($object, $property) - { - return ($object instanceof $this->class) && $property == $this->property; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php deleted file mode 100644 index c8ec0d2b..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php +++ /dev/null @@ -1,32 +0,0 @@ -property = $property; - } - - /** - * Matches a property by its name. - * - * {@inheritdoc} - */ - public function matches($object, $property) - { - return $property == $this->property; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php deleted file mode 100644 index a6b0c0bc..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php +++ /dev/null @@ -1,46 +0,0 @@ -propertyType = $propertyType; - } - - /** - * {@inheritdoc} - */ - public function matches($object, $property) - { - try { - $reflectionProperty = ReflectionHelper::getProperty($object, $property); - } catch (ReflectionException $exception) { - return false; - } - - $reflectionProperty->setAccessible(true); - - return $reflectionProperty->getValue($object) instanceof $this->propertyType; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php b/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php deleted file mode 100644 index 742410cb..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php +++ /dev/null @@ -1,78 +0,0 @@ -getProperties() does not return private properties from ancestor classes. - * - * @author muratyaman@gmail.com - * @see http://php.net/manual/en/reflectionclass.getproperties.php - * - * @param ReflectionClass $ref - * - * @return ReflectionProperty[] - */ - public static function getProperties(ReflectionClass $ref) - { - $props = $ref->getProperties(); - $propsArr = array(); - - foreach ($props as $prop) { - $propertyName = $prop->getName(); - $propsArr[$propertyName] = $prop; - } - - if ($parentClass = $ref->getParentClass()) { - $parentPropsArr = self::getProperties($parentClass); - foreach ($propsArr as $key => $property) { - $parentPropsArr[$key] = $property; - } - - return $parentPropsArr; - } - - return $propsArr; - } - - /** - * Retrieves property by name from object and all its ancestors. - * - * @param object|string $object - * @param string $name - * - * @throws PropertyException - * @throws ReflectionException - * - * @return ReflectionProperty - */ - public static function getProperty($object, $name) - { - $reflection = is_object($object) ? new ReflectionObject($object) : new ReflectionClass($object); - - if ($reflection->hasProperty($name)) { - return $reflection->getProperty($name); - } - - if ($parentClass = $reflection->getParentClass()) { - return self::getProperty($parentClass->getName(), $name); - } - - throw new PropertyException( - sprintf( - 'The class "%s" doesn\'t have a property with the given name: "%s".', - is_object($object) ? get_class($object) : $object, - $name - ) - ); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php deleted file mode 100644 index becd1cff..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php +++ /dev/null @@ -1,33 +0,0 @@ - $propertyValue) { - $copy->{$propertyName} = $propertyValue; - } - - return $copy; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php deleted file mode 100644 index 164f8b8e..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php +++ /dev/null @@ -1,30 +0,0 @@ -callback = $callable; - } - - /** - * {@inheritdoc} - */ - public function apply($element) - { - return call_user_func($this->callback, $element); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php deleted file mode 100644 index a5fbd7a2..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php +++ /dev/null @@ -1,17 +0,0 @@ -copier = $copier; - } - - /** - * {@inheritdoc} - */ - public function apply($element) - { - $newElement = clone $element; - - $copy = $this->createCopyClosure(); - - return $copy($newElement); - } - - private function createCopyClosure() - { - $copier = $this->copier; - - $copy = function (SplDoublyLinkedList $list) use ($copier) { - // Replace each element in the list with a deep copy of itself - for ($i = 1; $i <= $list->count(); $i++) { - $copy = $copier->recursiveCopy($list->shift()); - - $list->push($copy); - } - - return $list; - }; - - return Closure::bind($copy, null, DeepCopy::class); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php deleted file mode 100644 index 5785a7da..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php +++ /dev/null @@ -1,13 +0,0 @@ -type = $type; - } - - /** - * @param mixed $element - * - * @return boolean - */ - public function matches($element) - { - return is_object($element) ? is_a($element, $this->type) : gettype($element) === $this->type; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php b/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php deleted file mode 100644 index 272652ca..00000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php +++ /dev/null @@ -1,16 +0,0 @@ -copy($value); -} diff --git a/vendor/nesbot/carbon/.php_cs.dist b/vendor/nesbot/carbon/.php_cs.dist deleted file mode 100644 index ff8b56f0..00000000 --- a/vendor/nesbot/carbon/.php_cs.dist +++ /dev/null @@ -1,57 +0,0 @@ - true, - 'array_syntax' => [ - 'syntax' => 'long', - ], - 'binary_operator_spaces' => [ - 'align_double_arrow' => false, - 'align_equals' => false, - ], - 'blank_line_before_return' => true, - 'cast_spaces' => true, - 'concat_space' => [ - 'spacing' => 'none', - ], - 'ereg_to_preg' => true, - 'method_separation' => true, - 'no_blank_lines_after_phpdoc' => true, - 'no_extra_consecutive_blank_lines' => true, - 'no_short_bool_cast' => true, - 'no_unneeded_control_parentheses' => true, - 'no_unused_imports' => true, - 'no_whitespace_in_blank_line' => true, - 'ordered_imports' => true, - 'phpdoc_align' => true, - 'phpdoc_indent' => true, - 'phpdoc_inline_tag' => true, - 'phpdoc_no_access' => true, - 'phpdoc_no_alias_tag' => [ - 'type' => 'var', - ], - 'phpdoc_no_package' => true, - 'phpdoc_order' => true, - 'phpdoc_scalar' => true, - 'phpdoc_separation' => true, - 'phpdoc_to_comment' => true, - 'phpdoc_trim' => true, - 'phpdoc_types' => true, - 'phpdoc_var_without_name' => true, - 'self_accessor' => true, - 'single_quote' => true, - 'space_after_semicolon' => true, - 'standardize_not_equals' => true, - 'ternary_operator_spaces' => true, - 'trailing_comma_in_multiline_array' => true, - 'trim_array_spaces' => true, - 'unary_operator_spaces' => true, -]; - -return Config::create()->setRules($rules) - ->setFinder(Finder::create()->in(__DIR__)) - ->setUsingCache(true) - ->setRiskyAllowed(true); \ No newline at end of file diff --git a/vendor/nesbot/carbon/LICENSE b/vendor/nesbot/carbon/LICENSE deleted file mode 100644 index 6de45ebf..00000000 --- a/vendor/nesbot/carbon/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) Brian Nesbitt - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/nesbot/carbon/composer.json b/vendor/nesbot/carbon/composer.json deleted file mode 100644 index 63d576d1..00000000 --- a/vendor/nesbot/carbon/composer.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "nesbot/carbon", - "type": "library", - "description": "A simple API extension for DateTime.", - "keywords": [ - "date", - "time", - "DateTime" - ], - "homepage": "http://carbon.nesbot.com", - "support": { - "issues": "https://github.com/briannesbitt/Carbon/issues", - "source": "https://github.com/briannesbitt/Carbon" - }, - "license": "MIT", - "authors": [ - { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" - } - ], - "require": { - "php": ">=5.3.0", - "symfony/translation": "~2.6 || ~3.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2", - "phpunit/phpunit": "~4.0 || ~5.0" - }, - "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.23-dev" - } - }, - "config": { - "sort-packages": true - }, - "scripts": { - "test": "./vendor/bin/phpunit; ./vendor/bin/php-cs-fixer fix -v --diff --dry-run;", - "phpunit": "./vendor/bin/phpunit;", - "phpcs": "./vendor/bin/php-cs-fixer fix -v --diff --dry-run;" - } -} diff --git a/vendor/nesbot/carbon/readme.md b/vendor/nesbot/carbon/readme.md deleted file mode 100644 index 57836c3a..00000000 --- a/vendor/nesbot/carbon/readme.md +++ /dev/null @@ -1,92 +0,0 @@ -# Carbon - -[![Latest Stable Version](https://poser.pugx.org/nesbot/carbon/v/stable.png)](https://packagist.org/packages/nesbot/carbon) -[![Total Downloads](https://poser.pugx.org/nesbot/carbon/downloads.png)](https://packagist.org/packages/nesbot/carbon) -[![Build Status](https://travis-ci.org/briannesbitt/Carbon.svg?branch=master)](https://travis-ci.org/briannesbitt/Carbon) -[![StyleCI](https://styleci.io/repos/5724990/shield?style=flat)](https://styleci.io/repos/5724990) -[![codecov.io](https://codecov.io/github/briannesbitt/Carbon/coverage.svg?branch=master)](https://codecov.io/github/briannesbitt/Carbon?branch=master) -[![PHP-Eye](https://php-eye.com/badge/nesbot/carbon/tested.svg?style=flat)](https://php-eye.com/package/nesbot/carbon) - -A simple PHP API extension for DateTime. [http://carbon.nesbot.com](http://carbon.nesbot.com) - -```php -use Carbon\Carbon; - -printf("Right now is %s", Carbon::now()->toDateTimeString()); -printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); //implicit __toString() -$tomorrow = Carbon::now()->addDay(); -$lastWeek = Carbon::now()->subWeek(); -$nextSummerOlympics = Carbon::createFromDate(2012)->addYears(4); - -$officialDate = Carbon::now()->toRfc2822String(); - -$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age; - -$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London'); - -$worldWillEnd = Carbon::createFromDate(2012, 12, 21, 'GMT'); - -// Don't really want to die so mock now -Carbon::setTestNow(Carbon::createFromDate(2000, 1, 1)); - -// comparisons are always done in UTC -if (Carbon::now()->gte($worldWillEnd)) { - die(); -} - -// Phew! Return to normal behaviour -Carbon::setTestNow(); - -if (Carbon::now()->isWeekend()) { - echo 'Party!'; -} -echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago' - -// ... but also does 'from now', 'after' and 'before' -// rolling up to seconds, minutes, hours, days, months, years - -$daysSinceEpoch = Carbon::createFromTimestamp(0)->diffInDays(); -``` - -## Installation - -### With Composer - -``` -$ composer require nesbot/carbon -``` - -```json -{ - "require": { - "nesbot/carbon": "~1.21" - } -} -``` - -```php - -### Without Composer - -Why are you not using [composer](http://getcomposer.org/)? Download [Carbon.php](https://github.com/briannesbitt/Carbon/blob/master/src/Carbon/Carbon.php) from the repo and save the file into your project path somewhere. - -```php - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Carbon; - -use Carbon\Exceptions\InvalidDateException; -use Closure; -use DatePeriod; -use DateTime; -use DateTimeZone; -use InvalidArgumentException; -use Symfony\Component\Translation\Loader\ArrayLoader; -use Symfony\Component\Translation\Translator; -use Symfony\Component\Translation\TranslatorInterface; - -/** - * A simple API extension for DateTime - * - * @property int $year - * @property int $yearIso - * @property int $month - * @property int $day - * @property int $hour - * @property int $minute - * @property int $second - * @property int $timestamp seconds since the Unix Epoch - * @property \DateTimeZone $timezone the current timezone - * @property \DateTimeZone $tz alias of timezone - * @property-read int $micro - * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) - * @property-read int $dayOfYear 0 through 365 - * @property-read int $weekOfMonth 1 through 5 - * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday - * @property-read int $daysInMonth number of days in the given month - * @property-read int $age does a diffInYears() with default parameters - * @property-read int $quarter the quarter of this instance, 1 - 4 - * @property-read int $offset the timezone offset in seconds from UTC - * @property-read int $offsetHours the timezone offset in hours from UTC - * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise - * @property-read bool $local checks if the timezone is local, true if local, false otherwise - * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise - * @property-read string $timezoneName - * @property-read string $tzName - */ -class Carbon extends DateTime -{ - /** - * The day constants. - */ - const SUNDAY = 0; - const MONDAY = 1; - const TUESDAY = 2; - const WEDNESDAY = 3; - const THURSDAY = 4; - const FRIDAY = 5; - const SATURDAY = 6; - - /** - * Names of days of the week. - * - * @var array - */ - protected static $days = array( - self::SUNDAY => 'Sunday', - self::MONDAY => 'Monday', - self::TUESDAY => 'Tuesday', - self::WEDNESDAY => 'Wednesday', - self::THURSDAY => 'Thursday', - self::FRIDAY => 'Friday', - self::SATURDAY => 'Saturday', - ); - - /** - * Terms used to detect if a time passed is a relative date. - * - * This is here for testing purposes. - * - * @var array - */ - protected static $relativeKeywords = array( - '+', - '-', - 'ago', - 'first', - 'last', - 'next', - 'this', - 'today', - 'tomorrow', - 'yesterday', - ); - - /** - * Number of X in Y. - */ - const YEARS_PER_CENTURY = 100; - const YEARS_PER_DECADE = 10; - const MONTHS_PER_YEAR = 12; - const MONTHS_PER_QUARTER = 3; - const WEEKS_PER_YEAR = 52; - const DAYS_PER_WEEK = 7; - const HOURS_PER_DAY = 24; - const MINUTES_PER_HOUR = 60; - const SECONDS_PER_MINUTE = 60; - - /** - * Default format to use for __toString method when type juggling occurs. - * - * @var string - */ - const DEFAULT_TO_STRING_FORMAT = 'Y-m-d H:i:s'; - - /** - * Format to use for __toString method when type juggling occurs. - * - * @var string - */ - protected static $toStringFormat = self::DEFAULT_TO_STRING_FORMAT; - - /** - * First day of week. - * - * @var int - */ - protected static $weekStartsAt = self::MONDAY; - - /** - * Last day of week. - * - * @var int - */ - protected static $weekEndsAt = self::SUNDAY; - - /** - * Days of weekend. - * - * @var array - */ - protected static $weekendDays = array( - self::SATURDAY, - self::SUNDAY, - ); - - /** - * A test Carbon instance to be returned when now instances are created. - * - * @var \Carbon\Carbon - */ - protected static $testNow; - - /** - * A translator to ... er ... translate stuff. - * - * @var \Symfony\Component\Translation\TranslatorInterface - */ - protected static $translator; - - /** - * The errors that can occur. - * - * @var array - */ - protected static $lastErrors; - - /** - * Will UTF8 encoding be used to print localized date/time ? - * - * @var bool - */ - protected static $utf8 = false; - - /* - * Indicates if months should be calculated with overflow. - * - * @var bool - */ - protected static $monthsOverflow = true; - - /** - * Indicates if months should be calculated with overflow. - * - * @param bool $monthsOverflow - * - * @return void - */ - public static function useMonthsOverflow($monthsOverflow = true) - { - static::$monthsOverflow = $monthsOverflow; - } - - /** - * Reset the month overflow behavior. - * - * @return void - */ - public static function resetMonthsOverflow() - { - static::$monthsOverflow = true; - } - - /** - * Get the month overflow behavior. - * - * @return bool - */ - public static function shouldOverflowMonths() - { - return static::$monthsOverflow; - } - - /** - * Creates a DateTimeZone from a string, DateTimeZone or integer offset. - * - * @param \DateTimeZone|string|int|null $object - * - * @throws \InvalidArgumentException - * - * @return \DateTimeZone - */ - protected static function safeCreateDateTimeZone($object) - { - if ($object === null) { - // Don't return null... avoid Bug #52063 in PHP <5.3.6 - return new DateTimeZone(date_default_timezone_get()); - } - - if ($object instanceof DateTimeZone) { - return $object; - } - - if (is_numeric($object)) { - $tzName = timezone_name_from_abbr(null, $object * 3600, true); - - if ($tzName === false) { - throw new InvalidArgumentException('Unknown or bad timezone ('.$object.')'); - } - - $object = $tzName; - } - - $tz = @timezone_open((string) $object); - - if ($tz === false) { - throw new InvalidArgumentException('Unknown or bad timezone ('.$object.')'); - } - - return $tz; - } - - /////////////////////////////////////////////////////////////////// - //////////////////////////// CONSTRUCTORS ///////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Create a new Carbon instance. - * - * Please see the testing aids section (specifically static::setTestNow()) - * for more on the possibility of this constructor returning a test instance. - * - * @param string|null $time - * @param \DateTimeZone|string|null $tz - */ - public function __construct($time = null, $tz = null) - { - // If the class has a test now set and we are trying to create a now() - // instance then override as required - if (static::hasTestNow() && (empty($time) || $time === 'now' || static::hasRelativeKeywords($time))) { - $testInstance = clone static::getTestNow(); - if (static::hasRelativeKeywords($time)) { - $testInstance->modify($time); - } - - //shift the time according to the given time zone - if ($tz !== null && $tz !== static::getTestNow()->getTimezone()) { - $testInstance->setTimezone($tz); - } else { - $tz = $testInstance->getTimezone(); - } - - $time = $testInstance->toDateTimeString(); - } - - parent::__construct($time, static::safeCreateDateTimeZone($tz)); - } - - /** - * Create a Carbon instance from a DateTime one. - * - * @param \DateTime $dt - * - * @return static - */ - public static function instance(DateTime $dt) - { - if ($dt instanceof static) { - return clone $dt; - } - - return new static($dt->format('Y-m-d H:i:s.u'), $dt->getTimezone()); - } - - /** - * Create a carbon instance from a string. - * - * This is an alias for the constructor that allows better fluent syntax - * as it allows you to do Carbon::parse('Monday next week')->fn() rather - * than (new Carbon('Monday next week'))->fn(). - * - * @param string|null $time - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function parse($time = null, $tz = null) - { - return new static($time, $tz); - } - - /** - * Get a Carbon instance for the current date and time. - * - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function now($tz = null) - { - return new static(null, $tz); - } - - /** - * Create a Carbon instance for today. - * - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function today($tz = null) - { - return static::now($tz)->startOfDay(); - } - - /** - * Create a Carbon instance for tomorrow. - * - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function tomorrow($tz = null) - { - return static::today($tz)->addDay(); - } - - /** - * Create a Carbon instance for yesterday. - * - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function yesterday($tz = null) - { - return static::today($tz)->subDay(); - } - - /** - * Create a Carbon instance for the greatest supported date. - * - * @return static - */ - public static function maxValue() - { - if (PHP_INT_SIZE === 4) { - // 32 bit (and additionally Windows 64 bit) - return static::createFromTimestamp(PHP_INT_MAX); - } - - // 64 bit - return static::create(9999, 12, 31, 23, 59, 59); - } - - /** - * Create a Carbon instance for the lowest supported date. - * - * @return static - */ - public static function minValue() - { - if (PHP_INT_SIZE === 4) { - // 32 bit (and additionally Windows 64 bit) - return static::createFromTimestamp(~PHP_INT_MAX); - } - - // 64 bit - return static::create(1, 1, 1, 0, 0, 0); - } - - /** - * Create a new Carbon instance from a specific date and time. - * - * If any of $year, $month or $day are set to null their now() values will - * be used. - * - * If $hour is null it will be set to its now() value and the default - * values for $minute and $second will be their now() values. - * - * If $hour is not null then the default values for $minute and $second - * will be 0. - * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function create($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) - { - $now = static::hasTestNow() ? static::getTestNow()->getTimestamp() : time(); - - $defaults = array_combine(array( - 'year', - 'month', - 'day', - 'hour', - 'minute', - 'second', - ), explode('-', date('Y-n-j-G-i-s', $now))); - - $year = $year === null ? $defaults['year'] : $year; - $month = $month === null ? $defaults['month'] : $month; - $day = $day === null ? $defaults['day'] : $day; - - if ($hour === null) { - $hour = $defaults['hour']; - $minute = $minute === null ? $defaults['minute'] : $minute; - $second = $second === null ? $defaults['second'] : $second; - } else { - $minute = $minute === null ? 0 : $minute; - $second = $second === null ? 0 : $second; - } - - $fixYear = null; - - if ($year < 0) { - $fixYear = $year; - $year = 0; - } elseif ($year > 9999) { - $fixYear = $year - 9999; - $year = 9999; - } - - $instance = static::createFromFormat('Y-n-j G:i:s', sprintf('%s-%s-%s %s:%02s:%02s', $year, $month, $day, $hour, $minute, $second), $tz); - - if ($fixYear !== null) { - $instance->addYears($fixYear); - } - - return $instance; - } - - /** - * Create a new safe Carbon instance from a specific date and time. - * - * If any of $year, $month or $day are set to null their now() values will - * be used. - * - * If $hour is null it will be set to its now() value and the default - * values for $minute and $second will be their now() values. - * - * If $hour is not null then the default values for $minute and $second - * will be 0. - * - * If one of the set values is not valid, an \InvalidArgumentException - * will be thrown. - * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz - * - * @throws \Carbon\Exceptions\InvalidDateException - * - * @return static - */ - public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) - { - $fields = array( - 'year' => array(0, 9999), - 'month' => array(0, 12), - 'day' => array(0, 31), - 'hour' => array(0, 24), - 'minute' => array(0, 59), - 'second' => array(0, 59), - ); - - foreach ($fields as $field => $range) { - if ($$field !== null && (!is_int($$field) || $$field < $range[0] || $$field > $range[1])) { - throw new InvalidDateException($field, $$field); - } - } - - $instance = static::create($year, $month, 1, $hour, $minute, $second, $tz); - - if ($day !== null && $day > $instance->daysInMonth) { - throw new InvalidDateException('day', $day); - } - - return $instance->day($day); - } - - /** - * Create a Carbon instance from just a date. The time portion is set to now. - * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function createFromDate($year = null, $month = null, $day = null, $tz = null) - { - return static::create($year, $month, $day, null, null, null, $tz); - } - - /** - * Create a Carbon instance from just a time. The date portion is set to today. - * - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function createFromTime($hour = null, $minute = null, $second = null, $tz = null) - { - return static::create(null, null, null, $hour, $minute, $second, $tz); - } - - /** - * Create a Carbon instance from a specific format. - * - * @param string $format - * @param string $time - * @param \DateTimeZone|string|null $tz - * - * @throws \InvalidArgumentException - * - * @return static - */ - public static function createFromFormat($format, $time, $tz = null) - { - if ($tz !== null) { - $dt = parent::createFromFormat($format, $time, static::safeCreateDateTimeZone($tz)); - } else { - $dt = parent::createFromFormat($format, $time); - } - - static::setLastErrors($lastErrors = parent::getLastErrors()); - - if ($dt instanceof DateTime) { - return static::instance($dt); - } - - throw new InvalidArgumentException(implode(PHP_EOL, $lastErrors['errors'])); - } - - /** - * Set last errors. - * - * @param array $lastErrors - * - * @return void - */ - private static function setLastErrors(array $lastErrors) - { - static::$lastErrors = $lastErrors; - } - - /** - * {@inheritdoc} - */ - public static function getLastErrors() - { - return static::$lastErrors; - } - - /** - * Create a Carbon instance from a timestamp. - * - * @param int $timestamp - * @param \DateTimeZone|string|null $tz - * - * @return static - */ - public static function createFromTimestamp($timestamp, $tz = null) - { - return static::now($tz)->setTimestamp($timestamp); - } - - /** - * Create a Carbon instance from an UTC timestamp. - * - * @param int $timestamp - * - * @return static - */ - public static function createFromTimestampUTC($timestamp) - { - return new static('@'.$timestamp); - } - - /** - * Get a copy of the instance. - * - * @return static - */ - public function copy() - { - return clone $this; - } - - /////////////////////////////////////////////////////////////////// - ///////////////////////// GETTERS AND SETTERS ///////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Get a part of the Carbon object - * - * @param string $name - * - * @throws \InvalidArgumentException - * - * @return string|int|\DateTimeZone - */ - public function __get($name) - { - switch (true) { - case array_key_exists($name, $formats = array( - 'year' => 'Y', - 'yearIso' => 'o', - 'month' => 'n', - 'day' => 'j', - 'hour' => 'G', - 'minute' => 'i', - 'second' => 's', - 'micro' => 'u', - 'dayOfWeek' => 'w', - 'dayOfYear' => 'z', - 'weekOfYear' => 'W', - 'daysInMonth' => 't', - 'timestamp' => 'U', - )): - return (int) $this->format($formats[$name]); - - case $name === 'weekOfMonth': - return (int) ceil($this->day / static::DAYS_PER_WEEK); - - case $name === 'age': - return $this->diffInYears(); - - case $name === 'quarter': - return (int) ceil($this->month / static::MONTHS_PER_QUARTER); - - case $name === 'offset': - return $this->getOffset(); - - case $name === 'offsetHours': - return $this->getOffset() / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR; - - case $name === 'dst': - return $this->format('I') === '1'; - - case $name === 'local': - return $this->getOffset() === $this->copy()->setTimezone(date_default_timezone_get())->getOffset(); - - case $name === 'utc': - return $this->getOffset() === 0; - - case $name === 'timezone' || $name === 'tz': - return $this->getTimezone(); - - case $name === 'timezoneName' || $name === 'tzName': - return $this->getTimezone()->getName(); - - default: - throw new InvalidArgumentException(sprintf("Unknown getter '%s'", $name)); - } - } - - /** - * Check if an attribute exists on the object - * - * @param string $name - * - * @return bool - */ - public function __isset($name) - { - try { - $this->__get($name); - } catch (InvalidArgumentException $e) { - return false; - } - - return true; - } - - /** - * Set a part of the Carbon object - * - * @param string $name - * @param string|int|\DateTimeZone $value - * - * @throws \InvalidArgumentException - */ - public function __set($name, $value) - { - switch ($name) { - case 'year': - case 'month': - case 'day': - case 'hour': - case 'minute': - case 'second': - list($year, $month, $day, $hour, $minute, $second) = explode('-', $this->format('Y-n-j-G-i-s')); - $$name = $value; - $this->setDateTime($year, $month, $day, $hour, $minute, $second); - break; - - case 'timestamp': - parent::setTimestamp($value); - break; - - case 'timezone': - case 'tz': - $this->setTimezone($value); - break; - - default: - throw new InvalidArgumentException(sprintf("Unknown setter '%s'", $name)); - } - } - - /** - * Set the instance's year - * - * @param int $value - * - * @return static - */ - public function year($value) - { - $this->year = $value; - - return $this; - } - - /** - * Set the instance's month - * - * @param int $value - * - * @return static - */ - public function month($value) - { - $this->month = $value; - - return $this; - } - - /** - * Set the instance's day - * - * @param int $value - * - * @return static - */ - public function day($value) - { - $this->day = $value; - - return $this; - } - - /** - * Set the instance's hour - * - * @param int $value - * - * @return static - */ - public function hour($value) - { - $this->hour = $value; - - return $this; - } - - /** - * Set the instance's minute - * - * @param int $value - * - * @return static - */ - public function minute($value) - { - $this->minute = $value; - - return $this; - } - - /** - * Set the instance's second - * - * @param int $value - * - * @return static - */ - public function second($value) - { - $this->second = $value; - - return $this; - } - - /** - * Sets the current date of the DateTime object to a different date. - * Calls modify as a workaround for a php bug - * - * @param int $year - * @param int $month - * @param int $day - * - * @return static - * - * @see https://github.com/briannesbitt/Carbon/issues/539 - * @see https://bugs.php.net/bug.php?id=63863 - */ - public function setDate($year, $month, $day) - { - $this->modify('+0 day'); - - return parent::setDate($year, $month, $day); - } - - /** - * Set the date and time all together - * - * @param int $year - * @param int $month - * @param int $day - * @param int $hour - * @param int $minute - * @param int $second - * - * @return static - */ - public function setDateTime($year, $month, $day, $hour, $minute, $second = 0) - { - return $this->setDate($year, $month, $day)->setTime($hour, $minute, $second); - } - - /** - * Set the time by time string - * - * @param string $time - * - * @return static - */ - public function setTimeFromTimeString($time) - { - $time = explode(':', $time); - - $hour = $time[0]; - $minute = isset($time[1]) ? $time[1] : 0; - $second = isset($time[2]) ? $time[2] : 0; - - return $this->setTime($hour, $minute, $second); - } - - /** - * Set the instance's timestamp - * - * @param int $value - * - * @return static - */ - public function timestamp($value) - { - return $this->setTimestamp($value); - } - - /** - * Alias for setTimezone() - * - * @param \DateTimeZone|string $value - * - * @return static - */ - public function timezone($value) - { - return $this->setTimezone($value); - } - - /** - * Alias for setTimezone() - * - * @param \DateTimeZone|string $value - * - * @return static - */ - public function tz($value) - { - return $this->setTimezone($value); - } - - /** - * Set the instance's timezone from a string or object - * - * @param \DateTimeZone|string $value - * - * @return static - */ - public function setTimezone($value) - { - return parent::setTimezone(static::safeCreateDateTimeZone($value)); - } - - /////////////////////////////////////////////////////////////////// - /////////////////////// WEEK SPECIAL DAYS ///////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Get the first day of week - * - * @return int - */ - public static function getWeekStartsAt() - { - return static::$weekStartsAt; - } - - /** - * Set the first day of week - * - * @param int - */ - public static function setWeekStartsAt($day) - { - static::$weekStartsAt = $day; - } - - /** - * Get the last day of week - * - * @return int - */ - public static function getWeekEndsAt() - { - return static::$weekEndsAt; - } - - /** - * Set the last day of week - * - * @param int - */ - public static function setWeekEndsAt($day) - { - static::$weekEndsAt = $day; - } - - /** - * Get weekend days - * - * @return array - */ - public static function getWeekendDays() - { - return static::$weekendDays; - } - - /** - * Set weekend days - * - * @param array - */ - public static function setWeekendDays($days) - { - static::$weekendDays = $days; - } - - /////////////////////////////////////////////////////////////////// - ///////////////////////// TESTING AIDS //////////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Set a Carbon instance (real or mock) to be returned when a "now" - * instance is created. The provided instance will be returned - * specifically under the following conditions: - * - A call to the static now() method, ex. Carbon::now() - * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) - * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') - * - When a string containing the desired time is passed to Carbon::parse(). - * - * Note the timezone parameter was left out of the examples above and - * has no affect as the mock value will be returned regardless of its value. - * - * To clear the test instance call this method using the default - * parameter of null. - * - * @param \Carbon\Carbon|string|null $testNow - */ - public static function setTestNow($testNow = null) - { - static::$testNow = is_string($testNow) ? static::parse($testNow) : $testNow; - } - - /** - * Get the Carbon instance (real or mock) to be returned when a "now" - * instance is created. - * - * @return static the current instance used for testing - */ - public static function getTestNow() - { - return static::$testNow; - } - - /** - * Determine if there is a valid test instance set. A valid test instance - * is anything that is not null. - * - * @return bool true if there is a test instance, otherwise false - */ - public static function hasTestNow() - { - return static::getTestNow() !== null; - } - - /** - * Determine if there is a relative keyword in the time string, this is to - * create dates relative to now for test instances. e.g.: next tuesday - * - * @param string $time - * - * @return bool true if there is a keyword, otherwise false - */ - public static function hasRelativeKeywords($time) - { - // skip common format with a '-' in it - if (preg_match('/\d{4}-\d{1,2}-\d{1,2}/', $time) !== 1) { - foreach (static::$relativeKeywords as $keyword) { - if (stripos($time, $keyword) !== false) { - return true; - } - } - } - - return false; - } - - /////////////////////////////////////////////////////////////////// - /////////////////////// LOCALIZATION ////////////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Initialize the translator instance if necessary. - * - * @return \Symfony\Component\Translation\TranslatorInterface - */ - protected static function translator() - { - if (static::$translator === null) { - static::$translator = new Translator('en'); - static::$translator->addLoader('array', new ArrayLoader()); - static::setLocale('en'); - } - - return static::$translator; - } - - /** - * Get the translator instance in use - * - * @return \Symfony\Component\Translation\TranslatorInterface - */ - public static function getTranslator() - { - return static::translator(); - } - - /** - * Set the translator instance to use - * - * @param \Symfony\Component\Translation\TranslatorInterface $translator - */ - public static function setTranslator(TranslatorInterface $translator) - { - static::$translator = $translator; - } - - /** - * Get the current translator locale - * - * @return string - */ - public static function getLocale() - { - return static::translator()->getLocale(); - } - - /** - * Set the current translator locale and indicate if the source locale file exists - * - * @param string $locale - * - * @return bool - */ - public static function setLocale($locale) - { - $locale = preg_replace_callback('/\b([a-z]{2})[-_](?:([a-z]{4})[-_])?([a-z]{2})\b/', function ($matches) { - return $matches[1].'_'.(!empty($matches[2]) ? ucfirst($matches[2]).'_' : '').strtoupper($matches[3]); - }, strtolower($locale)); - - if (file_exists($filename = __DIR__.'/Lang/'.$locale.'.php')) { - static::translator()->setLocale($locale); - // Ensure the locale has been loaded. - static::translator()->addResource('array', require $filename, $locale); - - return true; - } - - return false; - } - - /////////////////////////////////////////////////////////////////// - /////////////////////// STRING FORMATTING ///////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Set if UTF8 will be used for localized date/time - * - * @param bool $utf8 - */ - public static function setUtf8($utf8) - { - static::$utf8 = $utf8; - } - - /** - * Format the instance with the current locale. You can set the current - * locale using setlocale() http://php.net/setlocale. - * - * @param string $format - * - * @return string - */ - public function formatLocalized($format) - { - // Check for Windows to find and replace the %e - // modifier correctly - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - $format = preg_replace('#(?format(static::$toStringFormat); - } - - /** - * Format the instance as date - * - * @return string - */ - public function toDateString() - { - return $this->format('Y-m-d'); - } - - /** - * Format the instance as a readable date - * - * @return string - */ - public function toFormattedDateString() - { - return $this->format('M j, Y'); - } - - /** - * Format the instance as time - * - * @return string - */ - public function toTimeString() - { - return $this->format('H:i:s'); - } - - /** - * Format the instance as date and time - * - * @return string - */ - public function toDateTimeString() - { - return $this->format('Y-m-d H:i:s'); - } - - /** - * Format the instance with day, date and time - * - * @return string - */ - public function toDayDateTimeString() - { - return $this->format('D, M j, Y g:i A'); - } - - /** - * Format the instance as ATOM - * - * @return string - */ - public function toAtomString() - { - return $this->format(static::ATOM); - } - - /** - * Format the instance as COOKIE - * - * @return string - */ - public function toCookieString() - { - return $this->format(static::COOKIE); - } - - /** - * Format the instance as ISO8601 - * - * @return string - */ - public function toIso8601String() - { - return $this->toAtomString(); - } - - /** - * Format the instance as RFC822 - * - * @return string - */ - public function toRfc822String() - { - return $this->format(static::RFC822); - } - - /** - * Format the instance as RFC850 - * - * @return string - */ - public function toRfc850String() - { - return $this->format(static::RFC850); - } - - /** - * Format the instance as RFC1036 - * - * @return string - */ - public function toRfc1036String() - { - return $this->format(static::RFC1036); - } - - /** - * Format the instance as RFC1123 - * - * @return string - */ - public function toRfc1123String() - { - return $this->format(static::RFC1123); - } - - /** - * Format the instance as RFC2822 - * - * @return string - */ - public function toRfc2822String() - { - return $this->format(static::RFC2822); - } - - /** - * Format the instance as RFC3339 - * - * @return string - */ - public function toRfc3339String() - { - return $this->format(static::RFC3339); - } - - /** - * Format the instance as RSS - * - * @return string - */ - public function toRssString() - { - return $this->format(static::RSS); - } - - /** - * Format the instance as W3C - * - * @return string - */ - public function toW3cString() - { - return $this->format(static::W3C); - } - - /////////////////////////////////////////////////////////////////// - ////////////////////////// COMPARISONS //////////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Determines if the instance is equal to another - * - * @param Carbon $dt - * - * @return bool - */ - public function eq(Carbon $dt) - { - return $this == $dt; - } - - /** - * Determines if the instance is equal to another - * - * @param Carbon $dt - * - * @see eq() - * - * @return bool - */ - public function equalTo(Carbon $dt) - { - return $this->eq($dt); - } - - /** - * Determines if the instance is not equal to another - * - * @param Carbon $dt - * - * @return bool - */ - public function ne(Carbon $dt) - { - return !$this->eq($dt); - } - - /** - * Determines if the instance is not equal to another - * - * @param Carbon $dt - * - * @see ne() - * - * @return bool - */ - public function notEqualTo(Carbon $dt) - { - return $this->ne($dt); - } - - /** - * Determines if the instance is greater (after) than another - * - * @param Carbon $dt - * - * @return bool - */ - public function gt(Carbon $dt) - { - return $this > $dt; - } - - /** - * Determines if the instance is greater (after) than another - * - * @param Carbon $dt - * - * @see gt() - * - * @return bool - */ - public function greaterThan(Carbon $dt) - { - return $this->gt($dt); - } - - /** - * Determines if the instance is greater (after) than or equal to another - * - * @param Carbon $dt - * - * @return bool - */ - public function gte(Carbon $dt) - { - return $this >= $dt; - } - - /** - * Determines if the instance is greater (after) than or equal to another - * - * @param Carbon $dt - * - * @see gte() - * - * @return bool - */ - public function greaterThanOrEqualTo(Carbon $dt) - { - return $this->gte($dt); - } - - /** - * Determines if the instance is less (before) than another - * - * @param Carbon $dt - * - * @return bool - */ - public function lt(Carbon $dt) - { - return $this < $dt; - } - - /** - * Determines if the instance is less (before) than another - * - * @param Carbon $dt - * - * @see lt() - * - * @return bool - */ - public function lessThan(Carbon $dt) - { - return $this->lt($dt); - } - - /** - * Determines if the instance is less (before) or equal to another - * - * @param Carbon $dt - * - * @return bool - */ - public function lte(Carbon $dt) - { - return $this <= $dt; - } - - /** - * Determines if the instance is less (before) or equal to another - * - * @param Carbon $dt - * - * @see lte() - * - * @return bool - */ - public function lessThanOrEqualTo(Carbon $dt) - { - return $this->lte($dt); - } - - /** - * Determines if the instance is between two others - * - * @param Carbon $dt1 - * @param Carbon $dt2 - * @param bool $equal Indicates if a > and < comparison should be used or <= or >= - * - * @return bool - */ - public function between(Carbon $dt1, Carbon $dt2, $equal = true) - { - if ($dt1->gt($dt2)) { - $temp = $dt1; - $dt1 = $dt2; - $dt2 = $temp; - } - - if ($equal) { - return $this->gte($dt1) && $this->lte($dt2); - } - - return $this->gt($dt1) && $this->lt($dt2); - } - - /** - * Get the closest date from the instance. - * - * @param Carbon $dt1 - * @param Carbon $dt2 - * - * @return static - */ - public function closest(Carbon $dt1, Carbon $dt2) - { - return $this->diffInSeconds($dt1) < $this->diffInSeconds($dt2) ? $dt1 : $dt2; - } - - /** - * Get the farthest date from the instance. - * - * @param Carbon $dt1 - * @param Carbon $dt2 - * - * @return static - */ - public function farthest(Carbon $dt1, Carbon $dt2) - { - return $this->diffInSeconds($dt1) > $this->diffInSeconds($dt2) ? $dt1 : $dt2; - } - - /** - * Get the minimum instance between a given instance (default now) and the current instance. - * - * @param \Carbon\Carbon|null $dt - * - * @return static - */ - public function min(Carbon $dt = null) - { - $dt = $dt ?: static::now($this->getTimezone()); - - return $this->lt($dt) ? $this : $dt; - } - - /** - * Get the minimum instance between a given instance (default now) and the current instance. - * - * @param \Carbon\Carbon|null $dt - * - * @see min() - * - * @return static - */ - public function minimum(Carbon $dt = null) - { - return $this->min($dt); - } - - /** - * Get the maximum instance between a given instance (default now) and the current instance. - * - * @param \Carbon\Carbon|null $dt - * - * @return static - */ - public function max(Carbon $dt = null) - { - $dt = $dt ?: static::now($this->getTimezone()); - - return $this->gt($dt) ? $this : $dt; - } - - /** - * Get the maximum instance between a given instance (default now) and the current instance. - * - * @param \Carbon\Carbon|null $dt - * - * @see max() - * - * @return static - */ - public function maximum(Carbon $dt = null) - { - return $this->max($dt); - } - - /** - * Determines if the instance is a weekday - * - * @return bool - */ - public function isWeekday() - { - return !$this->isWeekend(); - } - - /** - * Determines if the instance is a weekend day - * - * @return bool - */ - public function isWeekend() - { - return in_array($this->dayOfWeek, static::$weekendDays); - } - - /** - * Determines if the instance is yesterday - * - * @return bool - */ - public function isYesterday() - { - return $this->toDateString() === static::yesterday($this->getTimezone())->toDateString(); - } - - /** - * Determines if the instance is today - * - * @return bool - */ - public function isToday() - { - return $this->toDateString() === static::now($this->getTimezone())->toDateString(); - } - - /** - * Determines if the instance is tomorrow - * - * @return bool - */ - public function isTomorrow() - { - return $this->toDateString() === static::tomorrow($this->getTimezone())->toDateString(); - } - - /** - * Determines if the instance is within the next week - * - * @return bool - */ - public function isNextWeek() - { - return $this->weekOfYear === static::now($this->getTimezone())->addWeek()->weekOfYear; - } - - /** - * Determines if the instance is within the last week - * - * @return bool - */ - public function isLastWeek() - { - return $this->weekOfYear === static::now($this->getTimezone())->subWeek()->weekOfYear; - } - - /** - * Determines if the instance is within the next month - * - * @return bool - */ - public function isNextMonth() - { - return $this->month === static::now($this->getTimezone())->addMonthNoOverflow()->month; - } - - /** - * Determines if the instance is within the last month - * - * @return bool - */ - public function isLastMonth() - { - return $this->month === static::now($this->getTimezone())->subMonthNoOverflow()->month; - } - - /** - * Determines if the instance is within next year - * - * @return bool - */ - public function isNextYear() - { - return $this->year === static::now($this->getTimezone())->addYear()->year; - } - - /** - * Determines if the instance is within the previous year - * - * @return bool - */ - public function isLastYear() - { - return $this->year === static::now($this->getTimezone())->subYear()->year; - } - - /** - * Determines if the instance is in the future, ie. greater (after) than now - * - * @return bool - */ - public function isFuture() - { - return $this->gt(static::now($this->getTimezone())); - } - - /** - * Determines if the instance is in the past, ie. less (before) than now - * - * @return bool - */ - public function isPast() - { - return $this->lt(static::now($this->getTimezone())); - } - - /** - * Determines if the instance is a leap year - * - * @return bool - */ - public function isLeapYear() - { - return $this->format('L') === '1'; - } - - /** - * Determines if the instance is a long year - * - * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates - * - * @return bool - */ - public function isLongYear() - { - return static::create($this->year, 12, 28, 0, 0, 0, $this->tz)->weekOfYear === 53; - } - - /* - * Compares the formatted values of the two dates. - * - * @param string $format The date formats to compare. - * @param \Carbon\Carbon|null $dt The instance to compare with or null to use current day. - * - * @return bool - */ - public function isSameAs($format, Carbon $dt = null) - { - $dt = $dt ?: static::now($this->tz); - - return $this->format($format) === $dt->format($format); - } - - /** - * Determines if the instance is in the current year - * - * @return bool - */ - public function isCurrentYear() - { - return $this->isSameYear(); - } - - /** - * Checks if the passed in date is in the same year as the instance year. - * - * @param \Carbon\Carbon|null $dt The instance to compare with or null to use current day. - * - * @return bool - */ - public function isSameYear(Carbon $dt = null) - { - return $this->isSameAs('Y', $dt); - } - - /** - * Determines if the instance is in the current month - * - * @return bool - */ - public function isCurrentMonth() - { - return $this->isSameMonth(); - } - - /** - * Checks if the passed in date is in the same month as the instance month (and year if needed). - * - * @param \Carbon\Carbon|null $dt The instance to compare with or null to use current day. - * @param bool $ofSameYear Check if it is the same month in the same year. - * - * @return bool - */ - public function isSameMonth(Carbon $dt = null, $ofSameYear = false) - { - $format = $ofSameYear ? 'Y-m' : 'm'; - - return $this->isSameAs($format, $dt); - } - - /** - * Checks if the passed in date is the same day as the instance current day. - * - * @param \Carbon\Carbon $dt - * - * @return bool - */ - public function isSameDay(Carbon $dt) - { - return $this->toDateString() === $dt->toDateString(); - } - - /** - * Checks if this day is a Sunday. - * - * @return bool - */ - public function isSunday() - { - return $this->dayOfWeek === static::SUNDAY; - } - - /** - * Checks if this day is a Monday. - * - * @return bool - */ - public function isMonday() - { - return $this->dayOfWeek === static::MONDAY; - } - - /** - * Checks if this day is a Tuesday. - * - * @return bool - */ - public function isTuesday() - { - return $this->dayOfWeek === static::TUESDAY; - } - - /** - * Checks if this day is a Wednesday. - * - * @return bool - */ - public function isWednesday() - { - return $this->dayOfWeek === static::WEDNESDAY; - } - - /** - * Checks if this day is a Thursday. - * - * @return bool - */ - public function isThursday() - { - return $this->dayOfWeek === static::THURSDAY; - } - - /** - * Checks if this day is a Friday. - * - * @return bool - */ - public function isFriday() - { - return $this->dayOfWeek === static::FRIDAY; - } - - /** - * Checks if this day is a Saturday. - * - * @return bool - */ - public function isSaturday() - { - return $this->dayOfWeek === static::SATURDAY; - } - - /////////////////////////////////////////////////////////////////// - /////////////////// ADDITIONS AND SUBTRACTIONS //////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Add years to the instance. Positive $value travel forward while - * negative $value travel into the past. - * - * @param int $value - * - * @return static - */ - public function addYears($value) - { - return $this->modify((int) $value.' year'); - } - - /** - * Add a year to the instance - * - * @param int $value - * - * @return static - */ - public function addYear($value = 1) - { - return $this->addYears($value); - } - - /** - * Remove a year from the instance - * - * @param int $value - * - * @return static - */ - public function subYear($value = 1) - { - return $this->subYears($value); - } - - /** - * Remove years from the instance. - * - * @param int $value - * - * @return static - */ - public function subYears($value) - { - return $this->addYears(-1 * $value); - } - - /** - * Add quarters to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addQuarters($value) - { - return $this->addMonths(static::MONTHS_PER_QUARTER * $value); - } - - /** - * Add a quarter to the instance - * - * @param int $value - * - * @return static - */ - public function addQuarter($value = 1) - { - return $this->addQuarters($value); - } - - /** - * Remove a quarter from the instance - * - * @param int $value - * - * @return static - */ - public function subQuarter($value = 1) - { - return $this->subQuarters($value); - } - - /** - * Remove quarters from the instance - * - * @param int $value - * - * @return static - */ - public function subQuarters($value) - { - return $this->addQuarters(-1 * $value); - } - - /** - * Add centuries to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addCenturies($value) - { - return $this->addYears(static::YEARS_PER_CENTURY * $value); - } - - /** - * Add a century to the instance - * - * @param int $value - * - * @return static - */ - public function addCentury($value = 1) - { - return $this->addCenturies($value); - } - - /** - * Remove a century from the instance - * - * @param int $value - * - * @return static - */ - public function subCentury($value = 1) - { - return $this->subCenturies($value); - } - - /** - * Remove centuries from the instance - * - * @param int $value - * - * @return static - */ - public function subCenturies($value) - { - return $this->addCenturies(-1 * $value); - } - - /** - * Add months to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addMonths($value) - { - if (static::shouldOverflowMonths()) { - return $this->addMonthsWithOverflow($value); - } - - return $this->addMonthsNoOverflow($value); - } - - /** - * Add a month to the instance - * - * @param int $value - * - * @return static - */ - public function addMonth($value = 1) - { - return $this->addMonths($value); - } - - /** - * Remove a month from the instance - * - * @param int $value - * - * @return static - */ - public function subMonth($value = 1) - { - return $this->subMonths($value); - } - - /** - * Remove months from the instance - * - * @param int $value - * - * @return static - */ - public function subMonths($value) - { - return $this->addMonths(-1 * $value); - } - - /** - * Add months to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addMonthsWithOverflow($value) - { - return $this->modify((int) $value.' month'); - } - - /** - * Add a month to the instance - * - * @param int $value - * - * @return static - */ - public function addMonthWithOverflow($value = 1) - { - return $this->addMonthsWithOverflow($value); - } - - /** - * Remove a month from the instance - * - * @param int $value - * - * @return static - */ - public function subMonthWithOverflow($value = 1) - { - return $this->subMonthsWithOverflow($value); - } - - /** - * Remove months from the instance - * - * @param int $value - * - * @return static - */ - public function subMonthsWithOverflow($value) - { - return $this->addMonthsWithOverflow(-1 * $value); - } - - /** - * Add months without overflowing to the instance. Positive $value - * travels forward while negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addMonthsNoOverflow($value) - { - $day = $this->day; - - $this->modify((int) $value.' month'); - - if ($day !== $this->day) { - $this->modify('last day of previous month'); - } - - return $this; - } - - /** - * Add a month with no overflow to the instance - * - * @param int $value - * - * @return static - */ - public function addMonthNoOverflow($value = 1) - { - return $this->addMonthsNoOverflow($value); - } - - /** - * Remove a month with no overflow from the instance - * - * @param int $value - * - * @return static - */ - public function subMonthNoOverflow($value = 1) - { - return $this->subMonthsNoOverflow($value); - } - - /** - * Remove months with no overflow from the instance - * - * @param int $value - * - * @return static - */ - public function subMonthsNoOverflow($value) - { - return $this->addMonthsNoOverflow(-1 * $value); - } - - /** - * Add days to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addDays($value) - { - return $this->modify((int) $value.' day'); - } - - /** - * Add a day to the instance - * - * @param int $value - * - * @return static - */ - public function addDay($value = 1) - { - return $this->addDays($value); - } - - /** - * Remove a day from the instance - * - * @param int $value - * - * @return static - */ - public function subDay($value = 1) - { - return $this->subDays($value); - } - - /** - * Remove days from the instance - * - * @param int $value - * - * @return static - */ - public function subDays($value) - { - return $this->addDays(-1 * $value); - } - - /** - * Add weekdays to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addWeekdays($value) - { - // fix for https://bugs.php.net/bug.php?id=54909 - $t = $this->toTimeString(); - $this->modify((int) $value.' weekday'); - - return $this->setTimeFromTimeString($t); - } - - /** - * Add a weekday to the instance - * - * @param int $value - * - * @return static - */ - public function addWeekday($value = 1) - { - return $this->addWeekdays($value); - } - - /** - * Remove a weekday from the instance - * - * @param int $value - * - * @return static - */ - public function subWeekday($value = 1) - { - return $this->subWeekdays($value); - } - - /** - * Remove weekdays from the instance - * - * @param int $value - * - * @return static - */ - public function subWeekdays($value) - { - return $this->addWeekdays(-1 * $value); - } - - /** - * Add weeks to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addWeeks($value) - { - return $this->modify((int) $value.' week'); - } - - /** - * Add a week to the instance - * - * @param int $value - * - * @return static - */ - public function addWeek($value = 1) - { - return $this->addWeeks($value); - } - - /** - * Remove a week from the instance - * - * @param int $value - * - * @return static - */ - public function subWeek($value = 1) - { - return $this->subWeeks($value); - } - - /** - * Remove weeks to the instance - * - * @param int $value - * - * @return static - */ - public function subWeeks($value) - { - return $this->addWeeks(-1 * $value); - } - - /** - * Add hours to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addHours($value) - { - return $this->modify((int) $value.' hour'); - } - - /** - * Add an hour to the instance - * - * @param int $value - * - * @return static - */ - public function addHour($value = 1) - { - return $this->addHours($value); - } - - /** - * Remove an hour from the instance - * - * @param int $value - * - * @return static - */ - public function subHour($value = 1) - { - return $this->subHours($value); - } - - /** - * Remove hours from the instance - * - * @param int $value - * - * @return static - */ - public function subHours($value) - { - return $this->addHours(-1 * $value); - } - - /** - * Add minutes to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addMinutes($value) - { - return $this->modify((int) $value.' minute'); - } - - /** - * Add a minute to the instance - * - * @param int $value - * - * @return static - */ - public function addMinute($value = 1) - { - return $this->addMinutes($value); - } - - /** - * Remove a minute from the instance - * - * @param int $value - * - * @return static - */ - public function subMinute($value = 1) - { - return $this->subMinutes($value); - } - - /** - * Remove minutes from the instance - * - * @param int $value - * - * @return static - */ - public function subMinutes($value) - { - return $this->addMinutes(-1 * $value); - } - - /** - * Add seconds to the instance. Positive $value travels forward while - * negative $value travels into the past. - * - * @param int $value - * - * @return static - */ - public function addSeconds($value) - { - return $this->modify((int) $value.' second'); - } - - /** - * Add a second to the instance - * - * @param int $value - * - * @return static - */ - public function addSecond($value = 1) - { - return $this->addSeconds($value); - } - - /** - * Remove a second from the instance - * - * @param int $value - * - * @return static - */ - public function subSecond($value = 1) - { - return $this->subSeconds($value); - } - - /** - * Remove seconds from the instance - * - * @param int $value - * - * @return static - */ - public function subSeconds($value) - { - return $this->addSeconds(-1 * $value); - } - - /////////////////////////////////////////////////////////////////// - /////////////////////////// DIFFERENCES /////////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Get the difference in years - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInYears(Carbon $dt = null, $abs = true) - { - $dt = $dt ?: static::now($this->getTimezone()); - - return (int) $this->diff($dt, $abs)->format('%r%y'); - } - - /** - * Get the difference in months - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInMonths(Carbon $dt = null, $abs = true) - { - $dt = $dt ?: static::now($this->getTimezone()); - - return $this->diffInYears($dt, $abs) * static::MONTHS_PER_YEAR + (int) $this->diff($dt, $abs)->format('%r%m'); - } - - /** - * Get the difference in weeks - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInWeeks(Carbon $dt = null, $abs = true) - { - return (int) ($this->diffInDays($dt, $abs) / static::DAYS_PER_WEEK); - } - - /** - * Get the difference in days - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInDays(Carbon $dt = null, $abs = true) - { - $dt = $dt ?: static::now($this->getTimezone()); - - return (int) $this->diff($dt, $abs)->format('%r%a'); - } - - /** - * Get the difference in days using a filter closure - * - * @param Closure $callback - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInDaysFiltered(Closure $callback, Carbon $dt = null, $abs = true) - { - return $this->diffFiltered(CarbonInterval::day(), $callback, $dt, $abs); - } - - /** - * Get the difference in hours using a filter closure - * - * @param Closure $callback - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInHoursFiltered(Closure $callback, Carbon $dt = null, $abs = true) - { - return $this->diffFiltered(CarbonInterval::hour(), $callback, $dt, $abs); - } - - /** - * Get the difference by the given interval using a filter closure - * - * @param CarbonInterval $ci An interval to traverse by - * @param Closure $callback - * @param Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffFiltered(CarbonInterval $ci, Closure $callback, Carbon $dt = null, $abs = true) - { - $start = $this; - $end = $dt ?: static::now($this->getTimezone()); - $inverse = false; - - if ($end < $start) { - $start = $end; - $end = $this; - $inverse = true; - } - - $period = new DatePeriod($start, $ci, $end); - $vals = array_filter(iterator_to_array($period), function (DateTime $date) use ($callback) { - return call_user_func($callback, Carbon::instance($date)); - }); - - $diff = count($vals); - - return $inverse && !$abs ? -$diff : $diff; - } - - /** - * Get the difference in weekdays - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInWeekdays(Carbon $dt = null, $abs = true) - { - return $this->diffInDaysFiltered(function (Carbon $date) { - return $date->isWeekday(); - }, $dt, $abs); - } - - /** - * Get the difference in weekend days using a filter - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInWeekendDays(Carbon $dt = null, $abs = true) - { - return $this->diffInDaysFiltered(function (Carbon $date) { - return $date->isWeekend(); - }, $dt, $abs); - } - - /** - * Get the difference in hours - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInHours(Carbon $dt = null, $abs = true) - { - return (int) ($this->diffInSeconds($dt, $abs) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR); - } - - /** - * Get the difference in minutes - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInMinutes(Carbon $dt = null, $abs = true) - { - return (int) ($this->diffInSeconds($dt, $abs) / static::SECONDS_PER_MINUTE); - } - - /** - * Get the difference in seconds - * - * @param \Carbon\Carbon|null $dt - * @param bool $abs Get the absolute of the difference - * - * @return int - */ - public function diffInSeconds(Carbon $dt = null, $abs = true) - { - $dt = $dt ?: static::now($this->getTimezone()); - $value = $dt->getTimestamp() - $this->getTimestamp(); - - return $abs ? abs($value) : $value; - } - - /** - * The number of seconds since midnight. - * - * @return int - */ - public function secondsSinceMidnight() - { - return $this->diffInSeconds($this->copy()->startOfDay()); - } - - /** - * The number of seconds until 23:23:59. - * - * @return int - */ - public function secondsUntilEndOfDay() - { - return $this->diffInSeconds($this->copy()->endOfDay()); - } - - /** - * Get the difference in a human readable format in the current locale. - * - * When comparing a value in the past to default now: - * 1 hour ago - * 5 months ago - * - * When comparing a value in the future to default now: - * 1 hour from now - * 5 months from now - * - * When comparing a value in the past to another value: - * 1 hour before - * 5 months before - * - * When comparing a value in the future to another value: - * 1 hour after - * 5 months after - * - * @param Carbon|null $other - * @param bool $absolute removes time difference modifiers ago, after, etc - * @param bool $short displays short format of time units - * - * @return string - */ - public function diffForHumans(Carbon $other = null, $absolute = false, $short = false) - { - $isNow = $other === null; - - if ($isNow) { - $other = static::now($this->getTimezone()); - } - - $diffInterval = $this->diff($other); - - switch (true) { - case $diffInterval->y > 0: - $unit = $short ? 'y' : 'year'; - $count = $diffInterval->y; - break; - - case $diffInterval->m > 0: - $unit = $short ? 'm' : 'month'; - $count = $diffInterval->m; - break; - - case $diffInterval->d > 0: - $unit = $short ? 'd' : 'day'; - $count = $diffInterval->d; - - if ($count >= static::DAYS_PER_WEEK) { - $unit = $short ? 'w' : 'week'; - $count = (int) ($count / static::DAYS_PER_WEEK); - } - break; - - case $diffInterval->h > 0: - $unit = $short ? 'h' : 'hour'; - $count = $diffInterval->h; - break; - - case $diffInterval->i > 0: - $unit = $short ? 'min' : 'minute'; - $count = $diffInterval->i; - break; - - default: - $count = $diffInterval->s; - $unit = $short ? 's' : 'second'; - break; - } - - if ($count === 0) { - $count = 1; - } - - $time = static::translator()->transChoice($unit, $count, array(':count' => $count)); - - if ($absolute) { - return $time; - } - - $isFuture = $diffInterval->invert === 1; - - $transId = $isNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before'); - - // Some langs have special pluralization for past and future tense. - $tryKeyExists = $unit.'_'.$transId; - if ($tryKeyExists !== static::translator()->transChoice($tryKeyExists, $count)) { - $time = static::translator()->transChoice($tryKeyExists, $count, array(':count' => $count)); - } - - return static::translator()->trans($transId, array(':time' => $time)); - } - - /////////////////////////////////////////////////////////////////// - //////////////////////////// MODIFIERS //////////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Resets the time to 00:00:00 - * - * @return static - */ - public function startOfDay() - { - return $this->setTime(0, 0, 0); - } - - /** - * Resets the time to 23:59:59 - * - * @return static - */ - public function endOfDay() - { - return $this->setTime(23, 59, 59); - } - - /** - * Resets the date to the first day of the month and the time to 00:00:00 - * - * @return static - */ - public function startOfMonth() - { - return $this->setDateTime($this->year, $this->month, 1, 0, 0, 0); - } - - /** - * Resets the date to end of the month and time to 23:59:59 - * - * @return static - */ - public function endOfMonth() - { - return $this->setDateTime($this->year, $this->month, $this->daysInMonth, 23, 59, 59); - } - - /** - * Resets the date to the first day of the quarter and the time to 00:00:00 - * - * @return static - */ - public function startOfQuarter() - { - $month = ($this->quarter - 1) * static::MONTHS_PER_QUARTER + 1; - - return $this->setDateTime($this->year, $month, 1, 0, 0, 0); - } - - /** - * Resets the date to end of the quarter and time to 23:59:59 - * - * @return static - */ - public function endOfQuarter() - { - return $this->startOfQuarter()->addMonths(static::MONTHS_PER_QUARTER - 1)->endOfMonth(); - } - - /** - * Resets the date to the first day of the year and the time to 00:00:00 - * - * @return static - */ - public function startOfYear() - { - return $this->setDateTime($this->year, 1, 1, 0, 0, 0); - } - - /** - * Resets the date to end of the year and time to 23:59:59 - * - * @return static - */ - public function endOfYear() - { - return $this->setDateTime($this->year, 12, 31, 23, 59, 59); - } - - /** - * Resets the date to the first day of the decade and the time to 00:00:00 - * - * @return static - */ - public function startOfDecade() - { - $year = $this->year - $this->year % static::YEARS_PER_DECADE; - - return $this->setDateTime($year, 1, 1, 0, 0, 0); - } - - /** - * Resets the date to end of the decade and time to 23:59:59 - * - * @return static - */ - public function endOfDecade() - { - $year = $this->year - $this->year % static::YEARS_PER_DECADE + static::YEARS_PER_DECADE - 1; - - return $this->setDateTime($year, 12, 31, 23, 59, 59); - } - - /** - * Resets the date to the first day of the century and the time to 00:00:00 - * - * @return static - */ - public function startOfCentury() - { - $year = $this->year - ($this->year - 1) % static::YEARS_PER_CENTURY; - - return $this->setDateTime($year, 1, 1, 0, 0, 0); - } - - /** - * Resets the date to end of the century and time to 23:59:59 - * - * @return static - */ - public function endOfCentury() - { - $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_CENTURY + static::YEARS_PER_CENTURY; - - return $this->setDateTime($year, 12, 31, 23, 59, 59); - } - - /** - * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00 - * - * @return static - */ - public function startOfWeek() - { - while ($this->dayOfWeek !== static::$weekStartsAt) { - $this->subDay(); - } - - return $this->startOfDay(); - } - - /** - * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59 - * - * @return static - */ - public function endOfWeek() - { - while ($this->dayOfWeek !== static::$weekEndsAt) { - $this->addDay(); - } - - return $this->endOfDay(); - } - - /** - * Modify to the next occurrence of a given day of the week. - * If no dayOfWeek is provided, modify to the next occurrence - * of the current day of the week. Use the supplied constants - * to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int|null $dayOfWeek - * - * @return static - */ - public function next($dayOfWeek = null) - { - if ($dayOfWeek === null) { - $dayOfWeek = $this->dayOfWeek; - } - - return $this->startOfDay()->modify('next '.static::$days[$dayOfWeek]); - } - - /** - * Go forward or backward to the next week- or weekend-day. - * - * @param bool $weekday - * @param bool $forward - * - * @return static - */ - private function nextOrPreviousDay($weekday = true, $forward = true) - { - $step = $forward ? 1 : -1; - - do { - $this->addDay($step); - } while ($weekday ? $this->isWeekend() : $this->isWeekday()); - - return $this; - } - - /** - * Go forward to the next weekday. - * - * @return $this - */ - public function nextWeekday() - { - return $this->nextOrPreviousDay(); - } - - /** - * Go backward to the previous weekday. - * - * @return static - */ - public function previousWeekday() - { - return $this->nextOrPreviousDay(true, false); - } - - /** - * Go forward to the next weekend day. - * - * @return static - */ - public function nextWeekendDay() - { - return $this->nextOrPreviousDay(false); - } - - /** - * Go backward to the previous weekend day. - * - * @return static - */ - public function previousWeekendDay() - { - return $this->nextOrPreviousDay(false, false); - } - - /** - * Modify to the previous occurrence of a given day of the week. - * If no dayOfWeek is provided, modify to the previous occurrence - * of the current day of the week. Use the supplied constants - * to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int|null $dayOfWeek - * - * @return static - */ - public function previous($dayOfWeek = null) - { - if ($dayOfWeek === null) { - $dayOfWeek = $this->dayOfWeek; - } - - return $this->startOfDay()->modify('last '.static::$days[$dayOfWeek]); - } - - /** - * Modify to the first occurrence of a given day of the week - * in the current month. If no dayOfWeek is provided, modify to the - * first day of the current month. Use the supplied constants - * to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int|null $dayOfWeek - * - * @return static - */ - public function firstOfMonth($dayOfWeek = null) - { - $this->startOfDay(); - - if ($dayOfWeek === null) { - return $this->day(1); - } - - return $this->modify('first '.static::$days[$dayOfWeek].' of '.$this->format('F').' '.$this->year); - } - - /** - * Modify to the last occurrence of a given day of the week - * in the current month. If no dayOfWeek is provided, modify to the - * last day of the current month. Use the supplied constants - * to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int|null $dayOfWeek - * - * @return static - */ - public function lastOfMonth($dayOfWeek = null) - { - $this->startOfDay(); - - if ($dayOfWeek === null) { - return $this->day($this->daysInMonth); - } - - return $this->modify('last '.static::$days[$dayOfWeek].' of '.$this->format('F').' '.$this->year); - } - - /** - * Modify to the given occurrence of a given day of the week - * in the current month. If the calculated occurrence is outside the scope - * of the current month, then return false and no modifications are made. - * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int $nth - * @param int $dayOfWeek - * - * @return mixed - */ - public function nthOfMonth($nth, $dayOfWeek) - { - $dt = $this->copy()->firstOfMonth(); - $check = $dt->format('Y-m'); - $dt->modify('+'.$nth.' '.static::$days[$dayOfWeek]); - - return $dt->format('Y-m') === $check ? $this->modify($dt) : false; - } - - /** - * Modify to the first occurrence of a given day of the week - * in the current quarter. If no dayOfWeek is provided, modify to the - * first day of the current quarter. Use the supplied constants - * to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int|null $dayOfWeek - * - * @return static - */ - public function firstOfQuarter($dayOfWeek = null) - { - return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER - 2, 1)->firstOfMonth($dayOfWeek); - } - - /** - * Modify to the last occurrence of a given day of the week - * in the current quarter. If no dayOfWeek is provided, modify to the - * last day of the current quarter. Use the supplied constants - * to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int|null $dayOfWeek - * - * @return static - */ - public function lastOfQuarter($dayOfWeek = null) - { - return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER, 1)->lastOfMonth($dayOfWeek); - } - - /** - * Modify to the given occurrence of a given day of the week - * in the current quarter. If the calculated occurrence is outside the scope - * of the current quarter, then return false and no modifications are made. - * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int $nth - * @param int $dayOfWeek - * - * @return mixed - */ - public function nthOfQuarter($nth, $dayOfWeek) - { - $dt = $this->copy()->day(1)->month($this->quarter * static::MONTHS_PER_QUARTER); - $lastMonth = $dt->month; - $year = $dt->year; - $dt->firstOfQuarter()->modify('+'.$nth.' '.static::$days[$dayOfWeek]); - - return ($lastMonth < $dt->month || $year !== $dt->year) ? false : $this->modify($dt); - } - - /** - * Modify to the first occurrence of a given day of the week - * in the current year. If no dayOfWeek is provided, modify to the - * first day of the current year. Use the supplied constants - * to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int|null $dayOfWeek - * - * @return static - */ - public function firstOfYear($dayOfWeek = null) - { - return $this->month(1)->firstOfMonth($dayOfWeek); - } - - /** - * Modify to the last occurrence of a given day of the week - * in the current year. If no dayOfWeek is provided, modify to the - * last day of the current year. Use the supplied constants - * to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int|null $dayOfWeek - * - * @return static - */ - public function lastOfYear($dayOfWeek = null) - { - return $this->month(static::MONTHS_PER_YEAR)->lastOfMonth($dayOfWeek); - } - - /** - * Modify to the given occurrence of a given day of the week - * in the current year. If the calculated occurrence is outside the scope - * of the current year, then return false and no modifications are made. - * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. - * - * @param int $nth - * @param int $dayOfWeek - * - * @return mixed - */ - public function nthOfYear($nth, $dayOfWeek) - { - $dt = $this->copy()->firstOfYear()->modify('+'.$nth.' '.static::$days[$dayOfWeek]); - - return $this->year === $dt->year ? $this->modify($dt) : false; - } - - /** - * Modify the current instance to the average of a given instance (default now) and the current instance. - * - * @param \Carbon\Carbon|null $dt - * - * @return static - */ - public function average(Carbon $dt = null) - { - $dt = $dt ?: static::now($this->getTimezone()); - - return $this->addSeconds((int) ($this->diffInSeconds($dt, false) / 2)); - } - - /** - * Check if its the birthday. Compares the date/month values of the two dates. - * - * @param \Carbon\Carbon|null $dt The instance to compare with or null to use current day. - * - * @return bool - */ - public function isBirthday(Carbon $dt = null) - { - return $this->isSameAs('md', $dt); - } - - /** - * Consider the timezone when modifying the instance. - * - * @param string $modify - * - * @return static - */ - public function modify($modify) - { - if ($this->local) { - return parent::modify($modify); - } - - $timezone = $this->getTimezone(); - $this->setTimezone('UTC'); - $instance = parent::modify($modify); - $this->setTimezone($timezone); - - return $instance; - } - - /** - * Return a serialized string of the instance. - * - * @return string - */ - public function serialize() - { - return serialize($this); - } - - /** - * Create an instance form a serialized string. - * - * @param string $value - * - * @throws \InvalidArgumentException - * - * @return static - */ - public static function fromSerialized($value) - { - $instance = @unserialize($value); - - if (!$instance instanceof static) { - throw new InvalidArgumentException('Invalid serialized value.'); - } - - return $instance; - } -} diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php b/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php deleted file mode 100644 index 514ca6e8..00000000 --- a/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php +++ /dev/null @@ -1,557 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Carbon; - -use DateInterval; -use InvalidArgumentException; -use Symfony\Component\Translation\Loader\ArrayLoader; -use Symfony\Component\Translation\Translator; -use Symfony\Component\Translation\TranslatorInterface; - -/** - * A simple API extension for DateInterval. - * The implementation provides helpers to handle weeks but only days are saved. - * Weeks are calculated based on the total days of the current instance. - * - * @property int $years Total years of the current interval. - * @property int $months Total months of the current interval. - * @property int $weeks Total weeks of the current interval calculated from the days. - * @property int $dayz Total days of the current interval (weeks * 7 + days). - * @property int $hours Total hours of the current interval. - * @property int $minutes Total minutes of the current interval. - * @property int $seconds Total seconds of the current interval. - * @property-read int $dayzExcludeWeeks Total days remaining in the final week of the current instance (days % 7). - * @property-read int $daysExcludeWeeks alias of dayzExcludeWeeks - * - * @method static CarbonInterval years($years = 1) Create instance specifying a number of years. - * @method static CarbonInterval year($years = 1) Alias for years() - * @method static CarbonInterval months($months = 1) Create instance specifying a number of months. - * @method static CarbonInterval month($months = 1) Alias for months() - * @method static CarbonInterval weeks($weeks = 1) Create instance specifying a number of weeks. - * @method static CarbonInterval week($weeks = 1) Alias for weeks() - * @method static CarbonInterval days($days = 1) Create instance specifying a number of days. - * @method static CarbonInterval dayz($days = 1) Alias for days() - * @method static CarbonInterval day($days = 1) Alias for days() - * @method static CarbonInterval hours($hours = 1) Create instance specifying a number of hours. - * @method static CarbonInterval hour($hours = 1) Alias for hours() - * @method static CarbonInterval minutes($minutes = 1) Create instance specifying a number of minutes. - * @method static CarbonInterval minute($minutes = 1) Alias for minutes() - * @method static CarbonInterval seconds($seconds = 1) Create instance specifying a number of seconds. - * @method static CarbonInterval second($seconds = 1) Alias for seconds() - * @method CarbonInterval years() years($years = 1) Set the years portion of the current interval. - * @method CarbonInterval year() year($years = 1) Alias for years(). - * @method CarbonInterval months() months($months = 1) Set the months portion of the current interval. - * @method CarbonInterval month() month($months = 1) Alias for months(). - * @method CarbonInterval weeks() weeks($weeks = 1) Set the weeks portion of the current interval. Will overwrite dayz value. - * @method CarbonInterval week() week($weeks = 1) Alias for weeks(). - * @method CarbonInterval days() days($days = 1) Set the days portion of the current interval. - * @method CarbonInterval dayz() dayz($days = 1) Alias for days(). - * @method CarbonInterval day() day($days = 1) Alias for days(). - * @method CarbonInterval hours() hours($hours = 1) Set the hours portion of the current interval. - * @method CarbonInterval hour() hour($hours = 1) Alias for hours(). - * @method CarbonInterval minutes() minutes($minutes = 1) Set the minutes portion of the current interval. - * @method CarbonInterval minute() minute($minutes = 1) Alias for minutes(). - * @method CarbonInterval seconds() seconds($seconds = 1) Set the seconds portion of the current interval. - * @method CarbonInterval second() second($seconds = 1) Alias for seconds(). - */ -class CarbonInterval extends DateInterval -{ - /** - * Interval spec period designators - */ - const PERIOD_PREFIX = 'P'; - const PERIOD_YEARS = 'Y'; - const PERIOD_MONTHS = 'M'; - const PERIOD_DAYS = 'D'; - const PERIOD_TIME_PREFIX = 'T'; - const PERIOD_HOURS = 'H'; - const PERIOD_MINUTES = 'M'; - const PERIOD_SECONDS = 'S'; - - /** - * A translator to ... er ... translate stuff - * - * @var \Symfony\Component\Translation\TranslatorInterface - */ - protected static $translator; - - /** - * Before PHP 5.4.20/5.5.4 instead of FALSE days will be set to -99999 when the interval instance - * was created by DateTime:diff(). - */ - const PHP_DAYS_FALSE = -99999; - - /** - * Determine if the interval was created via DateTime:diff() or not. - * - * @param DateInterval $interval - * - * @return bool - */ - private static function wasCreatedFromDiff(DateInterval $interval) - { - return $interval->days !== false && $interval->days !== static::PHP_DAYS_FALSE; - } - - /////////////////////////////////////////////////////////////////// - //////////////////////////// CONSTRUCTORS ///////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Create a new CarbonInterval instance. - * - * @param int $years - * @param int $months - * @param int $weeks - * @param int $days - * @param int $hours - * @param int $minutes - * @param int $seconds - */ - public function __construct($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null) - { - $spec = static::PERIOD_PREFIX; - - $spec .= $years > 0 ? $years.static::PERIOD_YEARS : ''; - $spec .= $months > 0 ? $months.static::PERIOD_MONTHS : ''; - - $specDays = 0; - $specDays += $weeks > 0 ? $weeks * Carbon::DAYS_PER_WEEK : 0; - $specDays += $days > 0 ? $days : 0; - - $spec .= $specDays > 0 ? $specDays.static::PERIOD_DAYS : ''; - - if ($hours > 0 || $minutes > 0 || $seconds > 0) { - $spec .= static::PERIOD_TIME_PREFIX; - $spec .= $hours > 0 ? $hours.static::PERIOD_HOURS : ''; - $spec .= $minutes > 0 ? $minutes.static::PERIOD_MINUTES : ''; - $spec .= $seconds > 0 ? $seconds.static::PERIOD_SECONDS : ''; - } - - if ($spec === static::PERIOD_PREFIX) { - // Allow the zero interval. - $spec .= '0'.static::PERIOD_YEARS; - } - - parent::__construct($spec); - } - - /** - * Create a new CarbonInterval instance from specific values. - * This is an alias for the constructor that allows better fluent - * syntax as it allows you to do CarbonInterval::create(1)->fn() rather than - * (new CarbonInterval(1))->fn(). - * - * @param int $years - * @param int $months - * @param int $weeks - * @param int $days - * @param int $hours - * @param int $minutes - * @param int $seconds - * - * @return static - */ - public static function create($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null) - { - return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds); - } - - /** - * Provide static helpers to create instances. Allows CarbonInterval::years(3). - * - * Note: This is done using the magic method to allow static and instance methods to - * have the same names. - * - * @param string $name - * @param array $args - * - * @return static - */ - public static function __callStatic($name, $args) - { - $arg = count($args) === 0 ? 1 : $args[0]; - - switch ($name) { - case 'years': - case 'year': - return new static($arg); - - case 'months': - case 'month': - return new static(null, $arg); - - case 'weeks': - case 'week': - return new static(null, null, $arg); - - case 'days': - case 'dayz': - case 'day': - return new static(null, null, null, $arg); - - case 'hours': - case 'hour': - return new static(null, null, null, null, $arg); - - case 'minutes': - case 'minute': - return new static(null, null, null, null, null, $arg); - - case 'seconds': - case 'second': - return new static(null, null, null, null, null, null, $arg); - } - } - - /** - * Create a CarbonInterval instance from a DateInterval one. Can not instance - * DateInterval objects created from DateTime::diff() as you can't externally - * set the $days field. - * - * @param DateInterval $di - * - * @throws \InvalidArgumentException - * - * @return static - */ - public static function instance(DateInterval $di) - { - if (static::wasCreatedFromDiff($di)) { - throw new InvalidArgumentException('Can not instance a DateInterval object created from DateTime::diff().'); - } - - $instance = new static($di->y, $di->m, 0, $di->d, $di->h, $di->i, $di->s); - $instance->invert = $di->invert; - $instance->days = $di->days; - - return $instance; - } - - /////////////////////////////////////////////////////////////////// - /////////////////////// LOCALIZATION ////////////////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Initialize the translator instance if necessary. - * - * @return \Symfony\Component\Translation\TranslatorInterface - */ - protected static function translator() - { - if (static::$translator === null) { - static::$translator = new Translator('en'); - static::$translator->addLoader('array', new ArrayLoader()); - static::setLocale('en'); - } - - return static::$translator; - } - - /** - * Get the translator instance in use - * - * @return \Symfony\Component\Translation\TranslatorInterface - */ - public static function getTranslator() - { - return static::translator(); - } - - /** - * Set the translator instance to use - * - * @param TranslatorInterface $translator - */ - public static function setTranslator(TranslatorInterface $translator) - { - static::$translator = $translator; - } - - /** - * Get the current translator locale - * - * @return string - */ - public static function getLocale() - { - return static::translator()->getLocale(); - } - - /** - * Set the current translator locale - * - * @param string $locale - */ - public static function setLocale($locale) - { - static::translator()->setLocale($locale); - - // Ensure the locale has been loaded. - static::translator()->addResource('array', require __DIR__.'/Lang/'.$locale.'.php', $locale); - } - - /////////////////////////////////////////////////////////////////// - ///////////////////////// GETTERS AND SETTERS ///////////////////// - /////////////////////////////////////////////////////////////////// - - /** - * Get a part of the CarbonInterval object - * - * @param string $name - * - * @throws \InvalidArgumentException - * - * @return int - */ - public function __get($name) - { - switch ($name) { - case 'years': - return $this->y; - - case 'months': - return $this->m; - - case 'dayz': - return $this->d; - - case 'hours': - return $this->h; - - case 'minutes': - return $this->i; - - case 'seconds': - return $this->s; - - case 'weeks': - return (int) floor($this->d / Carbon::DAYS_PER_WEEK); - - case 'daysExcludeWeeks': - case 'dayzExcludeWeeks': - return $this->d % Carbon::DAYS_PER_WEEK; - - default: - throw new InvalidArgumentException(sprintf("Unknown getter '%s'", $name)); - } - } - - /** - * Set a part of the CarbonInterval object - * - * @param string $name - * @param int $val - * - * @throws \InvalidArgumentException - */ - public function __set($name, $val) - { - switch ($name) { - case 'years': - $this->y = $val; - break; - - case 'months': - $this->m = $val; - break; - - case 'weeks': - $this->d = $val * Carbon::DAYS_PER_WEEK; - break; - - case 'dayz': - $this->d = $val; - break; - - case 'hours': - $this->h = $val; - break; - - case 'minutes': - $this->i = $val; - break; - - case 'seconds': - $this->s = $val; - break; - } - } - - /** - * Allow setting of weeks and days to be cumulative. - * - * @param int $weeks Number of weeks to set - * @param int $days Number of days to set - * - * @return static - */ - public function weeksAndDays($weeks, $days) - { - $this->dayz = ($weeks * Carbon::DAYS_PER_WEEK) + $days; - - return $this; - } - - /** - * Allow fluent calls on the setters... CarbonInterval::years(3)->months(5)->day(). - * - * Note: This is done using the magic method to allow static and instance methods to - * have the same names. - * - * @param string $name - * @param array $args - * - * @return static - */ - public function __call($name, $args) - { - $arg = count($args) === 0 ? 1 : $args[0]; - - switch ($name) { - case 'years': - case 'year': - $this->years = $arg; - break; - - case 'months': - case 'month': - $this->months = $arg; - break; - - case 'weeks': - case 'week': - $this->dayz = $arg * Carbon::DAYS_PER_WEEK; - break; - - case 'days': - case 'dayz': - case 'day': - $this->dayz = $arg; - break; - - case 'hours': - case 'hour': - $this->hours = $arg; - break; - - case 'minutes': - case 'minute': - $this->minutes = $arg; - break; - - case 'seconds': - case 'second': - $this->seconds = $arg; - break; - } - - return $this; - } - - /** - * Get the current interval in a human readable format in the current locale. - * - * @return string - */ - public function forHumans() - { - $periods = array( - 'year' => $this->years, - 'month' => $this->months, - 'week' => $this->weeks, - 'day' => $this->daysExcludeWeeks, - 'hour' => $this->hours, - 'minute' => $this->minutes, - 'second' => $this->seconds, - ); - - $parts = array(); - foreach ($periods as $unit => $count) { - if ($count > 0) { - array_push($parts, static::translator()->transChoice($unit, $count, array(':count' => $count))); - } - } - - return implode(' ', $parts); - } - - /** - * Format the instance as a string using the forHumans() function. - * - * @return string - */ - public function __toString() - { - return $this->forHumans(); - } - - /** - * Add the passed interval to the current instance - * - * @param DateInterval $interval - * - * @return static - */ - public function add(DateInterval $interval) - { - $sign = $interval->invert === 1 ? -1 : 1; - - if (static::wasCreatedFromDiff($interval)) { - $this->dayz += $interval->days * $sign; - } else { - $this->years += $interval->y * $sign; - $this->months += $interval->m * $sign; - $this->dayz += $interval->d * $sign; - $this->hours += $interval->h * $sign; - $this->minutes += $interval->i * $sign; - $this->seconds += $interval->s * $sign; - } - - return $this; - } - - /** - * Get the interval_spec string - * - * @return string - */ - public function spec() - { - $date = array_filter(array( - static::PERIOD_YEARS => $this->y, - static::PERIOD_MONTHS => $this->m, - static::PERIOD_DAYS => $this->d, - )); - - $time = array_filter(array( - static::PERIOD_HOURS => $this->h, - static::PERIOD_MINUTES => $this->i, - static::PERIOD_SECONDS => $this->s, - )); - - $specString = static::PERIOD_PREFIX; - - foreach ($date as $key => $value) { - $specString .= $value.$key; - } - - if (count($time) > 0) { - $specString .= static::PERIOD_TIME_PREFIX; - foreach ($time as $key => $value) { - $specString .= $value.$key; - } - } - - return $specString === static::PERIOD_PREFIX ? 'PT0S' : $specString; - } -} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php deleted file mode 100644 index 1b0d4737..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Carbon\Exceptions; - -use Exception; -use InvalidArgumentException; - -class InvalidDateException extends InvalidArgumentException -{ - /** - * The invalid field. - * - * @var string - */ - private $field; - - /** - * The invalid value. - * - * @var mixed - */ - private $value; - - /** - * Constructor. - * - * @param string $field - * @param mixed $value - * @param int $code - * @param \Exception|null $previous - */ - public function __construct($field, $value, $code = 0, Exception $previous = null) - { - $this->field = $field; - $this->value = $value; - parent::__construct($field.' : '.$value.' is not a valid value.', $code, $previous); - } - - /** - * Get the invalid field. - * - * @return string - */ - public function getField() - { - return $this->field; - } - - /** - * Get the invalid value. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } -} diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/af.php b/vendor/nesbot/carbon/src/Carbon/Lang/af.php deleted file mode 100644 index a8610d6d..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/af.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 jaar|:count jare', - 'y' => '1 jaar|:count jare', - 'month' => '1 maand|:count maande', - 'm' => '1 maand|:count maande', - 'week' => '1 week|:count weke', - 'w' => '1 week|:count weke', - 'day' => '1 dag|:count dae', - 'd' => '1 dag|:count dae', - 'hour' => '1 uur|:count ure', - 'h' => '1 uur|:count ure', - 'minute' => '1 minuut|:count minute', - 'min' => '1 minuut|:count minute', - 'second' => '1 sekond|:count sekondes', - 's' => '1 sekond|:count sekondes', - 'ago' => ':time terug', - 'from_now' => ':time van nou af', - 'after' => ':time na', - 'before' => ':time voor', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar.php deleted file mode 100644 index 253cf503..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ar.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '{0}سنة|{1}سنة|{2}سنتين|[3,10]:count سنوات|[11,Inf]:count سنة', - 'y' => '{0}سنة|{1}سنة|{2}سنتين|[3,10]:count سنوات|[11,Inf]:count سنة', - 'month' => '{0}شهر|{1} شهر|{2}شهرين|[3,10]:count أشهر|[11,Inf]:count شهر', - 'm' => '{0}شهر|{1} شهر|{2}شهرين|[3,10]:count أشهر|[11,Inf]:count شهر', - 'week' => '{0}إسبوع|{1}إسبوع|{2}إسبوعين|[3,10]:count أسابيع|[11,Inf]:count إسبوع', - 'w' => '{0}إسبوع|{1}إسبوع|{2}إسبوعين|[3,10]:count أسابيع|[11,Inf]:count إسبوع', - 'day' => '{0}يوم|{1}يوم|{2}يومين|[3,10]:count أيام|[11,Inf] يوم', - 'd' => '{0}يوم|{1}يوم|{2}يومين|[3,10]:count أيام|[11,Inf] يوم', - 'hour' => '{0}ساعة|{1}ساعة|{2}ساعتين|[3,10]:count ساعات|[11,Inf]:count ساعة', - 'h' => '{0}ساعة|{1}ساعة|{2}ساعتين|[3,10]:count ساعات|[11,Inf]:count ساعة', - 'minute' => '{0}دقيقة|{1}دقيقة|{2}دقيقتين|[3,10]:count دقائق|[11,Inf]:count دقيقة', - 'min' => '{0}دقيقة|{1}دقيقة|{2}دقيقتين|[3,10]:count دقائق|[11,Inf]:count دقيقة', - 'second' => '{0}ثانية|{1}ثانية|{2}ثانيتين|[3,10]:count ثوان|[11,Inf]:count ثانية', - 's' => '{0}ثانية|{1}ثانية|{2}ثانيتين|[3,10]:count ثوان|[11,Inf]:count ثانية', - 'ago' => 'منذ :time', - 'from_now' => 'من الآن :time', - 'after' => 'بعد :time', - 'before' => 'قبل :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/az.php b/vendor/nesbot/carbon/src/Carbon/Lang/az.php deleted file mode 100644 index e4f3789a..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/az.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count il', - 'y' => ':count il', - 'month' => ':count ay', - 'm' => ':count ay', - 'week' => ':count hÉ™ftÉ™', - 'w' => ':count hÉ™ftÉ™', - 'day' => ':count gün', - 'd' => ':count gün', - 'hour' => ':count saat', - 'h' => ':count saat', - 'minute' => ':count dÉ™qiqÉ™', - 'min' => ':count dÉ™qiqÉ™', - 'second' => ':count saniyÉ™', - 's' => ':count saniyÉ™', - 'ago' => ':time öncÉ™', - 'from_now' => ':time sonra', - 'after' => ':time sonra', - 'before' => ':time öncÉ™', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bg.php b/vendor/nesbot/carbon/src/Carbon/Lang/bg.php deleted file mode 100644 index 309934b5..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bg.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 година|:count години', - 'y' => '1 година|:count години', - 'month' => '1 меÑец|:count меÑеца', - 'm' => '1 меÑец|:count меÑеца', - 'week' => '1 Ñедмица|:count Ñедмици', - 'w' => '1 Ñедмица|:count Ñедмици', - 'day' => '1 ден|:count дни', - 'd' => '1 ден|:count дни', - 'hour' => '1 чаÑ|:count чаÑа', - 'h' => '1 чаÑ|:count чаÑа', - 'minute' => '1 минута|:count минути', - 'm' => '1 минута|:count минути', - 'second' => '1 Ñекунда|:count Ñекунди', - 's' => '1 Ñекунда|:count Ñекунди', - 'ago' => 'преди :time', - 'from_now' => ':time от Ñега', - 'after' => 'Ñлед :time', - 'before' => 'преди :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bn.php b/vendor/nesbot/carbon/src/Carbon/Lang/bn.php deleted file mode 100644 index a930df38..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/bn.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '১ বছর|:count বছর', - 'y' => '১ বছর|:count বছর', - 'month' => '১ মাস|:count মাস', - 'm' => '১ মাস|:count মাস', - 'week' => '১ সপà§à¦¤à¦¾à¦¹|:count সপà§à¦¤à¦¾à¦¹', - 'w' => '১ সপà§à¦¤à¦¾à¦¹|:count সপà§à¦¤à¦¾à¦¹', - 'day' => '১ দিন|:count দিন', - 'd' => '১ দিন|:count দিন', - 'hour' => '১ ঘনà§à¦Ÿà¦¾|:count ঘনà§à¦Ÿà¦¾', - 'h' => '১ ঘনà§à¦Ÿà¦¾|:count ঘনà§à¦Ÿà¦¾', - 'minute' => '১ মিনিট|:count মিনিট', - 'min' => '১ মিনিট|:count মিনিট', - 'second' => '১ সেকেনà§à¦¡|:count সেকেনà§à¦¡', - 's' => '১ সেকেনà§à¦¡|:count সেকেনà§à¦¡', - 'ago' => ':time পূরà§à¦¬à§‡', - 'from_now' => 'à¦à¦–ন থেকে :time', - 'after' => ':time পরে', - 'before' => ':time আগে', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ca.php b/vendor/nesbot/carbon/src/Carbon/Lang/ca.php deleted file mode 100644 index 91262e76..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ca.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 any|:count anys', - 'y' => '1 any|:count anys', - 'month' => '1 mes|:count mesos', - 'm' => '1 mes|:count mesos', - 'week' => '1 setmana|:count setmanes', - 'w' => '1 setmana|:count setmanes', - 'day' => '1 dia|:count dies', - 'd' => '1 dia|:count dies', - 'hour' => '1 hora|:count hores', - 'h' => '1 hora|:count hores', - 'minute' => '1 minut|:count minuts', - 'min' => '1 minut|:count minuts', - 'second' => '1 segon|:count segons', - 's' => '1 segon|:count segons', - 'ago' => 'fa :time', - 'from_now' => 'dins de :time', - 'after' => ':time després', - 'before' => ':time abans', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cs.php b/vendor/nesbot/carbon/src/Carbon/Lang/cs.php deleted file mode 100644 index f4aba76c..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/cs.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 rok|:count roky|:count let', - 'y' => '1 rok|:count roky|:count let', - 'month' => '1 mÄ›síc|:count mÄ›síce|:count mÄ›síců', - 'm' => '1 mÄ›síc|:count mÄ›síce|:count mÄ›síců', - 'week' => '1 týden|:count týdny|:count týdnů', - 'w' => '1 týden|:count týdny|:count týdnů', - 'day' => '1 den|:count dny|:count dní', - 'd' => '1 den|:count dny|:count dní', - 'hour' => '1 hodinu|:count hodiny|:count hodin', - 'h' => '1 hodinu|:count hodiny|:count hodin', - 'minute' => '1 minutu|:count minuty|:count minut', - 'min' => '1 minutu|:count minuty|:count minut', - 'second' => '1 sekundu|:count sekundy|:count sekund', - 's' => '1 sekundu|:count sekundy|:count sekund', - 'ago' => ':time nazpÄ›t', - 'from_now' => 'za :time', - 'after' => ':time pozdÄ›ji', - 'before' => ':time pÅ™edtím', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/da.php b/vendor/nesbot/carbon/src/Carbon/Lang/da.php deleted file mode 100644 index 67104741..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/da.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 Ã¥r|:count Ã¥r', - 'y' => '1 Ã¥r|:count Ã¥r', - 'month' => '1 mÃ¥ned|:count mÃ¥neder', - 'm' => '1 mÃ¥ned|:count mÃ¥neder', - 'week' => '1 uge|:count uger', - 'w' => '1 uge|:count uger', - 'day' => '1 dag|:count dage', - 'd' => '1 dag|:count dage', - 'hour' => '1 time|:count timer', - 'h' => '1 time|:count timer', - 'minute' => '1 minut|:count minutter', - 'min' => '1 minut|:count minutter', - 'second' => '1 sekund|:count sekunder', - 's' => '1 sekund|:count sekunder', - 'ago' => ':time siden', - 'from_now' => 'om :time', - 'after' => ':time efter', - 'before' => ':time før', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de.php b/vendor/nesbot/carbon/src/Carbon/Lang/de.php deleted file mode 100644 index d1c572ac..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/de.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 Jahr|:count Jahre', - 'y' => '1J|:countJ', - 'month' => '1 Monat|:count Monate', - 'm' => '1Mon|:countMon', - 'week' => '1 Woche|:count Wochen', - 'w' => '1Wo|:countWo', - 'day' => '1 Tag|:count Tage', - 'd' => '1Tg|:countTg', - 'hour' => '1 Stunde|:count Stunden', - 'h' => '1Std|:countStd', - 'minute' => '1 Minute|:count Minuten', - 'min' => '1Min|:countMin', - 'second' => '1 Sekunde|:count Sekunden', - 's' => '1Sek|:countSek', - 'ago' => 'vor :time', - 'from_now' => 'in :time', - 'after' => ':time später', - 'before' => ':time zuvor', - - 'year_from_now' => '1 Jahr|:count Jahren', - 'month_from_now' => '1 Monat|:count Monaten', - 'week_from_now' => '1 Woche|:count Wochen', - 'day_from_now' => '1 Tag|:count Tagen', - 'year_ago' => '1 Jahr|:count Jahren', - 'month_ago' => '1 Monat|:count Monaten', - 'week_ago' => '1 Woche|:count Wochen', - 'day_ago' => '1 Tag|:count Tagen', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/el.php b/vendor/nesbot/carbon/src/Carbon/Lang/el.php deleted file mode 100644 index 6028074d..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/el.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 χÏόνος|:count χÏόνια', - 'y' => '1 χÏόνος|:count χÏόνια', - 'month' => '1 μήνας|:count μήνες', - 'm' => '1 μήνας|:count μήνες', - 'week' => '1 εβδομάδα|:count εβδομάδες', - 'w' => '1 εβδομάδα|:count εβδομάδες', - 'day' => '1 μέÏα|:count μέÏες', - 'd' => '1 μέÏα|:count μέÏες', - 'hour' => '1 ÏŽÏα|:count ÏŽÏες', - 'h' => '1 ÏŽÏα|:count ÏŽÏες', - 'minute' => '1 λεπτό|:count λεπτά', - 'min' => '1 λεπτό|:count λεπτά', - 'second' => '1 δευτεÏόλεπτο|:count δευτεÏόλεπτα', - 's' => '1 δευτεÏόλεπτο|:count δευτεÏόλεπτα', - 'ago' => 'Ï€Ïίν απο :time', - 'from_now' => 'σε :time απο Ï„ÏŽÏα', - 'after' => ':time μετά', - 'before' => ':time Ï€Ïίν', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en.php b/vendor/nesbot/carbon/src/Carbon/Lang/en.php deleted file mode 100644 index 181c59be..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/en.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 year|:count years', - 'y' => '1yr|:countyrs', - 'month' => '1 month|:count months', - 'm' => '1mo|:countmos', - 'week' => '1 week|:count weeks', - 'w' => '1w|:countw', - 'day' => '1 day|:count days', - 'd' => '1d|:countd', - 'hour' => '1 hour|:count hours', - 'h' => '1h|:counth', - 'minute' => '1 minute|:count minutes', - 'min' => '1m|:countm', - 'second' => '1 second|:count seconds', - 's' => '1s|:counts', - 'ago' => ':time ago', - 'from_now' => ':time from now', - 'after' => ':time after', - 'before' => ':time before', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/eo.php b/vendor/nesbot/carbon/src/Carbon/Lang/eo.php deleted file mode 100644 index ff1f5311..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/eo.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 jaro|:count jaroj', - 'y' => '1 jaro|:count jaroj', - 'month' => '1 monato|:count monatoj', - 'm' => '1 monato|:count monatoj', - 'week' => '1 semajno|:count semajnoj', - 'w' => '1 semajno|:count semajnoj', - 'day' => '1 tago|:count tagoj', - 'd' => '1 tago|:count tagoj', - 'hour' => '1 horo|:count horoj', - 'h' => '1 horo|:count horoj', - 'minute' => '1 minuto|:count minutoj', - 'min' => '1 minuto|:count minutoj', - 'second' => '1 sekundo|:count sekundoj', - 's' => '1 sekundo|:count sekundoj', - 'ago' => 'antaÅ­ :time', - 'from_now' => 'je :time', - 'after' => ':time poste', - 'before' => ':time antaÅ­e', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es.php b/vendor/nesbot/carbon/src/Carbon/Lang/es.php deleted file mode 100644 index fb0aff19..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/es.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 año|:count años', - 'y' => '1 año|:count años', - 'month' => '1 mes|:count meses', - 'm' => '1 mes|:count meses', - 'week' => '1 semana|:count semanas', - 'w' => '1 semana|:count semanas', - 'day' => '1 día|:count días', - 'd' => '1 día|:count días', - 'hour' => '1 hora|:count horas', - 'h' => '1 hora|:count horas', - 'minute' => '1 minuto|:count minutos', - 'min' => '1 minuto|:count minutos', - 'second' => '1 segundo|:count segundos', - 's' => '1 segundo|:count segundos', - 'ago' => 'hace :time', - 'from_now' => 'dentro de :time', - 'after' => ':time después', - 'before' => ':time antes', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/et.php b/vendor/nesbot/carbon/src/Carbon/Lang/et.php deleted file mode 100644 index 70d682de..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/et.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 aasta|:count aastat', - 'y' => '1 aasta|:count aastat', - 'month' => '1 kuu|:count kuud', - 'm' => '1 kuu|:count kuud', - 'week' => '1 nädal|:count nädalat', - 'w' => '1 nädal|:count nädalat', - 'day' => '1 päev|:count päeva', - 'd' => '1 päev|:count päeva', - 'hour' => '1 tund|:count tundi', - 'h' => '1 tund|:count tundi', - 'minute' => '1 minut|:count minutit', - 'min' => '1 minut|:count minutit', - 'second' => '1 sekund|:count sekundit', - 's' => '1 sekund|:count sekundit', - 'ago' => ':time tagasi', - 'from_now' => ':time pärast', - 'after' => ':time pärast', - 'before' => ':time enne', - 'year_from_now' => ':count aasta', - 'month_from_now' => ':count kuu', - 'week_from_now' => ':count nädala', - 'day_from_now' => ':count päeva', - 'hour_from_now' => ':count tunni', - 'minute_from_now' => ':count minuti', - 'second_from_now' => ':count sekundi', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/eu.php b/vendor/nesbot/carbon/src/Carbon/Lang/eu.php deleted file mode 100644 index 1cb6b7cd..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/eu.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => 'Urte 1|:count urte', - 'y' => 'Urte 1|:count urte', - 'month' => 'Hile 1|:count hile', - 'm' => 'Hile 1|:count hile', - 'week' => 'Aste 1|:count aste', - 'w' => 'Aste 1|:count aste', - 'day' => 'Egun 1|:count egun', - 'd' => 'Egun 1|:count egun', - 'hour' => 'Ordu 1|:count ordu', - 'h' => 'Ordu 1|:count ordu', - 'minute' => 'Minutu 1|:count minutu', - 'min' => 'Minutu 1|:count minutu', - 'second' => 'Segundu 1|:count segundu', - 's' => 'Segundu 1|:count segundu', - 'ago' => 'Orain dela :time', - 'from_now' => ':time barru', - 'after' => ':time geroago', - 'before' => ':time lehenago', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fa.php b/vendor/nesbot/carbon/src/Carbon/Lang/fa.php deleted file mode 100644 index 31bec886..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fa.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count سال', - 'y' => ':count سال', - 'month' => ':count ماه', - 'm' => ':count ماه', - 'week' => ':count Ù‡Ùته', - 'w' => ':count Ù‡Ùته', - 'day' => ':count روز', - 'd' => ':count روز', - 'hour' => ':count ساعت', - 'h' => ':count ساعت', - 'minute' => ':count دقیقه', - 'min' => ':count دقیقه', - 'second' => ':count ثانیه', - 's' => ':count ثانیه', - 'ago' => ':time پیش', - 'from_now' => ':time بعد', - 'after' => ':time پس از', - 'before' => ':time پیش از', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fi.php b/vendor/nesbot/carbon/src/Carbon/Lang/fi.php deleted file mode 100644 index 46794fa5..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fi.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 vuosi|:count vuotta', - 'y' => '1 vuosi|:count vuotta', - 'month' => '1 kuukausi|:count kuukautta', - 'm' => '1 kuukausi|:count kuukautta', - 'week' => '1 viikko|:count viikkoa', - 'w' => '1 viikko|:count viikkoa', - 'day' => '1 päivä|:count päivää', - 'd' => '1 päivä|:count päivää', - 'hour' => '1 tunti|:count tuntia', - 'h' => '1 tunti|:count tuntia', - 'minute' => '1 minuutti|:count minuuttia', - 'min' => '1 minuutti|:count minuuttia', - 'second' => '1 sekunti|:count sekuntia', - 's' => '1 sekunti|:count sekuntia', - 'ago' => ':time sitten', - 'from_now' => ':time tästä hetkestä', - 'after' => ':time sen jälkeen', - 'before' => ':time ennen', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fo.php b/vendor/nesbot/carbon/src/Carbon/Lang/fo.php deleted file mode 100644 index d4d68232..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fo.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 ár|:count ár', - 'y' => '1 ár|:count ár', - 'month' => '1 mánaður|:count mánaðir', - 'm' => '1 mánaður|:count mánaðir', - 'week' => '1 vika|:count vikur', - 'w' => '1 vika|:count vikur', - 'day' => '1 dag|:count dagar', - 'd' => '1 dag|:count dagar', - 'hour' => '1 tími|:count tímar', - 'h' => '1 tími|:count tímar', - 'minute' => '1 minutt|:count minuttir', - 'min' => '1 minutt|:count minuttir', - 'second' => '1 sekund|:count sekundir', - 's' => '1 sekund|:count sekundir', - 'ago' => ':time síðan', - 'from_now' => 'um :time', - 'after' => ':time aftaná', - 'before' => ':time áðrenn', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr.php deleted file mode 100644 index be79738c..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/fr.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 an|:count ans', - 'y' => '1 an|:count ans', - 'month' => ':count mois', - 'm' => ':count mois', - 'week' => '1 semaine|:count semaines', - 'w' => '1 semaine|:count semaines', - 'day' => '1 jour|:count jours', - 'd' => '1 jour|:count jours', - 'hour' => '1 heure|:count heures', - 'h' => '1 heure|:count heures', - 'minute' => '1 minute|:count minutes', - 'min' => '1 minute|:count minutes', - 'second' => '1 seconde|:count secondes', - 's' => '1 seconde|:count secondes', - 'ago' => 'il y a :time', - 'from_now' => 'dans :time', - 'after' => ':time après', - 'before' => ':time avant', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gl.php b/vendor/nesbot/carbon/src/Carbon/Lang/gl.php deleted file mode 100644 index 609bf752..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/gl.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 ano|:count anos', - 'month' => '1 mes|:count meses', - 'week' => '1 semana|:count semanas', - 'day' => '1 día|:count días', - 'hour' => '1 hora|:count horas', - 'minute' => '1 minuto|:count minutos', - 'second' => '1 segundo|:count segundos', - 'ago' => 'fai :time', - 'from_now' => 'dentro de :time', - 'after' => ':time despois', - 'before' => ':time antes', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/he.php b/vendor/nesbot/carbon/src/Carbon/Lang/he.php deleted file mode 100644 index 2d4f4f88..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/he.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => 'שנה|{2}שנתיי×|:count שני×', - 'y' => 'שנה|{2}שנתיי×|:count שני×', - 'month' => 'חודש|{2}חודשיי×|:count חודשי×', - 'm' => 'חודש|{2}חודשיי×|:count חודשי×', - 'week' => 'שבוע|{2}שבועיי×|:count שבועות', - 'w' => 'שבוע|{2}שבועיי×|:count שבועות', - 'day' => 'יו×|{2}יומיי×|:count ימי×', - 'd' => 'יו×|{2}יומיי×|:count ימי×', - 'hour' => 'שעה|{2}שעתיי×|:count שעות', - 'h' => 'שעה|{2}שעתיי×|:count שעות', - 'minute' => 'דקה|{2}דקותיי×|:count דקות', - 'min' => 'דקה|{2}דקותיי×|:count דקות', - 'second' => 'שניה|:count שניות', - 's' => 'שניה|:count שניות', - 'ago' => 'לפני :time', - 'from_now' => 'בעוד :time', - 'after' => '×חרי :time', - 'before' => 'לפני :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hr.php b/vendor/nesbot/carbon/src/Carbon/Lang/hr.php deleted file mode 100644 index 1a339de7..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hr.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count godinu|:count godine|:count godina', - 'y' => ':count godinu|:count godine|:count godina', - 'month' => ':count mjesec|:count mjeseca|:count mjeseci', - 'm' => ':count mjesec|:count mjeseca|:count mjeseci', - 'week' => ':count tjedan|:count tjedna|:count tjedana', - 'w' => ':count tjedan|:count tjedna|:count tjedana', - 'day' => ':count dan|:count dana|:count dana', - 'd' => ':count dan|:count dana|:count dana', - 'hour' => ':count sat|:count sata|:count sati', - 'h' => ':count sat|:count sata|:count sati', - 'minute' => ':count minutu|:count minute |:count minuta', - 'min' => ':count minutu|:count minute |:count minuta', - 'second' => ':count sekundu|:count sekunde|:count sekundi', - 's' => ':count sekundu|:count sekunde|:count sekundi', - 'ago' => 'prije :time', - 'from_now' => 'za :time', - 'after' => 'za :time', - 'before' => 'prije :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hu.php b/vendor/nesbot/carbon/src/Carbon/Lang/hu.php deleted file mode 100644 index 45daf41a..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hu.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count év', - 'y' => ':count év', - 'month' => ':count hónap', - 'm' => ':count hónap', - 'week' => ':count hét', - 'w' => ':count hét', - 'day' => ':count nap', - 'd' => ':count nap', - 'hour' => ':count óra', - 'h' => ':count óra', - 'minute' => ':count perc', - 'min' => ':count perc', - 'second' => ':count másodperc', - 's' => ':count másodperc', - 'ago' => ':time', - 'from_now' => ':time múlva', - 'after' => ':time késÅ‘bb', - 'before' => ':time korábban', - 'year_ago' => ':count éve', - 'month_ago' => ':count hónapja', - 'week_ago' => ':count hete', - 'day_ago' => ':count napja', - 'hour_ago' => ':count órája', - 'minute_ago' => ':count perce', - 'second_ago' => ':count másodperce', - 'year_after' => ':count évvel', - 'month_after' => ':count hónappal', - 'week_after' => ':count héttel', - 'day_after' => ':count nappal', - 'hour_after' => ':count órával', - 'minute_after' => ':count perccel', - 'second_after' => ':count másodperccel', - 'year_before' => ':count évvel', - 'month_before' => ':count hónappal', - 'week_before' => ':count héttel', - 'day_before' => ':count nappal', - 'hour_before' => ':count órával', - 'minute_before' => ':count perccel', - 'second_before' => ':count másodperccel', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hy.php b/vendor/nesbot/carbon/src/Carbon/Lang/hy.php deleted file mode 100644 index 4b4545d7..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/hy.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count Õ¿Õ¡Ö€Õ«', - 'y' => ':count Õ¿Õ¡Ö€Õ«', - 'month' => ':count Õ¡Õ´Õ«Õ½', - 'm' => ':count Õ¡Õ´Õ«Õ½', - 'week' => ':count Õ·Õ¡Õ¢Õ¡Õ©', - 'w' => ':count Õ·Õ¡Õ¢Õ¡Õ©', - 'day' => ':count Ö…Ö€', - 'd' => ':count Ö…Ö€', - 'hour' => ':count ÕªÕ¡Õ´', - 'h' => ':count ÕªÕ¡Õ´', - 'minute' => ':count Ö€Õ¸ÕºÕ¥', - 'min' => ':count Ö€Õ¸ÕºÕ¥', - 'second' => ':count Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶', - 's' => ':count Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶', - 'ago' => ':time Õ¡Õ¼Õ¡Õ»', - 'from_now' => ':time Õ°Õ¥Õ¿Õ¸', - 'after' => ':time Õ°Õ¥Õ¿Õ¸', - 'before' => ':time Õ¡Õ¼Õ¡Õ»', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/id.php b/vendor/nesbot/carbon/src/Carbon/Lang/id.php deleted file mode 100644 index 7f7114fa..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/id.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count tahun', - 'y' => ':count tahun', - 'month' => ':count bulan', - 'm' => ':count bulan', - 'week' => ':count minggu', - 'w' => ':count minggu', - 'day' => ':count hari', - 'd' => ':count hari', - 'hour' => ':count jam', - 'h' => ':count jam', - 'minute' => ':count menit', - 'min' => ':count menit', - 'second' => ':count detik', - 's' => ':count detik', - 'ago' => ':time yang lalu', - 'from_now' => ':time dari sekarang', - 'after' => ':time setelah', - 'before' => ':time sebelum', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/it.php b/vendor/nesbot/carbon/src/Carbon/Lang/it.php deleted file mode 100644 index 19eedafa..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/it.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 anno|:count anni', - 'y' => '1 anno|:count anni', - 'month' => '1 mese|:count mesi', - 'm' => '1 mese|:count mesi', - 'week' => '1 settimana|:count settimane', - 'w' => '1 settimana|:count settimane', - 'day' => '1 giorno|:count giorni', - 'd' => '1 giorno|:count giorni', - 'hour' => '1 ora|:count ore', - 'h' => '1 ora|:count ore', - 'minute' => '1 minuto|:count minuti', - 'min' => '1 minuto|:count minuti', - 'second' => '1 secondo|:count secondi', - 's' => '1 secondo|:count secondi', - 'ago' => ':time fa', - 'from_now' => ':time da adesso', - 'after' => ':time dopo', - 'before' => ':time prima', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ja.php b/vendor/nesbot/carbon/src/Carbon/Lang/ja.php deleted file mode 100644 index c12c1994..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ja.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count å¹´', - 'y' => ':count å¹´', - 'month' => ':count ヶ月', - 'm' => ':count ヶ月', - 'week' => ':count 週間', - 'w' => ':count 週間', - 'day' => ':count æ—¥', - 'd' => ':count æ—¥', - 'hour' => ':count 時間', - 'h' => ':count 時間', - 'minute' => ':count 分', - 'min' => ':count 分', - 'second' => ':count 秒', - 's' => ':count 秒', - 'ago' => ':time å‰', - 'from_now' => '今ã‹ã‚‰ :time', - 'after' => ':time 後', - 'before' => ':time å‰', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ka.php b/vendor/nesbot/carbon/src/Carbon/Lang/ka.php deleted file mode 100644 index a8dde7eb..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ka.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count წლის', - 'y' => ':count წლის', - 'month' => ':count თვის', - 'm' => ':count თვის', - 'week' => ':count კვირის', - 'w' => ':count კვირის', - 'day' => ':count დღის', - 'd' => ':count დღის', - 'hour' => ':count სáƒáƒáƒ—ის', - 'h' => ':count სáƒáƒáƒ—ის', - 'minute' => ':count წუთის', - 'min' => ':count წუთის', - 'second' => ':count წáƒáƒ›áƒ˜áƒ¡', - 's' => ':count წáƒáƒ›áƒ˜áƒ¡', - 'ago' => ':time უკáƒáƒœ', - 'from_now' => ':time შემდეგ', - 'after' => ':time შემდეგ', - 'before' => ':time უკáƒáƒœ', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/km.php b/vendor/nesbot/carbon/src/Carbon/Lang/km.php deleted file mode 100644 index a104e06e..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/km.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count ឆ្នាំ', - 'y' => ':count ឆ្នាំ', - 'month' => ':count ážáŸ‚', - 'm' => ':count ážáŸ‚', - 'week' => ':count សប្ដាហáŸ', - 'w' => ':count សប្ដាហáŸ', - 'day' => ':count ážáŸ’ងៃ', - 'd' => ':count ážáŸ’ងៃ', - 'hour' => ':count ម៉ោង', - 'h' => ':count ម៉ោង', - 'minute' => ':count នាទី', - 'min' => ':count នាទី', - 'second' => ':count វិនាទី', - 's' => ':count វិនាទី', - 'ago' => ':timeមុន', - 'from_now' => ':timeពី​ឥឡូវ', - 'after' => 'នៅ​ក្រោយ :time', - 'before' => 'នៅ​មុន :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ko.php b/vendor/nesbot/carbon/src/Carbon/Lang/ko.php deleted file mode 100644 index 9eac8c9f..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ko.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count ë…„', - 'y' => ':count ë…„', - 'month' => ':count 개월', - 'm' => ':count 개월', - 'week' => ':count 주ì¼', - 'w' => ':count 주ì¼', - 'day' => ':count ì¼', - 'd' => ':count ì¼', - 'hour' => ':count 시간', - 'h' => ':count 시간', - 'minute' => ':count 분', - 'min' => ':count 분', - 'second' => ':count ì´ˆ', - 's' => ':count ì´ˆ', - 'ago' => ':time ì „', - 'from_now' => ':time 후', - 'after' => ':time ë’¤', - 'before' => ':time ì•ž', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lt.php b/vendor/nesbot/carbon/src/Carbon/Lang/lt.php deleted file mode 100644 index 3f2fd1ec..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lt.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count metus|:count metus|:count metų', - 'y' => ':count metus|:count metus|:count metų', - 'month' => ':count mÄ—nesį|:count mÄ—nesius|:count mÄ—nesių', - 'm' => ':count mÄ—nesį|:count mÄ—nesius|:count mÄ—nesių', - 'week' => ':count savaitÄ™|:count savaites|:count savaiÄių', - 'w' => ':count savaitÄ™|:count savaites|:count savaiÄių', - 'day' => ':count dienÄ…|:count dienas|:count dienų', - 'd' => ':count dienÄ…|:count dienas|:count dienų', - 'hour' => ':count valandÄ…|:count valandas|:count valandų', - 'h' => ':count valandÄ…|:count valandas|:count valandų', - 'minute' => ':count minutÄ™|:count minutes|:count minuÄių', - 'min' => ':count minutÄ™|:count minutes|:count minuÄių', - 'second' => ':count sekundÄ™|:count sekundes|:count sekundžių', - 's' => ':count sekundÄ™|:count sekundes|:count sekundžių', - 'second_from_now' => ':count sekundÄ—s|:count sekundžių|:count sekundžių', - 'minute_from_now' => ':count minutÄ—s|:count minuÄių|:count minuÄių', - 'hour_from_now' => ':count valandos|:count valandų|:count valandų', - 'day_from_now' => ':count dienos|:count dienų|:count dienų', - 'week_from_now' => ':count savaitÄ—s|:count savaiÄių|:count savaiÄių', - 'month_from_now' => ':count mÄ—nesio|:count mÄ—nesių|:count mÄ—nesių', - 'year_from_now' => ':count metų', - 'ago' => 'prieÅ¡ :time', - 'from_now' => 'už :time', - 'after' => 'po :time', - 'before' => ':time nuo dabar', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lv.php b/vendor/nesbot/carbon/src/Carbon/Lang/lv.php deleted file mode 100644 index 363193db..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/lv.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '0 gadiem|:count gada|:count gadiem', - 'y' => '0 gadiem|:count gada|:count gadiem', - 'month' => '0 mÄ“neÅ¡iem|:count mÄ“neÅ¡a|:count mÄ“neÅ¡iem', - 'm' => '0 mÄ“neÅ¡iem|:count mÄ“neÅ¡a|:count mÄ“neÅ¡iem', - 'week' => '0 nedēļÄm|:count nedēļas|:count nedēļÄm', - 'w' => '0 nedēļÄm|:count nedēļas|:count nedēļÄm', - 'day' => '0 dienÄm|:count dienas|:count dienÄm', - 'd' => '0 dienÄm|:count dienas|:count dienÄm', - 'hour' => '0 stundÄm|:count stundas|:count stundÄm', - 'h' => '0 stundÄm|:count stundas|:count stundÄm', - 'minute' => '0 minÅ«tÄ“m|:count minÅ«tes|:count minÅ«tÄ“m', - 'min' => '0 minÅ«tÄ“m|:count minÅ«tes|:count minÅ«tÄ“m', - 'second' => '0 sekundÄ“m|:count sekundes|:count sekundÄ“m', - 's' => '0 sekundÄ“m|:count sekundes|:count sekundÄ“m', - 'ago' => 'pirms :time', - 'from_now' => 'pÄ“c :time', - 'after' => ':time vÄ“lÄk', - 'before' => ':time pirms', - - 'year_after' => '0 gadus|:count gadu|:count gadus', - 'month_after' => '0 mÄ“neÅ¡us|:count mÄ“nesi|:count mÄ“neÅ¡us', - 'week_after' => '0 nedēļas|:count nedēļu|:count nedēļas', - 'day_after' => '0 dienas|:count dienu|:count dienas', - 'hour_after' => '0 stundas|:count stundu|:count stundas', - 'minute_after' => '0 minÅ«tes|:count minÅ«ti|:count minÅ«tes', - 'second_after' => '0 sekundes|:count sekundi|:count sekundes', - - 'year_before' => '0 gadus|:count gadu|:count gadus', - 'month_before' => '0 mÄ“neÅ¡us|:count mÄ“nesi|:count mÄ“neÅ¡us', - 'week_before' => '0 nedēļas|:count nedēļu|:count nedēļas', - 'day_before' => '0 dienas|:count dienu|:count dienas', - 'hour_before' => '0 stundas|:count stundu|:count stundas', - 'minute_before' => '0 minÅ«tes|:count minÅ«ti|:count minÅ«tes', - 'second_before' => '0 sekundes|:count sekundi|:count sekundes', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mk.php b/vendor/nesbot/carbon/src/Carbon/Lang/mk.php deleted file mode 100644 index 51e661d6..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/mk.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 година|:count години', - 'month' => '1 меÑец|:count меÑеци', - 'week' => '1 Ñедмица|:count Ñедмици', - 'day' => '1 ден|:count дена', - 'hour' => '1 чаÑ|:count чаÑа', - 'minute' => '1 минута|:count минути', - 'second' => '1 Ñекунда|:count Ñекунди', - 'ago' => 'пред :time', - 'from_now' => ':time од Ñега', - 'after' => 'по :time', - 'before' => 'пред :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ms.php b/vendor/nesbot/carbon/src/Carbon/Lang/ms.php deleted file mode 100644 index ef574228..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ms.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count tahun', - 'y' => ':count tahun', - 'month' => ':count bulan', - 'm' => ':count bulan', - 'week' => ':count minggu', - 'w' => ':count minggu', - 'day' => ':count hari', - 'd' => ':count hari', - 'hour' => ':count jam', - 'h' => ':count jam', - 'minute' => ':count minit', - 'min' => ':count minit', - 'second' => ':count saat', - 's' => ':count saat', - 'ago' => ':time yang lalu', - 'from_now' => ':time dari sekarang', - 'after' => ':time selepas', - 'before' => ':time sebelum', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl.php deleted file mode 100644 index a398ca9d..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/nl.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count jaar', - 'y' => ':count jaar', - 'month' => '1 maand|:count maanden', - 'm' => '1 maand|:count maanden', - 'week' => '1 week|:count weken', - 'w' => '1 week|:count weken', - 'day' => '1 dag|:count dagen', - 'd' => '1 dag|:count dagen', - 'hour' => ':count uur', - 'h' => ':count uur', - 'minute' => '1 minuut|:count minuten', - 'min' => '1 minuut|:count minuten', - 'second' => '1 seconde|:count seconden', - 's' => '1 seconde|:count seconden', - 'ago' => ':time geleden', - 'from_now' => 'over :time', - 'after' => ':time later', - 'before' => ':time eerder', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/no.php b/vendor/nesbot/carbon/src/Carbon/Lang/no.php deleted file mode 100644 index 178fbdcd..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/no.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 Ã¥r|:count Ã¥r', - 'y' => '1 Ã¥r|:count Ã¥r', - 'month' => '1 mÃ¥ned|:count mÃ¥neder', - 'm' => '1 mÃ¥ned|:count mÃ¥neder', - 'week' => '1 uke|:count uker', - 'w' => '1 uke|:count uker', - 'day' => '1 dag|:count dager', - 'd' => '1 dag|:count dager', - 'hour' => '1 time|:count timer', - 'h' => '1 time|:count timer', - 'minute' => '1 minutt|:count minutter', - 'min' => '1 minutt|:count minutter', - 'second' => '1 sekund|:count sekunder', - 's' => '1 sekund|:count sekunder', - 'ago' => ':time siden', - 'from_now' => 'om :time', - 'after' => ':time etter', - 'before' => ':time før', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pl.php b/vendor/nesbot/carbon/src/Carbon/Lang/pl.php deleted file mode 100644 index bca2d7fb..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pl.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 rok|:count lata|:count lat', - 'y' => '1 rok|:count lata|:count lat', - 'month' => '1 miesiÄ…c|:count miesiÄ…ce|:count miesiÄ™cy', - 'm' => '1 miesiÄ…c|:count miesiÄ…ce|:count miesiÄ™cy', - 'week' => '1 tydzieÅ„|:count tygodnie|:count tygodni', - 'w' => '1 tydzieÅ„|:count tygodnie|:count tygodni', - 'day' => '1 dzieÅ„|:count dni|:count dni', - 'd' => '1 dzieÅ„|:count dni|:count dni', - 'hour' => '1 godzina|:count godziny|:count godzin', - 'h' => '1 godzina|:count godziny|:count godzin', - 'minute' => '1 minuta|:count minuty|:count minut', - 'min' => '1 minuta|:count minuty|:count minut', - 'second' => '1 sekunda|:count sekundy|:count sekund', - 's' => '1 sekunda|:count sekundy|:count sekund', - 'ago' => ':time temu', - 'from_now' => ':time od teraz', - 'after' => ':time przed', - 'before' => ':time po', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt.php deleted file mode 100644 index f1706487..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pt.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 ano|:count anos', - 'y' => '1 ano|:count anos', - 'month' => '1 mês|:count meses', - 'm' => '1 mês|:count meses', - 'week' => '1 semana|:count semanas', - 'w' => '1 semana|:count semanas', - 'day' => '1 dia|:count dias', - 'd' => '1 dia|:count dias', - 'hour' => '1 hora|:count horas', - 'h' => '1 hora|:count horas', - 'minute' => '1 minuto|:count minutos', - 'min' => '1 minuto|:count minutos', - 'second' => '1 segundo|:count segundos', - 's' => '1 segundo|:count segundos', - 'ago' => ':time atrás', - 'from_now' => 'em :time', - 'after' => ':time depois', - 'before' => ':time antes', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php deleted file mode 100644 index f9cbdc7a..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 ano|:count anos', - 'y' => '1 ano|:count anos', - 'month' => '1 mês|:count meses', - 'm' => '1 mês|:count meses', - 'week' => '1 semana|:count semanas', - 'w' => '1 semana|:count semanas', - 'day' => '1 dia|:count dias', - 'd' => '1 dia|:count dias', - 'hour' => '1 hora|:count horas', - 'h' => '1 hora|:count horas', - 'minute' => '1 minuto|:count minutos', - 'min' => '1 minuto|:count minutos', - 'second' => '1 segundo|:count segundos', - 's' => '1 segundo|:count segundos', - 'ago' => 'há :time', - 'from_now' => 'em :time', - 'after' => 'após :time', - 'before' => ':time atrás', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ro.php b/vendor/nesbot/carbon/src/Carbon/Lang/ro.php deleted file mode 100644 index cc167240..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ro.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => 'un an|:count ani|:count ani', - 'y' => 'un an|:count ani|:count ani', - 'month' => 'o lună|:count luni|:count luni', - 'm' => 'o lună|:count luni|:count luni', - 'week' => 'o săptămână|:count săptămâni|:count săptămâni', - 'w' => 'o săptămână|:count săptămâni|:count săptămâni', - 'day' => 'o zi|:count zile|:count zile', - 'd' => 'o zi|:count zile|:count zile', - 'hour' => 'o oră|:count ore|:count ore', - 'h' => 'o oră|:count ore|:count ore', - 'minute' => 'un minut|:count minute|:count minute', - 'min' => 'un minut|:count minute|:count minute', - 'second' => 'o secundă|:count secunde|:count secunde', - 's' => 'o secundă|:count secunde|:count secunde', - 'ago' => 'acum :time', - 'from_now' => ':time de acum', - 'after' => 'peste :time', - 'before' => 'acum :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru.php deleted file mode 100644 index 680cbdcb..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ru.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count год|:count года|:count лет', - 'y' => ':count год|:count года|:count лет', - 'month' => ':count меÑÑц|:count меÑÑца|:count меÑÑцев', - 'm' => ':count меÑÑц|:count меÑÑца|:count меÑÑцев', - 'week' => ':count неделю|:count недели|:count недель', - 'w' => ':count неделю|:count недели|:count недель', - 'day' => ':count день|:count днÑ|:count дней', - 'd' => ':count день|:count днÑ|:count дней', - 'hour' => ':count чаÑ|:count чаÑа|:count чаÑов', - 'h' => ':count чаÑ|:count чаÑа|:count чаÑов', - 'minute' => ':count минуту|:count минуты|:count минут', - 'min' => ':count минуту|:count минуты|:count минут', - 'second' => ':count Ñекунду|:count Ñекунды|:count Ñекунд', - 's' => ':count Ñекунду|:count Ñекунды|:count Ñекунд', - 'ago' => ':time назад', - 'from_now' => 'через :time', - 'after' => ':time поÑле', - 'before' => ':time до', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sk.php b/vendor/nesbot/carbon/src/Carbon/Lang/sk.php deleted file mode 100644 index 45c8f76d..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sk.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => 'rok|:count roky|:count rokov', - 'y' => 'rok|:count roky|:count rokov', - 'month' => 'mesiac|:count mesiace|:count mesiacov', - 'm' => 'mesiac|:count mesiace|:count mesiacov', - 'week' => 'týždeň|:count týždne|:count týždňov', - 'w' => 'týždeň|:count týždne|:count týždňov', - 'day' => 'deň|:count dni|:count dní', - 'd' => 'deň|:count dni|:count dní', - 'hour' => 'hodinu|:count hodiny|:count hodín', - 'h' => 'hodinu|:count hodiny|:count hodín', - 'minute' => 'minútu|:count minúty|:count minút', - 'min' => 'minútu|:count minúty|:count minút', - 'second' => 'sekundu|:count sekundy|:count sekúnd', - 's' => 'sekundu|:count sekundy|:count sekúnd', - 'ago' => 'pred :time', - 'from_now' => 'za :time', - 'after' => ':time neskôr', - 'before' => ':time predtým', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sl.php b/vendor/nesbot/carbon/src/Carbon/Lang/sl.php deleted file mode 100644 index fcef085e..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sl.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count leto|:count leti|:count leta|:count let', - 'y' => ':count leto|:count leti|:count leta|:count let', - 'month' => ':count mesec|:count meseca|:count mesece|:count mesecev', - 'm' => ':count mesec|:count meseca|:count mesece|:count mesecev', - 'week' => ':count teden|:count tedna|:count tedne|:count tednov', - 'w' => ':count teden|:count tedna|:count tedne|:count tednov', - 'day' => ':count dan|:count dni|:count dni|:count dni', - 'd' => ':count dan|:count dni|:count dni|:count dni', - 'hour' => ':count uro|:count uri|:count ure|:count ur', - 'h' => ':count uro|:count uri|:count ure|:count ur', - 'minute' => ':count minuto|:count minuti|:count minute|:count minut', - 'min' => ':count minuto|:count minuti|:count minute|:count minut', - 'second' => ':count sekundo|:count sekundi|:count sekunde|:count sekund', - 's' => ':count sekundo|:count sekundi|:count sekunde|:count sekund', - 'year_ago' => ':count letom|:count leti|:count leti|:count leti', - 'month_ago' => ':count mesecem|:count meseci|:count meseci|:count meseci', - 'week_ago' => ':count tednom|:count tednoma|:count tedni|:count tedni', - 'day_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi', - 'hour_ago' => ':count uro|:count urama|:count urami|:count urami', - 'minute_ago' => ':count minuto|:count minutama|:count minutami|:count minutami', - 'second_ago' => ':count sekundo|:count sekundama|:count sekundami|:count sekundami', - 'ago' => 'pred :time', - 'from_now' => 'Äez :time', - 'after' => 'Äez :time', - 'before' => 'pred :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sq.php b/vendor/nesbot/carbon/src/Carbon/Lang/sq.php deleted file mode 100644 index 41be2513..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sq.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 vit|:count vjet', - 'y' => '1 vit|:count vjet', - 'month' => '1 muaj|:count muaj', - 'm' => '1 muaj|:count muaj', - 'week' => '1 javë|:count javë', - 'w' => '1 javë|:count javë', - 'day' => '1 ditë|:count ditë', - 'd' => '1 ditë|:count ditë', - 'hour' => '1 orë|:count orë', - 'h' => '1 orë|:count orë', - 'minute' => '1 minutë|:count minuta', - 'min' => '1 minutë|:count minuta', - 'second' => '1 sekondë|:count sekonda', - 's' => '1 sekondë|:count sekonda', - 'ago' => ':time më parë', - 'from_now' => ':time nga tani', - 'after' => ':time pas', - 'before' => ':time para', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr.php deleted file mode 100644 index 70915a27..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sr.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count godina|:count godine|:count godina', - 'y' => ':count godina|:count godine|:count godina', - 'month' => ':count mesec|:count meseca|:count meseci', - 'm' => ':count mesec|:count meseca|:count meseci', - 'week' => ':count nedelja|:count nedelje|:count nedelja', - 'w' => ':count nedelja|:count nedelje|:count nedelja', - 'day' => ':count dan|:count dana|:count dana', - 'd' => ':count dan|:count dana|:count dana', - 'hour' => ':count sat|:count sata|:count sati', - 'h' => ':count sat|:count sata|:count sati', - 'minute' => ':count minut|:count minuta |:count minuta', - 'min' => ':count minut|:count minuta |:count minuta', - 'second' => ':count sekund|:count sekunde|:count sekunde', - 's' => ':count sekund|:count sekunde|:count sekunde', - 'ago' => 'pre :time', - 'from_now' => ':time od sada', - 'after' => 'nakon :time', - 'before' => 'pre :time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php deleted file mode 100644 index 9b67838a..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[ :count година', - 'y' => ':count г.', - 'month' => '{1} :count мјеÑец|{2,3,4}:count мјеÑеца|[5,Inf[ :count мјеÑеци', - 'm' => ':count мј.', - 'week' => '{1} :count недјеља|{2,3,4}:count недјеље|[5,Inf[ :count недјеља', - 'w' => ':count нед.', - 'day' => '{1,21,31} :count дан|[2,Inf[ :count дана', - 'd' => ':count д.', - 'hour' => '{1,21} :count Ñат|{2,3,4,22,23,24}:count Ñата|[5,Inf[ :count Ñати', - 'h' => ':count ч.', - 'minute' => '{1,21,31,41,51} :count минут|[2,Inf[ :count минута', - 'min' => ':count мин.', - 'second' => '{1,21,31,41,51} :count Ñекунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count Ñекунде|[5,Inf[:count Ñекунди', - 's' => ':count Ñек.', - 'ago' => 'прије :time', - 'from_now' => 'за :time', - 'after' => ':time након', - 'before' => ':time прије', - - 'year_from_now' => '{1,21,31,41,51} :count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count године|[5,Inf[ :count година', - 'year_ago' => '{1,21,31,41,51} :count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count године|[5,Inf[ :count година', - - 'week_from_now' => '{1} :count недјељу|{2,3,4} :count недјеље|[5,Inf[ :count недјеља', - 'week_ago' => '{1} :count недјељу|{2,3,4} :count недјеље|[5,Inf[ :count недјеља', - -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php deleted file mode 100644 index d0aaee37..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count godine|[0,Inf[ :count godina', - 'y' => ':count g.', - 'month' => '{1} :count mjesec|{2,3,4}:count mjeseca|[5,Inf[ :count mjeseci', - 'm' => ':count mj.', - 'week' => '{1} :count nedjelja|{2,3,4}:count nedjelje|[5,Inf[ :count nedjelja', - 'w' => ':count ned.', - 'day' => '{1,21,31} :count dan|[2,Inf[ :count dana', - 'd' => ':count d.', - 'hour' => '{1,21} :count sat|{2,3,4,22,23,24}:count sata|[5,Inf[ :count sati', - 'h' => ':count Ä.', - 'minute' => '{1,21,31,41,51} :count minut|[2,Inf[ :count minuta', - 'min' => ':count min.', - 'second' => '{1,21,31,41,51} :count sekund|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count sekunde|[5,Inf[:count sekundi', - 's' => ':count sek.', - 'ago' => 'prije :time', - 'from_now' => 'za :time', - 'after' => ':time nakon', - 'before' => ':time prije', - - 'year_from_now' => '{1,21,31,41,51} :count godinu|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count godine|[5,Inf[ :count godina', - 'year_ago' => '{1,21,31,41,51} :count godinu|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count godine|[5,Inf[ :count godina', - - 'week_from_now' => '{1} :count nedjelju|{2,3,4} :count nedjelje|[5,Inf[ :count nedjelja', - 'week_ago' => '{1} :count nedjelju|{2,3,4} :count nedjelje|[5,Inf[ :count nedjelja', - -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php deleted file mode 100644 index d0aaee37..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count godine|[0,Inf[ :count godina', - 'y' => ':count g.', - 'month' => '{1} :count mjesec|{2,3,4}:count mjeseca|[5,Inf[ :count mjeseci', - 'm' => ':count mj.', - 'week' => '{1} :count nedjelja|{2,3,4}:count nedjelje|[5,Inf[ :count nedjelja', - 'w' => ':count ned.', - 'day' => '{1,21,31} :count dan|[2,Inf[ :count dana', - 'd' => ':count d.', - 'hour' => '{1,21} :count sat|{2,3,4,22,23,24}:count sata|[5,Inf[ :count sati', - 'h' => ':count Ä.', - 'minute' => '{1,21,31,41,51} :count minut|[2,Inf[ :count minuta', - 'min' => ':count min.', - 'second' => '{1,21,31,41,51} :count sekund|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count sekunde|[5,Inf[:count sekundi', - 's' => ':count sek.', - 'ago' => 'prije :time', - 'from_now' => 'za :time', - 'after' => ':time nakon', - 'before' => ':time prije', - - 'year_from_now' => '{1,21,31,41,51} :count godinu|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count godine|[5,Inf[ :count godina', - 'year_ago' => '{1,21,31,41,51} :count godinu|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count godine|[5,Inf[ :count godina', - - 'week_from_now' => '{1} :count nedjelju|{2,3,4} :count nedjelje|[5,Inf[ :count nedjelja', - 'week_ago' => '{1} :count nedjelju|{2,3,4} :count nedjelje|[5,Inf[ :count nedjelja', - -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sv.php b/vendor/nesbot/carbon/src/Carbon/Lang/sv.php deleted file mode 100644 index 6bebf7b8..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/sv.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 Ã¥r|:count Ã¥r', - 'y' => '1 Ã¥r|:count Ã¥r', - 'month' => '1 mÃ¥nad|:count mÃ¥nader', - 'm' => '1 mÃ¥nad|:count mÃ¥nader', - 'week' => '1 vecka|:count veckor', - 'w' => '1 vecka|:count veckor', - 'day' => '1 dag|:count dagar', - 'd' => '1 dag|:count dagar', - 'hour' => '1 timme|:count timmar', - 'h' => '1 timme|:count timmar', - 'minute' => '1 minut|:count minuter', - 'min' => '1 minut|:count minuter', - 'second' => '1 sekund|:count sekunder', - 's' => '1 sekund|:count sekunder', - 'ago' => ':time sedan', - 'from_now' => 'om :time', - 'after' => ':time efter', - 'before' => ':time före', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/th.php b/vendor/nesbot/carbon/src/Carbon/Lang/th.php deleted file mode 100644 index c4c402ef..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/th.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => '1 ปี|:count ปี', - 'y' => '1 ปี|:count ปี', - 'month' => '1 เดือน|:count เดือน', - 'm' => '1 เดือน|:count เดือน', - 'week' => '1 สัปดาห์|:count สัปดาห์', - 'w' => '1 สัปดาห์|:count สัปดาห์', - 'day' => '1 วัน|:count วัน', - 'd' => '1 วัน|:count วัน', - 'hour' => '1 ชั่วโมง|:count ชั่วโมง', - 'h' => '1 ชั่วโมง|:count ชั่วโมง', - 'minute' => '1 นาที|:count นาที', - 'min' => '1 นาที|:count นาที', - 'second' => '1 วินาที|:count วินาที', - 's' => '1 วินาที|:count วินาที', - 'ago' => ':time ที่à¹à¸¥à¹‰à¸§', - 'from_now' => ':time จาà¸à¸™à¸µà¹‰', - 'after' => 'หลัง:time', - 'before' => 'à¸à¹ˆà¸­à¸™:time', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tr.php b/vendor/nesbot/carbon/src/Carbon/Lang/tr.php deleted file mode 100644 index 6a9dfed8..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/tr.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count yıl', - 'y' => ':count yıl', - 'month' => ':count ay', - 'm' => ':count ay', - 'week' => ':count hafta', - 'w' => ':count hafta', - 'day' => ':count gün', - 'd' => ':count gün', - 'hour' => ':count saat', - 'h' => ':count saat', - 'minute' => ':count dakika', - 'min' => ':count dakika', - 'second' => ':count saniye', - 's' => ':count saniye', - 'ago' => ':time önce', - 'from_now' => ':time sonra', - 'after' => ':time sonra', - 'before' => ':time önce', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uk.php b/vendor/nesbot/carbon/src/Carbon/Lang/uk.php deleted file mode 100644 index aeebca3d..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/uk.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count рік|:count роки|:count років', - 'y' => ':count рік|:count роки|:count років', - 'month' => ':count міÑÑць|:count міÑÑці|:count міÑÑців', - 'm' => ':count міÑÑць|:count міÑÑці|:count міÑÑців', - 'week' => ':count тиждень|:count тижні|:count тижнів', - 'w' => ':count тиждень|:count тижні|:count тижнів', - 'day' => ':count день|:count дні|:count днів', - 'd' => ':count день|:count дні|:count днів', - 'hour' => ':count година|:count години|:count годин', - 'h' => ':count година|:count години|:count годин', - 'minute' => ':count хвилину|:count хвилини|:count хвилин', - 'min' => ':count хвилину|:count хвилини|:count хвилин', - 'second' => ':count Ñекунду|:count Ñекунди|:count Ñекунд', - 's' => ':count Ñекунду|:count Ñекунди|:count Ñекунд', - 'ago' => ':time назад', - 'from_now' => 'через :time', - 'after' => ':time піÑлÑ', - 'before' => ':time до', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ur.php b/vendor/nesbot/carbon/src/Carbon/Lang/ur.php deleted file mode 100644 index 3c5f7ed9..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/ur.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count سال', - 'month' => ':count ماه', - 'week' => ':count ÛÙتے', - 'day' => ':count روز', - 'hour' => ':count گھنٹے', - 'minute' => ':count منٹ', - 'second' => ':count سیکنڈ', - 'ago' => ':time Ù¾ÛÙ„Û’', - 'from_now' => ':time بعد', - 'after' => ':time بعد', - 'before' => ':time Ù¾ÛÙ„Û’', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz.php deleted file mode 100644 index c997f29d..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/uz.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count yil|:count yil|:count yil', - 'y' => ':count yil|:count yil|:count yil', - 'month' => ':count oy|:count oy|:count oylar', - 'm' => ':count oy|:count oy|:count oylar', - 'week' => ':count hafta|:count hafta|:count hafta', - 'w' => ':count hafta|:count hafta|:count hafta', - 'day' => ':count kun|:count kun|:count kun', - 'd' => ':count kun|:count kun|:count kun', - 'hour' => ':count soat|:count soat|:count soat', - 'h' => ':count soat|:count soat|:count soat', - 'minute' => ':count minut|:count minut|:count minut', - 'min' => ':count minut|:count minut|:count minut', - 'second' => ':count sekund|:count sekund|:count sekund', - 's' => ':count sekund|:count sekund|:count sekund', - 'ago' => ':time avval', - 'from_now' => ':time keyin', - 'after' => ':time keyin', - 'before' => ':time oldin', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vi.php b/vendor/nesbot/carbon/src/Carbon/Lang/vi.php deleted file mode 100644 index 3f9838d6..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/vi.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count năm', - 'y' => ':count năm', - 'month' => ':count tháng', - 'm' => ':count tháng', - 'week' => ':count tuần', - 'w' => ':count tuần', - 'day' => ':count ngày', - 'd' => ':count ngày', - 'hour' => ':count giá»', - 'h' => ':count giá»', - 'minute' => ':count phút', - 'min' => ':count phút', - 'second' => ':count giây', - 's' => ':count giây', - 'ago' => ':time trÆ°á»›c', - 'from_now' => ':time từ bây giá»', - 'after' => ':time sau', - 'before' => ':time trÆ°á»›c', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh.php deleted file mode 100644 index 9e1f6cad..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zh.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':countå¹´', - 'y' => ':countå¹´', - 'month' => ':count个月', - 'm' => ':count个月', - 'week' => ':count周', - 'w' => ':count周', - 'day' => ':count天', - 'd' => ':count天', - 'hour' => ':countå°æ—¶', - 'h' => ':countå°æ—¶', - 'minute' => ':count分钟', - 'min' => ':count分钟', - 'second' => ':count秒', - 's' => ':count秒', - 'ago' => ':timeå‰', - 'from_now' => 'è·çŽ°åœ¨:time', - 'after' => ':timeåŽ', - 'before' => ':timeå‰', -); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php deleted file mode 100644 index 6c1d417f..00000000 --- a/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -return array( - 'year' => ':count å¹´', - 'y' => ':count å¹´', - 'month' => ':count 月', - 'm' => ':count 月', - 'week' => ':count 周', - 'w' => ':count 周', - 'day' => ':count 天', - 'd' => ':count 天', - 'hour' => ':count å°æ™‚', - 'h' => ':count å°æ™‚', - 'minute' => ':count 分é˜', - 'min' => ':count 分é˜', - 'second' => ':count 秒', - 's' => ':count 秒', - 'ago' => ':timeå‰', - 'from_now' => 'è·ç¾åœ¨ :time', - 'after' => ':time後', - 'before' => ':timeå‰', -); diff --git a/vendor/nikic/php-parser/.gitignore b/vendor/nikic/php-parser/.gitignore deleted file mode 100644 index 8c7db2a6..00000000 --- a/vendor/nikic/php-parser/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -vendor/ -composer.lock -grammar/kmyacc.exe -grammar/y.output diff --git a/vendor/nikic/php-parser/.travis.yml b/vendor/nikic/php-parser/.travis.yml deleted file mode 100644 index 9cd00253..00000000 --- a/vendor/nikic/php-parser/.travis.yml +++ /dev/null @@ -1,31 +0,0 @@ -language: php -dist: trusty -sudo: false - -cache: - directories: - - $HOME/.composer/cache - -php: - - 5.5 - - 5.6 - - 7.0 - - nightly - - hhvm - -install: - - if [ $TRAVIS_PHP_VERSION = '5.6' ]; then composer require satooshi/php-coveralls '~1.0'; fi - - composer install --prefer-dist - -matrix: - allow_failures: - - php: nightly - fast_finish: true - -script: - - if [ $TRAVIS_PHP_VERSION = '5.6' ]; then vendor/bin/phpunit --coverage-clover build/logs/clover.xml; else vendor/bin/phpunit; fi - - if [ $TRAVIS_PHP_VERSION = '7.0' ]; then test_old/run-php-src.sh; fi - -after_success: - if [ $TRAVIS_PHP_VERSION = '5.6' ]; then php vendor/bin/coveralls; fi - diff --git a/vendor/nikic/php-parser/CHANGELOG.md b/vendor/nikic/php-parser/CHANGELOG.md deleted file mode 100644 index dcec1ff3..00000000 --- a/vendor/nikic/php-parser/CHANGELOG.md +++ /dev/null @@ -1,414 +0,0 @@ -Version 3.1.5-dev ------------------ - -Nothing yet. - -Version 3.1.4 (2018-01-25) --------------------------- - -### Fixed - -* Fixed pretty printing of `-(-$x)` and `+(+$x)`. (#459) - -Version 3.1.3 (2017-12-26) --------------------------- - -### Fixed - -* Improve compatibility with php-scoper, by supporting prefixed namespaces in - `NodeAbstract::getType()`. - -Version 3.1.2 (2017-11-04) --------------------------- - -### Fixed - -* Comments on empty blocks are now preserved on a `Stmt\Nop` node. (#382) - -### Added - -* Added `kind` attribute for `Stmt\Namespace_` node, which is one of `KIND_SEMICOLON` or - `KIND_BRACED`. (#417) -* Added `setDocComment()` method to namespace builder. (#437) - -Version 3.1.1 (2017-09-02) --------------------------- - -### Fixed - -* Fixed syntax error on comment after brace-style namespace declaration. (#412) -* Added support for TraitUse statements in trait builder. (#413) - -Version 3.1.0 (2017-07-28) --------------------------- - -### Added - -* [PHP 7.2] Added support for trailing comma in group use statements. -* [PHP 7.2] Added support for `object` type. This means `object` types will now be represented as a - builtin type (a simple `"object"` string), rather than a class `Name`. - -### Fixed - -* Floating-point numbers are now printed correctly if the LC_NUMERIC locale uses a comma as decimal - separator. - -### Changed - -* `Name::$parts` is no longer deprecated. - -Version 3.0.6 (2017-06-28) --------------------------- - -### Fixed - -* Fixed the spelling of `Class_::VISIBILITY_MODIFIER_MASK`. The previous spelling of - `Class_::VISIBILITY_MODIFER_MASK` is preserved for backwards compatibility. -* The pretty printing will now preserve comments inside array literals and function calls by - printing the array items / function arguments on separate lines. Array literals and functions that - do not contain comments are not affected. - -### Added - -* Added `Builder\Param::makeVariadic()`. - -### Deprecated - -* The `Node::setLine()` method has been deprecated. - -Version 3.0.5 (2017-03-05) --------------------------- - -### Fixed - -* Name resolution of `NullableType`s is now performed earlier, so that a fully resolved signature is - available when a function is entered. (#360) -* `Error` nodes are now considered empty, while previously they extended until the token where the - error occurred. This made some nodes larger than expected. (#359) -* Fixed notices being thrown during error recovery in some situations. (#362) - -Version 3.0.4 (2017-02-10) --------------------------- - -### Fixed - -* Fixed some extensibility issues in pretty printer (`pUseType()` is now public and `pPrec()` calls - into `p()`, instead of directly dispatching to the type-specific printing method). -* Fixed notice in `bin/php-parse` script. - -### Added - -* Error recovery from missing semicolons is now supported in more cases. -* Error recovery from trailing commas in positions where PHP does not support them is now supported. - -Version 3.0.3 (2017-02-03) --------------------------- - -### Fixed - -* In `"$foo[0]"` the `0` is now parsed as an `LNumber` rather than `String`. (#325) -* Ensure integers and floats are always pretty printed preserving semantics, even if the particular - value can only be manually constructed. -* Throw a `LogicException` when trying to pretty-print an `Error` node. Previously this resulted in - an undefined method exception or fatal error. - -### Added - -* [PHP 7.1] Added support for negative interpolated offsets: `"$foo[-1]"` -* Added `preserveOriginalNames` option to `NameResolver`. If this option is enabled, an - `originalName` attribute, containing the unresolved name, will be added to each resolved name. -* Added `php-parse --with-positions` option, which dumps nodes with position information. - -### Deprecated - -* The XML serializer has been deprecated. In particular, the classes `Serializer\XML`, - `Unserializer\XML`, as well as the interfaces `Serializer` and `Unserializer` are deprecated. - -Version 3.0.2 (2016-12-06) --------------------------- - -### Fixed - -* Fixed name resolution of nullable types. (#324) -* Fixed pretty-printing of nullable types. - -Version 3.0.1 (2016-12-01) --------------------------- - -### Fixed - -* Fixed handling of nested `list()`s: If the nested list was unkeyed, it was directly included in - the list items. If it was keyed, it was wrapped in `ArrayItem`. Now nested `List_` nodes are - always wrapped in `ArrayItem`s. (#321) - -Version 3.0.0 (2016-11-30) --------------------------- - -### Added - -* Added support for dumping node positions in the NodeDumper through the `dumpPositions` option. -* Added error recovery support for `$`, `new`, `Foo::`. - -Version 3.0.0-beta2 (2016-10-29) --------------------------------- - -This release primarily improves our support for error recovery. - -### Added - -* Added `Node::setDocComment()` method. -* Added `Error::getMessageWithColumnInfo()` method. -* Added support for recovery from lexer errors. -* Added support for recovering from "special" errors (i.e. non-syntax parse errors). -* Added precise location information for lexer errors. -* Added `ErrorHandler` interface, and `ErrorHandler\Throwing` and `ErrorHandler\Collecting` as - specific implementations. These provide a general mechanism for handling error recovery. -* Added optional `ErrorHandler` argument to `Parser::parse()`, `Lexer::startLexing()` and - `NameResolver::__construct()`. -* The `NameResolver` now adds a `namespacedName` attribute on name nodes that cannot be statically - resolved (unqualified unaliased function or constant names in namespaces). - -### Fixed - -* Fixed attribute assignment for `GroupUse` prefix and variables in interpolated strings. - -### Changed - -* The constants on `NameTraverserInterface` have been moved into the `NameTraverser` class. -* Due to the error handling changes, the `Parser` interface and `Lexer` API have changed. -* The emulative lexer now directly postprocesses tokens, instead of using `~__EMU__~` sequences. - This changes the protected API of the lexer. -* The `Name::slice()` method now returns `null` for empty slices, previously `new Name([])` was - used. `Name::concat()` now also supports concatenation with `null`. - -### Removed - -* Removed `Name::append()` and `Name::prepend()`. These mutable methods have been superseded by - the immutable `Name::concat()`. -* Removed `Error::getRawLine()` and `Error::setRawLine()`. These methods have been superseded by - `Error::getStartLine()` and `Error::setStartLine()`. -* Removed support for node cloning in the `NodeTraverser`. -* Removed `$separator` argument from `Name::toString()`. -* Removed `throw_on_error` parser option and `Parser::getErrors()` method. Use the `ErrorHandler` - mechanism instead. - -Version 3.0.0-beta1 (2016-09-16) --------------------------------- - -### Added - -* [7.1] Function/method and parameter builders now support PHP 7.1 type hints (void, iterable and - nullable types). -* Nodes and Comments now implement `JsonSerializable`. The node kind is stored in a `nodeType` - property. -* The `InlineHTML` node now has an `hasLeadingNewline` attribute, that specifies whether the - preceding closing tag contained a newline. The pretty printer honors this attribute. -* Partial parsing of `$obj->` (with missing property name) is now supported in error recovery mode. -* The error recovery mode is now exposed in the `php-parse` script through the `--with-recovery` - or `-r` flags. - -The following changes are also part of PHP-Parser 2.1.1: - -* The PHP 7 parser will now generate a parse error for `$var =& new Obj` assignments. -* Comments on free-standing code blocks will now be retained as comments on the first statement in - the code block. - -Version 3.0.0-alpha1 (2016-07-25) ---------------------------------- - -### Added - -* [7.1] Added support for `void` and `iterable` types. These will now be represented as strings - (instead of `Name` instances) similar to other builtin types. -* [7.1] Added support for class constant visibility. The `ClassConst` node now has a `flags` subnode - holding the visibility modifier, as well as `isPublic()`, `isProtected()` and `isPrivate()` - methods. The constructor changed to accept the additional subnode. -* [7.1] Added support for nullable types. These are represented using a new `NullableType` node - with a single `type` subnode. -* [7.1] Added support for short array destructuring syntax. This means that `Array` nodes may now - appear as the left-hand-side of assignments and foreach value targets. Additionally the array - items may now contain `null` values if elements are skipped. -* [7.1] Added support for keys in list() destructuring. The `List` subnode `vars` has been renamed - to `items` and now contains `ArrayItem`s instead of plain variables. -* [7.1] Added support for multi-catch. The `Catch` subnode `type` has been renamed to `types` and - is now an array of `Name`s. -* `Name::slice()` now supports lengths and negative offsets. This brings it in line with - `array_slice()` functionality. - -### Changed - -Due to PHP 7.1 support additions described above, the node structure changed as follows: - -* `void` and `iterable` types are now stored as strings if the PHP 7 parser is used. -* The `ClassConst` constructor changed to accept an additional `flags` subnode. -* The `Array` subnode `items` may now contain `null` elements (destructuring). -* The `List` subnode `vars` has been renamed to `items` and now contains `ArrayItem`s instead of - plain variables. -* The `Catch` subnode `type` has been renamed to `types` and is now an array of `Name`s. - -Additionally the following changes were made: - -* The `type` subnode on `Class`, `ClassMethod` and `Property` has been renamed to `flags`. The - `type` subnode has retained for backwards compatibility and is populated to the same value as - `flags`. However, writes to `type` will not update `flags`. -* The `TryCatch` subnode `finallyStmts` has been replaced with a `finally` subnode that holds an - explicit `Finally` node. This allows for more accurate attribute assignment. -* The `Trait` constructor now has the same form as the `Class` and `Interface` constructors: It - takes an array of subnodes. Unlike classes/interfaces, traits can only have a `stmts` subnode. -* The `NodeDumper` now prints class/method/property/constant modifiers, as well as the include and - use type in a textual representation, instead of only showing the number. -* All methods on `PrettyPrinter\Standard` are now protected. Previoulsy most of them were public. - -### Removed - -* Removed support for running on PHP 5.4. It is however still possible to parse PHP 5.2-5.4 code - while running on a newer version. -* The deprecated `Comment::setLine()` and `Comment::setText()` methods have been removed. -* The deprecated `Name::set()`, `Name::setFirst()` and `Name::setLast()` methods have been removed. - -Version 2.1.1 (2016-09-16) --------------------------- - -### Changed - -* The pretty printer will now escape all control characters in the range `\x00-\x1F` inside double - quoted strings. If no special escape sequence is available, an octal escape will be used. -* The quality of the error recovery has been improved. In particular unterminated expressions should - be handled more gracefully. -* The PHP 7 parser will now generate a parse error for `$var =& new Obj` assignments. -* Comments on free-standing code blocks will no be retained as comments on the first statement in - the code block. - -Version 2.1.0 (2016-04-19) --------------------------- - -### Fixed - -* Properly support `B""` strings (with uppercase `B`) in a number of places. -* Fixed reformatting of indented parts in a certain non-standard comment style. - -### Added - -* Added `dumpComments` option to node dumper, to enable dumping of comments associated with nodes. -* Added `Stmt\Nop` node, that is used to collect comments located at the end of a block or at the - end of a file (without a following node with which they could otherwise be associated). -* Added `kind` attribute to `Expr\Exit` to distinguish between `exit` and `die`. -* Added `kind` attribute to `Scalar\LNumber` to distinguish between decimal, binary, octal and - hexadecimal numbers. -* Added `kind` attribtue to `Expr\Array` to distinguish between `array()` and `[]`. -* Added `kind` attribute to `Scalar\String` and `Scalar\Encapsed` to distinguish between - single-quoted, double-quoted, heredoc and nowdoc string. -* Added `docLabel` attribute to `Scalar\String` and `Scalar\Encapsed`, if it is a heredoc or - nowdoc string. -* Added start file offset information to `Comment` nodes. -* Added `setReturnType()` method to function and method builders. -* Added `-h` and `--help` options to `php-parse` script. - -### Changed - -* Invalid octal literals now throw a parse error in PHP 7 mode. -* The pretty printer takes all the new attributes mentioned in the previous section into account. -* The protected `AbstractPrettyPrinter::pComments()` method no longer returns a trailing newline. -* The bundled autoloader supports library files being stored in a different directory than - `PhpParser` for easier downstream distribution. - -### Deprecated - -* The `Comment::setLine()` and `Comment::setText()` methods have been deprecated. Construct new - objects instead. - -### Removed - -* The internal (but public) method `Scalar\LNumber::parse()` has been removed. A non-internal - `LNumber::fromString()` method has been added instead. - -Version 2.0.1 (2016-02-28) --------------------------- - -### Fixed - -* `declare() {}` and `declare();` are not semantically equivalent and will now result in different - ASTs. The format case will have an empty `stmts` array, while the latter will set `stmts` to - `null`. -* Magic constants are now supported as semi-reserved keywords. -* A shebang line like `#!/usr/bin/env php` is now allowed at the start of a namespaced file. - Previously this generated an exception. -* The `prettyPrintFile()` method will not strip a trailing `?>` from the raw data that follows a - `__halt_compiler()` statement. -* The `prettyPrintFile()` method will not strip an opening `slice()` which takes a subslice of a name. - -### Changed - -* `PhpParser\Parser` is now an interface, implemented by `Parser\Php5`, `Parser\Php7` and - `Parser\Multiple`. The `Multiple` parser will try multiple parsers, until one succeeds. -* Token constants are now defined on `PhpParser\Parser\Tokens` rather than `PhpParser\Parser`. -* The `Name->set()`, `Name->append()`, `Name->prepend()` and `Name->setFirst()` methods are - deprecated in favor of `Name::concat()` and `Name->slice()`. -* The `NodeTraverser` no longer clones nodes by default. The old behavior can be restored by - passing `true` to the constructor. -* The constructor for `Scalar` nodes no longer has a default value. E.g. `new LNumber()` should now - be written as `new LNumber(0)`. - ---- - -**This changelog only includes changes from the 2.0 series. For older changes see the -[1.x series changelog](https://github.com/nikic/PHP-Parser/blob/1.x/CHANGELOG.md) and the -[0.9 series changelog](https://github.com/nikic/PHP-Parser/blob/0.9/CHANGELOG.md).** \ No newline at end of file diff --git a/vendor/nikic/php-parser/LICENSE b/vendor/nikic/php-parser/LICENSE deleted file mode 100644 index 920cc5b1..00000000 --- a/vendor/nikic/php-parser/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -Copyright (c) 2011-2018 by Nikita Popov. - -Some rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * The names of the contributors may not be used to endorse or - promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/nikic/php-parser/README.md b/vendor/nikic/php-parser/README.md deleted file mode 100644 index 2f62754c..00000000 --- a/vendor/nikic/php-parser/README.md +++ /dev/null @@ -1,99 +0,0 @@ -PHP Parser -========== - -[![Build Status](https://travis-ci.org/nikic/PHP-Parser.svg?branch=master)](https://travis-ci.org/nikic/PHP-Parser) [![Coverage Status](https://coveralls.io/repos/github/nikic/PHP-Parser/badge.svg?branch=master)](https://coveralls.io/github/nikic/PHP-Parser?branch=master) - -This is a PHP 5.2 to PHP 7.1 parser written in PHP. Its purpose is to simplify static code analysis and -manipulation. - -[**Documentation for version 3.x**][doc_master] (stable; for running on PHP >= 5.5; for parsing PHP 5.2 to PHP 7.1). - -[Documentation for version 2.x][doc_2_x] (stable; for running on PHP >= 5.4; for parsing PHP 5.2 to PHP 7.0). - -[Documentation for version 1.x][doc_1_x] (unsupported; for running on PHP >= 5.3; for parsing PHP 5.2 to PHP 5.6). - -In a Nutshell -------------- - -The parser turns PHP source code into an abstract syntax tree. For example, if you pass the following code into the -parser: - -```php - Expr_AssignOp_BitwiseAnd -Expr_AssignBitwiseOr => Expr_AssignOp_BitwiseOr -Expr_AssignBitwiseXor => Expr_AssignOp_BitwiseXor -Expr_AssignConcat => Expr_AssignOp_Concat -Expr_AssignDiv => Expr_AssignOp_Div -Expr_AssignMinus => Expr_AssignOp_Minus -Expr_AssignMod => Expr_AssignOp_Mod -Expr_AssignMul => Expr_AssignOp_Mul -Expr_AssignPlus => Expr_AssignOp_Plus -Expr_AssignShiftLeft => Expr_AssignOp_ShiftLeft -Expr_AssignShiftRight => Expr_AssignOp_ShiftRight - -Expr_BitwiseAnd => Expr_BinaryOp_BitwiseAnd -Expr_BitwiseOr => Expr_BinaryOp_BitwiseOr -Expr_BitwiseXor => Expr_BinaryOp_BitwiseXor -Expr_BooleanAnd => Expr_BinaryOp_BooleanAnd -Expr_BooleanOr => Expr_BinaryOp_BooleanOr -Expr_Concat => Expr_BinaryOp_Concat -Expr_Div => Expr_BinaryOp_Div -Expr_Equal => Expr_BinaryOp_Equal -Expr_Greater => Expr_BinaryOp_Greater -Expr_GreaterOrEqual => Expr_BinaryOp_GreaterOrEqual -Expr_Identical => Expr_BinaryOp_Identical -Expr_LogicalAnd => Expr_BinaryOp_LogicalAnd -Expr_LogicalOr => Expr_BinaryOp_LogicalOr -Expr_LogicalXor => Expr_BinaryOp_LogicalXor -Expr_Minus => Expr_BinaryOp_Minus -Expr_Mod => Expr_BinaryOp_Mod -Expr_Mul => Expr_BinaryOp_Mul -Expr_NotEqual => Expr_BinaryOp_NotEqual -Expr_NotIdentical => Expr_BinaryOp_NotIdentical -Expr_Plus => Expr_BinaryOp_Plus -Expr_ShiftLeft => Expr_BinaryOp_ShiftLeft -Expr_ShiftRight => Expr_BinaryOp_ShiftRight -Expr_Smaller => Expr_BinaryOp_Smaller -Expr_SmallerOrEqual => Expr_BinaryOp_SmallerOrEqual - -Scalar_ClassConst => Scalar_MagicConst_Class -Scalar_DirConst => Scalar_MagicConst_Dir -Scalar_FileConst => Scalar_MagicConst_File -Scalar_FuncConst => Scalar_MagicConst_Function -Scalar_LineConst => Scalar_MagicConst_Line -Scalar_MethodConst => Scalar_MagicConst_Method -Scalar_NSConst => Scalar_MagicConst_Namespace -Scalar_TraitConst => Scalar_MagicConst_Trait -``` - -These changes may affect custom pretty printers and code comparing the return value of `Node::getType()` to specific -strings. - -### Miscellaneous - - * The classes `Template` and `TemplateLoader` have been removed. You should use some other [code generation][code_gen] - project built on top of PHP-Parser instead. - - * The `PrettyPrinterAbstract::pStmts()` method now emits a leading newline if the statement list is not empty. - Custom pretty printers should remove the explicit newline before `pStmts()` calls. - - Old: - - ```php - public function pStmt_Trait(PHPParser_Node_Stmt_Trait $node) { - return 'trait ' . $node->name - . "\n" . '{' . "\n" . $this->pStmts($node->stmts) . "\n" . '}'; - } - ``` - - New: - - ```php - public function pStmt_Trait(Stmt\Trait_ $node) { - return 'trait ' . $node->name - . "\n" . '{' . $this->pStmts($node->stmts) . "\n" . '}'; - } - ``` - - [code_gen]: https://github.com/nikic/PHP-Parser/wiki/Projects-using-the-PHP-Parser#code-generation \ No newline at end of file diff --git a/vendor/nikic/php-parser/UPGRADE-2.0.md b/vendor/nikic/php-parser/UPGRADE-2.0.md deleted file mode 100644 index 1c61de54..00000000 --- a/vendor/nikic/php-parser/UPGRADE-2.0.md +++ /dev/null @@ -1,74 +0,0 @@ -Upgrading from PHP-Parser 1.x to 2.0 -==================================== - -### PHP version requirements - -PHP-Parser now requires PHP 5.4 or newer to run. It is however still possible to *parse* PHP 5.2 and -PHP 5.3 source code, while running on a newer version. - -### Creating a parser instance - -Parser instances should now be created through the `ParserFactory`. Old direct instantiation code -will not work, because the parser class was renamed. - -Old: - -```php -use PhpParser\Parser, PhpParser\Lexer; -$parser = new Parser(new Lexer\Emulative); -``` - -New: - -```php -use PhpParser\ParserFactory; -$parser = (new ParserFactory)->create(ParserFactory::PREFER_PHP7); -``` - -The first argument to `ParserFactory` determines how different PHP versions are handled. The -possible values are: - - * `ParserFactory::PREFER_PHP7`: Try to parse code as PHP 7. If this fails, try to parse it as PHP 5. - * `ParserFactory::PREFER_PHP5`: Try to parse code as PHP 5. If this fails, try to parse it as PHP 7. - * `ParserFactory::ONLY_PHP7`: Parse code as PHP 7. - * `ParserFactory::ONLY_PHP5`: Parse code as PHP 5. - -For most practical purposes the difference between `PREFER_PHP7` and `PREFER_PHP5` is mainly whether -a scalar type hint like `string` will be stored as `'string'` (PHP 7) or as `new Name('string')` -(PHP 5). - -To use a custom lexer, pass it as the second argument to the `create()` method: - -```php -use PhpParser\ParserFactory; -$lexer = new MyLexer; -$parser = (new ParserFactory)->create(ParserFactory::PREFER_PHP7, $lexer); -``` - -### Rename of the `PhpParser\Parser` class - -`PhpParser\Parser` is now an interface, which is implemented by `Parser\Php5`, `Parser\Php7` and -`Parser\Multiple`. Parser tokens are now defined in `Parser\Tokens`. If you use the `ParserFactory` -described above to create your parser instance, these changes should have no further impact on you. - -### Removal of legacy aliases - -All legacy aliases for classes have been removed. This includes the old non-namespaced `PHPParser_` -classes, as well as the classes that had to be renamed for PHP 7 support. - -### Deprecations - -The `set()`, `setFirst()`, `append()` and `prepend()` methods of the `Node\Name` class have been -deprecated. Instead `Name::concat()` and `Name->slice()` should be used. - -### Miscellaneous - -* The `NodeTraverser` no longer clones nodes by default. If you want to restore the old behavior, - pass `true` to the constructor. -* The legacy node format has been removed. If you use custom nodes, they are now expected to - implement a `getSubNodeNames()` method. -* The default value for `Scalar` node constructors was removed. This means that something like - `new LNumber()` should be replaced by `new LNumber(0)`. -* String parts of encapsed strings are now represented using `Scalar\EncapsStringPart` nodes, while - previously raw strings were used. This affects the `parts` child of `Scalar\Encaps` and - `Expr\ShellExec`. \ No newline at end of file diff --git a/vendor/nikic/php-parser/UPGRADE-3.0.md b/vendor/nikic/php-parser/UPGRADE-3.0.md deleted file mode 100644 index 9e04f2af..00000000 --- a/vendor/nikic/php-parser/UPGRADE-3.0.md +++ /dev/null @@ -1,160 +0,0 @@ -Upgrading from PHP-Parser 2.x to 3.0 -==================================== - -The backwards-incompatible changes in this release may be summarized as follows: - - * The specific details of the node representation have changed in some cases, primarily to - accomodate new PHP 7.1 features. - * There have been significant changes to the error recovery implementation. This may affect you, - if you used the error recovery mode or have a custom lexer implementation. - * A number of deprecated methods were removed. - -### PHP version requirements - -PHP-Parser now requires PHP 5.5 or newer to run. It is however still possible to *parse* PHP 5.2, -5.3 and 5.4 source code, while running on a newer version. - -### Changes to the node structure - -The following changes are likely to require code changes if the respective nodes are used: - - * The `List` subnode `vars` has been renamed to `items` and now contains `ArrayItem`s instead of - plain variables. - * The `Catch` subnode `type` has been renamed to `types` and is now an array of `Name`s. - * The `TryCatch` subnode `finallyStmts` has been replaced with a `finally` subnode that holds an - explicit `Finally` node. - * The `type` subnode on `Class`, `ClassMethod` and `Property` has been renamed to `flags`. The - `type` subnode has retained for backwards compatibility and is populated to the same value as - `flags`. However, writes to `type` will not update `flags` and use of `type` is discouraged. - -The following changes are unlikely to require code changes: - - * The `ClassConst` constructor changed to accept an additional `flags` subnode. - * The `Trait` constructor now has the same form as the `Class` and `Interface` constructors: It - takes an array of subnodes. Unlike classes/interfaces, traits can only have a `stmts` subnode. - * The `Array` subnode `items` may now contain `null` elements (due to destructuring). - * `void` and `iterable` types are now stored as strings if the PHP 7 parser is used. Previously - these would have been represented as `Name` instances. - -### Changes to error recovery mode - -Previously, error recovery mode was enabled by setting the `throwOnError` option to `false` when -creating the parser, while collected errors were retrieved using the `getErrors()` method: - -```php -$lexer = ...; -$parser = (new ParserFactory)->create(ParserFactor::ONLY_PHP7, $lexer, [ - 'throwOnError' => true, -]); - -$stmts = $parser->parse($code); -$errors = $parser->getErrors(); -if ($errors) { - handleErrors($errors); -} -processAst($stmts); -``` - -Both the `throwOnError` option and the `getErrors()` method have been removed in PHP-Parser 3.0. -Instead an instance of `ErrorHandler\Collecting` should be passed to the `parse()` method: - -```php -$lexer = ...; -$parser = (new ParserFactory)->create(ParserFactor::ONLY_PHP7, $lexer); - -$errorHandler = new ErrorHandler\Collecting; -$stmts = $parser->parse($code, $errorHandler); -if ($errorHandler->hasErrors()) { - handleErrors($errorHandler->getErrors()); -} -processAst($stmts); -``` - -#### Multiple parser fallback in error recovery mode - -As a result of this change, if a `Multiple` parser is used (e.g. through the `ParserFactory` using -`PREFER_PHP7` or `PREFER_PHP5`), it will now return the result of the first *non-throwing* parse. As -parsing never throws in error recovery mode, the result from the first parser will always be -returned. - -The PHP 7 parser is a superset of the PHP 5 parser, with the exceptions that `=& new` and -`global $$foo->bar` are not supported (other differences are in representation only). The PHP 7 -parser will be able to recover from the error in both cases. For this reason, this change will -likely pass unnoticed if you do not specifically test for this syntax. - -It is possible to restore the precise previous behavior with the following code: - -```php -$lexer = ...; -$parser7 = new Parser\Php7($lexer); -$parser5 = new Parser\Php5($lexer); - -$errors7 = new ErrorHandler\Collecting(); -$stmts7 = $parser7->parse($code, $errors7); -if ($errors7->hasErrors()) { - $errors5 = new ErrorHandler\Collecting(); - $stmts5 = $parser5->parse($code, $errors5); - if (!$errors5->hasErrors()) { - // If PHP 7 parse has errors but PHP 5 parse has no errors, use PHP 5 result - return [$stmts5, $errors5]; - } -} -// If PHP 7 succeeds or both fail use PHP 7 result -return [$stmts7, $errors7]; -``` - -#### Error handling in the lexer - -In order to support recovery from lexer errors, the signature of the `startLexing()` method changed -to optionally accept an `ErrorHandler`: - -```php -// OLD -public function startLexing($code); -// NEW -public function startLexing($code, ErrorHandler $errorHandler = null); -``` - -If you use a custom lexer with overriden `startLexing()` method, it needs to be changed to accept -the extra parameter. The value should be passed on to the parent method. - -#### Error checks in node constructors - -The constructors of certain nodes used to contain additional checks for semantic errors, such as -creating a try block without either catch or finally. These checks have been moved from the node -constructors into the parser. This allows recovery from such errors, as well as representing the -resulting (invalid) AST. - -This means that certain error conditions are no longer checked for manually constructed nodes. - -### Removed methods, arguments, options - -The following methods, arguments or options have been removed: - - * `Comment::setLine()`, `Comment::setText()`: Create new `Comment` instances instead. - * `Name::set()`, `Name::setFirst()`, `Name::setLast()`, `Name::append()`, `Name::prepend()`: - Use `Name::concat()` in combination with `Name::slice()` instead. - * `Error::getRawLine()`, `Error::setRawLine()`. Use `Error::getStartLine()` and - `Error::setStartLine()` instead. - * `Parser::getErrors()`. Use `ErrorHandler\Collecting` instead. - * `$separator` argument of `Name::toString()`. Use `strtr()` instead, if you really need it. - * `$cloneNodes` argument of `NodeTraverser::__construct()`. Explicitly clone nodes in the visitor - instead. - * `throwOnError` parser option. Use `ErrorHandler\Collecting` instead. - -### Miscellaneous - - * The `NameResolver` will now resolve unqualified function and constant names in the global - namespace into fully qualified names. For example `foo()` in the global namespace resolves to - `\foo()`. For names where no static resolution is possible, a `namespacedName` attribute is - added now, containing the namespaced variant of the name. - * All methods on `PrettyPrinter\Standard` are now protected. Previoulsy most of them were public. - The pretty printer should only be invoked using the `prettyPrint()`, `prettyPrintFile()` and - `prettyPrintExpr()` methods. - * The node dumper now prints numeric values that act as enums/flags in a string representation. - If node dumper results are used in tests, updates may be needed to account for this. - * The constants on `NameTraverserInterface` have been moved into the `NameTraverser` class. - * The emulative lexer now directly postprocesses tokens, instead of using `~__EMU__~` sequences. - This changes the protected API of the emulative lexer. - * The `Name::slice()` method now returns `null` for empty slices, previously `new Name([])` was - used. `Name::concat()` now also supports concatenation with `null`. diff --git a/vendor/nikic/php-parser/bin/php-parse b/vendor/nikic/php-parser/bin/php-parse deleted file mode 100755 index 1760e758..00000000 --- a/vendor/nikic/php-parser/bin/php-parse +++ /dev/null @@ -1,202 +0,0 @@ -#!/usr/bin/env php - array( - 'startLine', 'endLine', 'startFilePos', 'endFilePos', 'comments' -))); -$parser = (new PhpParser\ParserFactory)->create( - PhpParser\ParserFactory::PREFER_PHP7, - $lexer -); -$dumper = new PhpParser\NodeDumper([ - 'dumpComments' => true, - 'dumpPositions' => $attributes['with-positions'], -]); -$prettyPrinter = new PhpParser\PrettyPrinter\Standard; -$serializer = new PhpParser\Serializer\XML; - -$traverser = new PhpParser\NodeTraverser(); -$traverser->addVisitor(new PhpParser\NodeVisitor\NameResolver); - -foreach ($files as $file) { - if (strpos($file, ' Code $code\n"; - } else { - if (!file_exists($file)) { - die("File $file does not exist.\n"); - } - - $code = file_get_contents($file); - echo "====> File $file:\n"; - } - - if ($attributes['with-recovery']) { - $errorHandler = new PhpParser\ErrorHandler\Collecting; - $stmts = $parser->parse($code, $errorHandler); - foreach ($errorHandler->getErrors() as $error) { - $message = formatErrorMessage($error, $code, $attributes['with-column-info']); - echo $message . "\n"; - } - if (null === $stmts) { - continue; - } - } else { - try { - $stmts = $parser->parse($code); - } catch (PhpParser\Error $error) { - $message = formatErrorMessage($error, $code, $attributes['with-column-info']); - die($message . "\n"); - } - } - - foreach ($operations as $operation) { - if ('dump' === $operation) { - echo "==> Node dump:\n"; - echo $dumper->dump($stmts, $code), "\n"; - } elseif ('pretty-print' === $operation) { - echo "==> Pretty print:\n"; - echo $prettyPrinter->prettyPrintFile($stmts), "\n"; - } elseif ('serialize-xml' === $operation) { - echo "==> Serialized XML:\n"; - echo $serializer->serialize($stmts), "\n"; - } elseif ('var-dump' === $operation) { - echo "==> var_dump():\n"; - var_dump($stmts); - } elseif ('resolve-names' === $operation) { - echo "==> Resolved names.\n"; - $stmts = $traverser->traverse($stmts); - } - } -} - -function formatErrorMessage(PhpParser\Error $e, $code, $withColumnInfo) { - if ($withColumnInfo && $e->hasColumnInfo()) { - return $e->getMessageWithColumnInfo($code); - } else { - return $e->getMessage(); - } -} - -function showHelp($error = '') { - if ($error) { - echo $error . "\n\n"; - } - die(<< false, - 'with-positions' => false, - 'with-recovery' => false, - ); - - array_shift($args); - $parseOptions = true; - foreach ($args as $arg) { - if (!$parseOptions) { - $files[] = $arg; - continue; - } - - switch ($arg) { - case '--dump': - case '-d': - $operations[] = 'dump'; - break; - case '--pretty-print': - case '-p': - $operations[] = 'pretty-print'; - break; - case '--serialize-xml': - $operations[] = 'serialize-xml'; - break; - case '--var-dump': - $operations[] = 'var-dump'; - break; - case '--resolve-names': - case '-N'; - $operations[] = 'resolve-names'; - break; - case '--with-column-info': - case '-c'; - $attributes['with-column-info'] = true; - break; - case '--with-positions': - case '-P': - $attributes['with-positions'] = true; - break; - case '--with-recovery': - case '-r': - $attributes['with-recovery'] = true; - break; - case '--help': - case '-h'; - showHelp(); - break; - case '--': - $parseOptions = false; - break; - default: - if ($arg[0] === '-') { - showHelp("Invalid operation $arg."); - } else { - $files[] = $arg; - } - } - } - - return array($operations, $files, $attributes); -} diff --git a/vendor/nikic/php-parser/composer.json b/vendor/nikic/php-parser/composer.json deleted file mode 100644 index 66df90a8..00000000 --- a/vendor/nikic/php-parser/composer.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "nikic/php-parser", - "description": "A PHP parser written in PHP", - "keywords": ["php", "parser"], - "type": "library", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Nikita Popov" - } - ], - "require": { - "php": ">=5.5", - "ext-tokenizer": "*" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "bin": ["bin/php-parse"], - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - } -} diff --git a/vendor/nikic/php-parser/doc/0_Introduction.markdown b/vendor/nikic/php-parser/doc/0_Introduction.markdown deleted file mode 100644 index ca1ceb2e..00000000 --- a/vendor/nikic/php-parser/doc/0_Introduction.markdown +++ /dev/null @@ -1,80 +0,0 @@ -Introduction -============ - -This project is a PHP 5.2 to PHP 7.1 parser **written in PHP itself**. - -What is this for? ------------------ - -A parser is useful for [static analysis][0], manipulation of code and basically any other -application dealing with code programmatically. A parser constructs an [Abstract Syntax Tree][1] -(AST) of the code and thus allows dealing with it in an abstract and robust way. - -There are other ways of processing source code. One that PHP supports natively is using the -token stream generated by [`token_get_all`][2]. The token stream is much more low level than -the AST and thus has different applications: It allows to also analyze the exact formatting of -a file. On the other hand the token stream is much harder to deal with for more complex analysis. -For example an AST abstracts away the fact that in PHP variables can be written as `$foo`, but also -as `$$bar`, `${'foobar'}` or even `${!${''}=barfoo()}`. You don't have to worry about recognizing -all the different syntaxes from a stream of tokens. - -Another question is: Why would I want to have a PHP parser *written in PHP*? Well, PHP might not be -a language especially suited for fast parsing, but processing the AST is much easier in PHP than it -would be in other, faster languages like C. Furthermore the people most probably wanting to do -programmatic PHP code analysis are incidentally PHP developers, not C developers. - -What can it parse? ------------------- - -The parser supports parsing PHP 5.2-5.6 and PHP 7. - -As the parser is based on the tokens returned by `token_get_all` (which is only able to lex the PHP -version it runs on), additionally a wrapper for emulating tokens from newer versions is provided. -This allows to parse PHP 7.1 source code running on PHP 5.5, for example. This emulation is somewhat -hacky and not perfect, but it should work well on any sane code. - -What output does it produce? ----------------------------- - -The parser produces an [Abstract Syntax Tree][1] (AST) also known as a node tree. How this looks like -can best be seen in an example. The program `create(ParserFactory::PREFER_PHP7); -``` - -The factory accepts a kind argument, that determines how different PHP versions are treated: - -Kind | Behavior ------|--------- -`ParserFactory::PREFER_PHP7` | Try to parse code as PHP 7. If this fails, try to parse it as PHP 5. -`ParserFactory::PREFER_PHP5` | Try to parse code as PHP 5. If this fails, try to parse it as PHP 7. -`ParserFactory::ONLY_PHP7` | Parse code as PHP 7. -`ParserFactory::ONLY_PHP5` | Parse code as PHP 5. - -Unless you have strong reason to use something else, `PREFER_PHP7` is a reasonable default. - -The `create()` method optionally accepts a `Lexer` instance as the second argument. Some use cases -that require customized lexers are discussed in the [lexer documentation](component/Lexer.markdown). - -Subsequently you can pass PHP code (including the opening `create(ParserFactory::PREFER_PHP7); - -try { - $stmts = $parser->parse($code); - // $stmts is an array of statement nodes -} catch (Error $e) { - echo 'Parse Error: ', $e->getMessage(); -} -``` - -A parser instance can be reused to parse multiple files. - -Node tree ---------- - -If you use the above code with `$code = "subNodeName`. The `Stmt\Echo_` node has only one subnode `exprs`. So in order to access it -in the above example you would write `$stmts[0]->exprs`. If you wanted to access the name of the function -call, you would write `$stmts[0]->exprs[1]->name`. - -All nodes also define a `getType()` method that returns the node type. The type is the class name -without the `PhpParser\Node\` prefix and `\` replaced with `_`. It also does not contain a trailing -`_` for reserved-keyword class names. - -It is possible to associate custom metadata with a node using the `setAttribute()` method. This data -can then be retrieved using `hasAttribute()`, `getAttribute()` and `getAttributes()`. - -By default the lexer adds the `startLine`, `endLine` and `comments` attributes. `comments` is an array -of `PhpParser\Comment[\Doc]` instances. - -The start line can also be accessed using `getLine()`/`setLine()` (instead of `getAttribute('startLine')`). -The last doc comment from the `comments` attribute can be obtained using `getDocComment()`. - -Pretty printer --------------- - -The pretty printer component compiles the AST back to PHP code. As the parser does not retain formatting -information the formatting is done using a specified scheme. Currently there is only one scheme available, -namely `PhpParser\PrettyPrinter\Standard`. - -```php -use PhpParser\Error; -use PhpParser\ParserFactory; -use PhpParser\PrettyPrinter; - -$code = "create(ParserFactory::PREFER_PHP7); -$prettyPrinter = new PrettyPrinter\Standard; - -try { - // parse - $stmts = $parser->parse($code); - - // change - $stmts[0] // the echo statement - ->exprs // sub expressions - [0] // the first of them (the string node) - ->value // it's value, i.e. 'Hi ' - = 'Hello '; // change to 'Hello ' - - // pretty print - $code = $prettyPrinter->prettyPrint($stmts); - - echo $code; -} catch (Error $e) { - echo 'Parse Error: ', $e->getMessage(); -} -``` - -The above code will output: - - parse()`, then changed and then -again converted to code using `PhpParser\PrettyPrinter\Standard->prettyPrint()`. - -The `prettyPrint()` method pretty prints a statements array. It is also possible to pretty print only a -single expression using `prettyPrintExpr()`. - -The `prettyPrintFile()` method can be used to print an entire file. This will include the opening `create(ParserFactory::PREFER_PHP7); -$traverser = new NodeTraverser; -$prettyPrinter = new PrettyPrinter\Standard; - -// add your visitor -$traverser->addVisitor(new MyNodeVisitor); - -try { - $code = file_get_contents($fileName); - - // parse - $stmts = $parser->parse($code); - - // traverse - $stmts = $traverser->traverse($stmts); - - // pretty print - $code = $prettyPrinter->prettyPrintFile($stmts); - - echo $code; -} catch (PhpParser\Error $e) { - echo 'Parse Error: ', $e->getMessage(); -} -``` - -The corresponding node visitor might look like this: - -```php -use PhpParser\Node; -use PhpParser\NodeVisitorAbstract; - -class MyNodeVisitor extends NodeVisitorAbstract -{ - public function leaveNode(Node $node) { - if ($node instanceof Node\Scalar\String_) { - $node->value = 'foo'; - } - } -} -``` - -The above node visitor would change all string literals in the program to `'foo'`. - -All visitors must implement the `PhpParser\NodeVisitor` interface, which defines the following four -methods: - -```php -public function beforeTraverse(array $nodes); -public function enterNode(\PhpParser\Node $node); -public function leaveNode(\PhpParser\Node $node); -public function afterTraverse(array $nodes); -``` - -The `beforeTraverse()` method is called once before the traversal begins and is passed the nodes the -traverser was called with. This method can be used for resetting values before traversation or -preparing the tree for traversal. - -The `afterTraverse()` method is similar to the `beforeTraverse()` method, with the only difference that -it is called once after the traversal. - -The `enterNode()` and `leaveNode()` methods are called on every node, the former when it is entered, -i.e. before its subnodes are traversed, the latter when it is left. - -All four methods can either return the changed node or not return at all (i.e. `null`) in which -case the current node is not changed. - -The `enterNode()` method can additionally return the value `NodeTraverser::DONT_TRAVERSE_CHILDREN`, -which instructs the traverser to skip all children of the current node. - -The `leaveNode()` method can additionally return the value `NodeTraverser::REMOVE_NODE`, in which -case the current node will be removed from the parent array. Furthermore it is possible to return -an array of nodes, which will be merged into the parent array at the offset of the current node. -I.e. if in `array(A, B, C)` the node `B` should be replaced with `array(X, Y, Z)` the result will -be `array(A, X, Y, Z, C)`. - -Instead of manually implementing the `NodeVisitor` interface you can also extend the `NodeVisitorAbstract` -class, which will define empty default implementations for all the above methods. - -The NameResolver node visitor ------------------------------ - -One visitor is already bundled with the package: `PhpParser\NodeVisitor\NameResolver`. This visitor -helps you work with namespaced code by trying to resolve most names to fully qualified ones. - -For example, consider the following code: - - use A as B; - new B\C(); - -In order to know that `B\C` really is `A\C` you would need to track aliases and namespaces yourself. -The `NameResolver` takes care of that and resolves names as far as possible. - -After running it most names will be fully qualified. The only names that will stay unqualified are -unqualified function and constant names. These are resolved at runtime and thus the visitor can't -know which function they are referring to. In most cases this is a non-issue as the global functions -are meant. - -Also the `NameResolver` adds a `namespacedName` subnode to class, function and constant declarations -that contains the namespaced name instead of only the shortname that is available via `name`. - -Example: Converting namespaced code to pseudo namespaces --------------------------------------------------------- - -A small example to understand the concept: We want to convert namespaced code to pseudo namespaces -so it works on 5.2, i.e. names like `A\\B` should be converted to `A_B`. Note that such conversions -are fairly complicated if you take PHP's dynamic features into account, so our conversion will -assume that no dynamic features are used. - -We start off with the following base code: - -```php -use PhpParser\ParserFactory; -use PhpParser\PrettyPrinter; -use PhpParser\NodeTraverser; -use PhpParser\NodeVisitor\NameResolver; - -$inDir = '/some/path'; -$outDir = '/some/other/path'; - -$parser = (new ParserFactory)->create(ParserFactory::PREFER_PHP7); -$traverser = new NodeTraverser; -$prettyPrinter = new PrettyPrinter\Standard; - -$traverser->addVisitor(new NameResolver); // we will need resolved names -$traverser->addVisitor(new NamespaceConverter); // our own node visitor - -// iterate over all .php files in the directory -$files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($inDir)); -$files = new \RegexIterator($files, '/\.php$/'); - -foreach ($files as $file) { - try { - // read the file that should be converted - $code = file_get_contents($file); - - // parse - $stmts = $parser->parse($code); - - // traverse - $stmts = $traverser->traverse($stmts); - - // pretty print - $code = $prettyPrinter->prettyPrintFile($stmts); - - // write the converted file to the target directory - file_put_contents( - substr_replace($file->getPathname(), $outDir, 0, strlen($inDir)), - $code - ); - } catch (PhpParser\Error $e) { - echo 'Parse Error: ', $e->getMessage(); - } -} -``` - -Now lets start with the main code, the `NodeVisitor\NamespaceConverter`. One thing it needs to do -is convert `A\\B` style names to `A_B` style ones. - -```php -use PhpParser\Node; - -class NamespaceConverter extends \PhpParser\NodeVisitorAbstract -{ - public function leaveNode(Node $node) { - if ($node instanceof Node\Name) { - return new Node\Name($node->toString('_')); - } - } -} -``` - -The above code profits from the fact that the `NameResolver` already resolved all names as far as -possible, so we don't need to do that. We only need to create a string with the name parts separated -by underscores instead of backslashes. This is what `$node->toString('_')` does. (If you want to -create a name with backslashes either write `$node->toString()` or `(string) $node`.) Then we create -a new name from the string and return it. Returning a new node replaces the old node. - -Another thing we need to do is change the class/function/const declarations. Currently they contain -only the shortname (i.e. the last part of the name), but they need to contain the complete name including -the namespace prefix: - -```php -use PhpParser\Node; -use PhpParser\Node\Stmt; - -class NodeVisitor_NamespaceConverter extends \PhpParser\NodeVisitorAbstract -{ - public function leaveNode(Node $node) { - if ($node instanceof Node\Name) { - return new Node\Name($node->toString('_')); - } elseif ($node instanceof Stmt\Class_ - || $node instanceof Stmt\Interface_ - || $node instanceof Stmt\Function_) { - $node->name = $node->namespacedName->toString('_'); - } elseif ($node instanceof Stmt\Const_) { - foreach ($node->consts as $const) { - $const->name = $const->namespacedName->toString('_'); - } - } - } -} -``` - -There is not much more to it than converting the namespaced name to string with `_` as separator. - -The last thing we need to do is remove the `namespace` and `use` statements: - -```php -use PhpParser\Node; -use PhpParser\Node\Stmt; - -class NodeVisitor_NamespaceConverter extends \PhpParser\NodeVisitorAbstract -{ - public function leaveNode(Node $node) { - if ($node instanceof Node\Name) { - return new Node\Name($node->toString('_')); - } elseif ($node instanceof Stmt\Class_ - || $node instanceof Stmt\Interface_ - || $node instanceof Stmt\Function_) { - $node->name = $node->namespacedName->toString('_'); - } elseif ($node instanceof Stmt\Const_) { - foreach ($node->consts as $const) { - $const->name = $const->namespacedName->toString('_'); - } - } elseif ($node instanceof Stmt\Namespace_) { - // returning an array merges is into the parent array - return $node->stmts; - } elseif ($node instanceof Stmt\Use_) { - // returning false removed the node altogether - return false; - } - } -} -``` - -That's all. diff --git a/vendor/nikic/php-parser/doc/3_Other_node_tree_representations.markdown b/vendor/nikic/php-parser/doc/3_Other_node_tree_representations.markdown deleted file mode 100644 index 0830f399..00000000 --- a/vendor/nikic/php-parser/doc/3_Other_node_tree_representations.markdown +++ /dev/null @@ -1,330 +0,0 @@ -Other node tree representations -=============================== - -It is possible to convert the AST into several textual representations, which serve different uses. - -Simple serialization --------------------- - -It is possible to serialize the node tree using `serialize()` and also unserialize it using -`unserialize()`. The output is not human readable and not easily processable from anything -but PHP, but it is compact and generates quickly. The main application thus is in caching. - -Human readable dumping ----------------------- - -Furthermore it is possible to dump nodes into a human readable format using the `dump` method of -`PhpParser\NodeDumper`. This can be used for debugging. - -```php -$code = <<<'CODE' -create(PhpParser\ParserFactory::PREFER_PHP7); -$nodeDumper = new PhpParser\NodeDumper; - -try { - $stmts = $parser->parse($code); - - echo $nodeDumper->dump($stmts), "\n"; -} catch (PhpParser\Error $e) { - echo 'Parse Error: ', $e->getMessage(); -} -``` - -The above script will have an output looking roughly like this: - -``` -array( - 0: Stmt_Function( - byRef: false - params: array( - 0: Param( - name: msg - default: null - type: null - byRef: false - ) - ) - stmts: array( - 0: Stmt_Echo( - exprs: array( - 0: Expr_Variable( - name: msg - ) - 1: Scalar_String( - value: - - ) - ) - ) - ) - name: printLine - ) - 1: Expr_FuncCall( - name: Name( - parts: array( - 0: printLine - ) - ) - args: array( - 0: Arg( - value: Scalar_String( - value: Hello World!!! - ) - byRef: false - ) - ) - ) -) -``` - -JSON encoding -------------- - -Nodes (and comments) implement the `JsonSerializable` interface. As such, it is possible to JSON -encode the AST directly using `json_encode()`: - -```php -$code = <<<'CODE' -create(PhpParser\ParserFactory::PREFER_PHP7); -$nodeDumper = new PhpParser\NodeDumper; - -try { - $stmts = $parser->parse($code); - - echo json_encode($stmts, JSON_PRETTY_PRINT), "\n"; -} catch (PhpParser\Error $e) { - echo 'Parse Error: ', $e->getMessage(); -} -``` - -This will result in the following output (which includes attributes): - -```json -[ - { - "nodeType": "Stmt_Function", - "byRef": false, - "name": "printLine", - "params": [ - { - "nodeType": "Param", - "type": null, - "byRef": false, - "variadic": false, - "name": "msg", - "default": null, - "attributes": { - "startLine": 3, - "endLine": 3 - } - } - ], - "returnType": null, - "stmts": [ - { - "nodeType": "Stmt_Echo", - "exprs": [ - { - "nodeType": "Expr_Variable", - "name": "msg", - "attributes": { - "startLine": 4, - "endLine": 4 - } - }, - { - "nodeType": "Scalar_String", - "value": "\n", - "attributes": { - "startLine": 4, - "endLine": 4, - "kind": 2 - } - } - ], - "attributes": { - "startLine": 4, - "endLine": 4 - } - } - ], - "attributes": { - "startLine": 3, - "endLine": 5 - } - }, - { - "nodeType": "Expr_FuncCall", - "name": { - "nodeType": "Name", - "parts": [ - "printLine" - ], - "attributes": { - "startLine": 7, - "endLine": 7 - } - }, - "args": [ - { - "nodeType": "Arg", - "value": { - "nodeType": "Scalar_String", - "value": "Hello World!!!", - "attributes": { - "startLine": 7, - "endLine": 7, - "kind": 1 - } - }, - "byRef": false, - "unpack": false, - "attributes": { - "startLine": 7, - "endLine": 7 - } - } - ], - "attributes": { - "startLine": 7, - "endLine": 7 - } - } -] -``` - -There is currently no mechanism to convert JSON back into a node tree. Furthermore, not all ASTs -can be JSON encoded. In particular, JSON only supports UTF-8 strings. - -Serialization to XML --------------------- - -It is also possible to serialize the node tree to XML using `PhpParser\Serializer\XML->serialize()` -and to unserialize it using `PhpParser\Unserializer\XML->unserialize()`. This is useful for -interfacing with other languages and applications or for doing transformation using XSLT. - -```php -create(PhpParser\ParserFactory::PREFER_PHP7); -$serializer = new PhpParser\Serializer\XML; - -try { - $stmts = $parser->parse($code); - - echo $serializer->serialize($stmts); -} catch (PhpParser\Error $e) { - echo 'Parse Error: ', $e->getMessage(); -} -``` - -Produces: - -```xml - - - - - - - - - - - - msg - - - - - - - - - - - - - - - - - - - - - msg - - - - - - - - - - - - - - - printLine - - - - - - - - printLine - - - - - - - - - - - Hello World!!! - - - - - - - - - - - - -``` \ No newline at end of file diff --git a/vendor/nikic/php-parser/doc/4_Code_generation.markdown b/vendor/nikic/php-parser/doc/4_Code_generation.markdown deleted file mode 100644 index 2c0aa0ed..00000000 --- a/vendor/nikic/php-parser/doc/4_Code_generation.markdown +++ /dev/null @@ -1,84 +0,0 @@ -Code generation -=============== - -It is also possible to generate code using the parser, by first creating an Abstract Syntax Tree and then using the -pretty printer to convert it to PHP code. To simplify code generation, the project comes with builders which allow -creating node trees using a fluid interface, instead of instantiating all nodes manually. Builders are available for -the following syntactic elements: - - * namespaces and use statements - * classes, interfaces and traits - * methods, functions and parameters - * properties - -Here is an example: - -```php -use PhpParser\BuilderFactory; -use PhpParser\PrettyPrinter; -use PhpParser\Node; - -$factory = new BuilderFactory; -$node = $factory->namespace('Name\Space') - ->addStmt($factory->use('Some\Other\Thingy')->as('SomeOtherClass')) - ->addStmt($factory->class('SomeClass') - ->extend('SomeOtherClass') - ->implement('A\Few', '\Interfaces') - ->makeAbstract() // ->makeFinal() - - ->addStmt($factory->method('someMethod') - ->makePublic() - ->makeAbstract() // ->makeFinal() - ->setReturnType('bool') - ->addParam($factory->param('someParam')->setTypeHint('SomeClass')) - ->setDocComment('/** - * This method does something. - * - * @param SomeClass And takes a parameter - */') - ) - - ->addStmt($factory->method('anotherMethod') - ->makeProtected() // ->makePublic() [default], ->makePrivate() - ->addParam($factory->param('someParam')->setDefault('test')) - // it is possible to add manually created nodes - ->addStmt(new Node\Expr\Print_(new Node\Expr\Variable('someParam'))) - ) - - // properties will be correctly reordered above the methods - ->addStmt($factory->property('someProperty')->makeProtected()) - ->addStmt($factory->property('anotherProperty')->makePrivate()->setDefault(array(1, 2, 3))) - ) - - ->getNode() -; - -$stmts = array($node); -$prettyPrinter = new PrettyPrinter\Standard(); -echo $prettyPrinter->prettyPrintFile($stmts); -``` - -This will produce the following output with the standard pretty printer: - -```php - array('comments', 'startLine', 'endLine', 'startFilePos', 'endFilePos'), -)); -$parser = (new PhpParser\ParserFactory)->create(PhpParser\ParserFactory::PREFER_PHP7, $lexer); - -try { - $stmts = $parser->parse($code); - // ... -} catch (PhpParser\Error $e) { - // ... -} -``` - -Before using column information its availability needs to be checked with `$e->hasColumnInfo()`, as the precise -location of an error cannot always be determined. The methods for retrieving column information also have to be passed -the source code of the parsed file. An example for printing an error: - -```php -if ($e->hasColumnInfo()) { - echo $e->getRawMessage() . ' from ' . $e->getStartLine() . ':' . $e->getStartColumn($code) - . ' to ' . $e->getEndLine() . ':' . $e->getEndColumn($code); - // or: - echo $e->getMessageWithColumnInfo(); -} else { - echo $e->getMessage(); -} -``` - -Both line numbers and column numbers are 1-based. EOF errors will be located at the position one past the end of the -file. - -Error recovery --------------- - -The error behavior of the parser (and other components) is controlled by an `ErrorHandler`. Whenever an error is -encountered, `ErrorHandler::handleError()` is invoked. The default error handling strategy is `ErrorHandler\Throwing`, -which will immediately throw when an error is encountered. - -To instead collect all encountered errors into an array, while trying to continue parsing the rest of the source code, -an instance of `ErrorHandler\Collecting` can be passed to the `Parser::parse()` method. A usage example: - -```php -$parser = (new PhpParser\ParserFactory)->create(PhpParser\ParserFactory::ONLY_PHP7); -$errorHandler = new PhpParser\ErrorHandler\Collecting; - -$stmts = $parser->parse($code, $errorHandler); - -if ($errorHandler->hasErrors()) { - foreach ($errorHandler->getErrors() as $error) { - // $error is an ordinary PhpParser\Error - } -} - -if (null !== $stmts) { - // $stmts is a best-effort partial AST -} -``` - -The `NameResolver` visitor also accepts an `ErrorHandler` as a constructor argument. \ No newline at end of file diff --git a/vendor/nikic/php-parser/doc/component/Lexer.markdown b/vendor/nikic/php-parser/doc/component/Lexer.markdown deleted file mode 100644 index b22942dd..00000000 --- a/vendor/nikic/php-parser/doc/component/Lexer.markdown +++ /dev/null @@ -1,152 +0,0 @@ -Lexer component documentation -============================= - -The lexer is responsible for providing tokens to the parser. The project comes with two lexers: `PhpParser\Lexer` and -`PhpParser\Lexer\Emulative`. The latter is an extension of the former, which adds the ability to emulate tokens of -newer PHP versions and thus allows parsing of new code on older versions. - -This documentation discusses options available for the default lexers and explains how lexers can be extended. - -Lexer options -------------- - -The two default lexers accept an `$options` array in the constructor. Currently only the `'usedAttributes'` option is -supported, which allows you to specify which attributes will be added to the AST nodes. The attributes can then be -accessed using `$node->getAttribute()`, `$node->setAttribute()`, `$node->hasAttribute()` and `$node->getAttributes()` -methods. A sample options array: - -```php -$lexer = new PhpParser\Lexer(array( - 'usedAttributes' => array( - 'comments', 'startLine', 'endLine' - ) -)); -``` - -The attributes used in this example match the default behavior of the lexer. The following attributes are supported: - - * `comments`: Array of `PhpParser\Comment` or `PhpParser\Comment\Doc` instances, representing all comments that occurred - between the previous non-discarded token and the current one. Use of this attribute is required for the - `$node->getDocComment()` method to work. The attribute is also needed if you wish the pretty printer to retain - comments present in the original code. - * `startLine`: Line in which the node starts. This attribute is required for the `$node->getLine()` to work. It is also - required if syntax errors should contain line number information. - * `endLine`: Line in which the node ends. - * `startTokenPos`: Offset into the token array of the first token in the node. - * `endTokenPos`: Offset into the token array of the last token in the node. - * `startFilePos`: Offset into the code string of the first character that is part of the node. - * `endFilePos`: Offset into the code string of the last character that is part of the node. - -### Using token positions - -The token offset information is useful if you wish to examine the exact formatting used for a node. For example the AST -does not distinguish whether a property was declared using `public` or using `var`, but you can retrieve this -information based on the token position: - -```php -function isDeclaredUsingVar(array $tokens, PhpParser\Node\Stmt\Property $prop) { - $i = $prop->getAttribute('startTokenPos'); - return $tokens[$i][0] === T_VAR; -} -``` - -In order to make use of this function, you will have to provide the tokens from the lexer to your node visitor using -code similar to the following: - -```php -class MyNodeVisitor extends PhpParser\NodeVisitorAbstract { - private $tokens; - public function setTokens(array $tokens) { - $this->tokens = $tokens; - } - - public function leaveNode(PhpParser\Node $node) { - if ($node instanceof PhpParser\Node\Stmt\Property) { - var_dump(isDeclaredUsingVar($this->tokens, $node)); - } - } -} - -$lexer = new PhpParser\Lexer(array( - 'usedAttributes' => array( - 'comments', 'startLine', 'endLine', 'startTokenPos', 'endTokenPos' - ) -)); -$parser = (new PhpParser\ParserFactory)->create(PhpParser\ParserFactory::PREFER_PHP7, $lexer); - -$visitor = new MyNodeVisitor(); -$traverser = new PhpParser\NodeTraverser(); -$traverser->addVisitor($visitor); - -try { - $stmts = $parser->parse($code); - $visitor->setTokens($lexer->getTokens()); - $stmts = $traverser->traverse($stmts); -} catch (PhpParser\Error $e) { - echo 'Parse Error: ', $e->getMessage(); -} -``` - -The same approach can also be used to perform specific modifications in the code, without changing the formatting in -other places (which is the case when using the pretty printer). - -Lexer extension ---------------- - -A lexer has to define the following public interface: - - void startLexing(string $code, ErrorHandler $errorHandler = null); - array getTokens(); - string handleHaltCompiler(); - int getNextToken(string &$value = null, array &$startAttributes = null, array &$endAttributes = null); - -The `startLexing()` method is invoked with the source code that is to be lexed (including the opening tag) whenever the -`parse()` method of the parser is called. It can be used to reset state or preprocess the source code or tokens. The -passes `ErrorHandler` should be used to report lexing errors. - -The `getTokens()` method returns the current token array, in the usual `token_get_all()` format. This method is not -used by the parser (which uses `getNextToken()`), but is useful in combination with the token position attributes. - -The `handleHaltCompiler()` method is called whenever a `T_HALT_COMPILER` token is encountered. It has to return the -remaining string after the construct (not including `();`). - -The `getNextToken()` method returns the ID of the next token (as defined by the `Parser::T_*` constants). If no more -tokens are available it must return `0`, which is the ID of the `EOF` token. Furthermore the string content of the -token should be written into the by-reference `$value` parameter (which will then be available as `$n` in the parser). - -### Attribute handling - -The other two by-ref variables `$startAttributes` and `$endAttributes` define which attributes will eventually be -assigned to the generated nodes: The parser will take the `$startAttributes` from the first token which is part of the -node and the `$endAttributes` from the last token that is part of the node. - -E.g. if the tokens `T_FUNCTION T_STRING ... '{' ... '}'` constitute a node, then the `$startAttributes` from the -`T_FUNCTION` token will be taken and the `$endAttributes` from the `'}'` token. - -An application of custom attributes is storing the exact original formatting of literals: While the parser does retain -some information about the formatting of integers (like decimal vs. hexadecimal) or strings (like used quote type), it -does not preserve the exact original formatting (e.g. leading zeros for integers or escape sequences in strings). This -can be remedied by storing the original value in an attribute: - -```php -use PhpParser\Lexer; -use PhpParser\Parser\Tokens; - -class KeepOriginalValueLexer extends Lexer // or Lexer\Emulative -{ - public function getNextToken(&$value = null, &$startAttributes = null, &$endAttributes = null) { - $tokenId = parent::getNextToken($value, $startAttributes, $endAttributes); - - if ($tokenId == Tokens::T_CONSTANT_ENCAPSED_STRING // non-interpolated string - || $tokenId == Tokens::T_ENCAPSED_AND_WHITESPACE // interpolated string - || $tokenId == Tokens::T_LNUMBER // integer - || $tokenId == Tokens::T_DNUMBER // floating point number - ) { - // could also use $startAttributes, doesn't really matter here - $endAttributes['originalValue'] = $value; - } - - return $tokenId; - } -} -``` diff --git a/vendor/nikic/php-parser/grammar/README.md b/vendor/nikic/php-parser/grammar/README.md deleted file mode 100644 index 3f1698a6..00000000 --- a/vendor/nikic/php-parser/grammar/README.md +++ /dev/null @@ -1,28 +0,0 @@ -What do all those files mean? -============================= - - * `php5.y`: PHP 5 grammar written in a pseudo language - * `php7.y`: PHP 7 grammar written in a pseudo language - * `tokens.y`: Tokens definition shared between PHP 5 and PHP 7 grammars - * `parser.template`: A `kmyacc` parser prototype file for PHP - * `tokens.template`: A `kmyacc` prototype file for the `Tokens` class - * `rebuildParsers.php`: Preprocesses the grammar and builds the parser using `kmyacc` - -.phpy pseudo language -===================== - -The `.y` file is a normal grammer in `kmyacc` (`yacc`) style, with some transformations -applied to it: - - * Nodes are created using the syntax `Name[..., ...]`. This is transformed into - `new Name(..., ..., attributes())` - * Some function-like constructs are resolved (see `rebuildParsers.php` for a list) - -Building the parser -=================== - -In order to rebuild the parser, you need [moriyoshi's fork of kmyacc](https://github.com/moriyoshi/kmyacc-forked). -After you compiled/installed it, run the `rebuildParsers.php` script. - -By default only the `Parser.php` is built. If you want to additionally emit debug symbols and create `y.output`, run the -script with `--debug`. If you want to retain the preprocessed grammar pass `--keep-tmp-grammar`. diff --git a/vendor/nikic/php-parser/grammar/parser.template b/vendor/nikic/php-parser/grammar/parser.template deleted file mode 100644 index fff893ff..00000000 --- a/vendor/nikic/php-parser/grammar/parser.template +++ /dev/null @@ -1,103 +0,0 @@ -semValue -#semval($,%t) $this->semValue -#semval(%n) $this->stackPos-(%l-%n) -#semval(%n,%t) $this->stackPos-(%l-%n) - -namespace PhpParser\Parser; - -use PhpParser\Error; -use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Name; -use PhpParser\Node\Scalar; -use PhpParser\Node\Stmt; -#include; - -/* This is an automatically GENERATED file, which should not be manually edited. - * Instead edit one of the following: - * * the grammar files grammar/php5.y or grammar/php7.y - * * the skeleton file grammar/parser.template - * * the preprocessing script grammar/rebuildParsers.php - */ -class #(-p) extends \PhpParser\ParserAbstract -{ - protected $tokenToSymbolMapSize = #(YYMAXLEX); - protected $actionTableSize = #(YYLAST); - protected $gotoTableSize = #(YYGLAST); - - protected $invalidSymbol = #(YYBADCH); - protected $errorSymbol = #(YYINTERRTOK); - protected $defaultAction = #(YYDEFAULT); - protected $unexpectedTokenRule = #(YYUNEXPECTED); - - protected $YY2TBLSTATE = #(YY2TBLSTATE); - protected $YYNLSTATES = #(YYNLSTATES); - - protected $symbolToName = array( - #listvar terminals - ); - - protected $tokenToSymbol = array( - #listvar yytranslate - ); - - protected $action = array( - #listvar yyaction - ); - - protected $actionCheck = array( - #listvar yycheck - ); - - protected $actionBase = array( - #listvar yybase - ); - - protected $actionDefault = array( - #listvar yydefault - ); - - protected $goto = array( - #listvar yygoto - ); - - protected $gotoCheck = array( - #listvar yygcheck - ); - - protected $gotoBase = array( - #listvar yygbase - ); - - protected $gotoDefault = array( - #listvar yygdefault - ); - - protected $ruleToNonTerminal = array( - #listvar yylhs - ); - - protected $ruleToLength = array( - #listvar yylen - ); -#if -t - - protected $productions = array( - #production-strings; - ); -#endif -#reduce - - protected function reduceRule%n() { - %b - } -#noact - - protected function reduceRule%n() { - $this->semValue = $this->semStack[$this->stackPos]; - } -#endreduce -} -#tailcode; diff --git a/vendor/nikic/php-parser/grammar/php5.y b/vendor/nikic/php-parser/grammar/php5.y deleted file mode 100644 index 45880463..00000000 --- a/vendor/nikic/php-parser/grammar/php5.y +++ /dev/null @@ -1,1009 +0,0 @@ -%pure_parser -%expect 6 - -%tokens - -%% - -start: - top_statement_list { $$ = $this->handleNamespaces($1); } -; - -top_statement_list_ex: - top_statement_list_ex top_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -top_statement_list: - top_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -reserved_non_modifiers: - T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND - | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE - | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH - | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO - | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT - | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS - | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER -; - -semi_reserved: - reserved_non_modifiers - | T_STATIC | T_ABSTRACT | T_FINAL | T_PRIVATE | T_PROTECTED | T_PUBLIC -; - -identifier: - T_STRING { $$ = $1; } - | semi_reserved { $$ = $1; } -; - -namespace_name_parts: - T_STRING { init($1); } - | namespace_name_parts T_NS_SEPARATOR T_STRING { push($1, $3); } -; - -namespace_name: - namespace_name_parts { $$ = Name[$1]; } -; - -top_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { $$ = Stmt\HaltCompiler[$this->lexer->handleHaltCompiler()]; } - | T_NAMESPACE namespace_name ';' - { $$ = Stmt\Namespace_[$2, null]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($$); } - | T_NAMESPACE namespace_name '{' top_statement_list '}' - { $$ = Stmt\Namespace_[$2, $4]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_NAMESPACE '{' top_statement_list '}' - { $$ = Stmt\Namespace_[null, $3]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_USE use_declarations ';' { $$ = Stmt\Use_[$2, Stmt\Use_::TYPE_NORMAL]; } - | T_USE use_type use_declarations ';' { $$ = Stmt\Use_[$3, $2]; } - | group_use_declaration ';' { $$ = $1; } - | T_CONST constant_declaration_list ';' { $$ = Stmt\Const_[$2]; } -; - -use_type: - T_FUNCTION { $$ = Stmt\Use_::TYPE_FUNCTION; } - | T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; } -; - -/* Using namespace_name_parts here to avoid s/r conflict on T_NS_SEPARATOR */ -group_use_declaration: - T_USE use_type namespace_name_parts T_NS_SEPARATOR '{' unprefixed_use_declarations '}' - { $$ = Stmt\GroupUse[new Name($3, stackAttributes(#3)), $6, $2]; } - | T_USE use_type T_NS_SEPARATOR namespace_name_parts T_NS_SEPARATOR '{' unprefixed_use_declarations '}' - { $$ = Stmt\GroupUse[new Name($4, stackAttributes(#4)), $7, $2]; } - | T_USE namespace_name_parts T_NS_SEPARATOR '{' inline_use_declarations '}' - { $$ = Stmt\GroupUse[new Name($2, stackAttributes(#2)), $5, Stmt\Use_::TYPE_UNKNOWN]; } - | T_USE T_NS_SEPARATOR namespace_name_parts T_NS_SEPARATOR '{' inline_use_declarations '}' - { $$ = Stmt\GroupUse[new Name($3, stackAttributes(#3)), $6, Stmt\Use_::TYPE_UNKNOWN]; } -; - -unprefixed_use_declarations: - unprefixed_use_declarations ',' unprefixed_use_declaration - { push($1, $3); } - | unprefixed_use_declaration { init($1); } -; - -use_declarations: - use_declarations ',' use_declaration { push($1, $3); } - | use_declaration { init($1); } -; - -inline_use_declarations: - inline_use_declarations ',' inline_use_declaration { push($1, $3); } - | inline_use_declaration { init($1); } -; - -unprefixed_use_declaration: - namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | namespace_name T_AS T_STRING - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -use_declaration: - unprefixed_use_declaration { $$ = $1; } - | T_NS_SEPARATOR unprefixed_use_declaration { $$ = $2; } -; - -inline_use_declaration: - unprefixed_use_declaration { $$ = $1; $$->type = Stmt\Use_::TYPE_NORMAL; } - | use_type unprefixed_use_declaration { $$ = $2; $$->type = $1; } -; - -constant_declaration_list: - constant_declaration_list ',' constant_declaration { push($1, $3); } - | constant_declaration { init($1); } -; - -constant_declaration: - T_STRING '=' static_scalar { $$ = Node\Const_[$1, $3]; } -; - -class_const_list: - class_const_list ',' class_const { push($1, $3); } - | class_const { init($1); } -; - -class_const: - identifier '=' static_scalar { $$ = Node\Const_[$1, $3]; } -; - -inner_statement_list_ex: - inner_statement_list_ex inner_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -inner_statement_list: - inner_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -inner_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', attributes()); } -; - -non_empty_statement: - '{' inner_statement_list '}' - { - if ($2) { - $$ = $2; prependLeadingComments($$); - } else { - makeNop($$, $this->startAttributeStack[#1]); - if (null === $$) { $$ = array(); } - } - } - | T_IF parentheses_expr statement elseif_list else_single - { $$ = Stmt\If_[$2, ['stmts' => toArray($3), 'elseifs' => $4, 'else' => $5]]; } - | T_IF parentheses_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' - { $$ = Stmt\If_[$2, ['stmts' => $4, 'elseifs' => $5, 'else' => $6]]; } - | T_WHILE parentheses_expr while_statement { $$ = Stmt\While_[$2, $3]; } - | T_DO statement T_WHILE parentheses_expr ';' { $$ = Stmt\Do_ [$4, toArray($2)]; } - | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement - { $$ = Stmt\For_[['init' => $3, 'cond' => $5, 'loop' => $7, 'stmts' => $9]]; } - | T_SWITCH parentheses_expr switch_case_list { $$ = Stmt\Switch_[$2, $3]; } - | T_BREAK ';' { $$ = Stmt\Break_[null]; } - | T_BREAK expr ';' { $$ = Stmt\Break_[$2]; } - | T_CONTINUE ';' { $$ = Stmt\Continue_[null]; } - | T_CONTINUE expr ';' { $$ = Stmt\Continue_[$2]; } - | T_RETURN ';' { $$ = Stmt\Return_[null]; } - | T_RETURN expr ';' { $$ = Stmt\Return_[$2]; } - | yield_expr ';' { $$ = $1; } - | T_GLOBAL global_var_list ';' { $$ = Stmt\Global_[$2]; } - | T_STATIC static_var_list ';' { $$ = Stmt\Static_[$2]; } - | T_ECHO expr_list ';' { $$ = Stmt\Echo_[$2]; } - | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } - | expr ';' { $$ = $1; } - | T_UNSET '(' variables_list ')' ';' { $$ = Stmt\Unset_[$3]; } - | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $5[0], ['keyVar' => null, 'byRef' => $5[1], 'stmts' => $7]]; } - | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $7[0], ['keyVar' => $5, 'byRef' => $7[1], 'stmts' => $9]]; } - | T_DECLARE '(' declare_list ')' declare_statement { $$ = Stmt\Declare_[$3, $5]; } - | T_TRY '{' inner_statement_list '}' catches optional_finally - { $$ = Stmt\TryCatch[$3, $5, $6]; $this->checkTryCatch($$); } - | T_THROW expr ';' { $$ = Stmt\Throw_[$2]; } - | T_GOTO T_STRING ';' { $$ = Stmt\Goto_[$2]; } - | T_STRING ':' { $$ = Stmt\Label[$1]; } - | expr error { $$ = $1; } - | error { $$ = array(); /* means: no statement */ } -; - -statement: - non_empty_statement { $$ = $1; } - | ';' - { makeNop($$, $this->startAttributeStack[#1]); - if ($$ === null) $$ = array(); /* means: no statement */ } -; - -catches: - /* empty */ { init(); } - | catches catch { push($1, $2); } -; - -catch: - T_CATCH '(' name T_VARIABLE ')' '{' inner_statement_list '}' - { $$ = Stmt\Catch_[array($3), parseVar($4), $7]; } -; - -optional_finally: - /* empty */ { $$ = null; } - | T_FINALLY '{' inner_statement_list '}' { $$ = Stmt\Finally_[$3]; } -; - -variables_list: - variable { init($1); } - | variables_list ',' variable { push($1, $3); } -; - -optional_ref: - /* empty */ { $$ = false; } - | '&' { $$ = true; } -; - -optional_ellipsis: - /* empty */ { $$ = false; } - | T_ELLIPSIS { $$ = true; } -; - -function_declaration_statement: - T_FUNCTION optional_ref T_STRING '(' parameter_list ')' optional_return_type '{' inner_statement_list '}' - { $$ = Stmt\Function_[$3, ['byRef' => $2, 'params' => $5, 'returnType' => $7, 'stmts' => $9]]; } -; - -class_declaration_statement: - class_entry_type T_STRING extends_from implements_list '{' class_statement_list '}' - { $$ = Stmt\Class_[$2, ['type' => $1, 'extends' => $3, 'implements' => $4, 'stmts' => $6]]; - $this->checkClass($$, #2); } - | T_INTERFACE T_STRING interface_extends_list '{' class_statement_list '}' - { $$ = Stmt\Interface_[$2, ['extends' => $3, 'stmts' => $5]]; - $this->checkInterface($$, #2); } - | T_TRAIT T_STRING '{' class_statement_list '}' - { $$ = Stmt\Trait_[$2, ['stmts' => $4]]; } -; - -class_entry_type: - T_CLASS { $$ = 0; } - | T_ABSTRACT T_CLASS { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL T_CLASS { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -extends_from: - /* empty */ { $$ = null; } - | T_EXTENDS class_name { $$ = $2; } -; - -interface_extends_list: - /* empty */ { $$ = array(); } - | T_EXTENDS class_name_list { $$ = $2; } -; - -implements_list: - /* empty */ { $$ = array(); } - | T_IMPLEMENTS class_name_list { $$ = $2; } -; - -class_name_list: - class_name { init($1); } - | class_name_list ',' class_name { push($1, $3); } -; - -for_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOR ';' { $$ = $2; } -; - -foreach_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOREACH ';' { $$ = $2; } -; - -declare_statement: - non_empty_statement { $$ = toArray($1); } - | ';' { $$ = null; } - | ':' inner_statement_list T_ENDDECLARE ';' { $$ = $2; } -; - -declare_list: - declare_list_element { init($1); } - | declare_list ',' declare_list_element { push($1, $3); } -; - -declare_list_element: - T_STRING '=' static_scalar { $$ = Stmt\DeclareDeclare[$1, $3]; } -; - -switch_case_list: - '{' case_list '}' { $$ = $2; } - | '{' ';' case_list '}' { $$ = $3; } - | ':' case_list T_ENDSWITCH ';' { $$ = $2; } - | ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; } -; - -case_list: - /* empty */ { init(); } - | case_list case { push($1, $2); } -; - -case: - T_CASE expr case_separator inner_statement_list { $$ = Stmt\Case_[$2, $4]; } - | T_DEFAULT case_separator inner_statement_list { $$ = Stmt\Case_[null, $3]; } -; - -case_separator: - ':' - | ';' -; - -while_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDWHILE ';' { $$ = $2; } -; - -elseif_list: - /* empty */ { init(); } - | elseif_list elseif { push($1, $2); } -; - -elseif: - T_ELSEIF parentheses_expr statement { $$ = Stmt\ElseIf_[$2, toArray($3)]; } -; - -new_elseif_list: - /* empty */ { init(); } - | new_elseif_list new_elseif { push($1, $2); } -; - -new_elseif: - T_ELSEIF parentheses_expr ':' inner_statement_list { $$ = Stmt\ElseIf_[$2, $4]; } -; - -else_single: - /* empty */ { $$ = null; } - | T_ELSE statement { $$ = Stmt\Else_[toArray($2)]; } -; - -new_else_single: - /* empty */ { $$ = null; } - | T_ELSE ':' inner_statement_list { $$ = Stmt\Else_[$3]; } -; - -foreach_variable: - variable { $$ = array($1, false); } - | '&' variable { $$ = array($2, true); } - | list_expr { $$ = array($1, false); } -; - -parameter_list: - non_empty_parameter_list { $$ = $1; } - | /* empty */ { $$ = array(); } -; - -non_empty_parameter_list: - parameter { init($1); } - | non_empty_parameter_list ',' parameter { push($1, $3); } -; - -parameter: - optional_param_type optional_ref optional_ellipsis T_VARIABLE - { $$ = Node\Param[parseVar($4), null, $1, $2, $3]; $this->checkParam($$); } - | optional_param_type optional_ref optional_ellipsis T_VARIABLE '=' static_scalar - { $$ = Node\Param[parseVar($4), $6, $1, $2, $3]; $this->checkParam($$); } -; - -type: - name { $$ = $1; } - | T_ARRAY { $$ = 'array'; } - | T_CALLABLE { $$ = 'callable'; } -; - -optional_param_type: - /* empty */ { $$ = null; } - | type { $$ = $1; } -; - -optional_return_type: - /* empty */ { $$ = null; } - | ':' type { $$ = $2; } -; - -argument_list: - '(' ')' { $$ = array(); } - | '(' non_empty_argument_list ')' { $$ = $2; } - | '(' yield_expr ')' { $$ = array(Node\Arg[$2, false, false]); } -; - -non_empty_argument_list: - argument { init($1); } - | non_empty_argument_list ',' argument { push($1, $3); } -; - -argument: - expr { $$ = Node\Arg[$1, false, false]; } - | '&' variable { $$ = Node\Arg[$2, true, false]; } - | T_ELLIPSIS expr { $$ = Node\Arg[$2, false, true]; } -; - -global_var_list: - global_var_list ',' global_var { push($1, $3); } - | global_var { init($1); } -; - -global_var: - T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } - | '$' variable { $$ = Expr\Variable[$2]; } - | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } -; - -static_var_list: - static_var_list ',' static_var { push($1, $3); } - | static_var { init($1); } -; - -static_var: - T_VARIABLE { $$ = Stmt\StaticVar[parseVar($1), null]; } - | T_VARIABLE '=' static_scalar { $$ = Stmt\StaticVar[parseVar($1), $3]; } -; - -class_statement_list: - class_statement_list class_statement { push($1, $2); } - | /* empty */ { init(); } -; - -class_statement: - variable_modifiers property_declaration_list ';' - { $$ = Stmt\Property[$1, $2]; $this->checkProperty($$, #1); } - | T_CONST class_const_list ';' { $$ = Stmt\ClassConst[$2, 0]; } - | method_modifiers T_FUNCTION optional_ref identifier '(' parameter_list ')' optional_return_type method_body - { $$ = Stmt\ClassMethod[$4, ['type' => $1, 'byRef' => $3, 'params' => $6, 'returnType' => $8, 'stmts' => $9]]; - $this->checkClassMethod($$, #1); } - | T_USE class_name_list trait_adaptations { $$ = Stmt\TraitUse[$2, $3]; } -; - -trait_adaptations: - ';' { $$ = array(); } - | '{' trait_adaptation_list '}' { $$ = $2; } -; - -trait_adaptation_list: - /* empty */ { init(); } - | trait_adaptation_list trait_adaptation { push($1, $2); } -; - -trait_adaptation: - trait_method_reference_fully_qualified T_INSTEADOF class_name_list ';' - { $$ = Stmt\TraitUseAdaptation\Precedence[$1[0], $1[1], $3]; } - | trait_method_reference T_AS member_modifier identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, $4]; } - | trait_method_reference T_AS member_modifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, null]; } - | trait_method_reference T_AS T_STRING ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } - | trait_method_reference T_AS reserved_non_modifiers ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } -; - -trait_method_reference_fully_qualified: - name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = array($1, $3); } -; -trait_method_reference: - trait_method_reference_fully_qualified { $$ = $1; } - | identifier { $$ = array(null, $1); } -; - -method_body: - ';' /* abstract method */ { $$ = null; } - | '{' inner_statement_list '}' { $$ = $2; } -; - -variable_modifiers: - non_empty_member_modifiers { $$ = $1; } - | T_VAR { $$ = 0; } -; - -method_modifiers: - /* empty */ { $$ = 0; } - | non_empty_member_modifiers { $$ = $1; } -; - -non_empty_member_modifiers: - member_modifier { $$ = $1; } - | non_empty_member_modifiers member_modifier { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } -; - -member_modifier: - T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } - | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } - | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } - | T_STATIC { $$ = Stmt\Class_::MODIFIER_STATIC; } - | T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -property_declaration_list: - property_declaration { init($1); } - | property_declaration_list ',' property_declaration { push($1, $3); } -; - -property_declaration: - T_VARIABLE { $$ = Stmt\PropertyProperty[parseVar($1), null]; } - | T_VARIABLE '=' static_scalar { $$ = Stmt\PropertyProperty[parseVar($1), $3]; } -; - -expr_list: - expr_list ',' expr { push($1, $3); } - | expr { init($1); } -; - -for_expr: - /* empty */ { $$ = array(); } - | expr_list { $$ = $1; } -; - -expr: - variable { $$ = $1; } - | list_expr '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' '&' variable { $$ = Expr\AssignRef[$1, $4]; } - | variable '=' '&' new_expr { $$ = Expr\AssignRef[$1, $4]; } - | new_expr { $$ = $1; } - | T_CLONE expr { $$ = Expr\Clone_[$2]; } - | variable T_PLUS_EQUAL expr { $$ = Expr\AssignOp\Plus [$1, $3]; } - | variable T_MINUS_EQUAL expr { $$ = Expr\AssignOp\Minus [$1, $3]; } - | variable T_MUL_EQUAL expr { $$ = Expr\AssignOp\Mul [$1, $3]; } - | variable T_DIV_EQUAL expr { $$ = Expr\AssignOp\Div [$1, $3]; } - | variable T_CONCAT_EQUAL expr { $$ = Expr\AssignOp\Concat [$1, $3]; } - | variable T_MOD_EQUAL expr { $$ = Expr\AssignOp\Mod [$1, $3]; } - | variable T_AND_EQUAL expr { $$ = Expr\AssignOp\BitwiseAnd[$1, $3]; } - | variable T_OR_EQUAL expr { $$ = Expr\AssignOp\BitwiseOr [$1, $3]; } - | variable T_XOR_EQUAL expr { $$ = Expr\AssignOp\BitwiseXor[$1, $3]; } - | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } - | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } - | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } - | variable T_INC { $$ = Expr\PostInc[$1]; } - | T_INC variable { $$ = Expr\PreInc [$2]; } - | variable T_DEC { $$ = Expr\PostDec[$1]; } - | T_DEC variable { $$ = Expr\PreDec [$2]; } - | expr T_BOOLEAN_OR expr { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | expr T_BOOLEAN_AND expr { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | expr T_LOGICAL_OR expr { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | expr T_LOGICAL_AND expr { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | expr T_LOGICAL_XOR expr { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | expr '|' expr { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | expr '&' expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | expr '^' expr { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | expr '.' expr { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | expr '+' expr { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | expr '-' expr { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | expr '*' expr { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | expr '/' expr { $$ = Expr\BinaryOp\Div [$1, $3]; } - | expr '%' expr { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | expr T_SL expr { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | expr T_SR expr { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | expr T_POW expr { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' expr %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' expr %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' expr { $$ = Expr\BooleanNot[$2]; } - | '~' expr { $$ = Expr\BitwiseNot[$2]; } - | expr T_IS_IDENTICAL expr { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | expr T_IS_NOT_IDENTICAL expr { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | expr T_IS_EQUAL expr { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | expr T_IS_NOT_EQUAL expr { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | expr T_SPACESHIP expr { $$ = Expr\BinaryOp\Spaceship [$1, $3]; } - | expr '<' expr { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | expr T_IS_SMALLER_OR_EQUAL expr { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | expr '>' expr { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | expr T_IS_GREATER_OR_EQUAL expr { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | expr T_INSTANCEOF class_name_reference { $$ = Expr\Instanceof_[$1, $3]; } - | parentheses_expr { $$ = $1; } - /* we need a separate '(' new_expr ')' rule to avoid problems caused by a s/r conflict */ - | '(' new_expr ')' { $$ = $2; } - | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } - | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } - | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } - | T_ISSET '(' variables_list ')' { $$ = Expr\Isset_[$3]; } - | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } - | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } - | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } - | T_EVAL parentheses_expr { $$ = Expr\Eval_[$2]; } - | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } - | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } - | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } - | T_DOUBLE_CAST expr { $$ = Expr\Cast\Double [$2]; } - | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } - | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } - | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } - | T_BOOL_CAST expr { $$ = Expr\Cast\Bool_ [$2]; } - | T_UNSET_CAST expr { $$ = Expr\Cast\Unset_ [$2]; } - | T_EXIT exit_expr - { $attrs = attributes(); - $attrs['kind'] = strtolower($1) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $$ = new Expr\Exit_($2, $attrs); } - | '@' expr { $$ = Expr\ErrorSuppress[$2]; } - | scalar { $$ = $1; } - | array_expr { $$ = $1; } - | scalar_dereference { $$ = $1; } - | '`' backticks_expr '`' { $$ = Expr\ShellExec[$2]; } - | T_PRINT expr { $$ = Expr\Print_[$2]; } - | T_YIELD { $$ = Expr\Yield_[null, null]; } - | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } - | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type - '{' inner_statement_list '}' - { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $9]]; } - | T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type - '{' inner_statement_list '}' - { $$ = Expr\Closure[['static' => true, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $10]]; } -; - -parentheses_expr: - '(' expr ')' { $$ = $2; } - | '(' yield_expr ')' { $$ = $2; } -; - -yield_expr: - T_YIELD expr { $$ = Expr\Yield_[$2, null]; } - | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } -; - -array_expr: - T_ARRAY '(' array_pair_list ')' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_LONG; - $$ = new Expr\Array_($3, $attrs); } - | '[' array_pair_list ']' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_SHORT; - $$ = new Expr\Array_($2, $attrs); } -; - -scalar_dereference: - array_expr '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' - { $attrs = attributes(); $attrs['kind'] = strKind($1); - $$ = Expr\ArrayDimFetch[new Scalar\String_(Scalar\String_::parse($1), $attrs), $3]; } - | constant '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | scalar_dereference '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -anonymous_class: - T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' - { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $3, 'implements' => $4, 'stmts' => $6]], $2); - $this->checkClass($$[0], -1); } - -new_expr: - T_NEW class_name_reference ctor_arguments { $$ = Expr\New_[$2, $3]; } - | T_NEW anonymous_class - { list($class, $ctorArgs) = $2; $$ = Expr\New_[$class, $ctorArgs]; } -; - -lexical_vars: - /* empty */ { $$ = array(); } - | T_USE '(' lexical_var_list ')' { $$ = $3; } -; - -lexical_var_list: - lexical_var { init($1); } - | lexical_var_list ',' lexical_var { push($1, $3); } -; - -lexical_var: - optional_ref T_VARIABLE { $$ = Expr\ClosureUse[parseVar($2), $1]; } -; - -function_call: - name argument_list { $$ = Expr\FuncCall[$1, $2]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier argument_list - { $$ = Expr\StaticCall[$1, $3, $4]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '{' expr '}' argument_list - { $$ = Expr\StaticCall[$1, $4, $6]; } - | static_property argument_list { - if ($1 instanceof Node\Expr\StaticPropertyFetch) { - $$ = Expr\StaticCall[$1->class, Expr\Variable[$1->name], $2]; - } elseif ($1 instanceof Node\Expr\ArrayDimFetch) { - $tmp = $1; - while ($tmp->var instanceof Node\Expr\ArrayDimFetch) { - $tmp = $tmp->var; - } - - $$ = Expr\StaticCall[$tmp->var->class, $1, $2]; - $tmp->var = Expr\Variable[$tmp->var->name]; - } else { - throw new \Exception; - } - } - | variable_without_objects argument_list - { $$ = Expr\FuncCall[$1, $2]; } - | function_call '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -class_name: - T_STATIC { $$ = Name[$1]; } - | name { $$ = $1; } -; - -name: - namespace_name_parts { $$ = Name[$1]; } - | T_NS_SEPARATOR namespace_name_parts { $$ = Name\FullyQualified[$2]; } - | T_NAMESPACE T_NS_SEPARATOR namespace_name_parts { $$ = Name\Relative[$3]; } -; - -class_name_reference: - class_name { $$ = $1; } - | dynamic_class_name_reference { $$ = $1; } -; - -dynamic_class_name_reference: - object_access_for_dcnr { $$ = $1; } - | base_variable { $$ = $1; } -; - -class_name_or_var: - class_name { $$ = $1; } - | reference_variable { $$ = $1; } -; - -object_access_for_dcnr: - base_variable T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | object_access_for_dcnr T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | object_access_for_dcnr '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | object_access_for_dcnr '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -exit_expr: - /* empty */ { $$ = null; } - | '(' ')' { $$ = null; } - | parentheses_expr { $$ = $1; } -; - -backticks_expr: - /* empty */ { $$ = array(); } - | T_ENCAPSED_AND_WHITESPACE - { $$ = array(Scalar\EncapsedStringPart[Scalar\String_::parseEscapeSequences($1, '`', false)]); } - | encaps_list { parseEncapsed($1, '`', false); $$ = $1; } -; - -ctor_arguments: - /* empty */ { $$ = array(); } - | argument_list { $$ = $1; } -; - -common_scalar: - T_LNUMBER { $$ = $this->parseLNumber($1, attributes(), true); } - | T_DNUMBER { $$ = Scalar\DNumber[Scalar\DNumber::parse($1)]; } - | T_CONSTANT_ENCAPSED_STRING - { $attrs = attributes(); $attrs['kind'] = strKind($1); - $$ = new Scalar\String_(Scalar\String_::parse($1, false), $attrs); } - | T_LINE { $$ = Scalar\MagicConst\Line[]; } - | T_FILE { $$ = Scalar\MagicConst\File[]; } - | T_DIR { $$ = Scalar\MagicConst\Dir[]; } - | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } - | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } - | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } - | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } - | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } - | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - $$ = new Scalar\String_(Scalar\String_::parseDocString($1, $2, false), $attrs); } - | T_START_HEREDOC T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - $$ = new Scalar\String_('', $attrs); } -; - -static_scalar: - common_scalar { $$ = $1; } - | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = Expr\ClassConstFetch[$1, $3]; } - | name { $$ = Expr\ConstFetch[$1]; } - | T_ARRAY '(' static_array_pair_list ')' { $$ = Expr\Array_[$3]; } - | '[' static_array_pair_list ']' { $$ = Expr\Array_[$2]; } - | static_operation { $$ = $1; } -; - -static_operation: - static_scalar T_BOOLEAN_OR static_scalar { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | static_scalar T_BOOLEAN_AND static_scalar { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | static_scalar T_LOGICAL_OR static_scalar { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | static_scalar T_LOGICAL_AND static_scalar { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | static_scalar T_LOGICAL_XOR static_scalar { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | static_scalar '|' static_scalar { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | static_scalar '&' static_scalar { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | static_scalar '^' static_scalar { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | static_scalar '.' static_scalar { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | static_scalar '+' static_scalar { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | static_scalar '-' static_scalar { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | static_scalar '*' static_scalar { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | static_scalar '/' static_scalar { $$ = Expr\BinaryOp\Div [$1, $3]; } - | static_scalar '%' static_scalar { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | static_scalar T_SL static_scalar { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | static_scalar T_SR static_scalar { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | static_scalar T_POW static_scalar { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' static_scalar %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' static_scalar %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' static_scalar { $$ = Expr\BooleanNot[$2]; } - | '~' static_scalar { $$ = Expr\BitwiseNot[$2]; } - | static_scalar T_IS_IDENTICAL static_scalar { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | static_scalar T_IS_NOT_IDENTICAL static_scalar { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | static_scalar T_IS_EQUAL static_scalar { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | static_scalar T_IS_NOT_EQUAL static_scalar { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | static_scalar '<' static_scalar { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | static_scalar T_IS_SMALLER_OR_EQUAL static_scalar { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | static_scalar '>' static_scalar { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | static_scalar T_IS_GREATER_OR_EQUAL static_scalar { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | static_scalar '?' static_scalar ':' static_scalar { $$ = Expr\Ternary[$1, $3, $5]; } - | static_scalar '?' ':' static_scalar { $$ = Expr\Ternary[$1, null, $4]; } - | static_scalar '[' static_scalar ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | '(' static_scalar ')' { $$ = $2; } -; - -constant: - name { $$ = Expr\ConstFetch[$1]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier - { $$ = Expr\ClassConstFetch[$1, $3]; } -; - -scalar: - common_scalar { $$ = $1; } - | constant { $$ = $1; } - | '"' encaps_list '"' - { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } - | T_START_HEREDOC encaps_list T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - parseEncapsedDoc($2, true); $$ = new Scalar\Encapsed($2, $attrs); } -; - -static_array_pair_list: - /* empty */ { $$ = array(); } - | non_empty_static_array_pair_list optional_comma { $$ = $1; } -; - -optional_comma: - /* empty */ - | ',' -; - -non_empty_static_array_pair_list: - non_empty_static_array_pair_list ',' static_array_pair { push($1, $3); } - | static_array_pair { init($1); } -; - -static_array_pair: - static_scalar T_DOUBLE_ARROW static_scalar { $$ = Expr\ArrayItem[$3, $1, false]; } - | static_scalar { $$ = Expr\ArrayItem[$1, null, false]; } -; - -variable: - object_access { $$ = $1; } - | base_variable { $$ = $1; } - | function_call { $$ = $1; } - | new_expr_array_deref { $$ = $1; } -; - -new_expr_array_deref: - '(' new_expr ')' '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$2, $5]; } - | new_expr_array_deref '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -object_access: - variable_or_new_expr T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | variable_or_new_expr T_OBJECT_OPERATOR object_property argument_list - { $$ = Expr\MethodCall[$1, $3, $4]; } - | object_access argument_list { $$ = Expr\FuncCall[$1, $2]; } - | object_access '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | object_access '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -variable_or_new_expr: - variable { $$ = $1; } - | '(' new_expr ')' { $$ = $2; } -; - -variable_without_objects: - reference_variable { $$ = $1; } - | '$' variable_without_objects { $$ = Expr\Variable[$2]; } -; - -base_variable: - variable_without_objects { $$ = $1; } - | static_property { $$ = $1; } -; - -static_property: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '$' reference_variable - { $$ = Expr\StaticPropertyFetch[$1, $4]; } - | static_property_with_arrays { $$ = $1; } -; - -static_property_with_arrays: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM T_VARIABLE - { $$ = Expr\StaticPropertyFetch[$1, parseVar($3)]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '$' '{' expr '}' - { $$ = Expr\StaticPropertyFetch[$1, $5]; } - | static_property_with_arrays '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | static_property_with_arrays '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -reference_variable: - reference_variable '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | reference_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } - | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } -; - -dim_offset: - /* empty */ { $$ = null; } - | expr { $$ = $1; } -; - -object_property: - T_STRING { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | variable_without_objects { $$ = $1; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -list_expr: - T_LIST '(' list_expr_elements ')' { $$ = Expr\List_[$3]; } -; - -list_expr_elements: - list_expr_elements ',' list_expr_element { push($1, $3); } - | list_expr_element { init($1); } -; - -list_expr_element: - variable { $$ = Expr\ArrayItem[$1, null, false]; } - | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } - | /* empty */ { $$ = null; } -; - -array_pair_list: - /* empty */ { $$ = array(); } - | non_empty_array_pair_list optional_comma { $$ = $1; } -; - -non_empty_array_pair_list: - non_empty_array_pair_list ',' array_pair { push($1, $3); } - | array_pair { init($1); } -; - -array_pair: - expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } - | '&' variable { $$ = Expr\ArrayItem[$2, null, true]; } -; - -encaps_list: - encaps_list encaps_var { push($1, $2); } - | encaps_list encaps_string_part { push($1, $2); } - | encaps_var { init($1); } - | encaps_string_part encaps_var { init($1, $2); } -; - -encaps_string_part: - T_ENCAPSED_AND_WHITESPACE { $$ = Scalar\EncapsedStringPart[$1]; } -; - -encaps_base_var: - T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } -; - -encaps_var: - encaps_base_var { $$ = $1; } - | encaps_base_var '[' encaps_var_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | encaps_base_var T_OBJECT_OPERATOR T_STRING { $$ = Expr\PropertyFetch[$1, $3]; } - | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' - { $$ = Expr\ArrayDimFetch[Expr\Variable[$2], $4]; } - | T_CURLY_OPEN variable '}' { $$ = $2; } -; - -encaps_var_offset: - T_STRING { $$ = Scalar\String_[$1]; } - | T_NUM_STRING { $$ = $this->parseNumString($1, attributes()); } - | T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } -; - -%% diff --git a/vendor/nikic/php-parser/grammar/php7.y b/vendor/nikic/php-parser/grammar/php7.y deleted file mode 100644 index b941c496..00000000 --- a/vendor/nikic/php-parser/grammar/php7.y +++ /dev/null @@ -1,965 +0,0 @@ -%pure_parser -%expect 2 - -%tokens - -%% - -start: - top_statement_list { $$ = $this->handleNamespaces($1); } -; - -top_statement_list_ex: - top_statement_list_ex top_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -top_statement_list: - top_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -reserved_non_modifiers: - T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND - | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE - | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH - | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO - | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT - | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS - | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER -; - -semi_reserved: - reserved_non_modifiers - | T_STATIC | T_ABSTRACT | T_FINAL | T_PRIVATE | T_PROTECTED | T_PUBLIC -; - -identifier: - T_STRING { $$ = $1; } - | semi_reserved { $$ = $1; } -; - -namespace_name_parts: - T_STRING { init($1); } - | namespace_name_parts T_NS_SEPARATOR T_STRING { push($1, $3); } -; - -namespace_name: - namespace_name_parts { $$ = Name[$1]; } -; - -semi: - ';' { /* nothing */ } - | error { /* nothing */ } -; - -no_comma: - /* empty */ { /* nothing */ } - | ',' { $this->emitError(new Error('A trailing comma is not allowed here', attributes())); } -; - -optional_comma: - /* empty */ - | ',' - -top_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { $$ = Stmt\HaltCompiler[$this->lexer->handleHaltCompiler()]; } - | T_NAMESPACE namespace_name semi - { $$ = Stmt\Namespace_[$2, null]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($$); } - | T_NAMESPACE namespace_name '{' top_statement_list '}' - { $$ = Stmt\Namespace_[$2, $4]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_NAMESPACE '{' top_statement_list '}' - { $$ = Stmt\Namespace_[null, $3]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_USE use_declarations semi { $$ = Stmt\Use_[$2, Stmt\Use_::TYPE_NORMAL]; } - | T_USE use_type use_declarations semi { $$ = Stmt\Use_[$3, $2]; } - | group_use_declaration semi { $$ = $1; } - | T_CONST constant_declaration_list semi { $$ = Stmt\Const_[$2]; } -; - -use_type: - T_FUNCTION { $$ = Stmt\Use_::TYPE_FUNCTION; } - | T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; } -; - -/* Using namespace_name_parts here to avoid s/r conflict on T_NS_SEPARATOR */ -group_use_declaration: - T_USE use_type namespace_name_parts T_NS_SEPARATOR '{' unprefixed_use_declarations '}' - { $$ = Stmt\GroupUse[new Name($3, stackAttributes(#3)), $6, $2]; } - | T_USE use_type T_NS_SEPARATOR namespace_name_parts T_NS_SEPARATOR '{' unprefixed_use_declarations '}' - { $$ = Stmt\GroupUse[new Name($4, stackAttributes(#4)), $7, $2]; } - | T_USE namespace_name_parts T_NS_SEPARATOR '{' inline_use_declarations '}' - { $$ = Stmt\GroupUse[new Name($2, stackAttributes(#2)), $5, Stmt\Use_::TYPE_UNKNOWN]; } - | T_USE T_NS_SEPARATOR namespace_name_parts T_NS_SEPARATOR '{' inline_use_declarations '}' - { $$ = Stmt\GroupUse[new Name($3, stackAttributes(#3)), $6, Stmt\Use_::TYPE_UNKNOWN]; } -; - -unprefixed_use_declarations: - non_empty_unprefixed_use_declarations optional_comma { $$ = $1; } -; - -non_empty_unprefixed_use_declarations: - non_empty_unprefixed_use_declarations ',' unprefixed_use_declaration - { push($1, $3); } - | unprefixed_use_declaration { init($1); } -; - -use_declarations: - non_empty_use_declarations no_comma { $$ = $1; } -; - -non_empty_use_declarations: - non_empty_use_declarations ',' use_declaration { push($1, $3); } - | use_declaration { init($1); } -; - -inline_use_declarations: - non_empty_inline_use_declarations optional_comma { $$ = $1; } -; - -non_empty_inline_use_declarations: - non_empty_inline_use_declarations ',' inline_use_declaration - { push($1, $3); } - | inline_use_declaration { init($1); } -; - -unprefixed_use_declaration: - namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | namespace_name T_AS T_STRING - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -use_declaration: - unprefixed_use_declaration { $$ = $1; } - | T_NS_SEPARATOR unprefixed_use_declaration { $$ = $2; } -; - -inline_use_declaration: - unprefixed_use_declaration { $$ = $1; $$->type = Stmt\Use_::TYPE_NORMAL; } - | use_type unprefixed_use_declaration { $$ = $2; $$->type = $1; } -; - -constant_declaration_list: - non_empty_constant_declaration_list no_comma { $$ = $1; } -; - -non_empty_constant_declaration_list: - non_empty_constant_declaration_list ',' constant_declaration - { push($1, $3); } - | constant_declaration { init($1); } -; - -constant_declaration: - T_STRING '=' expr { $$ = Node\Const_[$1, $3]; } -; - -class_const_list: - non_empty_class_const_list no_comma { $$ = $1; } -; - -non_empty_class_const_list: - non_empty_class_const_list ',' class_const { push($1, $3); } - | class_const { init($1); } -; - -class_const: - identifier '=' expr { $$ = Node\Const_[$1, $3]; } -; - -inner_statement_list_ex: - inner_statement_list_ex inner_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -inner_statement_list: - inner_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -inner_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', attributes()); } -; - -non_empty_statement: - '{' inner_statement_list '}' - { - if ($2) { - $$ = $2; prependLeadingComments($$); - } else { - makeNop($$, $this->startAttributeStack[#1]); - if (null === $$) { $$ = array(); } - } - } - | T_IF '(' expr ')' statement elseif_list else_single - { $$ = Stmt\If_[$3, ['stmts' => toArray($5), 'elseifs' => $6, 'else' => $7]]; } - | T_IF '(' expr ')' ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' - { $$ = Stmt\If_[$3, ['stmts' => $6, 'elseifs' => $7, 'else' => $8]]; } - | T_WHILE '(' expr ')' while_statement { $$ = Stmt\While_[$3, $5]; } - | T_DO statement T_WHILE '(' expr ')' ';' { $$ = Stmt\Do_ [$5, toArray($2)]; } - | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement - { $$ = Stmt\For_[['init' => $3, 'cond' => $5, 'loop' => $7, 'stmts' => $9]]; } - | T_SWITCH '(' expr ')' switch_case_list { $$ = Stmt\Switch_[$3, $5]; } - | T_BREAK optional_expr semi { $$ = Stmt\Break_[$2]; } - | T_CONTINUE optional_expr semi { $$ = Stmt\Continue_[$2]; } - | T_RETURN optional_expr semi { $$ = Stmt\Return_[$2]; } - | T_GLOBAL global_var_list semi { $$ = Stmt\Global_[$2]; } - | T_STATIC static_var_list semi { $$ = Stmt\Static_[$2]; } - | T_ECHO expr_list semi { $$ = Stmt\Echo_[$2]; } - | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } - | expr semi { $$ = $1; } - | T_UNSET '(' variables_list ')' semi { $$ = Stmt\Unset_[$3]; } - | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $5[0], ['keyVar' => null, 'byRef' => $5[1], 'stmts' => $7]]; } - | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $7[0], ['keyVar' => $5, 'byRef' => $7[1], 'stmts' => $9]]; } - | T_DECLARE '(' declare_list ')' declare_statement { $$ = Stmt\Declare_[$3, $5]; } - | T_TRY '{' inner_statement_list '}' catches optional_finally - { $$ = Stmt\TryCatch[$3, $5, $6]; $this->checkTryCatch($$); } - | T_THROW expr semi { $$ = Stmt\Throw_[$2]; } - | T_GOTO T_STRING semi { $$ = Stmt\Goto_[$2]; } - | T_STRING ':' { $$ = Stmt\Label[$1]; } - | error { $$ = array(); /* means: no statement */ } -; - -statement: - non_empty_statement { $$ = $1; } - | ';' - { makeNop($$, $this->startAttributeStack[#1]); - if ($$ === null) $$ = array(); /* means: no statement */ } -; - -catches: - /* empty */ { init(); } - | catches catch { push($1, $2); } -; - -name_union: - name { init($1); } - | name_union '|' name { push($1, $3); } -; - -catch: - T_CATCH '(' name_union T_VARIABLE ')' '{' inner_statement_list '}' - { $$ = Stmt\Catch_[$3, parseVar($4), $7]; } -; - -optional_finally: - /* empty */ { $$ = null; } - | T_FINALLY '{' inner_statement_list '}' { $$ = Stmt\Finally_[$3]; } -; - -variables_list: - non_empty_variables_list no_comma { $$ = $1; } -; - -non_empty_variables_list: - variable { init($1); } - | non_empty_variables_list ',' variable { push($1, $3); } -; - -optional_ref: - /* empty */ { $$ = false; } - | '&' { $$ = true; } -; - -optional_ellipsis: - /* empty */ { $$ = false; } - | T_ELLIPSIS { $$ = true; } -; - -function_declaration_statement: - T_FUNCTION optional_ref T_STRING '(' parameter_list ')' optional_return_type '{' inner_statement_list '}' - { $$ = Stmt\Function_[$3, ['byRef' => $2, 'params' => $5, 'returnType' => $7, 'stmts' => $9]]; } -; - -class_declaration_statement: - class_entry_type T_STRING extends_from implements_list '{' class_statement_list '}' - { $$ = Stmt\Class_[$2, ['type' => $1, 'extends' => $3, 'implements' => $4, 'stmts' => $6]]; - $this->checkClass($$, #2); } - | T_INTERFACE T_STRING interface_extends_list '{' class_statement_list '}' - { $$ = Stmt\Interface_[$2, ['extends' => $3, 'stmts' => $5]]; - $this->checkInterface($$, #2); } - | T_TRAIT T_STRING '{' class_statement_list '}' - { $$ = Stmt\Trait_[$2, ['stmts' => $4]]; } -; - -class_entry_type: - T_CLASS { $$ = 0; } - | T_ABSTRACT T_CLASS { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL T_CLASS { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -extends_from: - /* empty */ { $$ = null; } - | T_EXTENDS class_name { $$ = $2; } -; - -interface_extends_list: - /* empty */ { $$ = array(); } - | T_EXTENDS class_name_list { $$ = $2; } -; - -implements_list: - /* empty */ { $$ = array(); } - | T_IMPLEMENTS class_name_list { $$ = $2; } -; - -class_name_list: - non_empty_class_name_list no_comma { $$ = $1; } -; - -non_empty_class_name_list: - class_name { init($1); } - | non_empty_class_name_list ',' class_name { push($1, $3); } -; - -for_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOR ';' { $$ = $2; } -; - -foreach_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOREACH ';' { $$ = $2; } -; - -declare_statement: - non_empty_statement { $$ = toArray($1); } - | ';' { $$ = null; } - | ':' inner_statement_list T_ENDDECLARE ';' { $$ = $2; } -; - -declare_list: - non_empty_declare_list no_comma { $$ = $1; } -; - -non_empty_declare_list: - declare_list_element { init($1); } - | non_empty_declare_list ',' declare_list_element { push($1, $3); } -; - -declare_list_element: - T_STRING '=' expr { $$ = Stmt\DeclareDeclare[$1, $3]; } -; - -switch_case_list: - '{' case_list '}' { $$ = $2; } - | '{' ';' case_list '}' { $$ = $3; } - | ':' case_list T_ENDSWITCH ';' { $$ = $2; } - | ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; } -; - -case_list: - /* empty */ { init(); } - | case_list case { push($1, $2); } -; - -case: - T_CASE expr case_separator inner_statement_list { $$ = Stmt\Case_[$2, $4]; } - | T_DEFAULT case_separator inner_statement_list { $$ = Stmt\Case_[null, $3]; } -; - -case_separator: - ':' - | ';' -; - -while_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDWHILE ';' { $$ = $2; } -; - -elseif_list: - /* empty */ { init(); } - | elseif_list elseif { push($1, $2); } -; - -elseif: - T_ELSEIF '(' expr ')' statement { $$ = Stmt\ElseIf_[$3, toArray($5)]; } -; - -new_elseif_list: - /* empty */ { init(); } - | new_elseif_list new_elseif { push($1, $2); } -; - -new_elseif: - T_ELSEIF '(' expr ')' ':' inner_statement_list { $$ = Stmt\ElseIf_[$3, $6]; } -; - -else_single: - /* empty */ { $$ = null; } - | T_ELSE statement { $$ = Stmt\Else_[toArray($2)]; } -; - -new_else_single: - /* empty */ { $$ = null; } - | T_ELSE ':' inner_statement_list { $$ = Stmt\Else_[$3]; } -; - -foreach_variable: - variable { $$ = array($1, false); } - | '&' variable { $$ = array($2, true); } - | list_expr { $$ = array($1, false); } - | array_short_syntax { $$ = array($1, false); } -; - -parameter_list: - non_empty_parameter_list no_comma { $$ = $1; } - | /* empty */ { $$ = array(); } -; - -non_empty_parameter_list: - parameter { init($1); } - | non_empty_parameter_list ',' parameter { push($1, $3); } -; - -parameter: - optional_param_type optional_ref optional_ellipsis T_VARIABLE - { $$ = Node\Param[parseVar($4), null, $1, $2, $3]; $this->checkParam($$); } - | optional_param_type optional_ref optional_ellipsis T_VARIABLE '=' expr - { $$ = Node\Param[parseVar($4), $6, $1, $2, $3]; $this->checkParam($$); } -; - -type_expr: - type { $$ = $1; } - | '?' type { $$ = Node\NullableType[$2]; } -; - -type: - name { $$ = $this->handleBuiltinTypes($1); } - | T_ARRAY { $$ = 'array'; } - | T_CALLABLE { $$ = 'callable'; } -; - -optional_param_type: - /* empty */ { $$ = null; } - | type_expr { $$ = $1; } -; - -optional_return_type: - /* empty */ { $$ = null; } - | ':' type_expr { $$ = $2; } -; - -argument_list: - '(' ')' { $$ = array(); } - | '(' non_empty_argument_list no_comma ')' { $$ = $2; } -; - -non_empty_argument_list: - argument { init($1); } - | non_empty_argument_list ',' argument { push($1, $3); } -; - -argument: - expr { $$ = Node\Arg[$1, false, false]; } - | '&' variable { $$ = Node\Arg[$2, true, false]; } - | T_ELLIPSIS expr { $$ = Node\Arg[$2, false, true]; } -; - -global_var_list: - non_empty_global_var_list no_comma { $$ = $1; } -; - -non_empty_global_var_list: - non_empty_global_var_list ',' global_var { push($1, $3); } - | global_var { init($1); } -; - -global_var: - simple_variable { $$ = Expr\Variable[$1]; } -; - -static_var_list: - non_empty_static_var_list no_comma { $$ = $1; } -; - -non_empty_static_var_list: - non_empty_static_var_list ',' static_var { push($1, $3); } - | static_var { init($1); } -; - -static_var: - T_VARIABLE { $$ = Stmt\StaticVar[parseVar($1), null]; } - | T_VARIABLE '=' expr { $$ = Stmt\StaticVar[parseVar($1), $3]; } -; - -class_statement_list: - class_statement_list class_statement { push($1, $2); } - | /* empty */ { init(); } -; - -class_statement: - variable_modifiers property_declaration_list ';' - { $$ = Stmt\Property[$1, $2]; $this->checkProperty($$, #1); } - | method_modifiers T_CONST class_const_list ';' - { $$ = Stmt\ClassConst[$3, $1]; $this->checkClassConst($$, #1); } - | method_modifiers T_FUNCTION optional_ref identifier '(' parameter_list ')' optional_return_type method_body - { $$ = Stmt\ClassMethod[$4, ['type' => $1, 'byRef' => $3, 'params' => $6, 'returnType' => $8, 'stmts' => $9]]; - $this->checkClassMethod($$, #1); } - | T_USE class_name_list trait_adaptations { $$ = Stmt\TraitUse[$2, $3]; } -; - -trait_adaptations: - ';' { $$ = array(); } - | '{' trait_adaptation_list '}' { $$ = $2; } -; - -trait_adaptation_list: - /* empty */ { init(); } - | trait_adaptation_list trait_adaptation { push($1, $2); } -; - -trait_adaptation: - trait_method_reference_fully_qualified T_INSTEADOF class_name_list ';' - { $$ = Stmt\TraitUseAdaptation\Precedence[$1[0], $1[1], $3]; } - | trait_method_reference T_AS member_modifier identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, $4]; } - | trait_method_reference T_AS member_modifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, null]; } - | trait_method_reference T_AS T_STRING ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } - | trait_method_reference T_AS reserved_non_modifiers ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } -; - -trait_method_reference_fully_qualified: - name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = array($1, $3); } -; -trait_method_reference: - trait_method_reference_fully_qualified { $$ = $1; } - | identifier { $$ = array(null, $1); } -; - -method_body: - ';' /* abstract method */ { $$ = null; } - | '{' inner_statement_list '}' { $$ = $2; } -; - -variable_modifiers: - non_empty_member_modifiers { $$ = $1; } - | T_VAR { $$ = 0; } -; - -method_modifiers: - /* empty */ { $$ = 0; } - | non_empty_member_modifiers { $$ = $1; } -; - -non_empty_member_modifiers: - member_modifier { $$ = $1; } - | non_empty_member_modifiers member_modifier { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } -; - -member_modifier: - T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } - | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } - | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } - | T_STATIC { $$ = Stmt\Class_::MODIFIER_STATIC; } - | T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -property_declaration_list: - non_empty_property_declaration_list no_comma { $$ = $1; } -; - -non_empty_property_declaration_list: - property_declaration { init($1); } - | non_empty_property_declaration_list ',' property_declaration - { push($1, $3); } -; - -property_declaration: - T_VARIABLE { $$ = Stmt\PropertyProperty[parseVar($1), null]; } - | T_VARIABLE '=' expr { $$ = Stmt\PropertyProperty[parseVar($1), $3]; } -; - -expr_list: - non_empty_expr_list no_comma { $$ = $1; } -; - -non_empty_expr_list: - non_empty_expr_list ',' expr { push($1, $3); } - | expr { init($1); } -; - -for_expr: - /* empty */ { $$ = array(); } - | expr_list { $$ = $1; } -; - -expr: - variable { $$ = $1; } - | list_expr '=' expr { $$ = Expr\Assign[$1, $3]; } - | array_short_syntax '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' '&' variable { $$ = Expr\AssignRef[$1, $4]; } - | new_expr { $$ = $1; } - | T_CLONE expr { $$ = Expr\Clone_[$2]; } - | variable T_PLUS_EQUAL expr { $$ = Expr\AssignOp\Plus [$1, $3]; } - | variable T_MINUS_EQUAL expr { $$ = Expr\AssignOp\Minus [$1, $3]; } - | variable T_MUL_EQUAL expr { $$ = Expr\AssignOp\Mul [$1, $3]; } - | variable T_DIV_EQUAL expr { $$ = Expr\AssignOp\Div [$1, $3]; } - | variable T_CONCAT_EQUAL expr { $$ = Expr\AssignOp\Concat [$1, $3]; } - | variable T_MOD_EQUAL expr { $$ = Expr\AssignOp\Mod [$1, $3]; } - | variable T_AND_EQUAL expr { $$ = Expr\AssignOp\BitwiseAnd[$1, $3]; } - | variable T_OR_EQUAL expr { $$ = Expr\AssignOp\BitwiseOr [$1, $3]; } - | variable T_XOR_EQUAL expr { $$ = Expr\AssignOp\BitwiseXor[$1, $3]; } - | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } - | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } - | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } - | variable T_INC { $$ = Expr\PostInc[$1]; } - | T_INC variable { $$ = Expr\PreInc [$2]; } - | variable T_DEC { $$ = Expr\PostDec[$1]; } - | T_DEC variable { $$ = Expr\PreDec [$2]; } - | expr T_BOOLEAN_OR expr { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | expr T_BOOLEAN_AND expr { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | expr T_LOGICAL_OR expr { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | expr T_LOGICAL_AND expr { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | expr T_LOGICAL_XOR expr { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | expr '|' expr { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | expr '&' expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | expr '^' expr { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | expr '.' expr { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | expr '+' expr { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | expr '-' expr { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | expr '*' expr { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | expr '/' expr { $$ = Expr\BinaryOp\Div [$1, $3]; } - | expr '%' expr { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | expr T_SL expr { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | expr T_SR expr { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | expr T_POW expr { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' expr %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' expr %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' expr { $$ = Expr\BooleanNot[$2]; } - | '~' expr { $$ = Expr\BitwiseNot[$2]; } - | expr T_IS_IDENTICAL expr { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | expr T_IS_NOT_IDENTICAL expr { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | expr T_IS_EQUAL expr { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | expr T_IS_NOT_EQUAL expr { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | expr T_SPACESHIP expr { $$ = Expr\BinaryOp\Spaceship [$1, $3]; } - | expr '<' expr { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | expr T_IS_SMALLER_OR_EQUAL expr { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | expr '>' expr { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | expr T_IS_GREATER_OR_EQUAL expr { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | expr T_INSTANCEOF class_name_reference { $$ = Expr\Instanceof_[$1, $3]; } - | '(' expr ')' { $$ = $2; } - | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } - | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } - | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } - | T_ISSET '(' variables_list ')' { $$ = Expr\Isset_[$3]; } - | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } - | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } - | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } - | T_EVAL '(' expr ')' { $$ = Expr\Eval_[$3]; } - | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } - | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } - | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } - | T_DOUBLE_CAST expr { $$ = Expr\Cast\Double [$2]; } - | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } - | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } - | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } - | T_BOOL_CAST expr { $$ = Expr\Cast\Bool_ [$2]; } - | T_UNSET_CAST expr { $$ = Expr\Cast\Unset_ [$2]; } - | T_EXIT exit_expr - { $attrs = attributes(); - $attrs['kind'] = strtolower($1) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $$ = new Expr\Exit_($2, $attrs); } - | '@' expr { $$ = Expr\ErrorSuppress[$2]; } - | scalar { $$ = $1; } - | '`' backticks_expr '`' { $$ = Expr\ShellExec[$2]; } - | T_PRINT expr { $$ = Expr\Print_[$2]; } - | T_YIELD { $$ = Expr\Yield_[null, null]; } - | T_YIELD expr { $$ = Expr\Yield_[$2, null]; } - | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } - | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } - | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type - '{' inner_statement_list '}' - { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $9]]; } - | T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type - '{' inner_statement_list '}' - { $$ = Expr\Closure[['static' => true, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $10]]; } -; - -anonymous_class: - T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' - { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $3, 'implements' => $4, 'stmts' => $6]], $2); - $this->checkClass($$[0], -1); } - -new_expr: - T_NEW class_name_reference ctor_arguments { $$ = Expr\New_[$2, $3]; } - | T_NEW anonymous_class - { list($class, $ctorArgs) = $2; $$ = Expr\New_[$class, $ctorArgs]; } -; - -lexical_vars: - /* empty */ { $$ = array(); } - | T_USE '(' lexical_var_list ')' { $$ = $3; } -; - -lexical_var_list: - non_empty_lexical_var_list no_comma { $$ = $1; } -; - -non_empty_lexical_var_list: - lexical_var { init($1); } - | non_empty_lexical_var_list ',' lexical_var { push($1, $3); } -; - -lexical_var: - optional_ref T_VARIABLE { $$ = Expr\ClosureUse[parseVar($2), $1]; } -; - -function_call: - name argument_list { $$ = Expr\FuncCall[$1, $2]; } - | callable_expr argument_list { $$ = Expr\FuncCall[$1, $2]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { $$ = Expr\StaticCall[$1, $3, $4]; } -; - -class_name: - T_STATIC { $$ = Name[$1]; } - | name { $$ = $1; } -; - -name: - namespace_name_parts { $$ = Name[$1]; } - | T_NS_SEPARATOR namespace_name_parts { $$ = Name\FullyQualified[$2]; } - | T_NAMESPACE T_NS_SEPARATOR namespace_name_parts { $$ = Name\Relative[$3]; } -; - -class_name_reference: - class_name { $$ = $1; } - | new_variable { $$ = $1; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -class_name_or_var: - class_name { $$ = $1; } - | dereferencable { $$ = $1; } -; - -exit_expr: - /* empty */ { $$ = null; } - | '(' optional_expr ')' { $$ = $2; } -; - -backticks_expr: - /* empty */ { $$ = array(); } - | T_ENCAPSED_AND_WHITESPACE - { $$ = array(Scalar\EncapsedStringPart[Scalar\String_::parseEscapeSequences($1, '`')]); } - | encaps_list { parseEncapsed($1, '`', true); $$ = $1; } -; - -ctor_arguments: - /* empty */ { $$ = array(); } - | argument_list { $$ = $1; } -; - -constant: - name { $$ = Expr\ConstFetch[$1]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier - { $$ = Expr\ClassConstFetch[$1, $3]; } - /* We interpret and isolated FOO:: as an unfinished class constant fetch. It could also be - an unfinished static property fetch or unfinished scoped call. */ - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM error - { $$ = Expr\ClassConstFetch[$1, new Expr\Error(stackAttributes(#3))]; $this->errorState = 2; } -; - -array_short_syntax: - '[' array_pair_list ']' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_SHORT; - $$ = new Expr\Array_($2, $attrs); } -; - -dereferencable_scalar: - T_ARRAY '(' array_pair_list ')' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_LONG; - $$ = new Expr\Array_($3, $attrs); } - | array_short_syntax { $$ = $1; } - | T_CONSTANT_ENCAPSED_STRING - { $attrs = attributes(); $attrs['kind'] = strKind($1); - $$ = new Scalar\String_(Scalar\String_::parse($1), $attrs); } -; - -scalar: - T_LNUMBER { $$ = $this->parseLNumber($1, attributes()); } - | T_DNUMBER { $$ = Scalar\DNumber[Scalar\DNumber::parse($1)]; } - | T_LINE { $$ = Scalar\MagicConst\Line[]; } - | T_FILE { $$ = Scalar\MagicConst\File[]; } - | T_DIR { $$ = Scalar\MagicConst\Dir[]; } - | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } - | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } - | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } - | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } - | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } - | dereferencable_scalar { $$ = $1; } - | constant { $$ = $1; } - | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - $$ = new Scalar\String_(Scalar\String_::parseDocString($1, $2), $attrs); } - | T_START_HEREDOC T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - $$ = new Scalar\String_('', $attrs); } - | '"' encaps_list '"' - { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } - | T_START_HEREDOC encaps_list T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - parseEncapsedDoc($2, true); $$ = new Scalar\Encapsed($2, $attrs); } -; - -optional_expr: - /* empty */ { $$ = null; } - | expr { $$ = $1; } -; - -dereferencable: - variable { $$ = $1; } - | '(' expr ')' { $$ = $2; } - | dereferencable_scalar { $$ = $1; } -; - -callable_expr: - callable_variable { $$ = $1; } - | '(' expr ')' { $$ = $2; } - | dereferencable_scalar { $$ = $1; } -; - -callable_variable: - simple_variable { $$ = Expr\Variable[$1]; } - | dereferencable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | constant '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | dereferencable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | function_call { $$ = $1; } - | dereferencable T_OBJECT_OPERATOR property_name argument_list - { $$ = Expr\MethodCall[$1, $3, $4]; } -; - -variable: - callable_variable { $$ = $1; } - | static_member { $$ = $1; } - | dereferencable T_OBJECT_OPERATOR property_name { $$ = Expr\PropertyFetch[$1, $3]; } -; - -simple_variable: - T_VARIABLE { $$ = parseVar($1); } - | '$' '{' expr '}' { $$ = $3; } - | '$' simple_variable { $$ = Expr\Variable[$2]; } - | '$' error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -static_member: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM simple_variable - { $$ = Expr\StaticPropertyFetch[$1, $3]; } -; - -new_variable: - simple_variable { $$ = Expr\Variable[$1]; } - | new_variable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | new_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | new_variable T_OBJECT_OPERATOR property_name { $$ = Expr\PropertyFetch[$1, $3]; } - | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = Expr\StaticPropertyFetch[$1, $3]; } - | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = Expr\StaticPropertyFetch[$1, $3]; } -; - -member_name: - identifier { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | simple_variable { $$ = Expr\Variable[$1]; } -; - -property_name: - T_STRING { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | simple_variable { $$ = Expr\Variable[$1]; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -list_expr: - T_LIST '(' list_expr_elements ')' { $$ = Expr\List_[$3]; } -; - -list_expr_elements: - list_expr_elements ',' list_expr_element { push($1, $3); } - | list_expr_element { init($1); } -; - -list_expr_element: - variable { $$ = Expr\ArrayItem[$1, null, false]; } - | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW variable { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr T_DOUBLE_ARROW list_expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | /* empty */ { $$ = null; } -; - -array_pair_list: - inner_array_pair_list - { $$ = $1; $end = count($$)-1; if ($$[$end] === null) unset($$[$end]); } -; - -inner_array_pair_list: - inner_array_pair_list ',' array_pair { push($1, $3); } - | array_pair { init($1); } -; - -array_pair: - expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } - | '&' variable { $$ = Expr\ArrayItem[$2, null, true]; } - | /* empty */ { $$ = null; } -; - -encaps_list: - encaps_list encaps_var { push($1, $2); } - | encaps_list encaps_string_part { push($1, $2); } - | encaps_var { init($1); } - | encaps_string_part encaps_var { init($1, $2); } -; - -encaps_string_part: - T_ENCAPSED_AND_WHITESPACE { $$ = Scalar\EncapsedStringPart[$1]; } -; - -encaps_base_var: - T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } -; - -encaps_var: - encaps_base_var { $$ = $1; } - | encaps_base_var '[' encaps_var_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | encaps_base_var T_OBJECT_OPERATOR T_STRING { $$ = Expr\PropertyFetch[$1, $3]; } - | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' - { $$ = Expr\ArrayDimFetch[Expr\Variable[$2], $4]; } - | T_CURLY_OPEN variable '}' { $$ = $2; } -; - -encaps_var_offset: - T_STRING { $$ = Scalar\String_[$1]; } - | T_NUM_STRING { $$ = $this->parseNumString($1, attributes()); } - | '-' T_NUM_STRING { $$ = $this->parseNumString('-' . $2, attributes()); } - | T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } -; - -%% diff --git a/vendor/nikic/php-parser/grammar/rebuildParsers.php b/vendor/nikic/php-parser/grammar/rebuildParsers.php deleted file mode 100644 index 340b0eac..00000000 --- a/vendor/nikic/php-parser/grammar/rebuildParsers.php +++ /dev/null @@ -1,263 +0,0 @@ - 'Php5', - __DIR__ . '/php7.y' => 'Php7', -]; - -$tokensFile = __DIR__ . '/tokens.y'; -$tokensTemplate = __DIR__ . '/tokens.template'; -$skeletonFile = __DIR__ . '/parser.template'; -$tmpGrammarFile = __DIR__ . '/tmp_parser.phpy'; -$tmpResultFile = __DIR__ . '/tmp_parser.php'; -$resultDir = __DIR__ . '/../lib/PhpParser/Parser'; -$tokensResultsFile = $resultDir . '/Tokens.php'; - -// check for kmyacc.exe binary in this directory, otherwise fall back to global name -$kmyacc = __DIR__ . '/kmyacc.exe'; -if (!file_exists($kmyacc)) { - $kmyacc = 'kmyacc'; -} - -$options = array_flip($argv); -$optionDebug = isset($options['--debug']); -$optionKeepTmpGrammar = isset($options['--keep-tmp-grammar']); - -/////////////////////////////// -/// Utility regex constants /// -/////////////////////////////// - -const LIB = '(?(DEFINE) - (?\'[^\\\\\']*+(?:\\\\.[^\\\\\']*+)*+\') - (?"[^\\\\"]*+(?:\\\\.[^\\\\"]*+)*+") - (?(?&singleQuotedString)|(?&doubleQuotedString)) - (?/\*[^*]*+(?:\*(?!/)[^*]*+)*+\*/) - (?\{[^\'"/{}]*+(?:(?:(?&string)|(?&comment)|(?&code)|/)[^\'"/{}]*+)*+}) -)'; - -const PARAMS = '\[(?[^[\]]*+(?:\[(?¶ms)\][^[\]]*+)*+)\]'; -const ARGS = '\((?[^()]*+(?:\((?&args)\)[^()]*+)*+)\)'; - -/////////////////// -/// Main script /// -/////////////////// - -$tokens = file_get_contents($tokensFile); - -foreach ($grammarFileToName as $grammarFile => $name) { - echo "Building temporary $name grammar file.\n"; - - $grammarCode = file_get_contents($grammarFile); - $grammarCode = str_replace('%tokens', $tokens, $grammarCode); - - $grammarCode = resolveNodes($grammarCode); - $grammarCode = resolveMacros($grammarCode); - $grammarCode = resolveStackAccess($grammarCode); - - file_put_contents($tmpGrammarFile, $grammarCode); - - $additionalArgs = $optionDebug ? '-t -v' : ''; - - echo "Building $name parser.\n"; - $output = trim(shell_exec("$kmyacc $additionalArgs -l -m $skeletonFile -p $name $tmpGrammarFile 2>&1")); - echo "Output: \"$output\"\n"; - - $resultCode = file_get_contents($tmpResultFile); - $resultCode = removeTrailingWhitespace($resultCode); - - ensureDirExists($resultDir); - file_put_contents("$resultDir/$name.php", $resultCode); - unlink($tmpResultFile); - - echo "Building token definition.\n"; - $output = trim(shell_exec("$kmyacc -l -m $tokensTemplate $tmpGrammarFile 2>&1")); - assert($output === ''); - rename($tmpResultFile, $tokensResultsFile); - - if (!$optionKeepTmpGrammar) { - unlink($tmpGrammarFile); - } -} - -/////////////////////////////// -/// Preprocessing functions /// -/////////////////////////////// - -function resolveNodes($code) { - return preg_replace_callback( - '~\b(?[A-Z][a-zA-Z_\\\\]++)\s*' . PARAMS . '~', - function($matches) { - // recurse - $matches['params'] = resolveNodes($matches['params']); - - $params = magicSplit( - '(?:' . PARAMS . '|' . ARGS . ')(*SKIP)(*FAIL)|,', - $matches['params'] - ); - - $paramCode = ''; - foreach ($params as $param) { - $paramCode .= $param . ', '; - } - - return 'new ' . $matches['name'] . '(' . $paramCode . 'attributes())'; - }, - $code - ); -} - -function resolveMacros($code) { - return preg_replace_callback( - '~\b(?)(?!array\()(?[a-z][A-Za-z]++)' . ARGS . '~', - function($matches) { - // recurse - $matches['args'] = resolveMacros($matches['args']); - - $name = $matches['name']; - $args = magicSplit( - '(?:' . PARAMS . '|' . ARGS . ')(*SKIP)(*FAIL)|,', - $matches['args'] - ); - - if ('attributes' == $name) { - assertArgs(0, $args, $name); - return '$this->startAttributeStack[#1] + $this->endAttributes'; - } - - if ('stackAttributes' == $name) { - assertArgs(1, $args, $name); - return '$this->startAttributeStack[' . $args[0] . ']' - . ' + $this->endAttributeStack[' . $args[0] . ']'; - } - - if ('init' == $name) { - return '$$ = array(' . implode(', ', $args) . ')'; - } - - if ('push' == $name) { - assertArgs(2, $args, $name); - - return $args[0] . '[] = ' . $args[1] . '; $$ = ' . $args[0]; - } - - if ('pushNormalizing' == $name) { - assertArgs(2, $args, $name); - - return 'if (is_array(' . $args[1] . ')) { $$ = array_merge(' . $args[0] . ', ' . $args[1] . '); }' - . ' else { ' . $args[0] . '[] = ' . $args[1] . '; $$ = ' . $args[0] . '; }'; - } - - if ('toArray' == $name) { - assertArgs(1, $args, $name); - - return 'is_array(' . $args[0] . ') ? ' . $args[0] . ' : array(' . $args[0] . ')'; - } - - if ('parseVar' == $name) { - assertArgs(1, $args, $name); - - return 'substr(' . $args[0] . ', 1)'; - } - - if ('parseEncapsed' == $name) { - assertArgs(3, $args, $name); - - return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) {' - . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, ' . $args[1] . ', ' . $args[2] . '); } }'; - } - - if ('parseEncapsedDoc' == $name) { - assertArgs(2, $args, $name); - - return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) {' - . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, null, ' . $args[1] . '); } }' - . ' $s->value = preg_replace(\'~(\r\n|\n|\r)\z~\', \'\', $s->value);' - . ' if (\'\' === $s->value) array_pop(' . $args[0] . ');'; - } - - if ('makeNop' == $name) { - assertArgs(2, $args, $name); - - return '$startAttributes = ' . $args[1] . ';' - . ' if (isset($startAttributes[\'comments\']))' - . ' { ' . $args[0] . ' = new Stmt\Nop([\'comments\' => $startAttributes[\'comments\']]); }' - . ' else { ' . $args[0] . ' = null; }'; - } - - if ('strKind' == $name) { - assertArgs(1, $args, $name); - - return '(' . $args[0] . '[0] === "\'" || (' . $args[0] . '[1] === "\'" && ' - . '(' . $args[0] . '[0] === \'b\' || ' . $args[0] . '[0] === \'B\')) ' - . '? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED)'; - } - - if ('setDocStringAttrs' == $name) { - assertArgs(2, $args, $name); - - return $args[0] . '[\'kind\'] = strpos(' . $args[1] . ', "\'") === false ' - . '? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; ' - . 'preg_match(\'/\A[bB]?<<<[ \t]*[\\\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\\\'"]?(?:\r\n|\n|\r)\z/\', ' . $args[1] . ', $matches); ' - . $args[0] . '[\'docLabel\'] = $matches[1];'; - } - - if ('prependLeadingComments' == $name) { - assertArgs(1, $args, $name); - - return '$attrs = $this->startAttributeStack[#1]; $stmts = ' . $args[0] . '; ' - . 'if (!empty($attrs[\'comments\'])) {' - . '$stmts[0]->setAttribute(\'comments\', ' - . 'array_merge($attrs[\'comments\'], $stmts[0]->getAttribute(\'comments\', []))); }'; - } - - return $matches[0]; - }, - $code - ); -} - -function assertArgs($num, $args, $name) { - if ($num != count($args)) { - die('Wrong argument count for ' . $name . '().'); - } -} - -function resolveStackAccess($code) { - $code = preg_replace('/\$\d+/', '$this->semStack[$0]', $code); - $code = preg_replace('/#(\d+)/', '$$1', $code); - return $code; -} - -function removeTrailingWhitespace($code) { - $lines = explode("\n", $code); - $lines = array_map('rtrim', $lines); - return implode("\n", $lines); -} - -function ensureDirExists($dir) { - if (!is_dir($dir)) { - mkdir($dir, 0777, true); - } -} - -////////////////////////////// -/// Regex helper functions /// -////////////////////////////// - -function regex($regex) { - return '~' . LIB . '(?:' . str_replace('~', '\~', $regex) . ')~'; -} - -function magicSplit($regex, $string) { - $pieces = preg_split(regex('(?:(?&string)|(?&comment)|(?&code))(*SKIP)(*FAIL)|' . $regex), $string); - - foreach ($pieces as &$piece) { - $piece = trim($piece); - } - - if ($pieces === ['']) { - return []; - } - - return $pieces; -} diff --git a/vendor/nikic/php-parser/grammar/tokens.template b/vendor/nikic/php-parser/grammar/tokens.template deleted file mode 100644 index ba4e4901..00000000 --- a/vendor/nikic/php-parser/grammar/tokens.template +++ /dev/null @@ -1,17 +0,0 @@ -semValue -#semval($,%t) $this->semValue -#semval(%n) $this->stackPos-(%l-%n) -#semval(%n,%t) $this->stackPos-(%l-%n) - -namespace PhpParser\Parser; -#include; - -/* GENERATED file based on grammar/tokens.y */ -final class Tokens -{ -#tokenval - const %s = %n; -#endtokenval -} diff --git a/vendor/nikic/php-parser/grammar/tokens.y b/vendor/nikic/php-parser/grammar/tokens.y deleted file mode 100644 index 2b54f80b..00000000 --- a/vendor/nikic/php-parser/grammar/tokens.y +++ /dev/null @@ -1,113 +0,0 @@ -/* We currently rely on the token ID mapping to be the same between PHP 5 and PHP 7 - so the same lexer can be used for - * both. This is enforced by sharing this token file. */ - -%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE -%left ',' -%left T_LOGICAL_OR -%left T_LOGICAL_XOR -%left T_LOGICAL_AND -%right T_PRINT -%right T_YIELD -%right T_DOUBLE_ARROW -%right T_YIELD_FROM -%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL -%left '?' ':' -%right T_COALESCE -%left T_BOOLEAN_OR -%left T_BOOLEAN_AND -%left '|' -%left '^' -%left '&' -%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP -%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL -%left T_SL T_SR -%left '+' '-' '.' -%left '*' '/' '%' -%right '!' -%nonassoc T_INSTANCEOF -%right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' -%right T_POW -%right '[' -%nonassoc T_NEW T_CLONE -%token T_EXIT -%token T_IF -%left T_ELSEIF -%left T_ELSE -%left T_ENDIF -%token T_LNUMBER -%token T_DNUMBER -%token T_STRING -%token T_STRING_VARNAME -%token T_VARIABLE -%token T_NUM_STRING -%token T_INLINE_HTML -%token T_CHARACTER -%token T_BAD_CHARACTER -%token T_ENCAPSED_AND_WHITESPACE -%token T_CONSTANT_ENCAPSED_STRING -%token T_ECHO -%token T_DO -%token T_WHILE -%token T_ENDWHILE -%token T_FOR -%token T_ENDFOR -%token T_FOREACH -%token T_ENDFOREACH -%token T_DECLARE -%token T_ENDDECLARE -%token T_AS -%token T_SWITCH -%token T_ENDSWITCH -%token T_CASE -%token T_DEFAULT -%token T_BREAK -%token T_CONTINUE -%token T_GOTO -%token T_FUNCTION -%token T_CONST -%token T_RETURN -%token T_TRY -%token T_CATCH -%token T_FINALLY -%token T_THROW -%token T_USE -%token T_INSTEADOF -%token T_GLOBAL -%right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC -%token T_VAR -%token T_UNSET -%token T_ISSET -%token T_EMPTY -%token T_HALT_COMPILER -%token T_CLASS -%token T_TRAIT -%token T_INTERFACE -%token T_EXTENDS -%token T_IMPLEMENTS -%token T_OBJECT_OPERATOR -%token T_DOUBLE_ARROW -%token T_LIST -%token T_ARRAY -%token T_CALLABLE -%token T_CLASS_C -%token T_TRAIT_C -%token T_METHOD_C -%token T_FUNC_C -%token T_LINE -%token T_FILE -%token T_COMMENT -%token T_DOC_COMMENT -%token T_OPEN_TAG -%token T_OPEN_TAG_WITH_ECHO -%token T_CLOSE_TAG -%token T_WHITESPACE -%token T_START_HEREDOC -%token T_END_HEREDOC -%token T_DOLLAR_OPEN_CURLY_BRACES -%token T_CURLY_OPEN -%token T_PAAMAYIM_NEKUDOTAYIM -%token T_NAMESPACE -%token T_NS_C -%token T_DIR -%token T_NS_SEPARATOR -%token T_ELLIPSIS diff --git a/vendor/nikic/php-parser/lib/PhpParser/Autoloader.php b/vendor/nikic/php-parser/lib/PhpParser/Autoloader.php deleted file mode 100644 index 809a06ed..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Autoloader.php +++ /dev/null @@ -1,40 +0,0 @@ -name = $name; - } - - /** - * Extends a class. - * - * @param Name|string $class Name of class to extend - * - * @return $this The builder instance (for fluid interface) - */ - public function extend($class) { - $this->extends = $this->normalizeName($class); - - return $this; - } - - /** - * Implements one or more interfaces. - * - * @param Name|string ...$interfaces Names of interfaces to implement - * - * @return $this The builder instance (for fluid interface) - */ - public function implement() { - foreach (func_get_args() as $interface) { - $this->implements[] = $this->normalizeName($interface); - } - - return $this; - } - - /** - * Makes the class abstract. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeAbstract() { - $this->setModifier(Stmt\Class_::MODIFIER_ABSTRACT); - - return $this; - } - - /** - * Makes the class final. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeFinal() { - $this->setModifier(Stmt\Class_::MODIFIER_FINAL); - - return $this; - } - - /** - * Adds a statement. - * - * @param Stmt|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $stmt = $this->normalizeNode($stmt); - - $targets = array( - 'Stmt_TraitUse' => &$this->uses, - 'Stmt_ClassConst' => &$this->constants, - 'Stmt_Property' => &$this->properties, - 'Stmt_ClassMethod' => &$this->methods, - ); - - $type = $stmt->getType(); - if (!isset($targets[$type])) { - throw new \LogicException(sprintf('Unexpected node of type "%s"', $type)); - } - - $targets[$type][] = $stmt; - - return $this; - } - - /** - * Returns the built class node. - * - * @return Stmt\Class_ The built class node - */ - public function getNode() { - return new Stmt\Class_($this->name, array( - 'flags' => $this->flags, - 'extends' => $this->extends, - 'implements' => $this->implements, - 'stmts' => array_merge($this->uses, $this->constants, $this->properties, $this->methods), - ), $this->attributes); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php deleted file mode 100644 index 30a1937f..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +++ /dev/null @@ -1,42 +0,0 @@ -addStmt($stmt); - } - - return $this; - } - - /** - * Sets doc comment for the declaration. - * - * @param PhpParser\Comment\Doc|string $docComment Doc comment to set - * - * @return $this The builder instance (for fluid interface) - */ - public function setDocComment($docComment) { - $this->attributes['comments'] = array( - $this->normalizeDocComment($docComment) - ); - - return $this; - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php deleted file mode 100644 index 28a2ea61..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +++ /dev/null @@ -1,75 +0,0 @@ -returnByRef = true; - - return $this; - } - - /** - * Adds a parameter. - * - * @param Node\Param|Param $param The parameter to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addParam($param) { - $param = $this->normalizeNode($param); - - if (!$param instanceof Node\Param) { - throw new \LogicException(sprintf('Expected parameter node, got "%s"', $param->getType())); - } - - $this->params[] = $param; - - return $this; - } - - /** - * Adds multiple parameters. - * - * @param array $params The parameters to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addParams(array $params) { - foreach ($params as $param) { - $this->addParam($param); - } - - return $this; - } - - /** - * Sets the return type for PHP 7. - * - * @param string|Node\Name|Node\NullableType $type One of array, callable, string, int, float, bool, iterable, - * or a class/interface name. - * - * @return $this The builder instance (for fluid interface) - */ - public function setReturnType($type) - { - $this->returnType = $this->normalizeType($type); - - return $this; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php deleted file mode 100644 index 228bdfaa..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php +++ /dev/null @@ -1,49 +0,0 @@ -name = $name; - } - - /** - * Adds a statement. - * - * @param Node|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $this->stmts[] = $this->normalizeNode($stmt); - - return $this; - } - - /** - * Returns the built function node. - * - * @return Stmt\Function_ The built function node - */ - public function getNode() { - return new Stmt\Function_($this->name, array( - 'byRef' => $this->returnByRef, - 'params' => $this->params, - 'returnType' => $this->returnType, - 'stmts' => $this->stmts, - ), $this->attributes); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php deleted file mode 100644 index 8ebb292a..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +++ /dev/null @@ -1,80 +0,0 @@ -name = $name; - } - - /** - * Extends one or more interfaces. - * - * @param Name|string ...$interfaces Names of interfaces to extend - * - * @return $this The builder instance (for fluid interface) - */ - public function extend() { - foreach (func_get_args() as $interface) { - $this->extends[] = $this->normalizeName($interface); - } - - return $this; - } - - /** - * Adds a statement. - * - * @param Stmt|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $stmt = $this->normalizeNode($stmt); - - $type = $stmt->getType(); - switch ($type) { - case 'Stmt_ClassConst': - $this->constants[] = $stmt; - break; - - case 'Stmt_ClassMethod': - // we erase all statements in the body of an interface method - $stmt->stmts = null; - $this->methods[] = $stmt; - break; - - default: - throw new \LogicException(sprintf('Unexpected node of type "%s"', $type)); - } - - return $this; - } - - /** - * Returns the built interface node. - * - * @return Stmt\Interface_ The built interface node - */ - public function getNode() { - return new Stmt\Interface_($this->name, array( - 'extends' => $this->extends, - 'stmts' => array_merge($this->constants, $this->methods), - ), $this->attributes); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php deleted file mode 100644 index 1ed75eed..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php +++ /dev/null @@ -1,128 +0,0 @@ -name = $name; - } - - /** - * Makes the method public. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePublic() { - $this->setModifier(Stmt\Class_::MODIFIER_PUBLIC); - - return $this; - } - - /** - * Makes the method protected. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeProtected() { - $this->setModifier(Stmt\Class_::MODIFIER_PROTECTED); - - return $this; - } - - /** - * Makes the method private. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePrivate() { - $this->setModifier(Stmt\Class_::MODIFIER_PRIVATE); - - return $this; - } - - /** - * Makes the method static. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeStatic() { - $this->setModifier(Stmt\Class_::MODIFIER_STATIC); - - return $this; - } - - /** - * Makes the method abstract. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeAbstract() { - if (!empty($this->stmts)) { - throw new \LogicException('Cannot make method with statements abstract'); - } - - $this->setModifier(Stmt\Class_::MODIFIER_ABSTRACT); - $this->stmts = null; // abstract methods don't have statements - - return $this; - } - - /** - * Makes the method final. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeFinal() { - $this->setModifier(Stmt\Class_::MODIFIER_FINAL); - - return $this; - } - - /** - * Adds a statement. - * - * @param Node|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - if (null === $this->stmts) { - throw new \LogicException('Cannot add statements to an abstract method'); - } - - $this->stmts[] = $this->normalizeNode($stmt); - - return $this; - } - - /** - * Returns the built method node. - * - * @return Stmt\ClassMethod The built method node - */ - public function getNode() { - return new Stmt\ClassMethod($this->name, array( - 'flags' => $this->flags, - 'byRef' => $this->returnByRef, - 'params' => $this->params, - 'returnType' => $this->returnType, - 'stmts' => $this->stmts, - ), $this->attributes); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php deleted file mode 100644 index fe636c4f..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +++ /dev/null @@ -1,44 +0,0 @@ -name = null !== $name ? $this->normalizeName($name) : null; - } - - /** - * Adds a statement. - * - * @param Node|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $this->stmts[] = $this->normalizeNode($stmt); - - return $this; - } - - /** - * Returns the built node. - * - * @return Node The built node - */ - public function getNode() { - return new Stmt\Namespace_($this->name, $this->stmts, $this->attributes); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php deleted file mode 100644 index c029e748..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php +++ /dev/null @@ -1,91 +0,0 @@ -name = $name; - } - - /** - * Sets default value for the parameter. - * - * @param mixed $value Default value to use - * - * @return $this The builder instance (for fluid interface) - */ - public function setDefault($value) { - $this->default = $this->normalizeValue($value); - - return $this; - } - - /** - * Sets type hint for the parameter. - * - * @param string|Node\Name|Node\NullableType $type Type hint to use - * - * @return $this The builder instance (for fluid interface) - */ - public function setTypeHint($type) { - $this->type = $this->normalizeType($type); - if ($this->type === 'void') { - throw new \LogicException('Parameter type cannot be void'); - } - - return $this; - } - - /** - * Make the parameter accept the value by reference. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeByRef() { - $this->byRef = true; - - return $this; - } - - /** - * Make the parameter variadic - * - * @return $this The builder instance (for fluid interface) - */ - public function makeVariadic() { - $this->variadic = true; - - return $this; - } - - /** - * Returns the built parameter node. - * - * @return Node\Param The built parameter node - */ - public function getNode() { - return new Node\Param( - $this->name, $this->default, $this->type, $this->byRef, $this->variadic - ); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php deleted file mode 100644 index 053c851b..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php +++ /dev/null @@ -1,111 +0,0 @@ -name = $name; - } - - /** - * Makes the property public. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePublic() { - $this->setModifier(Stmt\Class_::MODIFIER_PUBLIC); - - return $this; - } - - /** - * Makes the property protected. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeProtected() { - $this->setModifier(Stmt\Class_::MODIFIER_PROTECTED); - - return $this; - } - - /** - * Makes the property private. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePrivate() { - $this->setModifier(Stmt\Class_::MODIFIER_PRIVATE); - - return $this; - } - - /** - * Makes the property static. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeStatic() { - $this->setModifier(Stmt\Class_::MODIFIER_STATIC); - - return $this; - } - - /** - * Sets default value for the property. - * - * @param mixed $value Default value to use - * - * @return $this The builder instance (for fluid interface) - */ - public function setDefault($value) { - $this->default = $this->normalizeValue($value); - - return $this; - } - - /** - * Sets doc comment for the property. - * - * @param PhpParser\Comment\Doc|string $docComment Doc comment to set - * - * @return $this The builder instance (for fluid interface) - */ - public function setDocComment($docComment) { - $this->attributes = array( - 'comments' => array($this->normalizeDocComment($docComment)) - ); - - return $this; - } - - /** - * Returns the built class node. - * - * @return Stmt\Property The built property node - */ - public function getNode() { - return new Stmt\Property( - $this->flags !== 0 ? $this->flags : Stmt\Class_::MODIFIER_PUBLIC, - array( - new Stmt\PropertyProperty($this->name, $this->default) - ), - $this->attributes - ); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php deleted file mode 100644 index 7b004fa9..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +++ /dev/null @@ -1,59 +0,0 @@ -name = $name; - } - - /** - * Adds a statement. - * - * @param Stmt|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $stmt = $this->normalizeNode($stmt); - - if ($stmt instanceof Stmt\Property) { - $this->properties[] = $stmt; - } else if ($stmt instanceof Stmt\ClassMethod) { - $this->methods[] = $stmt; - } else if ($stmt instanceof Stmt\TraitUse) { - $this->uses[] = $stmt; - } else { - throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); - } - - return $this; - } - - /** - * Returns the built trait node. - * - * @return Stmt\Trait_ The built interface node - */ - public function getNode() { - return new Stmt\Trait_( - $this->name, array( - 'stmts' => array_merge($this->uses, $this->properties, $this->methods) - ), $this->attributes - ); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php deleted file mode 100644 index f6d3a856..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php +++ /dev/null @@ -1,58 +0,0 @@ -name = $this->normalizeName($name); - $this->type = $type; - } - - /** - * Sets alias for used name. - * - * @param string $alias Alias to use (last component of full name by default) - * - * @return $this The builder instance (for fluid interface) - */ - protected function as_($alias) { - $this->alias = $alias; - return $this; - } - public function __call($name, $args) { - if (method_exists($this, $name . '_')) { - return call_user_func_array(array($this, $name . '_'), $args); - } - - throw new \LogicException(sprintf('Method "%s" does not exist', $name)); - } - - /** - * Returns the built node. - * - * @return Node The built node - */ - public function getNode() { - $alias = null !== $this->alias ? $this->alias : $this->name->getLast(); - return new Stmt\Use_(array( - new Stmt\UseUse($this->name, $alias) - ), $this->type); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/BuilderAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/BuilderAbstract.php deleted file mode 100644 index e353963e..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/BuilderAbstract.php +++ /dev/null @@ -1,175 +0,0 @@ -getNode(); - } elseif ($node instanceof Node) { - return $node; - } - - throw new \LogicException('Expected node or builder object'); - } - - /** - * Normalizes a name: Converts plain string names to PhpParser\Node\Name. - * - * @param Name|string $name The name to normalize - * - * @return Name The normalized name - */ - protected function normalizeName($name) { - if ($name instanceof Name) { - return $name; - } elseif (is_string($name)) { - if (!$name) { - throw new \LogicException('Name cannot be empty'); - } - - if ($name[0] == '\\') { - return new Name\FullyQualified(substr($name, 1)); - } elseif (0 === strpos($name, 'namespace\\')) { - return new Name\Relative(substr($name, strlen('namespace\\'))); - } else { - return new Name($name); - } - } - - throw new \LogicException('Name must be a string or an instance of PhpParser\Node\Name'); - } - - /** - * Normalizes a type: Converts plain-text type names into proper AST representation. - * - * In particular, builtin types are left as strings, custom types become Names and nullables - * are wrapped in NullableType nodes. - * - * @param Name|string|NullableType $type The type to normalize - * - * @return Name|string|NullableType The normalized type - */ - protected function normalizeType($type) { - if (!is_string($type)) { - if (!$type instanceof Name && !$type instanceof NullableType) { - throw new \LogicException( - 'Type must be a string, or an instance of Name or NullableType'); - } - return $type; - } - - $nullable = false; - if (strlen($type) > 0 && $type[0] === '?') { - $nullable = true; - $type = substr($type, 1); - } - - $builtinTypes = array( - 'array', 'callable', 'string', 'int', 'float', 'bool', 'iterable', 'void', 'object' - ); - - $lowerType = strtolower($type); - if (in_array($lowerType, $builtinTypes)) { - $type = $lowerType; - } else { - $type = $this->normalizeName($type); - } - - if ($nullable && $type === 'void') { - throw new \LogicException('void type cannot be nullable'); - } - - return $nullable ? new Node\NullableType($type) : $type; - } - - /** - * Normalizes a value: Converts nulls, booleans, integers, - * floats, strings and arrays into their respective nodes - * - * @param mixed $value The value to normalize - * - * @return Expr The normalized value - */ - protected function normalizeValue($value) { - if ($value instanceof Node) { - return $value; - } elseif (is_null($value)) { - return new Expr\ConstFetch( - new Name('null') - ); - } elseif (is_bool($value)) { - return new Expr\ConstFetch( - new Name($value ? 'true' : 'false') - ); - } elseif (is_int($value)) { - return new Scalar\LNumber($value); - } elseif (is_float($value)) { - return new Scalar\DNumber($value); - } elseif (is_string($value)) { - return new Scalar\String_($value); - } elseif (is_array($value)) { - $items = array(); - $lastKey = -1; - foreach ($value as $itemKey => $itemValue) { - // for consecutive, numeric keys don't generate keys - if (null !== $lastKey && ++$lastKey === $itemKey) { - $items[] = new Expr\ArrayItem( - $this->normalizeValue($itemValue) - ); - } else { - $lastKey = null; - $items[] = new Expr\ArrayItem( - $this->normalizeValue($itemValue), - $this->normalizeValue($itemKey) - ); - } - } - - return new Expr\Array_($items); - } else { - throw new \LogicException('Invalid value'); - } - } - - /** - * Normalizes a doc comment: Converts plain strings to PhpParser\Comment\Doc. - * - * @param Comment\Doc|string $docComment The doc comment to normalize - * - * @return Comment\Doc The normalized doc comment - */ - protected function normalizeDocComment($docComment) { - if ($docComment instanceof Comment\Doc) { - return $docComment; - } else if (is_string($docComment)) { - return new Comment\Doc($docComment); - } else { - throw new \LogicException('Doc comment must be a string or an instance of PhpParser\Comment\Doc'); - } - } - - /** - * Sets a modifier in the $this->type property. - * - * @param int $modifier Modifier to set - */ - protected function setModifier($modifier) { - Stmt\Class_::verifyModifier($this->flags, $modifier); - $this->flags |= $modifier; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php b/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php deleted file mode 100644 index 42c7f612..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php +++ /dev/null @@ -1,127 +0,0 @@ -text = $text; - $this->line = $startLine; - $this->filePos = $startFilePos; - } - - /** - * Gets the comment text. - * - * @return string The comment text (including comment delimiters like /*) - */ - public function getText() { - return $this->text; - } - - /** - * Gets the line number the comment started on. - * - * @return int Line number - */ - public function getLine() { - return $this->line; - } - - /** - * Gets the file offset the comment started on. - * - * @return int File offset - */ - public function getFilePos() { - return $this->filePos; - } - - /** - * Gets the comment text. - * - * @return string The comment text (including comment delimiters like /*) - */ - public function __toString() { - return $this->text; - } - - /** - * Gets the reformatted comment text. - * - * "Reformatted" here means that we try to clean up the whitespace at the - * starts of the lines. This is necessary because we receive the comments - * without trailing whitespace on the first line, but with trailing whitespace - * on all subsequent lines. - * - * @return mixed|string - */ - public function getReformattedText() { - $text = trim($this->text); - $newlinePos = strpos($text, "\n"); - if (false === $newlinePos) { - // Single line comments don't need further processing - return $text; - } elseif (preg_match('((*BSR_ANYCRLF)(*ANYCRLF)^.*(?:\R\s+\*.*)+$)', $text)) { - // Multi line comment of the type - // - // /* - // * Some text. - // * Some more text. - // */ - // - // is handled by replacing the whitespace sequences before the * by a single space - return preg_replace('(^\s+\*)m', ' *', $this->text); - } elseif (preg_match('(^/\*\*?\s*[\r\n])', $text) && preg_match('(\n(\s*)\*/$)', $text, $matches)) { - // Multi line comment of the type - // - // /* - // Some text. - // Some more text. - // */ - // - // is handled by removing the whitespace sequence on the line before the closing - // */ on all lines. So if the last line is " */", then " " is removed at the - // start of all lines. - return preg_replace('(^' . preg_quote($matches[1]) . ')m', '', $text); - } elseif (preg_match('(^/\*\*?\s*(?!\s))', $text, $matches)) { - // Multi line comment of the type - // - // /* Some text. - // Some more text. - // Indented text. - // Even more text. */ - // - // is handled by removing the difference between the shortest whitespace prefix on all - // lines and the length of the "/* " opening sequence. - $prefixLen = $this->getShortestWhitespacePrefixLen(substr($text, $newlinePos + 1)); - $removeLen = $prefixLen - strlen($matches[0]); - return preg_replace('(^\s{' . $removeLen . '})m', '', $text); - } - - // No idea how to format this comment, so simply return as is - return $text; - } - - private function getShortestWhitespacePrefixLen($str) { - $lines = explode("\n", $str); - $shortestPrefixLen = INF; - foreach ($lines as $line) { - preg_match('(^\s*)', $line, $matches); - $prefixLen = strlen($matches[0]); - if ($prefixLen < $shortestPrefixLen) { - $shortestPrefixLen = $prefixLen; - } - } - return $shortestPrefixLen; - } - - public function jsonSerialize() { - // Technically not a node, but we make it look like one anyway - $type = $this instanceof Comment\Doc ? 'Comment_Doc' : 'Comment'; - return [ - 'nodeType' => $type, - 'text' => $this->text, - 'line' => $this->line, - 'filePos' => $this->filePos, - ]; - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php b/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php deleted file mode 100644 index 24fc6c9e..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php +++ /dev/null @@ -1,7 +0,0 @@ -rawMessage = (string) $message; - if (is_array($attributes)) { - $this->attributes = $attributes; - } else { - $this->attributes = array('startLine' => $attributes); - } - $this->updateMessage(); - } - - /** - * Gets the error message - * - * @return string Error message - */ - public function getRawMessage() { - return $this->rawMessage; - } - - /** - * Gets the line the error starts in. - * - * @return int Error start line - */ - public function getStartLine() { - return isset($this->attributes['startLine']) ? $this->attributes['startLine'] : -1; - } - - /** - * Gets the line the error ends in. - * - * @return int Error end line - */ - public function getEndLine() { - return isset($this->attributes['endLine']) ? $this->attributes['endLine'] : -1; - } - - - /** - * Gets the attributes of the node/token the error occurred at. - * - * @return array - */ - public function getAttributes() { - return $this->attributes; - } - - /** - * Sets the attributes of the node/token the error occured at. - * - * @param array $attributes - */ - public function setAttributes(array $attributes) { - $this->attributes = $attributes; - $this->updateMessage(); - } - - /** - * Sets the line of the PHP file the error occurred in. - * - * @param string $message Error message - */ - public function setRawMessage($message) { - $this->rawMessage = (string) $message; - $this->updateMessage(); - } - - /** - * Sets the line the error starts in. - * - * @param int $line Error start line - */ - public function setStartLine($line) { - $this->attributes['startLine'] = (int) $line; - $this->updateMessage(); - } - - /** - * Returns whether the error has start and end column information. - * - * For column information enable the startFilePos and endFilePos in the lexer options. - * - * @return bool - */ - public function hasColumnInfo() { - return isset($this->attributes['startFilePos']) && isset($this->attributes['endFilePos']); - } - - /** - * Gets the start column (1-based) into the line where the error started. - * - * @param string $code Source code of the file - * @return int - */ - public function getStartColumn($code) { - if (!$this->hasColumnInfo()) { - throw new \RuntimeException('Error does not have column information'); - } - - return $this->toColumn($code, $this->attributes['startFilePos']); - } - - /** - * Gets the end column (1-based) into the line where the error ended. - * - * @param string $code Source code of the file - * @return int - */ - public function getEndColumn($code) { - if (!$this->hasColumnInfo()) { - throw new \RuntimeException('Error does not have column information'); - } - - return $this->toColumn($code, $this->attributes['endFilePos']); - } - - public function getMessageWithColumnInfo($code) { - return sprintf( - '%s from %d:%d to %d:%d', $this->getRawMessage(), - $this->getStartLine(), $this->getStartColumn($code), - $this->getEndLine(), $this->getEndColumn($code) - ); - } - - private function toColumn($code, $pos) { - if ($pos > strlen($code)) { - throw new \RuntimeException('Invalid position information'); - } - - $lineStartPos = strrpos($code, "\n", $pos - strlen($code)); - if (false === $lineStartPos) { - $lineStartPos = -1; - } - - return $pos - $lineStartPos; - } - - /** - * Updates the exception message after a change to rawMessage or rawLine. - */ - protected function updateMessage() { - $this->message = $this->rawMessage; - - if (-1 === $this->getStartLine()) { - $this->message .= ' on unknown line'; - } else { - $this->message .= ' on line ' . $this->getStartLine(); - } - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php b/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php deleted file mode 100644 index fa2c2f8c..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php +++ /dev/null @@ -1,13 +0,0 @@ -errors[] = $error; - } - - /** - * Get collected errors. - * - * @return Error[] - */ - public function getErrors() { - return $this->errors; - } - - /** - * Check whether there are any errors. - * - * @return bool - */ - public function hasErrors() { - return !empty($this->errors); - } - - /** - * Reset/clear collected errors. - */ - public function clearErrors() { - $this->errors = []; - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php b/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php deleted file mode 100644 index c5a76dd0..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +++ /dev/null @@ -1,18 +0,0 @@ -tokenMap = $this->createTokenMap(); - - // map of tokens to drop while lexing (the map is only used for isset lookup, - // that's why the value is simply set to 1; the value is never actually used.) - $this->dropTokens = array_fill_keys( - array(T_WHITESPACE, T_OPEN_TAG, T_COMMENT, T_DOC_COMMENT), 1 - ); - - // the usedAttributes member is a map of the used attribute names to a dummy - // value (here "true") - $options += array( - 'usedAttributes' => array('comments', 'startLine', 'endLine'), - ); - $this->usedAttributes = array_fill_keys($options['usedAttributes'], true); - } - - /** - * Initializes the lexer for lexing the provided source code. - * - * This function does not throw if lexing errors occur. Instead, errors may be retrieved using - * the getErrors() method. - * - * @param string $code The source code to lex - * @param ErrorHandler|null $errorHandler Error handler to use for lexing errors. Defaults to - * ErrorHandler\Throwing - */ - public function startLexing($code, ErrorHandler $errorHandler = null) { - if (null === $errorHandler) { - $errorHandler = new ErrorHandler\Throwing(); - } - - $this->code = $code; // keep the code around for __halt_compiler() handling - $this->pos = -1; - $this->line = 1; - $this->filePos = 0; - - // If inline HTML occurs without preceding code, treat it as if it had a leading newline. - // This ensures proper composability, because having a newline is the "safe" assumption. - $this->prevCloseTagHasNewline = true; - - $scream = ini_set('xdebug.scream', '0'); - - $this->resetErrors(); - $this->tokens = @token_get_all($code); - $this->handleErrors($errorHandler); - - if (false !== $scream) { - ini_set('xdebug.scream', $scream); - } - } - - protected function resetErrors() { - if (function_exists('error_clear_last')) { - error_clear_last(); - } else { - // set error_get_last() to defined state by forcing an undefined variable error - set_error_handler(function() { return false; }, 0); - @$undefinedVariable; - restore_error_handler(); - } - } - - private function handleInvalidCharacterRange($start, $end, $line, ErrorHandler $errorHandler) { - for ($i = $start; $i < $end; $i++) { - $chr = $this->code[$i]; - if ($chr === 'b' || $chr === 'B') { - // HHVM does not treat b" tokens correctly, so ignore these - continue; - } - - if ($chr === "\0") { - // PHP cuts error message after null byte, so need special case - $errorMsg = 'Unexpected null byte'; - } else { - $errorMsg = sprintf( - 'Unexpected character "%s" (ASCII %d)', $chr, ord($chr) - ); - } - - $errorHandler->handleError(new Error($errorMsg, [ - 'startLine' => $line, - 'endLine' => $line, - 'startFilePos' => $i, - 'endFilePos' => $i, - ])); - } - } - - private function isUnterminatedComment($token) { - return ($token[0] === T_COMMENT || $token[0] === T_DOC_COMMENT) - && substr($token[1], 0, 2) === '/*' - && substr($token[1], -2) !== '*/'; - } - - private function errorMayHaveOccurred() { - if (defined('HHVM_VERSION')) { - // In HHVM token_get_all() does not throw warnings, so we need to conservatively - // assume that an error occurred - return true; - } - - $error = error_get_last(); - return null !== $error - && false === strpos($error['message'], 'Undefined variable'); - } - - protected function handleErrors(ErrorHandler $errorHandler) { - if (!$this->errorMayHaveOccurred()) { - return; - } - - // PHP's error handling for token_get_all() is rather bad, so if we want detailed - // error information we need to compute it ourselves. Invalid character errors are - // detected by finding "gaps" in the token array. Unterminated comments are detected - // by checking if a trailing comment has a "*/" at the end. - - $filePos = 0; - $line = 1; - foreach ($this->tokens as $i => $token) { - $tokenValue = \is_string($token) ? $token : $token[1]; - $tokenLen = \strlen($tokenValue); - - if (substr($this->code, $filePos, $tokenLen) !== $tokenValue) { - // Something is missing, must be an invalid character - $nextFilePos = strpos($this->code, $tokenValue, $filePos); - $this->handleInvalidCharacterRange( - $filePos, $nextFilePos, $line, $errorHandler); - $filePos = $nextFilePos; - } - - $filePos += $tokenLen; - $line += substr_count($tokenValue, "\n"); - } - - if ($filePos !== \strlen($this->code)) { - if (substr($this->code, $filePos, 2) === '/*') { - // Unlike PHP, HHVM will drop unterminated comments entirely - $comment = substr($this->code, $filePos); - $errorHandler->handleError(new Error('Unterminated comment', [ - 'startLine' => $line, - 'endLine' => $line + substr_count($comment, "\n"), - 'startFilePos' => $filePos, - 'endFilePos' => $filePos + \strlen($comment), - ])); - - // Emulate the PHP behavior - $isDocComment = isset($comment[3]) && $comment[3] === '*'; - $this->tokens[] = [$isDocComment ? T_DOC_COMMENT : T_COMMENT, $comment, $line]; - } else { - // Invalid characters at the end of the input - $this->handleInvalidCharacterRange( - $filePos, \strlen($this->code), $line, $errorHandler); - } - return; - } - - if (count($this->tokens) > 0) { - // Check for unterminated comment - $lastToken = $this->tokens[count($this->tokens) - 1]; - if ($this->isUnterminatedComment($lastToken)) { - $errorHandler->handleError(new Error('Unterminated comment', [ - 'startLine' => $line - substr_count($lastToken[1], "\n"), - 'endLine' => $line, - 'startFilePos' => $filePos - \strlen($lastToken[1]), - 'endFilePos' => $filePos, - ])); - } - } - } - - /** - * Fetches the next token. - * - * The available attributes are determined by the 'usedAttributes' option, which can - * be specified in the constructor. The following attributes are supported: - * - * * 'comments' => Array of PhpParser\Comment or PhpParser\Comment\Doc instances, - * representing all comments that occurred between the previous - * non-discarded token and the current one. - * * 'startLine' => Line in which the node starts. - * * 'endLine' => Line in which the node ends. - * * 'startTokenPos' => Offset into the token array of the first token in the node. - * * 'endTokenPos' => Offset into the token array of the last token in the node. - * * 'startFilePos' => Offset into the code string of the first character that is part of the node. - * * 'endFilePos' => Offset into the code string of the last character that is part of the node. - * - * @param mixed $value Variable to store token content in - * @param mixed $startAttributes Variable to store start attributes in - * @param mixed $endAttributes Variable to store end attributes in - * - * @return int Token id - */ - public function getNextToken(&$value = null, &$startAttributes = null, &$endAttributes = null) { - $startAttributes = array(); - $endAttributes = array(); - - while (1) { - if (isset($this->tokens[++$this->pos])) { - $token = $this->tokens[$this->pos]; - } else { - // EOF token with ID 0 - $token = "\0"; - } - - if (isset($this->usedAttributes['startLine'])) { - $startAttributes['startLine'] = $this->line; - } - if (isset($this->usedAttributes['startTokenPos'])) { - $startAttributes['startTokenPos'] = $this->pos; - } - if (isset($this->usedAttributes['startFilePos'])) { - $startAttributes['startFilePos'] = $this->filePos; - } - - if (\is_string($token)) { - $value = $token; - if (isset($token[1])) { - // bug in token_get_all - $this->filePos += 2; - $id = ord('"'); - } else { - $this->filePos += 1; - $id = ord($token); - } - } elseif (!isset($this->dropTokens[$token[0]])) { - $value = $token[1]; - $id = $this->tokenMap[$token[0]]; - if (T_CLOSE_TAG === $token[0]) { - $this->prevCloseTagHasNewline = false !== strpos($token[1], "\n"); - } else if (T_INLINE_HTML === $token[0]) { - $startAttributes['hasLeadingNewline'] = $this->prevCloseTagHasNewline; - } - - $this->line += substr_count($value, "\n"); - $this->filePos += \strlen($value); - } else { - if (T_COMMENT === $token[0] || T_DOC_COMMENT === $token[0]) { - if (isset($this->usedAttributes['comments'])) { - $comment = T_DOC_COMMENT === $token[0] - ? new Comment\Doc($token[1], $this->line, $this->filePos) - : new Comment($token[1], $this->line, $this->filePos); - $startAttributes['comments'][] = $comment; - } - } - - $this->line += substr_count($token[1], "\n"); - $this->filePos += \strlen($token[1]); - continue; - } - - if (isset($this->usedAttributes['endLine'])) { - $endAttributes['endLine'] = $this->line; - } - if (isset($this->usedAttributes['endTokenPos'])) { - $endAttributes['endTokenPos'] = $this->pos; - } - if (isset($this->usedAttributes['endFilePos'])) { - $endAttributes['endFilePos'] = $this->filePos - 1; - } - - return $id; - } - - throw new \RuntimeException('Reached end of lexer loop'); - } - - /** - * Returns the token array for current code. - * - * The token array is in the same format as provided by the - * token_get_all() function and does not discard tokens (i.e. - * whitespace and comments are included). The token position - * attributes are against this token array. - * - * @return array Array of tokens in token_get_all() format - */ - public function getTokens() { - return $this->tokens; - } - - /** - * Handles __halt_compiler() by returning the text after it. - * - * @return string Remaining text - */ - public function handleHaltCompiler() { - // text after T_HALT_COMPILER, still including (); - $textAfter = substr($this->code, $this->filePos); - - // ensure that it is followed by (); - // this simplifies the situation, by not allowing any comments - // in between of the tokens. - if (!preg_match('~^\s*\(\s*\)\s*(?:;|\?>\r?\n?)~', $textAfter, $matches)) { - throw new Error('__HALT_COMPILER must be followed by "();"'); - } - - // prevent the lexer from returning any further tokens - $this->pos = count($this->tokens); - - // return with (); removed - return (string) substr($textAfter, strlen($matches[0])); // (string) converts false to '' - } - - /** - * Creates the token map. - * - * The token map maps the PHP internal token identifiers - * to the identifiers used by the Parser. Additionally it - * maps T_OPEN_TAG_WITH_ECHO to T_ECHO and T_CLOSE_TAG to ';'. - * - * @return array The token map - */ - protected function createTokenMap() { - $tokenMap = array(); - - // 256 is the minimum possible token number, as everything below - // it is an ASCII value - for ($i = 256; $i < 1000; ++$i) { - if (T_DOUBLE_COLON === $i) { - // T_DOUBLE_COLON is equivalent to T_PAAMAYIM_NEKUDOTAYIM - $tokenMap[$i] = Tokens::T_PAAMAYIM_NEKUDOTAYIM; - } elseif(T_OPEN_TAG_WITH_ECHO === $i) { - // T_OPEN_TAG_WITH_ECHO with dropped T_OPEN_TAG results in T_ECHO - $tokenMap[$i] = Tokens::T_ECHO; - } elseif(T_CLOSE_TAG === $i) { - // T_CLOSE_TAG is equivalent to ';' - $tokenMap[$i] = ord(';'); - } elseif ('UNKNOWN' !== $name = token_name($i)) { - if ('T_HASHBANG' === $name) { - // HHVM uses a special token for #! hashbang lines - $tokenMap[$i] = Tokens::T_INLINE_HTML; - } else if (defined($name = Tokens::class . '::' . $name)) { - // Other tokens can be mapped directly - $tokenMap[$i] = constant($name); - } - } - } - - // HHVM uses a special token for numbers that overflow to double - if (defined('T_ONUMBER')) { - $tokenMap[T_ONUMBER] = Tokens::T_DNUMBER; - } - // HHVM also has a separate token for the __COMPILER_HALT_OFFSET__ constant - if (defined('T_COMPILER_HALT_OFFSET')) { - $tokenMap[T_COMPILER_HALT_OFFSET] = Tokens::T_STRING; - } - - return $tokenMap; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php deleted file mode 100644 index 739a328a..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +++ /dev/null @@ -1,174 +0,0 @@ -newKeywords = array(); - foreach ($newKeywordsPerVersion as $version => $newKeywords) { - if (version_compare(PHP_VERSION, $version, '>=')) { - break; - } - - $this->newKeywords += $newKeywords; - } - - if (version_compare(PHP_VERSION, self::PHP_7_0, '>=')) { - return; - } - $this->tokenMap[self::T_COALESCE] = Tokens::T_COALESCE; - $this->tokenMap[self::T_SPACESHIP] = Tokens::T_SPACESHIP; - $this->tokenMap[self::T_YIELD_FROM] = Tokens::T_YIELD_FROM; - - if (version_compare(PHP_VERSION, self::PHP_5_6, '>=')) { - return; - } - $this->tokenMap[self::T_ELLIPSIS] = Tokens::T_ELLIPSIS; - $this->tokenMap[self::T_POW] = Tokens::T_POW; - $this->tokenMap[self::T_POW_EQUAL] = Tokens::T_POW_EQUAL; - } - - public function startLexing($code, ErrorHandler $errorHandler = null) { - $this->inObjectAccess = false; - - parent::startLexing($code, $errorHandler); - if ($this->requiresEmulation($code)) { - $this->emulateTokens(); - } - } - - /* - * Checks if the code is potentially using features that require emulation. - */ - protected function requiresEmulation($code) { - if (version_compare(PHP_VERSION, self::PHP_7_0, '>=')) { - return false; - } - - if (preg_match('(\?\?|<=>|yield[ \n\r\t]+from)', $code)) { - return true; - } - - if (version_compare(PHP_VERSION, self::PHP_5_6, '>=')) { - return false; - } - - return preg_match('(\.\.\.|(?tokens); $i < $c; ++$i) { - $replace = null; - if (isset($this->tokens[$i + 1])) { - if ($this->tokens[$i] === '?' && $this->tokens[$i + 1] === '?') { - array_splice($this->tokens, $i, 2, array( - array(self::T_COALESCE, '??', $line) - )); - $c--; - continue; - } - if ($this->tokens[$i][0] === T_IS_SMALLER_OR_EQUAL - && $this->tokens[$i + 1] === '>' - ) { - array_splice($this->tokens, $i, 2, array( - array(self::T_SPACESHIP, '<=>', $line) - )); - $c--; - continue; - } - if ($this->tokens[$i] === '*' && $this->tokens[$i + 1] === '*') { - array_splice($this->tokens, $i, 2, array( - array(self::T_POW, '**', $line) - )); - $c--; - continue; - } - if ($this->tokens[$i] === '*' && $this->tokens[$i + 1][0] === T_MUL_EQUAL) { - array_splice($this->tokens, $i, 2, array( - array(self::T_POW_EQUAL, '**=', $line) - )); - $c--; - continue; - } - } - - if (isset($this->tokens[$i + 2])) { - if ($this->tokens[$i][0] === T_YIELD && $this->tokens[$i + 1][0] === T_WHITESPACE - && $this->tokens[$i + 2][0] === T_STRING - && !strcasecmp($this->tokens[$i + 2][1], 'from') - ) { - array_splice($this->tokens, $i, 3, array( - array( - self::T_YIELD_FROM, - $this->tokens[$i][1] . $this->tokens[$i + 1][1] . $this->tokens[$i + 2][1], - $line - ) - )); - $c -= 2; - $line += substr_count($this->tokens[$i][1], "\n"); - continue; - } - if ($this->tokens[$i] === '.' && $this->tokens[$i + 1] === '.' - && $this->tokens[$i + 2] === '.' - ) { - array_splice($this->tokens, $i, 3, array( - array(self::T_ELLIPSIS, '...', $line) - )); - $c -= 2; - continue; - } - } - - if (\is_array($this->tokens[$i])) { - $line += substr_count($this->tokens[$i][1], "\n"); - } - } - } - - public function getNextToken(&$value = null, &$startAttributes = null, &$endAttributes = null) { - $token = parent::getNextToken($value, $startAttributes, $endAttributes); - - // replace new keywords by their respective tokens. This is not done - // if we currently are in an object access (e.g. in $obj->namespace - // "namespace" stays a T_STRING tokens and isn't converted to T_NAMESPACE) - if (Tokens::T_STRING === $token && !$this->inObjectAccess) { - if (isset($this->newKeywords[strtolower($value)])) { - return $this->newKeywords[strtolower($value)]; - } - } else { - // keep track of whether we currently are in an object access (after ->) - $this->inObjectAccess = Tokens::T_OBJECT_OPERATOR === $token; - } - - return $token; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node.php b/vendor/nikic/php-parser/lib/PhpParser/Node.php deleted file mode 100644 index 6925fd72..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node.php +++ /dev/null @@ -1,88 +0,0 @@ -value = $value; - $this->byRef = $byRef; - $this->unpack = $unpack; - } - - public function getSubNodeNames() { - return array('value', 'byRef', 'unpack'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php deleted file mode 100644 index 26322d49..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php +++ /dev/null @@ -1,30 +0,0 @@ -name = $name; - $this->value = $value; - } - - public function getSubNodeNames() { - return array('name', 'value'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php deleted file mode 100644 index 2dae5bfc..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php +++ /dev/null @@ -1,9 +0,0 @@ -var = $var; - $this->dim = $dim; - } - - public function getSubNodeNames() { - return array('var', 'dim'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php deleted file mode 100644 index de73ef46..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +++ /dev/null @@ -1,34 +0,0 @@ -key = $key; - $this->value = $value; - $this->byRef = $byRef; - } - - public function getSubNodeNames() { - return array('key', 'value', 'byRef'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php deleted file mode 100644 index 9151f27d..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +++ /dev/null @@ -1,30 +0,0 @@ -items = $items; - } - - public function getSubNodeNames() { - return array('items'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php deleted file mode 100644 index 1f280ff0..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +++ /dev/null @@ -1,30 +0,0 @@ -var = $var; - $this->expr = $expr; - } - - public function getSubNodeNames() { - return array('var', 'expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php deleted file mode 100644 index 83540a07..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +++ /dev/null @@ -1,30 +0,0 @@ -var = $var; - $this->expr = $expr; - } - - public function getSubNodeNames() { - return array('var', 'expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php deleted file mode 100644 index 9e3ed822..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +++ /dev/null @@ -1,9 +0,0 @@ -var = $var; - $this->expr = $expr; - } - - public function getSubNodeNames() { - return array('var', 'expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php deleted file mode 100644 index 6f87e235..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +++ /dev/null @@ -1,30 +0,0 @@ -left = $left; - $this->right = $right; - } - - public function getSubNodeNames() { - return array('left', 'right'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php deleted file mode 100644 index bd6c5c1f..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +++ /dev/null @@ -1,9 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php deleted file mode 100644 index 8f543b82..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php deleted file mode 100644 index bf850dc5..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php deleted file mode 100644 index 08b3a384..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +++ /dev/null @@ -1,9 +0,0 @@ -class = $class; - $this->name = $name; - } - - public function getSubNodeNames() { - return array('class', 'name'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php deleted file mode 100644 index 198ec4d8..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php deleted file mode 100644 index 5d376550..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +++ /dev/null @@ -1,65 +0,0 @@ - false : Whether the closure is static - * 'byRef' => false : Whether to return by reference - * 'params' => array(): Parameters - * 'uses' => array(): use()s - * 'returnType' => null : Return type - * 'stmts' => array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct(array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->static = isset($subNodes['static']) ? $subNodes['static'] : false; - $this->byRef = isset($subNodes['byRef']) ? $subNodes['byRef'] : false; - $this->params = isset($subNodes['params']) ? $subNodes['params'] : array(); - $this->uses = isset($subNodes['uses']) ? $subNodes['uses'] : array(); - $this->returnType = isset($subNodes['returnType']) ? $subNodes['returnType'] : null; - $this->stmts = isset($subNodes['stmts']) ? $subNodes['stmts'] : array(); - } - - public function getSubNodeNames() { - return array('static', 'byRef', 'params', 'uses', 'returnType', 'stmts'); - } - - public function returnsByRef() { - return $this->byRef; - } - - public function getParams() { - return $this->params; - } - - public function getReturnType() { - return $this->returnType; - } - - public function getStmts() { - return $this->stmts; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php deleted file mode 100644 index f4d02023..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +++ /dev/null @@ -1,30 +0,0 @@ -var = $var; - $this->byRef = $byRef; - } - - public function getSubNodeNames() { - return array('var', 'byRef'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php deleted file mode 100644 index 98e51d52..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +++ /dev/null @@ -1,27 +0,0 @@ -name = $name; - } - - public function getSubNodeNames() { - return array('name'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php deleted file mode 100644 index 0c0509ef..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php deleted file mode 100644 index 5ab8fd44..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +++ /dev/null @@ -1,27 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php deleted file mode 100644 index eadffd00..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php deleted file mode 100644 index b0b94cf7..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +++ /dev/null @@ -1,30 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php deleted file mode 100644 index 60d00507..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +++ /dev/null @@ -1,31 +0,0 @@ -name = $name; - $this->args = $args; - } - - public function getSubNodeNames() { - return array('name', 'args'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php deleted file mode 100644 index b27f3af1..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +++ /dev/null @@ -1,35 +0,0 @@ -expr = $expr; - $this->type = $type; - } - - public function getSubNodeNames() { - return array('expr', 'type'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php deleted file mode 100644 index 69573d86..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +++ /dev/null @@ -1,31 +0,0 @@ -expr = $expr; - $this->class = $class; - } - - public function getSubNodeNames() { - return array('expr', 'class'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php deleted file mode 100644 index 4ec1d025..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +++ /dev/null @@ -1,26 +0,0 @@ -vars = $vars; - } - - public function getSubNodeNames() { - return array('vars'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php deleted file mode 100644 index 30f3dc16..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +++ /dev/null @@ -1,26 +0,0 @@ -items = $items; - } - - public function getSubNodeNames() { - return array('items'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php deleted file mode 100644 index a6cdd07c..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +++ /dev/null @@ -1,35 +0,0 @@ -var = $var; - $this->name = $name; - $this->args = $args; - } - - public function getSubNodeNames() { - return array('var', 'name', 'args'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php deleted file mode 100644 index a8c87794..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +++ /dev/null @@ -1,31 +0,0 @@ -class = $class; - $this->args = $args; - } - - public function getSubNodeNames() { - return array('class', 'args'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php deleted file mode 100644 index 06ce5470..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +++ /dev/null @@ -1,26 +0,0 @@ -var = $var; - } - - public function getSubNodeNames() { - return array('var'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php deleted file mode 100644 index 54865ba1..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +++ /dev/null @@ -1,26 +0,0 @@ -var = $var; - } - - public function getSubNodeNames() { - return array('var'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php deleted file mode 100644 index db30f510..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +++ /dev/null @@ -1,26 +0,0 @@ -var = $var; - } - - public function getSubNodeNames() { - return array('var'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php deleted file mode 100644 index 06356028..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +++ /dev/null @@ -1,26 +0,0 @@ -var = $var; - } - - public function getSubNodeNames() { - return array('var'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php deleted file mode 100644 index 0666ab84..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php deleted file mode 100644 index adcf21ce..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +++ /dev/null @@ -1,30 +0,0 @@ -var = $var; - $this->name = $name; - } - - public function getSubNodeNames() { - return array('var', 'name'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php deleted file mode 100644 index 9516a32f..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +++ /dev/null @@ -1,26 +0,0 @@ -parts = $parts; - } - - public function getSubNodeNames() { - return array('parts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php deleted file mode 100644 index 5118f34a..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +++ /dev/null @@ -1,35 +0,0 @@ -class = $class; - $this->name = $name; - $this->args = $args; - } - - public function getSubNodeNames() { - return array('class', 'name', 'args'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php deleted file mode 100644 index 477a69dd..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +++ /dev/null @@ -1,31 +0,0 @@ -class = $class; - $this->name = $name; - } - - public function getSubNodeNames() { - return array('class', 'name'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php deleted file mode 100644 index 57301390..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +++ /dev/null @@ -1,34 +0,0 @@ -cond = $cond; - $this->if = $if; - $this->else = $else; - } - - public function getSubNodeNames() { - return array('cond', 'if', 'else'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php deleted file mode 100644 index 94635d63..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php deleted file mode 100644 index 65141200..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php deleted file mode 100644 index 3ae3ecd9..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +++ /dev/null @@ -1,26 +0,0 @@ -name = $name; - } - - public function getSubNodeNames() { - return array('name'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php deleted file mode 100644 index 993c82c2..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php deleted file mode 100644 index f3ca88e0..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +++ /dev/null @@ -1,30 +0,0 @@ -key = $key; - $this->value = $value; - } - - public function getSubNodeNames() { - return array('key', 'value'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php b/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php deleted file mode 100644 index 82569450..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +++ /dev/null @@ -1,36 +0,0 @@ -parts = self::prepareName($name); - } - - public function getSubNodeNames() { - return array('parts'); - } - - /** - * Gets the first part of the name, i.e. everything before the first namespace separator. - * - * @return string First part of the name - */ - public function getFirst() { - return $this->parts[0]; - } - - /** - * Gets the last part of the name, i.e. everything after the last namespace separator. - * - * @return string Last part of the name - */ - public function getLast() { - return $this->parts[count($this->parts) - 1]; - } - - /** - * Checks whether the name is unqualified. (E.g. Name) - * - * @return bool Whether the name is unqualified - */ - public function isUnqualified() { - return 1 == count($this->parts); - } - - /** - * Checks whether the name is qualified. (E.g. Name\Name) - * - * @return bool Whether the name is qualified - */ - public function isQualified() { - return 1 < count($this->parts); - } - - /** - * Checks whether the name is fully qualified. (E.g. \Name) - * - * @return bool Whether the name is fully qualified - */ - public function isFullyQualified() { - return false; - } - - /** - * Checks whether the name is explicitly relative to the current namespace. (E.g. namespace\Name) - * - * @return bool Whether the name is relative - */ - public function isRelative() { - return false; - } - - /** - * Returns a string representation of the name by imploding the namespace parts with the - * namespace separator. - * - * @return string String representation - */ - public function toString() { - return implode('\\', $this->parts); - } - - /** - * Returns a string representation of the name by imploding the namespace parts with the - * namespace separator. - * - * @return string String representation - */ - public function __toString() { - return implode('\\', $this->parts); - } - - /** - * Gets a slice of a name (similar to array_slice). - * - * This method returns a new instance of the same type as the original and with the same - * attributes. - * - * If the slice is empty, null is returned. The null value will be correctly handled in - * concatenations using concat(). - * - * Offset and length have the same meaning as in array_slice(). - * - * @param int $offset Offset to start the slice at (may be negative) - * @param int|null $length Length of the slice (may be negative) - * - * @return static|null Sliced name - */ - public function slice($offset, $length = null) { - $numParts = count($this->parts); - - $realOffset = $offset < 0 ? $offset + $numParts : $offset; - if ($realOffset < 0 || $realOffset > $numParts) { - throw new \OutOfBoundsException(sprintf('Offset %d is out of bounds', $offset)); - } - - if (null === $length) { - $realLength = $numParts - $realOffset; - } else { - $realLength = $length < 0 ? $length + $numParts - $realOffset : $length; - if ($realLength < 0 || $realLength > $numParts) { - throw new \OutOfBoundsException(sprintf('Length %d is out of bounds', $length)); - } - } - - if ($realLength === 0) { - // Empty slice is represented as null - return null; - } - - return new static(array_slice($this->parts, $realOffset, $realLength), $this->attributes); - } - - /** - * Concatenate two names, yielding a new Name instance. - * - * The type of the generated instance depends on which class this method is called on, for - * example Name\FullyQualified::concat() will yield a Name\FullyQualified instance. - * - * If one of the arguments is null, a new instance of the other name will be returned. If both - * arguments are null, null will be returned. As such, writing - * Name::concat($namespace, $shortName) - * where $namespace is a Name node or null will work as expected. - * - * @param string|array|self|null $name1 The first name - * @param string|array|self|null $name2 The second name - * @param array $attributes Attributes to assign to concatenated name - * - * @return static|null Concatenated name - */ - public static function concat($name1, $name2, array $attributes = []) { - if (null === $name1 && null === $name2) { - return null; - } elseif (null === $name1) { - return new static(self::prepareName($name2), $attributes); - } else if (null === $name2) { - return new static(self::prepareName($name1), $attributes); - } else { - return new static( - array_merge(self::prepareName($name1), self::prepareName($name2)), $attributes - ); - } - } - - /** - * Prepares a (string, array or Name node) name for use in name changing methods by converting - * it to an array. - * - * @param string|array|self $name Name to prepare - * - * @return array Prepared name - */ - private static function prepareName($name) { - if (\is_string($name)) { - return explode('\\', $name); - } elseif (\is_array($name)) { - return $name; - } elseif ($name instanceof self) { - return $name->parts; - } - - throw new \InvalidArgumentException( - 'Expected string, array of parts or Name instance' - ); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php deleted file mode 100644 index 97cc1113..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +++ /dev/null @@ -1,42 +0,0 @@ -type = $type; - } - - public function getSubNodeNames() { - return array('type'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php deleted file mode 100644 index b35ee4ef..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php +++ /dev/null @@ -1,42 +0,0 @@ -type = $type; - $this->byRef = $byRef; - $this->variadic = $variadic; - $this->name = $name; - $this->default = $default; - } - - public function getSubNodeNames() { - return array('type', 'byRef', 'variadic', 'name', 'default'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php deleted file mode 100644 index 01177532..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php +++ /dev/null @@ -1,7 +0,0 @@ -value = $value; - } - - public function getSubNodeNames() { - return array('value'); - } - - /** - * @internal - * - * Parses a DNUMBER token like PHP would. - * - * @param string $str A string number - * - * @return float The parsed number - */ - public static function parse($str) { - // if string contains any of .eE just cast it to float - if (false !== strpbrk($str, '.eE')) { - return (float) $str; - } - - // otherwise it's an integer notation that overflowed into a float - // if it starts with 0 it's one of the special integer notations - if ('0' === $str[0]) { - // hex - if ('x' === $str[1] || 'X' === $str[1]) { - return hexdec($str); - } - - // bin - if ('b' === $str[1] || 'B' === $str[1]) { - return bindec($str); - } - - // oct - // substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit (8 or 9) - // so that only the digits before that are used - return octdec(substr($str, 0, strcspn($str, '89'))); - } - - // dec - return (float) $str; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php deleted file mode 100644 index 4f9b433c..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +++ /dev/null @@ -1,27 +0,0 @@ -parts = $parts; - } - - public function getSubNodeNames() { - return array('parts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php deleted file mode 100644 index 50cb1afe..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +++ /dev/null @@ -1,26 +0,0 @@ -value = $value; - } - - public function getSubNodeNames() { - return array('value'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php deleted file mode 100644 index 3559b982..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +++ /dev/null @@ -1,67 +0,0 @@ -value = $value; - } - - public function getSubNodeNames() { - return array('value'); - } - - /** - * Constructs an LNumber node from a string number literal. - * - * @param string $str String number literal (decimal, octal, hex or binary) - * @param array $attributes Additional attributes - * @param bool $allowInvalidOctal Whether to allow invalid octal numbers (PHP 5) - * - * @return LNumber The constructed LNumber, including kind attribute - */ - public static function fromString($str, array $attributes = array(), $allowInvalidOctal = false) { - if ('0' !== $str[0] || '0' === $str) { - $attributes['kind'] = LNumber::KIND_DEC; - return new LNumber((int) $str, $attributes); - } - - if ('x' === $str[1] || 'X' === $str[1]) { - $attributes['kind'] = LNumber::KIND_HEX; - return new LNumber(hexdec($str), $attributes); - } - - if ('b' === $str[1] || 'B' === $str[1]) { - $attributes['kind'] = LNumber::KIND_BIN; - return new LNumber(bindec($str), $attributes); - } - - if (!$allowInvalidOctal && strpbrk($str, '89')) { - throw new Error('Invalid numeric literal', $attributes); - } - - // use intval instead of octdec to get proper cutting behavior with malformed numbers - $attributes['kind'] = LNumber::KIND_OCT; - return new LNumber(intval($str, 8), $attributes); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php deleted file mode 100644 index a50d68f3..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +++ /dev/null @@ -1,28 +0,0 @@ - '\\', - '$' => '$', - 'n' => "\n", - 'r' => "\r", - 't' => "\t", - 'f' => "\f", - 'v' => "\v", - 'e' => "\x1B", - ); - - /** - * Constructs a string scalar node. - * - * @param string $value Value of the string - * @param array $attributes Additional attributes - */ - public function __construct($value, array $attributes = array()) { - parent::__construct($attributes); - $this->value = $value; - } - - public function getSubNodeNames() { - return array('value'); - } - - /** - * @internal - * - * Parses a string token. - * - * @param string $str String token content - * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes - * - * @return string The parsed string - */ - public static function parse($str, $parseUnicodeEscape = true) { - $bLength = 0; - if ('b' === $str[0] || 'B' === $str[0]) { - $bLength = 1; - } - - if ('\'' === $str[$bLength]) { - return str_replace( - array('\\\\', '\\\''), - array( '\\', '\''), - substr($str, $bLength + 1, -1) - ); - } else { - return self::parseEscapeSequences( - substr($str, $bLength + 1, -1), '"', $parseUnicodeEscape - ); - } - } - - /** - * @internal - * - * Parses escape sequences in strings (all string types apart from single quoted). - * - * @param string $str String without quotes - * @param null|string $quote Quote type - * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes - * - * @return string String with escape sequences parsed - */ - public static function parseEscapeSequences($str, $quote, $parseUnicodeEscape = true) { - if (null !== $quote) { - $str = str_replace('\\' . $quote, $quote, $str); - } - - $extra = ''; - if ($parseUnicodeEscape) { - $extra = '|u\{([0-9a-fA-F]+)\}'; - } - - return preg_replace_callback( - '~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}' . $extra . ')~', - function($matches) { - $str = $matches[1]; - - if (isset(self::$replacements[$str])) { - return self::$replacements[$str]; - } elseif ('x' === $str[0] || 'X' === $str[0]) { - return chr(hexdec($str)); - } elseif ('u' === $str[0]) { - return self::codePointToUtf8(hexdec($matches[2])); - } else { - return chr(octdec($str)); - } - }, - $str - ); - } - - private static function codePointToUtf8($num) { - if ($num <= 0x7F) { - return chr($num); - } - if ($num <= 0x7FF) { - return chr(($num>>6) + 0xC0) . chr(($num&0x3F) + 0x80); - } - if ($num <= 0xFFFF) { - return chr(($num>>12) + 0xE0) . chr((($num>>6)&0x3F) + 0x80) . chr(($num&0x3F) + 0x80); - } - if ($num <= 0x1FFFFF) { - return chr(($num>>18) + 0xF0) . chr((($num>>12)&0x3F) + 0x80) - . chr((($num>>6)&0x3F) + 0x80) . chr(($num&0x3F) + 0x80); - } - throw new Error('Invalid UTF-8 codepoint escape sequence: Codepoint too large'); - } - - /** - * @internal - * - * Parses a constant doc string. - * - * @param string $startToken Doc string start token content (<<num = $num; - } - - public function getSubNodeNames() { - return array('num'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php deleted file mode 100644 index 03f892c7..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +++ /dev/null @@ -1,30 +0,0 @@ -cond = $cond; - $this->stmts = $stmts; - } - - public function getSubNodeNames() { - return array('cond', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php deleted file mode 100644 index 58337ad9..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +++ /dev/null @@ -1,34 +0,0 @@ -types = $types; - $this->var = $var; - $this->stmts = $stmts; - } - - public function getSubNodeNames() { - return array('types', 'var', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php deleted file mode 100644 index 0d41094f..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +++ /dev/null @@ -1,47 +0,0 @@ -flags = $flags; - $this->consts = $consts; - } - - public function getSubNodeNames() { - return array('flags', 'consts'); - } - - public function isPublic() { - return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0 - || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0; - } - - public function isProtected() { - return (bool) ($this->flags & Class_::MODIFIER_PROTECTED); - } - - public function isPrivate() { - return (bool) ($this->flags & Class_::MODIFIER_PRIVATE); - } - - public function isStatic() { - return (bool) ($this->flags & Class_::MODIFIER_STATIC); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php deleted file mode 100644 index f9053355..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +++ /dev/null @@ -1,44 +0,0 @@ -stmts as $stmt) { - if ($stmt instanceof ClassMethod) { - $methods[] = $stmt; - } - } - return $methods; - } - - /** - * Gets method with the given name defined directly in this class/interface/trait. - * - * @param string $name Name of the method (compared case-insensitively) - * - * @return ClassMethod|null Method node or null if the method does not exist - */ - public function getMethod($name) { - $lowerName = strtolower($name); - foreach ($this->stmts as $stmt) { - if ($stmt instanceof ClassMethod && $lowerName === strtolower($stmt->name)) { - return $stmt; - } - } - return null; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php deleted file mode 100644 index de05390a..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +++ /dev/null @@ -1,94 +0,0 @@ - MODIFIER_PUBLIC: Flags - * 'byRef' => false : Whether to return by reference - * 'params' => array() : Parameters - * 'returnType' => null : Return type - * 'stmts' => array() : Statements - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->flags = isset($subNodes['flags']) ? $subNodes['flags'] - : (isset($subNodes['type']) ? $subNodes['type'] : 0); - $this->type = $this->flags; - $this->byRef = isset($subNodes['byRef']) ? $subNodes['byRef'] : false; - $this->name = $name; - $this->params = isset($subNodes['params']) ? $subNodes['params'] : array(); - $this->returnType = isset($subNodes['returnType']) ? $subNodes['returnType'] : null; - $this->stmts = array_key_exists('stmts', $subNodes) ? $subNodes['stmts'] : array(); - } - - public function getSubNodeNames() { - return array('flags', 'byRef', 'name', 'params', 'returnType', 'stmts'); - } - - public function returnsByRef() { - return $this->byRef; - } - - public function getParams() { - return $this->params; - } - - public function getReturnType() { - return $this->returnType; - } - - public function getStmts() { - return $this->stmts; - } - - public function isPublic() { - return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0 - || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0; - } - - public function isProtected() { - return (bool) ($this->flags & Class_::MODIFIER_PROTECTED); - } - - public function isPrivate() { - return (bool) ($this->flags & Class_::MODIFIER_PRIVATE); - } - - public function isAbstract() { - return (bool) ($this->flags & Class_::MODIFIER_ABSTRACT); - } - - public function isFinal() { - return (bool) ($this->flags & Class_::MODIFIER_FINAL); - } - - public function isStatic() { - return (bool) ($this->flags & Class_::MODIFIER_STATIC); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php deleted file mode 100644 index 0a65e374..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +++ /dev/null @@ -1,99 +0,0 @@ - true, - 'parent' => true, - 'static' => true, - ); - - /** - * Constructs a class node. - * - * @param string|null $name Name - * @param array $subNodes Array of the following optional subnodes: - * 'flags' => 0 : Flags - * 'extends' => null : Name of extended class - * 'implements' => array(): Names of implemented interfaces - * 'stmts' => array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->flags = isset($subNodes['flags']) ? $subNodes['flags'] - : (isset($subNodes['type']) ? $subNodes['type'] : 0); - $this->type = $this->flags; - $this->name = $name; - $this->extends = isset($subNodes['extends']) ? $subNodes['extends'] : null; - $this->implements = isset($subNodes['implements']) ? $subNodes['implements'] : array(); - $this->stmts = isset($subNodes['stmts']) ? $subNodes['stmts'] : array(); - } - - public function getSubNodeNames() { - return array('flags', 'name', 'extends', 'implements', 'stmts'); - } - - public function isAbstract() { - return (bool) ($this->flags & self::MODIFIER_ABSTRACT); - } - - public function isFinal() { - return (bool) ($this->flags & self::MODIFIER_FINAL); - } - - public function isAnonymous() { - return null === $this->name; - } - - /** - * @internal - */ - public static function verifyModifier($a, $b) { - if ($a & self::VISIBILITY_MODIFIER_MASK && $b & self::VISIBILITY_MODIFIER_MASK) { - throw new Error('Multiple access type modifiers are not allowed'); - } - - if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) { - throw new Error('Multiple abstract modifiers are not allowed'); - } - - if ($a & self::MODIFIER_STATIC && $b & self::MODIFIER_STATIC) { - throw new Error('Multiple static modifiers are not allowed'); - } - - if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) { - throw new Error('Multiple final modifiers are not allowed'); - } - - if ($a & 48 && $b & 48) { - throw new Error('Cannot use the final modifier on an abstract class member'); - } - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php deleted file mode 100644 index 8b2eecd5..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +++ /dev/null @@ -1,26 +0,0 @@ -consts = $consts; - } - - public function getSubNodeNames() { - return array('consts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php deleted file mode 100644 index f78e19a2..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +++ /dev/null @@ -1,26 +0,0 @@ -num = $num; - } - - public function getSubNodeNames() { - return array('num'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php deleted file mode 100644 index 829dbaf2..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +++ /dev/null @@ -1,30 +0,0 @@ -value pair node. - * - * @param string $key Key - * @param Node\Expr $value Value - * @param array $attributes Additional attributes - */ - public function __construct($key, Node\Expr $value, array $attributes = array()) { - parent::__construct($attributes); - $this->key = $key; - $this->value = $value; - } - - public function getSubNodeNames() { - return array('key', 'value'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php deleted file mode 100644 index 32739f35..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +++ /dev/null @@ -1,30 +0,0 @@ -declares = $declares; - $this->stmts = $stmts; - } - - public function getSubNodeNames() { - return array('declares', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php deleted file mode 100644 index dd4c6c84..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +++ /dev/null @@ -1,30 +0,0 @@ -cond = $cond; - $this->stmts = $stmts; - } - - public function getSubNodeNames() { - return array('cond', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php deleted file mode 100644 index 11e10707..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +++ /dev/null @@ -1,26 +0,0 @@ -exprs = $exprs; - } - - public function getSubNodeNames() { - return array('exprs'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php deleted file mode 100644 index 608878f6..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +++ /dev/null @@ -1,30 +0,0 @@ -cond = $cond; - $this->stmts = $stmts; - } - - public function getSubNodeNames() { - return array('cond', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php deleted file mode 100644 index c91a1484..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +++ /dev/null @@ -1,26 +0,0 @@ -stmts = $stmts; - } - - public function getSubNodeNames() { - return array('stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php deleted file mode 100644 index 0e3eabbe..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +++ /dev/null @@ -1,26 +0,0 @@ -stmts = $stmts; - } - - public function getSubNodeNames() { - return array('stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php deleted file mode 100644 index 2ca88a33..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +++ /dev/null @@ -1,39 +0,0 @@ - array(): Init expressions - * 'cond' => array(): Loop conditions - * 'loop' => array(): Loop expressions - * 'stmts' => array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct(array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->init = isset($subNodes['init']) ? $subNodes['init'] : array(); - $this->cond = isset($subNodes['cond']) ? $subNodes['cond'] : array(); - $this->loop = isset($subNodes['loop']) ? $subNodes['loop'] : array(); - $this->stmts = isset($subNodes['stmts']) ? $subNodes['stmts'] : array(); - } - - public function getSubNodeNames() { - return array('init', 'cond', 'loop', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php deleted file mode 100644 index d2c64320..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +++ /dev/null @@ -1,43 +0,0 @@ - null : Variable to assign key to - * 'byRef' => false : Whether to assign value by reference - * 'stmts' => array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct(Node\Expr $expr, Node\Expr $valueVar, array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->expr = $expr; - $this->keyVar = isset($subNodes['keyVar']) ? $subNodes['keyVar'] : null; - $this->byRef = isset($subNodes['byRef']) ? $subNodes['byRef'] : false; - $this->valueVar = $valueVar; - $this->stmts = isset($subNodes['stmts']) ? $subNodes['stmts'] : array(); - } - - public function getSubNodeNames() { - return array('expr', 'keyVar', 'byRef', 'valueVar', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php deleted file mode 100644 index 4c1f48d8..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +++ /dev/null @@ -1,60 +0,0 @@ - false : Whether to return by reference - * 'params' => array(): Parameters - * 'returnType' => null : Return type - * 'stmts' => array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->byRef = isset($subNodes['byRef']) ? $subNodes['byRef'] : false; - $this->name = $name; - $this->params = isset($subNodes['params']) ? $subNodes['params'] : array(); - $this->returnType = isset($subNodes['returnType']) ? $subNodes['returnType'] : null; - $this->stmts = isset($subNodes['stmts']) ? $subNodes['stmts'] : array(); - } - - public function getSubNodeNames() { - return array('byRef', 'name', 'params', 'returnType', 'stmts'); - } - - public function returnsByRef() { - return $this->byRef; - } - - public function getParams() { - return $this->params; - } - - public function getReturnType() { - return $this->returnType; - } - - public function getStmts() { - return $this->stmts; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php deleted file mode 100644 index 29fbc488..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +++ /dev/null @@ -1,26 +0,0 @@ -vars = $vars; - } - - public function getSubNodeNames() { - return array('vars'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php deleted file mode 100644 index b087fe02..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +++ /dev/null @@ -1,26 +0,0 @@ -name = $name; - } - - public function getSubNodeNames() { - return array('name'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php deleted file mode 100644 index 30837dd6..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +++ /dev/null @@ -1,35 +0,0 @@ -type = $type; - $this->prefix = $prefix; - $this->uses = $uses; - } - - public function getSubNodeNames() { - return array('type', 'prefix', 'uses'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php deleted file mode 100644 index c33ec9f1..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +++ /dev/null @@ -1,26 +0,0 @@ -remaining = $remaining; - } - - public function getSubNodeNames() { - return array('remaining'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php deleted file mode 100644 index 98bda356..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +++ /dev/null @@ -1,39 +0,0 @@ - array(): Statements - * 'elseifs' => array(): Elseif clauses - * 'else' => null : Else clause - * @param array $attributes Additional attributes - */ - public function __construct(Node\Expr $cond, array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->cond = $cond; - $this->stmts = isset($subNodes['stmts']) ? $subNodes['stmts'] : array(); - $this->elseifs = isset($subNodes['elseifs']) ? $subNodes['elseifs'] : array(); - $this->else = isset($subNodes['else']) ? $subNodes['else'] : null; - } - - public function getSubNodeNames() { - return array('cond', 'stmts', 'elseifs', 'else'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php deleted file mode 100644 index accebe61..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +++ /dev/null @@ -1,26 +0,0 @@ -value = $value; - } - - public function getSubNodeNames() { - return array('value'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php deleted file mode 100644 index efb5891f..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +++ /dev/null @@ -1,31 +0,0 @@ - array(): Name of extended interfaces - * 'stmts' => array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->name = $name; - $this->extends = isset($subNodes['extends']) ? $subNodes['extends'] : array(); - $this->stmts = isset($subNodes['stmts']) ? $subNodes['stmts'] : array(); - } - - public function getSubNodeNames() { - return array('name', 'extends', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php deleted file mode 100644 index edd0ee9a..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +++ /dev/null @@ -1,26 +0,0 @@ -name = $name; - } - - public function getSubNodeNames() { - return array('name'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php deleted file mode 100644 index 444855c3..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +++ /dev/null @@ -1,34 +0,0 @@ -name = $name; - $this->stmts = $stmts; - } - - public function getSubNodeNames() { - return array('name', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php deleted file mode 100644 index 270dd099..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +++ /dev/null @@ -1,13 +0,0 @@ -flags = $flags; - $this->type = $flags; - $this->props = $props; - } - - public function getSubNodeNames() { - return array('flags', 'props'); - } - - public function isPublic() { - return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0 - || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0; - } - - public function isProtected() { - return (bool) ($this->flags & Class_::MODIFIER_PROTECTED); - } - - public function isPrivate() { - return (bool) ($this->flags & Class_::MODIFIER_PRIVATE); - } - - public function isStatic() { - return (bool) ($this->flags & Class_::MODIFIER_STATIC); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php deleted file mode 100644 index b2d29dc7..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +++ /dev/null @@ -1,30 +0,0 @@ -name = $name; - $this->default = $default; - } - - public function getSubNodeNames() { - return array('name', 'default'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php deleted file mode 100644 index b6428411..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php deleted file mode 100644 index 4bc5dd25..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +++ /dev/null @@ -1,30 +0,0 @@ -name = $name; - $this->default = $default; - } - - public function getSubNodeNames() { - return array('name', 'default'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php deleted file mode 100644 index 37cc0b36..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +++ /dev/null @@ -1,26 +0,0 @@ -vars = $vars; - } - - public function getSubNodeNames() { - return array('vars'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php deleted file mode 100644 index 72d667b1..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +++ /dev/null @@ -1,30 +0,0 @@ -cond = $cond; - $this->cases = $cases; - } - - public function getSubNodeNames() { - return array('cond', 'cases'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php deleted file mode 100644 index f8ff6aa3..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +++ /dev/null @@ -1,26 +0,0 @@ -expr = $expr; - } - - public function getSubNodeNames() { - return array('expr'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php deleted file mode 100644 index a29874be..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +++ /dev/null @@ -1,31 +0,0 @@ -traits = $traits; - $this->adaptations = $adaptations; - } - - public function getSubNodeNames() { - return array('traits', 'adaptations'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php deleted file mode 100644 index c6038c8c..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +++ /dev/null @@ -1,13 +0,0 @@ -trait = $trait; - $this->method = $method; - $this->newModifier = $newModifier; - $this->newName = $newName; - } - - public function getSubNodeNames() { - return array('trait', 'method', 'newModifier', 'newName'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php deleted file mode 100644 index 1f6bc1f9..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +++ /dev/null @@ -1,30 +0,0 @@ -trait = $trait; - $this->method = $method; - $this->insteadof = $insteadof; - } - - public function getSubNodeNames() { - return array('trait', 'method', 'insteadof'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php deleted file mode 100644 index eed5844a..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +++ /dev/null @@ -1,26 +0,0 @@ - array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = array(), array $attributes = array()) { - parent::__construct($attributes); - $this->name = $name; - $this->stmts = isset($subNodes['stmts']) ? $subNodes['stmts'] : array(); - } - - public function getSubNodeNames() { - return array('name', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php deleted file mode 100644 index 0ff36cc7..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +++ /dev/null @@ -1,34 +0,0 @@ -stmts = $stmts; - $this->catches = $catches; - $this->finally = $finally; - } - - public function getSubNodeNames() { - return array('stmts', 'catches', 'finally'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php deleted file mode 100644 index 0f00fe94..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +++ /dev/null @@ -1,26 +0,0 @@ -vars = $vars; - } - - public function getSubNodeNames() { - return array('vars'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php deleted file mode 100644 index 2de8432d..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +++ /dev/null @@ -1,38 +0,0 @@ -getLast(); - } - - parent::__construct($attributes); - $this->type = $type; - $this->name = $name; - $this->alias = $alias; - } - - public function getSubNodeNames() { - return array('type', 'name', 'alias'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php deleted file mode 100644 index 6c89ebb1..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +++ /dev/null @@ -1,43 +0,0 @@ -type = $type; - $this->uses = $uses; - } - - public function getSubNodeNames() { - return array('type', 'uses'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php deleted file mode 100644 index afad1b25..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +++ /dev/null @@ -1,30 +0,0 @@ -cond = $cond; - $this->stmts = $stmts; - } - - public function getSubNodeNames() { - return array('cond', 'stmts'); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php deleted file mode 100644 index 11671d41..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php +++ /dev/null @@ -1,121 +0,0 @@ -attributes = $attributes; - } - - /** - * Gets the type of the node. - * - * @return string Type of the node - */ - public function getType() { - $className = rtrim(get_class($this), '_'); - return strtr( - substr( - $className, - strpos($className, 'PhpParser\Node') + 15 - ), - '\\', - '_' - ); - } - - /** - * Gets line the node started in. - * - * @return int Line - */ - public function getLine() { - return $this->getAttribute('startLine', -1); - } - - /** - * Sets line the node started in. - * - * @param int $line Line - * - * @deprecated - */ - public function setLine($line) { - $this->setAttribute('startLine', (int) $line); - } - - /** - * Gets the doc comment of the node. - * - * The doc comment has to be the last comment associated with the node. - * - * @return null|Comment\Doc Doc comment object or null - */ - public function getDocComment() { - $comments = $this->getAttribute('comments'); - if (!$comments) { - return null; - } - - $lastComment = $comments[count($comments) - 1]; - if (!$lastComment instanceof Comment\Doc) { - return null; - } - - return $lastComment; - } - - /** - * Sets the doc comment of the node. - * - * This will either replace an existing doc comment or add it to the comments array. - * - * @param Comment\Doc $docComment Doc comment to set - */ - public function setDocComment(Comment\Doc $docComment) { - $comments = $this->getAttribute('comments', []); - - $numComments = count($comments); - if ($numComments > 0 && $comments[$numComments - 1] instanceof Comment\Doc) { - // Replace existing doc comment - $comments[$numComments - 1] = $docComment; - } else { - // Append new comment - $comments[] = $docComment; - } - - $this->setAttribute('comments', $comments); - } - - public function setAttribute($key, $value) { - $this->attributes[$key] = $value; - } - - public function hasAttribute($key) { - return array_key_exists($key, $this->attributes); - } - - public function &getAttribute($key, $default = null) { - if (!array_key_exists($key, $this->attributes)) { - return $default; - } else { - return $this->attributes[$key]; - } - } - - public function getAttributes() { - return $this->attributes; - } - - public function jsonSerialize() { - return ['nodeType' => $this->getType()] + get_object_vars($this); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php b/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php deleted file mode 100644 index 9946eb85..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php +++ /dev/null @@ -1,196 +0,0 @@ -dumpComments = !empty($options['dumpComments']); - $this->dumpPositions = !empty($options['dumpPositions']); - } - - /** - * Dumps a node or array. - * - * @param array|Node $node Node or array to dump - * @param string|null $code Code corresponding to dumped AST. This only needs to be passed if - * the dumpPositions option is enabled and the dumping of node offsets - * is desired. - * - * @return string Dumped value - */ - public function dump($node, $code = null) { - $this->code = $code; - return $this->dumpRecursive($node); - } - - protected function dumpRecursive($node) { - if ($node instanceof Node) { - $r = $node->getType(); - if ($this->dumpPositions && null !== $p = $this->dumpPosition($node)) { - $r .= $p; - } - $r .= '('; - - foreach ($node->getSubNodeNames() as $key) { - $r .= "\n " . $key . ': '; - - $value = $node->$key; - if (null === $value) { - $r .= 'null'; - } elseif (false === $value) { - $r .= 'false'; - } elseif (true === $value) { - $r .= 'true'; - } elseif (is_scalar($value)) { - if ('flags' === $key || 'newModifier' === $key) { - $r .= $this->dumpFlags($value); - } else if ('type' === $key && $node instanceof Include_) { - $r .= $this->dumpIncludeType($value); - } else if ('type' === $key - && ($node instanceof Use_ || $node instanceof UseUse || $node instanceof GroupUse)) { - $r .= $this->dumpUseType($value); - } else { - $r .= $value; - } - } else { - $r .= str_replace("\n", "\n ", $this->dumpRecursive($value)); - } - } - - if ($this->dumpComments && $comments = $node->getAttribute('comments')) { - $r .= "\n comments: " . str_replace("\n", "\n ", $this->dumpRecursive($comments)); - } - } elseif (is_array($node)) { - $r = 'array('; - - foreach ($node as $key => $value) { - $r .= "\n " . $key . ': '; - - if (null === $value) { - $r .= 'null'; - } elseif (false === $value) { - $r .= 'false'; - } elseif (true === $value) { - $r .= 'true'; - } elseif (is_scalar($value)) { - $r .= $value; - } else { - $r .= str_replace("\n", "\n ", $this->dumpRecursive($value)); - } - } - } elseif ($node instanceof Comment) { - return $node->getReformattedText(); - } else { - throw new \InvalidArgumentException('Can only dump nodes and arrays.'); - } - - return $r . "\n)"; - } - - protected function dumpFlags($flags) { - $strs = []; - if ($flags & Class_::MODIFIER_PUBLIC) { - $strs[] = 'MODIFIER_PUBLIC'; - } - if ($flags & Class_::MODIFIER_PROTECTED) { - $strs[] = 'MODIFIER_PROTECTED'; - } - if ($flags & Class_::MODIFIER_PRIVATE) { - $strs[] = 'MODIFIER_PRIVATE'; - } - if ($flags & Class_::MODIFIER_ABSTRACT) { - $strs[] = 'MODIFIER_ABSTRACT'; - } - if ($flags & Class_::MODIFIER_STATIC) { - $strs[] = 'MODIFIER_STATIC'; - } - if ($flags & Class_::MODIFIER_FINAL) { - $strs[] = 'MODIFIER_FINAL'; - } - - if ($strs) { - return implode(' | ', $strs) . ' (' . $flags . ')'; - } else { - return $flags; - } - } - - protected function dumpIncludeType($type) { - $map = [ - Include_::TYPE_INCLUDE => 'TYPE_INCLUDE', - Include_::TYPE_INCLUDE_ONCE => 'TYPE_INCLUDE_ONCE', - Include_::TYPE_REQUIRE => 'TYPE_REQUIRE', - Include_::TYPE_REQUIRE_ONCE => 'TYPE_REQURE_ONCE', - ]; - - if (!isset($map[$type])) { - return $type; - } - return $map[$type] . ' (' . $type . ')'; - } - - protected function dumpUseType($type) { - $map = [ - Use_::TYPE_UNKNOWN => 'TYPE_UNKNOWN', - Use_::TYPE_NORMAL => 'TYPE_NORMAL', - Use_::TYPE_FUNCTION => 'TYPE_FUNCTION', - Use_::TYPE_CONSTANT => 'TYPE_CONSTANT', - ]; - - if (!isset($map[$type])) { - return $type; - } - return $map[$type] . ' (' . $type . ')'; - } - - protected function dumpPosition(Node $node) { - if (!$node->hasAttribute('startLine') || !$node->hasAttribute('endLine')) { - return null; - } - - $start = $node->getAttribute('startLine'); - $end = $node->getAttribute('endLine'); - if ($node->hasAttribute('startFilePos') && $node->hasAttribute('endFilePos') - && null !== $this->code - ) { - $start .= ':' . $this->toColumn($this->code, $node->getAttribute('startFilePos')); - $end .= ':' . $this->toColumn($this->code, $node->getAttribute('endFilePos')); - } - return "[$start - $end]"; - } - - // Copied from Error class - private function toColumn($code, $pos) { - if ($pos > strlen($code)) { - throw new \RuntimeException('Invalid position information'); - } - - $lineStartPos = strrpos($code, "\n", $pos - strlen($code)); - if (false === $lineStartPos) { - $lineStartPos = -1; - } - - return $pos - $lineStartPos; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php b/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php deleted file mode 100644 index cce43d92..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php +++ /dev/null @@ -1,204 +0,0 @@ -visitors = array(); - } - - /** - * Adds a visitor. - * - * @param NodeVisitor $visitor Visitor to add - */ - public function addVisitor(NodeVisitor $visitor) { - $this->visitors[] = $visitor; - } - - /** - * Removes an added visitor. - * - * @param NodeVisitor $visitor - */ - public function removeVisitor(NodeVisitor $visitor) { - foreach ($this->visitors as $index => $storedVisitor) { - if ($storedVisitor === $visitor) { - unset($this->visitors[$index]); - break; - } - } - } - - /** - * Traverses an array of nodes using the registered visitors. - * - * @param Node[] $nodes Array of nodes - * - * @return Node[] Traversed array of nodes - */ - public function traverse(array $nodes) { - $this->stopTraversal = false; - - foreach ($this->visitors as $visitor) { - if (null !== $return = $visitor->beforeTraverse($nodes)) { - $nodes = $return; - } - } - - $nodes = $this->traverseArray($nodes); - - foreach ($this->visitors as $visitor) { - if (null !== $return = $visitor->afterTraverse($nodes)) { - $nodes = $return; - } - } - - return $nodes; - } - - protected function traverseNode(Node $node) { - foreach ($node->getSubNodeNames() as $name) { - $subNode =& $node->$name; - - if (is_array($subNode)) { - $subNode = $this->traverseArray($subNode); - if ($this->stopTraversal) { - break; - } - } elseif ($subNode instanceof Node) { - $traverseChildren = true; - foreach ($this->visitors as $visitor) { - $return = $visitor->enterNode($subNode); - if (self::DONT_TRAVERSE_CHILDREN === $return) { - $traverseChildren = false; - } else if (self::STOP_TRAVERSAL === $return) { - $this->stopTraversal = true; - break 2; - } else if (null !== $return) { - $subNode = $return; - } - } - - if ($traverseChildren) { - $subNode = $this->traverseNode($subNode); - if ($this->stopTraversal) { - break; - } - } - - foreach ($this->visitors as $visitor) { - $return = $visitor->leaveNode($subNode); - if (self::STOP_TRAVERSAL === $return) { - $this->stopTraversal = true; - break 2; - } else if (null !== $return) { - if (is_array($return)) { - throw new \LogicException( - 'leaveNode() may only return an array ' . - 'if the parent structure is an array' - ); - } - $subNode = $return; - } - } - } - } - - return $node; - } - - protected function traverseArray(array $nodes) { - $doNodes = array(); - - foreach ($nodes as $i => &$node) { - if (is_array($node)) { - $node = $this->traverseArray($node); - if ($this->stopTraversal) { - break; - } - } elseif ($node instanceof Node) { - $traverseChildren = true; - foreach ($this->visitors as $visitor) { - $return = $visitor->enterNode($node); - if (self::DONT_TRAVERSE_CHILDREN === $return) { - $traverseChildren = false; - } else if (self::STOP_TRAVERSAL === $return) { - $this->stopTraversal = true; - break 2; - } else if (null !== $return) { - $node = $return; - } - } - - if ($traverseChildren) { - $node = $this->traverseNode($node); - if ($this->stopTraversal) { - break; - } - } - - foreach ($this->visitors as $visitor) { - $return = $visitor->leaveNode($node); - - if (self::REMOVE_NODE === $return) { - $doNodes[] = array($i, array()); - break; - } else if (self::STOP_TRAVERSAL === $return) { - $this->stopTraversal = true; - break 2; - } elseif (is_array($return)) { - $doNodes[] = array($i, $return); - break; - } elseif (null !== $return) { - $node = $return; - } - } - } - } - - if (!empty($doNodes)) { - while (list($i, $replace) = array_pop($doNodes)) { - array_splice($nodes, $i, 1, $replace); - } - } - - return $nodes; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php b/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php deleted file mode 100644 index 0f88e467..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - $node stays as-is - * * NodeTraverser::DONT_TRAVERSE_CHILDREN - * => Children of $node are not traversed. $node stays as-is - * * NodeTraverser::STOP_TRAVERSAL - * => Traversal is aborted. $node stays as-is - * * otherwise - * => $node is set to the return value - * - * @param Node $node Node - * - * @return null|int|Node Node - */ - public function enterNode(Node $node); - - /** - * Called when leaving a node. - * - * Return value semantics: - * * null - * => $node stays as-is - * * NodeTraverser::REMOVE_NODE - * => $node is removed from the parent array - * * NodeTraverser::STOP_TRAVERSAL - * => Traversal is aborted. $node stays as-is - * * array (of Nodes) - * => The return value is merged into the parent array (at the position of the $node) - * * otherwise - * => $node is set to the return value - * - * @param Node $node Node - * - * @return null|false|int|Node|Node[] Node - */ - public function leaveNode(Node $node); - - /** - * Called once after traversal. - * - * Return value semantics: - * * null: $nodes stays as-is - * * otherwise: $nodes is set to the return value - * - * @param Node[] $nodes Array of nodes - * - * @return null|Node[] Array of nodes - */ - public function afterTraverse(array $nodes); -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php deleted file mode 100644 index d56812bc..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +++ /dev/null @@ -1,272 +0,0 @@ - [aliasName => originalName]] */ - protected $aliases; - - /** @var ErrorHandler Error handler */ - protected $errorHandler; - - /** @var bool Whether to preserve original names */ - protected $preserveOriginalNames; - - /** - * Constructs a name resolution visitor. - * - * Options: If "preserveOriginalNames" is enabled, an "originalName" attribute will be added to - * all name nodes that underwent resolution. - * - * @param ErrorHandler|null $errorHandler Error handler - * @param array $options Options - */ - public function __construct(ErrorHandler $errorHandler = null, array $options = []) { - $this->errorHandler = $errorHandler ?: new ErrorHandler\Throwing; - $this->preserveOriginalNames = !empty($options['preserveOriginalNames']); - } - - public function beforeTraverse(array $nodes) { - $this->resetState(); - } - - public function enterNode(Node $node) { - if ($node instanceof Stmt\Namespace_) { - $this->resetState($node->name); - } elseif ($node instanceof Stmt\Use_) { - foreach ($node->uses as $use) { - $this->addAlias($use, $node->type, null); - } - } elseif ($node instanceof Stmt\GroupUse) { - foreach ($node->uses as $use) { - $this->addAlias($use, $node->type, $node->prefix); - } - } elseif ($node instanceof Stmt\Class_) { - if (null !== $node->extends) { - $node->extends = $this->resolveClassName($node->extends); - } - - foreach ($node->implements as &$interface) { - $interface = $this->resolveClassName($interface); - } - - if (null !== $node->name) { - $this->addNamespacedName($node); - } - } elseif ($node instanceof Stmt\Interface_) { - foreach ($node->extends as &$interface) { - $interface = $this->resolveClassName($interface); - } - - $this->addNamespacedName($node); - } elseif ($node instanceof Stmt\Trait_) { - $this->addNamespacedName($node); - } elseif ($node instanceof Stmt\Function_) { - $this->addNamespacedName($node); - $this->resolveSignature($node); - } elseif ($node instanceof Stmt\ClassMethod - || $node instanceof Expr\Closure - ) { - $this->resolveSignature($node); - } elseif ($node instanceof Stmt\Const_) { - foreach ($node->consts as $const) { - $this->addNamespacedName($const); - } - } elseif ($node instanceof Expr\StaticCall - || $node instanceof Expr\StaticPropertyFetch - || $node instanceof Expr\ClassConstFetch - || $node instanceof Expr\New_ - || $node instanceof Expr\Instanceof_ - ) { - if ($node->class instanceof Name) { - $node->class = $this->resolveClassName($node->class); - } - } elseif ($node instanceof Stmt\Catch_) { - foreach ($node->types as &$type) { - $type = $this->resolveClassName($type); - } - } elseif ($node instanceof Expr\FuncCall) { - if ($node->name instanceof Name) { - $node->name = $this->resolveOtherName($node->name, Stmt\Use_::TYPE_FUNCTION); - } - } elseif ($node instanceof Expr\ConstFetch) { - $node->name = $this->resolveOtherName($node->name, Stmt\Use_::TYPE_CONSTANT); - } elseif ($node instanceof Stmt\TraitUse) { - foreach ($node->traits as &$trait) { - $trait = $this->resolveClassName($trait); - } - - foreach ($node->adaptations as $adaptation) { - if (null !== $adaptation->trait) { - $adaptation->trait = $this->resolveClassName($adaptation->trait); - } - - if ($adaptation instanceof Stmt\TraitUseAdaptation\Precedence) { - foreach ($adaptation->insteadof as &$insteadof) { - $insteadof = $this->resolveClassName($insteadof); - } - } - } - } - } - - protected function resetState(Name $namespace = null) { - $this->namespace = $namespace; - $this->aliases = array( - Stmt\Use_::TYPE_NORMAL => array(), - Stmt\Use_::TYPE_FUNCTION => array(), - Stmt\Use_::TYPE_CONSTANT => array(), - ); - } - - protected function addAlias(Stmt\UseUse $use, $type, Name $prefix = null) { - // Add prefix for group uses - $name = $prefix ? Name::concat($prefix, $use->name) : $use->name; - // Type is determined either by individual element or whole use declaration - $type |= $use->type; - - // Constant names are case sensitive, everything else case insensitive - if ($type === Stmt\Use_::TYPE_CONSTANT) { - $aliasName = $use->alias; - } else { - $aliasName = strtolower($use->alias); - } - - if (isset($this->aliases[$type][$aliasName])) { - $typeStringMap = array( - Stmt\Use_::TYPE_NORMAL => '', - Stmt\Use_::TYPE_FUNCTION => 'function ', - Stmt\Use_::TYPE_CONSTANT => 'const ', - ); - - $this->errorHandler->handleError(new Error( - sprintf( - 'Cannot use %s%s as %s because the name is already in use', - $typeStringMap[$type], $name, $use->alias - ), - $use->getAttributes() - )); - return; - } - - $this->aliases[$type][$aliasName] = $name; - } - - /** @param Stmt\Function_|Stmt\ClassMethod|Expr\Closure $node */ - private function resolveSignature($node) { - foreach ($node->params as $param) { - $param->type = $this->resolveType($param->type); - } - $node->returnType = $this->resolveType($node->returnType); - } - - private function resolveType($node) { - if ($node instanceof Node\NullableType) { - $node->type = $this->resolveType($node->type); - return $node; - } - if ($node instanceof Name) { - return $this->resolveClassName($node); - } - return $node; - } - - protected function resolveClassName(Name $name) { - if ($this->preserveOriginalNames) { - // Save the original name - $originalName = $name; - $name = clone $originalName; - $name->setAttribute('originalName', $originalName); - } - - // don't resolve special class names - if (in_array(strtolower($name->toString()), array('self', 'parent', 'static'))) { - if (!$name->isUnqualified()) { - $this->errorHandler->handleError(new Error( - sprintf("'\\%s' is an invalid class name", $name->toString()), - $name->getAttributes() - )); - } - return $name; - } - - // fully qualified names are already resolved - if ($name->isFullyQualified()) { - return $name; - } - - $aliasName = strtolower($name->getFirst()); - if (!$name->isRelative() && isset($this->aliases[Stmt\Use_::TYPE_NORMAL][$aliasName])) { - // resolve aliases (for non-relative names) - $alias = $this->aliases[Stmt\Use_::TYPE_NORMAL][$aliasName]; - return FullyQualified::concat($alias, $name->slice(1), $name->getAttributes()); - } - - // if no alias exists prepend current namespace - return FullyQualified::concat($this->namespace, $name, $name->getAttributes()); - } - - protected function resolveOtherName(Name $name, $type) { - if ($this->preserveOriginalNames) { - // Save the original name - $originalName = $name; - $name = clone $originalName; - $name->setAttribute('originalName', $originalName); - } - - // fully qualified names are already resolved - if ($name->isFullyQualified()) { - return $name; - } - - // resolve aliases for qualified names - $aliasName = strtolower($name->getFirst()); - if ($name->isQualified() && isset($this->aliases[Stmt\Use_::TYPE_NORMAL][$aliasName])) { - $alias = $this->aliases[Stmt\Use_::TYPE_NORMAL][$aliasName]; - return FullyQualified::concat($alias, $name->slice(1), $name->getAttributes()); - } - - if ($name->isUnqualified()) { - if ($type === Stmt\Use_::TYPE_CONSTANT) { - // constant aliases are case-sensitive, function aliases case-insensitive - $aliasName = $name->getFirst(); - } - - if (isset($this->aliases[$type][$aliasName])) { - // resolve unqualified aliases - return new FullyQualified($this->aliases[$type][$aliasName], $name->getAttributes()); - } - - if (null === $this->namespace) { - // outside of a namespace unaliased unqualified is same as fully qualified - return new FullyQualified($name, $name->getAttributes()); - } - - // unqualified names inside a namespace cannot be resolved at compile-time - // add the namespaced version of the name as an attribute - $name->setAttribute('namespacedName', - FullyQualified::concat($this->namespace, $name, $name->getAttributes())); - return $name; - } - - // if no alias exists prepend current namespace - return FullyQualified::concat($this->namespace, $name, $name->getAttributes()); - } - - protected function addNamespacedName(Node $node) { - $node->namespacedName = Name::concat($this->namespace, $node->name); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php deleted file mode 100644 index 3e1743a7..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +++ /dev/null @@ -1,14 +0,0 @@ -parsers = $parsers; - } - - public function parse($code, ErrorHandler $errorHandler = null) { - if (null === $errorHandler) { - $errorHandler = new ErrorHandler\Throwing; - } - - list($firstStmts, $firstError) = $this->tryParse($this->parsers[0], $errorHandler, $code); - if ($firstError === null) { - return $firstStmts; - } - - for ($i = 1, $c = count($this->parsers); $i < $c; ++$i) { - list($stmts, $error) = $this->tryParse($this->parsers[$i], $errorHandler, $code); - if ($error === null) { - return $stmts; - } - } - - throw $firstError; - } - - private function tryParse(Parser $parser, ErrorHandler $errorHandler, $code) { - $stmts = null; - $error = null; - try { - $stmts = $parser->parse($code, $errorHandler); - } catch (Error $error) {} - return [$stmts, $error]; - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php deleted file mode 100644 index 52ca59cf..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php +++ /dev/null @@ -1,3141 +0,0 @@ -'", - "T_IS_GREATER_OR_EQUAL", - "T_SL", - "T_SR", - "'+'", - "'-'", - "'.'", - "'*'", - "'/'", - "'%'", - "'!'", - "T_INSTANCEOF", - "'~'", - "T_INC", - "T_DEC", - "T_INT_CAST", - "T_DOUBLE_CAST", - "T_STRING_CAST", - "T_ARRAY_CAST", - "T_OBJECT_CAST", - "T_BOOL_CAST", - "T_UNSET_CAST", - "'@'", - "T_POW", - "'['", - "T_NEW", - "T_CLONE", - "T_EXIT", - "T_IF", - "T_ELSEIF", - "T_ELSE", - "T_ENDIF", - "T_LNUMBER", - "T_DNUMBER", - "T_STRING", - "T_STRING_VARNAME", - "T_VARIABLE", - "T_NUM_STRING", - "T_INLINE_HTML", - "T_ENCAPSED_AND_WHITESPACE", - "T_CONSTANT_ENCAPSED_STRING", - "T_ECHO", - "T_DO", - "T_WHILE", - "T_ENDWHILE", - "T_FOR", - "T_ENDFOR", - "T_FOREACH", - "T_ENDFOREACH", - "T_DECLARE", - "T_ENDDECLARE", - "T_AS", - "T_SWITCH", - "T_ENDSWITCH", - "T_CASE", - "T_DEFAULT", - "T_BREAK", - "T_CONTINUE", - "T_GOTO", - "T_FUNCTION", - "T_CONST", - "T_RETURN", - "T_TRY", - "T_CATCH", - "T_FINALLY", - "T_THROW", - "T_USE", - "T_INSTEADOF", - "T_GLOBAL", - "T_STATIC", - "T_ABSTRACT", - "T_FINAL", - "T_PRIVATE", - "T_PROTECTED", - "T_PUBLIC", - "T_VAR", - "T_UNSET", - "T_ISSET", - "T_EMPTY", - "T_HALT_COMPILER", - "T_CLASS", - "T_TRAIT", - "T_INTERFACE", - "T_EXTENDS", - "T_IMPLEMENTS", - "T_OBJECT_OPERATOR", - "T_LIST", - "T_ARRAY", - "T_CALLABLE", - "T_CLASS_C", - "T_TRAIT_C", - "T_METHOD_C", - "T_FUNC_C", - "T_LINE", - "T_FILE", - "T_START_HEREDOC", - "T_END_HEREDOC", - "T_DOLLAR_OPEN_CURLY_BRACES", - "T_CURLY_OPEN", - "T_PAAMAYIM_NEKUDOTAYIM", - "T_NAMESPACE", - "T_NS_C", - "T_DIR", - "T_NS_SEPARATOR", - "T_ELLIPSIS", - "';'", - "'{'", - "'}'", - "'('", - "')'", - "'$'", - "'`'", - "']'", - "'\"'" - ); - - protected $tokenToSymbol = array( - 0, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 53, 156, 157, 153, 52, 35, 157, - 151, 152, 50, 47, 7, 48, 49, 51, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 29, 148, - 41, 15, 43, 28, 65, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 67, 157, 155, 34, 157, 154, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 149, 33, 150, 55, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 1, 2, 3, 4, - 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 30, 31, 32, 36, 37, 38, 39, 40, 42, - 44, 45, 46, 54, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 66, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 157, 157, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 157, 157, 157, 157, - 157, 157, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147 - ); - - protected $action = array( - 672, 673, 674, 675, 676,-32766, 677, 678, 679, 715, - 716, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 0, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236,-32766,-32766,-32766,-32766,-32766,-32766,-32766, - -32766,-32767,-32767,-32767,-32767, 441, 237, 238,-32766,-32766, - -32766,-32766, 680,-32766, 1036,-32766,-32766,-32766,-32766,-32766, - -32766,-32767,-32767,-32767,-32767,-32767, 681, 682, 683, 684, - 685, 686, 687, 909, 329, 747,-32766,-32766,-32766,-32766, - -32766, 282, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 718, 719, 720, 721, 722, 710, 711, - 712, 713, 714, 699, 700, 701, 702, 703, 704, 705, - 741, 742, 743, 744, 745, 746, 706, 707, 708, 709, - 739, 730, 728, 729, 725, 726, 1178, 717, 723, 724, - 731, 732, 734, 733, 735, 736, 52, 53, 420, 54, - 55, 727, 738, 737, 23, 56, 57, 284, 58,-32766, - -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 7,-32767, - -32767,-32767,-32767, 50, 325,-32766, 585, 945, 946, 947, - 944, 943, 942, 937, 1213, 27, 1215, 1214, 763, 764, - 821, 59, 60,-32766,-32766,-32766, 809, 61, 1172, 62, - 291, 292, 63, 64, 65, 66, 67, 68, 69, 70, - 334, 24, 299, 71, 413,-32766,-32766,-32766, 1185, 1087, - 1088, 749, 633, 1178, 213, 214, 215, 464,-32766,-32766, - -32766, 822, 407, 1099, 311,-32766, 1186,-32766,-32766,-32766, - -32766,-32766,-32766, 1036, 200, -269, 428,-32766,-32766,-32766, - -32766,-32766,-32766,-32766,-32766, 120, 491, 945, 946, 947, - 944, 943, 942, 306, 473, 474, 293, 623, 125,-32766, - 893, 894, 339, 477, 478,-32766, 1093, 1094, 1095, 1096, - 1090, 1091, 307, 492,-32766, 440, 425, 492, 1097, 1092, - 425, 121, -220, 869, 1182, 39, 280, 334, 321, 900, - 322, 421, -122, -122, -122, -4, 822, 463, 99, 100, - 101, 811, 301, 119, 38, 19, 422, -122, 465, -122, - 466, -122, 467, -122, 102, 423, -122, -122, -122, 28, - 29, 468, 424, 624, 30, 469, 425, 812, 72, 297, - 923, 349, 350, 470, 471,-32766,-32766,-32766, 419, 472, - 1036, 447, 793, 840, 475, 476,-32767,-32767,-32767,-32767, - 94, 95, 96, 97, 98,-32766, 126,-32766,-32766,-32766, - -32766, 1137, 213, 214, 215, 295, 421, 239, 824, 638, - -122, 1036, 463, 893, 894, 1205, 811, 1036, 1204, 38, - 19, 422, 200, 465, 356, 466, 492, 467, 127, 425, - 423, 213, 214, 215, 28, 29, 468, 424, 414, 30, - 469, 1036, 870, 72, 320, 822, 349, 350, 470, 471, - 34, 200, 214, 215, 472, 460, 762, 755, 840, 475, - 476, 213, 214, 215, 295, -216, 76, 77, 78, 46, - 298, 200, 412, 653, 338, 438, 31, 294, 333, 8, - 348, 200, 241, 824, 638, -4, 32, 332, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 1210, 301, 204, 822, 421, 805, 124,-32766,-32766, - -32766, 463, 899, 1054, 102, 811, 18, 206, 38, 19, - 422, 518, 465, 1172, 466, 546, 467, 47,-32766, 423, - -32766,-32766, 647, 28, 29, 468, 822, 801, 30, 469, - 415, 116, 72, 803, 49, 349, 350,-32766,-32766,-32766, - -32766,-32766,-32766, 472, 477, 808, 234, 235, 236, 213, - 214, 215, 1036, 215, 644, 1138, 124,-32766,-32766,-32766, - -32766,-32766, 237, 238, 421, 231, 232, 233, 1099, 200, - 463, 200, 824, 638, 811, 439, 918, 38, 19, 422, - 1036, 465, 242, 466, 749, 467, 1178, 339, 423, 96, - 97, 98, 28, 29, 468, 822, 421, 30, 469, 117, - 919, 72, 463, 283, 349, 350, 811, 244, 1036, 38, - 19, 422, 472, 465, 243, 466, 118, 467, 377, 1064, - 423, 1036, 207, 642, 28, 29, 468, 822, 129, 30, - 469, 296, 576, 72,-32766,-32766, 349, 350, 123, 205, - 492, 824, 638, 425, 472, 115,-32766,-32766,-32766, 434, - 492, 200, 640, 425, 820, 641,-32766,-32766, 429,-32766, - 334, 237, 238, 454, 591, 421,-32766, 130, 357, 449, - 20, 463, 128, 856, 638, 811, 763, 764, 38, 19, - 422, 313, 465, 646, 466, 650, 467, 599, 600, 423, - 833, 301, 605, 28, 29, 468, 822, 421, 30, 469, - 756, 643, 72, 463, 299, 349, 350, 811, 922, 666, - 38, 19, 422, 472, 465, 102, 466, 51, 467, 934, - 656, 423, 512, 433, 48, 28, 29, 468, 41, 42, - 30, 469, 43, 44, 72, 45, 435, 349, 350, 1057, - 750, 1208, 824, 638, 776, 472, 749, 33, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 534, 533, 517, 513, 524, 437, 421, 602, 516, 622, - 612, 619, 463, 582, 824, 638, 811, 595,-32766, 38, - 19, 422, 632, 465, 579, 466, 240, 467, 975, 977, - 423, 609, 1144, 279, 28, 29, 468, 12, -80, 30, - 469, 537, 432, 72, 208, 209, 349, 350, 458, 1098, - 210, 596, 211, 328, 472, 326, 11, 842, 323, 393, - 4, 385, 408, 303, 202, 1034, 0, 0, 324, 208, - 209, 841, 1087, 1088, 0, 210,-32766, 211, -497, -498, - 1089, 312, 310, 824, 638, 477, 0, 0, 0, 202, - 0, -398, 0, 0, 9, 0, 0, 1087, 1088, 3, - -497,-32766, -406, 370, -407, 1089, 835, 639, 0, 384, - 372, 409, 526, 434, 0, 0, 864, 857, 863, 872, - 0, 813, 798, 819, 807, 761, 661, 565, 760, 1093, - 1094, 1095, 1096, 1090, 1091, 383, 37, 36, 759, 926, - 810, 1097, 1092, 854, 852, 302, 806, 929, 212, 818, - -32766, 930, 565, 928, 1093, 1094, 1095, 1096, 1090, 1091, - 383, 927, 796, 804, 660, 802, 1097, 1092, 649, 651, - 75, 0, 652, 212, 654,-32766, 655, 658, 663, 664, - 665, 405, 122, 330, 331, 406, 0, 1211, 757, 758, - 839, 838, 766, 453, 1209, 1179, 1177, 1163, 1175, 1078, - 911, 1183, 1173, 829, 836, 1038, 1039, 827, 935, 1212, - 765, 837, 794, 662, 1050, 768, 767, 861, 862, 0, - 304, 290, 289, 25, 26, 281, 203, 74, 305, 336, - 411, 417, 35, 73,-32766, 40, 22, 0, 1015, 569, - -217, 1016, 1103, 1080, 901, 1040, 1044, 1041, 629, 559, - 461, 457, 455, 450, 378, 16, 15, 14, -216, 0, - 0, -416, 0, 1045, 603, 1157, 1104, 1207, 1077, 1174, - 1158, 1162, 1176, 1063, 1048, 1049, 1046, 1047, 0, 1143 - ); - - protected $actionCheck = array( - 2, 3, 4, 5, 6, 8, 8, 9, 10, 11, - 12, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 8, 9, 10, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 7, 66, 67, 31, 32, - 33, 34, 54, 28, 12, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 68, 69, 70, 71, - 72, 73, 74, 79, 7, 77, 31, 32, 33, 34, - 35, 7, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 79, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 2, 3, 4, 5, - 6, 143, 144, 145, 7, 11, 12, 153, 14, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 103, 41, - 42, 43, 44, 67, 109, 79, 82, 112, 113, 114, - 115, 116, 117, 118, 77, 7, 79, 80, 102, 103, - 1, 47, 48, 8, 9, 10, 148, 53, 79, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 153, 67, 68, 69, 70, 8, 9, 10, 1, 75, - 76, 77, 77, 79, 8, 9, 10, 83, 8, 9, - 10, 1, 146, 139, 128, 28, 152, 30, 31, 32, - 33, 34, 35, 12, 28, 79, 102, 151, 28, 153, - 30, 31, 32, 33, 34, 149, 112, 112, 113, 114, - 115, 116, 117, 7, 120, 121, 35, 77, 149, 103, - 130, 131, 153, 129, 130, 109, 132, 133, 134, 135, - 136, 137, 138, 143, 118, 7, 146, 143, 144, 145, - 146, 7, 152, 29, 77, 151, 13, 153, 154, 152, - 156, 71, 72, 73, 74, 0, 1, 77, 50, 51, - 52, 81, 54, 13, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 66, 95, 96, 97, 98, 99, - 100, 101, 102, 143, 104, 105, 146, 148, 108, 7, - 150, 111, 112, 113, 114, 8, 9, 10, 7, 119, - 12, 7, 122, 123, 124, 125, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 28, 149, 30, 31, 32, - 33, 155, 8, 9, 10, 35, 71, 13, 148, 149, - 150, 12, 77, 130, 131, 79, 81, 12, 82, 84, - 85, 86, 28, 88, 7, 90, 143, 92, 67, 146, - 95, 8, 9, 10, 99, 100, 101, 102, 103, 104, - 105, 12, 148, 108, 109, 1, 111, 112, 113, 114, - 13, 28, 9, 10, 119, 7, 148, 122, 123, 124, - 125, 8, 9, 10, 35, 152, 8, 9, 10, 67, - 35, 28, 7, 29, 67, 29, 140, 141, 143, 7, - 7, 28, 29, 148, 149, 150, 28, 7, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 150, 54, 7, 1, 71, 148, 147, 8, 9, - 10, 77, 152, 152, 66, 81, 152, 15, 84, 85, - 86, 82, 88, 79, 90, 128, 92, 67, 28, 95, - 30, 31, 29, 99, 100, 101, 1, 148, 104, 105, - 123, 149, 108, 148, 67, 111, 112, 8, 9, 10, - 31, 32, 33, 119, 129, 148, 50, 51, 52, 8, - 9, 10, 12, 10, 29, 152, 147, 28, 151, 30, - 31, 32, 66, 67, 71, 47, 48, 49, 139, 28, - 77, 28, 148, 149, 81, 149, 148, 84, 85, 86, - 12, 88, 15, 90, 77, 92, 79, 153, 95, 47, - 48, 49, 99, 100, 101, 1, 71, 104, 105, 149, - 148, 108, 77, 35, 111, 112, 81, 15, 12, 84, - 85, 86, 119, 88, 15, 90, 149, 92, 78, 112, - 95, 12, 15, 29, 99, 100, 101, 1, 149, 104, - 105, 35, 153, 108, 31, 32, 111, 112, 29, 15, - 143, 148, 149, 146, 119, 15, 8, 9, 10, 146, - 143, 28, 149, 146, 29, 29, 8, 9, 151, 31, - 153, 66, 67, 72, 73, 71, 28, 97, 98, 72, - 73, 77, 29, 148, 149, 81, 102, 103, 84, 85, - 86, 29, 88, 29, 90, 29, 92, 106, 107, 95, - 35, 54, 74, 99, 100, 101, 1, 71, 104, 105, - 148, 149, 108, 77, 68, 111, 112, 81, 148, 149, - 84, 85, 86, 119, 88, 66, 90, 67, 92, 148, - 149, 95, 77, 77, 67, 99, 100, 101, 67, 67, - 104, 105, 67, 67, 108, 67, 77, 111, 112, 79, - 77, 77, 148, 149, 77, 119, 77, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 77, 77, 77, 77, 82, 86, 71, 79, 79, 79, - 79, 91, 77, 96, 148, 149, 81, 96, 82, 84, - 85, 86, 89, 88, 87, 90, 29, 92, 56, 57, - 95, 93, 139, 94, 99, 100, 101, 94, 94, 104, - 105, 94, 102, 108, 47, 48, 111, 112, 102, 139, - 53, 109, 55, 126, 119, 110, 142, 123, 126, 146, - 142, 146, 146, 151, 67, 154, -1, -1, 127, 47, - 48, 123, 75, 76, -1, 53, 79, 55, 128, 128, - 83, 128, 128, 148, 149, 129, -1, -1, -1, 67, - -1, 142, -1, -1, 142, -1, -1, 75, 76, 142, - 128, 79, 142, 142, 142, 83, 147, 149, -1, 146, - 146, 146, 146, 146, -1, -1, 148, 148, 148, 148, - -1, 148, 148, 148, 148, 148, 148, 130, 148, 132, - 133, 134, 135, 136, 137, 138, 148, 148, 148, 148, - 148, 144, 145, 148, 148, 151, 148, 148, 151, 148, - 153, 148, 130, 148, 132, 133, 134, 135, 136, 137, - 138, 148, 148, 148, 148, 148, 144, 145, 149, 149, - 149, -1, 149, 151, 149, 153, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, -1, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, -1, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, -1, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, -1, - -1, 154, -1, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, -1, 156 - ); - - protected $actionBase = array( - 0, 220, 295, 109, 109, 180, 745, -2, -2, -2, - -2, -2, 135, 574, 473, 404, 473, 606, 505, 675, - 675, 675, 330, 389, 221, 221, 831, 221, 359, 365, - 328, 520, 589, 548, 576, 42, 42, 42, 42, 134, - 134, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 254, 179, 290, 397, 757, 755, 738, 741, 833, - 679, 829, 784, 785, 623, 786, 787, 788, 789, 790, - 783, 791, 849, 792, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, -3, 354, 383, 413, 206, - 628, 521, 521, 521, 521, 521, 521, 521, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 403, 618, 618, 618, 523, - 737, 603, 762, 762, 762, 762, 762, 762, 762, 762, - 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, - 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, - 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, - 762, 762, 762, 762, 762, 470, -20, -20, 509, 608, - 327, 583, 210, 489, 197, 25, 25, 25, 25, 25, - 17, 45, 5, 5, 5, 5, 712, 305, 305, 305, - 305, 118, 118, 118, 118, 780, 781, 801, 804, 395, - 395, 696, 696, 616, 773, 522, 522, 498, 498, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 387, - 156, 823, 130, 130, 130, 130, 243, 409, 633, 863, - 207, 207, 207, 243, 248, 248, 248, 476, 476, 476, - 76, 662, 296, 86, 86, 86, 86, 296, 86, 86, - 554, 554, 554, 483, 761, 676, 477, 430, 97, 459, - 657, 807, 661, 808, 540, 702, 96, 656, 705, -6, - 680, 577, 571, 561, 689, 406, -6, 254, 551, 447, - 617, 732, 663, 268, 730, 377, 38, 367, 532, 362, - 414, 334, 774, 720, 827, 826, 74, 321, 691, 617, - 617, 617, 137, 84, 775, 772, 362, 273, 575, 575, - 575, 575, 806, 776, 575, 575, 575, 575, 805, 800, - 432, 408, 782, 331, 731, 649, 649, 649, 649, 649, - 649, 635, 649, 813, 666, 825, 825, 664, 668, 635, - 824, 824, 824, 824, 635, 649, 825, 825, 635, 616, - 825, 168, 635, 672, 649, 667, 667, 824, 756, 718, - 666, 669, 681, 825, 825, 825, 681, 664, 635, 824, - 682, 699, 466, 825, 824, 632, 632, 682, 635, 632, - 668, 632, 20, 605, 641, 821, 822, 820, 625, 698, - 688, 674, 811, 810, 816, 665, 626, 814, 812, 706, - 717, 716, 639, 610, 642, 645, 646, 648, 697, 637, - 694, 680, 707, 629, 629, 629, 690, 658, 690, 629, - 629, 629, 629, 629, 629, 629, 629, 848, 700, 701, - 693, 659, 715, 604, 704, 687, 472, 768, 650, 706, - 706, 802, 835, 842, 847, 651, 643, 734, 837, 690, - 862, 729, 274, 587, 652, 803, 703, 647, 655, 690, - 809, 690, 769, 690, 834, 799, 644, 706, 779, 629, - 832, 861, 860, 859, 858, 857, 856, 855, 854, 630, - 853, 714, 677, 841, 246, 815, 689, 692, 653, 713, - 67, 852, 778, 690, 690, 770, 761, 690, 771, 711, - 728, 845, 710, 840, 851, 650, 839, 690, 686, 850, - 67, 634, 598, 828, 678, 708, 819, 671, 830, 818, - 759, 547, 579, 777, 636, 754, 844, 843, 846, 709, - 760, 763, 572, 660, 640, 670, 793, 765, 817, 735, - 794, 795, 836, 684, 707, 654, 685, 683, 673, 767, - 796, 838, 736, 739, 743, 797, 753, 798, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 134, 134, - -2, -2, -2, -2, 0, 0, 0, 0, 0, -2, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 0, 0, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 418, -20, -20, -20, -20, 418, -20, -20, - -20, -20, -20, -20, -20, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, -20, 418, 418, 418, -20, 487, -20, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 487, 418, 0, 0, 418, -20, 418, -20, 418, - -20, 418, 418, 418, 418, 418, 418, -20, -20, -20, - -20, -20, -20, 0, 248, 248, 248, 248, -20, -20, - -20, -20, 55, 55, 55, 55, 487, 487, 487, 487, - 487, 487, 248, 248, 476, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 487, 55, 487, 649, - 649, 649, 649, 649, 296, 296, 296, 47, 47, 47, - 649, 0, 0, 0, 0, 0, 0, 649, 296, 0, - 487, 487, 487, 487, 0, 487, 487, 649, 649, 649, - 649, 47, 296, 649, 825, 0, 47, 550, 550, 550, - 550, 67, 362, 0, 649, 649, 0, 669, 0, 0, - 0, 825, 0, 0, 0, 0, 0, 629, 274, 734, - 0, 433, 0, 0, 0, 0, 0, 0, 0, 643, - 433, 322, 322, 0, 0, 630, 629, 629, 629, 0, - 0, 643, 643, 0, 0, 0, 0, 0, 0, 440, - 643, 0, 0, 0, 0, 440, 425, 0, 0, 425, - 0, 67 - ); - - protected $actionDefault = array( - 3,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 525, 525,32767, 481,32767,32767, - 32767,32767,32767,32767,32767, 287, 287, 287,32767,32767, - 32767, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513,32767,32767,32767,32767,32767, 369,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 375, 530,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 350, 351, 353, 354, 286, 514, - 237, 376, 529, 285, 239, 314, 485,32767,32767,32767, - 316, 116, 248, 193, 484, 119, 284, 224, 368, 370, - 315, 291, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 290, 441, 347, 346, 345, 443, - 32767, 442, 478, 478, 481,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 312, 469, 468, 313, 439, - 317, 440, 319, 444, 318, 335, 336, 333, 334, 337, - 446, 445, 462, 463, 460, 461, 289, 338, 339, 340, - 341, 464, 465, 466, 467, 271, 271, 271, 271,32767, - 32767, 524, 524,32767,32767, 326, 327, 453, 454,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 272,32767, 228, 228, 228, 228, 228,32767,32767,32767, - 32767,32767,32767,32767, 321, 322, 320, 448, 449, 447, - 32767, 415,32767,32767,32767,32767,32767, 417,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 486,32767,32767, - 32767,32767,32767,32767,32767, 499, 404,32767,32767,32767, - 397, 212, 214, 161, 472,32767,32767,32767,32767, 504, - 331,32767,32767,32767,32767,32767,32767, 539,32767, 499, - 32767,32767,32767,32767,32767,32767,32767,32767, 344, 323, - 324, 325,32767,32767,32767,32767, 503, 497, 456, 457, - 458, 459,32767,32767, 450, 451, 452, 455,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 165,32767, 412,32767, 418, 418,32767,32767, 165, - 32767,32767,32767,32767, 165,32767, 502, 501, 165,32767, - 398, 480, 165, 178,32767, 176, 176,32767, 198, 198, - 32767,32767, 180, 473, 492,32767, 180,32767, 165,32767, - 386, 167, 480,32767,32767, 230, 230, 386, 165, 230, - 32767, 230,32767, 82, 422,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 399, - 32767,32767,32767,32767, 365, 366, 475, 488,32767, 489, - 32767, 397,32767, 329, 330, 332, 309,32767, 311, 355, - 356, 357, 358, 359, 360, 361, 363,32767, 402,32767, - 405,32767,32767,32767, 84, 108, 247,32767, 537, 84, - 400,32767,32767, 294, 537,32767,32767,32767,32767, 532, - 32767,32767, 288,32767,32767,32767, 84,32767, 84, 243, - 32767, 163,32767, 522,32767, 497,32767, 401,32767, 328, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 498, - 32767,32767,32767,32767, 219,32767, 435,32767, 84,32767, - 179,32767,32767, 292, 238,32767,32767, 531,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 164,32767,32767, - 181,32767,32767, 497,32767,32767,32767,32767,32767,32767, - 32767,32767, 283,32767,32767,32767,32767,32767, 497,32767, - 32767,32767, 223,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 82, 60,32767, 265,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 121, 121, - 3, 121, 121, 3, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 206, 250, 209, - 198, 198, 158, 250, 250, 250, 257 - ); - - protected $goto = array( - 160, 160, 134, 134, 139, 134, 135, 136, 137, 142, - 144, 181, 162, 158, 158, 158, 158, 139, 139, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 154, 155, 156, 157, 178, 133, 179, 493, 494, 360, - 495, 499, 500, 501, 502, 503, 504, 505, 506, 962, - 138, 140, 141, 143, 165, 170, 180, 196, 245, 248, - 250, 252, 254, 255, 256, 257, 258, 259, 267, 268, - 269, 270, 285, 286, 314, 315, 316, 379, 380, 381, - 549, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 145, 146, 147, 161, 148, 163, - 149, 197, 164, 150, 151, 152, 198, 153, 131, 625, - 567, 754, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - 567, 567, 567, 567, 567, 1100, 753, 1100, 1100, 1100, - 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, - 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, - 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, - 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, - 523, 784, 497, 497, 497, 497, 497, 497, 6, 508, - 634, 508, 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 509, 550, 509, 580, 606, 522, 885, 885, - 1190, 1190, 815, 849, 849, 849, 849, 168, 844, 850, - 522, 522, 171, 172, 173, 388, 389, 390, 391, 167, - 195, 199, 201, 249, 251, 253, 260, 261, 262, 263, - 264, 265, 271, 272, 273, 274, 287, 288, 317, 318, - 319, 394, 395, 396, 397, 169, 174, 246, 247, 175, - 176, 177, 387, 608, 543, 543, 573, 539, 583, 586, - 631, 855, 541, 541, 496, 498, 529, 545, 574, 577, - 587, 593, 341, 1169, 566, 1169, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, - 566, 566, 566, 566, 566, 566, 566, 566, 566, 514, - 443, 445, 933, 636, 327, 309, 1101, 618, 931, 519, - 519, 519, 519, 777, 551, 552, 553, 554, 555, 556, - 557, 558, 560, 589, 903, 611, 538, 519, 617, 548, - 358, 544, 572, 430, 430, 430, 430, 430, 430, 1194, - 777, 777, 361, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 1065, 1161, 1065, 892, 892, 892, 892, - 892, 1168, 598, 1168, 590, 344, 404, 892, 369, 369, - 369, 1058, 1184, 1184, 1184, 1076, 1075, 1065, 1065, 1065, - 1065, 1149, 1065, 1065, 519, 519, 536, 568, 519, 519, - 615, 519, 369, 510, 960, 510, 1167, 386, 770, 770, - 778, 778, 778, 780, 520, 769, 276, 277, 278, 535, - 607, 659, 562, 547, 594, 868, 882, 613, 867, 616, - 878, 620, 621, 628, 630, 635, 637, 1081, 375, 1201, - 1201, 1187, 1009, 889, 1019, 17, 13, 355, 790, 752, - 1200, 1200, 898, 1061, 1062, 362, 941, 1058, 1201, 527, - 871, 561, 851, 540, 657, 347, 511, 880, 875, 1200, - 1059, 1160, 1059, 21, 398, 373, 773, 1203, 604, 451, - 1060, 771, 907, 342, 343, 368, 645, 402, 446, 10, - 1056, 1051, 912, 781, 578, 1146, 859, 459, 949, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 528 - ); - - protected $gotoCheck = array( - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 53, - 63, 12, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 119, 11, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 94, 25, 110, 110, 110, 110, 110, 110, 91, 63, - 5, 63, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 40, 110, 36, 36, 40, 71, 71, - 71, 71, 46, 63, 63, 63, 63, 23, 63, 63, - 40, 40, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 47, 47, 47, 47, 47, 47, 56, 56, - 56, 29, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 66, 111, 53, 111, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 8, - 7, 7, 7, 7, 118, 118, 7, 7, 7, 8, - 8, 8, 8, 19, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 78, 57, 8, 8, 57, 2, - 57, 102, 2, 53, 53, 53, 53, 53, 53, 132, - 19, 19, 43, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 76, 53, 53, 53, 53, 53, - 53, 112, 120, 112, 64, 64, 64, 53, 116, 116, - 116, 76, 112, 112, 112, 117, 117, 53, 53, 53, - 53, 124, 53, 53, 8, 8, 8, 8, 8, 8, - 53, 8, 116, 115, 94, 115, 112, 116, 19, 19, - 19, 19, 19, 19, 8, 19, 61, 61, 61, 28, - 45, 28, 28, 8, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 30, 44, 134, - 134, 130, 95, 73, 30, 30, 30, 30, 10, 10, - 133, 133, 75, 76, 76, 54, 91, 76, 134, 54, - 10, 30, 10, 54, 10, 14, 10, 10, 10, 133, - 76, 76, 76, 30, 18, 13, 21, 133, 30, 54, - 76, 20, 79, 66, 66, 9, 68, 17, 59, 54, - 108, 106, 80, 22, 60, 123, 65, 101, 93, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 94 - ); - - protected $gotoBase = array( - 0, 0, -261, 0, 0, 198, 0, 347, 29, 192, - 487, 154, 109, 168, 185, 0, 0, 121, 183, 43, - 173, 184, 93, 37, 0, 193, 0, 0, -180, 273, - 64, 0, 0, 0, 0, 0, 189, 0, 0, -22, - 201, 0, 0, 354, 188, 180, 216, 3, 0, 0, - 0, 0, 0, 104, 71, 0, -15, -81, 0, 92, - 88, -207, 0, -90, 90, 89, -137, 0, 169, 0, - 0, -51, 0, 177, 0, 179, 67, 0, 351, 166, - 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 196, 0, 78, 161, 181, 0, 0, 0, 0, - 0, 80, 356, 322, 0, 0, 115, 0, 111, 0, - -77, 4, 112, 0, 0, 144, 108, 114, 33, -45, - 209, 0, 0, 83, 227, 0, 0, 0, 0, 0, - 199, 0, 362, 182, 171, 0, 0 - ); - - protected $gotoDefault = array( - -32768, 462, 668, 2, 669, 740, 748, 601, 479, 515, - 853, 791, 792, 364, 410, 480, 363, 399, 392, 779, - 772, 774, 782, 166, 400, 785, 1, 787, 521, 823, - 1010, 351, 795, 352, 592, 797, 531, 799, 800, 132, - 481, 365, 366, 532, 374, 581, 814, 266, 371, 816, - 353, 817, 826, 354, 614, 597, 563, 610, 482, 442, - 575, 275, 542, 1073, 570, 858, 340, 866, 648, 874, - 877, 483, 564, 888, 448, 896, 1086, 382, 902, 908, - 913, 916, 418, 401, 588, 920, 921, 5, 925, 626, - 627, 940, 300, 948, 961, 416, 1029, 1031, 484, 485, - 525, 456, 507, 530, 486, 1052, 436, 403, 1055, 487, - 488, 426, 427, 1070, 346, 1154, 345, 444, 308, 1141, - 584, 1105, 452, 1193, 1150, 337, 489, 490, 359, 376, - 1188, 431, 1195, 1202, 335, 367, 571 - ); - - protected $ruleToNonTerminal = array( - 0, 1, 3, 3, 2, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 8, 8, 9, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 14, 14, 15, 15, - 15, 15, 17, 17, 13, 13, 18, 18, 19, 19, - 20, 20, 21, 21, 16, 16, 22, 24, 24, 25, - 26, 26, 28, 27, 27, 27, 27, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 10, 10, 50, 50, - 52, 51, 51, 44, 44, 54, 54, 55, 55, 11, - 12, 12, 12, 58, 58, 58, 59, 59, 62, 62, - 60, 60, 64, 64, 37, 37, 46, 46, 49, 49, - 49, 48, 48, 65, 38, 38, 38, 38, 66, 66, - 67, 67, 68, 68, 35, 35, 31, 31, 69, 33, - 33, 70, 32, 32, 34, 34, 45, 45, 45, 56, - 56, 72, 72, 73, 73, 75, 75, 75, 74, 74, - 57, 57, 76, 76, 76, 77, 77, 78, 78, 78, - 41, 41, 79, 79, 79, 42, 42, 80, 80, 61, - 61, 81, 81, 81, 81, 86, 86, 87, 87, 88, - 88, 88, 88, 88, 89, 90, 90, 85, 85, 82, - 82, 84, 84, 92, 92, 91, 91, 91, 91, 91, - 91, 83, 83, 93, 93, 43, 43, 36, 36, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 30, 30, 40, 40, 98, 98, 99, - 99, 99, 99, 105, 94, 94, 101, 101, 107, 107, - 108, 109, 109, 109, 109, 109, 109, 63, 63, 53, - 53, 53, 95, 95, 113, 113, 110, 110, 114, 114, - 114, 114, 96, 96, 96, 100, 100, 100, 106, 106, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 23, 23, 23, 23, 23, 23, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 104, 104, 97, 97, 97, 97, 120, 120, - 123, 123, 122, 122, 124, 124, 47, 47, 47, 47, - 126, 126, 125, 125, 125, 125, 125, 127, 127, 112, - 112, 115, 115, 111, 111, 128, 128, 128, 128, 116, - 116, 116, 116, 103, 103, 117, 117, 117, 117, 71, - 129, 129, 130, 130, 130, 102, 102, 131, 131, 132, - 132, 132, 132, 118, 118, 118, 118, 134, 135, 133, - 133, 133, 133, 133, 133, 133, 136, 136, 136 - ); - - protected $ruleToLength = array( - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, - 5, 4, 3, 4, 2, 3, 1, 1, 7, 8, - 6, 7, 3, 1, 3, 1, 3, 1, 1, 3, - 1, 2, 1, 2, 3, 1, 3, 3, 1, 3, - 2, 0, 1, 1, 1, 1, 1, 3, 5, 8, - 3, 5, 9, 3, 2, 3, 2, 3, 2, 3, - 2, 3, 3, 3, 1, 2, 5, 7, 9, 5, - 6, 3, 3, 2, 2, 1, 1, 1, 0, 2, - 8, 0, 4, 1, 3, 0, 1, 0, 1, 10, - 7, 6, 5, 1, 2, 2, 0, 2, 0, 2, - 0, 2, 1, 3, 1, 4, 1, 4, 1, 1, - 4, 1, 3, 3, 3, 4, 4, 5, 0, 2, - 4, 3, 1, 1, 1, 4, 0, 2, 3, 0, - 2, 4, 0, 2, 0, 3, 1, 2, 1, 1, - 0, 1, 3, 4, 6, 1, 1, 1, 0, 1, - 0, 2, 2, 3, 3, 1, 3, 1, 2, 2, - 3, 1, 1, 2, 4, 3, 1, 1, 3, 2, - 0, 3, 3, 9, 3, 1, 3, 0, 2, 4, - 5, 4, 4, 4, 3, 1, 1, 1, 3, 1, - 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 3, 1, 3, 3, 1, 0, 1, 1, - 3, 3, 4, 4, 1, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 1, 3, 5, 4, 3, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 1, 1, 3, 2, 1, - 2, 10, 11, 3, 3, 2, 4, 4, 3, 4, - 4, 4, 4, 7, 3, 2, 0, 4, 1, 3, - 2, 2, 4, 6, 2, 2, 4, 1, 1, 1, - 2, 3, 1, 1, 1, 1, 1, 1, 3, 3, - 4, 4, 0, 2, 1, 0, 1, 1, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 1, 3, 1, 4, 3, 1, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, - 4, 3, 1, 3, 1, 1, 3, 3, 0, 2, - 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, - 6, 4, 3, 4, 2, 4, 4, 1, 3, 1, - 2, 1, 1, 4, 1, 3, 6, 4, 4, 4, - 4, 1, 4, 0, 1, 1, 3, 1, 1, 4, - 3, 1, 1, 1, 0, 0, 2, 3, 1, 3, - 1, 4, 2, 2, 2, 1, 2, 1, 1, 1, - 4, 3, 3, 3, 6, 3, 1, 1, 1 - ); - - protected function reduceRule0() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule1() { - $this->semValue = $this->handleNamespaces($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule2() { - if (is_array($this->semStack[$this->stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); } else { $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; }; - } - - protected function reduceRule3() { - $this->semValue = array(); - } - - protected function reduceRule4() { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$this->stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule5() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule6() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule7() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule8() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule9() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule10() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule11() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule12() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule13() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule14() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule15() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule16() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule17() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule18() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule19() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule20() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule21() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule22() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule23() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule24() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule25() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule26() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule27() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule28() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule29() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule30() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule31() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule32() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule33() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule34() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule35() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule36() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule37() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule38() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule39() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule40() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule41() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule42() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule43() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule44() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule45() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule46() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule47() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule48() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule49() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule50() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule51() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule52() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule53() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule54() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule55() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule56() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule57() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule58() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule59() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule60() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule61() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule62() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule63() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule64() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule65() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule66() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule67() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule68() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule69() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule70() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule71() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule72() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule73() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule74() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule75() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule76() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule77() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule78() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule79() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule80() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule81() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule82() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule83() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule84() { - $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule85() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule86() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule87() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule88() { - $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule89() { - $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(3-2)], null, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($this->semValue); - } - - protected function reduceRule90() { - $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(5-2)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($this->semValue); - } - - protected function reduceRule91() { - $this->semValue = new Stmt\Namespace_(null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($this->semValue); - } - - protected function reduceRule92() { - $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule93() { - $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-2)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule94() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule95() { - $this->semValue = new Stmt\Const_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule96() { - $this->semValue = Stmt\Use_::TYPE_FUNCTION; - } - - protected function reduceRule97() { - $this->semValue = Stmt\Use_::TYPE_CONSTANT; - } - - protected function reduceRule98() { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(7-3)], $this->startAttributeStack[$this->stackPos-(7-3)] + $this->endAttributeStack[$this->stackPos-(7-3)]), $this->semStack[$this->stackPos-(7-6)], $this->semStack[$this->stackPos-(7-2)], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - } - - protected function reduceRule99() { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(8-4)], $this->startAttributeStack[$this->stackPos-(8-4)] + $this->endAttributeStack[$this->stackPos-(8-4)]), $this->semStack[$this->stackPos-(8-7)], $this->semStack[$this->stackPos-(8-2)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes); - } - - protected function reduceRule100() { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(6-2)], $this->startAttributeStack[$this->stackPos-(6-2)] + $this->endAttributeStack[$this->stackPos-(6-2)]), $this->semStack[$this->stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - } - - protected function reduceRule101() { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(7-3)], $this->startAttributeStack[$this->stackPos-(7-3)] + $this->endAttributeStack[$this->stackPos-(7-3)]), $this->semStack[$this->stackPos-(7-6)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - } - - protected function reduceRule102() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule103() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule104() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule105() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule106() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule107() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule108() { - $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $this->stackPos-(1-1)); - } - - protected function reduceRule109() { - $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $this->stackPos-(3-3)); - } - - protected function reduceRule110() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule111() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule112() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; - } - - protected function reduceRule113() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; $this->semValue->type = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule114() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule115() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule116() { - $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule117() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule118() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule119() { - $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule120() { - if (is_array($this->semStack[$this->stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); } else { $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; }; - } - - protected function reduceRule121() { - $this->semValue = array(); - } - - protected function reduceRule122() { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$this->stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule123() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule124() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule125() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule126() { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule127() { - - if ($this->semStack[$this->stackPos-(3-2)]) { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; $attrs = $this->startAttributeStack[$this->stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; - } else { - $startAttributes = $this->startAttributeStack[$this->stackPos-(3-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $this->semValue = null; }; - if (null === $this->semValue) { $this->semValue = array(); } - } - - } - - protected function reduceRule128() { - $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(5-2)], ['stmts' => is_array($this->semStack[$this->stackPos-(5-3)]) ? $this->semStack[$this->stackPos-(5-3)] : array($this->semStack[$this->stackPos-(5-3)]), 'elseifs' => $this->semStack[$this->stackPos-(5-4)], 'else' => $this->semStack[$this->stackPos-(5-5)]], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule129() { - $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(8-2)], ['stmts' => $this->semStack[$this->stackPos-(8-4)], 'elseifs' => $this->semStack[$this->stackPos-(8-5)], 'else' => $this->semStack[$this->stackPos-(8-6)]], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes); - } - - protected function reduceRule130() { - $this->semValue = new Stmt\While_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule131() { - $this->semValue = new Stmt\Do_($this->semStack[$this->stackPos-(5-4)], is_array($this->semStack[$this->stackPos-(5-2)]) ? $this->semStack[$this->stackPos-(5-2)] : array($this->semStack[$this->stackPos-(5-2)]), $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule132() { - $this->semValue = new Stmt\For_(['init' => $this->semStack[$this->stackPos-(9-3)], 'cond' => $this->semStack[$this->stackPos-(9-5)], 'loop' => $this->semStack[$this->stackPos-(9-7)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes); - } - - protected function reduceRule133() { - $this->semValue = new Stmt\Switch_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule134() { - $this->semValue = new Stmt\Break_(null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule135() { - $this->semValue = new Stmt\Break_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule136() { - $this->semValue = new Stmt\Continue_(null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule137() { - $this->semValue = new Stmt\Continue_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule138() { - $this->semValue = new Stmt\Return_(null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule139() { - $this->semValue = new Stmt\Return_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule140() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule141() { - $this->semValue = new Stmt\Global_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule142() { - $this->semValue = new Stmt\Static_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule143() { - $this->semValue = new Stmt\Echo_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule144() { - $this->semValue = new Stmt\InlineHTML($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule145() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule146() { - $this->semValue = new Stmt\Unset_($this->semStack[$this->stackPos-(5-3)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule147() { - $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(7-3)], $this->semStack[$this->stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$this->stackPos-(7-5)][1], 'stmts' => $this->semStack[$this->stackPos-(7-7)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - } - - protected function reduceRule148() { - $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(9-3)], $this->semStack[$this->stackPos-(9-7)][0], ['keyVar' => $this->semStack[$this->stackPos-(9-5)], 'byRef' => $this->semStack[$this->stackPos-(9-7)][1], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes); - } - - protected function reduceRule149() { - $this->semValue = new Stmt\Declare_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule150() { - $this->semValue = new Stmt\TryCatch($this->semStack[$this->stackPos-(6-3)], $this->semStack[$this->stackPos-(6-5)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); - } - - protected function reduceRule151() { - $this->semValue = new Stmt\Throw_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule152() { - $this->semValue = new Stmt\Goto_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule153() { - $this->semValue = new Stmt\Label($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule154() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule155() { - $this->semValue = array(); /* means: no statement */ - } - - protected function reduceRule156() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule157() { - $startAttributes = $this->startAttributeStack[$this->stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $this->semValue = null; }; - if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ - } - - protected function reduceRule158() { - $this->semValue = array(); - } - - protected function reduceRule159() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule160() { - $this->semValue = new Stmt\Catch_(array($this->semStack[$this->stackPos-(8-3)]), substr($this->semStack[$this->stackPos-(8-4)], 1), $this->semStack[$this->stackPos-(8-7)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes); - } - - protected function reduceRule161() { - $this->semValue = null; - } - - protected function reduceRule162() { - $this->semValue = new Stmt\Finally_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule163() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule164() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule165() { - $this->semValue = false; - } - - protected function reduceRule166() { - $this->semValue = true; - } - - protected function reduceRule167() { - $this->semValue = false; - } - - protected function reduceRule168() { - $this->semValue = true; - } - - protected function reduceRule169() { - $this->semValue = new Stmt\Function_($this->semStack[$this->stackPos-(10-3)], ['byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-5)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes); - } - - protected function reduceRule170() { - $this->semValue = new Stmt\Class_($this->semStack[$this->stackPos-(7-2)], ['type' => $this->semStack[$this->stackPos-(7-1)], 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - $this->checkClass($this->semValue, $this->stackPos-(7-2)); - } - - protected function reduceRule171() { - $this->semValue = new Stmt\Interface_($this->semStack[$this->stackPos-(6-2)], ['extends' => $this->semStack[$this->stackPos-(6-3)], 'stmts' => $this->semStack[$this->stackPos-(6-5)]], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - $this->checkInterface($this->semValue, $this->stackPos-(6-2)); - } - - protected function reduceRule172() { - $this->semValue = new Stmt\Trait_($this->semStack[$this->stackPos-(5-2)], ['stmts' => $this->semStack[$this->stackPos-(5-4)]], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule173() { - $this->semValue = 0; - } - - protected function reduceRule174() { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; - } - - protected function reduceRule175() { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; - } - - protected function reduceRule176() { - $this->semValue = null; - } - - protected function reduceRule177() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule178() { - $this->semValue = array(); - } - - protected function reduceRule179() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule180() { - $this->semValue = array(); - } - - protected function reduceRule181() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule182() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule183() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule184() { - $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule185() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule186() { - $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule187() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule188() { - $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule189() { - $this->semValue = null; - } - - protected function reduceRule190() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule191() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule192() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule193() { - $this->semValue = new Stmt\DeclareDeclare($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule194() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule195() { - $this->semValue = $this->semStack[$this->stackPos-(4-3)]; - } - - protected function reduceRule196() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule197() { - $this->semValue = $this->semStack[$this->stackPos-(5-3)]; - } - - protected function reduceRule198() { - $this->semValue = array(); - } - - protected function reduceRule199() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule200() { - $this->semValue = new Stmt\Case_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule201() { - $this->semValue = new Stmt\Case_(null, $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule202() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule203() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule204() { - $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule205() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule206() { - $this->semValue = array(); - } - - protected function reduceRule207() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule208() { - $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(3-2)], is_array($this->semStack[$this->stackPos-(3-3)]) ? $this->semStack[$this->stackPos-(3-3)] : array($this->semStack[$this->stackPos-(3-3)]), $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule209() { - $this->semValue = array(); - } - - protected function reduceRule210() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule211() { - $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule212() { - $this->semValue = null; - } - - protected function reduceRule213() { - $this->semValue = new Stmt\Else_(is_array($this->semStack[$this->stackPos-(2-2)]) ? $this->semStack[$this->stackPos-(2-2)] : array($this->semStack[$this->stackPos-(2-2)]), $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule214() { - $this->semValue = null; - } - - protected function reduceRule215() { - $this->semValue = new Stmt\Else_($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule216() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false); - } - - protected function reduceRule217() { - $this->semValue = array($this->semStack[$this->stackPos-(2-2)], true); - } - - protected function reduceRule218() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false); - } - - protected function reduceRule219() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule220() { - $this->semValue = array(); - } - - protected function reduceRule221() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule222() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule223() { - $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(4-4)], 1), null, $this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); - } - - protected function reduceRule224() { - $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(6-4)], 1), $this->semStack[$this->stackPos-(6-6)], $this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-2)], $this->semStack[$this->stackPos-(6-3)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); - } - - protected function reduceRule225() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule226() { - $this->semValue = 'array'; - } - - protected function reduceRule227() { - $this->semValue = 'callable'; - } - - protected function reduceRule228() { - $this->semValue = null; - } - - protected function reduceRule229() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule230() { - $this->semValue = null; - } - - protected function reduceRule231() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule232() { - $this->semValue = array(); - } - - protected function reduceRule233() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule234() { - $this->semValue = array(new Node\Arg($this->semStack[$this->stackPos-(3-2)], false, false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes)); - } - - protected function reduceRule235() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule236() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule237() { - $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(1-1)], false, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule238() { - $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], true, false, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule239() { - $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], false, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule240() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule241() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule242() { - $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule243() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule244() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule245() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule246() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule247() { - $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule248() { - $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule249() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule250() { - $this->semValue = array(); - } - - protected function reduceRule251() { - $this->semValue = new Stmt\Property($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $this->stackPos-(3-1)); - } - - protected function reduceRule252() { - $this->semValue = new Stmt\ClassConst($this->semStack[$this->stackPos-(3-2)], 0, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule253() { - $this->semValue = new Stmt\ClassMethod($this->semStack[$this->stackPos-(9-4)], ['type' => $this->semStack[$this->stackPos-(9-1)], 'byRef' => $this->semStack[$this->stackPos-(9-3)], 'params' => $this->semStack[$this->stackPos-(9-6)], 'returnType' => $this->semStack[$this->stackPos-(9-8)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes); - $this->checkClassMethod($this->semValue, $this->stackPos-(9-1)); - } - - protected function reduceRule254() { - $this->semValue = new Stmt\TraitUse($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule255() { - $this->semValue = array(); - } - - protected function reduceRule256() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule257() { - $this->semValue = array(); - } - - protected function reduceRule258() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule259() { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule260() { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(5-1)][0], $this->semStack[$this->stackPos-(5-1)][1], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule261() { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], null, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule262() { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule263() { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule264() { - $this->semValue = array($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)]); - } - - protected function reduceRule265() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule266() { - $this->semValue = array(null, $this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule267() { - $this->semValue = null; - } - - protected function reduceRule268() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule269() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule270() { - $this->semValue = 0; - } - - protected function reduceRule271() { - $this->semValue = 0; - } - - protected function reduceRule272() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule273() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule274() { - $this->checkModifier($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->stackPos-(2-2)); $this->semValue = $this->semStack[$this->stackPos-(2-1)] | $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule275() { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; - } - - protected function reduceRule276() { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; - } - - protected function reduceRule277() { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; - } - - protected function reduceRule278() { - $this->semValue = Stmt\Class_::MODIFIER_STATIC; - } - - protected function reduceRule279() { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; - } - - protected function reduceRule280() { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; - } - - protected function reduceRule281() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule282() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule283() { - $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule284() { - $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule285() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule286() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule287() { - $this->semValue = array(); - } - - protected function reduceRule288() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule289() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule290() { - $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule291() { - $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule292() { - $this->semValue = new Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule293() { - $this->semValue = new Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule294() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule295() { - $this->semValue = new Expr\Clone_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule296() { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule297() { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule298() { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule299() { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule300() { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule301() { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule302() { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule303() { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule304() { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule305() { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule306() { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule307() { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule308() { - $this->semValue = new Expr\PostInc($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule309() { - $this->semValue = new Expr\PreInc($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule310() { - $this->semValue = new Expr\PostDec($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule311() { - $this->semValue = new Expr\PreDec($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule312() { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule313() { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule314() { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule315() { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule316() { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule317() { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule318() { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule319() { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule320() { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule321() { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule322() { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule323() { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule324() { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule325() { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule326() { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule327() { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule328() { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule329() { - $this->semValue = new Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule330() { - $this->semValue = new Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule331() { - $this->semValue = new Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule332() { - $this->semValue = new Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule333() { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule334() { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule335() { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule336() { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule337() { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule338() { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule339() { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule340() { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule341() { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule342() { - $this->semValue = new Expr\Instanceof_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule343() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule344() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule345() { - $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule346() { - $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule347() { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule348() { - $this->semValue = new Expr\Isset_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule349() { - $this->semValue = new Expr\Empty_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule350() { - $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule351() { - $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule352() { - $this->semValue = new Expr\Eval_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule353() { - $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule354() { - $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule355() { - $this->semValue = new Expr\Cast\Int_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule356() { - $this->semValue = new Expr\Cast\Double($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule357() { - $this->semValue = new Expr\Cast\String_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule358() { - $this->semValue = new Expr\Cast\Array_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule359() { - $this->semValue = new Expr\Cast\Object_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule360() { - $this->semValue = new Expr\Cast\Bool_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule361() { - $this->semValue = new Expr\Cast\Unset_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule362() { - $attrs = $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes; - $attrs['kind'] = strtolower($this->semStack[$this->stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $this->semValue = new Expr\Exit_($this->semStack[$this->stackPos-(2-2)], $attrs); - } - - protected function reduceRule363() { - $this->semValue = new Expr\ErrorSuppress($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule364() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule365() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule366() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule367() { - $this->semValue = new Expr\ShellExec($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule368() { - $this->semValue = new Expr\Print_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule369() { - $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule370() { - $this->semValue = new Expr\YieldFrom($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule371() { - $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-4)], 'uses' => $this->semStack[$this->stackPos-(10-6)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes); - } - - protected function reduceRule372() { - $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$this->stackPos-(11-3)], 'params' => $this->semStack[$this->stackPos-(11-5)], 'uses' => $this->semStack[$this->stackPos-(11-7)], 'returnType' => $this->semStack[$this->stackPos-(11-8)], 'stmts' => $this->semStack[$this->stackPos-(11-10)]], $this->startAttributeStack[$this->stackPos-(11-1)] + $this->endAttributes); - } - - protected function reduceRule373() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule374() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule375() { - $this->semValue = new Expr\Yield_($this->semStack[$this->stackPos-(2-2)], null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule376() { - $this->semValue = new Expr\Yield_($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-2)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule377() { - $attrs = $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; - $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(4-3)], $attrs); - } - - protected function reduceRule378() { - $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; - $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(3-2)], $attrs); - } - - protected function reduceRule379() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule380() { - $attrs = $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$this->stackPos-(4-1)][0] === "'" || ($this->semStack[$this->stackPos-(4-1)][1] === "'" && ($this->semStack[$this->stackPos-(4-1)][0] === 'b' || $this->semStack[$this->stackPos-(4-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); - $this->semValue = new Expr\ArrayDimFetch(new Scalar\String_(Scalar\String_::parse($this->semStack[$this->stackPos-(4-1)]), $attrs), $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule381() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule382() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule383() { - $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(7-2)]); - $this->checkClass($this->semValue[0], -1); - } - - protected function reduceRule384() { - $this->semValue = new Expr\New_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule385() { - list($class, $ctorArgs) = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule386() { - $this->semValue = array(); - } - - protected function reduceRule387() { - $this->semValue = $this->semStack[$this->stackPos-(4-3)]; - } - - protected function reduceRule388() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule389() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule390() { - $this->semValue = new Expr\ClosureUse(substr($this->semStack[$this->stackPos-(2-2)], 1), $this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule391() { - $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule392() { - $this->semValue = new Expr\StaticCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule393() { - $this->semValue = new Expr\StaticCall($this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-4)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - } - - protected function reduceRule394() { - - if ($this->semStack[$this->stackPos-(2-1)] instanceof Node\Expr\StaticPropertyFetch) { - $this->semValue = new Expr\StaticCall($this->semStack[$this->stackPos-(2-1)]->class, new Expr\Variable($this->semStack[$this->stackPos-(2-1)]->name, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } elseif ($this->semStack[$this->stackPos-(2-1)] instanceof Node\Expr\ArrayDimFetch) { - $tmp = $this->semStack[$this->stackPos-(2-1)]; - while ($tmp->var instanceof Node\Expr\ArrayDimFetch) { - $tmp = $tmp->var; - } - - $this->semValue = new Expr\StaticCall($tmp->var->class, $this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - $tmp->var = new Expr\Variable($tmp->var->name, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } else { - throw new \Exception; - } - - } - - protected function reduceRule395() { - $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule396() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule397() { - $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule398() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule399() { - $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule400() { - $this->semValue = new Name\FullyQualified($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule401() { - $this->semValue = new Name\Relative($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule402() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule403() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule404() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule405() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule406() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule407() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule408() { - $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule409() { - $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule410() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule411() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule412() { - $this->semValue = null; - } - - protected function reduceRule413() { - $this->semValue = null; - } - - protected function reduceRule414() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule415() { - $this->semValue = array(); - } - - protected function reduceRule416() { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$this->stackPos-(1-1)], '`', false), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes)); - } - - protected function reduceRule417() { - foreach ($this->semStack[$this->stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', false); } }; $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule418() { - $this->semValue = array(); - } - - protected function reduceRule419() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule420() { - $this->semValue = $this->parseLNumber($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes, true); - } - - protected function reduceRule421() { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$this->stackPos-(1-1)]), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule422() { - $attrs = $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$this->stackPos-(1-1)][0] === "'" || ($this->semStack[$this->stackPos-(1-1)][1] === "'" && ($this->semStack[$this->stackPos-(1-1)][0] === 'b' || $this->semStack[$this->stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); - $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$this->stackPos-(1-1)], false), $attrs); - } - - protected function reduceRule423() { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule424() { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule425() { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule426() { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule427() { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule428() { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule429() { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule430() { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule431() { - $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$this->stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];; - $this->semValue = new Scalar\String_(Scalar\String_::parseDocString($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)], false), $attrs); - } - - protected function reduceRule432() { - $attrs = $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->stackPos-(2-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$this->stackPos-(2-1)], $matches); $attrs['docLabel'] = $matches[1];; - $this->semValue = new Scalar\String_('', $attrs); - } - - protected function reduceRule433() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule434() { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule435() { - $this->semValue = new Expr\ConstFetch($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule436() { - $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule437() { - $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule438() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule439() { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule440() { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule441() { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule442() { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule443() { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule444() { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule445() { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule446() { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule447() { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule448() { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule449() { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule450() { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule451() { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule452() { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule453() { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule454() { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule455() { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule456() { - $this->semValue = new Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule457() { - $this->semValue = new Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule458() { - $this->semValue = new Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule459() { - $this->semValue = new Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule460() { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule461() { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule462() { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule463() { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule464() { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule465() { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule466() { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule467() { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule468() { - $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule469() { - $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule470() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule471() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule472() { - $this->semValue = new Expr\ConstFetch($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule473() { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule474() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule475() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule476() { - $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - foreach ($this->semStack[$this->stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $attrs); - } - - protected function reduceRule477() { - $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$this->stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];; - foreach ($this->semStack[$this->stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, null, true); } } $s->value = preg_replace('~(\r\n|\n|\r)\z~', '', $s->value); if ('' === $s->value) array_pop($this->semStack[$this->stackPos-(3-2)]);; $this->semValue = new Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $attrs); - } - - protected function reduceRule478() { - $this->semValue = array(); - } - - protected function reduceRule479() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule480() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule481() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule482() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule483() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule484() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule485() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule486() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule487() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule488() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule489() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule490() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(6-2)], $this->semStack[$this->stackPos-(6-5)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - } - - protected function reduceRule491() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule492() { - $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule493() { - $this->semValue = new Expr\MethodCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule494() { - $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule495() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule496() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule497() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule498() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule499() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule500() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule501() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule502() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule503() { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule504() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule505() { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], substr($this->semStack[$this->stackPos-(3-3)], 1), $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule506() { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-5)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - } - - protected function reduceRule507() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule508() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule509() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule510() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule511() { - $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule512() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule513() { - $this->semValue = null; - } - - protected function reduceRule514() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule515() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule516() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule517() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule518() { - $this->semValue = new Expr\Error($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; - } - - protected function reduceRule519() { - $this->semValue = new Expr\List_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule520() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule521() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule522() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule523() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule524() { - $this->semValue = null; - } - - protected function reduceRule525() { - $this->semValue = array(); - } - - protected function reduceRule526() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule527() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule528() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule529() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule530() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule531() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-1)], true, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule532() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(2-2)], null, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule533() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule534() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule535() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule536() { - $this->semValue = array($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); - } - - protected function reduceRule537() { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule538() { - $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule539() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule540() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule541() { - $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule542() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule543() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule544() { - $this->semValue = new Expr\ArrayDimFetch(new Expr\Variable($this->semStack[$this->stackPos-(6-2)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(6-4)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - } - - protected function reduceRule545() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule546() { - $this->semValue = new Scalar\String_($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule547() { - $this->semValue = $this->parseNumString($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule548() { - $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php deleted file mode 100644 index 56f52687..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ /dev/null @@ -1,2868 +0,0 @@ -'", - "T_IS_GREATER_OR_EQUAL", - "T_SL", - "T_SR", - "'+'", - "'-'", - "'.'", - "'*'", - "'/'", - "'%'", - "'!'", - "T_INSTANCEOF", - "'~'", - "T_INC", - "T_DEC", - "T_INT_CAST", - "T_DOUBLE_CAST", - "T_STRING_CAST", - "T_ARRAY_CAST", - "T_OBJECT_CAST", - "T_BOOL_CAST", - "T_UNSET_CAST", - "'@'", - "T_POW", - "'['", - "T_NEW", - "T_CLONE", - "T_EXIT", - "T_IF", - "T_ELSEIF", - "T_ELSE", - "T_ENDIF", - "T_LNUMBER", - "T_DNUMBER", - "T_STRING", - "T_STRING_VARNAME", - "T_VARIABLE", - "T_NUM_STRING", - "T_INLINE_HTML", - "T_ENCAPSED_AND_WHITESPACE", - "T_CONSTANT_ENCAPSED_STRING", - "T_ECHO", - "T_DO", - "T_WHILE", - "T_ENDWHILE", - "T_FOR", - "T_ENDFOR", - "T_FOREACH", - "T_ENDFOREACH", - "T_DECLARE", - "T_ENDDECLARE", - "T_AS", - "T_SWITCH", - "T_ENDSWITCH", - "T_CASE", - "T_DEFAULT", - "T_BREAK", - "T_CONTINUE", - "T_GOTO", - "T_FUNCTION", - "T_CONST", - "T_RETURN", - "T_TRY", - "T_CATCH", - "T_FINALLY", - "T_THROW", - "T_USE", - "T_INSTEADOF", - "T_GLOBAL", - "T_STATIC", - "T_ABSTRACT", - "T_FINAL", - "T_PRIVATE", - "T_PROTECTED", - "T_PUBLIC", - "T_VAR", - "T_UNSET", - "T_ISSET", - "T_EMPTY", - "T_HALT_COMPILER", - "T_CLASS", - "T_TRAIT", - "T_INTERFACE", - "T_EXTENDS", - "T_IMPLEMENTS", - "T_OBJECT_OPERATOR", - "T_LIST", - "T_ARRAY", - "T_CALLABLE", - "T_CLASS_C", - "T_TRAIT_C", - "T_METHOD_C", - "T_FUNC_C", - "T_LINE", - "T_FILE", - "T_START_HEREDOC", - "T_END_HEREDOC", - "T_DOLLAR_OPEN_CURLY_BRACES", - "T_CURLY_OPEN", - "T_PAAMAYIM_NEKUDOTAYIM", - "T_NAMESPACE", - "T_NS_C", - "T_DIR", - "T_NS_SEPARATOR", - "T_ELLIPSIS", - "';'", - "'{'", - "'}'", - "'('", - "')'", - "'`'", - "']'", - "'\"'", - "'$'" - ); - - protected $tokenToSymbol = array( - 0, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 53, 155, 157, 156, 52, 35, 157, - 151, 152, 50, 47, 7, 48, 49, 51, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 29, 148, - 41, 15, 43, 28, 65, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 67, 157, 154, 34, 157, 153, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 149, 33, 150, 55, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 1, 2, 3, 4, - 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 30, 31, 32, 36, 37, 38, 39, 40, 42, - 44, 45, 46, 54, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 66, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 157, 157, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 157, 157, 157, 157, - 157, 157, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147 - ); - - protected $action = array( - 581, 582, 583, 584, 585, 0, 586, 587, 588, 624, - 625, 477, 27, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110,-32766,-32766,-32766, 95, 96, - 97, 361, 239, 263, -282,-32766,-32766,-32766, -488, -487, - 1079, 542, 1082, 1080, 98,-32766, 272,-32766,-32766,-32766, - -32766,-32766, 589, 899, 901,-32766,-32766,-32766,-32766,-32766, - -32766,-32766,-32766, 240,-32766, 662, 590, 591, 592, 593, - 594, 595, 596,-32766, 289, 656, 867, 868, 869, 866, - 865, 864, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 627, 628, 629, 630, 631, 619, 620, - 621, 622, 623, 608, 609, 610, 611, 612, 613, 614, - 650, 651, 652, 653, 654, 655, 615, 616, 617, 618, - 648, 639, 637, 638, 634, 635, 215, 626, 632, 633, - 640, 641, 643, 642, 644, 645, 42, 43, 390, 44, - 45, 636, 647, 646, 224, 46, 47, 982, 48,-32767, - -32767,-32767,-32767, 90, 91, 92, 93, 94, 258, 440, - 22, 867, 868, 869, 866, 865, 864, 859,-32766,-32766, - -32766, 1071, 1032, 1032, 1070, 1049, 998, 293, -443, 246, - 287, 49, 50, -488, -487, -488, -487, 51,-32766, 52, - 219, 220, 53, 54, 55, 56, 57, 58, 59, 60, - 125, 22, 232, 61, 345, 975,-32766,-32766,-32766, 999, - 1000, 658, 661, 1032, 28, -477, 1012, 998,-32766,-32766, - -32766, 737, 407, 408, 246, 1032,-32766, 246,-32766,-32766, - -32766,-32766, 25, 222, 373, 385, 349, 226,-32766, -443, - -32766,-32766,-32766, 1035, 65, 342, 416, 216, 41, 264, - 264, 1046, 7, -443, 403, 404, 120, 21, 975, 24, - -443, 822, -446, 407, 408, -227, 1004, 1005, 1006, 1007, - 1001, 1002, 243, 116, -442, -441, 265, 417, 1008, 1003, - 347, 816, 817, 1076, 994, 63, 369, 255, 362, 260, - 264, 391, -133, -133, -133, -4, 737, 392, 658, 224, - -441, 727, 264, -88, 32, 17, 393, -133, 394, -133, - 395, -133, 396, -133, 128, 397, -133, -133, -133, 34, - 35, 398, 346, 122, 36, 399, 816, 817, 62, 816, - 817, 286, 288, 400, 401, -442, -441, 465, -251, 402, - 38, 40, 713, 758, 405, 406, -172, 22, -232, -442, - -441,-32766,-32766,-32766, 374, -173, -442, -441, -445, 1032, - -477, -441, 1032, 998, 417, -479, 391, 347, 739, 547, - -133,-32766, 392,-32766,-32766, -441, 727, 678, 679, 32, - 17, 393, -441, 394, 276, 395, 357, 396, 789, 549, - 397, 71, 975, 1050, 34, 35, 398, 346, 335, 36, - 399, 247, 248, 62, 254, 737, 286, 288, 400, 401, - 408, 120, 131, 530, 402, 982, 306, 670, 758, 405, - 406, 337, 113, 115,-32766,-32766, 72, 73, 74, 242, - 529, 65, 121, 553, 502, 18, 264, 126, 274, 264, - -32766,-32766,-32766, 739, 547, -4, 26, 751, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 111, 239, 118, 737, 391, 92, 93, 94, 531, - 112, 392, 347, -251, 98, 727, 845, 124, 32, 17, - 393, -172, 394, 1032, 395, 130, 396, 515, 516, 397, - -173, 117, 554, 34, 35, 398, 737, 790, 36, 399, - -479, 736, 62, 383, 6, 286, 288,-32766,-32766,-32766, - 127, 311, 114, 402, 678, 679, 975, 495, 496, 816, - 817, 856, 565, 119, 552, 844, 575, 343, 223, 564, - 559, 221, 225, 239, 391, 98, 658, 439, 39, 525, - 392, 659, 775, 547, 727, 435, 971, 32, 17, 393, - 358, 394, 356, 395, 299, 396, 319, 694, 397, 1074, - 264, 451, 34, 35, 398, 737, 391, 36, 399, 453, - 511, 62, 392, 449, 286, 288, 727, 499, 540, 32, - 17, 393, 402, 394, 438, 395, 1081, 396, 354, 444, - 397,-32766, 493, 551, 34, 35, 398, 737, 503, 36, - 399, 526, -80, 62, 759, 507, 286, 288, 214, 456, - 10, 739, 547, 519, 402, 508, 975, 257, 15, 0, - 338, 0, 0, 259, 1011, 560, 760, 1014, 262, 0, - 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, - 0, 392, 0, 739, 547, 727, 227, 256, 32, 17, - 393, 0, 394, 0, 395, 0, 396, 0, 0, 397, - 3, 0, 9, 34, 35, 398, 737, 391, 36, 399, - 305, -400, 62, 392, 753, 286, 288, 727, 22, 339, - 32, 17, 393, 402, 394, 327, 395, 324, 396, 316, - 1032, 397, 323, 357, 998, 34, 35, 398, 446, 773, - 36, 399, 31, 573, 62, 574, 718, 286, 288, 840, - 850, 792, 739, 547, 30, 402, 849, 852, 851, 848, - 771, 776, 716, 975, 784, 841, 783, 19, 548, 333, - 550, 555, 557, 558, 270, 271, 391, 332, 571, 570, - 407, 408, 392, 568, 739, 547, 727, 566, 563, 32, - 17, 393, 562, 394, 757, 395, 756, 396, 755, 963, - 397, -444, 65, 857, 34, 35, 398, 264, 744, 36, - 399, 962, 961, 62, 754, 746, 286, 288,-32766,-32766, - -32766, 681, 1077, 680, 402, 683, 682, 672, 673, 782, - 567, 714, 1078, 781, 1047, 1044, 1039, 1026,-32766, 1033, - -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, - -32767, 1075, 250, 739, 547, -467, 955, -446, -445, 20, - 23, 29, 33, 37, 64, 336, 334, 273, 238, 237, - 236, 235, 218, 217, 132, 129, 123, 70, 69, 68, - 67, 66, -469, 0, 308, 473, 939, 489, 539, -230, - 942, 11, 967, 823, 996, 938, 986, 536, 388, -88, - 381, 378, 375, 309, 16, 14, 13, 12, -227, -228, - 0, -412, 0, 995, 501, 1073, 1038, 1025, 1024, 0, - 1013 - ); - - protected $actionCheck = array( - 2, 3, 4, 5, 6, 0, 8, 9, 10, 11, - 12, 48, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 8, 9, 10, 50, 51, - 52, 7, 54, 7, 79, 8, 9, 10, 7, 7, - 77, 77, 79, 80, 66, 28, 7, 30, 31, 32, - 33, 34, 54, 56, 57, 28, 8, 30, 31, 32, - 33, 34, 35, 7, 109, 1, 68, 69, 70, 71, - 72, 73, 74, 118, 7, 77, 112, 113, 114, 115, - 116, 117, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 13, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 2, 3, 4, 5, - 6, 143, 144, 145, 35, 11, 12, 1, 14, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 109, 82, - 67, 112, 113, 114, 115, 116, 117, 118, 8, 9, - 10, 79, 79, 79, 82, 1, 83, 7, 67, 28, - 7, 47, 48, 152, 152, 154, 154, 53, 28, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 67, 67, 68, 69, 70, 112, 8, 9, 10, 75, - 76, 77, 148, 79, 13, 7, 139, 83, 8, 9, - 10, 1, 129, 130, 28, 79, 28, 28, 30, 31, - 32, 33, 140, 141, 29, 7, 102, 7, 28, 128, - 30, 31, 32, 1, 151, 7, 112, 13, 7, 156, - 156, 77, 7, 142, 120, 121, 147, 7, 112, 7, - 149, 152, 151, 129, 130, 152, 132, 133, 134, 135, - 136, 137, 138, 7, 67, 67, 67, 143, 144, 145, - 146, 130, 131, 150, 1, 151, 7, 153, 7, 155, - 156, 71, 72, 73, 74, 0, 1, 77, 77, 35, - 67, 81, 156, 152, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 15, 95, 96, 97, 98, 99, - 100, 101, 102, 149, 104, 105, 130, 131, 108, 130, - 131, 111, 112, 113, 114, 128, 128, 128, 7, 119, - 67, 67, 122, 123, 124, 125, 7, 67, 152, 142, - 142, 8, 9, 10, 149, 7, 149, 149, 151, 79, - 152, 128, 79, 83, 143, 7, 71, 146, 148, 149, - 150, 28, 77, 30, 31, 142, 81, 102, 103, 84, - 85, 86, 149, 88, 33, 90, 146, 92, 29, 149, - 95, 149, 112, 152, 99, 100, 101, 102, 103, 104, - 105, 128, 128, 108, 109, 1, 111, 112, 113, 114, - 130, 147, 15, 77, 119, 1, 142, 122, 123, 124, - 125, 146, 149, 149, 8, 9, 8, 9, 10, 29, - 79, 151, 149, 29, 72, 73, 156, 29, 143, 156, - 8, 9, 10, 148, 149, 150, 28, 35, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 15, 54, 15, 1, 71, 47, 48, 49, 143, - 15, 77, 146, 152, 66, 81, 150, 15, 84, 85, - 86, 152, 88, 79, 90, 15, 92, 72, 73, 95, - 152, 15, 29, 99, 100, 101, 1, 148, 104, 105, - 152, 29, 108, 102, 103, 111, 112, 8, 9, 10, - 97, 98, 13, 119, 102, 103, 112, 106, 107, 130, - 131, 148, 149, 29, 29, 148, 149, 123, 35, 29, - 29, 35, 35, 54, 71, 66, 77, 77, 67, 74, - 77, 77, 148, 149, 81, 77, 79, 84, 85, 86, - 77, 88, 77, 90, 77, 92, 78, 77, 95, 77, - 156, 77, 99, 100, 101, 1, 71, 104, 105, 77, - 79, 108, 77, 86, 111, 112, 81, 79, 89, 84, - 85, 86, 119, 88, 79, 90, 80, 92, 102, 82, - 95, 82, 109, 29, 99, 100, 101, 1, 87, 104, - 105, 91, 94, 108, 123, 93, 111, 112, 94, 94, - 94, 148, 149, 96, 119, 96, 112, 127, 152, -1, - 146, -1, -1, 110, 139, 29, 123, 139, 126, -1, - -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, - -1, 77, -1, 148, 149, 81, 35, 126, 84, 85, - 86, -1, 88, -1, 90, -1, 92, -1, -1, 95, - 142, -1, 142, 99, 100, 101, 1, 71, 104, 105, - 142, 142, 108, 77, 147, 111, 112, 81, 67, 146, - 84, 85, 86, 119, 88, 146, 90, 146, 92, 146, - 79, 95, 146, 146, 83, 99, 100, 101, 146, 148, - 104, 105, 148, 148, 108, 148, 148, 111, 112, 148, - 148, 148, 148, 149, 148, 119, 148, 148, 148, 148, - 148, 148, 148, 112, 148, 148, 148, 152, 149, 149, - 149, 149, 149, 149, 149, 149, 71, 149, 149, 149, - 129, 130, 77, 149, 148, 149, 81, 149, 149, 84, - 85, 86, 149, 88, 150, 90, 150, 92, 150, 150, - 95, 151, 151, 150, 99, 100, 101, 156, 150, 104, - 105, 150, 150, 108, 150, 150, 111, 112, 8, 9, - 10, 150, 150, 150, 119, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 28, 150, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 150, 152, 148, 149, 151, 153, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, -1, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - -1, 153, -1, 154, 154, 154, 154, 154, 154, -1, - 155 - ); - - protected $actionBase = array( - 0, 220, 295, 283, 336, 572, -2, -2, -2, -2, - -36, 505, 473, 606, 473, 574, 404, 675, 675, 675, - 109, 264, 506, 506, 506, 488, 504, 503, 507, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 64, 64, 359, 201, 670, 708, 703, - 476, 709, 524, 702, 704, 234, 671, 659, 408, 657, - 656, 655, 654, 705, 730, 585, 706, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 48, 509, 416, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 160, 160, 160, 343, 210, - 208, 198, 17, 233, 27, 780, 780, 780, 780, 780, - 108, 108, 108, 108, 621, 621, 93, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 614, 616, - 618, 619, 414, 429, 429, 196, 196, 196, 196, 146, - 151, -45, 199, 77, 498, 735, 399, 174, 174, 111, - 207, -22, -22, -22, 275, 517, 514, 514, 514, 514, - 92, 92, 514, 514, 242, -37, 233, 233, 274, 233, - 422, 422, 422, 221, 240, 519, 221, 591, 529, 653, - 527, 649, 273, 31, 32, 484, 94, 543, 496, 94, - 421, 362, 425, 717, 64, 539, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 94, 94, 64, 205, 64, - 387, 359, 383, 489, 502, 209, 595, 339, 241, 133, - 489, 489, 489, 596, 598, 331, 113, 590, 348, 411, - 358, 351, 469, 469, 412, 478, 494, 469, 469, 469, - 469, 508, 469, 678, 678, 682, 412, 469, 678, 412, - 266, 24, 173, 67, 412, 281, 531, 469, 512, 512, - 279, 478, 515, 230, 250, 500, 678, 678, 500, 494, - 56, 412, 26, 565, 567, 493, 537, 39, 400, 400, - 238, 493, 228, 412, 400, 508, 245, 170, 400, 5, - 683, 700, 482, 699, 680, 698, 684, 697, 487, 589, - 491, 513, 692, 691, 696, 470, 485, 681, 679, 562, - 483, 456, 465, 528, 481, 620, 496, 557, 479, 479, - 479, 481, 676, 479, 479, 479, 479, 479, 479, 479, - 479, 729, 252, 538, 497, 486, 553, 525, 458, 608, - 495, 562, 562, 651, 728, 673, 474, 690, 714, 695, - 576, 472, 722, 689, 650, 556, 490, 551, 688, 721, - 713, 604, 456, 712, 652, 492, 562, 648, 479, 674, - 701, 734, 733, 677, 732, 720, 549, 516, 731, 647, - 711, 600, 599, 564, 725, 707, 719, 646, 718, 568, - 521, 727, 522, 685, 501, 686, 592, 645, 643, 299, - 571, 642, 694, 573, 724, 723, 726, 583, 588, 593, - 594, 480, 641, 397, 587, 693, 511, 475, 520, 586, - 477, 710, 635, 613, 687, 584, 561, 634, 632, 715, - 518, 557, 530, 523, 526, 499, 609, 631, 716, 510, - 582, 581, 580, 579, 628, 578, 623, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 134, 134, -2, - -2, -2, 0, 0, 0, 0, -2, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, -3, 418, 418, -3, - 418, 418, 418, 418, 418, 418, -22, -22, -22, -22, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 49, 49, 49, 49, 221, -22, - -22, 221, 221, 221, 221, 221, 221, 49, 221, 92, - 92, 92, 221, 94, 94, 0, 0, 0, 0, 0, - 469, 92, 221, 221, 221, 221, 0, 0, 221, 221, - 94, 0, 0, 0, 0, 0, 469, 469, 469, 0, - 469, 92, 0, 64, 423, 423, 423, 423, 0, 0, - 0, 469, 0, 469, 515, 0, 0, 0, 0, 412, - 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 479, - 690, 0, 474, 0, 0, 0, 479, 479, 479, 474, - 474, 0, 0, 474 - ); - - protected $actionDefault = array( - 3,32767,32767,32767,32767,32767,32767, 88,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 88, 489, 489, 489,32767,32767,32767,32767, 302, - 302, 302,32767, 481, 439, 439, 439, 439, 439, 439, - 439, 481,32767,32767,32767,32767,32767, 381,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 88,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 486,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 364, 365, 367, - 368, 301, 440, 250, 485, 300, 126, 261, 252, 204, - 298, 236, 130, 329, 382, 331, 380, 384, 330, 307, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 305, 306, 383, 361, 360, 359, 327, 328, - 304, 332, 334, 304, 333, 350, 351, 348, 349, 352, - 353, 354, 355, 356,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 88,32767, 284, 284, - 284, 284,32767, 341, 342, 242, 242, 242, 242,32767, - 242, 285,32767,32767,32767,32767,32767,32767,32767, 433, - 358, 336, 337, 335,32767, 411,32767,32767,32767,32767, - 32767, 413,32767, 88,32767,32767, 324, 326, 405, 308, - 32767,32767, 90,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 408, 441, 441,32767,32767, 88, 399, 88, - 169, 223, 225, 174,32767, 416,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 346,32767, 496,32767, 441,32767,32767, - 338, 339, 340,32767,32767, 441, 441,32767, 441,32767, - 441,32767,32767,32767, 174,32767,32767,32767,32767,32767, - 32767,32767, 90, 414, 414, 409, 174,32767,32767, 174, - 87, 87, 87, 87, 174, 87, 187,32767, 185, 185, - 87, 88, 88, 87, 87, 189,32767, 455, 189, 88, - 87, 174, 87, 209, 209, 390, 176, 89, 244, 244, - 89, 390, 87, 174, 244, 88, 87, 87, 244,32767, - 32767,32767, 82,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 401, - 32767,32767, 421,32767, 434, 453, 399,32767, 344, 345, - 347,32767, 443, 369, 370, 371, 372, 373, 374, 375, - 377,32767, 482, 404,32767,32767, 84, 117, 260,32767, - 494, 84, 402,32767, 494,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 84,32767, 84,32767,32767, - 32767,32767, 478,32767, 441,32767, 403,32767, 343, 417, - 460,32767,32767, 442,32767,32767, 84,32767,32767,32767, - 32767,32767,32767,32767,32767, 421,32767,32767,32767,32767, - 32767, 441,32767,32767,32767,32767,32767,32767,32767, 297, - 32767,32767,32767,32767,32767,32767, 441,32767,32767,32767, - 32767, 235,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 82, 60,32767, 278,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 132, 132, 3, - 3, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 263, 164, 263, 217, - 263, 263, 220, 209, 209, 270 - ); - - protected $goto = array( - 163, 163, 136, 136, 136, 146, 148, 179, 164, 161, - 161, 161, 161, 145, 162, 162, 162, 162, 162, 162, - 162, 145, 157, 158, 159, 160, 176, 174, 177, 418, - 419, 313, 420, 423, 424, 425, 426, 427, 428, 429, - 430, 886, 134, 137, 138, 139, 140, 141, 142, 143, - 144, 147, 173, 175, 178, 195, 198, 199, 201, 202, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 233, 234, 251, 252, 253, 320, 321, 322, 468, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 149, 194, 150, 165, 166, 167, 196, - 168, 151, 152, 153, 169, 154, 197, 135, 170, 155, - 171, 172, 156, 532, 200, 436, 734, 704, 469, 855, - 545, 279, 200, 524, 853, 470, 710, 667, 5, 462, - 669, 441, 441, 441, 261, 441, 791, 462, 770, 245, - 569, 668, 434, 800, 795, 543, 457, 454, 441, 774, - 572, 490, 492, 518, 522, 788, 527, 528, 802, 535, - 787, 537, 544, 798, 546, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 421, - 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, - 421, 421, 421, 441, 441, 486, 488, 538, 455, 476, - 441, 441, 972, 441, 229, 731, 230, 231, 442, 298, - 301, 448, 471, 472, 474, 766, 310, 541, 466, 485, - 485, 997, 997, 997, 997, 997, 997, 997, 997, 997, - 997, 997, 997, 699, 687, 829, 433, 833, 463, 695, - 1066, 1066, 777, 433, 825, 747, 480, 483, 504, 1059, - 314, 296, 807, 447, 767, 973, 505, 1066, 458, 671, - 768, 768, 768, 768, 870, 1051, 762, 769, 703, 968, - 695, 1069, 695, 974, 1028, 376, 676, 460, 726, 721, - 722, 735, 677, 723, 674, 724, 725, 8, 933, 675, - 810, 729, 1067, 1067, 821, 326, 506, 330, 317, 317, - 266, 267, 283, 464, 269, 325, 284, 328, 491, 1067, - 805, 805, 1056, 467, 479, 814, 1040, 686, 686, 285, - 280, 281, 696, 696, 696, 698, 510, 685, 497, 277, - 691, 523, 307, 688, 830, 312, 556, 969, 964, 512, - 368, 976, 482, 684, 815, 815, 815, 815, 976, 815, - 700, 815, 834, 779, 1037, 815, 384, 872, 0, 863, - 0, 1037, 0, 0, 0, 976, 976, 976, 976, 1048, - 1048, 976, 976, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 742, 0, 0, 743, 1034, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 832, 0, - 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1041, 1042 - ); - - protected $gotoCheck = array( - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 60, 53, 8, 10, 33, 7, 7, - 7, 76, 53, 7, 7, 93, 13, 13, 106, 81, - 15, 8, 8, 8, 128, 8, 13, 81, 13, 128, - 13, 14, 13, 13, 13, 5, 8, 36, 8, 37, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 8, 8, 64, 64, 64, 8, 8, - 8, 8, 88, 8, 69, 52, 69, 69, 8, 46, - 46, 46, 46, 46, 46, 72, 72, 72, 8, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 11, 11, 11, 71, 11, 130, 23, - 139, 139, 11, 71, 90, 11, 11, 43, 43, 138, - 62, 49, 11, 62, 11, 88, 51, 139, 62, 10, - 71, 71, 71, 71, 11, 136, 71, 71, 11, 11, - 23, 139, 23, 88, 88, 62, 10, 50, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 62, 112, 10, - 84, 10, 140, 140, 86, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 140, - 81, 81, 81, 2, 2, 87, 133, 23, 23, 17, - 76, 76, 23, 23, 23, 23, 65, 23, 21, 9, - 27, 65, 16, 25, 92, 65, 78, 121, 118, 20, - 67, 60, 68, 12, 60, 60, 60, 60, 60, 60, - 29, 60, 95, 75, 93, 60, 116, 109, -1, 106, - -1, 93, -1, -1, -1, 60, 60, 60, 60, 93, - 93, 60, 60, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, 60, 93, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, - -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 93 - ); - - protected $gotoBase = array( - 0, 0, -236, 0, 0, 135, 0, 115, -139, 55, - -18, -118, -37, 125, 139, 128, 47, 65, 0, 0, - 6, 57, 0, -15, 0, 46, 0, 58, 0, -11, - -20, 0, 0, 110, 0, 0, -401, 133, 0, 0, - 0, 0, 0, 217, 0, 0, 174, 0, 0, 219, - 59, 41, 191, 81, 0, 0, 0, 0, 0, 0, - 109, 0, -96, 0, -41, -53, 0, -19, -26, -364, - 0, 4, -42, 0, 0, -16, -253, 0, 25, 0, - 0, 96, 5, 0, 50, 0, 52, 69, -93, 0, - 223, 0, 45, 122, 0, -10, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 0, 0, -28, - 0, 0, 49, 0, 0, 0, -25, 0, -6, 0, - 0, 3, 0, 0, 0, 0, 0, 0, -121, -35, - 215, -49, 0, 68, 0, 0, 224, 0, 225, -4, - 48, 0, 0 - ); - - protected $gotoDefault = array( - -32768, 389, 577, 2, 578, 649, 657, 513, 409, 437, - 728, 875, 690, 772, 711, 712, 302, 340, 294, 300, - 498, 487, 380, 697, 352, 689, 377, 692, 351, 701, - 133, 514, 386, 705, 1, 707, 443, 738, 291, 715, - 292, 517, 717, 450, 719, 720, 297, 303, 304, 879, - 459, 484, 730, 203, 452, 732, 290, 733, 741, 331, - 295, 363, 520, 494, 475, 509, 410, 365, 481, 228, - 461, 983, 764, 372, 360, 778, 278, 786, 561, 794, - 797, 411, 412, 370, 809, 371, 819, 813, 991, 364, - 824, 353, 831, 1023, 355, 835, 838, 341, 500, 329, - 842, 843, 4, 847, 533, 534, 862, 241, 382, 871, - 350, 885, 344, 952, 954, 445, 379, 965, 359, 521, - 387, 970, 1027, 348, 413, 366, 268, 282, 244, 414, - 431, 249, 415, 367, 1030, 318, 1052, 432, 1060, 1068, - 275, 315, 478 - ); - - protected $ruleToNonTerminal = array( - 0, 1, 3, 3, 2, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 8, 8, 9, 10, 10, 11, 11, 12, - 12, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 17, 17, 18, 18, 18, 18, 20, 22, - 22, 16, 24, 24, 21, 26, 26, 23, 23, 25, - 25, 27, 27, 19, 28, 28, 29, 31, 32, 32, - 33, 34, 34, 36, 35, 35, 35, 35, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 13, 13, 56, 56, 59, 59, 58, 57, - 57, 50, 61, 61, 62, 62, 63, 63, 14, 15, - 15, 15, 66, 66, 66, 67, 67, 70, 70, 68, - 68, 72, 73, 73, 44, 44, 52, 52, 55, 55, - 55, 54, 74, 74, 75, 45, 45, 45, 45, 76, - 76, 77, 77, 78, 78, 42, 42, 38, 38, 79, - 40, 40, 80, 39, 39, 41, 41, 51, 51, 51, - 51, 64, 64, 83, 83, 84, 84, 86, 86, 87, - 87, 87, 85, 85, 65, 65, 88, 88, 89, 89, - 90, 90, 90, 47, 91, 91, 92, 48, 94, 94, - 95, 95, 69, 69, 96, 96, 96, 96, 101, 101, - 102, 102, 103, 103, 103, 103, 103, 104, 105, 105, - 100, 100, 97, 97, 99, 99, 107, 107, 106, 106, - 106, 106, 106, 106, 98, 108, 108, 109, 109, 49, - 110, 110, 43, 43, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 117, 111, 111, - 116, 116, 119, 120, 120, 121, 122, 122, 122, 71, - 71, 60, 60, 60, 112, 112, 112, 124, 124, 113, - 113, 115, 115, 115, 118, 118, 129, 129, 129, 82, - 131, 131, 131, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 46, - 46, 127, 127, 127, 123, 123, 123, 132, 132, 132, - 132, 132, 132, 53, 53, 53, 93, 93, 93, 93, - 134, 126, 126, 126, 126, 126, 126, 125, 125, 125, - 133, 133, 133, 133, 81, 135, 135, 136, 136, 136, - 136, 136, 130, 137, 137, 138, 138, 138, 138, 138, - 128, 128, 128, 128, 140, 141, 139, 139, 139, 139, - 139, 139, 139, 142, 142, 142, 142 - ); - - protected $ruleToLength = array( - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 1, 0, 1, 0, - 1, 1, 1, 1, 1, 3, 5, 4, 3, 4, - 2, 3, 1, 1, 7, 8, 6, 7, 2, 3, - 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, - 2, 1, 2, 2, 3, 1, 3, 2, 3, 1, - 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, - 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, - 3, 1, 2, 5, 7, 9, 5, 6, 3, 3, - 2, 1, 1, 1, 0, 2, 1, 3, 8, 0, - 4, 2, 1, 3, 0, 1, 0, 1, 10, 7, - 6, 5, 1, 2, 2, 0, 2, 0, 2, 0, - 2, 2, 1, 3, 1, 4, 1, 4, 1, 1, - 4, 2, 1, 3, 3, 3, 4, 4, 5, 0, - 2, 4, 3, 1, 1, 1, 4, 0, 2, 5, - 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, - 1, 2, 0, 1, 3, 4, 6, 1, 2, 1, - 1, 1, 0, 1, 0, 2, 2, 4, 1, 3, - 1, 2, 2, 2, 3, 1, 1, 2, 3, 1, - 1, 3, 2, 0, 3, 4, 9, 3, 1, 3, - 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, - 1, 3, 1, 1, 0, 1, 1, 2, 1, 1, - 1, 1, 1, 1, 2, 1, 3, 1, 3, 2, - 3, 1, 0, 1, 1, 3, 3, 3, 4, 1, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, - 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, - 2, 1, 2, 4, 2, 10, 11, 7, 3, 2, - 0, 4, 2, 1, 3, 2, 2, 2, 4, 1, - 1, 1, 2, 3, 1, 1, 1, 1, 1, 0, - 3, 0, 1, 1, 0, 1, 1, 3, 3, 3, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 3, 3, 0, - 1, 1, 3, 1, 1, 3, 1, 1, 4, 4, - 4, 1, 4, 1, 1, 3, 1, 4, 2, 2, - 3, 1, 4, 4, 3, 3, 3, 1, 3, 1, - 1, 3, 1, 1, 4, 3, 1, 1, 1, 3, - 3, 0, 1, 3, 1, 3, 1, 4, 2, 0, - 2, 2, 1, 2, 1, 1, 1, 4, 3, 3, - 3, 6, 3, 1, 1, 2, 1 - ); - - protected function reduceRule0() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule1() { - $this->semValue = $this->handleNamespaces($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule2() { - if (is_array($this->semStack[$this->stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); } else { $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; }; - } - - protected function reduceRule3() { - $this->semValue = array(); - } - - protected function reduceRule4() { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$this->stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule5() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule6() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule7() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule8() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule9() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule10() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule11() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule12() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule13() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule14() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule15() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule16() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule17() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule18() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule19() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule20() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule21() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule22() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule23() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule24() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule25() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule26() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule27() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule28() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule29() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule30() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule31() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule32() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule33() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule34() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule35() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule36() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule37() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule38() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule39() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule40() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule41() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule42() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule43() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule44() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule45() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule46() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule47() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule48() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule49() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule50() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule51() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule52() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule53() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule54() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule55() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule56() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule57() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule58() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule59() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule60() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule61() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule62() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule63() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule64() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule65() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule66() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule67() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule68() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule69() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule70() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule71() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule72() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule73() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule74() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule75() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule76() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule77() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule78() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule79() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule80() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule81() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule82() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule83() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule84() { - $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule85() { - /* nothing */ - } - - protected function reduceRule86() { - /* nothing */ - } - - protected function reduceRule87() { - /* nothing */ - } - - protected function reduceRule88() { - $this->emitError(new Error('A trailing comma is not allowed here', $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes)); - } - - protected function reduceRule89() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule90() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule91() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule92() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule93() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule94() { - $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule95() { - $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(3-2)], null, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($this->semValue); - } - - protected function reduceRule96() { - $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(5-2)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($this->semValue); - } - - protected function reduceRule97() { - $this->semValue = new Stmt\Namespace_(null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($this->semValue); - } - - protected function reduceRule98() { - $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule99() { - $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-2)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule100() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule101() { - $this->semValue = new Stmt\Const_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule102() { - $this->semValue = Stmt\Use_::TYPE_FUNCTION; - } - - protected function reduceRule103() { - $this->semValue = Stmt\Use_::TYPE_CONSTANT; - } - - protected function reduceRule104() { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(7-3)], $this->startAttributeStack[$this->stackPos-(7-3)] + $this->endAttributeStack[$this->stackPos-(7-3)]), $this->semStack[$this->stackPos-(7-6)], $this->semStack[$this->stackPos-(7-2)], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - } - - protected function reduceRule105() { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(8-4)], $this->startAttributeStack[$this->stackPos-(8-4)] + $this->endAttributeStack[$this->stackPos-(8-4)]), $this->semStack[$this->stackPos-(8-7)], $this->semStack[$this->stackPos-(8-2)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes); - } - - protected function reduceRule106() { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(6-2)], $this->startAttributeStack[$this->stackPos-(6-2)] + $this->endAttributeStack[$this->stackPos-(6-2)]), $this->semStack[$this->stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - } - - protected function reduceRule107() { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(7-3)], $this->startAttributeStack[$this->stackPos-(7-3)] + $this->endAttributeStack[$this->stackPos-(7-3)]), $this->semStack[$this->stackPos-(7-6)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - } - - protected function reduceRule108() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule109() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule110() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule111() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule112() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule113() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule114() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule115() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule116() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule117() { - $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $this->stackPos-(1-1)); - } - - protected function reduceRule118() { - $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $this->stackPos-(3-3)); - } - - protected function reduceRule119() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule120() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule121() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; - } - - protected function reduceRule122() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; $this->semValue->type = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule123() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule124() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule125() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule126() { - $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule127() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule128() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule129() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule130() { - $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule131() { - if (is_array($this->semStack[$this->stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); } else { $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; }; - } - - protected function reduceRule132() { - $this->semValue = array(); - } - - protected function reduceRule133() { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$this->stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule134() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule135() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule136() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule137() { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule138() { - - if ($this->semStack[$this->stackPos-(3-2)]) { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; $attrs = $this->startAttributeStack[$this->stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; - } else { - $startAttributes = $this->startAttributeStack[$this->stackPos-(3-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $this->semValue = null; }; - if (null === $this->semValue) { $this->semValue = array(); } - } - - } - - protected function reduceRule139() { - $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(7-3)], ['stmts' => is_array($this->semStack[$this->stackPos-(7-5)]) ? $this->semStack[$this->stackPos-(7-5)] : array($this->semStack[$this->stackPos-(7-5)]), 'elseifs' => $this->semStack[$this->stackPos-(7-6)], 'else' => $this->semStack[$this->stackPos-(7-7)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - } - - protected function reduceRule140() { - $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(10-3)], ['stmts' => $this->semStack[$this->stackPos-(10-6)], 'elseifs' => $this->semStack[$this->stackPos-(10-7)], 'else' => $this->semStack[$this->stackPos-(10-8)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes); - } - - protected function reduceRule141() { - $this->semValue = new Stmt\While_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule142() { - $this->semValue = new Stmt\Do_($this->semStack[$this->stackPos-(7-5)], is_array($this->semStack[$this->stackPos-(7-2)]) ? $this->semStack[$this->stackPos-(7-2)] : array($this->semStack[$this->stackPos-(7-2)]), $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - } - - protected function reduceRule143() { - $this->semValue = new Stmt\For_(['init' => $this->semStack[$this->stackPos-(9-3)], 'cond' => $this->semStack[$this->stackPos-(9-5)], 'loop' => $this->semStack[$this->stackPos-(9-7)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes); - } - - protected function reduceRule144() { - $this->semValue = new Stmt\Switch_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule145() { - $this->semValue = new Stmt\Break_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule146() { - $this->semValue = new Stmt\Continue_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule147() { - $this->semValue = new Stmt\Return_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule148() { - $this->semValue = new Stmt\Global_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule149() { - $this->semValue = new Stmt\Static_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule150() { - $this->semValue = new Stmt\Echo_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule151() { - $this->semValue = new Stmt\InlineHTML($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule152() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule153() { - $this->semValue = new Stmt\Unset_($this->semStack[$this->stackPos-(5-3)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule154() { - $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(7-3)], $this->semStack[$this->stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$this->stackPos-(7-5)][1], 'stmts' => $this->semStack[$this->stackPos-(7-7)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - } - - protected function reduceRule155() { - $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(9-3)], $this->semStack[$this->stackPos-(9-7)][0], ['keyVar' => $this->semStack[$this->stackPos-(9-5)], 'byRef' => $this->semStack[$this->stackPos-(9-7)][1], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes); - } - - protected function reduceRule156() { - $this->semValue = new Stmt\Declare_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule157() { - $this->semValue = new Stmt\TryCatch($this->semStack[$this->stackPos-(6-3)], $this->semStack[$this->stackPos-(6-5)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); - } - - protected function reduceRule158() { - $this->semValue = new Stmt\Throw_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule159() { - $this->semValue = new Stmt\Goto_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule160() { - $this->semValue = new Stmt\Label($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule161() { - $this->semValue = array(); /* means: no statement */ - } - - protected function reduceRule162() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule163() { - $startAttributes = $this->startAttributeStack[$this->stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $this->semValue = null; }; - if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ - } - - protected function reduceRule164() { - $this->semValue = array(); - } - - protected function reduceRule165() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule166() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule167() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule168() { - $this->semValue = new Stmt\Catch_($this->semStack[$this->stackPos-(8-3)], substr($this->semStack[$this->stackPos-(8-4)], 1), $this->semStack[$this->stackPos-(8-7)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes); - } - - protected function reduceRule169() { - $this->semValue = null; - } - - protected function reduceRule170() { - $this->semValue = new Stmt\Finally_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule171() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule172() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule173() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule174() { - $this->semValue = false; - } - - protected function reduceRule175() { - $this->semValue = true; - } - - protected function reduceRule176() { - $this->semValue = false; - } - - protected function reduceRule177() { - $this->semValue = true; - } - - protected function reduceRule178() { - $this->semValue = new Stmt\Function_($this->semStack[$this->stackPos-(10-3)], ['byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-5)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes); - } - - protected function reduceRule179() { - $this->semValue = new Stmt\Class_($this->semStack[$this->stackPos-(7-2)], ['type' => $this->semStack[$this->stackPos-(7-1)], 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes); - $this->checkClass($this->semValue, $this->stackPos-(7-2)); - } - - protected function reduceRule180() { - $this->semValue = new Stmt\Interface_($this->semStack[$this->stackPos-(6-2)], ['extends' => $this->semStack[$this->stackPos-(6-3)], 'stmts' => $this->semStack[$this->stackPos-(6-5)]], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - $this->checkInterface($this->semValue, $this->stackPos-(6-2)); - } - - protected function reduceRule181() { - $this->semValue = new Stmt\Trait_($this->semStack[$this->stackPos-(5-2)], ['stmts' => $this->semStack[$this->stackPos-(5-4)]], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule182() { - $this->semValue = 0; - } - - protected function reduceRule183() { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; - } - - protected function reduceRule184() { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; - } - - protected function reduceRule185() { - $this->semValue = null; - } - - protected function reduceRule186() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule187() { - $this->semValue = array(); - } - - protected function reduceRule188() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule189() { - $this->semValue = array(); - } - - protected function reduceRule190() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule191() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule192() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule193() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule194() { - $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule195() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule196() { - $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule197() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule198() { - $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule199() { - $this->semValue = null; - } - - protected function reduceRule200() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule201() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule202() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule203() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule204() { - $this->semValue = new Stmt\DeclareDeclare($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule205() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule206() { - $this->semValue = $this->semStack[$this->stackPos-(4-3)]; - } - - protected function reduceRule207() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule208() { - $this->semValue = $this->semStack[$this->stackPos-(5-3)]; - } - - protected function reduceRule209() { - $this->semValue = array(); - } - - protected function reduceRule210() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule211() { - $this->semValue = new Stmt\Case_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule212() { - $this->semValue = new Stmt\Case_(null, $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule213() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule214() { - $this->semValue = $this->semStack[$this->stackPos]; - } - - protected function reduceRule215() { - $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule216() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule217() { - $this->semValue = array(); - } - - protected function reduceRule218() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule219() { - $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(5-3)], is_array($this->semStack[$this->stackPos-(5-5)]) ? $this->semStack[$this->stackPos-(5-5)] : array($this->semStack[$this->stackPos-(5-5)]), $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule220() { - $this->semValue = array(); - } - - protected function reduceRule221() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule222() { - $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(6-3)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - } - - protected function reduceRule223() { - $this->semValue = null; - } - - protected function reduceRule224() { - $this->semValue = new Stmt\Else_(is_array($this->semStack[$this->stackPos-(2-2)]) ? $this->semStack[$this->stackPos-(2-2)] : array($this->semStack[$this->stackPos-(2-2)]), $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule225() { - $this->semValue = null; - } - - protected function reduceRule226() { - $this->semValue = new Stmt\Else_($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule227() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false); - } - - protected function reduceRule228() { - $this->semValue = array($this->semStack[$this->stackPos-(2-2)], true); - } - - protected function reduceRule229() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false); - } - - protected function reduceRule230() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false); - } - - protected function reduceRule231() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule232() { - $this->semValue = array(); - } - - protected function reduceRule233() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule234() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule235() { - $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(4-4)], 1), null, $this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); - } - - protected function reduceRule236() { - $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(6-4)], 1), $this->semStack[$this->stackPos-(6-6)], $this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-2)], $this->semStack[$this->stackPos-(6-3)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); - } - - protected function reduceRule237() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule238() { - $this->semValue = new Node\NullableType($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule239() { - $this->semValue = $this->handleBuiltinTypes($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule240() { - $this->semValue = 'array'; - } - - protected function reduceRule241() { - $this->semValue = 'callable'; - } - - protected function reduceRule242() { - $this->semValue = null; - } - - protected function reduceRule243() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule244() { - $this->semValue = null; - } - - protected function reduceRule245() { - $this->semValue = $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule246() { - $this->semValue = array(); - } - - protected function reduceRule247() { - $this->semValue = $this->semStack[$this->stackPos-(4-2)]; - } - - protected function reduceRule248() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule249() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule250() { - $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(1-1)], false, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule251() { - $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], true, false, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule252() { - $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], false, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule253() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule254() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule255() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule256() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule257() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule258() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule259() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule260() { - $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule261() { - $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule262() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule263() { - $this->semValue = array(); - } - - protected function reduceRule264() { - $this->semValue = new Stmt\Property($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $this->stackPos-(3-1)); - } - - protected function reduceRule265() { - $this->semValue = new Stmt\ClassConst($this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-1)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); $this->checkClassConst($this->semValue, $this->stackPos-(4-1)); - } - - protected function reduceRule266() { - $this->semValue = new Stmt\ClassMethod($this->semStack[$this->stackPos-(9-4)], ['type' => $this->semStack[$this->stackPos-(9-1)], 'byRef' => $this->semStack[$this->stackPos-(9-3)], 'params' => $this->semStack[$this->stackPos-(9-6)], 'returnType' => $this->semStack[$this->stackPos-(9-8)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes); - $this->checkClassMethod($this->semValue, $this->stackPos-(9-1)); - } - - protected function reduceRule267() { - $this->semValue = new Stmt\TraitUse($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule268() { - $this->semValue = array(); - } - - protected function reduceRule269() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule270() { - $this->semValue = array(); - } - - protected function reduceRule271() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule272() { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule273() { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(5-1)][0], $this->semStack[$this->stackPos-(5-1)][1], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule274() { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], null, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule275() { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule276() { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule277() { - $this->semValue = array($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)]); - } - - protected function reduceRule278() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule279() { - $this->semValue = array(null, $this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule280() { - $this->semValue = null; - } - - protected function reduceRule281() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule282() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule283() { - $this->semValue = 0; - } - - protected function reduceRule284() { - $this->semValue = 0; - } - - protected function reduceRule285() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule286() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule287() { - $this->checkModifier($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->stackPos-(2-2)); $this->semValue = $this->semStack[$this->stackPos-(2-1)] | $this->semStack[$this->stackPos-(2-2)]; - } - - protected function reduceRule288() { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; - } - - protected function reduceRule289() { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; - } - - protected function reduceRule290() { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; - } - - protected function reduceRule291() { - $this->semValue = Stmt\Class_::MODIFIER_STATIC; - } - - protected function reduceRule292() { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; - } - - protected function reduceRule293() { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; - } - - protected function reduceRule294() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule295() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule296() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule297() { - $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule298() { - $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule299() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule300() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule301() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule302() { - $this->semValue = array(); - } - - protected function reduceRule303() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule304() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule305() { - $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule306() { - $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule307() { - $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule308() { - $this->semValue = new Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule309() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule310() { - $this->semValue = new Expr\Clone_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule311() { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule312() { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule313() { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule314() { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule315() { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule316() { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule317() { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule318() { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule319() { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule320() { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule321() { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule322() { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule323() { - $this->semValue = new Expr\PostInc($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule324() { - $this->semValue = new Expr\PreInc($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule325() { - $this->semValue = new Expr\PostDec($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule326() { - $this->semValue = new Expr\PreDec($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule327() { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule328() { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule329() { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule330() { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule331() { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule332() { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule333() { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule334() { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule335() { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule336() { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule337() { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule338() { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule339() { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule340() { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule341() { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule342() { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule343() { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule344() { - $this->semValue = new Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule345() { - $this->semValue = new Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule346() { - $this->semValue = new Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule347() { - $this->semValue = new Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule348() { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule349() { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule350() { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule351() { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule352() { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule353() { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule354() { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule355() { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule356() { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule357() { - $this->semValue = new Expr\Instanceof_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule358() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule359() { - $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); - } - - protected function reduceRule360() { - $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule361() { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule362() { - $this->semValue = new Expr\Isset_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule363() { - $this->semValue = new Expr\Empty_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule364() { - $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule365() { - $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule366() { - $this->semValue = new Expr\Eval_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule367() { - $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule368() { - $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule369() { - $this->semValue = new Expr\Cast\Int_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule370() { - $this->semValue = new Expr\Cast\Double($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule371() { - $this->semValue = new Expr\Cast\String_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule372() { - $this->semValue = new Expr\Cast\Array_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule373() { - $this->semValue = new Expr\Cast\Object_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule374() { - $this->semValue = new Expr\Cast\Bool_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule375() { - $this->semValue = new Expr\Cast\Unset_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule376() { - $attrs = $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes; - $attrs['kind'] = strtolower($this->semStack[$this->stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $this->semValue = new Expr\Exit_($this->semStack[$this->stackPos-(2-2)], $attrs); - } - - protected function reduceRule377() { - $this->semValue = new Expr\ErrorSuppress($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule378() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule379() { - $this->semValue = new Expr\ShellExec($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule380() { - $this->semValue = new Expr\Print_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule381() { - $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule382() { - $this->semValue = new Expr\Yield_($this->semStack[$this->stackPos-(2-2)], null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule383() { - $this->semValue = new Expr\Yield_($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-2)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule384() { - $this->semValue = new Expr\YieldFrom($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule385() { - $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-4)], 'uses' => $this->semStack[$this->stackPos-(10-6)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes); - } - - protected function reduceRule386() { - $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$this->stackPos-(11-3)], 'params' => $this->semStack[$this->stackPos-(11-5)], 'uses' => $this->semStack[$this->stackPos-(11-7)], 'returnType' => $this->semStack[$this->stackPos-(11-8)], 'stmts' => $this->semStack[$this->stackPos-(11-10)]], $this->startAttributeStack[$this->stackPos-(11-1)] + $this->endAttributes); - } - - protected function reduceRule387() { - $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(7-2)]); - $this->checkClass($this->semValue[0], -1); - } - - protected function reduceRule388() { - $this->semValue = new Expr\New_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule389() { - list($class, $ctorArgs) = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule390() { - $this->semValue = array(); - } - - protected function reduceRule391() { - $this->semValue = $this->semStack[$this->stackPos-(4-3)]; - } - - protected function reduceRule392() { - $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule393() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule394() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule395() { - $this->semValue = new Expr\ClosureUse(substr($this->semStack[$this->stackPos-(2-2)], 1), $this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule396() { - $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule397() { - $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule398() { - $this->semValue = new Expr\StaticCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule399() { - $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule400() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule401() { - $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule402() { - $this->semValue = new Name\FullyQualified($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule403() { - $this->semValue = new Name\Relative($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule404() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule405() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule406() { - $this->semValue = new Expr\Error($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; - } - - protected function reduceRule407() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule408() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule409() { - $this->semValue = null; - } - - protected function reduceRule410() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule411() { - $this->semValue = array(); - } - - protected function reduceRule412() { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$this->stackPos-(1-1)], '`'), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes)); - } - - protected function reduceRule413() { - foreach ($this->semStack[$this->stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule414() { - $this->semValue = array(); - } - - protected function reduceRule415() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule416() { - $this->semValue = new Expr\ConstFetch($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule417() { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule418() { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$this->stackPos-(3-3)] + $this->endAttributeStack[$this->stackPos-(3-3)]), $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; - } - - protected function reduceRule419() { - $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; - $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(3-2)], $attrs); - } - - protected function reduceRule420() { - $attrs = $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; - $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(4-3)], $attrs); - } - - protected function reduceRule421() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule422() { - $attrs = $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$this->stackPos-(1-1)][0] === "'" || ($this->semStack[$this->stackPos-(1-1)][1] === "'" && ($this->semStack[$this->stackPos-(1-1)][0] === 'b' || $this->semStack[$this->stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); - $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$this->stackPos-(1-1)]), $attrs); - } - - protected function reduceRule423() { - $this->semValue = $this->parseLNumber($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule424() { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$this->stackPos-(1-1)]), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule425() { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule426() { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule427() { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule428() { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule429() { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule430() { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule431() { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule432() { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule433() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule434() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule435() { - $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$this->stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];; - $this->semValue = new Scalar\String_(Scalar\String_::parseDocString($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)]), $attrs); - } - - protected function reduceRule436() { - $attrs = $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->stackPos-(2-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$this->stackPos-(2-1)], $matches); $attrs['docLabel'] = $matches[1];; - $this->semValue = new Scalar\String_('', $attrs); - } - - protected function reduceRule437() { - $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - foreach ($this->semStack[$this->stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $attrs); - } - - protected function reduceRule438() { - $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$this->stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];; - foreach ($this->semStack[$this->stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, null, true); } } $s->value = preg_replace('~(\r\n|\n|\r)\z~', '', $s->value); if ('' === $s->value) array_pop($this->semStack[$this->stackPos-(3-2)]);; $this->semValue = new Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $attrs); - } - - protected function reduceRule439() { - $this->semValue = null; - } - - protected function reduceRule440() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule441() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule442() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule443() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule444() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule445() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule446() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule447() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule448() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule449() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule450() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule451() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule452() { - $this->semValue = new Expr\MethodCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule453() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule454() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule455() { - $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule456() { - $this->semValue = substr($this->semStack[$this->stackPos-(1-1)], 1); - } - - protected function reduceRule457() { - $this->semValue = $this->semStack[$this->stackPos-(4-3)]; - } - - protected function reduceRule458() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule459() { - $this->semValue = new Expr\Error($this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; - } - - protected function reduceRule460() { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule461() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule462() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule463() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule464() { - $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule465() { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule466() { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule467() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule468() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule469() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule470() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule471() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule472() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule473() { - $this->semValue = new Expr\Error($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; - } - - protected function reduceRule474() { - $this->semValue = new Expr\List_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule475() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule476() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule477() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule478() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule479() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule480() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule481() { - $this->semValue = null; - } - - protected function reduceRule482() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) unset($this->semValue[$end]); - } - - protected function reduceRule483() { - $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)]; - } - - protected function reduceRule484() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule485() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule486() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule487() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-1)], true, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule488() { - $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(2-2)], null, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule489() { - $this->semValue = null; - } - - protected function reduceRule490() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule491() { - $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; - } - - protected function reduceRule492() { - $this->semValue = array($this->semStack[$this->stackPos-(1-1)]); - } - - protected function reduceRule493() { - $this->semValue = array($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); - } - - protected function reduceRule494() { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule495() { - $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule496() { - $this->semValue = $this->semStack[$this->stackPos-(1-1)]; - } - - protected function reduceRule497() { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); - } - - protected function reduceRule498() { - $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule499() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule500() { - $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); - } - - protected function reduceRule501() { - $this->semValue = new Expr\ArrayDimFetch(new Expr\Variable($this->semStack[$this->stackPos-(6-2)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(6-4)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); - } - - protected function reduceRule502() { - $this->semValue = $this->semStack[$this->stackPos-(3-2)]; - } - - protected function reduceRule503() { - $this->semValue = new Scalar\String_($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule504() { - $this->semValue = $this->parseNumString($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } - - protected function reduceRule505() { - $this->semValue = $this->parseNumString('-' . $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); - } - - protected function reduceRule506() { - $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php deleted file mode 100644 index 861663fa..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +++ /dev/null @@ -1,144 +0,0 @@ -lexer = $lexer; - $this->errors = array(); - - if (isset($options['throwOnError'])) { - throw new \LogicException( - '"throwOnError" is no longer supported, use "errorHandler" instead'); - } - } - - /** - * Parses PHP code into a node tree. - * - * If a non-throwing error handler is used, the parser will continue parsing after an error - * occurred and attempt to build a partial AST. - * - * @param string $code The source code to parse - * @param ErrorHandler|null $errorHandler Error handler to use for lexer/parser errors, defaults - * to ErrorHandler\Throwing. - * - * @return Node[]|null Array of statements (or null if the 'throwOnError' option is disabled and the parser was - * unable to recover from an error). - */ - public function parse($code, ErrorHandler $errorHandler = null) { - $this->errorHandler = $errorHandler ?: new ErrorHandler\Throwing; - - // Initialize the lexer - $this->lexer->startLexing($code, $this->errorHandler); - - // We start off with no lookahead-token - $symbol = self::SYMBOL_NONE; - - // The attributes for a node are taken from the first and last token of the node. - // From the first token only the startAttributes are taken and from the last only - // the endAttributes. Both are merged using the array union operator (+). - $startAttributes = '*POISON'; - $endAttributes = '*POISON'; - $this->endAttributes = $endAttributes; - - // Keep stack of start and end attributes - $this->startAttributeStack = array(); - $this->endAttributeStack = array($endAttributes); - - // Start off in the initial state and keep a stack of previous states - $state = 0; - $stateStack = array($state); - - // Semantic value stack (contains values of tokens and semantic action results) - $this->semStack = array(); - - // Current position in the stack(s) - $this->stackPos = 0; - - $this->errorState = 0; - - for (;;) { - //$this->traceNewState($state, $symbol); - - if ($this->actionBase[$state] == 0) { - $rule = $this->actionDefault[$state]; - } else { - if ($symbol === self::SYMBOL_NONE) { - // Fetch the next token id from the lexer and fetch additional info by-ref. - // The end attributes are fetched into a temporary variable and only set once the token is really - // shifted (not during read). Otherwise you would sometimes get off-by-one errors, when a rule is - // reduced after a token was read but not yet shifted. - $tokenId = $this->lexer->getNextToken($tokenValue, $startAttributes, $endAttributes); - - // map the lexer token id to the internally used symbols - $symbol = $tokenId >= 0 && $tokenId < $this->tokenToSymbolMapSize - ? $this->tokenToSymbol[$tokenId] - : $this->invalidSymbol; - - if ($symbol === $this->invalidSymbol) { - throw new \RangeException(sprintf( - 'The lexer returned an invalid token (id=%d, value=%s)', - $tokenId, $tokenValue - )); - } - - // This is necessary to assign some meaningful attributes to /* empty */ productions. They'll get - // the attributes of the next token, even though they don't contain it themselves. - $this->startAttributeStack[$this->stackPos+1] = $startAttributes; - $this->endAttributeStack[$this->stackPos+1] = $endAttributes; - $this->lookaheadStartAttributes = $startAttributes; - - //$this->traceRead($symbol); - } - - $idx = $this->actionBase[$state] + $symbol; - if ((($idx >= 0 && $idx < $this->actionTableSize && $this->actionCheck[$idx] == $symbol) - || ($state < $this->YY2TBLSTATE - && ($idx = $this->actionBase[$state + $this->YYNLSTATES] + $symbol) >= 0 - && $idx < $this->actionTableSize && $this->actionCheck[$idx] == $symbol)) - && ($action = $this->action[$idx]) != $this->defaultAction) { - /* - * >= YYNLSTATES: shift and reduce - * > 0: shift - * = 0: accept - * < 0: reduce - * = -YYUNEXPECTED: error - */ - if ($action > 0) { - /* shift */ - //$this->traceShift($symbol); - - ++$this->stackPos; - $stateStack[$this->stackPos] = $state = $action; - $this->semStack[$this->stackPos] = $tokenValue; - $this->startAttributeStack[$this->stackPos] = $startAttributes; - $this->endAttributeStack[$this->stackPos] = $endAttributes; - $this->endAttributes = $endAttributes; - $symbol = self::SYMBOL_NONE; - - if ($this->errorState) { - --$this->errorState; - } - - if ($action < $this->YYNLSTATES) { - continue; - } - - /* $yyn >= YYNLSTATES means shift-and-reduce */ - $rule = $action - $this->YYNLSTATES; - } else { - $rule = -$action; - } - } else { - $rule = $this->actionDefault[$state]; - } - } - - for (;;) { - if ($rule === 0) { - /* accept */ - //$this->traceAccept(); - return $this->semValue; - } elseif ($rule !== $this->unexpectedTokenRule) { - /* reduce */ - //$this->traceReduce($rule); - - try { - $this->{'reduceRule' . $rule}(); - } catch (Error $e) { - if (-1 === $e->getStartLine() && isset($startAttributes['startLine'])) { - $e->setStartLine($startAttributes['startLine']); - } - - $this->emitError($e); - // Can't recover from this type of error - return null; - } - - /* Goto - shift nonterminal */ - $lastEndAttributes = $this->endAttributeStack[$this->stackPos]; - $this->stackPos -= $this->ruleToLength[$rule]; - $nonTerminal = $this->ruleToNonTerminal[$rule]; - $idx = $this->gotoBase[$nonTerminal] + $stateStack[$this->stackPos]; - if ($idx >= 0 && $idx < $this->gotoTableSize && $this->gotoCheck[$idx] == $nonTerminal) { - $state = $this->goto[$idx]; - } else { - $state = $this->gotoDefault[$nonTerminal]; - } - - ++$this->stackPos; - $stateStack[$this->stackPos] = $state; - $this->semStack[$this->stackPos] = $this->semValue; - $this->endAttributeStack[$this->stackPos] = $lastEndAttributes; - } else { - /* error */ - switch ($this->errorState) { - case 0: - $msg = $this->getErrorMessage($symbol, $state); - $this->emitError(new Error($msg, $startAttributes + $endAttributes)); - // Break missing intentionally - case 1: - case 2: - $this->errorState = 3; - - // Pop until error-expecting state uncovered - while (!( - (($idx = $this->actionBase[$state] + $this->errorSymbol) >= 0 - && $idx < $this->actionTableSize && $this->actionCheck[$idx] == $this->errorSymbol) - || ($state < $this->YY2TBLSTATE - && ($idx = $this->actionBase[$state + $this->YYNLSTATES] + $this->errorSymbol) >= 0 - && $idx < $this->actionTableSize && $this->actionCheck[$idx] == $this->errorSymbol) - ) || ($action = $this->action[$idx]) == $this->defaultAction) { // Not totally sure about this - if ($this->stackPos <= 0) { - // Could not recover from error - return null; - } - $state = $stateStack[--$this->stackPos]; - //$this->tracePop($state); - } - - //$this->traceShift($this->errorSymbol); - ++$this->stackPos; - $stateStack[$this->stackPos] = $state = $action; - - // We treat the error symbol as being empty, so we reset the end attributes - // to the end attributes of the last non-error symbol - $this->endAttributeStack[$this->stackPos] = $this->endAttributeStack[$this->stackPos - 1]; - $this->endAttributes = $this->endAttributeStack[$this->stackPos - 1]; - break; - - case 3: - if ($symbol === 0) { - // Reached EOF without recovering from error - return null; - } - - //$this->traceDiscard($symbol); - $symbol = self::SYMBOL_NONE; - break 2; - } - } - - if ($state < $this->YYNLSTATES) { - break; - } - - /* >= YYNLSTATES means shift-and-reduce */ - $rule = $state - $this->YYNLSTATES; - } - } - - throw new \RuntimeException('Reached end of parser loop'); - } - - protected function emitError(Error $error) { - $this->errorHandler->handleError($error); - } - - protected function getErrorMessage($symbol, $state) { - $expectedString = ''; - if ($expected = $this->getExpectedTokens($state)) { - $expectedString = ', expecting ' . implode(' or ', $expected); - } - - return 'Syntax error, unexpected ' . $this->symbolToName[$symbol] . $expectedString; - } - - protected function getExpectedTokens($state) { - $expected = array(); - - $base = $this->actionBase[$state]; - foreach ($this->symbolToName as $symbol => $name) { - $idx = $base + $symbol; - if ($idx >= 0 && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol - || $state < $this->YY2TBLSTATE - && ($idx = $this->actionBase[$state + $this->YYNLSTATES] + $symbol) >= 0 - && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol - ) { - if ($this->action[$idx] != $this->unexpectedTokenRule - && $this->action[$idx] != $this->defaultAction - && $symbol != $this->errorSymbol - ) { - if (count($expected) == 4) { - /* Too many expected tokens */ - return array(); - } - - $expected[] = $name; - } - } - } - - return $expected; - } - - /* - * Tracing functions used for debugging the parser. - */ - - /* - protected function traceNewState($state, $symbol) { - echo '% State ' . $state - . ', Lookahead ' . ($symbol == self::SYMBOL_NONE ? '--none--' : $this->symbolToName[$symbol]) . "\n"; - } - - protected function traceRead($symbol) { - echo '% Reading ' . $this->symbolToName[$symbol] . "\n"; - } - - protected function traceShift($symbol) { - echo '% Shift ' . $this->symbolToName[$symbol] . "\n"; - } - - protected function traceAccept() { - echo "% Accepted.\n"; - } - - protected function traceReduce($n) { - echo '% Reduce by (' . $n . ') ' . $this->productions[$n] . "\n"; - } - - protected function tracePop($state) { - echo '% Recovering, uncovered state ' . $state . "\n"; - } - - protected function traceDiscard($symbol) { - echo '% Discard ' . $this->symbolToName[$symbol] . "\n"; - } - */ - - /* - * Helper functions invoked by semantic actions - */ - - /** - * Moves statements of semicolon-style namespaces into $ns->stmts and checks various error conditions. - * - * @param Node[] $stmts - * @return Node[] - */ - protected function handleNamespaces(array $stmts) { - $hasErrored = false; - $style = $this->getNamespacingStyle($stmts); - if (null === $style) { - // not namespaced, nothing to do - return $stmts; - } elseif ('brace' === $style) { - // For braced namespaces we only have to check that there are no invalid statements between the namespaces - $afterFirstNamespace = false; - foreach ($stmts as $stmt) { - if ($stmt instanceof Node\Stmt\Namespace_) { - $afterFirstNamespace = true; - } elseif (!$stmt instanceof Node\Stmt\HaltCompiler - && !$stmt instanceof Node\Stmt\Nop - && $afterFirstNamespace && !$hasErrored) { - $this->emitError(new Error( - 'No code may exist outside of namespace {}', $stmt->getAttributes())); - $hasErrored = true; // Avoid one error for every statement - } - } - return $stmts; - } else { - // For semicolon namespaces we have to move the statements after a namespace declaration into ->stmts - $resultStmts = array(); - $targetStmts =& $resultStmts; - foreach ($stmts as $stmt) { - if ($stmt instanceof Node\Stmt\Namespace_) { - if ($stmt->stmts === null) { - $stmt->stmts = array(); - $targetStmts =& $stmt->stmts; - $resultStmts[] = $stmt; - } else { - // This handles the invalid case of mixed style namespaces - $resultStmts[] = $stmt; - $targetStmts =& $resultStmts; - } - } elseif ($stmt instanceof Node\Stmt\HaltCompiler) { - // __halt_compiler() is not moved into the namespace - $resultStmts[] = $stmt; - } else { - $targetStmts[] = $stmt; - } - } - return $resultStmts; - } - } - - private function getNamespacingStyle(array $stmts) { - $style = null; - $hasNotAllowedStmts = false; - foreach ($stmts as $i => $stmt) { - if ($stmt instanceof Node\Stmt\Namespace_) { - $currentStyle = null === $stmt->stmts ? 'semicolon' : 'brace'; - if (null === $style) { - $style = $currentStyle; - if ($hasNotAllowedStmts) { - $this->emitError(new Error( - 'Namespace declaration statement has to be the very first statement in the script', - $stmt->getLine() // Avoid marking the entire namespace as an error - )); - } - } elseif ($style !== $currentStyle) { - $this->emitError(new Error( - 'Cannot mix bracketed namespace declarations with unbracketed namespace declarations', - $stmt->getLine() // Avoid marking the entire namespace as an error - )); - // Treat like semicolon style for namespace normalization - return 'semicolon'; - } - continue; - } - - /* declare(), __halt_compiler() and nops can be used before a namespace declaration */ - if ($stmt instanceof Node\Stmt\Declare_ - || $stmt instanceof Node\Stmt\HaltCompiler - || $stmt instanceof Node\Stmt\Nop) { - continue; - } - - /* There may be a hashbang line at the very start of the file */ - if ($i == 0 && $stmt instanceof Node\Stmt\InlineHTML && preg_match('/\A#!.*\r?\n\z/', $stmt->value)) { - continue; - } - - /* Everything else if forbidden before namespace declarations */ - $hasNotAllowedStmts = true; - } - return $style; - } - - protected function handleBuiltinTypes(Name $name) { - $scalarTypes = [ - 'bool' => true, - 'int' => true, - 'float' => true, - 'string' => true, - 'iterable' => true, - 'void' => true, - 'object' => true, - ]; - - if (!$name->isUnqualified()) { - return $name; - } - - $lowerName = strtolower($name->toString()); - return isset($scalarTypes[$lowerName]) ? $lowerName : $name; - } - - protected static $specialNames = array( - 'self' => true, - 'parent' => true, - 'static' => true, - ); - - protected function getAttributesAt($pos) { - return $this->startAttributeStack[$pos] + $this->endAttributeStack[$pos]; - } - - protected function parseLNumber($str, $attributes, $allowInvalidOctal = false) { - try { - return LNumber::fromString($str, $attributes, $allowInvalidOctal); - } catch (Error $error) { - $this->emitError($error); - // Use dummy value - return new LNumber(0, $attributes); - } - } - - protected function parseNumString($str, $attributes) { - if (!preg_match('/^(?:0|-?[1-9][0-9]*)$/', $str)) { - return new String_($str, $attributes); - } - - $num = +$str; - if (!is_int($num)) { - return new String_($str, $attributes); - } - - return new LNumber($num, $attributes); - } - - protected function checkModifier($a, $b, $modifierPos) { - // Jumping through some hoops here because verifyModifier() is also used elsewhere - try { - Class_::verifyModifier($a, $b); - } catch (Error $error) { - $error->setAttributes($this->getAttributesAt($modifierPos)); - $this->emitError($error); - } - } - - protected function checkParam(Param $node) { - if ($node->variadic && null !== $node->default) { - $this->emitError(new Error( - 'Variadic parameter cannot have a default value', - $node->default->getAttributes() - )); - } - } - - protected function checkTryCatch(TryCatch $node) { - if (empty($node->catches) && null === $node->finally) { - $this->emitError(new Error( - 'Cannot use try without catch or finally', $node->getAttributes() - )); - } - } - - protected function checkNamespace(Namespace_ $node) { - if (isset(self::$specialNames[strtolower($node->name)])) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as namespace name', $node->name), - $node->name->getAttributes() - )); - } - - if (null !== $node->stmts) { - foreach ($node->stmts as $stmt) { - if ($stmt instanceof Namespace_) { - $this->emitError(new Error( - 'Namespace declarations cannot be nested', $stmt->getAttributes() - )); - } - } - } - } - - protected function checkClass(Class_ $node, $namePos) { - if (null !== $node->name && isset(self::$specialNames[strtolower($node->name)])) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as class name as it is reserved', $node->name), - $this->getAttributesAt($namePos) - )); - } - - if (isset(self::$specialNames[strtolower($node->extends)])) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as class name as it is reserved', $node->extends), - $node->extends->getAttributes() - )); - } - - foreach ($node->implements as $interface) { - if (isset(self::$specialNames[strtolower($interface)])) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as interface name as it is reserved', $interface), - $interface->getAttributes() - )); - } - } - } - - protected function checkInterface(Interface_ $node, $namePos) { - if (null !== $node->name && isset(self::$specialNames[strtolower($node->name)])) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as class name as it is reserved', $node->name), - $this->getAttributesAt($namePos) - )); - } - - foreach ($node->extends as $interface) { - if (isset(self::$specialNames[strtolower($interface)])) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as interface name as it is reserved', $interface), - $interface->getAttributes() - )); - } - } - } - - protected function checkClassMethod(ClassMethod $node, $modifierPos) { - if ($node->flags & Class_::MODIFIER_STATIC) { - switch (strtolower($node->name)) { - case '__construct': - $this->emitError(new Error( - sprintf('Constructor %s() cannot be static', $node->name), - $this->getAttributesAt($modifierPos))); - break; - case '__destruct': - $this->emitError(new Error( - sprintf('Destructor %s() cannot be static', $node->name), - $this->getAttributesAt($modifierPos))); - break; - case '__clone': - $this->emitError(new Error( - sprintf('Clone method %s() cannot be static', $node->name), - $this->getAttributesAt($modifierPos))); - break; - } - } - } - - protected function checkClassConst(ClassConst $node, $modifierPos) { - if ($node->flags & Class_::MODIFIER_STATIC) { - $this->emitError(new Error( - "Cannot use 'static' as constant modifier", - $this->getAttributesAt($modifierPos))); - } - if ($node->flags & Class_::MODIFIER_ABSTRACT) { - $this->emitError(new Error( - "Cannot use 'abstract' as constant modifier", - $this->getAttributesAt($modifierPos))); - } - if ($node->flags & Class_::MODIFIER_FINAL) { - $this->emitError(new Error( - "Cannot use 'final' as constant modifier", - $this->getAttributesAt($modifierPos))); - } - } - - protected function checkProperty(Property $node, $modifierPos) { - if ($node->flags & Class_::MODIFIER_ABSTRACT) { - $this->emitError(new Error('Properties cannot be declared abstract', - $this->getAttributesAt($modifierPos))); - } - - if ($node->flags & Class_::MODIFIER_FINAL) { - $this->emitError(new Error('Properties cannot be declared final', - $this->getAttributesAt($modifierPos))); - } - } - - protected function checkUseUse(UseUse $node, $namePos) { - if ('self' == strtolower($node->alias) || 'parent' == strtolower($node->alias)) { - $this->emitError(new Error( - sprintf( - 'Cannot use %s as %s because \'%2$s\' is a special class name', - $node->name, $node->alias - ), - $this->getAttributesAt($namePos) - )); - } - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php b/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php deleted file mode 100644 index 28b9070d..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php +++ /dev/null @@ -1,43 +0,0 @@ -type ? $this->pType($node->type) . ' ' : '') - . ($node->byRef ? '&' : '') - . ($node->variadic ? '...' : '') - . '$' . $node->name - . ($node->default ? ' = ' . $this->p($node->default) : ''); - } - - protected function pArg(Node\Arg $node) { - return ($node->byRef ? '&' : '') . ($node->unpack ? '...' : '') . $this->p($node->value); - } - - protected function pConst(Node\Const_ $node) { - return $node->name . ' = ' . $this->p($node->value); - } - - protected function pNullableType(Node\NullableType $node) { - return '?' . $this->pType($node->type); - } - - // Names - - protected function pName(Name $node) { - return implode('\\', $node->parts); - } - - protected function pName_FullyQualified(Name\FullyQualified $node) { - return '\\' . implode('\\', $node->parts); - } - - protected function pName_Relative(Name\Relative $node) { - return 'namespace\\' . implode('\\', $node->parts); - } - - // Magic Constants - - protected function pScalar_MagicConst_Class(MagicConst\Class_ $node) { - return '__CLASS__'; - } - - protected function pScalar_MagicConst_Dir(MagicConst\Dir $node) { - return '__DIR__'; - } - - protected function pScalar_MagicConst_File(MagicConst\File $node) { - return '__FILE__'; - } - - protected function pScalar_MagicConst_Function(MagicConst\Function_ $node) { - return '__FUNCTION__'; - } - - protected function pScalar_MagicConst_Line(MagicConst\Line $node) { - return '__LINE__'; - } - - protected function pScalar_MagicConst_Method(MagicConst\Method $node) { - return '__METHOD__'; - } - - protected function pScalar_MagicConst_Namespace(MagicConst\Namespace_ $node) { - return '__NAMESPACE__'; - } - - protected function pScalar_MagicConst_Trait(MagicConst\Trait_ $node) { - return '__TRAIT__'; - } - - // Scalars - - protected function pScalar_String(Scalar\String_ $node) { - $kind = $node->getAttribute('kind', Scalar\String_::KIND_SINGLE_QUOTED); - switch ($kind) { - case Scalar\String_::KIND_NOWDOC: - $label = $node->getAttribute('docLabel'); - if ($label && !$this->containsEndLabel($node->value, $label)) { - if ($node->value === '') { - return $this->pNoIndent("<<<'$label'\n$label") . $this->docStringEndToken; - } - - return $this->pNoIndent("<<<'$label'\n$node->value\n$label") - . $this->docStringEndToken; - } - /* break missing intentionally */ - case Scalar\String_::KIND_SINGLE_QUOTED: - return '\'' . $this->pNoIndent(addcslashes($node->value, '\'\\')) . '\''; - case Scalar\String_::KIND_HEREDOC: - $label = $node->getAttribute('docLabel'); - if ($label && !$this->containsEndLabel($node->value, $label)) { - if ($node->value === '') { - return $this->pNoIndent("<<<$label\n$label") . $this->docStringEndToken; - } - - $escaped = $this->escapeString($node->value, null); - return $this->pNoIndent("<<<$label\n" . $escaped ."\n$label") - . $this->docStringEndToken; - } - /* break missing intentionally */ - case Scalar\String_::KIND_DOUBLE_QUOTED: - return '"' . $this->escapeString($node->value, '"') . '"'; - } - throw new \Exception('Invalid string kind'); - } - - protected function pScalar_Encapsed(Scalar\Encapsed $node) { - if ($node->getAttribute('kind') === Scalar\String_::KIND_HEREDOC) { - $label = $node->getAttribute('docLabel'); - if ($label && !$this->encapsedContainsEndLabel($node->parts, $label)) { - if (count($node->parts) === 1 - && $node->parts[0] instanceof Scalar\EncapsedStringPart - && $node->parts[0]->value === '' - ) { - return $this->pNoIndent("<<<$label\n$label") . $this->docStringEndToken; - } - - return $this->pNoIndent( - "<<<$label\n" . $this->pEncapsList($node->parts, null) . "\n$label" - ) . $this->docStringEndToken; - } - } - return '"' . $this->pEncapsList($node->parts, '"') . '"'; - } - - protected function pScalar_LNumber(Scalar\LNumber $node) { - if ($node->value === -\PHP_INT_MAX-1) { - // PHP_INT_MIN cannot be represented as a literal, - // because the sign is not part of the literal - return '(-' . \PHP_INT_MAX . '-1)'; - } - - $kind = $node->getAttribute('kind', Scalar\LNumber::KIND_DEC); - if (Scalar\LNumber::KIND_DEC === $kind) { - return (string) $node->value; - } - - $sign = $node->value < 0 ? '-' : ''; - $str = (string) $node->value; - switch ($kind) { - case Scalar\LNumber::KIND_BIN: - return $sign . '0b' . base_convert($str, 10, 2); - case Scalar\LNumber::KIND_OCT: - return $sign . '0' . base_convert($str, 10, 8); - case Scalar\LNumber::KIND_HEX: - return $sign . '0x' . base_convert($str, 10, 16); - } - throw new \Exception('Invalid number kind'); - } - - protected function pScalar_DNumber(Scalar\DNumber $node) { - if (!is_finite($node->value)) { - if ($node->value === \INF) { - return '\INF'; - } elseif ($node->value === -\INF) { - return '-\INF'; - } else { - return '\NAN'; - } - } - - // Try to find a short full-precision representation - $stringValue = sprintf('%.16G', $node->value); - if ($node->value !== (double) $stringValue) { - $stringValue = sprintf('%.17G', $node->value); - } - - // %G is locale dependent and there exists no locale-independent alternative. We don't want - // mess with switching locales here, so let's assume that a comma is the only non-standard - // decimal separator we may encounter... - $stringValue = str_replace(',', '.', $stringValue); - - // ensure that number is really printed as float - return preg_match('/^-?[0-9]+$/', $stringValue) ? $stringValue . '.0' : $stringValue; - } - - // Assignments - - protected function pExpr_Assign(Expr\Assign $node) { - return $this->pInfixOp('Expr_Assign', $node->var, ' = ', $node->expr); - } - - protected function pExpr_AssignRef(Expr\AssignRef $node) { - return $this->pInfixOp('Expr_AssignRef', $node->var, ' =& ', $node->expr); - } - - protected function pExpr_AssignOp_Plus(AssignOp\Plus $node) { - return $this->pInfixOp('Expr_AssignOp_Plus', $node->var, ' += ', $node->expr); - } - - protected function pExpr_AssignOp_Minus(AssignOp\Minus $node) { - return $this->pInfixOp('Expr_AssignOp_Minus', $node->var, ' -= ', $node->expr); - } - - protected function pExpr_AssignOp_Mul(AssignOp\Mul $node) { - return $this->pInfixOp('Expr_AssignOp_Mul', $node->var, ' *= ', $node->expr); - } - - protected function pExpr_AssignOp_Div(AssignOp\Div $node) { - return $this->pInfixOp('Expr_AssignOp_Div', $node->var, ' /= ', $node->expr); - } - - protected function pExpr_AssignOp_Concat(AssignOp\Concat $node) { - return $this->pInfixOp('Expr_AssignOp_Concat', $node->var, ' .= ', $node->expr); - } - - protected function pExpr_AssignOp_Mod(AssignOp\Mod $node) { - return $this->pInfixOp('Expr_AssignOp_Mod', $node->var, ' %= ', $node->expr); - } - - protected function pExpr_AssignOp_BitwiseAnd(AssignOp\BitwiseAnd $node) { - return $this->pInfixOp('Expr_AssignOp_BitwiseAnd', $node->var, ' &= ', $node->expr); - } - - protected function pExpr_AssignOp_BitwiseOr(AssignOp\BitwiseOr $node) { - return $this->pInfixOp('Expr_AssignOp_BitwiseOr', $node->var, ' |= ', $node->expr); - } - - protected function pExpr_AssignOp_BitwiseXor(AssignOp\BitwiseXor $node) { - return $this->pInfixOp('Expr_AssignOp_BitwiseXor', $node->var, ' ^= ', $node->expr); - } - - protected function pExpr_AssignOp_ShiftLeft(AssignOp\ShiftLeft $node) { - return $this->pInfixOp('Expr_AssignOp_ShiftLeft', $node->var, ' <<= ', $node->expr); - } - - protected function pExpr_AssignOp_ShiftRight(AssignOp\ShiftRight $node) { - return $this->pInfixOp('Expr_AssignOp_ShiftRight', $node->var, ' >>= ', $node->expr); - } - - protected function pExpr_AssignOp_Pow(AssignOp\Pow $node) { - return $this->pInfixOp('Expr_AssignOp_Pow', $node->var, ' **= ', $node->expr); - } - - // Binary expressions - - protected function pExpr_BinaryOp_Plus(BinaryOp\Plus $node) { - return $this->pInfixOp('Expr_BinaryOp_Plus', $node->left, ' + ', $node->right); - } - - protected function pExpr_BinaryOp_Minus(BinaryOp\Minus $node) { - return $this->pInfixOp('Expr_BinaryOp_Minus', $node->left, ' - ', $node->right); - } - - protected function pExpr_BinaryOp_Mul(BinaryOp\Mul $node) { - return $this->pInfixOp('Expr_BinaryOp_Mul', $node->left, ' * ', $node->right); - } - - protected function pExpr_BinaryOp_Div(BinaryOp\Div $node) { - return $this->pInfixOp('Expr_BinaryOp_Div', $node->left, ' / ', $node->right); - } - - protected function pExpr_BinaryOp_Concat(BinaryOp\Concat $node) { - return $this->pInfixOp('Expr_BinaryOp_Concat', $node->left, ' . ', $node->right); - } - - protected function pExpr_BinaryOp_Mod(BinaryOp\Mod $node) { - return $this->pInfixOp('Expr_BinaryOp_Mod', $node->left, ' % ', $node->right); - } - - protected function pExpr_BinaryOp_BooleanAnd(BinaryOp\BooleanAnd $node) { - return $this->pInfixOp('Expr_BinaryOp_BooleanAnd', $node->left, ' && ', $node->right); - } - - protected function pExpr_BinaryOp_BooleanOr(BinaryOp\BooleanOr $node) { - return $this->pInfixOp('Expr_BinaryOp_BooleanOr', $node->left, ' || ', $node->right); - } - - protected function pExpr_BinaryOp_BitwiseAnd(BinaryOp\BitwiseAnd $node) { - return $this->pInfixOp('Expr_BinaryOp_BitwiseAnd', $node->left, ' & ', $node->right); - } - - protected function pExpr_BinaryOp_BitwiseOr(BinaryOp\BitwiseOr $node) { - return $this->pInfixOp('Expr_BinaryOp_BitwiseOr', $node->left, ' | ', $node->right); - } - - protected function pExpr_BinaryOp_BitwiseXor(BinaryOp\BitwiseXor $node) { - return $this->pInfixOp('Expr_BinaryOp_BitwiseXor', $node->left, ' ^ ', $node->right); - } - - protected function pExpr_BinaryOp_ShiftLeft(BinaryOp\ShiftLeft $node) { - return $this->pInfixOp('Expr_BinaryOp_ShiftLeft', $node->left, ' << ', $node->right); - } - - protected function pExpr_BinaryOp_ShiftRight(BinaryOp\ShiftRight $node) { - return $this->pInfixOp('Expr_BinaryOp_ShiftRight', $node->left, ' >> ', $node->right); - } - - protected function pExpr_BinaryOp_Pow(BinaryOp\Pow $node) { - return $this->pInfixOp('Expr_BinaryOp_Pow', $node->left, ' ** ', $node->right); - } - - protected function pExpr_BinaryOp_LogicalAnd(BinaryOp\LogicalAnd $node) { - return $this->pInfixOp('Expr_BinaryOp_LogicalAnd', $node->left, ' and ', $node->right); - } - - protected function pExpr_BinaryOp_LogicalOr(BinaryOp\LogicalOr $node) { - return $this->pInfixOp('Expr_BinaryOp_LogicalOr', $node->left, ' or ', $node->right); - } - - protected function pExpr_BinaryOp_LogicalXor(BinaryOp\LogicalXor $node) { - return $this->pInfixOp('Expr_BinaryOp_LogicalXor', $node->left, ' xor ', $node->right); - } - - protected function pExpr_BinaryOp_Equal(BinaryOp\Equal $node) { - return $this->pInfixOp('Expr_BinaryOp_Equal', $node->left, ' == ', $node->right); - } - - protected function pExpr_BinaryOp_NotEqual(BinaryOp\NotEqual $node) { - return $this->pInfixOp('Expr_BinaryOp_NotEqual', $node->left, ' != ', $node->right); - } - - protected function pExpr_BinaryOp_Identical(BinaryOp\Identical $node) { - return $this->pInfixOp('Expr_BinaryOp_Identical', $node->left, ' === ', $node->right); - } - - protected function pExpr_BinaryOp_NotIdentical(BinaryOp\NotIdentical $node) { - return $this->pInfixOp('Expr_BinaryOp_NotIdentical', $node->left, ' !== ', $node->right); - } - - protected function pExpr_BinaryOp_Spaceship(BinaryOp\Spaceship $node) { - return $this->pInfixOp('Expr_BinaryOp_Spaceship', $node->left, ' <=> ', $node->right); - } - - protected function pExpr_BinaryOp_Greater(BinaryOp\Greater $node) { - return $this->pInfixOp('Expr_BinaryOp_Greater', $node->left, ' > ', $node->right); - } - - protected function pExpr_BinaryOp_GreaterOrEqual(BinaryOp\GreaterOrEqual $node) { - return $this->pInfixOp('Expr_BinaryOp_GreaterOrEqual', $node->left, ' >= ', $node->right); - } - - protected function pExpr_BinaryOp_Smaller(BinaryOp\Smaller $node) { - return $this->pInfixOp('Expr_BinaryOp_Smaller', $node->left, ' < ', $node->right); - } - - protected function pExpr_BinaryOp_SmallerOrEqual(BinaryOp\SmallerOrEqual $node) { - return $this->pInfixOp('Expr_BinaryOp_SmallerOrEqual', $node->left, ' <= ', $node->right); - } - - protected function pExpr_BinaryOp_Coalesce(BinaryOp\Coalesce $node) { - return $this->pInfixOp('Expr_BinaryOp_Coalesce', $node->left, ' ?? ', $node->right); - } - - protected function pExpr_Instanceof(Expr\Instanceof_ $node) { - return $this->pInfixOp('Expr_Instanceof', $node->expr, ' instanceof ', $node->class); - } - - // Unary expressions - - protected function pExpr_BooleanNot(Expr\BooleanNot $node) { - return $this->pPrefixOp('Expr_BooleanNot', '!', $node->expr); - } - - protected function pExpr_BitwiseNot(Expr\BitwiseNot $node) { - return $this->pPrefixOp('Expr_BitwiseNot', '~', $node->expr); - } - - protected function pExpr_UnaryMinus(Expr\UnaryMinus $node) { - if ($node->expr instanceof Expr\UnaryMinus || $node->expr instanceof Expr\PreDec) { - // Enforce -(-$expr) instead of --$expr - return '-(' . $this->p($node->expr) . ')'; - } - return $this->pPrefixOp('Expr_UnaryMinus', '-', $node->expr); - } - - protected function pExpr_UnaryPlus(Expr\UnaryPlus $node) { - if ($node->expr instanceof Expr\UnaryPlus || $node->expr instanceof Expr\PreInc) { - // Enforce +(+$expr) instead of ++$expr - return '+(' . $this->p($node->expr) . ')'; - } - return $this->pPrefixOp('Expr_UnaryPlus', '+', $node->expr); - } - - protected function pExpr_PreInc(Expr\PreInc $node) { - return $this->pPrefixOp('Expr_PreInc', '++', $node->var); - } - - protected function pExpr_PreDec(Expr\PreDec $node) { - return $this->pPrefixOp('Expr_PreDec', '--', $node->var); - } - - protected function pExpr_PostInc(Expr\PostInc $node) { - return $this->pPostfixOp('Expr_PostInc', $node->var, '++'); - } - - protected function pExpr_PostDec(Expr\PostDec $node) { - return $this->pPostfixOp('Expr_PostDec', $node->var, '--'); - } - - protected function pExpr_ErrorSuppress(Expr\ErrorSuppress $node) { - return $this->pPrefixOp('Expr_ErrorSuppress', '@', $node->expr); - } - - protected function pExpr_YieldFrom(Expr\YieldFrom $node) { - return $this->pPrefixOp('Expr_YieldFrom', 'yield from ', $node->expr); - } - - protected function pExpr_Print(Expr\Print_ $node) { - return $this->pPrefixOp('Expr_Print', 'print ', $node->expr); - } - - // Casts - - protected function pExpr_Cast_Int(Cast\Int_ $node) { - return $this->pPrefixOp('Expr_Cast_Int', '(int) ', $node->expr); - } - - protected function pExpr_Cast_Double(Cast\Double $node) { - return $this->pPrefixOp('Expr_Cast_Double', '(double) ', $node->expr); - } - - protected function pExpr_Cast_String(Cast\String_ $node) { - return $this->pPrefixOp('Expr_Cast_String', '(string) ', $node->expr); - } - - protected function pExpr_Cast_Array(Cast\Array_ $node) { - return $this->pPrefixOp('Expr_Cast_Array', '(array) ', $node->expr); - } - - protected function pExpr_Cast_Object(Cast\Object_ $node) { - return $this->pPrefixOp('Expr_Cast_Object', '(object) ', $node->expr); - } - - protected function pExpr_Cast_Bool(Cast\Bool_ $node) { - return $this->pPrefixOp('Expr_Cast_Bool', '(bool) ', $node->expr); - } - - protected function pExpr_Cast_Unset(Cast\Unset_ $node) { - return $this->pPrefixOp('Expr_Cast_Unset', '(unset) ', $node->expr); - } - - // Function calls and similar constructs - - protected function pExpr_FuncCall(Expr\FuncCall $node) { - return $this->pCallLhs($node->name) - . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_MethodCall(Expr\MethodCall $node) { - return $this->pDereferenceLhs($node->var) . '->' . $this->pObjectProperty($node->name) - . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_StaticCall(Expr\StaticCall $node) { - return $this->pDereferenceLhs($node->class) . '::' - . ($node->name instanceof Expr - ? ($node->name instanceof Expr\Variable - ? $this->p($node->name) - : '{' . $this->p($node->name) . '}') - : $node->name) - . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_Empty(Expr\Empty_ $node) { - return 'empty(' . $this->p($node->expr) . ')'; - } - - protected function pExpr_Isset(Expr\Isset_ $node) { - return 'isset(' . $this->pCommaSeparated($node->vars) . ')'; - } - - protected function pExpr_Eval(Expr\Eval_ $node) { - return 'eval(' . $this->p($node->expr) . ')'; - } - - protected function pExpr_Include(Expr\Include_ $node) { - static $map = array( - Expr\Include_::TYPE_INCLUDE => 'include', - Expr\Include_::TYPE_INCLUDE_ONCE => 'include_once', - Expr\Include_::TYPE_REQUIRE => 'require', - Expr\Include_::TYPE_REQUIRE_ONCE => 'require_once', - ); - - return $map[$node->type] . ' ' . $this->p($node->expr); - } - - protected function pExpr_List(Expr\List_ $node) { - return 'list(' . $this->pCommaSeparated($node->items) . ')'; - } - - // Other - - protected function pExpr_Error(Expr\Error $node) { - throw new \LogicException('Cannot pretty-print AST with Error nodes'); - } - - protected function pExpr_Variable(Expr\Variable $node) { - if ($node->name instanceof Expr) { - return '${' . $this->p($node->name) . '}'; - } else { - return '$' . $node->name; - } - } - - protected function pExpr_Array(Expr\Array_ $node) { - $syntax = $node->getAttribute('kind', - $this->options['shortArraySyntax'] ? Expr\Array_::KIND_SHORT : Expr\Array_::KIND_LONG); - if ($syntax === Expr\Array_::KIND_SHORT) { - return '[' . $this->pMaybeMultiline($node->items, true) . ']'; - } else { - return 'array(' . $this->pMaybeMultiline($node->items, true) . ')'; - } - } - - protected function pExpr_ArrayItem(Expr\ArrayItem $node) { - return (null !== $node->key ? $this->p($node->key) . ' => ' : '') - . ($node->byRef ? '&' : '') . $this->p($node->value); - } - - protected function pExpr_ArrayDimFetch(Expr\ArrayDimFetch $node) { - return $this->pDereferenceLhs($node->var) - . '[' . (null !== $node->dim ? $this->p($node->dim) : '') . ']'; - } - - protected function pExpr_ConstFetch(Expr\ConstFetch $node) { - return $this->p($node->name); - } - - protected function pExpr_ClassConstFetch(Expr\ClassConstFetch $node) { - return $this->p($node->class) . '::' - . (is_string($node->name) ? $node->name : $this->p($node->name)); - } - - protected function pExpr_PropertyFetch(Expr\PropertyFetch $node) { - return $this->pDereferenceLhs($node->var) . '->' . $this->pObjectProperty($node->name); - } - - protected function pExpr_StaticPropertyFetch(Expr\StaticPropertyFetch $node) { - return $this->pDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); - } - - protected function pExpr_ShellExec(Expr\ShellExec $node) { - return '`' . $this->pEncapsList($node->parts, '`') . '`'; - } - - protected function pExpr_Closure(Expr\Closure $node) { - return ($node->static ? 'static ' : '') - . 'function ' . ($node->byRef ? '&' : '') - . '(' . $this->pCommaSeparated($node->params) . ')' - . (!empty($node->uses) ? ' use(' . $this->pCommaSeparated($node->uses) . ')': '') - . (null !== $node->returnType ? ' : ' . $this->pType($node->returnType) : '') - . ' {' . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pExpr_ClosureUse(Expr\ClosureUse $node) { - return ($node->byRef ? '&' : '') . '$' . $node->var; - } - - protected function pExpr_New(Expr\New_ $node) { - if ($node->class instanceof Stmt\Class_) { - $args = $node->args ? '(' . $this->pMaybeMultiline($node->args) . ')' : ''; - return 'new ' . $this->pClassCommon($node->class, $args); - } - return 'new ' . $this->p($node->class) . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_Clone(Expr\Clone_ $node) { - return 'clone ' . $this->p($node->expr); - } - - protected function pExpr_Ternary(Expr\Ternary $node) { - // a bit of cheating: we treat the ternary as a binary op where the ?...: part is the operator. - // this is okay because the part between ? and : never needs parentheses. - return $this->pInfixOp('Expr_Ternary', - $node->cond, ' ?' . (null !== $node->if ? ' ' . $this->p($node->if) . ' ' : '') . ': ', $node->else - ); - } - - protected function pExpr_Exit(Expr\Exit_ $node) { - $kind = $node->getAttribute('kind', Expr\Exit_::KIND_DIE); - return ($kind === Expr\Exit_::KIND_EXIT ? 'exit' : 'die') - . (null !== $node->expr ? '(' . $this->p($node->expr) . ')' : ''); - } - - protected function pExpr_Yield(Expr\Yield_ $node) { - if ($node->value === null) { - return 'yield'; - } else { - // this is a bit ugly, but currently there is no way to detect whether the parentheses are necessary - return '(yield ' - . ($node->key !== null ? $this->p($node->key) . ' => ' : '') - . $this->p($node->value) - . ')'; - } - } - - // Declarations - - protected function pStmt_Namespace(Stmt\Namespace_ $node) { - if ($this->canUseSemicolonNamespaces) { - return 'namespace ' . $this->p($node->name) . ';' . "\n" . $this->pStmts($node->stmts, false); - } else { - return 'namespace' . (null !== $node->name ? ' ' . $this->p($node->name) : '') - . ' {' . $this->pStmts($node->stmts) . "\n" . '}'; - } - } - - protected function pStmt_Use(Stmt\Use_ $node) { - return 'use ' . $this->pUseType($node->type) - . $this->pCommaSeparated($node->uses) . ';'; - } - - protected function pStmt_GroupUse(Stmt\GroupUse $node) { - return 'use ' . $this->pUseType($node->type) . $this->pName($node->prefix) - . '\{' . $this->pCommaSeparated($node->uses) . '};'; - } - - protected function pStmt_UseUse(Stmt\UseUse $node) { - return $this->pUseType($node->type) . $this->p($node->name) - . ($node->name->getLast() !== $node->alias ? ' as ' . $node->alias : ''); - } - - protected function pUseType($type) { - return $type === Stmt\Use_::TYPE_FUNCTION ? 'function ' - : ($type === Stmt\Use_::TYPE_CONSTANT ? 'const ' : ''); - } - - protected function pStmt_Interface(Stmt\Interface_ $node) { - return 'interface ' . $node->name - . (!empty($node->extends) ? ' extends ' . $this->pCommaSeparated($node->extends) : '') - . "\n" . '{' . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_Class(Stmt\Class_ $node) { - return $this->pClassCommon($node, ' ' . $node->name); - } - - protected function pStmt_Trait(Stmt\Trait_ $node) { - return 'trait ' . $node->name - . "\n" . '{' . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_TraitUse(Stmt\TraitUse $node) { - return 'use ' . $this->pCommaSeparated($node->traits) - . (empty($node->adaptations) - ? ';' - : ' {' . $this->pStmts($node->adaptations) . "\n" . '}'); - } - - protected function pStmt_TraitUseAdaptation_Precedence(Stmt\TraitUseAdaptation\Precedence $node) { - return $this->p($node->trait) . '::' . $node->method - . ' insteadof ' . $this->pCommaSeparated($node->insteadof) . ';'; - } - - protected function pStmt_TraitUseAdaptation_Alias(Stmt\TraitUseAdaptation\Alias $node) { - return (null !== $node->trait ? $this->p($node->trait) . '::' : '') - . $node->method . ' as' - . (null !== $node->newModifier ? ' ' . rtrim($this->pModifiers($node->newModifier), ' ') : '') - . (null !== $node->newName ? ' ' . $node->newName : '') - . ';'; - } - - protected function pStmt_Property(Stmt\Property $node) { - return (0 === $node->flags ? 'var ' : $this->pModifiers($node->flags)) . $this->pCommaSeparated($node->props) . ';'; - } - - protected function pStmt_PropertyProperty(Stmt\PropertyProperty $node) { - return '$' . $node->name - . (null !== $node->default ? ' = ' . $this->p($node->default) : ''); - } - - protected function pStmt_ClassMethod(Stmt\ClassMethod $node) { - return $this->pModifiers($node->flags) - . 'function ' . ($node->byRef ? '&' : '') . $node->name - . '(' . $this->pCommaSeparated($node->params) . ')' - . (null !== $node->returnType ? ' : ' . $this->pType($node->returnType) : '') - . (null !== $node->stmts - ? "\n" . '{' . $this->pStmts($node->stmts) . "\n" . '}' - : ';'); - } - - protected function pStmt_ClassConst(Stmt\ClassConst $node) { - return $this->pModifiers($node->flags) - . 'const ' . $this->pCommaSeparated($node->consts) . ';'; - } - - protected function pStmt_Function(Stmt\Function_ $node) { - return 'function ' . ($node->byRef ? '&' : '') . $node->name - . '(' . $this->pCommaSeparated($node->params) . ')' - . (null !== $node->returnType ? ' : ' . $this->pType($node->returnType) : '') - . "\n" . '{' . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_Const(Stmt\Const_ $node) { - return 'const ' . $this->pCommaSeparated($node->consts) . ';'; - } - - protected function pStmt_Declare(Stmt\Declare_ $node) { - return 'declare (' . $this->pCommaSeparated($node->declares) . ')' - . (null !== $node->stmts ? ' {' . $this->pStmts($node->stmts) . "\n" . '}' : ';'); - } - - protected function pStmt_DeclareDeclare(Stmt\DeclareDeclare $node) { - return $node->key . '=' . $this->p($node->value); - } - - // Control flow - - protected function pStmt_If(Stmt\If_ $node) { - return 'if (' . $this->p($node->cond) . ') {' - . $this->pStmts($node->stmts) . "\n" . '}' - . $this->pImplode($node->elseifs) - . (null !== $node->else ? $this->p($node->else) : ''); - } - - protected function pStmt_ElseIf(Stmt\ElseIf_ $node) { - return ' elseif (' . $this->p($node->cond) . ') {' - . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_Else(Stmt\Else_ $node) { - return ' else {' . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_For(Stmt\For_ $node) { - return 'for (' - . $this->pCommaSeparated($node->init) . ';' . (!empty($node->cond) ? ' ' : '') - . $this->pCommaSeparated($node->cond) . ';' . (!empty($node->loop) ? ' ' : '') - . $this->pCommaSeparated($node->loop) - . ') {' . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_Foreach(Stmt\Foreach_ $node) { - return 'foreach (' . $this->p($node->expr) . ' as ' - . (null !== $node->keyVar ? $this->p($node->keyVar) . ' => ' : '') - . ($node->byRef ? '&' : '') . $this->p($node->valueVar) . ') {' - . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_While(Stmt\While_ $node) { - return 'while (' . $this->p($node->cond) . ') {' - . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_Do(Stmt\Do_ $node) { - return 'do {' . $this->pStmts($node->stmts) . "\n" - . '} while (' . $this->p($node->cond) . ');'; - } - - protected function pStmt_Switch(Stmt\Switch_ $node) { - return 'switch (' . $this->p($node->cond) . ') {' - . $this->pStmts($node->cases) . "\n" . '}'; - } - - protected function pStmt_Case(Stmt\Case_ $node) { - return (null !== $node->cond ? 'case ' . $this->p($node->cond) : 'default') . ':' - . $this->pStmts($node->stmts); - } - - protected function pStmt_TryCatch(Stmt\TryCatch $node) { - return 'try {' . $this->pStmts($node->stmts) . "\n" . '}' - . $this->pImplode($node->catches) - . ($node->finally !== null ? $this->p($node->finally) : ''); - } - - protected function pStmt_Catch(Stmt\Catch_ $node) { - return ' catch (' . $this->pImplode($node->types, '|') . ' $' . $node->var . ') {' - . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_Finally(Stmt\Finally_ $node) { - return ' finally {' . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pStmt_Break(Stmt\Break_ $node) { - return 'break' . ($node->num !== null ? ' ' . $this->p($node->num) : '') . ';'; - } - - protected function pStmt_Continue(Stmt\Continue_ $node) { - return 'continue' . ($node->num !== null ? ' ' . $this->p($node->num) : '') . ';'; - } - - protected function pStmt_Return(Stmt\Return_ $node) { - return 'return' . (null !== $node->expr ? ' ' . $this->p($node->expr) : '') . ';'; - } - - protected function pStmt_Throw(Stmt\Throw_ $node) { - return 'throw ' . $this->p($node->expr) . ';'; - } - - protected function pStmt_Label(Stmt\Label $node) { - return $node->name . ':'; - } - - protected function pStmt_Goto(Stmt\Goto_ $node) { - return 'goto ' . $node->name . ';'; - } - - // Other - - protected function pStmt_Echo(Stmt\Echo_ $node) { - return 'echo ' . $this->pCommaSeparated($node->exprs) . ';'; - } - - protected function pStmt_Static(Stmt\Static_ $node) { - return 'static ' . $this->pCommaSeparated($node->vars) . ';'; - } - - protected function pStmt_Global(Stmt\Global_ $node) { - return 'global ' . $this->pCommaSeparated($node->vars) . ';'; - } - - protected function pStmt_StaticVar(Stmt\StaticVar $node) { - return '$' . $node->name - . (null !== $node->default ? ' = ' . $this->p($node->default) : ''); - } - - protected function pStmt_Unset(Stmt\Unset_ $node) { - return 'unset(' . $this->pCommaSeparated($node->vars) . ');'; - } - - protected function pStmt_InlineHTML(Stmt\InlineHTML $node) { - $newline = $node->getAttribute('hasLeadingNewline', true) ? "\n" : ''; - return '?>' . $this->pNoIndent($newline . $node->value) . 'remaining; - } - - protected function pStmt_Nop(Stmt\Nop $node) { - return ''; - } - - // Helpers - - protected function pType($node) { - return is_string($node) ? $node : $this->p($node); - } - - protected function pClassCommon(Stmt\Class_ $node, $afterClassToken) { - return $this->pModifiers($node->flags) - . 'class' . $afterClassToken - . (null !== $node->extends ? ' extends ' . $this->p($node->extends) : '') - . (!empty($node->implements) ? ' implements ' . $this->pCommaSeparated($node->implements) : '') - . "\n" . '{' . $this->pStmts($node->stmts) . "\n" . '}'; - } - - protected function pObjectProperty($node) { - if ($node instanceof Expr) { - return '{' . $this->p($node) . '}'; - } else { - return $node; - } - } - - protected function pModifiers($modifiers) { - return ($modifiers & Stmt\Class_::MODIFIER_PUBLIC ? 'public ' : '') - . ($modifiers & Stmt\Class_::MODIFIER_PROTECTED ? 'protected ' : '') - . ($modifiers & Stmt\Class_::MODIFIER_PRIVATE ? 'private ' : '') - . ($modifiers & Stmt\Class_::MODIFIER_STATIC ? 'static ' : '') - . ($modifiers & Stmt\Class_::MODIFIER_ABSTRACT ? 'abstract ' : '') - . ($modifiers & Stmt\Class_::MODIFIER_FINAL ? 'final ' : ''); - } - - protected function pEncapsList(array $encapsList, $quote) { - $return = ''; - foreach ($encapsList as $element) { - if ($element instanceof Scalar\EncapsedStringPart) { - $return .= $this->escapeString($element->value, $quote); - } else { - $return .= '{' . $this->p($element) . '}'; - } - } - - return $return; - } - - protected function escapeString($string, $quote) { - if (null === $quote) { - // For doc strings, don't escape newlines - $escaped = addcslashes($string, "\t\f\v$\\"); - } else { - $escaped = addcslashes($string, "\n\r\t\f\v$" . $quote . "\\"); - } - - // Escape other control characters - return preg_replace_callback('/([\0-\10\16-\37])(?=([0-7]?))/', function ($matches) { - $oct = decoct(ord($matches[1])); - if ($matches[2] !== '') { - // If there is a trailing digit, use the full three character form - return '\\' . str_pad($oct, 3, '0', STR_PAD_LEFT); - } - return '\\' . $oct; - }, $escaped); - } - - protected function containsEndLabel($string, $label, $atStart = true, $atEnd = true) { - $start = $atStart ? '(?:^|[\r\n])' : '[\r\n]'; - $end = $atEnd ? '(?:$|[;\r\n])' : '[;\r\n]'; - return false !== strpos($string, $label) - && preg_match('/' . $start . $label . $end . '/', $string); - } - - protected function encapsedContainsEndLabel(array $parts, $label) { - foreach ($parts as $i => $part) { - $atStart = $i === 0; - $atEnd = $i === count($parts) - 1; - if ($part instanceof Scalar\EncapsedStringPart - && $this->containsEndLabel($part->value, $label, $atStart, $atEnd) - ) { - return true; - } - } - return false; - } - - protected function pDereferenceLhs(Node $node) { - if ($node instanceof Expr\Variable - || $node instanceof Name - || $node instanceof Expr\ArrayDimFetch - || $node instanceof Expr\PropertyFetch - || $node instanceof Expr\StaticPropertyFetch - || $node instanceof Expr\FuncCall - || $node instanceof Expr\MethodCall - || $node instanceof Expr\StaticCall - || $node instanceof Expr\Array_ - || $node instanceof Scalar\String_ - || $node instanceof Expr\ConstFetch - || $node instanceof Expr\ClassConstFetch - ) { - return $this->p($node); - } else { - return '(' . $this->p($node) . ')'; - } - } - - protected function pCallLhs(Node $node) { - if ($node instanceof Name - || $node instanceof Expr\Variable - || $node instanceof Expr\ArrayDimFetch - || $node instanceof Expr\FuncCall - || $node instanceof Expr\MethodCall - || $node instanceof Expr\StaticCall - || $node instanceof Expr\Array_ - ) { - return $this->p($node); - } else { - return '(' . $this->p($node) . ')'; - } - } - - private function hasNodeWithComments(array $nodes) { - foreach ($nodes as $node) { - if ($node && $node->getAttribute('comments')) { - return true; - } - } - return false; - } - - private function pMaybeMultiline(array $nodes, $trailingComma = false) { - if (!$this->hasNodeWithComments($nodes)) { - return $this->pCommaSeparated($nodes); - } else { - return $this->pCommaSeparatedMultiline($nodes, $trailingComma) . "\n"; - } - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php deleted file mode 100644 index 24bae593..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ /dev/null @@ -1,348 +0,0 @@ - array( 0, 1), - 'Expr_BitwiseNot' => array( 10, 1), - 'Expr_PreInc' => array( 10, 1), - 'Expr_PreDec' => array( 10, 1), - 'Expr_PostInc' => array( 10, -1), - 'Expr_PostDec' => array( 10, -1), - 'Expr_UnaryPlus' => array( 10, 1), - 'Expr_UnaryMinus' => array( 10, 1), - 'Expr_Cast_Int' => array( 10, 1), - 'Expr_Cast_Double' => array( 10, 1), - 'Expr_Cast_String' => array( 10, 1), - 'Expr_Cast_Array' => array( 10, 1), - 'Expr_Cast_Object' => array( 10, 1), - 'Expr_Cast_Bool' => array( 10, 1), - 'Expr_Cast_Unset' => array( 10, 1), - 'Expr_ErrorSuppress' => array( 10, 1), - 'Expr_Instanceof' => array( 20, 0), - 'Expr_BooleanNot' => array( 30, 1), - 'Expr_BinaryOp_Mul' => array( 40, -1), - 'Expr_BinaryOp_Div' => array( 40, -1), - 'Expr_BinaryOp_Mod' => array( 40, -1), - 'Expr_BinaryOp_Plus' => array( 50, -1), - 'Expr_BinaryOp_Minus' => array( 50, -1), - 'Expr_BinaryOp_Concat' => array( 50, -1), - 'Expr_BinaryOp_ShiftLeft' => array( 60, -1), - 'Expr_BinaryOp_ShiftRight' => array( 60, -1), - 'Expr_BinaryOp_Smaller' => array( 70, 0), - 'Expr_BinaryOp_SmallerOrEqual' => array( 70, 0), - 'Expr_BinaryOp_Greater' => array( 70, 0), - 'Expr_BinaryOp_GreaterOrEqual' => array( 70, 0), - 'Expr_BinaryOp_Equal' => array( 80, 0), - 'Expr_BinaryOp_NotEqual' => array( 80, 0), - 'Expr_BinaryOp_Identical' => array( 80, 0), - 'Expr_BinaryOp_NotIdentical' => array( 80, 0), - 'Expr_BinaryOp_Spaceship' => array( 80, 0), - 'Expr_BinaryOp_BitwiseAnd' => array( 90, -1), - 'Expr_BinaryOp_BitwiseXor' => array(100, -1), - 'Expr_BinaryOp_BitwiseOr' => array(110, -1), - 'Expr_BinaryOp_BooleanAnd' => array(120, -1), - 'Expr_BinaryOp_BooleanOr' => array(130, -1), - 'Expr_BinaryOp_Coalesce' => array(140, 1), - 'Expr_Ternary' => array(150, -1), - // parser uses %left for assignments, but they really behave as %right - 'Expr_Assign' => array(160, 1), - 'Expr_AssignRef' => array(160, 1), - 'Expr_AssignOp_Plus' => array(160, 1), - 'Expr_AssignOp_Minus' => array(160, 1), - 'Expr_AssignOp_Mul' => array(160, 1), - 'Expr_AssignOp_Div' => array(160, 1), - 'Expr_AssignOp_Concat' => array(160, 1), - 'Expr_AssignOp_Mod' => array(160, 1), - 'Expr_AssignOp_BitwiseAnd' => array(160, 1), - 'Expr_AssignOp_BitwiseOr' => array(160, 1), - 'Expr_AssignOp_BitwiseXor' => array(160, 1), - 'Expr_AssignOp_ShiftLeft' => array(160, 1), - 'Expr_AssignOp_ShiftRight' => array(160, 1), - 'Expr_AssignOp_Pow' => array(160, 1), - 'Expr_YieldFrom' => array(165, 1), - 'Expr_Print' => array(168, 1), - 'Expr_BinaryOp_LogicalAnd' => array(170, -1), - 'Expr_BinaryOp_LogicalXor' => array(180, -1), - 'Expr_BinaryOp_LogicalOr' => array(190, -1), - 'Expr_Include' => array(200, -1), - ); - - protected $noIndentToken; - protected $docStringEndToken; - protected $canUseSemicolonNamespaces; - protected $options; - - /** - * Creates a pretty printer instance using the given options. - * - * Supported options: - * * bool $shortArraySyntax = false: Whether to use [] instead of array() as the default array - * syntax, if the node does not specify a format. - * - * @param array $options Dictionary of formatting options - */ - public function __construct(array $options = []) { - $this->noIndentToken = '_NO_INDENT_' . mt_rand(); - $this->docStringEndToken = '_DOC_STRING_END_' . mt_rand(); - - $defaultOptions = ['shortArraySyntax' => false]; - $this->options = $options + $defaultOptions; - } - - /** - * Pretty prints an array of statements. - * - * @param Node[] $stmts Array of statements - * - * @return string Pretty printed statements - */ - public function prettyPrint(array $stmts) { - $this->preprocessNodes($stmts); - - return ltrim($this->handleMagicTokens($this->pStmts($stmts, false))); - } - - /** - * Pretty prints an expression. - * - * @param Expr $node Expression node - * - * @return string Pretty printed node - */ - public function prettyPrintExpr(Expr $node) { - return $this->handleMagicTokens($this->p($node)); - } - - /** - * Pretty prints a file of statements (includes the opening prettyPrint($stmts); - - if ($stmts[0] instanceof Stmt\InlineHTML) { - $p = preg_replace('/^<\?php\s+\?>\n?/', '', $p); - } - if ($stmts[count($stmts) - 1] instanceof Stmt\InlineHTML) { - $p = preg_replace('/<\?php$/', '', rtrim($p)); - } - - return $p; - } - - /** - * Preprocesses the top-level nodes to initialize pretty printer state. - * - * @param Node[] $nodes Array of nodes - */ - protected function preprocessNodes(array $nodes) { - /* We can use semicolon-namespaces unless there is a global namespace declaration */ - $this->canUseSemicolonNamespaces = true; - foreach ($nodes as $node) { - if ($node instanceof Stmt\Namespace_ && null === $node->name) { - $this->canUseSemicolonNamespaces = false; - } - } - } - - protected function handleMagicTokens($str) { - // Drop no-indent tokens - $str = str_replace($this->noIndentToken, '', $str); - - // Replace doc-string-end tokens with nothing or a newline - $str = str_replace($this->docStringEndToken . ";\n", ";\n", $str); - $str = str_replace($this->docStringEndToken, "\n", $str); - - return $str; - } - - /** - * Pretty prints an array of nodes (statements) and indents them optionally. - * - * @param Node[] $nodes Array of nodes - * @param bool $indent Whether to indent the printed nodes - * - * @return string Pretty printed statements - */ - protected function pStmts(array $nodes, $indent = true) { - $result = ''; - foreach ($nodes as $node) { - $comments = $node->getAttribute('comments', array()); - if ($comments) { - $result .= "\n" . $this->pComments($comments); - if ($node instanceof Stmt\Nop) { - continue; - } - } - - $result .= "\n" . $this->p($node) . ($node instanceof Expr ? ';' : ''); - } - - if ($indent) { - return preg_replace('~\n(?!$|' . $this->noIndentToken . ')~', "\n ", $result); - } else { - return $result; - } - } - - /** - * Pretty prints a node. - * - * @param Node $node Node to be pretty printed - * - * @return string Pretty printed node - */ - protected function p(Node $node) { - return $this->{'p' . $node->getType()}($node); - } - - protected function pInfixOp($type, Node $leftNode, $operatorString, Node $rightNode) { - list($precedence, $associativity) = $this->precedenceMap[$type]; - - return $this->pPrec($leftNode, $precedence, $associativity, -1) - . $operatorString - . $this->pPrec($rightNode, $precedence, $associativity, 1); - } - - protected function pPrefixOp($type, $operatorString, Node $node) { - list($precedence, $associativity) = $this->precedenceMap[$type]; - return $operatorString . $this->pPrec($node, $precedence, $associativity, 1); - } - - protected function pPostfixOp($type, Node $node, $operatorString) { - list($precedence, $associativity) = $this->precedenceMap[$type]; - return $this->pPrec($node, $precedence, $associativity, -1) . $operatorString; - } - - /** - * Prints an expression node with the least amount of parentheses necessary to preserve the meaning. - * - * @param Node $node Node to pretty print - * @param int $parentPrecedence Precedence of the parent operator - * @param int $parentAssociativity Associativity of parent operator - * (-1 is left, 0 is nonassoc, 1 is right) - * @param int $childPosition Position of the node relative to the operator - * (-1 is left, 1 is right) - * - * @return string The pretty printed node - */ - protected function pPrec(Node $node, $parentPrecedence, $parentAssociativity, $childPosition) { - $type = $node->getType(); - if (isset($this->precedenceMap[$type])) { - $childPrecedence = $this->precedenceMap[$type][0]; - if ($childPrecedence > $parentPrecedence - || ($parentPrecedence == $childPrecedence && $parentAssociativity != $childPosition) - ) { - return '(' . $this->p($node) . ')'; - } - } - - return $this->p($node); - } - - /** - * Pretty prints an array of nodes and implodes the printed values. - * - * @param Node[] $nodes Array of Nodes to be printed - * @param string $glue Character to implode with - * - * @return string Imploded pretty printed nodes - */ - protected function pImplode(array $nodes, $glue = '') { - $pNodes = array(); - foreach ($nodes as $node) { - if (null === $node) { - $pNodes[] = ''; - } else { - $pNodes[] = $this->p($node); - } - } - - return implode($glue, $pNodes); - } - - /** - * Pretty prints an array of nodes and implodes the printed values with commas. - * - * @param Node[] $nodes Array of Nodes to be printed - * - * @return string Comma separated pretty printed nodes - */ - protected function pCommaSeparated(array $nodes) { - return $this->pImplode($nodes, ', '); - } - - /** - * Pretty prints a comma-separated list of nodes in multiline style, including comments. - * - * The result includes a leading newline and one level of indentation (same as pStmts). - * - * @param Node[] $nodes Array of Nodes to be printed - * @param bool $trailingComma Whether to use a trailing comma - * - * @return string Comma separated pretty printed nodes in multiline style - */ - protected function pCommaSeparatedMultiline(array $nodes, $trailingComma) { - $result = ''; - $lastIdx = count($nodes) - 1; - foreach ($nodes as $idx => $node) { - if ($node !== null) { - $comments = $node->getAttribute('comments', array()); - if ($comments) { - $result .= "\n" . $this->pComments($comments); - } - - $result .= "\n" . $this->p($node); - } else { - $result .= "\n"; - } - if ($trailingComma || $idx !== $lastIdx) { - $result .= ','; - } - } - - return preg_replace('~\n(?!$|' . $this->noIndentToken . ')~', "\n ", $result); - } - - /** - * Signals the pretty printer that a string shall not be indented. - * - * @param string $string Not to be indented string - * - * @return string String marked with $this->noIndentToken's. - */ - protected function pNoIndent($string) { - return str_replace("\n", "\n" . $this->noIndentToken, $string); - } - - /** - * Prints reformatted text of the passed comments. - * - * @param Comment[] $comments List of comments - * - * @return string Reformatted text of comments - */ - protected function pComments(array $comments) { - $formattedComments = []; - - foreach ($comments as $comment) { - $formattedComments[] = $comment->getReformattedText(); - } - - return implode("\n", $formattedComments); - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Serializer.php b/vendor/nikic/php-parser/lib/PhpParser/Serializer.php deleted file mode 100644 index 1dd79066..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Serializer.php +++ /dev/null @@ -1,18 +0,0 @@ -writer = new XMLWriter; - $this->writer->openMemory(); - $this->writer->setIndent(true); - } - - public function serialize(array $nodes) { - $this->writer->flush(); - $this->writer->startDocument('1.0', 'UTF-8'); - - $this->writer->startElement('AST'); - $this->writer->writeAttribute('xmlns:node', 'http://nikic.github.com/PHPParser/XML/node'); - $this->writer->writeAttribute('xmlns:subNode', 'http://nikic.github.com/PHPParser/XML/subNode'); - $this->writer->writeAttribute('xmlns:attribute', 'http://nikic.github.com/PHPParser/XML/attribute'); - $this->writer->writeAttribute('xmlns:scalar', 'http://nikic.github.com/PHPParser/XML/scalar'); - - $this->_serialize($nodes); - - $this->writer->endElement(); - - return $this->writer->outputMemory(); - } - - protected function _serialize($node) { - if ($node instanceof Node) { - $this->writer->startElement('node:' . $node->getType()); - - foreach ($node->getAttributes() as $name => $value) { - $this->writer->startElement('attribute:' . $name); - $this->_serialize($value); - $this->writer->endElement(); - } - - foreach ($node as $name => $subNode) { - $this->writer->startElement('subNode:' . $name); - $this->_serialize($subNode); - $this->writer->endElement(); - } - - $this->writer->endElement(); - } elseif ($node instanceof Comment) { - $this->writer->startElement('comment'); - $this->writer->writeAttribute('isDocComment', $node instanceof Comment\Doc ? 'true' : 'false'); - $this->writer->writeAttribute('line', (string) $node->getLine()); - $this->writer->text($node->getText()); - $this->writer->endElement(); - } elseif (is_array($node)) { - $this->writer->startElement('scalar:array'); - foreach ($node as $subNode) { - $this->_serialize($subNode); - } - $this->writer->endElement(); - } elseif (is_string($node)) { - $this->writer->writeElement('scalar:string', $node); - } elseif (is_int($node)) { - $this->writer->writeElement('scalar:int', (string) $node); - } elseif (is_float($node)) { - // TODO Higher precision conversion? - $this->writer->writeElement('scalar:float', (string) $node); - } elseif (true === $node) { - $this->writer->writeElement('scalar:true'); - } elseif (false === $node) { - $this->writer->writeElement('scalar:false'); - } elseif (null === $node) { - $this->writer->writeElement('scalar:null'); - } else { - throw new \InvalidArgumentException('Unexpected node type'); - } - } -} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Unserializer.php b/vendor/nikic/php-parser/lib/PhpParser/Unserializer.php deleted file mode 100644 index 9c221a14..00000000 --- a/vendor/nikic/php-parser/lib/PhpParser/Unserializer.php +++ /dev/null @@ -1,18 +0,0 @@ -reader = new XMLReader; - } - - public function unserialize($string) { - $this->reader->XML($string); - - $this->reader->read(); - if ('AST' !== $this->reader->name) { - throw new DomainException('AST root element not found'); - } - - return $this->read($this->reader->depth); - } - - protected function read($depthLimit, $throw = true, &$nodeFound = null) { - $nodeFound = true; - while ($this->reader->read() && $depthLimit < $this->reader->depth) { - if (XMLReader::ELEMENT !== $this->reader->nodeType) { - continue; - } - - if ('node' === $this->reader->prefix) { - return $this->readNode(); - } elseif ('scalar' === $this->reader->prefix) { - return $this->readScalar(); - } elseif ('comment' === $this->reader->name) { - return $this->readComment(); - } else { - throw new DomainException(sprintf('Unexpected node of type "%s"', $this->reader->name)); - } - } - - $nodeFound = false; - if ($throw) { - throw new DomainException('Expected node or scalar'); - } - } - - protected function readNode() { - $className = $this->getClassNameFromType($this->reader->localName); - - // create the node without calling it's constructor - $node = unserialize( - sprintf( - "O:%d:\"%s\":1:{s:13:\"\0*\0attributes\";a:0:{}}", - strlen($className), $className - ) - ); - - $depthLimit = $this->reader->depth; - while ($this->reader->read() && $depthLimit < $this->reader->depth) { - if (XMLReader::ELEMENT !== $this->reader->nodeType) { - continue; - } - - $type = $this->reader->prefix; - if ('subNode' !== $type && 'attribute' !== $type) { - throw new DomainException( - sprintf('Expected sub node or attribute, got node of type "%s"', $this->reader->name) - ); - } - - $name = $this->reader->localName; - $value = $this->read($this->reader->depth); - - if ('subNode' === $type) { - $node->$name = $value; - } else { - $node->setAttribute($name, $value); - } - } - - return $node; - } - - protected function readScalar() { - switch ($name = $this->reader->localName) { - case 'array': - $depth = $this->reader->depth; - $array = array(); - while (true) { - $node = $this->read($depth, false, $nodeFound); - if (!$nodeFound) { - break; - } - $array[] = $node; - } - return $array; - case 'string': - return $this->reader->readString(); - case 'int': - return $this->parseInt($this->reader->readString()); - case 'float': - $text = $this->reader->readString(); - if (false === $float = filter_var($text, FILTER_VALIDATE_FLOAT)) { - throw new DomainException(sprintf('"%s" is not a valid float', $text)); - } - return $float; - case 'true': - case 'false': - case 'null': - if (!$this->reader->isEmptyElement) { - throw new DomainException(sprintf('"%s" scalar must be empty', $name)); - } - return constant($name); - default: - throw new DomainException(sprintf('Unknown scalar type "%s"', $name)); - } - } - - private function parseInt($text) { - if (false === $int = filter_var($text, FILTER_VALIDATE_INT)) { - throw new DomainException(sprintf('"%s" is not a valid integer', $text)); - } - return $int; - } - - protected function readComment() { - $className = $this->reader->getAttribute('isDocComment') === 'true' - ? 'PhpParser\Comment\Doc' - : 'PhpParser\Comment' - ; - return new $className( - $this->reader->readString(), - $this->parseInt($this->reader->getAttribute('line')) - ); - } - - protected function getClassNameFromType($type) { - $className = 'PhpParser\\Node\\' . strtr($type, '_', '\\'); - if (!class_exists($className)) { - $className .= '_'; - } - if (!class_exists($className)) { - throw new DomainException(sprintf('Unknown node type "%s"', $type)); - } - return $className; - } -} diff --git a/vendor/nikic/php-parser/lib/bootstrap.php b/vendor/nikic/php-parser/lib/bootstrap.php deleted file mode 100644 index b0f51782..00000000 --- a/vendor/nikic/php-parser/lib/bootstrap.php +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - ./test/ - - - - - - ./lib/PhpParser/ - - - diff --git a/vendor/nikic/php-parser/test/PhpParser/AutoloaderTest.php b/vendor/nikic/php-parser/test/PhpParser/AutoloaderTest.php deleted file mode 100644 index 8eeded83..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/AutoloaderTest.php +++ /dev/null @@ -1,15 +0,0 @@ -assertTrue(class_exists('PhpParser\NodeVisitorAbstract')); - $this->assertFalse(class_exists('PHPParser_NodeVisitor_NameResolver')); - - $this->assertFalse(class_exists('PhpParser\FooBar')); - $this->assertFalse(class_exists('PHPParser_FooBar')); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php deleted file mode 100644 index 0f741821..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php +++ /dev/null @@ -1,161 +0,0 @@ -createClassBuilder('SomeLogger') - ->extend('BaseLogger') - ->implement('Namespaced\Logger', new Name('SomeInterface')) - ->implement('\Fully\Qualified', 'namespace\NamespaceRelative') - ->getNode() - ; - - $this->assertEquals( - new Stmt\Class_('SomeLogger', array( - 'extends' => new Name('BaseLogger'), - 'implements' => array( - new Name('Namespaced\Logger'), - new Name('SomeInterface'), - new Name\FullyQualified('Fully\Qualified'), - new Name\Relative('NamespaceRelative'), - ), - )), - $node - ); - } - - public function testAbstract() { - $node = $this->createClassBuilder('Test') - ->makeAbstract() - ->getNode() - ; - - $this->assertEquals( - new Stmt\Class_('Test', array( - 'flags' => Stmt\Class_::MODIFIER_ABSTRACT - )), - $node - ); - } - - public function testFinal() { - $node = $this->createClassBuilder('Test') - ->makeFinal() - ->getNode() - ; - - $this->assertEquals( - new Stmt\Class_('Test', array( - 'flags' => Stmt\Class_::MODIFIER_FINAL - )), - $node - ); - } - - public function testStatementOrder() { - $method = new Stmt\ClassMethod('testMethod'); - $property = new Stmt\Property( - Stmt\Class_::MODIFIER_PUBLIC, - array(new Stmt\PropertyProperty('testProperty')) - ); - $const = new Stmt\ClassConst(array( - new Node\Const_('TEST_CONST', new Node\Scalar\String_('ABC')) - )); - $use = new Stmt\TraitUse(array(new Name('SomeTrait'))); - - $node = $this->createClassBuilder('Test') - ->addStmt($method) - ->addStmt($property) - ->addStmts(array($const, $use)) - ->getNode() - ; - - $this->assertEquals( - new Stmt\Class_('Test', array( - 'stmts' => array($use, $const, $property, $method) - )), - $node - ); - } - - public function testDocComment() { - $docComment = <<<'DOC' -/** - * Test - */ -DOC; - $class = $this->createClassBuilder('Test') - ->setDocComment($docComment) - ->getNode(); - - $this->assertEquals( - new Stmt\Class_('Test', array(), array( - 'comments' => array( - new Comment\Doc($docComment) - ) - )), - $class - ); - - $class = $this->createClassBuilder('Test') - ->setDocComment(new Comment\Doc($docComment)) - ->getNode(); - - $this->assertEquals( - new Stmt\Class_('Test', array(), array( - 'comments' => array( - new Comment\Doc($docComment) - ) - )), - $class - ); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Unexpected node of type "Stmt_Echo" - */ - public function testInvalidStmtError() { - $this->createClassBuilder('Test') - ->addStmt(new Stmt\Echo_(array())) - ; - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Doc comment must be a string or an instance of PhpParser\Comment\Doc - */ - public function testInvalidDocComment() { - $this->createClassBuilder('Test') - ->setDocComment(new Comment('Test')); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Name cannot be empty - */ - public function testEmptyName() { - $this->createClassBuilder('Test') - ->extend(''); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Name must be a string or an instance of PhpParser\Node\Name - */ - public function testInvalidName() { - $this->createClassBuilder('Test') - ->extend(array('Foo')); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php deleted file mode 100644 index f6a9381d..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php +++ /dev/null @@ -1,106 +0,0 @@ -createFunctionBuilder('test') - ->makeReturnByRef() - ->getNode() - ; - - $this->assertEquals( - new Stmt\Function_('test', array( - 'byRef' => true - )), - $node - ); - } - - public function testParams() { - $param1 = new Node\Param('test1'); - $param2 = new Node\Param('test2'); - $param3 = new Node\Param('test3'); - - $node = $this->createFunctionBuilder('test') - ->addParam($param1) - ->addParams(array($param2, $param3)) - ->getNode() - ; - - $this->assertEquals( - new Stmt\Function_('test', array( - 'params' => array($param1, $param2, $param3) - )), - $node - ); - } - - public function testStmts() { - $stmt1 = new Print_(new String_('test1')); - $stmt2 = new Print_(new String_('test2')); - $stmt3 = new Print_(new String_('test3')); - - $node = $this->createFunctionBuilder('test') - ->addStmt($stmt1) - ->addStmts(array($stmt2, $stmt3)) - ->getNode() - ; - - $this->assertEquals( - new Stmt\Function_('test', array( - 'stmts' => array($stmt1, $stmt2, $stmt3) - )), - $node - ); - } - - public function testDocComment() { - $node = $this->createFunctionBuilder('test') - ->setDocComment('/** Test */') - ->getNode(); - - $this->assertEquals(new Stmt\Function_('test', array(), array( - 'comments' => array(new Comment\Doc('/** Test */')) - )), $node); - } - - public function testReturnType() { - $node = $this->createFunctionBuilder('test') - ->setReturnType('void') - ->getNode(); - - $this->assertEquals(new Stmt\Function_('test', array( - 'returnType' => 'void' - ), array()), $node); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage void type cannot be nullable - */ - public function testInvalidNullableVoidType() { - $this->createFunctionBuilder('test')->setReturnType('?void'); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected parameter node, got "Name" - */ - public function testInvalidParamError() { - $this->createFunctionBuilder('test') - ->addParam(new Node\Name('foo')) - ; - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php deleted file mode 100644 index 72c58668..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php +++ /dev/null @@ -1,105 +0,0 @@ -builder = new Interface_('Contract'); - } - - private function dump($node) { - $pp = new \PhpParser\PrettyPrinter\Standard; - return $pp->prettyPrint(array($node)); - } - - public function testEmpty() { - $contract = $this->builder->getNode(); - $this->assertInstanceOf('PhpParser\Node\Stmt\Interface_', $contract); - $this->assertSame('Contract', $contract->name); - } - - public function testExtending() { - $contract = $this->builder->extend('Space\Root1', 'Root2')->getNode(); - $this->assertEquals( - new Stmt\Interface_('Contract', array( - 'extends' => array( - new Node\Name('Space\Root1'), - new Node\Name('Root2') - ), - )), $contract - ); - } - - public function testAddMethod() { - $method = new Stmt\ClassMethod('doSomething'); - $contract = $this->builder->addStmt($method)->getNode(); - $this->assertSame(array($method), $contract->stmts); - } - - public function testAddConst() { - $const = new Stmt\ClassConst(array( - new Node\Const_('SPEED_OF_LIGHT', new DNumber(299792458.0)) - )); - $contract = $this->builder->addStmt($const)->getNode(); - $this->assertSame(299792458.0, $contract->stmts[0]->consts[0]->value->value); - } - - public function testOrder() { - $const = new Stmt\ClassConst(array( - new Node\Const_('SPEED_OF_LIGHT', new DNumber(299792458)) - )); - $method = new Stmt\ClassMethod('doSomething'); - $contract = $this->builder - ->addStmt($method) - ->addStmt($const) - ->getNode() - ; - - $this->assertInstanceOf('PhpParser\Node\Stmt\ClassConst', $contract->stmts[0]); - $this->assertInstanceOf('PhpParser\Node\Stmt\ClassMethod', $contract->stmts[1]); - } - - public function testDocComment() { - $node = $this->builder - ->setDocComment('/** Test */') - ->getNode(); - - $this->assertEquals(new Stmt\Interface_('Contract', array(), array( - 'comments' => array(new Comment\Doc('/** Test */')) - )), $node); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Unexpected node of type "Stmt_PropertyProperty" - */ - public function testInvalidStmtError() { - $this->builder->addStmt(new Stmt\PropertyProperty('invalid')); - } - - public function testFullFunctional() { - $const = new Stmt\ClassConst(array( - new Node\Const_('SPEED_OF_LIGHT', new DNumber(299792458)) - )); - $method = new Stmt\ClassMethod('doSomething'); - $contract = $this->builder - ->addStmt($method) - ->addStmt($const) - ->getNode() - ; - - eval($this->dump($contract)); - - $this->assertTrue(interface_exists('Contract', false)); - } -} - diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php deleted file mode 100644 index 21c5617a..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php +++ /dev/null @@ -1,163 +0,0 @@ -createMethodBuilder('test') - ->makePublic() - ->makeAbstract() - ->makeStatic() - ->getNode() - ; - - $this->assertEquals( - new Stmt\ClassMethod('test', array( - 'flags' => Stmt\Class_::MODIFIER_PUBLIC - | Stmt\Class_::MODIFIER_ABSTRACT - | Stmt\Class_::MODIFIER_STATIC, - 'stmts' => null, - )), - $node - ); - - $node = $this->createMethodBuilder('test') - ->makeProtected() - ->makeFinal() - ->getNode() - ; - - $this->assertEquals( - new Stmt\ClassMethod('test', array( - 'flags' => Stmt\Class_::MODIFIER_PROTECTED - | Stmt\Class_::MODIFIER_FINAL - )), - $node - ); - - $node = $this->createMethodBuilder('test') - ->makePrivate() - ->getNode() - ; - - $this->assertEquals( - new Stmt\ClassMethod('test', array( - 'type' => Stmt\Class_::MODIFIER_PRIVATE - )), - $node - ); - } - - public function testReturnByRef() { - $node = $this->createMethodBuilder('test') - ->makeReturnByRef() - ->getNode() - ; - - $this->assertEquals( - new Stmt\ClassMethod('test', array( - 'byRef' => true - )), - $node - ); - } - - public function testParams() { - $param1 = new Node\Param('test1'); - $param2 = new Node\Param('test2'); - $param3 = new Node\Param('test3'); - - $node = $this->createMethodBuilder('test') - ->addParam($param1) - ->addParams(array($param2, $param3)) - ->getNode() - ; - - $this->assertEquals( - new Stmt\ClassMethod('test', array( - 'params' => array($param1, $param2, $param3) - )), - $node - ); - } - - public function testStmts() { - $stmt1 = new Print_(new String_('test1')); - $stmt2 = new Print_(new String_('test2')); - $stmt3 = new Print_(new String_('test3')); - - $node = $this->createMethodBuilder('test') - ->addStmt($stmt1) - ->addStmts(array($stmt2, $stmt3)) - ->getNode() - ; - - $this->assertEquals( - new Stmt\ClassMethod('test', array( - 'stmts' => array($stmt1, $stmt2, $stmt3) - )), - $node - ); - } - public function testDocComment() { - $node = $this->createMethodBuilder('test') - ->setDocComment('/** Test */') - ->getNode(); - - $this->assertEquals(new Stmt\ClassMethod('test', array(), array( - 'comments' => array(new Comment\Doc('/** Test */')) - )), $node); - } - - public function testReturnType() { - $node = $this->createMethodBuilder('test') - ->setReturnType('bool') - ->getNode(); - $this->assertEquals(new Stmt\ClassMethod('test', array( - 'returnType' => 'bool' - ), array()), $node); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot add statements to an abstract method - */ - public function testAddStmtToAbstractMethodError() { - $this->createMethodBuilder('test') - ->makeAbstract() - ->addStmt(new Print_(new String_('test'))) - ; - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot make method with statements abstract - */ - public function testMakeMethodWithStmtsAbstractError() { - $this->createMethodBuilder('test') - ->addStmt(new Print_(new String_('test'))) - ->makeAbstract() - ; - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected parameter node, got "Name" - */ - public function testInvalidParamError() { - $this->createMethodBuilder('test') - ->addParam(new Node\Name('foo')) - ; - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php deleted file mode 100644 index 88131fc3..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php +++ /dev/null @@ -1,46 +0,0 @@ - array($docComment)) - ); - - $node = $this->createNamespaceBuilder('Name\Space') - ->addStmt($stmt1) - ->addStmts(array($stmt2, $stmt3)) - ->setDocComment($docComment) - ->getNode() - ; - $this->assertEquals($expected, $node); - - $node = $this->createNamespaceBuilder(new Node\Name(array('Name', 'Space'))) - ->setDocComment($docComment) - ->addStmts(array($stmt1, $stmt2)) - ->addStmt($stmt3) - ->getNode() - ; - $this->assertEquals($expected, $node); - - $node = $this->createNamespaceBuilder(null)->getNode(); - $this->assertNull($node->name); - $this->assertEmpty($node->stmts); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php deleted file mode 100644 index e67ae99f..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php +++ /dev/null @@ -1,171 +0,0 @@ -createParamBuilder('test') - ->setDefault($value) - ->getNode() - ; - - $this->assertEquals($expectedValueNode, $node->default); - } - - public function provideTestDefaultValues() { - return array( - array( - null, - new Expr\ConstFetch(new Node\Name('null')) - ), - array( - true, - new Expr\ConstFetch(new Node\Name('true')) - ), - array( - false, - new Expr\ConstFetch(new Node\Name('false')) - ), - array( - 31415, - new Scalar\LNumber(31415) - ), - array( - 3.1415, - new Scalar\DNumber(3.1415) - ), - array( - 'Hallo World', - new Scalar\String_('Hallo World') - ), - array( - array(1, 2, 3), - new Expr\Array_(array( - new Expr\ArrayItem(new Scalar\LNumber(1)), - new Expr\ArrayItem(new Scalar\LNumber(2)), - new Expr\ArrayItem(new Scalar\LNumber(3)), - )) - ), - array( - array('foo' => 'bar', 'bar' => 'foo'), - new Expr\Array_(array( - new Expr\ArrayItem( - new Scalar\String_('bar'), - new Scalar\String_('foo') - ), - new Expr\ArrayItem( - new Scalar\String_('foo'), - new Scalar\String_('bar') - ), - )) - ), - array( - new Scalar\MagicConst\Dir, - new Scalar\MagicConst\Dir - ) - ); - } - - /** - * @dataProvider provideTestTypeHints - */ - public function testTypeHints($typeHint, $expectedType) { - $node = $this->createParamBuilder('test') - ->setTypeHint($typeHint) - ->getNode() - ; - $type = $node->type; - - /* Manually implement comparison to avoid __toString stupidity */ - if ($expectedType instanceof Node\NullableType) { - $this->assertInstanceOf(get_class($expectedType), $type); - $expectedType = $expectedType->type; - $type = $type->type; - } - - if ($expectedType instanceof Node\Name) { - $this->assertInstanceOf(get_class($expectedType), $type); - $this->assertEquals($expectedType, $type); - } else { - $this->assertSame($expectedType, $type); - } - } - - public function provideTestTypeHints() { - return array( - array('array', 'array'), - array('callable', 'callable'), - array('bool', 'bool'), - array('int', 'int'), - array('float', 'float'), - array('string', 'string'), - array('iterable', 'iterable'), - array('object', 'object'), - array('Array', 'array'), - array('CALLABLE', 'callable'), - array('Some\Class', new Node\Name('Some\Class')), - array('\Foo', new Node\Name\FullyQualified('Foo')), - array('self', new Node\Name('self')), - array('?array', new Node\NullableType('array')), - array('?Some\Class', new Node\NullableType(new Node\Name('Some\Class'))), - array(new Node\Name('Some\Class'), new Node\Name('Some\Class')), - array(new Node\NullableType('int'), new Node\NullableType('int')), - array( - new Node\NullableType(new Node\Name('Some\Class')), - new Node\NullableType(new Node\Name('Some\Class')) - ), - ); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Parameter type cannot be void - */ - public function testVoidTypeError() { - $this->createParamBuilder('test')->setTypeHint('void'); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Type must be a string, or an instance of Name or NullableType - */ - public function testInvalidTypeError() { - $this->createParamBuilder('test')->setTypeHint(new \stdClass); - } - - public function testByRef() { - $node = $this->createParamBuilder('test') - ->makeByRef() - ->getNode() - ; - - $this->assertEquals( - new Node\Param('test', null, null, true), - $node - ); - } - - public function testVariadic() { - $node = $this->createParamBuilder('test') - ->makeVariadic() - ->getNode() - ; - - $this->assertEquals( - new Node\Param('test', null, null, false, true), - $node - ); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php deleted file mode 100644 index de8f4ce6..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php +++ /dev/null @@ -1,147 +0,0 @@ -createPropertyBuilder('test') - ->makePrivate() - ->makeStatic() - ->getNode() - ; - - $this->assertEquals( - new Stmt\Property( - Stmt\Class_::MODIFIER_PRIVATE - | Stmt\Class_::MODIFIER_STATIC, - array( - new Stmt\PropertyProperty('test') - ) - ), - $node - ); - - $node = $this->createPropertyBuilder('test') - ->makeProtected() - ->getNode() - ; - - $this->assertEquals( - new Stmt\Property( - Stmt\Class_::MODIFIER_PROTECTED, - array( - new Stmt\PropertyProperty('test') - ) - ), - $node - ); - - $node = $this->createPropertyBuilder('test') - ->makePublic() - ->getNode() - ; - - $this->assertEquals( - new Stmt\Property( - Stmt\Class_::MODIFIER_PUBLIC, - array( - new Stmt\PropertyProperty('test') - ) - ), - $node - ); - } - - public function testDocComment() { - $node = $this->createPropertyBuilder('test') - ->setDocComment('/** Test */') - ->getNode(); - - $this->assertEquals(new Stmt\Property( - Stmt\Class_::MODIFIER_PUBLIC, - array( - new Stmt\PropertyProperty('test') - ), - array( - 'comments' => array(new Comment\Doc('/** Test */')) - ) - ), $node); - } - - /** - * @dataProvider provideTestDefaultValues - */ - public function testDefaultValues($value, $expectedValueNode) { - $node = $this->createPropertyBuilder('test') - ->setDefault($value) - ->getNode() - ; - - $this->assertEquals($expectedValueNode, $node->props[0]->default); - } - - public function provideTestDefaultValues() { - return array( - array( - null, - new Expr\ConstFetch(new Name('null')) - ), - array( - true, - new Expr\ConstFetch(new Name('true')) - ), - array( - false, - new Expr\ConstFetch(new Name('false')) - ), - array( - 31415, - new Scalar\LNumber(31415) - ), - array( - 3.1415, - new Scalar\DNumber(3.1415) - ), - array( - 'Hallo World', - new Scalar\String_('Hallo World') - ), - array( - array(1, 2, 3), - new Expr\Array_(array( - new Expr\ArrayItem(new Scalar\LNumber(1)), - new Expr\ArrayItem(new Scalar\LNumber(2)), - new Expr\ArrayItem(new Scalar\LNumber(3)), - )) - ), - array( - array('foo' => 'bar', 'bar' => 'foo'), - new Expr\Array_(array( - new Expr\ArrayItem( - new Scalar\String_('bar'), - new Scalar\String_('foo') - ), - new Expr\ArrayItem( - new Scalar\String_('foo'), - new Scalar\String_('bar') - ), - )) - ), - array( - new Scalar\MagicConst\Dir, - new Scalar\MagicConst\Dir - ) - ); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php deleted file mode 100644 index 874bc4d2..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php +++ /dev/null @@ -1,48 +0,0 @@ -createTraitBuilder('TestTrait') - ->setDocComment('/** Nice trait */') - ->addStmt($method1) - ->addStmts([$method2, $method3]) - ->addStmt($prop) - ->addStmt($use) - ->getNode(); - $this->assertEquals(new Stmt\Trait_('TestTrait', [ - 'stmts' => [$use, $prop, $method1, $method2, $method3] - ], [ - 'comments' => [ - new Comment\Doc('/** Nice trait */') - ] - ]), $trait); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Unexpected node of type "Stmt_Echo" - */ - public function testInvalidStmtError() { - $this->createTraitBuilder('Test') - ->addStmt(new Stmt\Echo_(array())) - ; - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php deleted file mode 100644 index adaeb3a5..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php +++ /dev/null @@ -1,35 +0,0 @@ -createUseBuilder('Foo\Bar')->getNode(); - $this->assertEquals(new Stmt\Use_(array( - new Stmt\UseUse(new Name('Foo\Bar'), 'Bar') - )), $node); - - $node = $this->createUseBuilder(new Name('Foo\Bar'))->as('XYZ')->getNode(); - $this->assertEquals(new Stmt\Use_(array( - new Stmt\UseUse(new Name('Foo\Bar'), 'XYZ') - )), $node); - - $node = $this->createUseBuilder('foo\bar', Stmt\Use_::TYPE_FUNCTION)->as('foo')->getNode(); - $this->assertEquals(new Stmt\Use_(array( - new Stmt\UseUse(new Name('foo\bar'), 'foo') - ), Stmt\Use_::TYPE_FUNCTION), $node); - } - - public function testNonExistingMethod() { - $this->setExpectedException('LogicException', 'Method "foo" does not exist'); - $builder = $this->createUseBuilder('Test'); - $builder->foo(); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php b/vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php deleted file mode 100644 index 1c3ef18d..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php +++ /dev/null @@ -1,108 +0,0 @@ -assertInstanceOf($className, $factory->$methodName('test')); - } - - public function provideTestFactory() { - return array( - array('namespace', 'PhpParser\Builder\Namespace_'), - array('class', 'PhpParser\Builder\Class_'), - array('interface', 'PhpParser\Builder\Interface_'), - array('trait', 'PhpParser\Builder\Trait_'), - array('method', 'PhpParser\Builder\Method'), - array('function', 'PhpParser\Builder\Function_'), - array('property', 'PhpParser\Builder\Property'), - array('param', 'PhpParser\Builder\Param'), - array('use', 'PhpParser\Builder\Use_'), - ); - } - - public function testNonExistingMethod() { - $this->setExpectedException('LogicException', 'Method "foo" does not exist'); - $factory = new BuilderFactory(); - $factory->foo(); - } - - public function testIntegration() { - $factory = new BuilderFactory; - $node = $factory->namespace('Name\Space') - ->addStmt($factory->use('Foo\Bar\SomeOtherClass')) - ->addStmt($factory->use('Foo\Bar')->as('A')) - ->addStmt($factory - ->class('SomeClass') - ->extend('SomeOtherClass') - ->implement('A\Few', '\Interfaces') - ->makeAbstract() - - ->addStmt($factory->method('firstMethod')) - - ->addStmt($factory->method('someMethod') - ->makePublic() - ->makeAbstract() - ->addParam($factory->param('someParam')->setTypeHint('SomeClass')) - ->setDocComment('/** - * This method does something. - * - * @param SomeClass And takes a parameter - */')) - - ->addStmt($factory->method('anotherMethod') - ->makeProtected() - ->addParam($factory->param('someParam')->setDefault('test')) - ->addStmt(new Expr\Print_(new Expr\Variable('someParam')))) - - ->addStmt($factory->property('someProperty')->makeProtected()) - ->addStmt($factory->property('anotherProperty') - ->makePrivate() - ->setDefault(array(1, 2, 3)))) - ->getNode() - ; - - $expected = <<<'EOC' -prettyPrintFile($stmts); - - $this->assertEquals( - str_replace("\r\n", "\n", $expected), - str_replace("\r\n", "\n", $generated) - ); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php b/vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php deleted file mode 100644 index 1a4a9ad1..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php +++ /dev/null @@ -1,70 +0,0 @@ - array( - 'startLine', 'endLine', 'startFilePos', 'endFilePos', 'comments' - ))); - $parser5 = new Parser\Php5($lexer); - $parser7 = new Parser\Php7($lexer); - - $dumpPositions = isset($modes['positions']); - $output5 = $this->getParseOutput($parser5, $code, $dumpPositions); - $output7 = $this->getParseOutput($parser7, $code, $dumpPositions); - - if (isset($modes['php5'])) { - $this->assertSame($expected, $output5, $name); - $this->assertNotSame($expected, $output7, $name); - } else if (isset($modes['php7'])) { - $this->assertNotSame($expected, $output5, $name); - $this->assertSame($expected, $output7, $name); - } else { - $this->assertSame($expected, $output5, $name); - $this->assertSame($expected, $output7, $name); - } - } - - private function getParseOutput(Parser $parser, $code, $dumpPositions) { - $errors = new ErrorHandler\Collecting; - $stmts = $parser->parse($code, $errors); - - $output = ''; - foreach ($errors->getErrors() as $error) { - $output .= $this->formatErrorMessage($error, $code) . "\n"; - } - - if (null !== $stmts) { - $dumper = new NodeDumper(['dumpComments' => true, 'dumpPositions' => $dumpPositions]); - $output .= $dumper->dump($stmts, $code); - } - - return canonicalize($output); - } - - public function provideTestParse() { - return $this->getTests(__DIR__ . '/../code/parser', 'test'); - } - - private function formatErrorMessage(Error $e, $code) { - if ($e->hasColumnInfo()) { - return $e->getMessageWithColumnInfo($code); - } else { - return $e->getMessage(); - } - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php b/vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php deleted file mode 100644 index 369ee41b..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php +++ /dev/null @@ -1,61 +0,0 @@ -getPathname(); - $fileContents = file_get_contents($fileName); - $fileContents = canonicalize($fileContents); - - // evaluate @@{expr}@@ expressions - $fileContents = preg_replace_callback( - '/@@\{(.*?)\}@@/', - function($matches) { - return eval('return ' . $matches[1] . ';'); - }, - $fileContents - ); - - // parse sections - $parts = preg_split("/\n-----(?:\n|$)/", $fileContents); - - // first part is the name - $name = array_shift($parts) . ' (' . $fileName . ')'; - $shortName = ltrim(str_replace($directory, '', $fileName), '/\\'); - - // multiple sections possible with always two forming a pair - $chunks = array_chunk($parts, 2); - foreach ($chunks as $i => $chunk) { - $dataSetName = $shortName . (count($chunks) > 1 ? '#' . $i : ''); - list($expected, $mode) = $this->extractMode($chunk[1]); - $tests[$dataSetName] = array($name, $chunk[0], $expected, $mode); - } - } - - return $tests; - } - - private function extractMode($expected) { - $firstNewLine = strpos($expected, "\n"); - if (false === $firstNewLine) { - $firstNewLine = strlen($expected); - } - - $firstLine = substr($expected, 0, $firstNewLine); - if (0 !== strpos($firstLine, '!!')) { - return [$expected, null]; - } - - $expected = (string) substr($expected, $firstNewLine + 1); - return [$expected, substr($firstLine, 2)]; - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/CommentTest.php b/vendor/nikic/php-parser/test/PhpParser/CommentTest.php deleted file mode 100644 index 081dd57b..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/CommentTest.php +++ /dev/null @@ -1,73 +0,0 @@ -assertSame('/* Some comment */', $comment->getText()); - $this->assertSame('/* Some comment */', (string) $comment); - $this->assertSame(1, $comment->getLine()); - $this->assertSame(10, $comment->getFilePos()); - } - - /** - * @dataProvider provideTestReformatting - */ - public function testReformatting($commentText, $reformattedText) { - $comment = new Comment($commentText); - $this->assertSame($reformattedText, $comment->getReformattedText()); - } - - public function provideTestReformatting() { - return array( - array('// Some text' . "\n", '// Some text'), - array('/* Some text */', '/* Some text */'), - array( - '/** - * Some text. - * Some more text. - */', - '/** - * Some text. - * Some more text. - */' - ), - array( - '/* - Some text. - Some more text. - */', - '/* - Some text. - Some more text. -*/' - ), - array( - '/* Some text. - More text. - Even more text. */', - '/* Some text. - More text. - Even more text. */' - ), - array( - '/* Some text. - More text. - Indented text. */', - '/* Some text. - More text. - Indented text. */', - ), - // invalid comment -> no reformatting - array( - 'hallo - world', - 'hallo - world', - ), - ); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php b/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php deleted file mode 100644 index 37429817..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php +++ /dev/null @@ -1,22 +0,0 @@ -assertFalse($errorHandler->hasErrors()); - $this->assertEmpty($errorHandler->getErrors()); - - $errorHandler->handleError($e1 = new Error('Test 1')); - $errorHandler->handleError($e2 = new Error('Test 2')); - $this->assertTrue($errorHandler->hasErrors()); - $this->assertSame([$e1, $e2], $errorHandler->getErrors()); - - $errorHandler->clearErrors(); - $this->assertFalse($errorHandler->hasErrors()); - $this->assertEmpty($errorHandler->getErrors()); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php b/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php deleted file mode 100644 index d7df7c26..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php +++ /dev/null @@ -1,16 +0,0 @@ -handleError(new Error('Test')); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/PhpParser/ErrorTest.php b/vendor/nikic/php-parser/test/PhpParser/ErrorTest.php deleted file mode 100644 index 59e880c3..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/ErrorTest.php +++ /dev/null @@ -1,106 +0,0 @@ - 10, - 'endLine' => 11, - ); - $error = new Error('Some error', $attributes); - - $this->assertSame('Some error', $error->getRawMessage()); - $this->assertSame($attributes, $error->getAttributes()); - $this->assertSame(10, $error->getStartLine()); - $this->assertSame(11, $error->getEndLine()); - $this->assertSame('Some error on line 10', $error->getMessage()); - - return $error; - } - - /** - * @depends testConstruct - */ - public function testSetMessageAndLine(Error $error) { - $error->setRawMessage('Some other error'); - $this->assertSame('Some other error', $error->getRawMessage()); - - $error->setStartLine(15); - $this->assertSame(15, $error->getStartLine()); - $this->assertSame('Some other error on line 15', $error->getMessage()); - } - - public function testUnknownLine() { - $error = new Error('Some error'); - - $this->assertSame(-1, $error->getStartLine()); - $this->assertSame(-1, $error->getEndLine()); - $this->assertSame('Some error on unknown line', $error->getMessage()); - } - - /** @dataProvider provideTestColumnInfo */ - public function testColumnInfo($code, $startPos, $endPos, $startColumn, $endColumn) { - $error = new Error('Some error', array( - 'startFilePos' => $startPos, - 'endFilePos' => $endPos, - )); - - $this->assertSame(true, $error->hasColumnInfo()); - $this->assertSame($startColumn, $error->getStartColumn($code)); - $this->assertSame($endColumn, $error->getEndColumn($code)); - - } - - public function provideTestColumnInfo() { - return array( - // Error at "bar" - array("assertSame(false, $error->hasColumnInfo()); - try { - $error->getStartColumn(''); - $this->fail('Expected RuntimeException'); - } catch (\RuntimeException $e) { - $this->assertSame('Error does not have column information', $e->getMessage()); - } - try { - $error->getEndColumn(''); - $this->fail('Expected RuntimeException'); - } catch (\RuntimeException $e) { - $this->assertSame('Error does not have column information', $e->getMessage()); - } - } - - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage Invalid position information - */ - public function testInvalidPosInfo() { - $error = new Error('Some error', array( - 'startFilePos' => 10, - 'endFilePos' => 11, - )); - $error->getStartColumn('code'); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php b/vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php deleted file mode 100644 index f1fe6183..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php +++ /dev/null @@ -1,133 +0,0 @@ -getLexer(); - $lexer->startLexing('assertSame($expectedToken, $lexer->getNextToken()); - $this->assertSame(0, $lexer->getNextToken()); - } - - /** - * @dataProvider provideTestReplaceKeywords - */ - public function testNoReplaceKeywordsAfterObjectOperator($keyword) { - $lexer = $this->getLexer(); - $lexer->startLexing('' . $keyword); - - $this->assertSame(Tokens::T_OBJECT_OPERATOR, $lexer->getNextToken()); - $this->assertSame(Tokens::T_STRING, $lexer->getNextToken()); - $this->assertSame(0, $lexer->getNextToken()); - } - - public function provideTestReplaceKeywords() { - return array( - // PHP 5.5 - array('finally', Tokens::T_FINALLY), - array('yield', Tokens::T_YIELD), - - // PHP 5.4 - array('callable', Tokens::T_CALLABLE), - array('insteadof', Tokens::T_INSTEADOF), - array('trait', Tokens::T_TRAIT), - array('__TRAIT__', Tokens::T_TRAIT_C), - - // PHP 5.3 - array('__DIR__', Tokens::T_DIR), - array('goto', Tokens::T_GOTO), - array('namespace', Tokens::T_NAMESPACE), - array('__NAMESPACE__', Tokens::T_NS_C), - ); - } - - /** - * @dataProvider provideTestLexNewFeatures - */ - public function testLexNewFeatures($code, array $expectedTokens) { - $lexer = $this->getLexer(); - $lexer->startLexing('assertSame($expectedTokenType, $lexer->getNextToken($text)); - $this->assertSame($expectedTokenText, $text); - } - $this->assertSame(0, $lexer->getNextToken()); - } - - /** - * @dataProvider provideTestLexNewFeatures - */ - public function testLeaveStuffAloneInStrings($code) { - $stringifiedToken = '"' . addcslashes($code, '"\\') . '"'; - - $lexer = $this->getLexer(); - $lexer->startLexing('assertSame(Tokens::T_CONSTANT_ENCAPSED_STRING, $lexer->getNextToken($text)); - $this->assertSame($stringifiedToken, $text); - $this->assertSame(0, $lexer->getNextToken()); - } - - public function provideTestLexNewFeatures() { - return array( - array('yield from', array( - array(Tokens::T_YIELD_FROM, 'yield from'), - )), - array("yield\r\nfrom", array( - array(Tokens::T_YIELD_FROM, "yield\r\nfrom"), - )), - array('...', array( - array(Tokens::T_ELLIPSIS, '...'), - )), - array('**', array( - array(Tokens::T_POW, '**'), - )), - array('**=', array( - array(Tokens::T_POW_EQUAL, '**='), - )), - array('??', array( - array(Tokens::T_COALESCE, '??'), - )), - array('<=>', array( - array(Tokens::T_SPACESHIP, '<=>'), - )), - array('0b1010110', array( - array(Tokens::T_LNUMBER, '0b1010110'), - )), - array('0b1011010101001010110101010010101011010101010101101011001110111100', array( - array(Tokens::T_DNUMBER, '0b1011010101001010110101010010101011010101010101101011001110111100'), - )), - array('\\', array( - array(Tokens::T_NS_SEPARATOR, '\\'), - )), - array("<<<'NOWDOC'\nNOWDOC;\n", array( - array(Tokens::T_START_HEREDOC, "<<<'NOWDOC'\n"), - array(Tokens::T_END_HEREDOC, 'NOWDOC'), - array(ord(';'), ';'), - )), - array("<<<'NOWDOC'\nFoobar\nNOWDOC;\n", array( - array(Tokens::T_START_HEREDOC, "<<<'NOWDOC'\n"), - array(Tokens::T_ENCAPSED_AND_WHITESPACE, "Foobar\n"), - array(Tokens::T_END_HEREDOC, 'NOWDOC'), - array(ord(';'), ';'), - )), - ); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/LexerTest.php b/vendor/nikic/php-parser/test/PhpParser/LexerTest.php deleted file mode 100644 index bf7a5d32..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/LexerTest.php +++ /dev/null @@ -1,265 +0,0 @@ -markTestSkipped('HHVM does not throw warnings from token_get_all()'); - } - - $errorHandler = new ErrorHandler\Collecting(); - $lexer = $this->getLexer(['usedAttributes' => [ - 'comments', 'startLine', 'endLine', 'startFilePos', 'endFilePos' - ]]); - $lexer->startLexing($code, $errorHandler); - $errors = $errorHandler->getErrors(); - - $this->assertSame(count($messages), count($errors)); - for ($i = 0; $i < count($messages); $i++) { - $this->assertSame($messages[$i], $errors[$i]->getMessageWithColumnInfo($code)); - } - } - - public function provideTestError() { - return array( - array("getLexer($options); - $lexer->startLexing($code); - while ($id = $lexer->getNextToken($value, $startAttributes, $endAttributes)) { - $token = array_shift($tokens); - - $this->assertSame($token[0], $id); - $this->assertSame($token[1], $value); - $this->assertEquals($token[2], $startAttributes); - $this->assertEquals($token[3], $endAttributes); - } - } - - public function provideTestLex() { - return array( - // tests conversion of closing PHP tag and drop of whitespace and opening tags - array( - 'plaintext', - array(), - array( - array( - Tokens::T_STRING, 'tokens', - array('startLine' => 1), array('endLine' => 1) - ), - array( - ord(';'), '?>', - array('startLine' => 1), array('endLine' => 1) - ), - array( - Tokens::T_INLINE_HTML, 'plaintext', - array('startLine' => 1, 'hasLeadingNewline' => false), - array('endLine' => 1) - ), - ) - ), - // tests line numbers - array( - ' 2), array('endLine' => 2) - ), - array( - Tokens::T_STRING, 'token', - array('startLine' => 2), array('endLine' => 2) - ), - array( - ord('$'), '$', - array( - 'startLine' => 3, - 'comments' => array( - new Comment\Doc('/** doc' . "\n" . 'comment */', 2, 14), - ) - ), - array('endLine' => 3) - ), - ) - ), - // tests comment extraction - array( - ' 2, - 'comments' => array( - new Comment('/* comment */', 1, 6), - new Comment('// comment' . "\n", 1, 20), - new Comment\Doc('/** docComment 1 */', 2, 31), - new Comment\Doc('/** docComment 2 */', 2, 50), - ), - ), - array('endLine' => 2) - ), - ) - ), - // tests differing start and end line - array( - ' 1), array('endLine' => 2) - ), - ) - ), - // tests exact file offsets - array( - ' array('startFilePos', 'endFilePos')), - array( - array( - Tokens::T_CONSTANT_ENCAPSED_STRING, '"a"', - array('startFilePos' => 6), array('endFilePos' => 8) - ), - array( - ord(';'), ';', - array('startFilePos' => 9), array('endFilePos' => 9) - ), - array( - Tokens::T_CONSTANT_ENCAPSED_STRING, '"b"', - array('startFilePos' => 18), array('endFilePos' => 20) - ), - array( - ord(';'), ';', - array('startFilePos' => 21), array('endFilePos' => 21) - ), - ) - ), - // tests token offsets - array( - ' array('startTokenPos', 'endTokenPos')), - array( - array( - Tokens::T_CONSTANT_ENCAPSED_STRING, '"a"', - array('startTokenPos' => 1), array('endTokenPos' => 1) - ), - array( - ord(';'), ';', - array('startTokenPos' => 2), array('endTokenPos' => 2) - ), - array( - Tokens::T_CONSTANT_ENCAPSED_STRING, '"b"', - array('startTokenPos' => 5), array('endTokenPos' => 5) - ), - array( - ord(';'), ';', - array('startTokenPos' => 6), array('endTokenPos' => 6) - ), - ) - ), - // tests all attributes being disabled - array( - ' array()), - array( - array( - Tokens::T_VARIABLE, '$bar', - array(), array() - ), - array( - ord(';'), ';', - array(), array() - ) - ) - ), - // tests no tokens - array( - '', - array(), - array() - ), - ); - } - - /** - * @dataProvider provideTestHaltCompiler - */ - public function testHandleHaltCompiler($code, $remaining) { - $lexer = $this->getLexer(); - $lexer->startLexing($code); - - while (Tokens::T_HALT_COMPILER !== $lexer->getNextToken()); - - $this->assertSame($remaining, $lexer->handleHaltCompiler()); - $this->assertSame(0, $lexer->getNextToken()); - } - - public function provideTestHaltCompiler() { - return array( - array('Remaining Text', 'Remaining Text'), - //array('getLexer(); - $lexer->startLexing('getNextToken()); - $lexer->handleHaltCompiler(); - } - - public function testGetTokens() { - $code = 'getLexer(); - $lexer->startLexing($code); - $this->assertSame($expectedTokens, $lexer->getTokens()); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php deleted file mode 100644 index 76a89c3e..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php +++ /dev/null @@ -1,134 +0,0 @@ -assertSame(array('foo', 'bar'), $name->parts); - - $name = new Name('foo\bar'); - $this->assertSame(array('foo', 'bar'), $name->parts); - - $name = new Name($name); - $this->assertSame(array('foo', 'bar'), $name->parts); - } - - public function testGet() { - $name = new Name('foo'); - $this->assertSame('foo', $name->getFirst()); - $this->assertSame('foo', $name->getLast()); - - $name = new Name('foo\bar'); - $this->assertSame('foo', $name->getFirst()); - $this->assertSame('bar', $name->getLast()); - } - - public function testToString() { - $name = new Name('foo\bar'); - - $this->assertSame('foo\bar', (string) $name); - $this->assertSame('foo\bar', $name->toString()); - } - - public function testSlice() { - $name = new Name('foo\bar\baz'); - $this->assertEquals(new Name('foo\bar\baz'), $name->slice(0)); - $this->assertEquals(new Name('bar\baz'), $name->slice(1)); - $this->assertNull($name->slice(3)); - $this->assertEquals(new Name('foo\bar\baz'), $name->slice(-3)); - $this->assertEquals(new Name('bar\baz'), $name->slice(-2)); - $this->assertEquals(new Name('foo\bar'), $name->slice(0, -1)); - $this->assertNull($name->slice(0, -3)); - $this->assertEquals(new Name('bar'), $name->slice(1, -1)); - $this->assertNull($name->slice(1, -2)); - $this->assertEquals(new Name('bar'), $name->slice(-2, 1)); - $this->assertEquals(new Name('bar'), $name->slice(-2, -1)); - $this->assertNull($name->slice(-2, -2)); - } - - /** - * @expectedException \OutOfBoundsException - * @expectedExceptionMessage Offset 4 is out of bounds - */ - public function testSliceOffsetTooLarge() { - (new Name('foo\bar\baz'))->slice(4); - } - - /** - * @expectedException \OutOfBoundsException - * @expectedExceptionMessage Offset -4 is out of bounds - */ - public function testSliceOffsetTooSmall() { - (new Name('foo\bar\baz'))->slice(-4); - } - - /** - * @expectedException \OutOfBoundsException - * @expectedExceptionMessage Length 4 is out of bounds - */ - public function testSliceLengthTooLarge() { - (new Name('foo\bar\baz'))->slice(0, 4); - } - - /** - * @expectedException \OutOfBoundsException - * @expectedExceptionMessage Length -4 is out of bounds - */ - public function testSliceLengthTooSmall() { - (new Name('foo\bar\baz'))->slice(0, -4); - } - - public function testConcat() { - $this->assertEquals(new Name('foo\bar\baz'), Name::concat('foo', 'bar\baz')); - $this->assertEquals( - new Name\FullyQualified('foo\bar'), - Name\FullyQualified::concat(['foo'], new Name('bar')) - ); - - $attributes = ['foo' => 'bar']; - $this->assertEquals( - new Name\Relative('foo\bar\baz', $attributes), - Name\Relative::concat(new Name\FullyQualified('foo\bar'), 'baz', $attributes) - ); - - $this->assertEquals(new Name('foo'), Name::concat(null, 'foo')); - $this->assertEquals(new Name('foo'), Name::concat('foo', null)); - $this->assertNull(Name::concat(null, null)); - } - - public function testIs() { - $name = new Name('foo'); - $this->assertTrue ($name->isUnqualified()); - $this->assertFalse($name->isQualified()); - $this->assertFalse($name->isFullyQualified()); - $this->assertFalse($name->isRelative()); - - $name = new Name('foo\bar'); - $this->assertFalse($name->isUnqualified()); - $this->assertTrue ($name->isQualified()); - $this->assertFalse($name->isFullyQualified()); - $this->assertFalse($name->isRelative()); - - $name = new Name\FullyQualified('foo'); - $this->assertFalse($name->isUnqualified()); - $this->assertFalse($name->isQualified()); - $this->assertTrue ($name->isFullyQualified()); - $this->assertFalse($name->isRelative()); - - $name = new Name\Relative('foo'); - $this->assertFalse($name->isUnqualified()); - $this->assertFalse($name->isQualified()); - $this->assertFalse($name->isFullyQualified()); - $this->assertTrue ($name->isRelative()); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Expected string, array of parts or Name instance - */ - public function testInvalidArg() { - Name::concat('foo', new \stdClass); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php deleted file mode 100644 index 3141f563..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php +++ /dev/null @@ -1,25 +0,0 @@ -assertSame($name, $magicConst->getName()); - } - - public function provideTestGetName() { - return array( - array(new MagicConst\Class_, '__CLASS__'), - array(new MagicConst\Dir, '__DIR__'), - array(new MagicConst\File, '__FILE__'), - array(new MagicConst\Function_, '__FUNCTION__'), - array(new MagicConst\Line, '__LINE__'), - array(new MagicConst\Method, '__METHOD__'), - array(new MagicConst\Namespace_, '__NAMESPACE__'), - array(new MagicConst\Trait_, '__TRAIT__'), - ); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php deleted file mode 100644 index be390357..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php +++ /dev/null @@ -1,61 +0,0 @@ -assertSame( - $expected, - String_::parseEscapeSequences($string, $quote) - ); - } - - /** - * @dataProvider provideTestParse - */ - public function testCreate($expected, $string) { - $this->assertSame( - $expected, - String_::parse($string) - ); - } - - public function provideTestParseEscapeSequences() { - return array( - array('"', '\\"', '"'), - array('\\"', '\\"', '`'), - array('\\"\\`', '\\"\\`', null), - array("\\\$\n\r\t\f\v", '\\\\\$\n\r\t\f\v', null), - array("\x1B", '\e', null), - array(chr(255), '\xFF', null), - array(chr(255), '\377', null), - array(chr(0), '\400', null), - array("\0", '\0', null), - array('\xFF', '\\\\xFF', null), - ); - } - - public function provideTestParse() { - $tests = array( - array('A', '\'A\''), - array('A', 'b\'A\''), - array('A', '"A"'), - array('A', 'b"A"'), - array('\\', '\'\\\\\''), - array('\'', '\'\\\'\''), - ); - - foreach ($this->provideTestParseEscapeSequences() as $i => $test) { - // skip second and third tests, they aren't for double quotes - if ($i != 1 && $i != 2) { - $tests[] = array($test[0], '"' . $test[1] . '"'); - } - } - - return $tests; - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php deleted file mode 100644 index 610972c6..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertTrue($node->{'is' . $modifier}()); - } - - public function testNoModifiers() { - $node = new ClassConst(array(), 0); - - $this->assertTrue($node->isPublic()); - $this->assertFalse($node->isProtected()); - $this->assertFalse($node->isPrivate()); - $this->assertFalse($node->isStatic()); - } - - public function provideModifiers() { - return array( - array('public'), - array('protected'), - array('private'), - ); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php deleted file mode 100644 index fa8aed80..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php +++ /dev/null @@ -1,63 +0,0 @@ - constant('PhpParser\Node\Stmt\Class_::MODIFIER_' . strtoupper($modifier)) - )); - - $this->assertTrue($node->{'is' . $modifier}()); - } - - public function testNoModifiers() { - $node = new ClassMethod('foo', array('type' => 0)); - - $this->assertTrue($node->isPublic()); - $this->assertFalse($node->isProtected()); - $this->assertFalse($node->isPrivate()); - $this->assertFalse($node->isAbstract()); - $this->assertFalse($node->isFinal()); - $this->assertFalse($node->isStatic()); - } - - public function provideModifiers() { - return array( - array('public'), - array('protected'), - array('private'), - array('abstract'), - array('final'), - array('static'), - ); - } - - /** - * Checks that implicit public modifier detection for method is working - * - * @dataProvider implicitPublicModifiers - * - * @param integer $modifier Node type modifier - */ - public function testImplicitPublic($modifier) - { - $node = new ClassMethod('foo', array( - 'type' => constant('PhpParser\Node\Stmt\Class_::MODIFIER_' . strtoupper($modifier)) - )); - - $this->assertTrue($node->isPublic(), 'Node should be implicitly public'); - } - - public function implicitPublicModifiers() { - return array( - array('abstract'), - array('final'), - array('static'), - ); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php deleted file mode 100644 index 75d49e3a..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php +++ /dev/null @@ -1,66 +0,0 @@ - Class_::MODIFIER_ABSTRACT)); - $this->assertTrue($class->isAbstract()); - - $class = new Class_('Foo'); - $this->assertFalse($class->isAbstract()); - } - - public function testIsFinal() { - $class = new Class_('Foo', array('type' => Class_::MODIFIER_FINAL)); - $this->assertTrue($class->isFinal()); - - $class = new Class_('Foo'); - $this->assertFalse($class->isFinal()); - } - - public function testGetMethods() { - $methods = array( - new ClassMethod('foo'), - new ClassMethod('bar'), - new ClassMethod('fooBar'), - ); - $class = new Class_('Foo', array( - 'stmts' => array( - new TraitUse(array()), - $methods[0], - new ClassConst(array()), - $methods[1], - new Property(0, array()), - $methods[2], - ) - )); - - $this->assertSame($methods, $class->getMethods()); - } - - public function testGetMethod() { - $methodConstruct = new ClassMethod('__CONSTRUCT'); - $methodTest = new ClassMethod('test'); - $class = new Class_('Foo', array( - 'stmts' => array( - new ClassConst(array()), - $methodConstruct, - new Property(0, array()), - $methodTest, - ) - )); - - $this->assertSame($methodConstruct, $class->getMethod('__construct')); - $this->assertSame($methodTest, $class->getMethod('test')); - $this->assertNull($class->getMethod('nonExisting')); - } - - public function testDeprecatedTypeNode() { - $class = new Class_('Foo', array('type' => Class_::MODIFIER_ABSTRACT)); - $this->assertTrue($class->isAbstract()); - $this->assertSame(Class_::MODIFIER_ABSTRACT, $class->flags); - $this->assertSame(Class_::MODIFIER_ABSTRACT, $class->type); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php deleted file mode 100644 index c4990582..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php +++ /dev/null @@ -1,26 +0,0 @@ - array( - new Node\Stmt\ClassConst(array(new Node\Const_('C1', new Node\Scalar\String_('C1')))), - $methods[0], - new Node\Stmt\ClassConst(array(new Node\Const_('C2', new Node\Scalar\String_('C2')))), - $methods[1], - new Node\Stmt\ClassConst(array(new Node\Const_('C3', new Node\Scalar\String_('C3')))), - ) - )); - - $this->assertSame($methods, $interface->getMethods()); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php deleted file mode 100644 index bcfc0c6b..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php +++ /dev/null @@ -1,44 +0,0 @@ -assertTrue($node->{'is' . $modifier}()); - } - - public function testNoModifiers() { - $node = new Property(0, array()); - - $this->assertTrue($node->isPublic()); - $this->assertFalse($node->isProtected()); - $this->assertFalse($node->isPrivate()); - $this->assertFalse($node->isStatic()); - } - - public function testStaticImplicitlyPublic() { - $node = new Property(Class_::MODIFIER_STATIC, array()); - $this->assertTrue($node->isPublic()); - $this->assertFalse($node->isProtected()); - $this->assertFalse($node->isPrivate()); - $this->assertTrue($node->isStatic()); - } - - public function provideModifiers() { - return array( - array('public'), - array('protected'), - array('private'), - array('static'), - ); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php deleted file mode 100644 index 7fd0a39c..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php +++ /dev/null @@ -1,274 +0,0 @@ -subNode1 = $subNode1; - $this->subNode2 = $subNode2; - } - - public function getSubNodeNames() { - return array('subNode1', 'subNode2'); - } - - // This method is only overwritten because the node is located in an unusual namespace - public function getType() { - return 'Dummy'; - } -} - -class NodeAbstractTest extends \PHPUnit_Framework_TestCase -{ - public function provideNodes() { - $attributes = array( - 'startLine' => 10, - 'comments' => array( - new Comment('// Comment' . "\n"), - new Comment\Doc('/** doc comment */'), - ), - ); - - $node = new DummyNode('value1', 'value2', $attributes); - $node->notSubNode = 'value3'; - - return array( - array($attributes, $node), - ); - } - - /** - * @dataProvider provideNodes - */ - public function testConstruct(array $attributes, Node $node) { - $this->assertSame('Dummy', $node->getType()); - $this->assertSame(array('subNode1', 'subNode2'), $node->getSubNodeNames()); - $this->assertSame(10, $node->getLine()); - $this->assertSame('/** doc comment */', $node->getDocComment()->getText()); - $this->assertSame('value1', $node->subNode1); - $this->assertSame('value2', $node->subNode2); - $this->assertTrue(isset($node->subNode1)); - $this->assertTrue(isset($node->subNode2)); - $this->assertFalse(isset($node->subNode3)); - $this->assertSame($attributes, $node->getAttributes()); - - return $node; - } - - /** - * @dataProvider provideNodes - */ - public function testGetDocComment(array $attributes, Node $node) { - $this->assertSame('/** doc comment */', $node->getDocComment()->getText()); - array_pop($node->getAttribute('comments')); // remove doc comment - $this->assertNull($node->getDocComment()); - array_pop($node->getAttribute('comments')); // remove comment - $this->assertNull($node->getDocComment()); - } - - public function testSetDocComment() { - $node = new DummyNode(null, null, []); - - // Add doc comment to node without comments - $docComment = new Comment\Doc('/** doc */'); - $node->setDocComment($docComment); - $this->assertSame($docComment, $node->getDocComment()); - - // Replace it - $docComment = new Comment\Doc('/** doc 2 */'); - $node->setDocComment($docComment); - $this->assertSame($docComment, $node->getDocComment()); - - // Add docmment to node with other comments - $c1 = new Comment('/* foo */'); - $c2 = new Comment('/* bar */'); - $docComment = new Comment\Doc('/** baz */'); - $node->setAttribute('comments', [$c1, $c2]); - $node->setDocComment($docComment); - $this->assertSame([$c1, $c2, $docComment], $node->getAttribute('comments')); - } - - /** - * @dataProvider provideNodes - */ - public function testChange(array $attributes, Node $node) { - // change of line - $node->setLine(15); - $this->assertSame(15, $node->getLine()); - - // direct modification - $node->subNode = 'newValue'; - $this->assertSame('newValue', $node->subNode); - - // indirect modification - $subNode =& $node->subNode; - $subNode = 'newNewValue'; - $this->assertSame('newNewValue', $node->subNode); - - // removal - unset($node->subNode); - $this->assertFalse(isset($node->subNode)); - } - - /** - * @dataProvider provideNodes - */ - public function testIteration(array $attributes, Node $node) { - // Iteration is simple object iteration over properties, - // not over subnodes - $i = 0; - foreach ($node as $key => $value) { - if ($i === 0) { - $this->assertSame('subNode1', $key); - $this->assertSame('value1', $value); - } else if ($i === 1) { - $this->assertSame('subNode2', $key); - $this->assertSame('value2', $value); - } else if ($i === 2) { - $this->assertSame('notSubNode', $key); - $this->assertSame('value3', $value); - } else { - throw new \Exception; - } - $i++; - } - $this->assertSame(3, $i); - } - - public function testAttributes() { - /** @var $node Node */ - $node = $this->getMockForAbstractClass('PhpParser\NodeAbstract'); - - $this->assertEmpty($node->getAttributes()); - - $node->setAttribute('key', 'value'); - $this->assertTrue($node->hasAttribute('key')); - $this->assertSame('value', $node->getAttribute('key')); - - $this->assertFalse($node->hasAttribute('doesNotExist')); - $this->assertNull($node->getAttribute('doesNotExist')); - $this->assertSame('default', $node->getAttribute('doesNotExist', 'default')); - - $node->setAttribute('null', null); - $this->assertTrue($node->hasAttribute('null')); - $this->assertNull($node->getAttribute('null')); - $this->assertNull($node->getAttribute('null', 'default')); - - $this->assertSame( - array( - 'key' => 'value', - 'null' => null, - ), - $node->getAttributes() - ); - } - - public function testJsonSerialization() { - $code = <<<'PHP' -parse(canonicalize($code)); - $json = json_encode($stmts, JSON_PRETTY_PRINT); - $this->assertEquals(canonicalize($expected), canonicalize($json)); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php deleted file mode 100644 index 9bb65a74..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php +++ /dev/null @@ -1,105 +0,0 @@ -assertSame($this->canonicalize($dump), $this->canonicalize($dumper->dump($node))); - } - - public function provideTestDump() { - return array( - array( - array(), -'array( -)' - ), - array( - array('Foo', 'Bar', 'Key' => 'FooBar'), -'array( - 0: Foo - 1: Bar - Key: FooBar -)' - ), - array( - new Node\Name(array('Hallo', 'World')), -'Name( - parts: array( - 0: Hallo - 1: World - ) -)' - ), - array( - new Node\Expr\Array_(array( - new Node\Expr\ArrayItem(new Node\Scalar\String_('Foo')) - )), -'Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_String( - value: Foo - ) - byRef: false - ) - ) -)' - ), - ); - } - - public function testDumpWithPositions() { - $parser = (new ParserFactory)->create( - ParserFactory::ONLY_PHP7, - new Lexer(['usedAttributes' => ['startLine', 'endLine', 'startFilePos', 'endFilePos']]) - ); - $dumper = new NodeDumper(['dumpPositions' => true]); - - $code = "parse($code); - $dump = $dumper->dump($stmts, $code); - - $this->assertSame($this->canonicalize($expected), $this->canonicalize($dump)); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Can only dump nodes and arrays. - */ - public function testError() { - $dumper = new NodeDumper; - $dumper->dump(new \stdClass); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php deleted file mode 100644 index 9d27edcb..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php +++ /dev/null @@ -1,267 +0,0 @@ -getMockBuilder('PhpParser\NodeVisitor')->getMock(); - - $visitor->expects($this->at(0))->method('beforeTraverse')->with($stmts); - $visitor->expects($this->at(1))->method('enterNode')->with($echoNode); - $visitor->expects($this->at(2))->method('enterNode')->with($str1Node); - $visitor->expects($this->at(3))->method('leaveNode')->with($str1Node); - $visitor->expects($this->at(4))->method('enterNode')->with($str2Node); - $visitor->expects($this->at(5))->method('leaveNode')->with($str2Node); - $visitor->expects($this->at(6))->method('leaveNode')->with($echoNode); - $visitor->expects($this->at(7))->method('afterTraverse')->with($stmts); - - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - - $this->assertEquals($stmts, $traverser->traverse($stmts)); - } - - public function testModifying() { - $str1Node = new String_('Foo'); - $str2Node = new String_('Bar'); - $printNode = new Expr\Print_($str1Node); - - // first visitor changes the node, second verifies the change - $visitor1 = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor2 = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - - // replace empty statements with string1 node - $visitor1->expects($this->at(0))->method('beforeTraverse')->with(array()) - ->will($this->returnValue(array($str1Node))); - $visitor2->expects($this->at(0))->method('beforeTraverse')->with(array($str1Node)); - - // replace string1 node with print node - $visitor1->expects($this->at(1))->method('enterNode')->with($str1Node) - ->will($this->returnValue($printNode)); - $visitor2->expects($this->at(1))->method('enterNode')->with($printNode); - - // replace string1 node with string2 node - $visitor1->expects($this->at(2))->method('enterNode')->with($str1Node) - ->will($this->returnValue($str2Node)); - $visitor2->expects($this->at(2))->method('enterNode')->with($str2Node); - - // replace string2 node with string1 node again - $visitor1->expects($this->at(3))->method('leaveNode')->with($str2Node) - ->will($this->returnValue($str1Node)); - $visitor2->expects($this->at(3))->method('leaveNode')->with($str1Node); - - // replace print node with string1 node again - $visitor1->expects($this->at(4))->method('leaveNode')->with($printNode) - ->will($this->returnValue($str1Node)); - $visitor2->expects($this->at(4))->method('leaveNode')->with($str1Node); - - // replace string1 node with empty statements again - $visitor1->expects($this->at(5))->method('afterTraverse')->with(array($str1Node)) - ->will($this->returnValue(array())); - $visitor2->expects($this->at(5))->method('afterTraverse')->with(array()); - - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor1); - $traverser->addVisitor($visitor2); - - // as all operations are reversed we end where we start - $this->assertEquals(array(), $traverser->traverse(array())); - } - - public function testRemove() { - $str1Node = new String_('Foo'); - $str2Node = new String_('Bar'); - - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - - // remove the string1 node, leave the string2 node - $visitor->expects($this->at(2))->method('leaveNode')->with($str1Node) - ->will($this->returnValue(false)); - - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - - $this->assertEquals(array($str2Node), $traverser->traverse(array($str1Node, $str2Node))); - } - - public function testMerge() { - $strStart = new String_('Start'); - $strMiddle = new String_('End'); - $strEnd = new String_('Middle'); - $strR1 = new String_('Replacement 1'); - $strR2 = new String_('Replacement 2'); - - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - - // replace strMiddle with strR1 and strR2 by merge - $visitor->expects($this->at(4))->method('leaveNode')->with($strMiddle) - ->will($this->returnValue(array($strR1, $strR2))); - - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - - $this->assertEquals( - array($strStart, $strR1, $strR2, $strEnd), - $traverser->traverse(array($strStart, $strMiddle, $strEnd)) - ); - } - - public function testDeepArray() { - $strNode = new String_('Foo'); - $stmts = array(array(array($strNode))); - - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor->expects($this->at(1))->method('enterNode')->with($strNode); - - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - - $this->assertEquals($stmts, $traverser->traverse($stmts)); - } - - public function testDontTraverseChildren() { - $strNode = new String_('str'); - $printNode = new Expr\Print_($strNode); - $varNode = new Expr\Variable('foo'); - $mulNode = new Expr\BinaryOp\Mul($varNode, $varNode); - $negNode = new Expr\UnaryMinus($mulNode); - $stmts = array($printNode, $negNode); - - $visitor1 = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor2 = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - - $visitor1->expects($this->at(1))->method('enterNode')->with($printNode) - ->will($this->returnValue(NodeTraverser::DONT_TRAVERSE_CHILDREN)); - $visitor2->expects($this->at(1))->method('enterNode')->with($printNode); - - $visitor1->expects($this->at(2))->method('leaveNode')->with($printNode); - $visitor2->expects($this->at(2))->method('leaveNode')->with($printNode); - - $visitor1->expects($this->at(3))->method('enterNode')->with($negNode); - $visitor2->expects($this->at(3))->method('enterNode')->with($negNode); - - $visitor1->expects($this->at(4))->method('enterNode')->with($mulNode); - $visitor2->expects($this->at(4))->method('enterNode')->with($mulNode) - ->will($this->returnValue(NodeTraverser::DONT_TRAVERSE_CHILDREN)); - - $visitor1->expects($this->at(5))->method('leaveNode')->with($mulNode); - $visitor2->expects($this->at(5))->method('leaveNode')->with($mulNode); - - $visitor1->expects($this->at(6))->method('leaveNode')->with($negNode); - $visitor2->expects($this->at(6))->method('leaveNode')->with($negNode); - - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor1); - $traverser->addVisitor($visitor2); - - $this->assertEquals($stmts, $traverser->traverse($stmts)); - } - - public function testStopTraversal() { - $varNode1 = new Expr\Variable('a'); - $varNode2 = new Expr\Variable('b'); - $varNode3 = new Expr\Variable('c'); - $mulNode = new Expr\BinaryOp\Mul($varNode1, $varNode2); - $printNode = new Expr\Print_($varNode3); - $stmts = [$mulNode, $printNode]; - - // From enterNode() with array parent - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor->expects($this->at(1))->method('enterNode')->with($mulNode) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); - $visitor->expects($this->at(2))->method('afterTraverse'); - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - $this->assertEquals($stmts, $traverser->traverse($stmts)); - - // From enterNode with Node parent - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor->expects($this->at(2))->method('enterNode')->with($varNode1) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); - $visitor->expects($this->at(3))->method('afterTraverse'); - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - $this->assertEquals($stmts, $traverser->traverse($stmts)); - - // From leaveNode with Node parent - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor->expects($this->at(3))->method('leaveNode')->with($varNode1) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); - $visitor->expects($this->at(4))->method('afterTraverse'); - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - $this->assertEquals($stmts, $traverser->traverse($stmts)); - - // From leaveNode with array parent - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor->expects($this->at(6))->method('leaveNode')->with($mulNode) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); - $visitor->expects($this->at(7))->method('afterTraverse'); - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - $this->assertEquals($stmts, $traverser->traverse($stmts)); - - // Check that pending array modifications are still carried out - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor->expects($this->at(6))->method('leaveNode')->with($mulNode) - ->will($this->returnValue(NodeTraverser::REMOVE_NODE)); - $visitor->expects($this->at(7))->method('enterNode')->with($printNode) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); - $visitor->expects($this->at(8))->method('afterTraverse'); - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor); - $this->assertEquals([$printNode], $traverser->traverse($stmts)); - - } - - public function testRemovingVisitor() { - $visitor1 = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor2 = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor3 = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - - $traverser = new NodeTraverser; - $traverser->addVisitor($visitor1); - $traverser->addVisitor($visitor2); - $traverser->addVisitor($visitor3); - - $preExpected = array($visitor1, $visitor2, $visitor3); - $this->assertAttributeSame($preExpected, 'visitors', $traverser, 'The appropriate visitors have not been added'); - - $traverser->removeVisitor($visitor2); - - $postExpected = array(0 => $visitor1, 2 => $visitor3); - $this->assertAttributeSame($postExpected, 'visitors', $traverser, 'The appropriate visitors are not present after removal'); - } - - public function testNoCloneNodes() { - $stmts = array(new Node\Stmt\Echo_(array(new String_('Foo'), new String_('Bar')))); - - $traverser = new NodeTraverser; - - $this->assertSame($stmts, $traverser->traverse($stmts)); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage leaveNode() may only return an array if the parent structure is an array - */ - public function testReplaceByArrayOnlyAllowedIfParentIsArray() { - $stmts = array(new Node\Expr\UnaryMinus(new Node\Scalar\LNumber(42))); - - $visitor = $this->getMockBuilder('PhpParser\NodeVisitor')->getMock(); - $visitor->method('leaveNode')->willReturn(array(new Node\Scalar\DNumber(42.0))); - - $traverser = new NodeTraverser(); - $traverser->addVisitor($visitor); - $traverser->traverse($stmts); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php deleted file mode 100644 index 03133745..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php +++ /dev/null @@ -1,468 +0,0 @@ -addVisitor(new NameResolver); - - $stmts = $parser->parse($code); - $stmts = $traverser->traverse($stmts); - - $this->assertSame( - $this->canonicalize($expectedCode), - $prettyPrinter->prettyPrint($stmts) - ); - } - - /** - * @covers PhpParser\NodeVisitor\NameResolver - */ - public function testResolveLocations() { - $code = <<<'EOC' -addVisitor(new NameResolver); - - $stmts = $parser->parse($code); - $stmts = $traverser->traverse($stmts); - - $this->assertSame( - $this->canonicalize($expectedCode), - $prettyPrinter->prettyPrint($stmts) - ); - } - - public function testNoResolveSpecialName() { - $stmts = array(new Node\Expr\New_(new Name('self'))); - - $traverser = new PhpParser\NodeTraverser; - $traverser->addVisitor(new NameResolver); - - $this->assertEquals($stmts, $traverser->traverse($stmts)); - } - - public function testAddDeclarationNamespacedName() { - $nsStmts = array( - new Stmt\Class_('A'), - new Stmt\Interface_('B'), - new Stmt\Function_('C'), - new Stmt\Const_(array( - new Node\Const_('D', new Node\Scalar\LNumber(42)) - )), - new Stmt\Trait_('E'), - new Expr\New_(new Stmt\Class_(null)), - ); - - $traverser = new PhpParser\NodeTraverser; - $traverser->addVisitor(new NameResolver); - - $stmts = $traverser->traverse([new Stmt\Namespace_(new Name('NS'), $nsStmts)]); - $this->assertSame('NS\\A', (string) $stmts[0]->stmts[0]->namespacedName); - $this->assertSame('NS\\B', (string) $stmts[0]->stmts[1]->namespacedName); - $this->assertSame('NS\\C', (string) $stmts[0]->stmts[2]->namespacedName); - $this->assertSame('NS\\D', (string) $stmts[0]->stmts[3]->consts[0]->namespacedName); - $this->assertSame('NS\\E', (string) $stmts[0]->stmts[4]->namespacedName); - $this->assertObjectNotHasAttribute('namespacedName', $stmts[0]->stmts[5]->class); - - $stmts = $traverser->traverse([new Stmt\Namespace_(null, $nsStmts)]); - $this->assertSame('A', (string) $stmts[0]->stmts[0]->namespacedName); - $this->assertSame('B', (string) $stmts[0]->stmts[1]->namespacedName); - $this->assertSame('C', (string) $stmts[0]->stmts[2]->namespacedName); - $this->assertSame('D', (string) $stmts[0]->stmts[3]->consts[0]->namespacedName); - $this->assertSame('E', (string) $stmts[0]->stmts[4]->namespacedName); - $this->assertObjectNotHasAttribute('namespacedName', $stmts[0]->stmts[5]->class); - } - - public function testAddRuntimeResolvedNamespacedName() { - $stmts = array( - new Stmt\Namespace_(new Name('NS'), array( - new Expr\FuncCall(new Name('foo')), - new Expr\ConstFetch(new Name('FOO')), - )), - new Stmt\Namespace_(null, array( - new Expr\FuncCall(new Name('foo')), - new Expr\ConstFetch(new Name('FOO')), - )), - ); - - $traverser = new PhpParser\NodeTraverser; - $traverser->addVisitor(new NameResolver); - $stmts = $traverser->traverse($stmts); - - $this->assertSame('NS\\foo', (string) $stmts[0]->stmts[0]->name->getAttribute('namespacedName')); - $this->assertSame('NS\\FOO', (string) $stmts[0]->stmts[1]->name->getAttribute('namespacedName')); - - $this->assertFalse($stmts[1]->stmts[0]->name->hasAttribute('namespacedName')); - $this->assertFalse($stmts[1]->stmts[1]->name->hasAttribute('namespacedName')); - } - - /** - * @dataProvider provideTestError - */ - public function testError(Node $stmt, $errorMsg) { - $this->setExpectedException('PhpParser\Error', $errorMsg); - - $traverser = new PhpParser\NodeTraverser; - $traverser->addVisitor(new NameResolver); - $traverser->traverse(array($stmt)); - } - - public function provideTestError() { - return array( - array( - new Stmt\Use_(array( - new Stmt\UseUse(new Name('A\B'), 'B', 0, array('startLine' => 1)), - new Stmt\UseUse(new Name('C\D'), 'B', 0, array('startLine' => 2)), - ), Stmt\Use_::TYPE_NORMAL), - 'Cannot use C\D as B because the name is already in use on line 2' - ), - array( - new Stmt\Use_(array( - new Stmt\UseUse(new Name('a\b'), 'b', 0, array('startLine' => 1)), - new Stmt\UseUse(new Name('c\d'), 'B', 0, array('startLine' => 2)), - ), Stmt\Use_::TYPE_FUNCTION), - 'Cannot use function c\d as B because the name is already in use on line 2' - ), - array( - new Stmt\Use_(array( - new Stmt\UseUse(new Name('A\B'), 'B', 0, array('startLine' => 1)), - new Stmt\UseUse(new Name('C\D'), 'B', 0, array('startLine' => 2)), - ), Stmt\Use_::TYPE_CONSTANT), - 'Cannot use const C\D as B because the name is already in use on line 2' - ), - array( - new Expr\New_(new Name\FullyQualified('self', array('startLine' => 3))), - "'\\self' is an invalid class name on line 3" - ), - array( - new Expr\New_(new Name\Relative('self', array('startLine' => 3))), - "'\\self' is an invalid class name on line 3" - ), - array( - new Expr\New_(new Name\FullyQualified('PARENT', array('startLine' => 3))), - "'\\PARENT' is an invalid class name on line 3" - ), - array( - new Expr\New_(new Name\Relative('STATIC', array('startLine' => 3))), - "'\\STATIC' is an invalid class name on line 3" - ), - ); - } - - public function testClassNameIsCaseInsensitive() - { - $source = <<<'EOC' -parse($source); - - $traverser = new PhpParser\NodeTraverser; - $traverser->addVisitor(new NameResolver); - - $stmts = $traverser->traverse($stmts); - $stmt = $stmts[0]; - - $this->assertSame(array('Bar', 'Baz'), $stmt->stmts[1]->expr->class->parts); - } - - public function testSpecialClassNamesAreCaseInsensitive() { - $source = <<<'EOC' -parse($source); - - $traverser = new PhpParser\NodeTraverser; - $traverser->addVisitor(new NameResolver); - - $stmts = $traverser->traverse($stmts); - $classStmt = $stmts[0]; - $methodStmt = $classStmt->stmts[0]->stmts[0]; - - $this->assertSame('SELF', (string)$methodStmt->stmts[0]->class); - $this->assertSame('PARENT', (string)$methodStmt->stmts[1]->class); - $this->assertSame('STATIC', (string)$methodStmt->stmts[2]->class); - } - - public function testAddOriginalNames() { - $traverser = new PhpParser\NodeTraverser; - $traverser->addVisitor(new NameResolver(null, ['preserveOriginalNames' => true])); - - $n1 = new Name('Bar'); - $n2 = new Name('bar'); - $origStmts = [ - new Stmt\Namespace_(new Name('Foo'), [ - new Expr\ClassConstFetch($n1, 'FOO'), - new Expr\FuncCall($n2), - ]) - ]; - - $stmts = $traverser->traverse($origStmts); - - $this->assertSame($n1, $stmts[0]->stmts[0]->class->getAttribute('originalName')); - $this->assertSame($n2, $stmts[0]->stmts[1]->name->getAttribute('originalName')); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php b/vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php deleted file mode 100644 index 01d3b604..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php +++ /dev/null @@ -1,94 +0,0 @@ - []]); - return new Multiple([new Php7($lexer), new Php5($lexer)]); - } - - private function getPrefer5() { - $lexer = new Lexer(['usedAttributes' => []]); - return new Multiple([new Php5($lexer), new Php7($lexer)]); - } - - /** @dataProvider provideTestParse */ - public function testParse($code, Multiple $parser, $expected) { - $this->assertEquals($expected, $parser->parse($code)); - } - - public function provideTestParse() { - return [ - [ - // PHP 7 only code - 'getPrefer5(), - [ - new Stmt\Class_('Test', ['stmts' => [ - new Stmt\ClassMethod('function') - ]]), - ] - ], - [ - // PHP 5 only code - 'b;', - $this->getPrefer7(), - [ - new Stmt\Global_([ - new Expr\Variable(new Expr\PropertyFetch(new Expr\Variable('a'), 'b')) - ]) - ] - ], - [ - // Different meaning (PHP 5) - 'getPrefer5(), - [ - new Expr\Variable( - new Expr\ArrayDimFetch(new Expr\Variable('a'), LNumber::fromString('0')) - ) - ] - ], - [ - // Different meaning (PHP 7) - 'getPrefer7(), - [ - new Expr\ArrayDimFetch( - new Expr\Variable(new Expr\Variable('a')), LNumber::fromString('0') - ) - ] - ], - ]; - } - - public function testThrownError() { - $this->setExpectedException('PhpParser\Error', 'FAIL A'); - - $parserA = $this->getMockBuilder('PhpParser\Parser')->getMock(); - $parserA->expects($this->at(0)) - ->method('parse')->will($this->throwException(new Error('FAIL A'))); - - $parserB = $this->getMockBuilder('PhpParser\Parser')->getMock(); - $parserB->expects($this->at(0)) - ->method('parse')->will($this->throwException(new Error('FAIL B'))); - - $parser = new Multiple([$parserA, $parserB]); - $parser->parse('dummy'); - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php b/vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php deleted file mode 100644 index 58c4e617..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php +++ /dev/null @@ -1,14 +0,0 @@ -assertInstanceOf($expected, (new ParserFactory)->create($kind, $lexer)); - } - - public function provideTestCreate() { - $lexer = new Lexer(); - return [ - [ - ParserFactory::PREFER_PHP7, $lexer, - 'PhpParser\Parser\Multiple' - ], - [ - ParserFactory::PREFER_PHP5, null, - 'PhpParser\Parser\Multiple' - ], - [ - ParserFactory::ONLY_PHP7, null, - 'PhpParser\Parser\Php7' - ], - [ - ParserFactory::ONLY_PHP5, $lexer, - 'PhpParser\Parser\Php5' - ] - ]; - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/PhpParser/ParserTest.php b/vendor/nikic/php-parser/test/PhpParser/ParserTest.php deleted file mode 100644 index 0dabba21..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/ParserTest.php +++ /dev/null @@ -1,184 +0,0 @@ -getParser(new Lexer()); - $parser->parse('getParser(new Lexer()); - $parser->parse('getParser(new Lexer()); - $parser->parse(' array( - 'comments', 'startLine', 'endLine', - 'startTokenPos', 'endTokenPos', - ) - )); - - $code = <<<'EOC' -getParser($lexer); - $stmts = $parser->parse($code); - - /** @var \PhpParser\Node\Stmt\Function_ $fn */ - $fn = $stmts[0]; - $this->assertInstanceOf('PhpParser\Node\Stmt\Function_', $fn); - $this->assertEquals(array( - 'comments' => array( - new Comment\Doc('/** Doc comment */', 2, 6), - ), - 'startLine' => 3, - 'endLine' => 7, - 'startTokenPos' => 3, - 'endTokenPos' => 21, - ), $fn->getAttributes()); - - $param = $fn->params[0]; - $this->assertInstanceOf('PhpParser\Node\Param', $param); - $this->assertEquals(array( - 'startLine' => 3, - 'endLine' => 3, - 'startTokenPos' => 7, - 'endTokenPos' => 7, - ), $param->getAttributes()); - - /** @var \PhpParser\Node\Stmt\Echo_ $echo */ - $echo = $fn->stmts[0]; - $this->assertInstanceOf('PhpParser\Node\Stmt\Echo_', $echo); - $this->assertEquals(array( - 'comments' => array( - new Comment("// Line\n", 4, 49), - new Comment("// Comments\n", 5, 61), - ), - 'startLine' => 6, - 'endLine' => 6, - 'startTokenPos' => 16, - 'endTokenPos' => 19, - ), $echo->getAttributes()); - - /** @var \PhpParser\Node\Expr\Variable $var */ - $var = $echo->exprs[0]; - $this->assertInstanceOf('PhpParser\Node\Expr\Variable', $var); - $this->assertEquals(array( - 'startLine' => 6, - 'endLine' => 6, - 'startTokenPos' => 18, - 'endTokenPos' => 18, - ), $var->getAttributes()); - } - - /** - * @expectedException \RangeException - * @expectedExceptionMessage The lexer returned an invalid token (id=999, value=foobar) - */ - public function testInvalidToken() { - $lexer = new InvalidTokenLexer; - $parser = $this->getParser($lexer); - $parser->parse('dummy'); - } - - /** - * @dataProvider provideTestExtraAttributes - */ - public function testExtraAttributes($code, $expectedAttributes) { - $parser = $this->getParser(new Lexer); - $stmts = $parser->parse("getAttributes(); - foreach ($expectedAttributes as $name => $value) { - $this->assertSame($value, $attributes[$name]); - } - } - - public function provideTestExtraAttributes() { - return array( - array('0', ['kind' => Scalar\LNumber::KIND_DEC]), - array('9', ['kind' => Scalar\LNumber::KIND_DEC]), - array('07', ['kind' => Scalar\LNumber::KIND_OCT]), - array('0xf', ['kind' => Scalar\LNumber::KIND_HEX]), - array('0XF', ['kind' => Scalar\LNumber::KIND_HEX]), - array('0b1', ['kind' => Scalar\LNumber::KIND_BIN]), - array('0B1', ['kind' => Scalar\LNumber::KIND_BIN]), - array('[]', ['kind' => Expr\Array_::KIND_SHORT]), - array('array()', ['kind' => Expr\Array_::KIND_LONG]), - array("'foo'", ['kind' => String_::KIND_SINGLE_QUOTED]), - array("b'foo'", ['kind' => String_::KIND_SINGLE_QUOTED]), - array("B'foo'", ['kind' => String_::KIND_SINGLE_QUOTED]), - array('"foo"', ['kind' => String_::KIND_DOUBLE_QUOTED]), - array('b"foo"', ['kind' => String_::KIND_DOUBLE_QUOTED]), - array('B"foo"', ['kind' => String_::KIND_DOUBLE_QUOTED]), - array('"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]), - array('b"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]), - array('B"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]), - array("<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']), - array("<< String_::KIND_HEREDOC, 'docLabel' => 'STR']), - array("<<<\"STR\"\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']), - array("b<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']), - array("B<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']), - array("<<< \t 'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']), - // HHVM doesn't support this due to a lexer bug - // (https://github.com/facebook/hhvm/issues/6970) - // array("<<<'\xff'\n\xff\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => "\xff"]), - array("<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']), - array("b<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']), - array("B<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']), - array("<<< \t \"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']), - array("die", ['kind' => Expr\Exit_::KIND_DIE]), - array("die('done')", ['kind' => Expr\Exit_::KIND_DIE]), - array("exit", ['kind' => Expr\Exit_::KIND_EXIT]), - array("exit(1)", ['kind' => Expr\Exit_::KIND_EXIT]), - array("?>Foo", ['hasLeadingNewline' => false]), - array("?>\nFoo", ['hasLeadingNewline' => true]), - array("namespace Foo;", ['kind' => Node\Stmt\Namespace_::KIND_SEMICOLON]), - array("namespace Foo {}", ['kind' => Node\Stmt\Namespace_::KIND_BRACED]), - array("namespace {}", ['kind' => Node\Stmt\Namespace_::KIND_BRACED]), - ); - } -} - -class InvalidTokenLexer extends Lexer { - public function getNextToken(&$value = null, &$startAttributes = null, &$endAttributes = null) { - $value = 'foobar'; - return 999; - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php b/vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php deleted file mode 100644 index 908c18b2..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php +++ /dev/null @@ -1,207 +0,0 @@ -parseModeLine($modeLine); - $prettyPrinter = new Standard($options); - - try { - $output5 = canonicalize($prettyPrinter->$method($parser5->parse($code))); - } catch (Error $e) { - $output5 = null; - if ('php7' !== $version) { - throw $e; - } - } - - try { - $output7 = canonicalize($prettyPrinter->$method($parser7->parse($code))); - } catch (Error $e) { - $output7 = null; - if ('php5' !== $version) { - throw $e; - } - } - - if ('php5' === $version) { - $this->assertSame($expected, $output5, $name); - $this->assertNotSame($expected, $output7, $name); - } else if ('php7' === $version) { - $this->assertSame($expected, $output7, $name); - $this->assertNotSame($expected, $output5, $name); - } else { - $this->assertSame($expected, $output5, $name); - $this->assertSame($expected, $output7, $name); - } - } - - /** - * @dataProvider provideTestPrettyPrint - * @covers PhpParser\PrettyPrinter\Standard - */ - public function testPrettyPrint($name, $code, $expected, $mode) { - $this->doTestPrettyPrintMethod('prettyPrint', $name, $code, $expected, $mode); - } - - /** - * @dataProvider provideTestPrettyPrintFile - * @covers PhpParser\PrettyPrinter\Standard - */ - public function testPrettyPrintFile($name, $code, $expected, $mode) { - $this->doTestPrettyPrintMethod('prettyPrintFile', $name, $code, $expected, $mode); - } - - public function provideTestPrettyPrint() { - return $this->getTests(__DIR__ . '/../code/prettyPrinter', 'test'); - } - - public function provideTestPrettyPrintFile() { - return $this->getTests(__DIR__ . '/../code/prettyPrinter', 'file-test'); - } - - public function testPrettyPrintExpr() { - $prettyPrinter = new Standard; - $expr = new Expr\BinaryOp\Mul( - new Expr\BinaryOp\Plus(new Expr\Variable('a'), new Expr\Variable('b')), - new Expr\Variable('c') - ); - $this->assertEquals('($a + $b) * $c', $prettyPrinter->prettyPrintExpr($expr)); - - $expr = new Expr\Closure(array( - 'stmts' => array(new Stmt\Return_(new String_("a\nb"))) - )); - $this->assertEquals("function () {\n return 'a\nb';\n}", $prettyPrinter->prettyPrintExpr($expr)); - } - - public function testCommentBeforeInlineHTML() { - $prettyPrinter = new PrettyPrinter\Standard; - $comment = new Comment\Doc("/**\n * This is a comment\n */"); - $stmts = [new Stmt\InlineHTML('Hello World!', ['comments' => [$comment]])]; - $expected = "\nHello World!"; - $this->assertSame($expected, $prettyPrinter->prettyPrintFile($stmts)); - } - - private function parseModeLine($modeLine) { - $parts = explode(' ', $modeLine, 2); - $version = isset($parts[0]) ? $parts[0] : 'both'; - $options = isset($parts[1]) ? json_decode($parts[1], true) : []; - return [$version, $options]; - } - - public function testArraySyntaxDefault() { - $prettyPrinter = new Standard(['shortArraySyntax' => true]); - $expr = new Expr\Array_([ - new Expr\ArrayItem(new String_('val'), new String_('key')) - ]); - $expected = "['key' => 'val']"; - $this->assertSame($expected, $prettyPrinter->prettyPrintExpr($expr)); - } - - /** - * @dataProvider provideTestKindAttributes - */ - public function testKindAttributes($node, $expected) { - $prttyPrinter = new PrettyPrinter\Standard; - $result = $prttyPrinter->prettyPrintExpr($node); - $this->assertSame($expected, $result); - } - - public function provideTestKindAttributes() { - $nowdoc = ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']; - $heredoc = ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']; - return [ - // Defaults to single quoted - [new String_('foo'), "'foo'"], - // Explicit single/double quoted - [new String_('foo', ['kind' => String_::KIND_SINGLE_QUOTED]), "'foo'"], - [new String_('foo', ['kind' => String_::KIND_DOUBLE_QUOTED]), '"foo"'], - // Fallback from doc string if no label - [new String_('foo', ['kind' => String_::KIND_NOWDOC]), "'foo'"], - [new String_('foo', ['kind' => String_::KIND_HEREDOC]), '"foo"'], - // Fallback if string contains label - [new String_("A\nB\nC", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'A']), "'A\nB\nC'"], - [new String_("A\nB\nC", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'B']), "'A\nB\nC'"], - [new String_("A\nB\nC", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'C']), "'A\nB\nC'"], - [new String_("STR;", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']), "'STR;'"], - // Doc string if label not contained (or not in ending position) - [new String_("foo", $nowdoc), "<<<'STR'\nfoo\nSTR\n"], - [new String_("foo", $heredoc), "<<prettyPrintExpr($node); - $this->assertSame($expected, $result); - } - - public function provideTestUnnaturalLiterals() { - return [ - [new LNumber(-1), '-1'], - [new LNumber(-PHP_INT_MAX - 1), '(-' . PHP_INT_MAX . '-1)'], - [new LNumber(-1, ['kind' => LNumber::KIND_BIN]), '-0b1'], - [new LNumber(-1, ['kind' => LNumber::KIND_OCT]), '-01'], - [new LNumber(-1, ['kind' => LNumber::KIND_HEX]), '-0x1'], - [new DNumber(\INF), '\INF'], - [new DNumber(-\INF), '-\INF'], - [new DNumber(-\NAN), '\NAN'], - ]; - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot pretty-print AST with Error nodes - */ - public function testPrettyPrintWithError() { - $stmts = [new Expr\PropertyFetch(new Expr\Variable('a'), new Expr\Error())]; - $prettyPrinter = new PrettyPrinter\Standard; - $prettyPrinter->prettyPrint($stmts); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot pretty-print AST with Error nodes - */ - public function testPrettyPrintWithErrorInClassConstFetch() { - $stmts = [new Expr\ClassConstFetch(new Name('Foo'), new Expr\Error())]; - $prettyPrinter = new PrettyPrinter\Standard; - $prettyPrinter->prettyPrint($stmts); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Serializer/XMLTest.php b/vendor/nikic/php-parser/test/PhpParser/Serializer/XMLTest.php deleted file mode 100644 index e1186f4d..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Serializer/XMLTest.php +++ /dev/null @@ -1,172 +0,0 @@ - - */ - public function testSerialize() { - $code = << - - - - - 4 - - - - // comment - - /** doc comment */ - - - - 6 - - - - - - functionName - - - - - - 4 - - - 4 - - - - - - - - - - - - a - - - - - 4 - - - 4 - - - 10 - - - 0 - - - - - - - 4 - - - 4 - - - - - - - - - - - - b - - - - - 4 - - - 4 - - - 1 - - - - - - - - - - - - - - 5 - - - 5 - - - - - - 5 - - - 5 - - - 1 - - - Foo - - - - - - - - - - -XML; - - $parser = new PhpParser\Parser\Php7(new PhpParser\Lexer); - $serializer = new XML; - - $code = str_replace("\r\n", "\n", $code); - $stmts = $parser->parse($code); - $this->assertXmlStringEqualsXmlString($xml, $serializer->serialize($stmts)); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Unexpected node type - */ - public function testError() { - $serializer = new XML; - $serializer->serialize(array(new \stdClass)); - } -} diff --git a/vendor/nikic/php-parser/test/PhpParser/Unserializer/XMLTest.php b/vendor/nikic/php-parser/test/PhpParser/Unserializer/XMLTest.php deleted file mode 100644 index 3bc86dbe..00000000 --- a/vendor/nikic/php-parser/test/PhpParser/Unserializer/XMLTest.php +++ /dev/null @@ -1,150 +0,0 @@ - - - - - 1 - - - - // comment - - /** doc comment */ - - - - Test - - - -XML; - - $unserializer = new XML; - $this->assertEquals( - new Scalar\String_('Test', array( - 'startLine' => 1, - 'comments' => array( - new Comment('// comment' . "\n", 2), - new Comment\Doc('/** doc comment */', 3), - ), - )), - $unserializer->unserialize($xml) - ); - } - - public function testEmptyNode() { - $xml = << - - - -XML; - - $unserializer = new XML; - - $this->assertEquals( - new Scalar\MagicConst\Class_, - $unserializer->unserialize($xml) - ); - } - - public function testScalars() { - $xml = << - - - - - test - - - 1 - 1 - 1.5 - - - - - -XML; - $result = array( - array(), array(), - 'test', '', '', - 1, - 1, 1.5, - true, false, null - ); - - $unserializer = new XML; - $this->assertEquals($result, $unserializer->unserialize($xml)); - } - - /** - * @expectedException \DomainException - * @expectedExceptionMessage AST root element not found - */ - public function testWrongRootElementError() { - $xml = << - -XML; - - $unserializer = new XML; - $unserializer->unserialize($xml); - } - - /** - * @dataProvider provideTestErrors - */ - public function testErrors($xml, $errorMsg) { - $this->setExpectedException('DomainException', $errorMsg); - - $xml = << - - $xml - -XML; - - $unserializer = new XML; - $unserializer->unserialize($xml); - } - - public function provideTestErrors() { - return array( - array('test', '"true" scalar must be empty'), - array('test', '"false" scalar must be empty'), - array('test', '"null" scalar must be empty'), - array('bar', 'Unknown scalar type "foo"'), - array('x', '"x" is not a valid int'), - array('x', '"x" is not a valid float'), - array('', 'Expected node or scalar'), - array('test', 'Unexpected node of type "foo:bar"'), - array( - 'test', - 'Expected sub node or attribute, got node of type "foo:bar"' - ), - array( - '', - 'Expected node or scalar' - ), - array( - '', - 'Unknown node type "Foo"' - ), - ); - } -} diff --git a/vendor/nikic/php-parser/test/bootstrap.php b/vendor/nikic/php-parser/test/bootstrap.php deleted file mode 100644 index 9526b648..00000000 --- a/vendor/nikic/php-parser/test/bootstrap.php +++ /dev/null @@ -1,20 +0,0 @@ - ------ -array( - 0: Stmt_Nop( - comments: array( - 0: /** doc */ - 1: /* foobar */ - 2: // foo - 3: // bar - ) - ) -) ------ - -; ------ -!!positions -Syntax error, unexpected ';', expecting T_STRING or T_VARIABLE or '{' or '$' from 3:1 to 3:1 -array( - 0: Expr_PropertyFetch[2:1 - 2:6]( - var: Expr_Variable[2:1 - 2:4]( - name: foo - ) - name: Expr_Error[3:1 - 2:6]( - ) - ) -) ------ - -} ------ -!!positions -Syntax error, unexpected '}', expecting T_STRING or T_VARIABLE or '{' or '$' from 4:1 to 4:1 -array( - 0: Stmt_Function[2:1 - 4:1]( - byRef: false - name: foo - params: array( - ) - returnType: null - stmts: array( - 0: Expr_PropertyFetch[3:5 - 3:10]( - var: Expr_Variable[3:5 - 3:8]( - name: bar - ) - name: Expr_Error[4:1 - 3:10]( - ) - ) - ) - ) -) ------ - 'd', 'e' => &$f); - -// short array syntax -[]; -[1, 2, 3]; -['a' => 'b']; ------ -array( - 0: Expr_Array( - items: array( - ) - ) - 1: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_String( - value: a - ) - byRef: false - ) - ) - ) - 2: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_String( - value: a - ) - byRef: false - ) - ) - ) - 3: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_String( - value: a - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Scalar_String( - value: b - ) - byRef: false - ) - ) - ) - 4: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_String( - value: a - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: b - ) - byRef: true - ) - 2: Expr_ArrayItem( - key: Scalar_String( - value: c - ) - value: Scalar_String( - value: d - ) - byRef: false - ) - 3: Expr_ArrayItem( - key: Scalar_String( - value: e - ) - value: Expr_Variable( - name: f - ) - byRef: true - ) - ) - ) - 5: Expr_Array( - items: array( - ) - comments: array( - 0: // short array syntax - ) - ) - 6: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 1 - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 2 - ) - byRef: false - ) - 2: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 3 - ) - byRef: false - ) - ) - ) - 7: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: Scalar_String( - value: a - ) - value: Scalar_String( - value: b - ) - byRef: false - ) - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test b/vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test deleted file mode 100644 index 4ca76b21..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test +++ /dev/null @@ -1,144 +0,0 @@ -Array destructuring ------ - $b, 'b' => $a] = $baz; ------ -!!php7 -array( - 0: Expr_Assign( - var: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: a - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: b - ) - byRef: false - ) - ) - ) - expr: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: c - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: d - ) - byRef: false - ) - ) - ) - ) - 1: Expr_Assign( - var: Expr_Array( - items: array( - 0: null - 1: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: a - ) - byRef: false - ) - 2: null - 3: null - 4: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: b - ) - byRef: false - ) - 5: null - ) - ) - expr: Expr_Variable( - name: foo - ) - ) - 2: Expr_Assign( - var: Expr_Array( - items: array( - 0: null - 1: Expr_ArrayItem( - key: null - value: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: a - ) - byRef: false - ) - ) - ) - byRef: false - ) - ) - ) - byRef: false - ) - 2: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: b - ) - byRef: false - ) - ) - ) - expr: Expr_Variable( - name: bar - ) - ) - 3: Expr_Assign( - var: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: Scalar_String( - value: a - ) - value: Expr_Variable( - name: b - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: Scalar_String( - value: b - ) - value: Expr_Variable( - name: a - ) - byRef: false - ) - ) - ) - expr: Expr_Variable( - name: baz - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/assign.test b/vendor/nikic/php-parser/test/code/parser/expr/assign.test deleted file mode 100644 index 1d6b187a..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/assign.test +++ /dev/null @@ -1,301 +0,0 @@ -Assignments ------ ->= $b; -$a **= $b; - -// chained assign -$a = $b *= $c **= $d; - -// by ref assign -$a =& $b; - -// list() assign -list($a) = $b; -list($a, , $b) = $c; -list($a, list(, $c), $d) = $e; - -// inc/dec -++$a; -$a++; ---$a; -$a--; ------ -array( - 0: Expr_Assign( - var: Expr_Variable( - name: a - comments: array( - 0: // simple assign - ) - ) - expr: Expr_Variable( - name: b - ) - comments: array( - 0: // simple assign - ) - ) - 1: Expr_AssignOp_BitwiseAnd( - var: Expr_Variable( - name: a - comments: array( - 0: // combined assign - ) - ) - expr: Expr_Variable( - name: b - ) - comments: array( - 0: // combined assign - ) - ) - 2: Expr_AssignOp_BitwiseOr( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 3: Expr_AssignOp_BitwiseXor( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 4: Expr_AssignOp_Concat( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 5: Expr_AssignOp_Div( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 6: Expr_AssignOp_Minus( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 7: Expr_AssignOp_Mod( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 8: Expr_AssignOp_Mul( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 9: Expr_AssignOp_Plus( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 10: Expr_AssignOp_ShiftLeft( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 11: Expr_AssignOp_ShiftRight( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 12: Expr_AssignOp_Pow( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - 13: Expr_Assign( - var: Expr_Variable( - name: a - comments: array( - 0: // chained assign - ) - ) - expr: Expr_AssignOp_Mul( - var: Expr_Variable( - name: b - ) - expr: Expr_AssignOp_Pow( - var: Expr_Variable( - name: c - ) - expr: Expr_Variable( - name: d - ) - ) - ) - comments: array( - 0: // chained assign - ) - ) - 14: Expr_AssignRef( - var: Expr_Variable( - name: a - comments: array( - 0: // by ref assign - ) - ) - expr: Expr_Variable( - name: b - ) - comments: array( - 0: // by ref assign - ) - ) - 15: Expr_Assign( - var: Expr_List( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: a - ) - byRef: false - ) - ) - comments: array( - 0: // list() assign - ) - ) - expr: Expr_Variable( - name: b - ) - comments: array( - 0: // list() assign - ) - ) - 16: Expr_Assign( - var: Expr_List( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: a - ) - byRef: false - ) - 1: null - 2: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: b - ) - byRef: false - ) - ) - ) - expr: Expr_Variable( - name: c - ) - ) - 17: Expr_Assign( - var: Expr_List( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: a - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Expr_List( - items: array( - 0: null - 1: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: c - ) - byRef: false - ) - ) - ) - byRef: false - ) - 2: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: d - ) - byRef: false - ) - ) - ) - expr: Expr_Variable( - name: e - ) - ) - 18: Expr_PreInc( - var: Expr_Variable( - name: a - ) - comments: array( - 0: // inc/dec - ) - ) - 19: Expr_PostInc( - var: Expr_Variable( - name: a - ) - ) - 20: Expr_PreDec( - var: Expr_Variable( - name: a - ) - ) - 21: Expr_PostDec( - var: Expr_Variable( - name: a - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/assignNewByRef.test b/vendor/nikic/php-parser/test/code/parser/expr/assignNewByRef.test deleted file mode 100644 index 10e1317f..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/assignNewByRef.test +++ /dev/null @@ -1,39 +0,0 @@ -Assigning new by reference (PHP 5 only) ------ - $b; -$a >= $b; -$a == $b; -$a === $b; -$a != $b; -$a !== $b; -$a <=> $b; -$a instanceof B; -$a instanceof $b; ------ -array( - 0: Expr_BinaryOp_Smaller( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 1: Expr_BinaryOp_SmallerOrEqual( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 2: Expr_BinaryOp_Greater( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 3: Expr_BinaryOp_GreaterOrEqual( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 4: Expr_BinaryOp_Equal( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 5: Expr_BinaryOp_Identical( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 6: Expr_BinaryOp_NotEqual( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 7: Expr_BinaryOp_NotIdentical( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 8: Expr_BinaryOp_Spaceship( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 9: Expr_Instanceof( - expr: Expr_Variable( - name: a - ) - class: Name( - parts: array( - 0: B - ) - ) - ) - 10: Expr_Instanceof( - expr: Expr_Variable( - name: a - ) - class: Expr_Variable( - name: b - ) - ) -) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test b/vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test deleted file mode 100644 index 3e7a23ef..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test +++ /dev/null @@ -1,621 +0,0 @@ -Expressions in static scalar context ------ - 0; -const T_20 = 1 >= 0; -const T_21 = 1 === 1; -const T_22 = 1 !== 1; -const T_23 = 0 != "0"; -const T_24 = 1 == "1"; -const T_25 = 1 + 2 * 3; -const T_26 = "1" + 2 + "3"; -const T_27 = 2 ** 3; -const T_28 = [1, 2, 3][1]; -const T_29 = 12 - 13; -const T_30 = 12 ^ 13; -const T_31 = 12 & 13; -const T_32 = 12 | 13; -const T_33 = 12 % 3; -const T_34 = 100 >> 4; -const T_35 = !false; ------ -array( - 0: Stmt_Const( - consts: array( - 0: Const( - name: T_1 - value: Expr_BinaryOp_ShiftLeft( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 1 - ) - ) - ) - ) - ) - 1: Stmt_Const( - consts: array( - 0: Const( - name: T_2 - value: Expr_BinaryOp_Div( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 2 - ) - ) - ) - ) - ) - 2: Stmt_Const( - consts: array( - 0: Const( - name: T_3 - value: Expr_BinaryOp_Plus( - left: Scalar_DNumber( - value: 1.5 - ) - right: Scalar_DNumber( - value: 1.5 - ) - ) - ) - ) - ) - 3: Stmt_Const( - consts: array( - 0: Const( - name: T_4 - value: Expr_BinaryOp_Concat( - left: Scalar_String( - value: foo - ) - right: Scalar_String( - value: bar - ) - ) - ) - ) - ) - 4: Stmt_Const( - consts: array( - 0: Const( - name: T_5 - value: Expr_BinaryOp_Mul( - left: Expr_BinaryOp_Plus( - left: Scalar_DNumber( - value: 1.5 - ) - right: Scalar_DNumber( - value: 1.5 - ) - ) - right: Scalar_LNumber( - value: 2 - ) - ) - ) - ) - ) - 5: Stmt_Const( - consts: array( - 0: Const( - name: T_6 - value: Expr_BinaryOp_Concat( - left: Expr_BinaryOp_Concat( - left: Expr_BinaryOp_Concat( - left: Scalar_String( - value: foo - ) - right: Scalar_LNumber( - value: 2 - ) - ) - right: Scalar_LNumber( - value: 3 - ) - ) - right: Scalar_DNumber( - value: 4 - ) - ) - ) - ) - ) - 6: Stmt_Const( - consts: array( - 0: Const( - name: T_7 - value: Scalar_MagicConst_Line( - ) - ) - ) - ) - 7: Stmt_Const( - consts: array( - 0: Const( - name: T_8 - value: Scalar_String( - value: This is a test string - ) - ) - ) - ) - 8: Stmt_Const( - consts: array( - 0: Const( - name: T_9 - value: Expr_BitwiseNot( - expr: Expr_UnaryMinus( - expr: Scalar_LNumber( - value: 1 - ) - ) - ) - ) - ) - ) - 9: Stmt_Const( - consts: array( - 0: Const( - name: T_10 - value: Expr_BinaryOp_Plus( - left: Expr_Ternary( - cond: Expr_UnaryMinus( - expr: Scalar_LNumber( - value: 1 - ) - ) - if: null - else: Scalar_LNumber( - value: 1 - ) - ) - right: Expr_Ternary( - cond: Scalar_LNumber( - value: 0 - ) - if: Scalar_LNumber( - value: 2 - ) - else: Scalar_LNumber( - value: 3 - ) - ) - ) - ) - ) - ) - 10: Stmt_Const( - consts: array( - 0: Const( - name: T_11 - value: Expr_BinaryOp_BooleanAnd( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - ) - 11: Stmt_Const( - consts: array( - 0: Const( - name: T_12 - value: Expr_BinaryOp_LogicalAnd( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 1 - ) - ) - ) - ) - ) - 12: Stmt_Const( - consts: array( - 0: Const( - name: T_13 - value: Expr_BinaryOp_BooleanOr( - left: Scalar_LNumber( - value: 0 - ) - right: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - ) - 13: Stmt_Const( - consts: array( - 0: Const( - name: T_14 - value: Expr_BinaryOp_LogicalOr( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - ) - 14: Stmt_Const( - consts: array( - 0: Const( - name: T_15 - value: Expr_BinaryOp_LogicalXor( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 1 - ) - ) - ) - ) - ) - 15: Stmt_Const( - consts: array( - 0: Const( - name: T_16 - value: Expr_BinaryOp_LogicalXor( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - ) - 16: Stmt_Const( - consts: array( - 0: Const( - name: T_17 - value: Expr_BinaryOp_Smaller( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - ) - 17: Stmt_Const( - consts: array( - 0: Const( - name: T_18 - value: Expr_BinaryOp_SmallerOrEqual( - left: Scalar_LNumber( - value: 0 - ) - right: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - ) - 18: Stmt_Const( - consts: array( - 0: Const( - name: T_19 - value: Expr_BinaryOp_Greater( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - ) - 19: Stmt_Const( - consts: array( - 0: Const( - name: T_20 - value: Expr_BinaryOp_GreaterOrEqual( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - ) - 20: Stmt_Const( - consts: array( - 0: Const( - name: T_21 - value: Expr_BinaryOp_Identical( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 1 - ) - ) - ) - ) - ) - 21: Stmt_Const( - consts: array( - 0: Const( - name: T_22 - value: Expr_BinaryOp_NotIdentical( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_LNumber( - value: 1 - ) - ) - ) - ) - ) - 22: Stmt_Const( - consts: array( - 0: Const( - name: T_23 - value: Expr_BinaryOp_NotEqual( - left: Scalar_LNumber( - value: 0 - ) - right: Scalar_String( - value: 0 - ) - ) - ) - ) - ) - 23: Stmt_Const( - consts: array( - 0: Const( - name: T_24 - value: Expr_BinaryOp_Equal( - left: Scalar_LNumber( - value: 1 - ) - right: Scalar_String( - value: 1 - ) - ) - ) - ) - ) - 24: Stmt_Const( - consts: array( - 0: Const( - name: T_25 - value: Expr_BinaryOp_Plus( - left: Scalar_LNumber( - value: 1 - ) - right: Expr_BinaryOp_Mul( - left: Scalar_LNumber( - value: 2 - ) - right: Scalar_LNumber( - value: 3 - ) - ) - ) - ) - ) - ) - 25: Stmt_Const( - consts: array( - 0: Const( - name: T_26 - value: Expr_BinaryOp_Plus( - left: Expr_BinaryOp_Plus( - left: Scalar_String( - value: 1 - ) - right: Scalar_LNumber( - value: 2 - ) - ) - right: Scalar_String( - value: 3 - ) - ) - ) - ) - ) - 26: Stmt_Const( - consts: array( - 0: Const( - name: T_27 - value: Expr_BinaryOp_Pow( - left: Scalar_LNumber( - value: 2 - ) - right: Scalar_LNumber( - value: 3 - ) - ) - ) - ) - ) - 27: Stmt_Const( - consts: array( - 0: Const( - name: T_28 - value: Expr_ArrayDimFetch( - var: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 1 - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 2 - ) - byRef: false - ) - 2: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 3 - ) - byRef: false - ) - ) - ) - dim: Scalar_LNumber( - value: 1 - ) - ) - ) - ) - ) - 28: Stmt_Const( - consts: array( - 0: Const( - name: T_29 - value: Expr_BinaryOp_Minus( - left: Scalar_LNumber( - value: 12 - ) - right: Scalar_LNumber( - value: 13 - ) - ) - ) - ) - ) - 29: Stmt_Const( - consts: array( - 0: Const( - name: T_30 - value: Expr_BinaryOp_BitwiseXor( - left: Scalar_LNumber( - value: 12 - ) - right: Scalar_LNumber( - value: 13 - ) - ) - ) - ) - ) - 30: Stmt_Const( - consts: array( - 0: Const( - name: T_31 - value: Expr_BinaryOp_BitwiseAnd( - left: Scalar_LNumber( - value: 12 - ) - right: Scalar_LNumber( - value: 13 - ) - ) - ) - ) - ) - 31: Stmt_Const( - consts: array( - 0: Const( - name: T_32 - value: Expr_BinaryOp_BitwiseOr( - left: Scalar_LNumber( - value: 12 - ) - right: Scalar_LNumber( - value: 13 - ) - ) - ) - ) - ) - 32: Stmt_Const( - consts: array( - 0: Const( - name: T_33 - value: Expr_BinaryOp_Mod( - left: Scalar_LNumber( - value: 12 - ) - right: Scalar_LNumber( - value: 3 - ) - ) - ) - ) - ) - 33: Stmt_Const( - consts: array( - 0: Const( - name: T_34 - value: Expr_BinaryOp_ShiftRight( - left: Scalar_LNumber( - value: 100 - ) - right: Scalar_LNumber( - value: 4 - ) - ) - ) - ) - ) - 34: Stmt_Const( - consts: array( - 0: Const( - name: T_35 - value: Expr_BooleanNot( - expr: Expr_ConstFetch( - name: Name( - parts: array( - 0: false - ) - ) - ) - ) - ) - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/errorSuppress.test b/vendor/nikic/php-parser/test/code/parser/expr/errorSuppress.test deleted file mode 100644 index ce3fce96..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/errorSuppress.test +++ /dev/null @@ -1,12 +0,0 @@ -Error suppression ------ -b['c'](); - -// array dereferencing -a()['b']; ------ -array( - 0: Expr_FuncCall( - name: Name( - parts: array( - 0: a - ) - comments: array( - 0: // function name variations - ) - ) - args: array( - ) - comments: array( - 0: // function name variations - ) - ) - 1: Expr_FuncCall( - name: Expr_Variable( - name: a - ) - args: array( - ) - ) - 2: Expr_FuncCall( - name: Expr_Variable( - name: Scalar_String( - value: a - ) - ) - args: array( - ) - ) - 3: Expr_FuncCall( - name: Expr_Variable( - name: Expr_Variable( - name: a - ) - ) - args: array( - ) - ) - 4: Expr_FuncCall( - name: Expr_Variable( - name: Expr_Variable( - name: Expr_Variable( - name: a - ) - ) - ) - args: array( - ) - ) - 5: Expr_FuncCall( - name: Expr_ArrayDimFetch( - var: Expr_Variable( - name: a - ) - dim: Scalar_String( - value: b - ) - ) - args: array( - ) - ) - 6: Expr_FuncCall( - name: Expr_ArrayDimFetch( - var: Expr_Variable( - name: a - ) - dim: Scalar_String( - value: b - ) - ) - args: array( - ) - ) - 7: Expr_FuncCall( - name: Expr_ArrayDimFetch( - var: Expr_PropertyFetch( - var: Expr_Variable( - name: a - ) - name: b - ) - dim: Scalar_String( - value: c - ) - ) - args: array( - ) - ) - 8: Expr_ArrayDimFetch( - var: Expr_FuncCall( - name: Name( - parts: array( - 0: a - ) - comments: array( - 0: // array dereferencing - ) - ) - args: array( - ) - comments: array( - 0: // array dereferencing - ) - ) - dim: Scalar_String( - value: b - ) - comments: array( - 0: // array dereferencing - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/newDeref.test b/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/newDeref.test deleted file mode 100644 index 5e36ff81..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/newDeref.test +++ /dev/null @@ -1,70 +0,0 @@ -New expression dereferencing ------ -b; -(new A)->b(); -(new A)['b']; -(new A)['b']['c']; ------ -array( - 0: Expr_PropertyFetch( - var: Expr_New( - class: Name( - parts: array( - 0: A - ) - ) - args: array( - ) - ) - name: b - ) - 1: Expr_MethodCall( - var: Expr_New( - class: Name( - parts: array( - 0: A - ) - ) - args: array( - ) - ) - name: b - args: array( - ) - ) - 2: Expr_ArrayDimFetch( - var: Expr_New( - class: Name( - parts: array( - 0: A - ) - ) - args: array( - ) - ) - dim: Scalar_String( - value: b - ) - ) - 3: Expr_ArrayDimFetch( - var: Expr_ArrayDimFetch( - var: Expr_New( - class: Name( - parts: array( - 0: A - ) - ) - args: array( - ) - ) - dim: Scalar_String( - value: b - ) - ) - dim: Scalar_String( - value: c - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/objectAccess.test b/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/objectAccess.test deleted file mode 100644 index 584461bd..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/objectAccess.test +++ /dev/null @@ -1,145 +0,0 @@ -Object access ------ -b; -$a->b['c']; -$a->b{'c'}; - -// method call variations -$a->b(); -$a->{'b'}(); -$a->$b(); -$a->$b['c'](); - -// array dereferencing -$a->b()['c']; -$a->b(){'c'}; // invalid PHP: drop Support? ------ -!!php5 -array( - 0: Expr_PropertyFetch( - var: Expr_Variable( - name: a - comments: array( - 0: // property fetch variations - ) - ) - name: b - comments: array( - 0: // property fetch variations - ) - ) - 1: Expr_ArrayDimFetch( - var: Expr_PropertyFetch( - var: Expr_Variable( - name: a - ) - name: b - ) - dim: Scalar_String( - value: c - ) - ) - 2: Expr_ArrayDimFetch( - var: Expr_PropertyFetch( - var: Expr_Variable( - name: a - ) - name: b - ) - dim: Scalar_String( - value: c - ) - ) - 3: Expr_MethodCall( - var: Expr_Variable( - name: a - comments: array( - 0: // method call variations - ) - ) - name: b - args: array( - ) - comments: array( - 0: // method call variations - ) - ) - 4: Expr_MethodCall( - var: Expr_Variable( - name: a - ) - name: Scalar_String( - value: b - ) - args: array( - ) - ) - 5: Expr_MethodCall( - var: Expr_Variable( - name: a - ) - name: Expr_Variable( - name: b - ) - args: array( - ) - ) - 6: Expr_MethodCall( - var: Expr_Variable( - name: a - ) - name: Expr_ArrayDimFetch( - var: Expr_Variable( - name: b - ) - dim: Scalar_String( - value: c - ) - ) - args: array( - ) - ) - 7: Expr_ArrayDimFetch( - var: Expr_MethodCall( - var: Expr_Variable( - name: a - comments: array( - 0: // array dereferencing - ) - ) - name: b - args: array( - ) - comments: array( - 0: // array dereferencing - ) - ) - dim: Scalar_String( - value: c - ) - comments: array( - 0: // array dereferencing - ) - ) - 8: Expr_ArrayDimFetch( - var: Expr_MethodCall( - var: Expr_Variable( - name: a - ) - name: b - args: array( - ) - ) - dim: Scalar_String( - value: c - ) - ) - 9: Stmt_Nop( - comments: array( - 0: // invalid PHP: drop Support? - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test b/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test deleted file mode 100644 index ea3f9ef4..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test +++ /dev/null @@ -1,62 +0,0 @@ -Simple array access ------ - $b) = ['a' => 'b']; -list('a' => list($b => $c), 'd' => $e) = $x; ------ -!!php7 -array( - 0: Expr_Assign( - var: Expr_List( - items: array( - 0: Expr_ArrayItem( - key: Scalar_String( - value: a - ) - value: Expr_Variable( - name: b - ) - byRef: false - ) - ) - ) - expr: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: Scalar_String( - value: a - ) - value: Scalar_String( - value: b - ) - byRef: false - ) - ) - ) - ) - 1: Expr_Assign( - var: Expr_List( - items: array( - 0: Expr_ArrayItem( - key: Scalar_String( - value: a - ) - value: Expr_List( - items: array( - 0: Expr_ArrayItem( - key: Expr_Variable( - name: b - ) - value: Expr_Variable( - name: c - ) - byRef: false - ) - ) - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: Scalar_String( - value: d - ) - value: Expr_Variable( - name: e - ) - byRef: false - ) - ) - ) - expr: Expr_Variable( - name: x - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/logic.test b/vendor/nikic/php-parser/test/code/parser/expr/logic.test deleted file mode 100644 index b3634e91..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/logic.test +++ /dev/null @@ -1,159 +0,0 @@ -Logical operators ------ -> $b; -$a ** $b; - -// associativity -$a * $b * $c; -$a * ($b * $c); - -// precedence -$a + $b * $c; -($a + $b) * $c; - -// pow is special -$a ** $b ** $c; -($a ** $b) ** $c; ------ -array( - 0: Expr_BitwiseNot( - expr: Expr_Variable( - name: a - ) - comments: array( - 0: // unary ops - ) - ) - 1: Expr_UnaryPlus( - expr: Expr_Variable( - name: a - ) - ) - 2: Expr_UnaryMinus( - expr: Expr_Variable( - name: a - ) - ) - 3: Expr_BinaryOp_BitwiseAnd( - left: Expr_Variable( - name: a - comments: array( - 0: // binary ops - ) - ) - right: Expr_Variable( - name: b - ) - comments: array( - 0: // binary ops - ) - ) - 4: Expr_BinaryOp_BitwiseOr( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 5: Expr_BinaryOp_BitwiseXor( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 6: Expr_BinaryOp_Concat( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 7: Expr_BinaryOp_Div( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 8: Expr_BinaryOp_Minus( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 9: Expr_BinaryOp_Mod( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 10: Expr_BinaryOp_Mul( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 11: Expr_BinaryOp_Plus( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 12: Expr_BinaryOp_ShiftLeft( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 13: Expr_BinaryOp_ShiftRight( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 14: Expr_BinaryOp_Pow( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - 15: Expr_BinaryOp_Mul( - left: Expr_BinaryOp_Mul( - left: Expr_Variable( - name: a - comments: array( - 0: // associativity - ) - ) - right: Expr_Variable( - name: b - ) - comments: array( - 0: // associativity - ) - ) - right: Expr_Variable( - name: c - ) - comments: array( - 0: // associativity - ) - ) - 16: Expr_BinaryOp_Mul( - left: Expr_Variable( - name: a - ) - right: Expr_BinaryOp_Mul( - left: Expr_Variable( - name: b - ) - right: Expr_Variable( - name: c - ) - ) - ) - 17: Expr_BinaryOp_Plus( - left: Expr_Variable( - name: a - comments: array( - 0: // precedence - ) - ) - right: Expr_BinaryOp_Mul( - left: Expr_Variable( - name: b - ) - right: Expr_Variable( - name: c - ) - ) - comments: array( - 0: // precedence - ) - ) - 18: Expr_BinaryOp_Mul( - left: Expr_BinaryOp_Plus( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - right: Expr_Variable( - name: c - ) - ) - 19: Expr_BinaryOp_Pow( - left: Expr_Variable( - name: a - comments: array( - 0: // pow is special - ) - ) - right: Expr_BinaryOp_Pow( - left: Expr_Variable( - name: b - ) - right: Expr_Variable( - name: c - ) - ) - comments: array( - 0: // pow is special - ) - ) - 20: Expr_BinaryOp_Pow( - left: Expr_BinaryOp_Pow( - left: Expr_Variable( - name: a - ) - right: Expr_Variable( - name: b - ) - ) - right: Expr_Variable( - name: c - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/new.test b/vendor/nikic/php-parser/test/code/parser/expr/new.test deleted file mode 100644 index a132bbb4..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/new.test +++ /dev/null @@ -1,146 +0,0 @@ -New ------ -b(); -new $a->b->c(); -new $a->b['c'](); -new $a->b{'c'}(); - -// test regression introduces by new dereferencing syntax -(new A); ------ -array( - 0: Expr_New( - class: Name( - parts: array( - 0: A - ) - ) - args: array( - ) - ) - 1: Expr_New( - class: Name( - parts: array( - 0: A - ) - ) - args: array( - 0: Arg( - value: Expr_Variable( - name: b - ) - byRef: false - unpack: false - ) - ) - ) - 2: Expr_New( - class: Expr_Variable( - name: a - ) - args: array( - ) - comments: array( - 0: // class name variations - ) - ) - 3: Expr_New( - class: Expr_ArrayDimFetch( - var: Expr_Variable( - name: a - ) - dim: Scalar_String( - value: b - ) - ) - args: array( - ) - ) - 4: Expr_New( - class: Expr_StaticPropertyFetch( - class: Name( - parts: array( - 0: A - ) - ) - name: b - ) - args: array( - ) - ) - 5: Expr_New( - class: Expr_PropertyFetch( - var: Expr_Variable( - name: a - ) - name: b - ) - args: array( - ) - comments: array( - 0: // DNCR object access - ) - ) - 6: Expr_New( - class: Expr_PropertyFetch( - var: Expr_PropertyFetch( - var: Expr_Variable( - name: a - ) - name: b - ) - name: c - ) - args: array( - ) - ) - 7: Expr_New( - class: Expr_ArrayDimFetch( - var: Expr_PropertyFetch( - var: Expr_Variable( - name: a - ) - name: b - ) - dim: Scalar_String( - value: c - ) - ) - args: array( - ) - ) - 8: Expr_New( - class: Expr_ArrayDimFetch( - var: Expr_PropertyFetch( - var: Expr_Variable( - name: a - ) - name: b - ) - dim: Scalar_String( - value: c - ) - ) - args: array( - ) - ) - 9: Expr_New( - class: Name( - parts: array( - 0: A - ) - ) - args: array( - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/newWithoutClass.test b/vendor/nikic/php-parser/test/code/parser/expr/newWithoutClass.test deleted file mode 100644 index ca7f4981..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/newWithoutClass.test +++ /dev/null @@ -1,23 +0,0 @@ -New without a class ------ -bar; ------ -!!php7 -Syntax error, unexpected T_OBJECT_OPERATOR, expecting ';' from 2:13 to 2:14 -array( - 0: Stmt_Global( - vars: array( - 0: Expr_Variable( - name: Expr_Variable( - name: foo - ) - ) - ) - ) - 1: Expr_ConstFetch( - name: Name( - parts: array( - 0: bar - ) - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test b/vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test deleted file mode 100644 index bb3e7fbe..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test +++ /dev/null @@ -1,481 +0,0 @@ -UVS indirect calls ------ - 'b']->a); -isset("str"->a); ------ -!!php7 -array( - 0: Expr_Isset( - vars: array( - 0: Expr_ArrayDimFetch( - var: Expr_BinaryOp_Plus( - left: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 0 - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 1 - ) - byRef: false - ) - ) - ) - right: Expr_Array( - items: array( - ) - ) - ) - dim: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - 1: Expr_Isset( - vars: array( - 0: Expr_PropertyFetch( - var: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: Scalar_String( - value: a - ) - value: Scalar_String( - value: b - ) - byRef: false - ) - ) - ) - name: a - ) - ) - ) - 2: Expr_Isset( - vars: array( - 0: Expr_PropertyFetch( - var: Scalar_String( - value: str - ) - name: a - ) - ) - ) -) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test b/vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test deleted file mode 100644 index 2c5ba900..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test +++ /dev/null @@ -1,109 +0,0 @@ -Uniform variable syntax in PHP 7 (misc) ------ -length(); -(clone $obj)->b[0](1); -[0, 1][0] = 1; ------ -!!php7 -array( - 0: Expr_ArrayDimFetch( - var: Expr_ClassConstFetch( - class: Name( - parts: array( - 0: A - ) - ) - name: A - ) - dim: Scalar_LNumber( - value: 0 - ) - ) - 1: Expr_ArrayDimFetch( - var: Expr_ArrayDimFetch( - var: Expr_ArrayDimFetch( - var: Expr_ClassConstFetch( - class: Name( - parts: array( - 0: A - ) - ) - name: A - ) - dim: Scalar_LNumber( - value: 0 - ) - ) - dim: Scalar_LNumber( - value: 1 - ) - ) - dim: Scalar_LNumber( - value: 2 - ) - ) - 2: Expr_MethodCall( - var: Scalar_String( - value: string - ) - name: length - args: array( - ) - ) - 3: Expr_FuncCall( - name: Expr_ArrayDimFetch( - var: Expr_PropertyFetch( - var: Expr_Clone( - expr: Expr_Variable( - name: obj - ) - ) - name: b - ) - dim: Scalar_LNumber( - value: 0 - ) - ) - args: array( - 0: Arg( - value: Scalar_LNumber( - value: 1 - ) - byRef: false - unpack: false - ) - ) - ) - 4: Expr_Assign( - var: Expr_ArrayDimFetch( - var: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 0 - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Scalar_LNumber( - value: 1 - ) - byRef: false - ) - ) - ) - dim: Scalar_LNumber( - value: 0 - ) - ) - expr: Scalar_LNumber( - value: 1 - ) - ) -) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/uvs/new.test b/vendor/nikic/php-parser/test/code/parser/expr/uvs/new.test deleted file mode 100644 index e5f92f97..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/uvs/new.test +++ /dev/null @@ -1,95 +0,0 @@ -UVS new expressions ------ -className; -new Test::$className; -new $test::$className; -new $weird[0]->foo::$className; ------ -!!php7 -array( - 0: Expr_New( - class: Expr_Variable( - name: className - ) - args: array( - ) - ) - 1: Expr_New( - class: Expr_ArrayDimFetch( - var: Expr_Variable( - name: array - ) - dim: Scalar_String( - value: className - ) - ) - args: array( - ) - ) - 2: Expr_New( - class: Expr_ArrayDimFetch( - var: Expr_Variable( - name: array - ) - dim: Scalar_String( - value: className - ) - ) - args: array( - ) - ) - 3: Expr_New( - class: Expr_PropertyFetch( - var: Expr_Variable( - name: obj - ) - name: className - ) - args: array( - ) - ) - 4: Expr_New( - class: Expr_StaticPropertyFetch( - class: Name( - parts: array( - 0: Test - ) - ) - name: className - ) - args: array( - ) - ) - 5: Expr_New( - class: Expr_StaticPropertyFetch( - class: Expr_Variable( - name: test - ) - name: className - ) - args: array( - ) - ) - 6: Expr_New( - class: Expr_StaticPropertyFetch( - class: Expr_PropertyFetch( - var: Expr_ArrayDimFetch( - var: Expr_Variable( - name: weird - ) - dim: Scalar_LNumber( - value: 0 - ) - ) - name: foo - ) - name: className - ) - args: array( - ) - ) -) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/uvs/staticProperty.test b/vendor/nikic/php-parser/test/code/parser/expr/uvs/staticProperty.test deleted file mode 100644 index 5fadfc48..00000000 --- a/vendor/nikic/php-parser/test/code/parser/expr/uvs/staticProperty.test +++ /dev/null @@ -1,93 +0,0 @@ -UVS static access ------ -c test -EOS; - -b<<B"; -"$A[B]"; -"$A[0]"; -"$A[1234]"; -"$A[9223372036854775808]"; -"$A[000]"; -"$A[0x0]"; -"$A[0b0]"; -"$A[$B]"; -"{$A}"; -"{$A['B']}"; -"${A}"; -"${A['B']}"; -"${$A}"; -"\{$A}"; -"\{ $A }"; -"\\{$A}"; -"\\{ $A }"; -"{$$A}[B]"; -"$$A[B]"; -"A $B C"; -b"$A"; -B"$A"; ------ -array( - 0: Scalar_Encapsed( - parts: array( - 0: Expr_Variable( - name: A - ) - ) - ) - 1: Scalar_Encapsed( - parts: array( - 0: Expr_PropertyFetch( - var: Expr_Variable( - name: A - ) - name: B - ) - ) - ) - 2: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_String( - value: B - ) - ) - ) - ) - 3: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_LNumber( - value: 0 - ) - ) - ) - ) - 4: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_LNumber( - value: 1234 - ) - ) - ) - ) - 5: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_String( - value: 9223372036854775808 - ) - ) - ) - ) - 6: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_String( - value: 000 - ) - ) - ) - ) - 7: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_String( - value: 0x0 - ) - ) - ) - ) - 8: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_String( - value: 0b0 - ) - ) - ) - ) - 9: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Expr_Variable( - name: B - ) - ) - ) - ) - 10: Scalar_Encapsed( - parts: array( - 0: Expr_Variable( - name: A - ) - ) - ) - 11: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_String( - value: B - ) - ) - ) - ) - 12: Scalar_Encapsed( - parts: array( - 0: Expr_Variable( - name: A - ) - ) - ) - 13: Scalar_Encapsed( - parts: array( - 0: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_String( - value: B - ) - ) - ) - ) - 14: Scalar_Encapsed( - parts: array( - 0: Expr_Variable( - name: Expr_Variable( - name: A - ) - ) - ) - ) - 15: Scalar_Encapsed( - parts: array( - 0: Scalar_EncapsedStringPart( - value: \{ - ) - 1: Expr_Variable( - name: A - ) - 2: Scalar_EncapsedStringPart( - value: } - ) - ) - ) - 16: Scalar_Encapsed( - parts: array( - 0: Scalar_EncapsedStringPart( - value: \{ - ) - 1: Expr_Variable( - name: A - ) - 2: Scalar_EncapsedStringPart( - value: } - ) - ) - ) - 17: Scalar_Encapsed( - parts: array( - 0: Scalar_EncapsedStringPart( - value: \ - ) - 1: Expr_Variable( - name: A - ) - ) - ) - 18: Scalar_Encapsed( - parts: array( - 0: Scalar_EncapsedStringPart( - value: \{ - ) - 1: Expr_Variable( - name: A - ) - 2: Scalar_EncapsedStringPart( - value: } - ) - ) - ) - 19: Scalar_Encapsed( - parts: array( - 0: Expr_Variable( - name: Expr_Variable( - name: A - ) - ) - 1: Scalar_EncapsedStringPart( - value: [B] - ) - ) - ) - 20: Scalar_Encapsed( - parts: array( - 0: Scalar_EncapsedStringPart( - value: $ - ) - 1: Expr_ArrayDimFetch( - var: Expr_Variable( - name: A - ) - dim: Scalar_String( - value: B - ) - ) - ) - ) - 21: Scalar_Encapsed( - parts: array( - 0: Scalar_EncapsedStringPart( - value: A - ) - 1: Expr_Variable( - name: B - ) - 2: Scalar_EncapsedStringPart( - value: C - ) - ) - ) - 22: Scalar_Encapsed( - parts: array( - 0: Expr_Variable( - name: A - ) - ) - ) - 23: Scalar_Encapsed( - parts: array( - 0: Expr_Variable( - name: A - ) - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/scalar/float.test b/vendor/nikic/php-parser/test/code/parser/scalar/float.test deleted file mode 100644 index a16028e2..00000000 --- a/vendor/nikic/php-parser/test/code/parser/scalar/float.test +++ /dev/null @@ -1,74 +0,0 @@ -Different float syntaxes ------ - float overflows -// (all are actually the same number, just in different representations) -18446744073709551615; -0xFFFFFFFFFFFFFFFF; -01777777777777777777777; -0177777777777777777777787; -0b1111111111111111111111111111111111111111111111111111111111111111; ------ -array( - 0: Scalar_DNumber( - value: 0 - ) - 1: Scalar_DNumber( - value: 0 - ) - 2: Scalar_DNumber( - value: 0 - ) - 3: Scalar_DNumber( - value: 0 - ) - 4: Scalar_DNumber( - value: 0 - ) - 5: Scalar_DNumber( - value: 0 - ) - 6: Scalar_DNumber( - value: 0 - ) - 7: Scalar_DNumber( - value: 302000000000 - ) - 8: Scalar_DNumber( - value: 3.002E+102 - ) - 9: Scalar_DNumber( - value: INF - ) - 10: Scalar_DNumber( - value: 1.844674407371E+19 - comments: array( - 0: // various integer -> float overflows - 1: // (all are actually the same number, just in different representations) - ) - ) - 11: Scalar_DNumber( - value: 1.844674407371E+19 - ) - 12: Scalar_DNumber( - value: 1.844674407371E+19 - ) - 13: Scalar_DNumber( - value: 1.844674407371E+19 - ) - 14: Scalar_DNumber( - value: 1.844674407371E+19 - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/scalar/int.test b/vendor/nikic/php-parser/test/code/parser/scalar/int.test deleted file mode 100644 index 5a212677..00000000 --- a/vendor/nikic/php-parser/test/code/parser/scalar/int.test +++ /dev/null @@ -1,43 +0,0 @@ -Different integer syntaxes ------ -array(); -$t->public(); - -Test::list(); -Test::protected(); - -$t->class; -$t->private; - -Test::TRAIT; -Test::FINAL; - -class Foo { - use TraitA, TraitB { - TraitA::catch insteadof namespace\TraitB; - TraitA::list as foreach; - TraitB::throw as protected public; - TraitB::self as protected; - exit as die; - \TraitC::exit as bye; - namespace\TraitC::exit as byebye; - TraitA:: - // - /** doc comment */ - # - catch /* comment */ - // comment - # comment - insteadof TraitB; - } -} ------ -array( - 0: Stmt_Class( - flags: 0 - name: Test - extends: null - implements: array( - ) - stmts: array( - 0: Stmt_ClassMethod( - flags: 0 - byRef: false - name: array - params: array( - ) - returnType: null - stmts: array( - ) - ) - 1: Stmt_ClassMethod( - flags: 0 - byRef: false - name: public - params: array( - ) - returnType: null - stmts: array( - ) - ) - 2: Stmt_ClassMethod( - flags: MODIFIER_STATIC (8) - byRef: false - name: list - params: array( - ) - returnType: null - stmts: array( - ) - ) - 3: Stmt_ClassMethod( - flags: MODIFIER_STATIC (8) - byRef: false - name: protected - params: array( - ) - returnType: null - stmts: array( - ) - ) - 4: Stmt_Property( - flags: MODIFIER_PUBLIC (1) - props: array( - 0: Stmt_PropertyProperty( - name: class - default: null - ) - ) - ) - 5: Stmt_Property( - flags: MODIFIER_PUBLIC (1) - props: array( - 0: Stmt_PropertyProperty( - name: private - default: null - ) - ) - ) - 6: Stmt_ClassConst( - flags: 0 - consts: array( - 0: Const( - name: TRAIT - value: Scalar_LNumber( - value: 3 - ) - ) - 1: Const( - name: FINAL - value: Scalar_LNumber( - value: 4 - ) - ) - ) - ) - 7: Stmt_ClassConst( - flags: 0 - consts: array( - 0: Const( - name: __CLASS__ - value: Scalar_LNumber( - value: 1 - ) - ) - 1: Const( - name: __TRAIT__ - value: Scalar_LNumber( - value: 2 - ) - ) - 2: Const( - name: __FUNCTION__ - value: Scalar_LNumber( - value: 3 - ) - ) - 3: Const( - name: __METHOD__ - value: Scalar_LNumber( - value: 4 - ) - ) - 4: Const( - name: __LINE__ - value: Scalar_LNumber( - value: 5 - ) - ) - 5: Const( - name: __FILE__ - value: Scalar_LNumber( - value: 6 - ) - ) - 6: Const( - name: __DIR__ - value: Scalar_LNumber( - value: 7 - ) - ) - 7: Const( - name: __NAMESPACE__ - value: Scalar_LNumber( - value: 8 - ) - ) - ) - ) - ) - ) - 1: Expr_Assign( - var: Expr_Variable( - name: t - ) - expr: Expr_New( - class: Name( - parts: array( - 0: Test - ) - ) - args: array( - ) - ) - ) - 2: Expr_MethodCall( - var: Expr_Variable( - name: t - ) - name: array - args: array( - ) - ) - 3: Expr_MethodCall( - var: Expr_Variable( - name: t - ) - name: public - args: array( - ) - ) - 4: Expr_StaticCall( - class: Name( - parts: array( - 0: Test - ) - ) - name: list - args: array( - ) - ) - 5: Expr_StaticCall( - class: Name( - parts: array( - 0: Test - ) - ) - name: protected - args: array( - ) - ) - 6: Expr_PropertyFetch( - var: Expr_Variable( - name: t - ) - name: class - ) - 7: Expr_PropertyFetch( - var: Expr_Variable( - name: t - ) - name: private - ) - 8: Expr_ClassConstFetch( - class: Name( - parts: array( - 0: Test - ) - ) - name: TRAIT - ) - 9: Expr_ClassConstFetch( - class: Name( - parts: array( - 0: Test - ) - ) - name: FINAL - ) - 10: Stmt_Class( - flags: 0 - name: Foo - extends: null - implements: array( - ) - stmts: array( - 0: Stmt_TraitUse( - traits: array( - 0: Name( - parts: array( - 0: TraitA - ) - ) - 1: Name( - parts: array( - 0: TraitB - ) - ) - ) - adaptations: array( - 0: Stmt_TraitUseAdaptation_Precedence( - trait: Name( - parts: array( - 0: TraitA - ) - ) - method: catch - insteadof: array( - 0: Name_Relative( - parts: array( - 0: TraitB - ) - ) - ) - ) - 1: Stmt_TraitUseAdaptation_Alias( - trait: Name( - parts: array( - 0: TraitA - ) - ) - method: list - newModifier: null - newName: foreach - ) - 2: Stmt_TraitUseAdaptation_Alias( - trait: Name( - parts: array( - 0: TraitB - ) - ) - method: throw - newModifier: MODIFIER_PROTECTED (2) - newName: public - ) - 3: Stmt_TraitUseAdaptation_Alias( - trait: Name( - parts: array( - 0: TraitB - ) - ) - method: self - newModifier: MODIFIER_PROTECTED (2) - newName: null - ) - 4: Stmt_TraitUseAdaptation_Alias( - trait: null - method: exit - newModifier: null - newName: die - ) - 5: Stmt_TraitUseAdaptation_Alias( - trait: Name_FullyQualified( - parts: array( - 0: TraitC - ) - ) - method: exit - newModifier: null - newName: bye - ) - 6: Stmt_TraitUseAdaptation_Alias( - trait: Name_Relative( - parts: array( - 0: TraitC - ) - ) - method: exit - newModifier: null - newName: byebye - ) - 7: Stmt_TraitUseAdaptation_Precedence( - trait: Name( - parts: array( - 0: TraitA - ) - ) - method: catch - insteadof: array( - 0: Name( - parts: array( - 0: TraitB - ) - ) - ) - ) - ) - ) - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/blocklessStatement.test b/vendor/nikic/php-parser/test/code/parser/stmt/blocklessStatement.test deleted file mode 100644 index ae83dabb..00000000 --- a/vendor/nikic/php-parser/test/code/parser/stmt/blocklessStatement.test +++ /dev/null @@ -1,112 +0,0 @@ -Blockless statements for if/for/etc ------ - 'baz'] -) {} ------ -array( - 0: Stmt_Function( - byRef: false - name: a - params: array( - 0: Param( - type: null - byRef: false - variadic: false - name: b - default: Expr_ConstFetch( - name: Name( - parts: array( - 0: null - ) - ) - ) - ) - 1: Param( - type: null - byRef: false - variadic: false - name: c - default: Scalar_String( - value: foo - ) - ) - 2: Param( - type: null - byRef: false - variadic: false - name: d - default: Expr_ClassConstFetch( - class: Name( - parts: array( - 0: A - ) - ) - name: B - ) - ) - 3: Param( - type: null - byRef: false - variadic: false - name: f - default: Expr_UnaryPlus( - expr: Scalar_LNumber( - value: 1 - ) - ) - ) - 4: Param( - type: null - byRef: false - variadic: false - name: g - default: Expr_UnaryMinus( - expr: Scalar_DNumber( - value: 1 - ) - ) - ) - 5: Param( - type: null - byRef: false - variadic: false - name: h - default: Expr_Array( - items: array( - ) - ) - ) - 6: Param( - type: null - byRef: false - variadic: false - name: i - default: Expr_Array( - items: array( - ) - ) - ) - 7: Param( - type: null - byRef: false - variadic: false - name: j - default: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_String( - value: foo - ) - byRef: false - ) - ) - ) - ) - 8: Param( - type: null - byRef: false - variadic: false - name: k - default: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Scalar_String( - value: foo - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: Scalar_String( - value: bar - ) - value: Scalar_String( - value: baz - ) - byRef: false - ) - ) - ) - ) - ) - returnType: null - stmts: array( - ) - ) -) diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/function/nullableTypes.test b/vendor/nikic/php-parser/test/code/parser/stmt/function/nullableTypes.test deleted file mode 100644 index d96df4fa..00000000 --- a/vendor/nikic/php-parser/test/code/parser/stmt/function/nullableTypes.test +++ /dev/null @@ -1,47 +0,0 @@ -Nullable types ------ - $value; - - // expressions - $data = yield; - $data = (yield $value); - $data = (yield $key => $value); - - // yield in language constructs with their own parentheses - if (yield $foo); elseif (yield $foo); - if (yield $foo): elseif (yield $foo): endif; - while (yield $foo); - do {} while (yield $foo); - switch (yield $foo) {} - die(yield $foo); - - // yield in function calls - func(yield $foo); - $foo->func(yield $foo); - new Foo(yield $foo); - - yield from $foo; - yield from $foo and yield from $bar; - yield from $foo + $bar; -} ------ -array( - 0: Stmt_Function( - byRef: false - name: gen - params: array( - ) - returnType: null - stmts: array( - 0: Expr_Yield( - key: null - value: null - comments: array( - 0: // statements - ) - ) - 1: Expr_Yield( - key: null - value: Expr_Variable( - name: value - ) - ) - 2: Expr_Yield( - key: Expr_Variable( - name: key - ) - value: Expr_Variable( - name: value - ) - ) - 3: Expr_Assign( - var: Expr_Variable( - name: data - comments: array( - 0: // expressions - ) - ) - expr: Expr_Yield( - key: null - value: null - ) - comments: array( - 0: // expressions - ) - ) - 4: Expr_Assign( - var: Expr_Variable( - name: data - ) - expr: Expr_Yield( - key: null - value: Expr_Variable( - name: value - ) - ) - ) - 5: Expr_Assign( - var: Expr_Variable( - name: data - ) - expr: Expr_Yield( - key: Expr_Variable( - name: key - ) - value: Expr_Variable( - name: value - ) - ) - ) - 6: Stmt_If( - cond: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - stmts: array( - ) - elseifs: array( - 0: Stmt_ElseIf( - cond: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - stmts: array( - ) - ) - ) - else: null - comments: array( - 0: // yield in language constructs with their own parentheses - ) - ) - 7: Stmt_If( - cond: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - stmts: array( - ) - elseifs: array( - 0: Stmt_ElseIf( - cond: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - stmts: array( - ) - ) - ) - else: null - ) - 8: Stmt_While( - cond: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - stmts: array( - ) - ) - 9: Stmt_Do( - cond: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - stmts: array( - ) - ) - 10: Stmt_Switch( - cond: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - cases: array( - ) - ) - 11: Expr_Exit( - expr: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - ) - 12: Expr_FuncCall( - name: Name( - parts: array( - 0: func - ) - comments: array( - 0: // yield in function calls - ) - ) - args: array( - 0: Arg( - value: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - byRef: false - unpack: false - ) - ) - comments: array( - 0: // yield in function calls - ) - ) - 13: Expr_MethodCall( - var: Expr_Variable( - name: foo - ) - name: func - args: array( - 0: Arg( - value: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - byRef: false - unpack: false - ) - ) - ) - 14: Expr_New( - class: Name( - parts: array( - 0: Foo - ) - ) - args: array( - 0: Arg( - value: Expr_Yield( - key: null - value: Expr_Variable( - name: foo - ) - ) - byRef: false - unpack: false - ) - ) - ) - 15: Expr_YieldFrom( - expr: Expr_Variable( - name: foo - ) - ) - 16: Expr_BinaryOp_LogicalAnd( - left: Expr_YieldFrom( - expr: Expr_Variable( - name: foo - ) - ) - right: Expr_YieldFrom( - expr: Expr_Variable( - name: bar - ) - ) - ) - 17: Expr_YieldFrom( - expr: Expr_BinaryOp_Plus( - left: Expr_Variable( - name: foo - ) - right: Expr_Variable( - name: bar - ) - ) - ) - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test b/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test deleted file mode 100644 index ff0d4df0..00000000 --- a/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test +++ /dev/null @@ -1,230 +0,0 @@ -Yield operator precedence ------ - "a" . "b"; - yield "k" => "a" or die; - var_dump([yield "k" => "a" . "b"]); - yield yield "k1" => yield "k2" => "a" . "b"; - yield yield "k1" => (yield "k2") => "a" . "b"; - var_dump([yield "k1" => yield "k2" => "a" . "b"]); - var_dump([yield "k1" => (yield "k2") => "a" . "b"]); -} ------ -!!php7 -array( - 0: Stmt_Function( - byRef: false - name: gen - params: array( - ) - returnType: null - stmts: array( - 0: Expr_Yield( - key: null - value: Expr_BinaryOp_Concat( - left: Scalar_String( - value: a - ) - right: Scalar_String( - value: b - ) - ) - ) - 1: Expr_BinaryOp_LogicalOr( - left: Expr_Yield( - key: null - value: Scalar_String( - value: a - ) - ) - right: Expr_Exit( - expr: null - ) - ) - 2: Expr_Yield( - key: Scalar_String( - value: k - ) - value: Expr_BinaryOp_Concat( - left: Scalar_String( - value: a - ) - right: Scalar_String( - value: b - ) - ) - ) - 3: Expr_BinaryOp_LogicalOr( - left: Expr_Yield( - key: Scalar_String( - value: k - ) - value: Scalar_String( - value: a - ) - ) - right: Expr_Exit( - expr: null - ) - ) - 4: Expr_FuncCall( - name: Name( - parts: array( - 0: var_dump - ) - ) - args: array( - 0: Arg( - value: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Yield( - key: Scalar_String( - value: k - ) - value: Expr_BinaryOp_Concat( - left: Scalar_String( - value: a - ) - right: Scalar_String( - value: b - ) - ) - ) - byRef: false - ) - ) - ) - byRef: false - unpack: false - ) - ) - ) - 5: Expr_Yield( - key: null - value: Expr_Yield( - key: Scalar_String( - value: k1 - ) - value: Expr_Yield( - key: Scalar_String( - value: k2 - ) - value: Expr_BinaryOp_Concat( - left: Scalar_String( - value: a - ) - right: Scalar_String( - value: b - ) - ) - ) - ) - ) - 6: Expr_Yield( - key: Expr_Yield( - key: Scalar_String( - value: k1 - ) - value: Expr_Yield( - key: null - value: Scalar_String( - value: k2 - ) - ) - ) - value: Expr_BinaryOp_Concat( - left: Scalar_String( - value: a - ) - right: Scalar_String( - value: b - ) - ) - ) - 7: Expr_FuncCall( - name: Name( - parts: array( - 0: var_dump - ) - ) - args: array( - 0: Arg( - value: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Yield( - key: Scalar_String( - value: k1 - ) - value: Expr_Yield( - key: Scalar_String( - value: k2 - ) - value: Expr_BinaryOp_Concat( - left: Scalar_String( - value: a - ) - right: Scalar_String( - value: b - ) - ) - ) - ) - byRef: false - ) - ) - ) - byRef: false - unpack: false - ) - ) - ) - 8: Expr_FuncCall( - name: Name( - parts: array( - 0: var_dump - ) - ) - args: array( - 0: Arg( - value: Expr_Array( - items: array( - 0: Expr_ArrayItem( - key: Expr_Yield( - key: Scalar_String( - value: k1 - ) - value: Expr_Yield( - key: null - value: Scalar_String( - value: k2 - ) - ) - ) - value: Expr_BinaryOp_Concat( - left: Scalar_String( - value: a - ) - right: Scalar_String( - value: b - ) - ) - byRef: false - ) - ) - ) - byRef: false - unpack: false - ) - ) - ) - ) - ) -) diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldUnaryPrecedence.test b/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldUnaryPrecedence.test deleted file mode 100644 index 13f96602..00000000 --- a/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldUnaryPrecedence.test +++ /dev/null @@ -1,48 +0,0 @@ -Yield with unary operator argument ------ - -Hallo World! ------ -array( - 0: Expr_Variable( - name: a - ) - 1: Stmt_HaltCompiler( - remaining: Hallo World! - ) -) ------ - -#!/usr/bin/env php ------ -array( - 0: Stmt_InlineHTML( - value: #!/usr/bin/env php - - ) - 1: Stmt_Echo( - exprs: array( - 0: Scalar_String( - value: foobar - ) - ) - ) - 2: Stmt_InlineHTML( - value: #!/usr/bin/env php - ) -) diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/if.test b/vendor/nikic/php-parser/test/code/parser/stmt/if.test deleted file mode 100644 index e054c897..00000000 --- a/vendor/nikic/php-parser/test/code/parser/stmt/if.test +++ /dev/null @@ -1,103 +0,0 @@ -If/Elseif/Else ------ - -B - - $c) {} -foreach ($a as $b => &$c) {} -foreach ($a as list($a, $b)) {} -foreach ($a as $a => list($b, , $c)) {} - -// foreach on expression -foreach (array() as $b) {} - -// alternative syntax -foreach ($a as $b): -endforeach; ------ -array( - 0: Stmt_Foreach( - expr: Expr_Variable( - name: a - ) - keyVar: null - byRef: false - valueVar: Expr_Variable( - name: b - ) - stmts: array( - ) - comments: array( - 0: // foreach on variable - ) - ) - 1: Stmt_Foreach( - expr: Expr_Variable( - name: a - ) - keyVar: null - byRef: true - valueVar: Expr_Variable( - name: b - ) - stmts: array( - ) - ) - 2: Stmt_Foreach( - expr: Expr_Variable( - name: a - ) - keyVar: Expr_Variable( - name: b - ) - byRef: false - valueVar: Expr_Variable( - name: c - ) - stmts: array( - ) - ) - 3: Stmt_Foreach( - expr: Expr_Variable( - name: a - ) - keyVar: Expr_Variable( - name: b - ) - byRef: true - valueVar: Expr_Variable( - name: c - ) - stmts: array( - ) - ) - 4: Stmt_Foreach( - expr: Expr_Variable( - name: a - ) - keyVar: null - byRef: false - valueVar: Expr_List( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: a - ) - byRef: false - ) - 1: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: b - ) - byRef: false - ) - ) - ) - stmts: array( - ) - ) - 5: Stmt_Foreach( - expr: Expr_Variable( - name: a - ) - keyVar: Expr_Variable( - name: a - ) - byRef: false - valueVar: Expr_List( - items: array( - 0: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: b - ) - byRef: false - ) - 1: null - 2: Expr_ArrayItem( - key: null - value: Expr_Variable( - name: c - ) - byRef: false - ) - ) - ) - stmts: array( - ) - ) - 6: Stmt_Foreach( - expr: Expr_Array( - items: array( - ) - ) - keyVar: null - byRef: false - valueVar: Expr_Variable( - name: b - ) - stmts: array( - ) - comments: array( - 0: // foreach on expression - ) - ) - 7: Stmt_Foreach( - expr: Expr_Variable( - name: a - ) - keyVar: null - byRef: false - valueVar: Expr_Variable( - name: b - ) - stmts: array( - ) - comments: array( - 0: // alternative syntax - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/loop/while.test b/vendor/nikic/php-parser/test/code/parser/stmt/loop/while.test deleted file mode 100644 index 65f6b233..00000000 --- a/vendor/nikic/php-parser/test/code/parser/stmt/loop/while.test +++ /dev/null @@ -1,25 +0,0 @@ -While loop ------ - -Hi! ------ -array( - 0: Stmt_Declare( - declares: array( - 0: Stmt_DeclareDeclare( - key: A - value: Scalar_String( - value: B - ) - ) - ) - stmts: null - ) - 1: Stmt_Namespace( - name: Name( - parts: array( - 0: B - ) - ) - stmts: array( - ) - ) - 2: Stmt_HaltCompiler( - remaining: Hi! - ) -) ------ -a = $a; - } -}; ------ -new class -{ -}; -new class extends A implements B, C -{ -}; -new class($a) extends A -{ - private $a; - public function __construct($a) - { - $this->a = $a; - } -}; diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arrayDestructuring.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arrayDestructuring.test deleted file mode 100644 index bff1999e..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arrayDestructuring.test +++ /dev/null @@ -1,14 +0,0 @@ -Array destructuring ------ - $b, 'b' => $a] = $baz; ------ -!!php7 -[$a, $b] = [$c, $d]; -[, $a, , , $b, ] = $foo; -[, [[$a]], $b] = $bar; -['a' => $b, 'b' => $a] = $baz; \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/call.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/call.test deleted file mode 100644 index 0ec8925c..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/call.test +++ /dev/null @@ -1,13 +0,0 @@ -Calls ------ -d} -STR; - -call( - <<d} -STR; -call(<<> $b; -$a < $b; -$a <= $b; -$a > $b; -$a >= $b; -$a == $b; -$a != $b; -$a <> $b; -$a === $b; -$a !== $b; -$a <=> $b; -$a & $b; -$a ^ $b; -$a | $b; -$a && $b; -$a || $b; -$a ? $b : $c; -$a ?: $c; -$a ?? $c; - -$a = $b; -$a **= $b; -$a *= $b; -$a /= $b; -$a %= $b; -$a += $b; -$a -= $b; -$a .= $b; -$a <<= $b; -$a >>= $b; -$a &= $b; -$a ^= $b; -$a |= $b; -$a =& $b; - -$a and $b; -$a xor $b; -$a or $b; - -$a instanceof Foo; -$a instanceof $b; ------ -$a ** $b; -++$a; ---$a; -$a++; -$a--; -@$a; -~$a; --$a; -+$a; -(int) $a; -(int) $a; -(double) $a; -(double) $a; -(double) $a; -(string) $a; -(string) $a; -(array) $a; -(object) $a; -(bool) $a; -(bool) $a; -(unset) $a; -$a * $b; -$a / $b; -$a % $b; -$a + $b; -$a - $b; -$a . $b; -$a << $b; -$a >> $b; -$a < $b; -$a <= $b; -$a > $b; -$a >= $b; -$a == $b; -$a != $b; -$a != $b; -$a === $b; -$a !== $b; -$a <=> $b; -$a & $b; -$a ^ $b; -$a | $b; -$a && $b; -$a || $b; -$a ? $b : $c; -$a ?: $c; -$a ?? $c; -$a = $b; -$a **= $b; -$a *= $b; -$a /= $b; -$a %= $b; -$a += $b; -$a -= $b; -$a .= $b; -$a <<= $b; -$a >>= $b; -$a &= $b; -$a ^= $b; -$a |= $b; -$a =& $b; -$a and $b; -$a xor $b; -$a or $b; -$a instanceof Foo; -$a instanceof $b; diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/parentheses.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/parentheses.test deleted file mode 100644 index a49c1108..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/parentheses.test +++ /dev/null @@ -1,86 +0,0 @@ -Pretty printer generates least-parentheses output ------ - 0) > (1 < 0); -++$a + $b; -$a + $b++; - -$a ** $b ** $c; -($a ** $b) ** $c; --1 ** 2; - -yield from $a and yield from $b; -yield from ($a and yield from $b); - -print ($a and print $b); - --(-$a); -+(+$a); --(--$a); -+(++$a); - -// The following will currently add unnecessary parentheses, because the pretty printer is not aware that assignment -// and incdec only work on variables. -!$a = $b; -++$a ** $b; -$a ** $b++; ------ -echo 'abc' . 'cde' . 'fgh'; -echo 'abc' . ('cde' . 'fgh'); -echo 'abc' . 1 + 2 . 'fgh'; -echo 'abc' . (1 + 2) . 'fgh'; -echo 1 * 2 + 3 / 4 % 5 . 6; -echo 1 * (2 + 3) / (4 % (5 . 6)); -$a = $b = $c = $d = $f && true; -($a = $b = $c = $d = $f) && true; -$a = $b = $c = $d = $f and true; -$a = $b = $c = $d = ($f and true); -$a ? $b : $c ? $d : $e ? $f : $g; -$a ? $b : ($c ? $d : ($e ? $f : $g)); -$a ? $b ? $c : $d : $f; -$a ?? $b ?? $c; -($a ?? $b) ?? $c; -$a ?? ($b ? $c : $d); -$a || ($b ?? $c); -(1 > 0) > (1 < 0); -++$a + $b; -$a + $b++; -$a ** $b ** $c; -($a ** $b) ** $c; --1 ** 2; -yield from $a and yield from $b; -yield from ($a and yield from $b); -print ($a and print $b); --(-$a); -+(+$a); --(--$a); -+(++$a); -// The following will currently add unnecessary parentheses, because the pretty printer is not aware that assignment -// and incdec only work on variables. -!($a = $b); -(++$a) ** $b; -$a ** ($b++); diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/shortArraySyntax.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/shortArraySyntax.test deleted file mode 100644 index 082c2e04..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/shortArraySyntax.test +++ /dev/null @@ -1,11 +0,0 @@ -Short array syntax ------ - 'b', 'c' => 'd']; ------ -[]; -array(1, 2, 3); -['a' => 'b', 'c' => 'd']; \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/stringEscaping.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/stringEscaping.test deleted file mode 100644 index 02877ad3..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/stringEscaping.test +++ /dev/null @@ -1,23 +0,0 @@ -Escape sequences in double-quoted strings ------ -b)(); -(A::$b)(); ------ -!!php7 -(function () { -})(); -array('a', 'b')()(); -A::$b::$c; -$A::$b[$c](); -$A::{$b[$c]}(); -A::${$b}[$c](); -($a->b)(); -(A::$b)(); diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/variables.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/variables.test deleted file mode 100644 index 4e0fa2e1..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/variables.test +++ /dev/null @@ -1,73 +0,0 @@ -Variables ------ -b; -$a->b(); -$a->b($c); -$a->$b(); -$a->{$b}(); -$a->$b[$c](); -$$a->b; -$a[$b]; -$a[$b](); -$$a[$b]; -$a::B; -$a::$b; -$a::b(); -$a::b($c); -$a::$b(); -$a::$b[$c]; -$a::$b[$c]($d); -$a::{$b[$c]}($d); -$a::{$b->c}(); -A::$$b[$c](); -a(); -$a(); -$a()[$b]; -$a->b()[$c]; -$a::$b()[$c]; -(new A)->b; -(new A())->b(); -(new $$a)[$b]; -(new $a->b)->c; - -global $a, $$a, $$a[$b], $$a->b; ------ -!!php5 -$a; -${$a}; -${$a}; -$a->b; -$a->b(); -$a->b($c); -$a->{$b}(); -$a->{$b}(); -$a->{$b[$c]}(); -${$a}->b; -$a[$b]; -$a[$b](); -${$a[$b]}; -$a::B; -$a::$b; -$a::b(); -$a::b($c); -$a::$b(); -$a::$b[$c]; -$a::{$b[$c]}($d); -$a::{$b[$c]}($d); -$a::{$b->c}(); -A::${$b[$c]}(); -a(); -$a(); -$a()[$b]; -$a->b()[$c]; -$a::$b()[$c]; -(new A())->b; -(new A())->b(); -(new ${$a}())[$b]; -(new $a->b())->c; -global $a, ${$a}, ${$a[$b]}, ${$a->b}; diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/yield.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/yield.test deleted file mode 100644 index 12ab7dec..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/yield.test +++ /dev/null @@ -1,46 +0,0 @@ -Yield ------ - $b; - $a = yield; - $a = (yield $b); - $a = (yield $b => $c); -} -// TODO Get rid of parens for cases 2 and 3 ------ -function gen() -{ - yield; - (yield $a); - (yield $a => $b); - $a = yield; - $a = (yield $b); - $a = (yield $b => $c); -} -// TODO Get rid of parens for cases 2 and 3 ------ - $c; - yield from $a; - $a = yield from $b; -} -// TODO Get rid of parens for last case ------ -!!php7 -function gen() -{ - $a = (yield $b); - $a = (yield $b => $c); - yield from $a; - $a = (yield from $b); -} -// TODO Get rid of parens for last case \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/inlineHTMLandPHPtest.file-test b/vendor/nikic/php-parser/test/code/prettyPrinter/inlineHTMLandPHPtest.file-test deleted file mode 100644 index b33eb527..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/inlineHTMLandPHPtest.file-test +++ /dev/null @@ -1,58 +0,0 @@ -File containing both inline HTML and PHP ------ -HTML - -HTML ------ - -HTML ------ -HTML - -HTML ------ -HTML - -HTML ------ -HTML - -HTML - -HTML ------ -HTML - -HTML - -HTML ------ -HTMLHTML ------ -HTMLHTML \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/onlyInlineHTML.file-test b/vendor/nikic/php-parser/test/code/prettyPrinter/onlyInlineHTML.file-test deleted file mode 100644 index e9807191..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/onlyInlineHTML.file-test +++ /dev/null @@ -1,19 +0,0 @@ -File containing only inline HTML ------ -Hallo World -Foo Bar -Bar Foo -World Hallo ------ -Hallo World -Foo Bar -Bar Foo -World Hallo ------ - - -Test ------ - - -Test \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/onlyPHP.file-test b/vendor/nikic/php-parser/test/code/prettyPrinter/onlyPHP.file-test deleted file mode 100644 index 9550b107..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/onlyPHP.file-test +++ /dev/null @@ -1,16 +0,0 @@ -File containing only PHP ------ -a = 'bar'; - echo 'test'; - } - - protected function baz() {} - public function foo() {} - abstract static function bar() {} -} - -trait Bar -{ - function test() - { - } -} ------ -class Foo extends Bar implements ABC, \DEF, namespace\GHI -{ - var $a = 'foo'; - private $b = 'bar'; - static $c = 'baz'; - function test() - { - $this->a = 'bar'; - echo 'test'; - } - protected function baz() - { - } - public function foo() - { - } - static abstract function bar() - { - } -} -trait Bar -{ - function test() - { - } -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/class_const.test b/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/class_const.test deleted file mode 100644 index e73ad430..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/class_const.test +++ /dev/null @@ -1,20 +0,0 @@ -Class constants ------ - $val) { - -} - -foreach ($arr as $key => &$val) { - -} ------ -foreach ($arr as $val) { -} -foreach ($arr as &$val) { -} -foreach ($arr as $key => $val) { -} -foreach ($arr as $key => &$val) { -} \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/function_signatures.test b/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/function_signatures.test deleted file mode 100644 index af1088a0..00000000 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/function_signatures.test +++ /dev/null @@ -1,43 +0,0 @@ -Function signatures ------ -parse($code); - $parseTime += microtime(true) - $startTime; - - $startTime = microtime(true); - $code = 'prettyPrint($stmts); - $ppTime += microtime(true) - $startTime; - - try { - $startTime = microtime(true); - $ppStmts = $parser->parse($code); - $reparseTime += microtime(true) - $startTime; - - $startTime = microtime(true); - $same = $nodeDumper->dump($stmts) == $nodeDumper->dump($ppStmts); - $compareTime += microtime(true) - $startTime; - - if (!$same) { - echo $file, ":\n Result of initial parse and parse after pretty print differ\n"; - if ($verbose) { - echo "Pretty printer output:\n=====\n$code\n=====\n\n"; - } - - ++$compareFail; - } - } catch (PhpParser\Error $e) { - echo $file, ":\n Parse of pretty print failed with message: {$e->getMessage()}\n"; - if ($verbose) { - echo "Pretty printer output:\n=====\n$code\n=====\n\n"; - } - - ++$ppFail; - } - } catch (PhpParser\Error $e) { - echo $file, ":\n Parse failed with message: {$e->getMessage()}\n"; - - ++$parseFail; - } -} - -if (0 === $parseFail && 0 === $ppFail && 0 === $compareFail) { - $exit = 0; - echo "\n\n", 'All tests passed.', "\n"; -} else { - $exit = 1; - echo "\n\n", '==========', "\n\n", 'There were: ', "\n"; - if (0 !== $parseFail) { - echo ' ', $parseFail, ' parse failures.', "\n"; - } - if (0 !== $ppFail) { - echo ' ', $ppFail, ' pretty print failures.', "\n"; - } - if (0 !== $compareFail) { - echo ' ', $compareFail, ' compare failures.', "\n"; - } -} - -echo "\n", - 'Tested files: ', $count, "\n", - "\n", - 'Reading files took: ', $readTime, "\n", - 'Parsing took: ', $parseTime, "\n", - 'Pretty printing took: ', $ppTime, "\n", - 'Reparsing took: ', $reparseTime, "\n", - 'Comparing took: ', $compareTime, "\n", - "\n", - 'Total time: ', microtime(true) - $totalStartTime, "\n", - 'Maximum memory usage: ', memory_get_peak_usage(true), "\n"; - -exit($exit); diff --git a/vendor/paragonie/random_compat/LICENSE b/vendor/paragonie/random_compat/LICENSE deleted file mode 100644 index 45c7017d..00000000 --- a/vendor/paragonie/random_compat/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Paragon Initiative Enterprises - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/vendor/paragonie/random_compat/build-phar.sh b/vendor/paragonie/random_compat/build-phar.sh deleted file mode 100755 index b4a5ba31..00000000 --- a/vendor/paragonie/random_compat/build-phar.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -basedir=$( dirname $( readlink -f ${BASH_SOURCE[0]} ) ) - -php -dphar.readonly=0 "$basedir/other/build_phar.php" $* \ No newline at end of file diff --git a/vendor/paragonie/random_compat/composer.json b/vendor/paragonie/random_compat/composer.json deleted file mode 100644 index 1c5978c6..00000000 --- a/vendor/paragonie/random_compat/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "paragonie/random_compat", - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "random", - "pseudorandom" - ], - "license": "MIT", - "type": "library", - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "support": { - "issues": "https://github.com/paragonie/random_compat/issues", - "email": "info@paragonie.com", - "source": "https://github.com/paragonie/random_compat" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "autoload": { - "files": [ - "lib/random.php" - ] - } -} diff --git a/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey b/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey deleted file mode 100644 index eb50ebfc..00000000 --- a/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PUBLIC KEY----- -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEEd+wCqJDrx5B4OldM0dQE0ZMX+lx1ZWm -pui0SUqD4G29L3NGsz9UhJ/0HjBdbnkhIK5xviT0X5vtjacF6ajgcCArbTB+ds+p -+h7Q084NuSuIpNb6YPfoUFgC/CL9kAoc ------END PUBLIC KEY----- diff --git a/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc b/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc deleted file mode 100644 index 6a1d7f30..00000000 --- a/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.22 (MingW32) - -iQEcBAABAgAGBQJWtW1hAAoJEGuXocKCZATaJf0H+wbZGgskK1dcRTsuVJl9IWip -QwGw/qIKI280SD6/ckoUMxKDCJiFuPR14zmqnS36k7N5UNPnpdTJTS8T11jttSpg -1LCmgpbEIpgaTah+cELDqFCav99fS+bEiAL5lWDAHBTE/XPjGVCqeehyPYref4IW -NDBIEsvnHPHPLsn6X5jq4+Yj5oUixgxaMPiR+bcO4Sh+RzOVB6i2D0upWfRXBFXA -NNnsg9/zjvoC7ZW73y9uSH+dPJTt/Vgfeiv52/v41XliyzbUyLalf02GNPY+9goV -JHG1ulEEBJOCiUD9cE1PUIJwHA/HqyhHIvV350YoEFiHl8iSwm7SiZu5kPjaq74= -=B6+8 ------END PGP SIGNATURE----- diff --git a/vendor/paragonie/random_compat/lib/byte_safe_strings.php b/vendor/paragonie/random_compat/lib/byte_safe_strings.php deleted file mode 100644 index 3de86b22..00000000 --- a/vendor/paragonie/random_compat/lib/byte_safe_strings.php +++ /dev/null @@ -1,181 +0,0 @@ - RandomCompat_strlen($binary_string)) { - return ''; - } - - return (string) mb_substr($binary_string, $start, $length, '8bit'); - } - - } else { - - /** - * substr() implementation that isn't brittle to mbstring.func_overload - * - * This version just uses the default substr() - * - * @param string $binary_string - * @param int $start - * @param int $length (optional) - * - * @throws TypeError - * - * @return string - */ - function RandomCompat_substr($binary_string, $start, $length = null) - { - if (!is_string($binary_string)) { - throw new TypeError( - 'RandomCompat_substr(): First argument should be a string' - ); - } - - if (!is_int($start)) { - throw new TypeError( - 'RandomCompat_substr(): Second argument should be an integer' - ); - } - - if ($length !== null) { - if (!is_int($length)) { - throw new TypeError( - 'RandomCompat_substr(): Third argument should be an integer, or omitted' - ); - } - - return (string) substr($binary_string, $start, $length); - } - - return (string) substr($binary_string, $start); - } - } -} diff --git a/vendor/paragonie/random_compat/lib/cast_to_int.php b/vendor/paragonie/random_compat/lib/cast_to_int.php deleted file mode 100644 index 9a4fab99..00000000 --- a/vendor/paragonie/random_compat/lib/cast_to_int.php +++ /dev/null @@ -1,75 +0,0 @@ - operators might accidentally let a float - * through. - * - * @param int|float $number The number we want to convert to an int - * @param bool $fail_open Set to true to not throw an exception - * - * @return float|int - * @psalm-suppress InvalidReturnType - * - * @throws TypeError - */ - function RandomCompat_intval($number, $fail_open = false) - { - if (is_int($number) || is_float($number)) { - $number += 0; - } elseif (is_numeric($number)) { - $number += 0; - } - - if ( - is_float($number) - && - $number > ~PHP_INT_MAX - && - $number < PHP_INT_MAX - ) { - $number = (int) $number; - } - - if (is_int($number)) { - return (int) $number; - } elseif (!$fail_open) { - throw new TypeError( - 'Expected an integer.' - ); - } - return $number; - } -} diff --git a/vendor/paragonie/random_compat/lib/error_polyfill.php b/vendor/paragonie/random_compat/lib/error_polyfill.php deleted file mode 100644 index 6a91990c..00000000 --- a/vendor/paragonie/random_compat/lib/error_polyfill.php +++ /dev/null @@ -1,49 +0,0 @@ -= 70000) { - return; -} - -if (!defined('RANDOM_COMPAT_READ_BUFFER')) { - define('RANDOM_COMPAT_READ_BUFFER', 8); -} - -$RandomCompatDIR = dirname(__FILE__); - -require_once $RandomCompatDIR . '/byte_safe_strings.php'; -require_once $RandomCompatDIR . '/cast_to_int.php'; -require_once $RandomCompatDIR . '/error_polyfill.php'; - -if (!is_callable('random_bytes')) { - /** - * PHP 5.2.0 - 5.6.x way to implement random_bytes() - * - * We use conditional statements here to define the function in accordance - * to the operating environment. It's a micro-optimization. - * - * In order of preference: - * 1. Use libsodium if available. - * 2. fread() /dev/urandom if available (never on Windows) - * 3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM) - * 4. COM('CAPICOM.Utilities.1')->GetRandom() - * - * See RATIONALE.md for our reasoning behind this particular order - */ - if (extension_loaded('libsodium')) { - // See random_bytes_libsodium.php - if (PHP_VERSION_ID >= 50300 && is_callable('\\Sodium\\randombytes_buf')) { - require_once $RandomCompatDIR . '/random_bytes_libsodium.php'; - } elseif (method_exists('Sodium', 'randombytes_buf')) { - require_once $RandomCompatDIR . '/random_bytes_libsodium_legacy.php'; - } - } - - /** - * Reading directly from /dev/urandom: - */ - if (DIRECTORY_SEPARATOR === '/') { - // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast - // way to exclude Windows. - $RandomCompatUrandom = true; - $RandomCompat_basedir = ini_get('open_basedir'); - - if (!empty($RandomCompat_basedir)) { - $RandomCompat_open_basedir = explode( - PATH_SEPARATOR, - strtolower($RandomCompat_basedir) - ); - $RandomCompatUrandom = (array() !== array_intersect( - array('/dev', '/dev/', '/dev/urandom'), - $RandomCompat_open_basedir - )); - $RandomCompat_open_basedir = null; - } - - if ( - !is_callable('random_bytes') - && - $RandomCompatUrandom - && - @is_readable('/dev/urandom') - ) { - // Error suppression on is_readable() in case of an open_basedir - // or safe_mode failure. All we care about is whether or not we - // can read it at this point. If the PHP environment is going to - // panic over trying to see if the file can be read in the first - // place, that is not helpful to us here. - - // See random_bytes_dev_urandom.php - require_once $RandomCompatDIR . '/random_bytes_dev_urandom.php'; - } - // Unset variables after use - $RandomCompat_basedir = null; - } else { - $RandomCompatUrandom = false; - } - - /** - * mcrypt_create_iv() - * - * We only want to use mcypt_create_iv() if: - * - * - random_bytes() hasn't already been defined - * - the mcrypt extensions is loaded - * - One of these two conditions is true: - * - We're on Windows (DIRECTORY_SEPARATOR !== '/') - * - We're not on Windows and /dev/urandom is readabale - * (i.e. we're not in a chroot jail) - * - Special case: - * - If we're not on Windows, but the PHP version is between - * 5.6.10 and 5.6.12, we don't want to use mcrypt. It will - * hang indefinitely. This is bad. - * - If we're on Windows, we want to use PHP >= 5.3.7 or else - * we get insufficient entropy errors. - */ - if ( - !is_callable('random_bytes') - && - // Windows on PHP < 5.3.7 is broken, but non-Windows is not known to be. - (DIRECTORY_SEPARATOR === '/' || PHP_VERSION_ID >= 50307) - && - // Prevent this code from hanging indefinitely on non-Windows; - // see https://bugs.php.net/bug.php?id=69833 - ( - DIRECTORY_SEPARATOR !== '/' || - (PHP_VERSION_ID <= 50609 || PHP_VERSION_ID >= 50613) - ) - && - extension_loaded('mcrypt') - ) { - // See random_bytes_mcrypt.php - require_once $RandomCompatDIR . '/random_bytes_mcrypt.php'; - } - $RandomCompatUrandom = null; - - /** - * This is a Windows-specific fallback, for when the mcrypt extension - * isn't loaded. - */ - if ( - !is_callable('random_bytes') - && - extension_loaded('com_dotnet') - && - class_exists('COM') - ) { - $RandomCompat_disabled_classes = preg_split( - '#\s*,\s*#', - strtolower(ini_get('disable_classes')) - ); - - if (!in_array('com', $RandomCompat_disabled_classes)) { - try { - $RandomCompatCOMtest = new COM('CAPICOM.Utilities.1'); - if (method_exists($RandomCompatCOMtest, 'GetRandom')) { - // See random_bytes_com_dotnet.php - require_once $RandomCompatDIR . '/random_bytes_com_dotnet.php'; - } - } catch (com_exception $e) { - // Don't try to use it. - } - } - $RandomCompat_disabled_classes = null; - $RandomCompatCOMtest = null; - } - - /** - * throw new Exception - */ - if (!is_callable('random_bytes')) { - /** - * We don't have any more options, so let's throw an exception right now - * and hope the developer won't let it fail silently. - * - * @param mixed $length - * @return void - * @throws Exception - */ - function random_bytes($length) - { - unset($length); // Suppress "variable not used" warnings. - throw new Exception( - 'There is no suitable CSPRNG installed on your system' - ); - } - } -} - -if (!is_callable('random_int')) { - require_once $RandomCompatDIR . '/random_int.php'; -} - -$RandomCompatDIR = null; diff --git a/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php b/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php deleted file mode 100644 index fc1926e5..00000000 --- a/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php +++ /dev/null @@ -1,88 +0,0 @@ -GetRandom($bytes, 0)); - if (RandomCompat_strlen($buf) >= $bytes) { - /** - * Return our random entropy buffer here: - */ - return RandomCompat_substr($buf, 0, $bytes); - } - ++$execCount; - } while ($execCount < $bytes); - - /** - * If we reach here, PHP has failed us. - */ - throw new Exception( - 'Could not gather sufficient random data' - ); - } -} \ No newline at end of file diff --git a/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php b/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php deleted file mode 100644 index df5b9152..00000000 --- a/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php +++ /dev/null @@ -1,167 +0,0 @@ - 0); - - /** - * Is our result valid? - */ - if (is_string($buf)) { - if (RandomCompat_strlen($buf) === $bytes) { - /** - * Return our random entropy buffer here: - */ - return $buf; - } - } - } - - /** - * If we reach here, PHP has failed us. - */ - throw new Exception( - 'Error reading from source device' - ); - } -} diff --git a/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php b/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php deleted file mode 100644 index 4af1a242..00000000 --- a/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php +++ /dev/null @@ -1,88 +0,0 @@ - 2147483647) { - $buf = ''; - for ($i = 0; $i < $bytes; $i += 1073741824) { - $n = ($bytes - $i) > 1073741824 - ? 1073741824 - : $bytes - $i; - $buf .= \Sodium\randombytes_buf($n); - } - } else { - $buf = \Sodium\randombytes_buf($bytes); - } - - if ($buf !== false) { - if (RandomCompat_strlen($buf) === $bytes) { - return $buf; - } - } - - /** - * If we reach here, PHP has failed us. - */ - throw new Exception( - 'Could not gather sufficient random data' - ); - } -} diff --git a/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php b/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php deleted file mode 100644 index 705af526..00000000 --- a/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php +++ /dev/null @@ -1,92 +0,0 @@ - 2147483647) { - for ($i = 0; $i < $bytes; $i += 1073741824) { - $n = ($bytes - $i) > 1073741824 - ? 1073741824 - : $bytes - $i; - $buf .= Sodium::randombytes_buf((int) $n); - } - } else { - $buf .= Sodium::randombytes_buf((int) $bytes); - } - - if (is_string($buf)) { - if (RandomCompat_strlen($buf) === $bytes) { - return $buf; - } - } - - /** - * If we reach here, PHP has failed us. - */ - throw new Exception( - 'Could not gather sufficient random data' - ); - } -} diff --git a/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php b/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php deleted file mode 100644 index aac9c013..00000000 --- a/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php +++ /dev/null @@ -1,77 +0,0 @@ - operators might accidentally let a float - * through. - */ - - try { - $min = RandomCompat_intval($min); - } catch (TypeError $ex) { - throw new TypeError( - 'random_int(): $min must be an integer' - ); - } - - try { - $max = RandomCompat_intval($max); - } catch (TypeError $ex) { - throw new TypeError( - 'random_int(): $max must be an integer' - ); - } - - /** - * Now that we've verified our weak typing system has given us an integer, - * let's validate the logic then we can move forward with generating random - * integers along a given range. - */ - if ($min > $max) { - throw new Error( - 'Minimum value must be less than or equal to the maximum value' - ); - } - - if ($max === $min) { - return (int) $min; - } - - /** - * Initialize variables to 0 - * - * We want to store: - * $bytes => the number of random bytes we need - * $mask => an integer bitmask (for use with the &) operator - * so we can minimize the number of discards - */ - $attempts = $bits = $bytes = $mask = $valueShift = 0; - - /** - * At this point, $range is a positive number greater than 0. It might - * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to - * a float and we will lose some precision. - */ - $range = $max - $min; - - /** - * Test for integer overflow: - */ - if (!is_int($range)) { - - /** - * Still safely calculate wider ranges. - * Provided by @CodesInChaos, @oittaa - * - * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435 - * - * We use ~0 as a mask in this case because it generates all 1s - * - * @ref https://eval.in/400356 (32-bit) - * @ref http://3v4l.org/XX9r5 (64-bit) - */ - $bytes = PHP_INT_SIZE; - $mask = ~0; - - } else { - - /** - * $bits is effectively ceil(log($range, 2)) without dealing with - * type juggling - */ - while ($range > 0) { - if ($bits % 8 === 0) { - ++$bytes; - } - ++$bits; - $range >>= 1; - $mask = $mask << 1 | 1; - } - $valueShift = $min; - } - - $val = 0; - /** - * Now that we have our parameters set up, let's begin generating - * random integers until one falls between $min and $max - */ - do { - /** - * The rejection probability is at most 0.5, so this corresponds - * to a failure probability of 2^-128 for a working RNG - */ - if ($attempts > 128) { - throw new Exception( - 'random_int: RNG is broken - too many rejections' - ); - } - - /** - * Let's grab the necessary number of random bytes - */ - $randomByteString = random_bytes($bytes); - - /** - * Let's turn $randomByteString into an integer - * - * This uses bitwise operators (<< and |) to build an integer - * out of the values extracted from ord() - * - * Example: [9F] | [6D] | [32] | [0C] => - * 159 + 27904 + 3276800 + 201326592 => - * 204631455 - */ - $val &= 0; - for ($i = 0; $i < $bytes; ++$i) { - $val |= ord($randomByteString[$i]) << ($i * 8); - } - - /** - * Apply mask - */ - $val &= $mask; - $val += $valueShift; - - ++$attempts; - /** - * If $val overflows to a floating point number, - * ... or is larger than $max, - * ... or smaller than $min, - * then try again. - */ - } while (!is_int($val) || $val > $max || $val < $min); - - return (int) $val; - } -} diff --git a/vendor/paragonie/random_compat/other/build_phar.php b/vendor/paragonie/random_compat/other/build_phar.php deleted file mode 100644 index 70ef4b2e..00000000 --- a/vendor/paragonie/random_compat/other/build_phar.php +++ /dev/null @@ -1,57 +0,0 @@ -buildFromDirectory(dirname(__DIR__).'/lib'); -rename( - dirname(__DIR__).'/lib/index.php', - dirname(__DIR__).'/lib/random.php' -); - -/** - * If we pass an (optional) path to a private key as a second argument, we will - * sign the Phar with OpenSSL. - * - * If you leave this out, it will produce an unsigned .phar! - */ -if ($argc > 1) { - if (!@is_readable($argv[1])) { - echo 'Could not read the private key file:', $argv[1], "\n"; - exit(255); - } - $pkeyFile = file_get_contents($argv[1]); - - $private = openssl_get_privatekey($pkeyFile); - if ($private !== false) { - $pkey = ''; - openssl_pkey_export($private, $pkey); - $phar->setSignatureAlgorithm(Phar::OPENSSL, $pkey); - - /** - * Save the corresponding public key to the file - */ - if (!@is_readable($dist.'/random_compat.phar.pubkey')) { - $details = openssl_pkey_get_details($private); - file_put_contents( - $dist.'/random_compat.phar.pubkey', - $details['key'] - ); - } - } else { - echo 'An error occurred reading the private key from OpenSSL.', "\n"; - exit(255); - } -} diff --git a/vendor/paragonie/random_compat/psalm-autoload.php b/vendor/paragonie/random_compat/psalm-autoload.php deleted file mode 100644 index d71d1b81..00000000 --- a/vendor/paragonie/random_compat/psalm-autoload.php +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/.gitignore b/vendor/phar-io/manifest/.gitignore deleted file mode 100644 index 94d433b5..00000000 --- a/vendor/phar-io/manifest/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/.idea -/.php_cs.cache -/composer.lock -/src/autoload.php -/tools -/vendor - -/build diff --git a/vendor/phar-io/manifest/.php_cs b/vendor/phar-io/manifest/.php_cs deleted file mode 100644 index 159d6a35..00000000 --- a/vendor/phar-io/manifest/.php_cs +++ /dev/null @@ -1,67 +0,0 @@ -files() - ->in('src') - ->in('tests') - ->name('*.php'); - -return Symfony\CS\Config\Config::create() - ->setUsingCache(true) - ->level(\Symfony\CS\FixerInterface::NONE_LEVEL) - ->fixers( - array( - 'align_double_arrow', - 'align_equals', - 'concat_with_spaces', - 'duplicate_semicolon', - 'elseif', - 'empty_return', - 'encoding', - 'eof_ending', - 'extra_empty_lines', - 'function_call_space', - 'function_declaration', - 'indentation', - 'join_function', - 'line_after_namespace', - 'linefeed', - 'list_commas', - 'lowercase_constants', - 'lowercase_keywords', - 'method_argument_space', - 'multiple_use', - 'namespace_no_leading_whitespace', - 'no_blank_lines_after_class_opening', - 'no_empty_lines_after_phpdocs', - 'parenthesis', - 'php_closing_tag', - 'phpdoc_indent', - 'phpdoc_no_access', - 'phpdoc_no_empty_return', - 'phpdoc_no_package', - 'phpdoc_params', - 'phpdoc_scalar', - 'phpdoc_separation', - 'phpdoc_to_comment', - 'phpdoc_trim', - 'phpdoc_types', - 'phpdoc_var_without_name', - 'remove_lines_between_uses', - 'return', - 'self_accessor', - 'short_array_syntax', - 'short_tag', - 'single_line_after_imports', - 'single_quote', - 'spaces_before_semicolon', - 'spaces_cast', - 'ternary_spaces', - 'trailing_spaces', - 'trim_array_spaces', - 'unused_use', - 'visibility', - 'whitespacy_lines' - ) - ) - ->finder($finder); - diff --git a/vendor/phar-io/manifest/.travis.yml b/vendor/phar-io/manifest/.travis.yml deleted file mode 100644 index b4be10f9..00000000 --- a/vendor/phar-io/manifest/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -os: -- linux - -language: php - -before_install: - - wget https://phar.io/releases/phive.phar - - wget https://phar.io/releases/phive.phar.asc - - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys 0x9B2D5D79 - - gpg --verify phive.phar.asc phive.phar - - chmod +x phive.phar - - sudo mv phive.phar /usr/bin/phive - -install: - - ant setup - -script: ./tools/phpunit - -php: - - 5.6 - - 7.0 - - 7.1 - - 7.0snapshot - - 7.1snapshot - - master - -matrix: - allow_failures: - - php: master - fast_finish: true - -notifications: - email: false diff --git a/vendor/phar-io/manifest/LICENSE b/vendor/phar-io/manifest/LICENSE deleted file mode 100644 index 96051b14..00000000 --- a/vendor/phar-io/manifest/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -manifest - -Copyright (c) 2016 Arne Blankerts , Sebastian Heuer , Sebastian Bergmann , and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of Arne Blankerts nor the names of contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - diff --git a/vendor/phar-io/manifest/README.md b/vendor/phar-io/manifest/README.md deleted file mode 100644 index e6d0b055..00000000 --- a/vendor/phar-io/manifest/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Manifest - -Component for reading [phar.io](https://phar.io/) manifest information from a [PHP Archive (PHAR)](http://php.net/phar). - -[![Build Status](https://travis-ci.org/phar-io/manifest.svg?branch=master)](https://travis-ci.org/phar-io/manifest) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/phar-io/manifest/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/phar-io/manifest/?branch=master) -[![SensioLabsInsight](https://insight.sensiolabs.com/projects/d8cc6035-69ad-477d-bd1a-ccc605480fd7/mini.png)](https://insight.sensiolabs.com/projects/d8cc6035-69ad-477d-bd1a-ccc605480fd7) - -## Installation - -You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): - - composer require phar-io/manifest - -If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: - - composer require --dev phar-io/manifest - -## Usage - -```php -use PharIo\Manifest\ManifestLoader; -use PharIo\Manifest\ManifestSerializer; - -$manifest = ManifestLoader::fromFile('manifest.xml'); - -var_dump($manifest); - -echo (new ManifestSerializer)->serializeToString($manifest); -``` diff --git a/vendor/phar-io/manifest/build.xml b/vendor/phar-io/manifest/build.xml deleted file mode 100644 index fc6eb1a8..00000000 --- a/vendor/phar-io/manifest/build.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/composer.json b/vendor/phar-io/manifest/composer.json deleted file mode 100644 index 832134d6..00000000 --- a/vendor/phar-io/manifest/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "phar-io/manifest", - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "support": { - "issues": "https://github.com/phar-io/manifest/issues" - }, - "require": { - "php": "^5.6 || ^7.0", - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1" - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} - diff --git a/vendor/phar-io/manifest/examples/example-01.php b/vendor/phar-io/manifest/examples/example-01.php deleted file mode 100644 index 345c407a..00000000 --- a/vendor/phar-io/manifest/examples/example-01.php +++ /dev/null @@ -1,23 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use PharIo\Manifest\ManifestLoader; -use PharIo\Manifest\ManifestSerializer; - -require __DIR__ . '/../vendor/autoload.php'; - -$manifest = ManifestLoader::fromFile(__DIR__ . '/../tests/_fixture/phpunit-5.6.5.xml'); - -echo sprintf( - "Manifest for %s (%s):\n\n", - $manifest->getName(), - $manifest->getVersion()->getVersionString() -); -echo (new ManifestSerializer)->serializeToString($manifest); diff --git a/vendor/phar-io/manifest/phive.xml b/vendor/phar-io/manifest/phive.xml deleted file mode 100644 index 69f2f91b..00000000 --- a/vendor/phar-io/manifest/phive.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vendor/phar-io/manifest/phpunit.xml b/vendor/phar-io/manifest/phpunit.xml deleted file mode 100644 index 2d7708ee..00000000 --- a/vendor/phar-io/manifest/phpunit.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - tests - - - - - src - - - diff --git a/vendor/phar-io/manifest/src/ManifestDocumentMapper.php b/vendor/phar-io/manifest/src/ManifestDocumentMapper.php deleted file mode 100644 index d41e4f93..00000000 --- a/vendor/phar-io/manifest/src/ManifestDocumentMapper.php +++ /dev/null @@ -1,193 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PharIo\Version\Exception as VersionException; -use PharIo\Version\VersionConstraintParser; - -class ManifestDocumentMapper { - /** - * @param ManifestDocument $document - * - * @returns Manifest - * - * @throws ManifestDocumentMapperException - */ - public function map(ManifestDocument $document) { - try { - $contains = $document->getContainsElement(); - $type = $this->mapType($contains); - $copyright = $this->mapCopyright($document->getCopyrightElement()); - $requirements = $this->mapRequirements($document->getRequiresElement()); - $bundledComponents = $this->mapBundledComponents($document); - - return new Manifest( - new ApplicationName($contains->getName()), - new Version($contains->getVersion()), - $type, - $copyright, - $requirements, - $bundledComponents - ); - } catch (VersionException $e) { - throw new ManifestDocumentMapperException($e->getMessage(), $e->getCode(), $e); - } catch (Exception $e) { - throw new ManifestDocumentMapperException($e->getMessage(), $e->getCode(), $e); - } - } - - /** - * @param ContainsElement $contains - * - * @return Type - * - * @throws ManifestDocumentMapperException - */ - private function mapType(ContainsElement $contains) { - switch ($contains->getType()) { - case 'application': - return Type::application(); - case 'library': - return Type::library(); - case 'extension': - return $this->mapExtension($contains->getExtensionElement()); - } - - throw new ManifestDocumentMapperException( - sprintf('Unsupported type %s', $contains->getType()) - ); - } - - /** - * @param CopyrightElement $copyright - * - * @return CopyrightInformation - * - * @throws InvalidUrlException - * @throws InvalidEmailException - */ - private function mapCopyright(CopyrightElement $copyright) { - $authors = new AuthorCollection(); - - foreach($copyright->getAuthorElements() as $authorElement) { - $authors->add( - new Author( - $authorElement->getName(), - new Email($authorElement->getEmail()) - ) - ); - } - - $licenseElement = $copyright->getLicenseElement(); - $license = new License( - $licenseElement->getType(), - new Url($licenseElement->getUrl()) - ); - - return new CopyrightInformation( - $authors, - $license - ); - } - - /** - * @param RequiresElement $requires - * - * @return RequirementCollection - * - * @throws ManifestDocumentMapperException - */ - private function mapRequirements(RequiresElement $requires) { - $collection = new RequirementCollection(); - $phpElement = $requires->getPHPElement(); - $parser = new VersionConstraintParser; - - try { - $versionConstraint = $parser->parse($phpElement->getVersion()); - } catch (VersionException $e) { - throw new ManifestDocumentMapperException( - sprintf('Unsupported version constraint - %s', $e->getMessage()), - $e->getCode(), - $e - ); - } - - $collection->add( - new PhpVersionRequirement( - $versionConstraint - ) - ); - - if (!$phpElement->hasExtElements()) { - return $collection; - } - - foreach($phpElement->getExtElements() as $extElement) { - $collection->add( - new PhpExtensionRequirement($extElement->getName()) - ); - } - - return $collection; - } - - /** - * @param ManifestDocument $document - * - * @return BundledComponentCollection - */ - private function mapBundledComponents(ManifestDocument $document) { - $collection = new BundledComponentCollection(); - - if (!$document->hasBundlesElement()) { - return $collection; - } - - foreach($document->getBundlesElement()->getComponentElements() as $componentElement) { - $collection->add( - new BundledComponent( - $componentElement->getName(), - new Version( - $componentElement->getVersion() - ) - ) - ); - } - - return $collection; - } - - /** - * @param ExtensionElement $extension - * - * @return Extension - * - * @throws ManifestDocumentMapperException - */ - private function mapExtension(ExtensionElement $extension) { - try { - $parser = new VersionConstraintParser; - $versionConstraint = $parser->parse($extension->getCompatible()); - - return Type::extension( - new ApplicationName($extension->getFor()), - $versionConstraint - ); - } catch (VersionException $e) { - throw new ManifestDocumentMapperException( - sprintf('Unsupported version constraint - %s', $e->getMessage()), - $e->getCode(), - $e - ); - } - } -} diff --git a/vendor/phar-io/manifest/src/ManifestLoader.php b/vendor/phar-io/manifest/src/ManifestLoader.php deleted file mode 100644 index 81c5c90e..00000000 --- a/vendor/phar-io/manifest/src/ManifestLoader.php +++ /dev/null @@ -1,66 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ManifestLoader { - /** - * @param string $filename - * - * @return Manifest - * - * @throws ManifestLoaderException - */ - public static function fromFile($filename) { - try { - return (new ManifestDocumentMapper())->map( - ManifestDocument::fromFile($filename) - ); - } catch (Exception $e) { - throw new ManifestLoaderException( - sprintf('Loading %s failed.', $filename), - $e->getCode(), - $e - ); - } - } - - /** - * @param string $filename - * - * @return Manifest - * - * @throws ManifestLoaderException - */ - public static function fromPhar($filename) { - return self::fromFile('phar://' . $filename . '/manifest.xml'); - } - - /** - * @param string $manifest - * - * @return Manifest - * - * @throws ManifestLoaderException - */ - public static function fromString($manifest) { - try { - return (new ManifestDocumentMapper())->map( - ManifestDocument::fromString($manifest) - ); - } catch (Exception $e) { - throw new ManifestLoaderException( - 'Processing string failed', - $e->getCode(), - $e - ); - } - } -} diff --git a/vendor/phar-io/manifest/src/ManifestSerializer.php b/vendor/phar-io/manifest/src/ManifestSerializer.php deleted file mode 100644 index 4c18ddd8..00000000 --- a/vendor/phar-io/manifest/src/ManifestSerializer.php +++ /dev/null @@ -1,163 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\AnyVersionConstraint; -use PharIo\Version\Version; -use PharIo\Version\VersionConstraint; -use XMLWriter; - -class ManifestSerializer { - /** - * @var XMLWriter - */ - private $xmlWriter; - - public function serializeToFile(Manifest $manifest, $filename) { - file_put_contents( - $filename, - $this->serializeToString($manifest) - ); - } - - public function serializeToString(Manifest $manifest) { - $this->startDocument(); - - $this->addContains($manifest->getName(), $manifest->getVersion(), $manifest->getType()); - $this->addCopyright($manifest->getCopyrightInformation()); - $this->addRequirements($manifest->getRequirements()); - $this->addBundles($manifest->getBundledComponents()); - - return $this->finishDocument(); - } - - private function startDocument() { - $xmlWriter = new XMLWriter(); - $xmlWriter->openMemory(); - $xmlWriter->setIndent(true); - $xmlWriter->setIndentString(str_repeat(' ', 4)); - $xmlWriter->startDocument('1.0', 'UTF-8'); - $xmlWriter->startElement('phar'); - $xmlWriter->writeAttribute('xmlns', 'https://phar.io/xml/manifest/1.0'); - - $this->xmlWriter = $xmlWriter; - } - - private function finishDocument() { - $this->xmlWriter->endElement(); - $this->xmlWriter->endDocument(); - - return $this->xmlWriter->outputMemory(); - } - - private function addContains($name, Version $version, Type $type) { - $this->xmlWriter->startElement('contains'); - $this->xmlWriter->writeAttribute('name', $name); - $this->xmlWriter->writeAttribute('version', $version->getVersionString()); - - switch (true) { - case $type->isApplication(): { - $this->xmlWriter->writeAttribute('type', 'application'); - break; - } - - case $type->isLibrary(): { - $this->xmlWriter->writeAttribute('type', 'library'); - break; - } - - case $type->isExtension(): { - /* @var $type Extension */ - $this->xmlWriter->writeAttribute('type', 'extension'); - $this->addExtension($type->getApplicationName(), $type->getVersionConstraint()); - break; - } - - default: { - $this->xmlWriter->writeAttribute('type', 'custom'); - } - } - - $this->xmlWriter->endElement(); - } - - private function addCopyright(CopyrightInformation $copyrightInformation) { - $this->xmlWriter->startElement('copyright'); - - foreach($copyrightInformation->getAuthors() as $author) { - $this->xmlWriter->startElement('author'); - $this->xmlWriter->writeAttribute('name', $author->getName()); - $this->xmlWriter->writeAttribute('email', (string) $author->getEmail()); - $this->xmlWriter->endElement(); - } - - $license = $copyrightInformation->getLicense(); - - $this->xmlWriter->startElement('license'); - $this->xmlWriter->writeAttribute('type', $license->getName()); - $this->xmlWriter->writeAttribute('url', $license->getUrl()); - $this->xmlWriter->endElement(); - - $this->xmlWriter->endElement(); - } - - private function addRequirements(RequirementCollection $requirementCollection) { - $phpRequirement = new AnyVersionConstraint(); - $extensions = []; - - foreach($requirementCollection as $requirement) { - if ($requirement instanceof PhpVersionRequirement) { - $phpRequirement = $requirement->getVersionConstraint(); - continue; - } - - if ($requirement instanceof PhpExtensionRequirement) { - $extensions[] = (string) $requirement; - } - } - - $this->xmlWriter->startElement('requires'); - $this->xmlWriter->startElement('php'); - $this->xmlWriter->writeAttribute('version', $phpRequirement->asString()); - - foreach($extensions as $extension) { - $this->xmlWriter->startElement('ext'); - $this->xmlWriter->writeAttribute('name', $extension); - $this->xmlWriter->endElement(); - } - - $this->xmlWriter->endElement(); - $this->xmlWriter->endElement(); - } - - private function addBundles(BundledComponentCollection $bundledComponentCollection) { - if (count($bundledComponentCollection) === 0) { - return; - } - $this->xmlWriter->startElement('bundles'); - - foreach($bundledComponentCollection as $bundledComponent) { - $this->xmlWriter->startElement('component'); - $this->xmlWriter->writeAttribute('name', $bundledComponent->getName()); - $this->xmlWriter->writeAttribute('version', $bundledComponent->getVersion()->getVersionString()); - $this->xmlWriter->endElement(); - } - - $this->xmlWriter->endElement(); - } - - private function addExtension($application, VersionConstraint $versionConstraint) { - $this->xmlWriter->startElement('extension'); - $this->xmlWriter->writeAttribute('for', $application); - $this->xmlWriter->writeAttribute('compatible', $versionConstraint->asString()); - $this->xmlWriter->endElement(); - } -} diff --git a/vendor/phar-io/manifest/src/exceptions/Exception.php b/vendor/phar-io/manifest/src/exceptions/Exception.php deleted file mode 100644 index 3ce46f24..00000000 --- a/vendor/phar-io/manifest/src/exceptions/Exception.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -interface Exception { -} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php b/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php deleted file mode 100644 index a53735a4..00000000 --- a/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php +++ /dev/null @@ -1,16 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class InvalidApplicationNameException extends \InvalidArgumentException implements Exception { - const NotAString = 1; - const InvalidFormat = 2; -} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php b/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php deleted file mode 100644 index 854399b2..00000000 --- a/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class InvalidEmailException extends \InvalidArgumentException implements Exception { -} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php b/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php deleted file mode 100644 index cdd83234..00000000 --- a/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class InvalidUrlException extends \InvalidArgumentException implements Exception { -} diff --git a/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php b/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php deleted file mode 100644 index 8b40195e..00000000 --- a/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php +++ /dev/null @@ -1,6 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Application extends Type { - /** - * @return bool - */ - public function isApplication() { - return true; - } -} diff --git a/vendor/phar-io/manifest/src/values/ApplicationName.php b/vendor/phar-io/manifest/src/values/ApplicationName.php deleted file mode 100644 index 1e71af48..00000000 --- a/vendor/phar-io/manifest/src/values/ApplicationName.php +++ /dev/null @@ -1,65 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ApplicationName { - /** - * @var string - */ - private $name; - - /** - * ApplicationName constructor. - * - * @param string $name - * - * @throws InvalidApplicationNameException - */ - public function __construct($name) { - $this->ensureIsString($name); - $this->ensureValidFormat($name); - $this->name = $name; - } - - /** - * @return string - */ - public function __toString() { - return $this->name; - } - - public function isEqual(ApplicationName $name) { - return $this->name === $name->name; - } - - /** - * @param string $name - * - * @throws InvalidApplicationNameException - */ - private function ensureValidFormat($name) { - if (!preg_match('#\w/\w#', $name)) { - throw new InvalidApplicationNameException( - sprintf('Format of name "%s" is not valid - expected: vendor/packagename', $name), - InvalidApplicationNameException::InvalidFormat - ); - } - } - - private function ensureIsString($name) { - if (!is_string($name)) { - throw new InvalidApplicationNameException( - 'Name must be a string', - InvalidApplicationNameException::NotAString - ); - } - } -} diff --git a/vendor/phar-io/manifest/src/values/Author.php b/vendor/phar-io/manifest/src/values/Author.php deleted file mode 100644 index 8295f513..00000000 --- a/vendor/phar-io/manifest/src/values/Author.php +++ /dev/null @@ -1,57 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Author { - /** - * @var string - */ - private $name; - - /** - * @var Email - */ - private $email; - - /** - * @param string $name - * @param Email $email - */ - public function __construct($name, Email $email) { - $this->name = $name; - $this->email = $email; - } - - /** - * @return string - */ - public function getName() { - return $this->name; - } - - /** - * @return Email - */ - public function getEmail() { - return $this->email; - } - - /** - * @return string - */ - public function __toString() { - return sprintf( - '%s <%s>', - $this->name, - $this->email - ); - } -} diff --git a/vendor/phar-io/manifest/src/values/AuthorCollection.php b/vendor/phar-io/manifest/src/values/AuthorCollection.php deleted file mode 100644 index d9158793..00000000 --- a/vendor/phar-io/manifest/src/values/AuthorCollection.php +++ /dev/null @@ -1,43 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class AuthorCollection implements \Countable, \IteratorAggregate { - /** - * @var Author[] - */ - private $authors = []; - - public function add(Author $author) { - $this->authors[] = $author; - } - - /** - * @return Author[] - */ - public function getAuthors() { - return $this->authors; - } - - /** - * @return int - */ - public function count() { - return count($this->authors); - } - - /** - * @return AuthorCollectionIterator - */ - public function getIterator() { - return new AuthorCollectionIterator($this); - } -} diff --git a/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php b/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php deleted file mode 100644 index 792a0502..00000000 --- a/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php +++ /dev/null @@ -1,56 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class AuthorCollectionIterator implements \Iterator { - /** - * @var Author[] - */ - private $authors = []; - - /** - * @var int - */ - private $position; - - public function __construct(AuthorCollection $authors) { - $this->authors = $authors->getAuthors(); - } - - public function rewind() { - $this->position = 0; - } - - /** - * @return bool - */ - public function valid() { - return $this->position < count($this->authors); - } - - /** - * @return int - */ - public function key() { - return $this->position; - } - - /** - * @return Author - */ - public function current() { - return $this->authors[$this->position]; - } - - public function next() { - $this->position++; - } -} diff --git a/vendor/phar-io/manifest/src/values/BundledComponent.php b/vendor/phar-io/manifest/src/values/BundledComponent.php deleted file mode 100644 index 846d15a3..00000000 --- a/vendor/phar-io/manifest/src/values/BundledComponent.php +++ /dev/null @@ -1,48 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; - -class BundledComponent { - /** - * @var string - */ - private $name; - - /** - * @var Version - */ - private $version; - - /** - * @param string $name - * @param Version $version - */ - public function __construct($name, Version $version) { - $this->name = $name; - $this->version = $version; - } - - /** - * @return string - */ - public function getName() { - return $this->name; - } - - /** - * @return Version - */ - public function getVersion() { - return $this->version; - } -} diff --git a/vendor/phar-io/manifest/src/values/BundledComponentCollection.php b/vendor/phar-io/manifest/src/values/BundledComponentCollection.php deleted file mode 100644 index 2dbb918c..00000000 --- a/vendor/phar-io/manifest/src/values/BundledComponentCollection.php +++ /dev/null @@ -1,43 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class BundledComponentCollection implements \Countable, \IteratorAggregate { - /** - * @var BundledComponent[] - */ - private $bundledComponents = []; - - public function add(BundledComponent $bundledComponent) { - $this->bundledComponents[] = $bundledComponent; - } - - /** - * @return BundledComponent[] - */ - public function getBundledComponents() { - return $this->bundledComponents; - } - - /** - * @return int - */ - public function count() { - return count($this->bundledComponents); - } - - /** - * @return BundledComponentCollectionIterator - */ - public function getIterator() { - return new BundledComponentCollectionIterator($this); - } -} diff --git a/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php b/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php deleted file mode 100644 index 13b8f050..00000000 --- a/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php +++ /dev/null @@ -1,56 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class BundledComponentCollectionIterator implements \Iterator { - /** - * @var BundledComponent[] - */ - private $bundledComponents = []; - - /** - * @var int - */ - private $position; - - public function __construct(BundledComponentCollection $bundledComponents) { - $this->bundledComponents = $bundledComponents->getBundledComponents(); - } - - public function rewind() { - $this->position = 0; - } - - /** - * @return bool - */ - public function valid() { - return $this->position < count($this->bundledComponents); - } - - /** - * @return int - */ - public function key() { - return $this->position; - } - - /** - * @return BundledComponent - */ - public function current() { - return $this->bundledComponents[$this->position]; - } - - public function next() { - $this->position++; - } -} diff --git a/vendor/phar-io/manifest/src/values/CopyrightInformation.php b/vendor/phar-io/manifest/src/values/CopyrightInformation.php deleted file mode 100644 index ece60b19..00000000 --- a/vendor/phar-io/manifest/src/values/CopyrightInformation.php +++ /dev/null @@ -1,42 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class CopyrightInformation { - /** - * @var AuthorCollection - */ - private $authors; - - /** - * @var License - */ - private $license; - - public function __construct(AuthorCollection $authors, License $license) { - $this->authors = $authors; - $this->license = $license; - } - - /** - * @return AuthorCollection - */ - public function getAuthors() { - return $this->authors; - } - - /** - * @return License - */ - public function getLicense() { - return $this->license; - } -} diff --git a/vendor/phar-io/manifest/src/values/Email.php b/vendor/phar-io/manifest/src/values/Email.php deleted file mode 100644 index 57cce042..00000000 --- a/vendor/phar-io/manifest/src/values/Email.php +++ /dev/null @@ -1,47 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Email { - /** - * @var string - */ - private $email; - - /** - * @param string $email - * - * @throws InvalidEmailException - */ - public function __construct($email) { - $this->ensureEmailIsValid($email); - - $this->email = $email; - } - - /** - * @return string - */ - public function __toString() { - return $this->email; - } - - /** - * @param string $url - * - * @throws InvalidEmailException - */ - private function ensureEmailIsValid($url) { - if (filter_var($url, \FILTER_VALIDATE_EMAIL) === false) { - throw new InvalidEmailException; - } - } -} diff --git a/vendor/phar-io/manifest/src/values/Extension.php b/vendor/phar-io/manifest/src/values/Extension.php deleted file mode 100644 index 90d6a6fd..00000000 --- a/vendor/phar-io/manifest/src/values/Extension.php +++ /dev/null @@ -1,75 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PharIo\Version\VersionConstraint; - -class Extension extends Type { - /** - * @var ApplicationName - */ - private $application; - - /** - * @var VersionConstraint - */ - private $versionConstraint; - - /** - * @param ApplicationName $application - * @param VersionConstraint $versionConstraint - */ - public function __construct(ApplicationName $application, VersionConstraint $versionConstraint) { - $this->application = $application; - $this->versionConstraint = $versionConstraint; - } - - /** - * @return ApplicationName - */ - public function getApplicationName() { - return $this->application; - } - - /** - * @return VersionConstraint - */ - public function getVersionConstraint() { - return $this->versionConstraint; - } - - /** - * @return bool - */ - public function isExtension() { - return true; - } - - /** - * @param ApplicationName $name - * - * @return bool - */ - public function isExtensionFor(ApplicationName $name) { - return $this->application->isEqual($name); - } - - /** - * @param ApplicationName $name - * @param Version $version - * - * @return bool - */ - public function isCompatibleWith(ApplicationName $name, Version $version) { - return $this->isExtensionFor($name) && $this->versionConstraint->complies($version); - } -} diff --git a/vendor/phar-io/manifest/src/values/Library.php b/vendor/phar-io/manifest/src/values/Library.php deleted file mode 100644 index a6ff9443..00000000 --- a/vendor/phar-io/manifest/src/values/Library.php +++ /dev/null @@ -1,20 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Library extends Type { - /** - * @return bool - */ - public function isLibrary() { - return true; - } -} diff --git a/vendor/phar-io/manifest/src/values/License.php b/vendor/phar-io/manifest/src/values/License.php deleted file mode 100644 index e278670a..00000000 --- a/vendor/phar-io/manifest/src/values/License.php +++ /dev/null @@ -1,42 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class License { - /** - * @var string - */ - private $name; - - /** - * @var Url - */ - private $url; - - public function __construct($name, Url $url) { - $this->name = $name; - $this->url = $url; - } - - /** - * @return string - */ - public function getName() { - return $this->name; - } - - /** - * @return Url - */ - public function getUrl() { - return $this->url; - } -} diff --git a/vendor/phar-io/manifest/src/values/Manifest.php b/vendor/phar-io/manifest/src/values/Manifest.php deleted file mode 100644 index 217acefc..00000000 --- a/vendor/phar-io/manifest/src/values/Manifest.php +++ /dev/null @@ -1,138 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; - -class Manifest { - /** - * @var ApplicationName - */ - private $name; - - /** - * @var Version - */ - private $version; - - /** - * @var Type - */ - private $type; - - /** - * @var CopyrightInformation - */ - private $copyrightInformation; - - /** - * @var RequirementCollection - */ - private $requirements; - - /** - * @var BundledComponentCollection - */ - private $bundledComponents; - - public function __construct(ApplicationName $name, Version $version, Type $type, CopyrightInformation $copyrightInformation, RequirementCollection $requirements, BundledComponentCollection $bundledComponents) { - $this->name = $name; - $this->version = $version; - $this->type = $type; - $this->copyrightInformation = $copyrightInformation; - $this->requirements = $requirements; - $this->bundledComponents = $bundledComponents; - } - - /** - * @return ApplicationName - */ - public function getName() { - return $this->name; - } - - /** - * @return Version - */ - public function getVersion() { - return $this->version; - } - - /** - * @return Type - */ - public function getType() { - return $this->type; - } - - /** - * @return CopyrightInformation - */ - public function getCopyrightInformation() { - return $this->copyrightInformation; - } - - /** - * @return RequirementCollection - */ - public function getRequirements() { - return $this->requirements; - } - - /** - * @return BundledComponentCollection - */ - public function getBundledComponents() { - return $this->bundledComponents; - } - - /** - * @return bool - */ - public function isApplication() { - return $this->type->isApplication(); - } - - /** - * @return bool - */ - public function isLibrary() { - return $this->type->isLibrary(); - } - - /** - * @return bool - */ - public function isExtension() { - return $this->type->isExtension(); - } - - /** - * @param ApplicationName $application - * @param Version|null $version - * - * @return bool - */ - public function isExtensionFor(ApplicationName $application, Version $version = null) { - if (!$this->isExtension()) { - return false; - } - - /** @var Extension $type */ - $type = $this->type; - - if ($version !== null) { - return $type->isCompatibleWith($application, $version); - } - - return $type->isExtensionFor($application); - } -} diff --git a/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php b/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php deleted file mode 100644 index 6dd92968..00000000 --- a/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php +++ /dev/null @@ -1,32 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class PhpExtensionRequirement implements Requirement { - /** - * @var string - */ - private $extension; - - /** - * @param string $extension - */ - public function __construct($extension) { - $this->extension = $extension; - } - - /** - * @return string - */ - public function __toString() { - return $this->extension; - } -} diff --git a/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php b/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php deleted file mode 100644 index 8ad3e769..00000000 --- a/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php +++ /dev/null @@ -1,31 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\VersionConstraint; - -class PhpVersionRequirement implements Requirement { - /** - * @var VersionConstraint - */ - private $versionConstraint; - - public function __construct(VersionConstraint $versionConstraint) { - $this->versionConstraint = $versionConstraint; - } - - /** - * @return VersionConstraint - */ - public function getVersionConstraint() { - return $this->versionConstraint; - } -} diff --git a/vendor/phar-io/manifest/src/values/Requirement.php b/vendor/phar-io/manifest/src/values/Requirement.php deleted file mode 100644 index 03bb56d1..00000000 --- a/vendor/phar-io/manifest/src/values/Requirement.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -interface Requirement { -} diff --git a/vendor/phar-io/manifest/src/values/RequirementCollection.php b/vendor/phar-io/manifest/src/values/RequirementCollection.php deleted file mode 100644 index af0e09b8..00000000 --- a/vendor/phar-io/manifest/src/values/RequirementCollection.php +++ /dev/null @@ -1,43 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class RequirementCollection implements \Countable, \IteratorAggregate { - /** - * @var Requirement[] - */ - private $requirements = []; - - public function add(Requirement $requirement) { - $this->requirements[] = $requirement; - } - - /** - * @return Requirement[] - */ - public function getRequirements() { - return $this->requirements; - } - - /** - * @return int - */ - public function count() { - return count($this->requirements); - } - - /** - * @return RequirementCollectionIterator - */ - public function getIterator() { - return new RequirementCollectionIterator($this); - } -} diff --git a/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php b/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php deleted file mode 100644 index 9bb7003d..00000000 --- a/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php +++ /dev/null @@ -1,56 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class RequirementCollectionIterator implements \Iterator { - /** - * @var Requirement[] - */ - private $requirements = []; - - /** - * @var int - */ - private $position; - - public function __construct(RequirementCollection $requirements) { - $this->requirements = $requirements->getRequirements(); - } - - public function rewind() { - $this->position = 0; - } - - /** - * @return bool - */ - public function valid() { - return $this->position < count($this->requirements); - } - - /** - * @return int - */ - public function key() { - return $this->position; - } - - /** - * @return Requirement - */ - public function current() { - return $this->requirements[$this->position]; - } - - public function next() { - $this->position++; - } -} diff --git a/vendor/phar-io/manifest/src/values/Type.php b/vendor/phar-io/manifest/src/values/Type.php deleted file mode 100644 index 31fbd440..00000000 --- a/vendor/phar-io/manifest/src/values/Type.php +++ /dev/null @@ -1,60 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\VersionConstraint; - -abstract class Type { - /** - * @return Application - */ - public static function application() { - return new Application; - } - - /** - * @return Library - */ - public static function library() { - return new Library; - } - - /** - * @param ApplicationName $application - * @param VersionConstraint $versionConstraint - * - * @return Extension - */ - public static function extension(ApplicationName $application, VersionConstraint $versionConstraint) { - return new Extension($application, $versionConstraint); - } - - /** - * @return bool - */ - public function isApplication() { - return false; - } - - /** - * @return bool - */ - public function isLibrary() { - return false; - } - - /** - * @return bool - */ - public function isExtension() { - return false; - } -} diff --git a/vendor/phar-io/manifest/src/values/Url.php b/vendor/phar-io/manifest/src/values/Url.php deleted file mode 100644 index 37917c8c..00000000 --- a/vendor/phar-io/manifest/src/values/Url.php +++ /dev/null @@ -1,47 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Url { - /** - * @var string - */ - private $url; - - /** - * @param string $url - * - * @throws InvalidUrlException - */ - public function __construct($url) { - $this->ensureUrlIsValid($url); - - $this->url = $url; - } - - /** - * @return string - */ - public function __toString() { - return $this->url; - } - - /** - * @param string $url - * - * @throws InvalidUrlException - */ - private function ensureUrlIsValid($url) { - if (filter_var($url, \FILTER_VALIDATE_URL) === false) { - throw new InvalidUrlException; - } - } -} diff --git a/vendor/phar-io/manifest/src/xml/AuthorElement.php b/vendor/phar-io/manifest/src/xml/AuthorElement.php deleted file mode 100644 index a32f3973..00000000 --- a/vendor/phar-io/manifest/src/xml/AuthorElement.php +++ /dev/null @@ -1,21 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class AuthorElement extends ManifestElement { - public function getName() { - return $this->getAttributeValue('name'); - } - - public function getEmail() { - return $this->getAttributeValue('email'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php b/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php deleted file mode 100644 index 1240d8c1..00000000 --- a/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php +++ /dev/null @@ -1,19 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class AuthorElementCollection extends ElementCollection { - public function current() { - return new AuthorElement( - $this->getCurrentElement() - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/BundlesElement.php b/vendor/phar-io/manifest/src/xml/BundlesElement.php deleted file mode 100644 index b90023e4..00000000 --- a/vendor/phar-io/manifest/src/xml/BundlesElement.php +++ /dev/null @@ -1,19 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class BundlesElement extends ManifestElement { - public function getComponentElements() { - return new ComponentElementCollection( - $this->getChildrenByName('component') - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ComponentElement.php b/vendor/phar-io/manifest/src/xml/ComponentElement.php deleted file mode 100644 index 64ed6b0d..00000000 --- a/vendor/phar-io/manifest/src/xml/ComponentElement.php +++ /dev/null @@ -1,21 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ComponentElement extends ManifestElement { - public function getName() { - return $this->getAttributeValue('name'); - } - - public function getVersion() { - return $this->getAttributeValue('version'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php b/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php deleted file mode 100644 index 9d375f98..00000000 --- a/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php +++ /dev/null @@ -1,19 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ComponentElementCollection extends ElementCollection { - public function current() { - return new ComponentElement( - $this->getCurrentElement() - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ContainsElement.php b/vendor/phar-io/manifest/src/xml/ContainsElement.php deleted file mode 100644 index 8172f334..00000000 --- a/vendor/phar-io/manifest/src/xml/ContainsElement.php +++ /dev/null @@ -1,31 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ContainsElement extends ManifestElement { - public function getName() { - return $this->getAttributeValue('name'); - } - - public function getVersion() { - return $this->getAttributeValue('version'); - } - - public function getType() { - return $this->getAttributeValue('type'); - } - - public function getExtensionElement() { - return new ExtensionElement( - $this->getChildByName('extension') - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/CopyrightElement.php b/vendor/phar-io/manifest/src/xml/CopyrightElement.php deleted file mode 100644 index bf7848e4..00000000 --- a/vendor/phar-io/manifest/src/xml/CopyrightElement.php +++ /dev/null @@ -1,25 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class CopyrightElement extends ManifestElement { - public function getAuthorElements() { - return new AuthorElementCollection( - $this->getChildrenByName('author') - ); - } - - public function getLicenseElement() { - return new LicenseElement( - $this->getChildByName('license') - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ElementCollection.php b/vendor/phar-io/manifest/src/xml/ElementCollection.php deleted file mode 100644 index 284e77b6..00000000 --- a/vendor/phar-io/manifest/src/xml/ElementCollection.php +++ /dev/null @@ -1,58 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use DOMElement; -use DOMNodeList; - -abstract class ElementCollection implements \Iterator { - /** - * @var DOMNodeList - */ - private $nodeList; - - private $position; - - /** - * ElementCollection constructor. - * - * @param DOMNodeList $nodeList - */ - public function __construct(DOMNodeList $nodeList) { - $this->nodeList = $nodeList; - $this->position = 0; - } - - abstract public function current(); - - /** - * @return DOMElement - */ - protected function getCurrentElement() { - return $this->nodeList->item($this->position); - } - - public function next() { - $this->position++; - } - - public function key() { - return $this->position; - } - - public function valid() { - return $this->position < $this->nodeList->length; - } - - public function rewind() { - $this->position = 0; - } -} diff --git a/vendor/phar-io/manifest/src/xml/ExtElement.php b/vendor/phar-io/manifest/src/xml/ExtElement.php deleted file mode 100644 index 7a824ab7..00000000 --- a/vendor/phar-io/manifest/src/xml/ExtElement.php +++ /dev/null @@ -1,17 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ExtElement extends ManifestElement { - public function getName() { - return $this->getAttributeValue('name'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ExtElementCollection.php b/vendor/phar-io/manifest/src/xml/ExtElementCollection.php deleted file mode 100644 index 17acc62a..00000000 --- a/vendor/phar-io/manifest/src/xml/ExtElementCollection.php +++ /dev/null @@ -1,20 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ExtElementCollection extends ElementCollection { - public function current() { - return new ExtElement( - $this->getCurrentElement() - ); - } - -} diff --git a/vendor/phar-io/manifest/src/xml/ExtensionElement.php b/vendor/phar-io/manifest/src/xml/ExtensionElement.php deleted file mode 100644 index 536c085c..00000000 --- a/vendor/phar-io/manifest/src/xml/ExtensionElement.php +++ /dev/null @@ -1,21 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ExtensionElement extends ManifestElement { - public function getFor() { - return $this->getAttributeValue('for'); - } - - public function getCompatible() { - return $this->getAttributeValue('compatible'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/LicenseElement.php b/vendor/phar-io/manifest/src/xml/LicenseElement.php deleted file mode 100644 index ee001dfa..00000000 --- a/vendor/phar-io/manifest/src/xml/LicenseElement.php +++ /dev/null @@ -1,21 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class LicenseElement extends ManifestElement { - public function getType() { - return $this->getAttributeValue('type'); - } - - public function getUrl() { - return $this->getAttributeValue('url'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ManifestDocument.php b/vendor/phar-io/manifest/src/xml/ManifestDocument.php deleted file mode 100644 index 9b0bd9d9..00000000 --- a/vendor/phar-io/manifest/src/xml/ManifestDocument.php +++ /dev/null @@ -1,118 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use DOMDocument; -use DOMElement; - -class ManifestDocument { - const XMLNS = 'https://phar.io/xml/manifest/1.0'; - - /** - * @var DOMDocument - */ - private $dom; - - /** - * ManifestDocument constructor. - * - * @param DOMDocument $dom - */ - private function __construct(DOMDocument $dom) { - $this->ensureCorrectDocumentType($dom); - - $this->dom = $dom; - } - - public static function fromFile($filename) { - if (!file_exists($filename)) { - throw new ManifestDocumentException( - sprintf('File "%s" not found', $filename) - ); - } - - return self::fromString( - file_get_contents($filename) - ); - } - - public static function fromString($xmlString) { - $prev = libxml_use_internal_errors(true); - libxml_clear_errors(); - - $dom = new DOMDocument(); - $dom->loadXML($xmlString); - - $errors = libxml_get_errors(); - libxml_use_internal_errors($prev); - - if (count($errors) !== 0) { - throw new ManifestDocumentLoadingException($errors); - } - - return new self($dom); - } - - public function getContainsElement() { - return new ContainsElement( - $this->fetchElementByName('contains') - ); - } - - public function getCopyrightElement() { - return new CopyrightElement( - $this->fetchElementByName('copyright') - ); - } - - public function getRequiresElement() { - return new RequiresElement( - $this->fetchElementByName('requires') - ); - } - - public function hasBundlesElement() { - return $this->dom->getElementsByTagNameNS(self::XMLNS, 'bundles')->length === 1; - } - - public function getBundlesElement() { - return new BundlesElement( - $this->fetchElementByName('bundles') - ); - } - - private function ensureCorrectDocumentType(DOMDocument $dom) { - $root = $dom->documentElement; - - if ($root->localName !== 'phar' || $root->namespaceURI !== self::XMLNS) { - throw new ManifestDocumentException('Not a phar.io manifest document'); - } - } - - /** - * @param $elementName - * - * @return DOMElement - * - * @throws ManifestDocumentException - */ - private function fetchElementByName($elementName) { - $element = $this->dom->getElementsByTagNameNS(self::XMLNS, $elementName)->item(0); - - if (!$element instanceof DOMElement) { - throw new ManifestDocumentException( - sprintf('Element %s missing', $elementName) - ); - } - - return $element; - } -} diff --git a/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php b/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php deleted file mode 100644 index 59ac5c69..00000000 --- a/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php +++ /dev/null @@ -1,48 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use LibXMLError; - -class ManifestDocumentLoadingException extends \Exception implements Exception { - /** - * @var LibXMLError[] - */ - private $libxmlErrors; - - /** - * ManifestDocumentLoadingException constructor. - * - * @param LibXMLError[] $libxmlErrors - */ - public function __construct(array $libxmlErrors) { - $this->libxmlErrors = $libxmlErrors; - $first = $this->libxmlErrors[0]; - - parent::__construct( - sprintf( - '%s (Line: %d / Column: %d / File: %s)', - $first->message, - $first->line, - $first->column, - $first->file - ), - $first->code - ); - } - - /** - * @return LibXMLError[] - */ - public function getLibxmlErrors() { - return $this->libxmlErrors; - } -} diff --git a/vendor/phar-io/manifest/src/xml/ManifestElement.php b/vendor/phar-io/manifest/src/xml/ManifestElement.php deleted file mode 100644 index 09d07ccf..00000000 --- a/vendor/phar-io/manifest/src/xml/ManifestElement.php +++ /dev/null @@ -1,100 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use DOMElement; -use DOMNodeList; - -class ManifestElement { - const XMLNS = 'https://phar.io/xml/manifest/1.0'; - - /** - * @var DOMElement - */ - private $element; - - /** - * ContainsElement constructor. - * - * @param DOMElement $element - */ - public function __construct(DOMElement $element) { - $this->element = $element; - } - - /** - * @param string $name - * - * @return string - * - * @throws ManifestElementException - */ - protected function getAttributeValue($name) { - if (!$this->element->hasAttribute($name)) { - throw new ManifestElementException( - sprintf( - 'Attribute %s not set on element %s', - $name, - $this->element->localName - ) - ); - } - - return $this->element->getAttribute($name); - } - - /** - * @param $elementName - * - * @return DOMElement - * - * @throws ManifestElementException - */ - protected function getChildByName($elementName) { - $element = $this->element->getElementsByTagNameNS(self::XMLNS, $elementName)->item(0); - - if (!$element instanceof DOMElement) { - throw new ManifestElementException( - sprintf('Element %s missing', $elementName) - ); - } - - return $element; - } - - /** - * @param $elementName - * - * @return DOMNodeList - * - * @throws ManifestElementException - */ - protected function getChildrenByName($elementName) { - $elementList = $this->element->getElementsByTagNameNS(self::XMLNS, $elementName); - - if ($elementList->length === 0) { - throw new ManifestElementException( - sprintf('Element(s) %s missing', $elementName) - ); - } - - return $elementList; - } - - /** - * @param string $elementName - * - * @return bool - */ - protected function hasChild($elementName) { - return $this->element->getElementsByTagNameNS(self::XMLNS, $elementName)->length !== 0; - } -} diff --git a/vendor/phar-io/manifest/src/xml/PhpElement.php b/vendor/phar-io/manifest/src/xml/PhpElement.php deleted file mode 100644 index e7340c0d..00000000 --- a/vendor/phar-io/manifest/src/xml/PhpElement.php +++ /dev/null @@ -1,27 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class PhpElement extends ManifestElement { - public function getVersion() { - return $this->getAttributeValue('version'); - } - - public function hasExtElements() { - return $this->hasChild('ext'); - } - - public function getExtElements() { - return new ExtElementCollection( - $this->getChildrenByName('ext') - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/RequiresElement.php b/vendor/phar-io/manifest/src/xml/RequiresElement.php deleted file mode 100644 index 5f41b2eb..00000000 --- a/vendor/phar-io/manifest/src/xml/RequiresElement.php +++ /dev/null @@ -1,19 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class RequiresElement extends ManifestElement { - public function getPHPElement() { - return new PhpElement( - $this->getChildByName('php') - ); - } -} diff --git a/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php b/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php deleted file mode 100644 index e2612317..00000000 --- a/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php +++ /dev/null @@ -1,110 +0,0 @@ -assertInstanceOf( - Manifest::class, - $mapper->map($manifestDocument) - ); - } - - public function dataProvider() { - return [ - 'application' => [__DIR__ . '/_fixture/phpunit-5.6.5.xml'], - 'library' => [__DIR__ . '/_fixture/library.xml'], - 'extension' => [__DIR__ . '/_fixture/extension.xml'] - ]; - } - - public function testThrowsExceptionOnUnsupportedType() { - $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/custom.xml'); - $mapper = new ManifestDocumentMapper(); - - $this->expectException(ManifestDocumentMapperException::class); - $mapper->map($manifestDocument); - } - - public function testInvalidVersionInformationThrowsException() { - $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversion.xml'); - $mapper = new ManifestDocumentMapper(); - - $this->expectException(ManifestDocumentMapperException::class); - $mapper->map($manifestDocument); - } - - public function testInvalidVersionConstraintThrowsException() { - $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversionconstraint.xml'); - $mapper = new ManifestDocumentMapper(); - - $this->expectException(ManifestDocumentMapperException::class); - $mapper->map($manifestDocument); - } - - /** - * @uses \PharIo\Manifest\ExtensionElement - */ - public function testInvalidCompatibleConstraintThrowsException() { - $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/extension-invalidcompatible.xml'); - $mapper = new ManifestDocumentMapper(); - - $this->expectException(ManifestDocumentMapperException::class); - $mapper->map($manifestDocument); - } - -} diff --git a/vendor/phar-io/manifest/tests/ManifestLoaderTest.php b/vendor/phar-io/manifest/tests/ManifestLoaderTest.php deleted file mode 100644 index 73b682ef..00000000 --- a/vendor/phar-io/manifest/tests/ManifestLoaderTest.php +++ /dev/null @@ -1,83 +0,0 @@ -assertInstanceOf( - Manifest::class, - ManifestLoader::fromFile(__DIR__ . '/_fixture/library.xml') - ); - } - - public function testCanBeLoadedFromString() { - $this->assertInstanceOf( - Manifest::class, - ManifestLoader::fromString( - file_get_contents(__DIR__ . '/_fixture/library.xml') - ) - ); - } - - public function testCanBeLoadedFromPhar() { - $this->assertInstanceOf( - Manifest::class, - ManifestLoader::fromPhar(__DIR__ . '/_fixture/test.phar') - ); - - } - - public function testLoadingNonExistingFileThrowsException() { - $this->expectException(ManifestLoaderException::class); - ManifestLoader::fromFile('/not/existing'); - } - - /** - * @uses \PharIo\Manifest\ManifestDocumentLoadingException - */ - public function testLoadingInvalidXmlThrowsException() { - $this->expectException(ManifestLoaderException::class); - ManifestLoader::fromString(''); - } - -} diff --git a/vendor/phar-io/manifest/tests/ManifestSerializerTest.php b/vendor/phar-io/manifest/tests/ManifestSerializerTest.php deleted file mode 100644 index 4433020a..00000000 --- a/vendor/phar-io/manifest/tests/ManifestSerializerTest.php +++ /dev/null @@ -1,114 +0,0 @@ -assertXmlStringEqualsXmlString( - $expected, - $serializer->serializeToString($manifest) - ); - } - - public function dataProvider() { - return [ - 'application' => [file_get_contents(__DIR__ . '/_fixture/phpunit-5.6.5.xml')], - 'library' => [file_get_contents(__DIR__ . '/_fixture/library.xml')], - 'extension' => [file_get_contents(__DIR__ . '/_fixture/extension.xml')] - ]; - } - - /** - * @uses \PharIo\Manifest\Library - * @uses \PharIo\Manifest\ApplicationName - */ - public function testCanSerializeToFile() { - $src = __DIR__ . '/_fixture/library.xml'; - $dest = '/tmp/' . uniqid('serializer', true); - $manifest = ManifestLoader::fromFile($src); - $serializer = new ManifestSerializer(); - $serializer->serializeToFile($manifest, $dest); - $this->assertXmlFileEqualsXmlFile($src, $dest); - unlink($dest); - } - - /** - * @uses \PharIo\Manifest\ApplicationName - */ - public function testCanHandleUnknownType() { - $type = $this->getMockForAbstractClass(Type::class); - $manifest = new Manifest( - new ApplicationName('testvendor/testname'), - new Version('1.0.0'), - $type, - new CopyrightInformation( - new AuthorCollection(), - new License('bsd-3', new Url('https://some/uri')) - ), - new RequirementCollection(), - new BundledComponentCollection() - ); - - $serializer = new ManifestSerializer(); - $this->assertXmlStringEqualsXmlFile( - __DIR__ . '/_fixture/custom.xml', - $serializer->serializeToString($manifest) - ); - } -} diff --git a/vendor/phar-io/manifest/tests/_fixture/custom.xml b/vendor/phar-io/manifest/tests/_fixture/custom.xml deleted file mode 100644 index 4f438280..00000000 --- a/vendor/phar-io/manifest/tests/_fixture/custom.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml b/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml deleted file mode 100644 index a78111c1..00000000 --- a/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/extension.xml b/vendor/phar-io/manifest/tests/_fixture/extension.xml deleted file mode 100644 index a870aee8..00000000 --- a/vendor/phar-io/manifest/tests/_fixture/extension.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml b/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml deleted file mode 100644 index 788dd4cd..00000000 --- a/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml b/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml deleted file mode 100644 index f881f8b0..00000000 --- a/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/library.xml b/vendor/phar-io/manifest/tests/_fixture/library.xml deleted file mode 100644 index a5e25237..00000000 --- a/vendor/phar-io/manifest/tests/_fixture/library.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/manifest.xml b/vendor/phar-io/manifest/tests/_fixture/manifest.xml deleted file mode 100644 index a5e25237..00000000 --- a/vendor/phar-io/manifest/tests/_fixture/manifest.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml b/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml deleted file mode 100644 index aadbea2f..00000000 --- a/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/test.phar b/vendor/phar-io/manifest/tests/_fixture/test.phar deleted file mode 100644 index d2a3e393ea403e5989aafa4b77d6ae6f07aafe75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7165 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 diff --git a/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php b/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php deleted file mode 100644 index d87e84ea..00000000 --- a/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php +++ /dev/null @@ -1,19 +0,0 @@ -loadXML(''); - $exception = new ManifestDocumentLoadingException(libxml_get_errors()); - libxml_use_internal_errors($prev); - - $this->assertContainsOnlyInstancesOf(LibXMLError::class, $exception->getLibxmlErrors()); - } - -} diff --git a/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php b/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php deleted file mode 100644 index c9594157..00000000 --- a/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php +++ /dev/null @@ -1,48 +0,0 @@ -assertInstanceOf( - ApplicationName::class, - new ApplicationName('foo/bar') - ); - } - - public function testUsingInvalidFormatForNameThrowsException() { - $this->expectException(InvalidApplicationNameException::class); - $this->expectExceptionCode(InvalidApplicationNameException::InvalidFormat); - new ApplicationName('foo'); - } - - public function testUsingWrongTypeForNameThrowsException() { - $this->expectException(InvalidApplicationNameException::class); - $this->expectExceptionCode(InvalidApplicationNameException::NotAString); - new ApplicationName(123); - } - - public function testReturnsTrueForEqualNamesWhenCompared() { - $app = new ApplicationName('foo/bar'); - $this->assertTrue( - $app->isEqual($app) - ); - } - - public function testReturnsFalseForNonEqualNamesWhenCompared() { - $app1 = new ApplicationName('foo/bar'); - $app2 = new ApplicationName('foo/foo'); - $this->assertFalse( - $app1->isEqual($app2) - ); - } - - public function testCanBeConvertedToString() { - $this->assertEquals( - 'foo/bar', - new ApplicationName('foo/bar') - ); - } -} diff --git a/vendor/phar-io/manifest/tests/values/ApplicationTest.php b/vendor/phar-io/manifest/tests/values/ApplicationTest.php deleted file mode 100644 index 86b5da64..00000000 --- a/vendor/phar-io/manifest/tests/values/ApplicationTest.php +++ /dev/null @@ -1,44 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Application - * @covers PharIo\Manifest\Type - */ -class ApplicationTest extends TestCase { - /** - * @var Application - */ - private $type; - - protected function setUp() { - $this->type = Type::application(); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Application::class, $this->type); - } - - public function testIsApplication() { - $this->assertTrue($this->type->isApplication()); - } - - public function testIsNotLibrary() { - $this->assertFalse($this->type->isLibrary()); - } - - public function testIsNotExtension() { - $this->assertFalse($this->type->isExtension()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php b/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php deleted file mode 100644 index 0fa1b950..00000000 --- a/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php +++ /dev/null @@ -1,62 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\AuthorCollection - * @covers \PharIo\Manifest\AuthorCollectionIterator - * - * @uses \PharIo\Manifest\Author - * @uses \PharIo\Manifest\Email - */ -class AuthorCollectionTest extends TestCase { - /** - * @var AuthorCollection - */ - private $collection; - - /** - * @var Author - */ - private $item; - - protected function setUp() { - $this->collection = new AuthorCollection; - $this->item = new Author('Joe Developer', new Email('user@example.com')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(AuthorCollection::class, $this->collection); - } - - public function testCanBeCounted() { - $this->collection->add($this->item); - - $this->assertCount(1, $this->collection); - } - - public function testCanBeIterated() { - $this->collection->add( - new Author('Dummy First', new Email('dummy@example.com')) - ); - $this->collection->add($this->item); - $this->assertContains($this->item, $this->collection); - } - - public function testKeyPositionCanBeRetreived() { - $this->collection->add($this->item); - foreach($this->collection as $key => $item) { - $this->assertEquals(0, $key); - } - } -} diff --git a/vendor/phar-io/manifest/tests/values/AuthorTest.php b/vendor/phar-io/manifest/tests/values/AuthorTest.php deleted file mode 100644 index b7317fab..00000000 --- a/vendor/phar-io/manifest/tests/values/AuthorTest.php +++ /dev/null @@ -1,45 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Author - * - * @uses PharIo\Manifest\Email - */ -class AuthorTest extends TestCase { - /** - * @var Author - */ - private $author; - - protected function setUp() { - $this->author = new Author('Joe Developer', new Email('user@example.com')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Author::class, $this->author); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('Joe Developer', $this->author->getName()); - } - - public function testEmailCanBeRetrieved() { - $this->assertEquals('user@example.com', $this->author->getEmail()); - } - - public function testCanBeUsedAsString() { - $this->assertEquals('Joe Developer ', $this->author); - } -} diff --git a/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php b/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php deleted file mode 100644 index 66cd0c4c..00000000 --- a/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php +++ /dev/null @@ -1,63 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\BundledComponentCollection - * @covers \PharIo\Manifest\BundledComponentCollectionIterator - * - * @uses \PharIo\Manifest\BundledComponent - * @uses \PharIo\Version\Version - */ -class BundledComponentCollectionTest extends TestCase { - /** - * @var BundledComponentCollection - */ - private $collection; - - /** - * @var BundledComponent - */ - private $item; - - protected function setUp() { - $this->collection = new BundledComponentCollection; - $this->item = new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(BundledComponentCollection::class, $this->collection); - } - - public function testCanBeCounted() { - $this->collection->add($this->item); - - $this->assertCount(1, $this->collection); - } - - public function testCanBeIterated() { - $this->collection->add($this->createMock(BundledComponent::class)); - $this->collection->add($this->item); - - $this->assertContains($this->item, $this->collection); - } - - public function testKeyPositionCanBeRetreived() { - $this->collection->add($this->item); - foreach($this->collection as $key => $item) { - $this->assertEquals(0, $key); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/values/BundledComponentTest.php b/vendor/phar-io/manifest/tests/values/BundledComponentTest.php deleted file mode 100644 index 01b8e13e..00000000 --- a/vendor/phar-io/manifest/tests/values/BundledComponentTest.php +++ /dev/null @@ -1,42 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\BundledComponent - * - * @uses \PharIo\Version\Version - */ -class BundledComponentTest extends TestCase { - /** - * @var BundledComponent - */ - private $bundledComponent; - - protected function setUp() { - $this->bundledComponent = new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(BundledComponent::class, $this->bundledComponent); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('phpunit/php-code-coverage', $this->bundledComponent->getName()); - } - - public function testVersionCanBeRetrieved() { - $this->assertEquals('4.0.2', $this->bundledComponent->getVersion()->getVersionString()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php b/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php deleted file mode 100644 index de738f48..00000000 --- a/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php +++ /dev/null @@ -1,62 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\CopyrightInformation - * - * @uses PharIo\Manifest\AuthorCollection - * @uses PharIo\Manifest\AuthorCollectionIterator - * @uses PharIo\Manifest\Author - * @uses PharIo\Manifest\Email - * @uses PharIo\Manifest\License - * @uses PharIo\Manifest\Url - */ -class CopyrightInformationTest extends TestCase { - /** - * @var CopyrightInformation - */ - private $copyrightInformation; - - /** - * @var Author - */ - private $author; - - /** - * @var License - */ - private $license; - - protected function setUp() { - $this->author = new Author('Joe Developer', new Email('user@example.com')); - $this->license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); - - $authors = new AuthorCollection; - $authors->add($this->author); - - $this->copyrightInformation = new CopyrightInformation($authors, $this->license); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(CopyrightInformation::class, $this->copyrightInformation); - } - - public function testAuthorsCanBeRetrieved() { - $this->assertContains($this->author, $this->copyrightInformation->getAuthors()); - } - - public function testLicenseCanBeRetrieved() { - $this->assertEquals($this->license, $this->copyrightInformation->getLicense()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/EmailTest.php b/vendor/phar-io/manifest/tests/values/EmailTest.php deleted file mode 100644 index ee38531f..00000000 --- a/vendor/phar-io/manifest/tests/values/EmailTest.php +++ /dev/null @@ -1,35 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Email - */ -class EmailTest extends TestCase { - public function testCanBeCreatedForValidEmail() { - $this->assertInstanceOf(Email::class, new Email('user@example.com')); - } - - public function testCanBeUsedAsString() { - $this->assertEquals('user@example.com', new Email('user@example.com')); - } - - /** - * @covers PharIo\Manifest\InvalidEmailException - */ - public function testCannotBeCreatedForInvalidEmail() { - $this->expectException(InvalidEmailException::class); - - new Email('invalid'); - } -} diff --git a/vendor/phar-io/manifest/tests/values/ExtensionTest.php b/vendor/phar-io/manifest/tests/values/ExtensionTest.php deleted file mode 100644 index 1c9d676f..00000000 --- a/vendor/phar-io/manifest/tests/values/ExtensionTest.php +++ /dev/null @@ -1,109 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\AnyVersionConstraint; -use PharIo\Version\Version; -use PharIo\Version\VersionConstraint; -use PharIo\Version\VersionConstraintParser; -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\Extension - * @covers \PharIo\Manifest\Type - * - * @uses \PharIo\Version\VersionConstraint - * @uses \PharIo\Manifest\ApplicationName - */ -class ExtensionTest extends TestCase { - /** - * @var Extension - */ - private $type; - - /** - * @var ApplicationName|\PHPUnit_Framework_MockObject_MockObject - */ - private $name; - - protected function setUp() { - $this->name = $this->createMock(ApplicationName::class); - $this->type = Type::extension($this->name, new AnyVersionConstraint); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Extension::class, $this->type); - } - - public function testIsNotApplication() { - $this->assertFalse($this->type->isApplication()); - } - - public function testIsNotLibrary() { - $this->assertFalse($this->type->isLibrary()); - } - - public function testIsExtension() { - $this->assertTrue($this->type->isExtension()); - } - - public function testApplicationCanBeRetrieved() - { - $this->assertInstanceOf(ApplicationName::class, $this->type->getApplicationName()); - } - - public function testVersionConstraintCanBeRetrieved() { - $this->assertInstanceOf( - VersionConstraint::class, - $this->type->getVersionConstraint() - ); - } - - public function testApplicationCanBeQueried() - { - $this->name->method('isEqual')->willReturn(true); - $this->assertTrue( - $this->type->isExtensionFor($this->createMock(ApplicationName::class)) - ); - } - - public function testCompatibleWithReturnsTrueForMatchingVersionConstraintAndApplicaiton() { - $app = new ApplicationName('foo/bar'); - $extension = Type::extension($app, (new VersionConstraintParser)->parse('^1.0')); - $version = new Version('1.0.0'); - - $this->assertTrue( - $extension->isCompatibleWith($app, $version) - ); - } - - public function testCompatibleWithReturnsFalseForNotMatchingVersionConstraint() { - $app = new ApplicationName('foo/bar'); - $extension = Type::extension($app, (new VersionConstraintParser)->parse('^1.0')); - $version = new Version('2.0.0'); - - $this->assertFalse( - $extension->isCompatibleWith($app, $version) - ); - } - - public function testCompatibleWithReturnsFalseForNotMatchingApplication() { - $app1 = new ApplicationName('foo/bar'); - $app2 = new ApplicationName('foo/foo'); - $extension = Type::extension($app1, (new VersionConstraintParser)->parse('^1.0')); - $version = new Version('1.0.0'); - - $this->assertFalse( - $extension->isCompatibleWith($app2, $version) - ); - } - -} diff --git a/vendor/phar-io/manifest/tests/values/LibraryTest.php b/vendor/phar-io/manifest/tests/values/LibraryTest.php deleted file mode 100644 index f8d1c649..00000000 --- a/vendor/phar-io/manifest/tests/values/LibraryTest.php +++ /dev/null @@ -1,44 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Library - * @covers PharIo\Manifest\Type - */ -class LibraryTest extends TestCase { - /** - * @var Library - */ - private $type; - - protected function setUp() { - $this->type = Type::library(); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Library::class, $this->type); - } - - public function testIsNotApplication() { - $this->assertFalse($this->type->isApplication()); - } - - public function testIsLibrary() { - $this->assertTrue($this->type->isLibrary()); - } - - public function testIsNotExtension() { - $this->assertFalse($this->type->isExtension()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/LicenseTest.php b/vendor/phar-io/manifest/tests/values/LicenseTest.php deleted file mode 100644 index c9c5c3c7..00000000 --- a/vendor/phar-io/manifest/tests/values/LicenseTest.php +++ /dev/null @@ -1,41 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\License - * - * @uses PharIo\Manifest\Url - */ -class LicenseTest extends TestCase { - /** - * @var License - */ - private $license; - - protected function setUp() { - $this->license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(License::class, $this->license); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('BSD-3-Clause', $this->license->getName()); - } - - public function testUrlCanBeRetrieved() { - $this->assertEquals('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE', $this->license->getUrl()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/ManifestTest.php b/vendor/phar-io/manifest/tests/values/ManifestTest.php deleted file mode 100644 index cff0a682..00000000 --- a/vendor/phar-io/manifest/tests/values/ManifestTest.php +++ /dev/null @@ -1,187 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PharIo\Version\AnyVersionConstraint; -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\Manifest - * - * @uses \PharIo\Manifest\ApplicationName - * @uses \PharIo\Manifest\Author - * @uses \PharIo\Manifest\AuthorCollection - * @uses \PharIo\Manifest\BundledComponent - * @uses \PharIo\Manifest\BundledComponentCollection - * @uses \PharIo\Manifest\CopyrightInformation - * @uses \PharIo\Manifest\Email - * @uses \PharIo\Manifest\License - * @uses \PharIo\Manifest\RequirementCollection - * @uses \PharIo\Manifest\PhpVersionRequirement - * @uses \PharIo\Manifest\Type - * @uses \PharIo\Manifest\Application - * @uses \PharIo\Manifest\Url - * @uses \PharIo\Version\Version - * @uses \PharIo\Version\VersionConstraint - */ -class ManifestTest extends TestCase { - /** - * @var ApplicationName - */ - private $name; - - /** - * @var Version - */ - private $version; - - /** - * @var Type - */ - private $type; - - /** - * @var CopyrightInformation - */ - private $copyrightInformation; - - /** - * @var RequirementCollection - */ - private $requirements; - - /** - * @var BundledComponentCollection - */ - private $bundledComponents; - - /** - * @var Manifest - */ - private $manifest; - - protected function setUp() { - $this->version = new Version('5.6.5'); - - $this->type = Type::application(); - - $author = new Author('Joe Developer', new Email('user@example.com')); - $license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); - - $authors = new AuthorCollection; - $authors->add($author); - - $this->copyrightInformation = new CopyrightInformation($authors, $license); - - $this->requirements = new RequirementCollection; - $this->requirements->add(new PhpVersionRequirement(new AnyVersionConstraint)); - - $this->bundledComponents = new BundledComponentCollection; - $this->bundledComponents->add(new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2'))); - - $this->name = new ApplicationName('phpunit/phpunit'); - - $this->manifest = new Manifest( - $this->name, - $this->version, - $this->type, - $this->copyrightInformation, - $this->requirements, - $this->bundledComponents - ); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Manifest::class, $this->manifest); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals($this->name, $this->manifest->getName()); - } - - public function testVersionCanBeRetrieved() { - $this->assertEquals($this->version, $this->manifest->getVersion()); - } - - public function testTypeCanBeRetrieved() { - $this->assertEquals($this->type, $this->manifest->getType()); - } - - public function testTypeCanBeQueried() { - $this->assertTrue($this->manifest->isApplication()); - $this->assertFalse($this->manifest->isLibrary()); - $this->assertFalse($this->manifest->isExtension()); - } - - public function testCopyrightInformationCanBeRetrieved() { - $this->assertEquals($this->copyrightInformation, $this->manifest->getCopyrightInformation()); - } - - public function testRequirementsCanBeRetrieved() { - $this->assertEquals($this->requirements, $this->manifest->getRequirements()); - } - - public function testBundledComponentsCanBeRetrieved() { - $this->assertEquals($this->bundledComponents, $this->manifest->getBundledComponents()); - } - - /** - * @uses \PharIo\Manifest\Extension - */ - public function testExtendedApplicationCanBeQueriedForExtension() - { - $appName = new ApplicationName('foo/bar'); - $manifest = new Manifest( - new ApplicationName('foo/foo'), - new Version('1.0.0'), - Type::extension($appName, new AnyVersionConstraint), - $this->copyrightInformation, - new RequirementCollection, - new BundledComponentCollection - ); - - $this->assertTrue($manifest->isExtensionFor($appName)); - } - - public function testNonExtensionReturnsFalseWhenQueriesForExtension() { - $appName = new ApplicationName('foo/bar'); - $manifest = new Manifest( - new ApplicationName('foo/foo'), - new Version('1.0.0'), - Type::library(), - $this->copyrightInformation, - new RequirementCollection, - new BundledComponentCollection - ); - - $this->assertFalse($manifest->isExtensionFor($appName)); - } - - /** - * @uses \PharIo\Manifest\Extension - */ - public function testExtendedApplicationCanBeQueriedForExtensionWithVersion() - { - $appName = new ApplicationName('foo/bar'); - $manifest = new Manifest( - new ApplicationName('foo/foo'), - new Version('1.0.0'), - Type::extension($appName, new AnyVersionConstraint), - $this->copyrightInformation, - new RequirementCollection, - new BundledComponentCollection - ); - - $this->assertTrue($manifest->isExtensionFor($appName, new Version('1.2.3'))); - } - -} diff --git a/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php b/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php deleted file mode 100644 index ae1c058f..00000000 --- a/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php +++ /dev/null @@ -1,26 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\PhpExtensionRequirement - */ -class PhpExtensionRequirementTest extends TestCase { - public function testCanBeCreated() { - $this->assertInstanceOf(PhpExtensionRequirement::class, new PhpExtensionRequirement('dom')); - } - - public function testCanBeUsedAsString() { - $this->assertEquals('dom', new PhpExtensionRequirement('dom')); - } -} diff --git a/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php b/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php deleted file mode 100644 index 67ac41ad..00000000 --- a/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php +++ /dev/null @@ -1,38 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\ExactVersionConstraint; -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\PhpVersionRequirement - * - * @uses \PharIo\Version\VersionConstraint - */ -class PhpVersionRequirementTest extends TestCase { - /** - * @var PhpVersionRequirement - */ - private $requirement; - - protected function setUp() { - $this->requirement = new PhpVersionRequirement(new ExactVersionConstraint('7.1.0')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(PhpVersionRequirement::class, $this->requirement); - } - - public function testVersionConstraintCanBeRetrieved() { - $this->assertEquals('7.1.0', $this->requirement->getVersionConstraint()->asString()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php b/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php deleted file mode 100644 index 2afeb1a3..00000000 --- a/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php +++ /dev/null @@ -1,63 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\ExactVersionConstraint; -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\RequirementCollection - * @covers \PharIo\Manifest\RequirementCollectionIterator - * - * @uses \PharIo\Manifest\PhpVersionRequirement - * @uses \PharIo\Version\VersionConstraint - */ -class RequirementCollectionTest extends TestCase { - /** - * @var RequirementCollection - */ - private $collection; - - /** - * @var Requirement - */ - private $item; - - protected function setUp() { - $this->collection = new RequirementCollection; - $this->item = new PhpVersionRequirement(new ExactVersionConstraint('7.1.0')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(RequirementCollection::class, $this->collection); - } - - public function testCanBeCounted() { - $this->collection->add($this->item); - - $this->assertCount(1, $this->collection); - } - - public function testCanBeIterated() { - $this->collection->add(new PhpVersionRequirement(new ExactVersionConstraint('5.6.0'))); - $this->collection->add($this->item); - - $this->assertContains($this->item, $this->collection); - } - - public function testKeyPositionCanBeRetreived() { - $this->collection->add($this->item); - foreach($this->collection as $key => $item) { - $this->assertEquals(0, $key); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/values/UrlTest.php b/vendor/phar-io/manifest/tests/values/UrlTest.php deleted file mode 100644 index 20f09c15..00000000 --- a/vendor/phar-io/manifest/tests/values/UrlTest.php +++ /dev/null @@ -1,35 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Url - */ -class UrlTest extends TestCase { - public function testCanBeCreatedForValidUrl() { - $this->assertInstanceOf(Url::class, new Url('https://phar.io/')); - } - - public function testCanBeUsedAsString() { - $this->assertEquals('https://phar.io/', new Url('https://phar.io/')); - } - - /** - * @covers PharIo\Manifest\InvalidUrlException - */ - public function testCannotBeCreatedForInvalidUrl() { - $this->expectException(InvalidUrlException::class); - - new Url('invalid'); - } -} diff --git a/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php deleted file mode 100644 index 327a7e3f..00000000 --- a/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php +++ /dev/null @@ -1,18 +0,0 @@ -loadXML(''); - $collection = new AuthorElementCollection($dom->childNodes); - - foreach($collection as $authorElement) { - $this->assertInstanceOf(AuthorElement::class, $authorElement); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php b/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php deleted file mode 100644 index 430c0caa..00000000 --- a/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php +++ /dev/null @@ -1,25 +0,0 @@ -loadXML(''); - $this->author = new AuthorElement($dom->documentElement); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('Reiner Zufall', $this->author->getName()); - } - - public function testEmailCanBeRetrieved() { - $this->assertEquals('reiner@zufall.de', $this->author->getEmail()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php b/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php deleted file mode 100644 index 79726176..00000000 --- a/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php +++ /dev/null @@ -1,41 +0,0 @@ -dom = new DOMDocument(); - $this->dom->loadXML(''); - $this->bundles = new BundlesElement($this->dom->documentElement); - } - - public function testThrowsExceptionWhenGetComponentElementsIsCalledButNodesAreMissing() { - $this->expectException(ManifestElementException::class); - $this->bundles->getComponentElements(); - } - - public function testGetComponentElementsReturnsComponentElementCollection() { - $this->addComponent(); - $this->assertInstanceOf( - ComponentElementCollection::class, $this->bundles->getComponentElements() - ); - } - - private function addComponent() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'component') - ); - } -} diff --git a/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php deleted file mode 100644 index 3a2716f8..00000000 --- a/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php +++ /dev/null @@ -1,18 +0,0 @@ -loadXML(''); - $collection = new ComponentElementCollection($dom->childNodes); - - foreach($collection as $componentElement) { - $this->assertInstanceOf(ComponentElement::class, $componentElement); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php b/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php deleted file mode 100644 index ab89fbd9..00000000 --- a/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php +++ /dev/null @@ -1,25 +0,0 @@ -loadXML(''); - $this->component = new ComponentElement($dom->documentElement); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('phar-io/phive', $this->component->getName()); - } - - public function testEmailCanBeRetrieved() { - $this->assertEquals('0.6.0', $this->component->getVersion()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php b/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php deleted file mode 100644 index f77313de..00000000 --- a/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php +++ /dev/null @@ -1,63 +0,0 @@ -loadXML(''); - $this->domElement = $dom->documentElement; - $this->contains = new ContainsElement($this->domElement); - } - - public function testVersionCanBeRetrieved() { - $this->assertEquals('5.6.5', $this->contains->getVersion()); - } - - public function testThrowsExceptionWhenVersionAttributeIsMissing() { - $this->domElement->removeAttribute('version'); - $this->expectException(ManifestElementException::class); - $this->contains->getVersion(); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('phpunit/phpunit', $this->contains->getName()); - } - - public function testThrowsExceptionWhenNameAttributeIsMissing() { - $this->domElement->removeAttribute('name'); - $this->expectException(ManifestElementException::class); - $this->contains->getName(); - } - - public function testTypeCanBeRetrieved() { - $this->assertEquals('application', $this->contains->getType()); - } - - public function testThrowsExceptionWhenTypeAttributeIsMissing() { - $this->domElement->removeAttribute('type'); - $this->expectException(ManifestElementException::class); - $this->contains->getType(); - } - - public function testGetExtensionElementReturnsExtensionElement() { - $this->domElement->appendChild( - $this->domElement->ownerDocument->createElementNS('https://phar.io/xml/manifest/1.0', 'extension') - ); - $this->assertInstanceOf(ExtensionElement::class, $this->contains->getExtensionElement()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php b/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php deleted file mode 100644 index 9ad8eb38..00000000 --- a/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php +++ /dev/null @@ -1,52 +0,0 @@ -dom = new DOMDocument(); - $this->dom->loadXML(''); - $this->copyright = new CopyrightElement($this->dom->documentElement); - } - - public function testThrowsExceptionWhenGetAuthroElementsIsCalledButNodesAreMissing() { - $this->expectException(ManifestElementException::class); - $this->copyright->getAuthorElements(); - } - - public function testThrowsExceptionWhenGetLicenseElementIsCalledButNodeIsMissing() { - $this->expectException(ManifestElementException::class); - $this->copyright->getLicenseElement(); - } - - public function testGetAuthorElementsReturnsAuthorElementCollection() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'author') - ); - $this->assertInstanceOf( - AuthorElementCollection::class, $this->copyright->getAuthorElements() - ); - } - - public function testGetLicenseElementReturnsLicenseElement() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'license') - ); - $this->assertInstanceOf( - LicenseElement::class, $this->copyright->getLicenseElement() - ); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php deleted file mode 100644 index 463e4d6e..00000000 --- a/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php +++ /dev/null @@ -1,19 +0,0 @@ -loadXML(''); - $collection = new ExtElementCollection($dom->childNodes); - - foreach($collection as $position => $extElement) { - $this->assertInstanceOf(ExtElement::class, $extElement); - $this->assertEquals(0, $position); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ExtElementTest.php b/vendor/phar-io/manifest/tests/xml/ExtElementTest.php deleted file mode 100644 index 097b5224..00000000 --- a/vendor/phar-io/manifest/tests/xml/ExtElementTest.php +++ /dev/null @@ -1,21 +0,0 @@ -loadXML(''); - $this->ext = new ExtElement($dom->documentElement); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('dom', $this->ext->getName()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php b/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php deleted file mode 100644 index 2ae01126..00000000 --- a/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php +++ /dev/null @@ -1,25 +0,0 @@ -loadXML(''); - $this->extension = new ExtensionElement($dom->documentElement); - } - - public function testNForCanBeRetrieved() { - $this->assertEquals('phar-io/phive', $this->extension->getFor()); - } - - public function testCompatibleVersionConstraintCanBeRetrieved() { - $this->assertEquals('~0.6', $this->extension->getCompatible()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php b/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php deleted file mode 100644 index 00d4a6c4..00000000 --- a/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php +++ /dev/null @@ -1,25 +0,0 @@ -loadXML(''); - $this->license = new LicenseElement($dom->documentElement); - } - - public function testTypeCanBeRetrieved() { - $this->assertEquals('BSD-3', $this->license->getType()); - } - - public function testUrlCanBeRetrieved() { - $this->assertEquals('https://some.tld/LICENSE', $this->license->getUrl()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php b/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php deleted file mode 100644 index b5bb8cd0..00000000 --- a/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php +++ /dev/null @@ -1,110 +0,0 @@ -expectException(ManifestDocumentException::class); - ManifestDocument::fromFile('/does/not/exist'); - } - - public function testCanBeCreatedFromFile() { - $this->assertInstanceOf( - ManifestDocument::class, - ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml') - ); - } - - public function testCaneBeConstructedFromString() { - $content = file_get_contents(__DIR__ . '/../_fixture/phpunit-5.6.5.xml'); - $this->assertInstanceOf( - ManifestDocument::class, - ManifestDocument::fromString($content) - ); - } - - public function testThrowsExceptionOnInvalidXML() { - $this->expectException(ManifestDocumentLoadingException::class); - ManifestDocument::fromString(''); - } - - public function testLoadingDocumentWithWrongRootNameThrowsException() { - $this->expectException(ManifestDocumentException::class); - ManifestDocument::fromString(''); - } - - public function testLoadingDocumentWithWrongNamespaceThrowsException() { - $this->expectException(ManifestDocumentException::class); - ManifestDocument::fromString(''); - } - - public function testContainsElementCanBeRetrieved() { - $this->assertInstanceOf( - ContainsElement::class, - $this->loadFixture()->getContainsElement() - ); - } - - public function testRequiresElementCanBeRetrieved() { - $this->assertInstanceOf( - RequiresElement::class, - $this->loadFixture()->getRequiresElement() - ); - } - - public function testCopyrightElementCanBeRetrieved() { - $this->assertInstanceOf( - CopyrightElement::class, - $this->loadFixture()->getCopyrightElement() - ); - } - - public function testBundlesElementCanBeRetrieved() { - $this->assertInstanceOf( - BundlesElement::class, - $this->loadFixture()->getBundlesElement() - ); - } - - public function testThrowsExceptionWhenContainsIsMissing() { - $this->expectException(ManifestDocumentException::class); - $this->loadEmptyFixture()->getContainsElement(); - } - - public function testThrowsExceptionWhenCopyirhgtIsMissing() { - $this->expectException(ManifestDocumentException::class); - $this->loadEmptyFixture()->getCopyrightElement(); - } - - public function testThrowsExceptionWhenRequiresIsMissing() { - $this->expectException(ManifestDocumentException::class); - $this->loadEmptyFixture()->getRequiresElement(); - } - - public function testThrowsExceptionWhenBundlesIsMissing() { - $this->expectException(ManifestDocumentException::class); - $this->loadEmptyFixture()->getBundlesElement(); - } - - public function testHasBundlesReturnsTrueWhenBundlesNodeIsPresent() { - $this->assertTrue( - $this->loadFixture()->hasBundlesElement() - ); - } - - public function testHasBundlesReturnsFalseWhenBundlesNoNodeIsPresent() { - $this->assertFalse( - $this->loadEmptyFixture()->hasBundlesElement() - ); - } - - private function loadFixture() { - return ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml'); - } - - private function loadEmptyFixture() { - return ManifestDocument::fromString( - '' - ); - } -} diff --git a/vendor/phar-io/manifest/tests/xml/PhpElementTest.php b/vendor/phar-io/manifest/tests/xml/PhpElementTest.php deleted file mode 100644 index 546187a0..00000000 --- a/vendor/phar-io/manifest/tests/xml/PhpElementTest.php +++ /dev/null @@ -1,48 +0,0 @@ -dom = new DOMDocument(); - $this->dom->loadXML(''); - $this->php = new PhpElement($this->dom->documentElement); - } - - public function testVersionConstraintCanBeRetrieved() { - $this->assertEquals('^5.6 || ^7.0', $this->php->getVersion()); - } - - public function testHasExtElementsReturnsFalseWhenNoExtensionsAreRequired() { - $this->assertFalse($this->php->hasExtElements()); - } - - public function testHasExtElementsReturnsTrueWhenExtensionsAreRequired() { - $this->addExtElement(); - $this->assertTrue($this->php->hasExtElements()); - } - - public function testGetExtElementsReturnsExtElementCollection() { - $this->addExtElement(); - $this->assertInstanceOf(ExtElementCollection::class, $this->php->getExtElements()); - } - - private function addExtElement() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'ext') - ); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php b/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php deleted file mode 100644 index 907b0a6f..00000000 --- a/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php +++ /dev/null @@ -1,37 +0,0 @@ -dom = new DOMDocument(); - $this->dom->loadXML(''); - $this->requires = new RequiresElement($this->dom->documentElement); - } - - public function testThrowsExceptionWhenGetPhpElementIsCalledButElementIsMissing() { - $this->expectException(ManifestElementException::class); - $this->requires->getPHPElement(); - } - - public function testHasExtElementsReturnsTrueWhenExtensionsAreRequired() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'php') - ); - - $this->assertInstanceOf(PhpElement::class, $this->requires->getPHPElement()); - } - -} diff --git a/vendor/phar-io/version/.gitignore b/vendor/phar-io/version/.gitignore deleted file mode 100644 index 1c8f2e64..00000000 --- a/vendor/phar-io/version/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/.idea -/.php_cs.cache -/composer.lock -/src/autoload.php -/tools -/vendor - diff --git a/vendor/phar-io/version/.php_cs b/vendor/phar-io/version/.php_cs deleted file mode 100644 index 159d6a35..00000000 --- a/vendor/phar-io/version/.php_cs +++ /dev/null @@ -1,67 +0,0 @@ -files() - ->in('src') - ->in('tests') - ->name('*.php'); - -return Symfony\CS\Config\Config::create() - ->setUsingCache(true) - ->level(\Symfony\CS\FixerInterface::NONE_LEVEL) - ->fixers( - array( - 'align_double_arrow', - 'align_equals', - 'concat_with_spaces', - 'duplicate_semicolon', - 'elseif', - 'empty_return', - 'encoding', - 'eof_ending', - 'extra_empty_lines', - 'function_call_space', - 'function_declaration', - 'indentation', - 'join_function', - 'line_after_namespace', - 'linefeed', - 'list_commas', - 'lowercase_constants', - 'lowercase_keywords', - 'method_argument_space', - 'multiple_use', - 'namespace_no_leading_whitespace', - 'no_blank_lines_after_class_opening', - 'no_empty_lines_after_phpdocs', - 'parenthesis', - 'php_closing_tag', - 'phpdoc_indent', - 'phpdoc_no_access', - 'phpdoc_no_empty_return', - 'phpdoc_no_package', - 'phpdoc_params', - 'phpdoc_scalar', - 'phpdoc_separation', - 'phpdoc_to_comment', - 'phpdoc_trim', - 'phpdoc_types', - 'phpdoc_var_without_name', - 'remove_lines_between_uses', - 'return', - 'self_accessor', - 'short_array_syntax', - 'short_tag', - 'single_line_after_imports', - 'single_quote', - 'spaces_before_semicolon', - 'spaces_cast', - 'ternary_spaces', - 'trailing_spaces', - 'trim_array_spaces', - 'unused_use', - 'visibility', - 'whitespacy_lines' - ) - ) - ->finder($finder); - diff --git a/vendor/phar-io/version/.travis.yml b/vendor/phar-io/version/.travis.yml deleted file mode 100644 index b4be10f9..00000000 --- a/vendor/phar-io/version/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -os: -- linux - -language: php - -before_install: - - wget https://phar.io/releases/phive.phar - - wget https://phar.io/releases/phive.phar.asc - - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys 0x9B2D5D79 - - gpg --verify phive.phar.asc phive.phar - - chmod +x phive.phar - - sudo mv phive.phar /usr/bin/phive - -install: - - ant setup - -script: ./tools/phpunit - -php: - - 5.6 - - 7.0 - - 7.1 - - 7.0snapshot - - 7.1snapshot - - master - -matrix: - allow_failures: - - php: master - fast_finish: true - -notifications: - email: false diff --git a/vendor/phar-io/version/LICENSE b/vendor/phar-io/version/LICENSE deleted file mode 100644 index 359dbc50..00000000 --- a/vendor/phar-io/version/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -phar-io/version - -Copyright (c) 2016-2017 Arne Blankerts , Sebastian Heuer and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of Arne Blankerts nor the names of contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - diff --git a/vendor/phar-io/version/README.md b/vendor/phar-io/version/README.md deleted file mode 100644 index df448f82..00000000 --- a/vendor/phar-io/version/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Version - -Library for handling version information and constraints - -[![Build Status](https://travis-ci.org/phar-io/version.svg?branch=master)](https://travis-ci.org/phar-io/version) - -## Installation - -You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): - - composer require phar-io/version - -If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: - - composer require --dev phar-io/version - diff --git a/vendor/phar-io/version/build.xml b/vendor/phar-io/version/build.xml deleted file mode 100644 index 943c957f..00000000 --- a/vendor/phar-io/version/build.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/phar-io/version/composer.json b/vendor/phar-io/version/composer.json deleted file mode 100644 index 891e8b17..00000000 --- a/vendor/phar-io/version/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "phar-io/version", - "description": "Library for handling version information and constraints", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "support": { - "issues": "https://github.com/phar-io/version/issues" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "autoload": { - "classmap": [ - "src/" - ] - } -} - diff --git a/vendor/phar-io/version/phive.xml b/vendor/phar-io/version/phive.xml deleted file mode 100644 index 0c3bc6f3..00000000 --- a/vendor/phar-io/version/phive.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/phar-io/version/phpunit.xml b/vendor/phar-io/version/phpunit.xml deleted file mode 100644 index c21ffbc0..00000000 --- a/vendor/phar-io/version/phpunit.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - tests - - - - - src - - - diff --git a/vendor/phar-io/version/src/AbstractVersionConstraint.php b/vendor/phar-io/version/src/AbstractVersionConstraint.php deleted file mode 100644 index b732dbca..00000000 --- a/vendor/phar-io/version/src/AbstractVersionConstraint.php +++ /dev/null @@ -1,32 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -abstract class AbstractVersionConstraint implements VersionConstraint { - /** - * @var string - */ - private $originalValue = ''; - - /** - * @param string $originalValue - */ - public function __construct($originalValue) { - $this->originalValue = $originalValue; - } - - /** - * @return string - */ - public function asString() { - return $this->originalValue; - } -} diff --git a/vendor/phar-io/version/src/AndVersionConstraintGroup.php b/vendor/phar-io/version/src/AndVersionConstraintGroup.php deleted file mode 100644 index 455dcd19..00000000 --- a/vendor/phar-io/version/src/AndVersionConstraintGroup.php +++ /dev/null @@ -1,43 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class AndVersionConstraintGroup extends AbstractVersionConstraint { - /** - * @var VersionConstraint[] - */ - private $constraints = []; - - /** - * @param string $originalValue - * @param VersionConstraint[] $constraints - */ - public function __construct($originalValue, array $constraints) { - parent::__construct($originalValue); - - $this->constraints = $constraints; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - foreach ($this->constraints as $constraint) { - if (!$constraint->complies($version)) { - return false; - } - } - - return true; - } -} diff --git a/vendor/phar-io/version/src/AnyVersionConstraint.php b/vendor/phar-io/version/src/AnyVersionConstraint.php deleted file mode 100644 index 13ca2efc..00000000 --- a/vendor/phar-io/version/src/AnyVersionConstraint.php +++ /dev/null @@ -1,29 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class AnyVersionConstraint implements VersionConstraint { - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - return true; - } - - /** - * @return string - */ - public function asString() { - return '*'; - } -} diff --git a/vendor/phar-io/version/src/ExactVersionConstraint.php b/vendor/phar-io/version/src/ExactVersionConstraint.php deleted file mode 100644 index b2141172..00000000 --- a/vendor/phar-io/version/src/ExactVersionConstraint.php +++ /dev/null @@ -1,22 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class ExactVersionConstraint extends AbstractVersionConstraint { - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - return $this->asString() == $version->getVersionString(); - } -} diff --git a/vendor/phar-io/version/src/Exception.php b/vendor/phar-io/version/src/Exception.php deleted file mode 100644 index b99e4dd4..00000000 --- a/vendor/phar-io/version/src/Exception.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -interface Exception { -} diff --git a/vendor/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php b/vendor/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php deleted file mode 100644 index a237d79c..00000000 --- a/vendor/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php +++ /dev/null @@ -1,38 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class GreaterThanOrEqualToVersionConstraint extends AbstractVersionConstraint { - /** - * @var Version - */ - private $minimalVersion; - - /** - * @param string $originalValue - * @param Version $minimalVersion - */ - public function __construct($originalValue, Version $minimalVersion) { - parent::__construct($originalValue); - - $this->minimalVersion = $minimalVersion; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - return $version->getVersionString() == $this->minimalVersion->getVersionString() || - $version->isGreaterThan($this->minimalVersion); - } -} diff --git a/vendor/phar-io/version/src/InvalidVersionException.php b/vendor/phar-io/version/src/InvalidVersionException.php deleted file mode 100644 index e52f5d71..00000000 --- a/vendor/phar-io/version/src/InvalidVersionException.php +++ /dev/null @@ -1,5 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class OrVersionConstraintGroup extends AbstractVersionConstraint { - /** - * @var VersionConstraint[] - */ - private $constraints = []; - - /** - * @param string $originalValue - * @param VersionConstraint[] $constraints - */ - public function __construct($originalValue, array $constraints) { - parent::__construct($originalValue); - - $this->constraints = $constraints; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - foreach ($this->constraints as $constraint) { - if ($constraint->complies($version)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/phar-io/version/src/PreReleaseSuffix.php b/vendor/phar-io/version/src/PreReleaseSuffix.php deleted file mode 100644 index d9e7ee7d..00000000 --- a/vendor/phar-io/version/src/PreReleaseSuffix.php +++ /dev/null @@ -1,41 +0,0 @@ -value = $value; - $this->number = $number; - } - - /** - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * @return int|null - */ - public function getNumber() - { - return $this->number; - } -} diff --git a/vendor/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php b/vendor/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php deleted file mode 100644 index dbeaa06d..00000000 --- a/vendor/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php +++ /dev/null @@ -1,48 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class SpecificMajorAndMinorVersionConstraint extends AbstractVersionConstraint { - /** - * @var int - */ - private $major = 0; - - /** - * @var int - */ - private $minor = 0; - - /** - * @param string $originalValue - * @param int $major - * @param int $minor - */ - public function __construct($originalValue, $major, $minor) { - parent::__construct($originalValue); - - $this->major = $major; - $this->minor = $minor; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - if ($version->getMajor()->getValue() != $this->major) { - return false; - } - - return $version->getMinor()->getValue() == $this->minor; - } -} diff --git a/vendor/phar-io/version/src/SpecificMajorVersionConstraint.php b/vendor/phar-io/version/src/SpecificMajorVersionConstraint.php deleted file mode 100644 index 51b12d9d..00000000 --- a/vendor/phar-io/version/src/SpecificMajorVersionConstraint.php +++ /dev/null @@ -1,37 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class SpecificMajorVersionConstraint extends AbstractVersionConstraint { - /** - * @var int - */ - private $major = 0; - - /** - * @param string $originalValue - * @param int $major - */ - public function __construct($originalValue, $major) { - parent::__construct($originalValue); - - $this->major = $major; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - return $version->getMajor()->getValue() == $this->major; - } -} diff --git a/vendor/phar-io/version/src/UnsupportedVersionConstraintException.php b/vendor/phar-io/version/src/UnsupportedVersionConstraintException.php deleted file mode 100644 index 45488c2d..00000000 --- a/vendor/phar-io/version/src/UnsupportedVersionConstraintException.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -final class UnsupportedVersionConstraintException extends \RuntimeException implements Exception { -} diff --git a/vendor/phar-io/version/src/Version.php b/vendor/phar-io/version/src/Version.php deleted file mode 100644 index 825ed443..00000000 --- a/vendor/phar-io/version/src/Version.php +++ /dev/null @@ -1,162 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class Version { - /** - * @var VersionNumber - */ - private $major; - - /** - * @var VersionNumber - */ - private $minor; - - /** - * @var VersionNumber - */ - private $patch; - - /** - * @var PreReleaseSuffix - */ - private $preReleaseSuffix; - - /** - * @var string - */ - private $versionString = ''; - - /** - * @param string $versionString - */ - public function __construct($versionString) { - $this->ensureVersionStringIsValid($versionString); - - $this->versionString = $versionString; - } - - /** - * @param array $matches - */ - private function parseVersion(array $matches) { - $this->major = new VersionNumber($matches['Major']); - $this->minor = new VersionNumber($matches['Minor']); - $this->patch = isset($matches['Patch']) ? new VersionNumber($matches['Patch']) : new VersionNumber(null); - - if (isset($matches['ReleaseType'])) { - $preReleaseNumber = isset($matches['ReleaseTypeCount']) ? (int) $matches['ReleaseTypeCount'] : null; - - $this->preReleaseSuffix = new PreReleaseSuffix($matches['ReleaseType'], $preReleaseNumber); - } - } - - /** - * @return PreReleaseSuffix - */ - public function getPreReleaseSuffix() - { - return $this->preReleaseSuffix; - } - - /** - * @return string - */ - public function getVersionString() { - return $this->versionString; - } - - /** - * @param Version $version - * - * @return bool - */ - public function isGreaterThan(Version $version) { - if ($version->getMajor()->getValue() > $this->getMajor()->getValue()) { - return false; - } - - if ($version->getMajor()->getValue() < $this->getMajor()->getValue()) { - return true; - } - - if ($version->getMinor()->getValue() > $this->getMinor()->getValue()) { - return false; - } - - if ($version->getMinor()->getValue() < $this->getMinor()->getValue()) { - return true; - } - - if ($version->getPatch()->getValue() >= $this->getPatch()->getValue()) { - return false; - } - - if ($version->getPatch()->getValue() < $this->getPatch()->getValue()) { - return true; - } - - return false; - } - - /** - * @return VersionNumber - */ - public function getMajor() { - return $this->major; - } - - /** - * @return VersionNumber - */ - public function getMinor() { - return $this->minor; - } - - /** - * @return VersionNumber - */ - public function getPatch() { - return $this->patch; - } - - /** - * @param string $version - * - * @throws InvalidVersionException - */ - private function ensureVersionStringIsValid($version) { - $regex = '/^v? - (?(0|(?:[1-9][0-9]*))) - \\. - (?(0|(?:[1-9][0-9]*))) - (\\. - (?(0|(?:[1-9][0-9]*))) - )? - (?: - - - (?(?:(dev|beta|b|RC|alpha|a|patch|p))) - (?: - (?[0-9]) - )? - )? - $/x'; - - if (preg_match($regex, $version, $matches) !== 1) { - throw new InvalidVersionException( - sprintf("Version string '%s' does not follow SemVer semantics", $version) - ); - } - - $this->parseVersion($matches); - } -} diff --git a/vendor/phar-io/version/src/VersionConstraint.php b/vendor/phar-io/version/src/VersionConstraint.php deleted file mode 100644 index 9558163f..00000000 --- a/vendor/phar-io/version/src/VersionConstraint.php +++ /dev/null @@ -1,26 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -interface VersionConstraint { - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version); - - /** - * @return string - */ - public function asString(); - -} diff --git a/vendor/phar-io/version/src/VersionConstraintParser.php b/vendor/phar-io/version/src/VersionConstraintParser.php deleted file mode 100644 index 0a24f87d..00000000 --- a/vendor/phar-io/version/src/VersionConstraintParser.php +++ /dev/null @@ -1,122 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class VersionConstraintParser { - /** - * @param string $value - * - * @return VersionConstraint - * - * @throws UnsupportedVersionConstraintException - */ - public function parse($value) { - - if (strpos($value, '||') !== false) { - return $this->handleOrGroup($value); - } - - if (!preg_match('/^[\^~\*]?[\d.\*]+$/', $value)) { - throw new UnsupportedVersionConstraintException( - sprintf('Version constraint %s is not supported.', $value) - ); - } - - switch ($value[0]) { - case '~': - return $this->handleTildeOperator($value); - case '^': - return $this->handleCaretOperator($value); - } - - $version = new VersionConstraintValue($value); - - if ($version->getMajor()->isAny()) { - return new AnyVersionConstraint(); - } - - if ($version->getMinor()->isAny()) { - return new SpecificMajorVersionConstraint( - $value, - $version->getMajor()->getValue() - ); - } - - if ($version->getPatch()->isAny()) { - return new SpecificMajorAndMinorVersionConstraint( - $value, - $version->getMajor()->getValue(), - $version->getMinor()->getValue() - ); - } - - return new ExactVersionConstraint($value); - } - - /** - * @param $value - * - * @return OrVersionConstraintGroup - */ - private function handleOrGroup($value) { - $constraints = []; - - foreach (explode('||', $value) as $groupSegment) { - $constraints[] = $this->parse(trim($groupSegment)); - } - - return new OrVersionConstraintGroup($value, $constraints); - } - - /** - * @param string $value - * - * @return AndVersionConstraintGroup - */ - private function handleTildeOperator($value) { - $version = new Version(substr($value, 1)); - $constraints = [ - new GreaterThanOrEqualToVersionConstraint($value, $version) - ]; - - if ($version->getPatch()->isAny()) { - $constraints[] = new SpecificMajorVersionConstraint( - $value, - $version->getMajor()->getValue() - ); - } else { - $constraints[] = new SpecificMajorAndMinorVersionConstraint( - $value, - $version->getMajor()->getValue(), - $version->getMinor()->getValue() - ); - } - - return new AndVersionConstraintGroup($value, $constraints); - } - - /** - * @param string $value - * - * @return AndVersionConstraintGroup - */ - private function handleCaretOperator($value) { - $version = new Version(substr($value, 1)); - - return new AndVersionConstraintGroup( - $value, - [ - new GreaterThanOrEqualToVersionConstraint($value, $version), - new SpecificMajorVersionConstraint($value, $version->getMajor()->getValue()) - ] - ); - } -} diff --git a/vendor/phar-io/version/src/VersionConstraintValue.php b/vendor/phar-io/version/src/VersionConstraintValue.php deleted file mode 100644 index ad59068c..00000000 --- a/vendor/phar-io/version/src/VersionConstraintValue.php +++ /dev/null @@ -1,123 +0,0 @@ -versionString = $versionString; - - $this->parseVersion($versionString); - } - - /** - * @param $versionString - */ - private function parseVersion($versionString) { - $this->extractBuildMetaData($versionString); - $this->extractLabel($versionString); - - $versionSegments = explode('.', $versionString); - $this->major = new VersionNumber($versionSegments[0]); - - $minorValue = isset($versionSegments[1]) ? $versionSegments[1] : null; - $patchValue = isset($versionSegments[2]) ? $versionSegments[2] : null; - - $this->minor = new VersionNumber($minorValue); - $this->patch = new VersionNumber($patchValue); - } - - /** - * @param string $versionString - */ - private function extractBuildMetaData(&$versionString) { - if (preg_match('/\+(.*)/', $versionString, $matches) == 1) { - $this->buildMetaData = $matches[1]; - $versionString = str_replace($matches[0], '', $versionString); - } - } - - /** - * @param string $versionString - */ - private function extractLabel(&$versionString) { - if (preg_match('/\-(.*)/', $versionString, $matches) == 1) { - $this->label = $matches[1]; - $versionString = str_replace($matches[0], '', $versionString); - } - } - - /** - * @return string - */ - public function getLabel() { - return $this->label; - } - - /** - * @return string - */ - public function getBuildMetaData() { - return $this->buildMetaData; - } - - /** - * @return string - */ - public function getVersionString() { - return $this->versionString; - } - - /** - * @return VersionNumber - */ - public function getMajor() { - return $this->major; - } - - /** - * @return VersionNumber - */ - public function getMinor() { - return $this->minor; - } - - /** - * @return VersionNumber - */ - public function getPatch() { - return $this->patch; - } -} diff --git a/vendor/phar-io/version/src/VersionNumber.php b/vendor/phar-io/version/src/VersionNumber.php deleted file mode 100644 index ab512ed1..00000000 --- a/vendor/phar-io/version/src/VersionNumber.php +++ /dev/null @@ -1,41 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class VersionNumber { - /** - * @var int - */ - private $value; - - /** - * @param mixed $value - */ - public function __construct($value) { - if (is_numeric($value)) { - $this->value = $value; - } - } - - /** - * @return bool - */ - public function isAny() { - return $this->value === null; - } - - /** - * @return int - */ - public function getValue() { - return $this->value; - } -} diff --git a/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php b/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php deleted file mode 100644 index 683e9d03..00000000 --- a/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php +++ /dev/null @@ -1,125 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Version\VersionConstraintParser - */ -class VersionConstraintParserTest extends TestCase { - /** - * @dataProvider versionStringProvider - * - * @param string $versionString - * @param VersionConstraint $expectedConstraint - */ - public function testReturnsExpectedConstraint($versionString, VersionConstraint $expectedConstraint) { - $parser = new VersionConstraintParser; - - $this->assertEquals($expectedConstraint, $parser->parse($versionString)); - } - - /** - * @dataProvider unsupportedVersionStringProvider - * - * @param string $versionString - */ - public function testThrowsExceptionIfVersionStringIsNotSupported($versionString) { - $parser = new VersionConstraintParser; - - $this->expectException(UnsupportedVersionConstraintException::class); - - $parser->parse($versionString); - } - - /** - * @return array - */ - public function versionStringProvider() { - return [ - ['1.0.2', new ExactVersionConstraint('1.0.2')], - [ - '~4.6', - new AndVersionConstraintGroup( - '~4.6', - [ - new GreaterThanOrEqualToVersionConstraint('~4.6', new Version('4.6')), - new SpecificMajorVersionConstraint('~4.6', 4) - ] - ) - ], - [ - '~4.6.2', - new AndVersionConstraintGroup( - '~4.6.2', - [ - new GreaterThanOrEqualToVersionConstraint('~4.6.2', new Version('4.6.2')), - new SpecificMajorAndMinorVersionConstraint('~4.6.2', 4, 6) - ] - ) - ], - [ - '^2.6.1', - new AndVersionConstraintGroup( - '^2.6.1', - [ - new GreaterThanOrEqualToVersionConstraint('^2.6.1', new Version('2.6.1')), - new SpecificMajorVersionConstraint('^2.6.1', 2) - ] - ) - ], - ['5.1.*', new SpecificMajorAndMinorVersionConstraint('5.1.*', 5, 1)], - ['5.*', new SpecificMajorVersionConstraint('5.*', 5)], - ['*', new AnyVersionConstraint()], - [ - '1.0.2 || 1.0.5', - new OrVersionConstraintGroup( - '1.0.2 || 1.0.5', - [ - new ExactVersionConstraint('1.0.2'), - new ExactVersionConstraint('1.0.5') - ] - ) - ], - [ - '^5.6 || ^7.0', - new OrVersionConstraintGroup( - '^5.6 || ^7.0', - [ - new AndVersionConstraintGroup( - '^5.6', [ - new GreaterThanOrEqualToVersionConstraint('^5.6', new Version('5.6')), - new SpecificMajorVersionConstraint('^5.6', 5) - ] - ), - new AndVersionConstraintGroup( - '^7.0', [ - new GreaterThanOrEqualToVersionConstraint('^7.0', new Version('7.0')), - new SpecificMajorVersionConstraint('^7.0', 7) - ] - ) - ] - ) - ] - ]; - } - - public function unsupportedVersionStringProvider() { - return [ - ['foo'], - ['+1.0.2'], - ['>=2.0'], - ['^5.6 || >= 7.0'], - ['2.0 || foo'] - ]; - } -} diff --git a/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php deleted file mode 100644 index c6185669..00000000 --- a/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php +++ /dev/null @@ -1,25 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Version\AbstractVersionConstraint - */ -class AbstractVersionConstraintTest extends TestCase { - public function testAsString() { - /** @var AbstractVersionConstraint|\PHPUnit_Framework_MockObject_MockObject $constraint */ - $constraint = $this->getMockForAbstractClass(AbstractVersionConstraint::class, ['foo']); - - $this->assertSame('foo', $constraint->asString()); - } -} diff --git a/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php b/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php deleted file mode 100644 index ce7f5da8..00000000 --- a/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php +++ /dev/null @@ -1,52 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\AndVersionConstraintGroup - */ -class AndVersionConstraintGroupTest extends TestCase { - public function testReturnsFalseIfOneConstraintReturnsFalse() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $secondConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(false)); - - $group = new AndVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertFalse($group->complies(new Version('1.0.0'))); - } - - public function testReturnsTrueIfAllConstraintsReturnsTrue() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $secondConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $group = new AndVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertTrue($group->complies(new Version('1.0.0'))); - } -} diff --git a/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php deleted file mode 100644 index 331785e3..00000000 --- a/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php +++ /dev/null @@ -1,41 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\AnyVersionConstraint - */ -class AnyVersionConstraintTest extends TestCase { - public function versionProvider() { - return [ - [new Version('1.0.2')], - [new Version('4.8')], - [new Version('0.1.1-dev')] - ]; - } - - /** - * @dataProvider versionProvider - * - * @param Version $version - */ - public function testReturnsTrue(Version $version) { - $constraint = new AnyVersionConstraint; - - $this->assertTrue($constraint->complies($version)); - } - - public function testAsString() { - $this->assertSame('*', (new AnyVersionConstraint())->asString()); - } -} diff --git a/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php deleted file mode 100644 index 6b906faf..00000000 --- a/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php +++ /dev/null @@ -1,58 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\ExactVersionConstraint - */ -class ExactVersionConstraintTest extends TestCase { - public function compliantVersionProvider() { - return [ - ['1.0.2', new Version('1.0.2')], - ['4.8.9', new Version('4.8.9')], - ['4.8', new Version('4.8')], - ]; - } - - public function nonCompliantVersionProvider() { - return [ - ['1.0.2', new Version('1.0.3')], - ['4.8.9', new Version('4.7.9')], - ['4.8', new Version('4.8.5')], - ]; - } - - /** - * @dataProvider compliantVersionProvider - * - * @param string $constraintValue - * @param Version $version - */ - public function testReturnsTrueForCompliantVersion($constraintValue, Version $version) { - $constraint = new ExactVersionConstraint($constraintValue); - - $this->assertTrue($constraint->complies($version)); - } - - /** - * @dataProvider nonCompliantVersionProvider - * - * @param string $constraintValue - * @param Version $version - */ - public function testReturnsFalseForNonCompliantVersion($constraintValue, Version $version) { - $constraint = new ExactVersionConstraint($constraintValue); - - $this->assertFalse($constraint->complies($version)); - } -} diff --git a/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php deleted file mode 100644 index 2ae54a86..00000000 --- a/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php +++ /dev/null @@ -1,47 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\GreaterThanOrEqualToVersionConstraint - */ -class GreaterThanOrEqualToVersionConstraintTest extends TestCase { - public function versionProvider() { - return [ - // compliant versions - [new Version('1.0.2'), new Version('1.0.2'), true], - [new Version('1.0.2'), new Version('1.0.3'), true], - [new Version('1.0.2'), new Version('1.1.1'), true], - [new Version('1.0.2'), new Version('2.0.0'), true], - [new Version('1.0.2'), new Version('1.0.3'), true], - // non-compliant versions - [new Version('1.0.2'), new Version('1.0.1'), false], - [new Version('1.9.8'), new Version('0.9.9'), false], - [new Version('2.3.1'), new Version('2.2.3'), false], - [new Version('3.0.2'), new Version('2.9.9'), false], - ]; - } - - /** - * @dataProvider versionProvider - * - * @param Version $constraintVersion - * @param Version $version - * @param bool $expectedResult - */ - public function testReturnsTrueForCompliantVersions(Version $constraintVersion, Version $version, $expectedResult) { - $constraint = new GreaterThanOrEqualToVersionConstraint('foo', $constraintVersion); - - $this->assertSame($expectedResult, $constraint->complies($version)); - } -} diff --git a/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php b/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php deleted file mode 100644 index 4c6f5949..00000000 --- a/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php +++ /dev/null @@ -1,65 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\OrVersionConstraintGroup - */ -class OrVersionConstraintGroupTest extends TestCase { - public function testReturnsTrueIfOneConstraintReturnsFalse() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(false)); - - $secondConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertTrue($group->complies(new Version('1.0.0'))); - } - - public function testReturnsTrueIfAllConstraintsReturnsTrue() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertTrue($group->complies(new Version('1.0.0'))); - } - - public function testReturnsFalseIfAllConstraintsReturnsFalse() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(false)); - - $secondConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(false)); - - $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertFalse($group->complies(new Version('1.0.0'))); - } -} diff --git a/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php deleted file mode 100644 index d3ab1235..00000000 --- a/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php +++ /dev/null @@ -1,45 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\SpecificMajorAndMinorVersionConstraint - */ -class SpecificMajorAndMinorVersionConstraintTest extends TestCase { - public function versionProvider() { - return [ - // compliant versions - [1, 0, new Version('1.0.2'), true], - [1, 0, new Version('1.0.3'), true], - [1, 1, new Version('1.1.1'), true], - // non-compliant versions - [2, 9, new Version('0.9.9'), false], - [3, 2, new Version('2.2.3'), false], - [2, 8, new Version('2.9.9'), false], - ]; - } - - /** - * @dataProvider versionProvider - * - * @param int $major - * @param int $minor - * @param Version $version - * @param bool $expectedResult - */ - public function testReturnsTrueForCompliantVersions($major, $minor, Version $version, $expectedResult) { - $constraint = new SpecificMajorAndMinorVersionConstraint('foo', $major, $minor); - - $this->assertSame($expectedResult, $constraint->complies($version)); - } -} diff --git a/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php deleted file mode 100644 index fc78c7e9..00000000 --- a/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php +++ /dev/null @@ -1,44 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\SpecificMajorVersionConstraint - */ -class SpecificMajorVersionConstraintTest extends TestCase { - public function versionProvider() { - return [ - // compliant versions - [1, new Version('1.0.2'), true], - [1, new Version('1.0.3'), true], - [1, new Version('1.1.1'), true], - // non-compliant versions - [2, new Version('0.9.9'), false], - [3, new Version('2.2.3'), false], - [3, new Version('2.9.9'), false], - ]; - } - - /** - * @dataProvider versionProvider - * - * @param int $major - * @param Version $version - * @param bool $expectedResult - */ - public function testReturnsTrueForCompliantVersions($major, Version $version, $expectedResult) { - $constraint = new SpecificMajorVersionConstraint('foo', $major); - - $this->assertSame($expectedResult, $constraint->complies($version)); - } -} diff --git a/vendor/phar-io/version/tests/Unit/VersionTest.php b/vendor/phar-io/version/tests/Unit/VersionTest.php deleted file mode 100644 index 4d0eee4e..00000000 --- a/vendor/phar-io/version/tests/Unit/VersionTest.php +++ /dev/null @@ -1,104 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Version\Version - */ -class VersionTest extends TestCase { - /** - * @dataProvider versionProvider - * - * @param string $versionString - * @param string $expectedMajor - * @param string $expectedMinor - * @param string $expectedPatch - * @param string $expectedPreReleaseValue - * @param int $expectedReleaseCount - */ - public function testParsesVersionNumbers($versionString, $expectedMajor, $expectedMinor, $expectedPatch, $expectedPreReleaseValue = '', $expectedReleaseCount = 0) { - $version = new Version($versionString); - - $this->assertSame($expectedMajor, $version->getMajor()->getValue()); - $this->assertSame($expectedMinor, $version->getMinor()->getValue()); - $this->assertSame($expectedPatch, $version->getPatch()->getValue()); - if ($expectedPreReleaseValue !== '') { - $this->assertSame($expectedPreReleaseValue, $version->getPreReleaseSuffix()->getValue()); - } - if ($expectedReleaseCount !== 0) { - $this->assertSame($expectedReleaseCount, $version->getPreReleaseSuffix()->getNumber()); - } - - $this->assertSame($versionString, $version->getVersionString()); - } - - public function versionProvider() { - return [ - ['0.0.1', '0', '0', '1'], - ['0.1.2', '0', '1', '2'], - ['1.0.0-alpha', '1', '0', '0', 'alpha'], - ['3.4.12-dev3', '3', '4', '12', 'dev', 3], - ]; - } - - /** - * @dataProvider versionGreaterThanProvider - * - * @param Version $versionA - * @param Version $versionB - * @param bool $expectedResult - */ - public function testIsGreaterThan(Version $versionA, Version $versionB, $expectedResult) { - $this->assertSame($expectedResult, $versionA->isGreaterThan($versionB)); - } - - /** - * @return array - */ - public function versionGreaterThanProvider() { - return [ - [new Version('1.0.0'), new Version('1.0.1'), false], - [new Version('1.0.1'), new Version('1.0.0'), true], - [new Version('1.1.0'), new Version('1.0.1'), true], - [new Version('1.1.0'), new Version('2.0.1'), false], - [new Version('1.1.0'), new Version('1.1.0'), false], - [new Version('2.5.8'), new Version('1.6.8'), true], - [new Version('2.5.8'), new Version('2.6.8'), false], - [new Version('2.5.8'), new Version('3.1.2'), false], - ]; - } - - /** - * @dataProvider invalidVersionStringProvider - * - * @param string $versionString - */ - public function testThrowsExceptionIfVersionStringDoesNotFollowSemVer($versionString) - { - $this->expectException(InvalidVersionException::class); - new Version($versionString); - } - - /** - * @return array - */ - public function invalidVersionStringProvider() - { - return [ - ['foo'], - ['0.0.1-dev+ABC', '0', '0', '1', 'dev', 'ABC'], - ['1.0.0-x.7.z.92', '1', '0', '0', 'x.7.z.92'] - ]; - } - -} diff --git a/vendor/phpdocumentor/reflection-common/.travis.yml b/vendor/phpdocumentor/reflection-common/.travis.yml deleted file mode 100644 index 958ecf86..00000000 --- a/vendor/phpdocumentor/reflection-common/.travis.yml +++ /dev/null @@ -1,35 +0,0 @@ -language: php -php: - - 5.5 - - 5.6 - - 7.0 - - 7.1 - - hhvm - - nightly - -matrix: - allow_failures: - - php: - - hhvm - - nightly - -cache: - directories: - - $HOME/.composer/cache - -script: - - vendor/bin/phpunit --coverage-clover=coverage.clover -v - - composer update --no-interaction --prefer-source - - vendor/bin/phpunit -v - -before_script: - - composer install --no-interaction - -after_script: - - if [ $TRAVIS_PHP_VERSION = '5.6' ]; then wget https://scrutinizer-ci.com/ocular.phar; php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi - -notifications: - irc: "irc.freenode.org#phpdocumentor" - email: - - me@mikevanriel.com - - ashnazg@php.net diff --git a/vendor/phpdocumentor/reflection-common/LICENSE b/vendor/phpdocumentor/reflection-common/LICENSE deleted file mode 100644 index ed6926c1..00000000 --- a/vendor/phpdocumentor/reflection-common/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 phpDocumentor - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/vendor/phpdocumentor/reflection-common/README.md b/vendor/phpdocumentor/reflection-common/README.md deleted file mode 100644 index 68a80c82..00000000 --- a/vendor/phpdocumentor/reflection-common/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# ReflectionCommon -[![Build Status](https://travis-ci.org/phpDocumentor/ReflectionCommon.svg?branch=master)](https://travis-ci.org/phpDocumentor/ReflectionCommon) diff --git a/vendor/phpdocumentor/reflection-common/composer.json b/vendor/phpdocumentor/reflection-common/composer.json deleted file mode 100644 index 90eee0f0..00000000 --- a/vendor/phpdocumentor/reflection-common/composer.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "phpdocumentor/reflection-common", - "keywords": ["phpdoc", "phpDocumentor", "reflection", "static analysis", "FQSEN"], - "homepage": "http://www.phpdoc.org", - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "license": "MIT", - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "require": { - "php": ">=5.5" - }, - "autoload" : { - "psr-4" : { - "phpDocumentor\\Reflection\\": ["src"] - } - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/phpdocumentor/reflection-common/src/Element.php b/vendor/phpdocumentor/reflection-common/src/Element.php deleted file mode 100644 index 712e30e8..00000000 --- a/vendor/phpdocumentor/reflection-common/src/Element.php +++ /dev/null @@ -1,32 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -/** - * Interface for files processed by the ProjectFactory - */ -interface File -{ - /** - * Returns the content of the file as a string. - * - * @return string - */ - public function getContents(); - - /** - * Returns md5 hash of the file. - * - * @return string - */ - public function md5(); - - /** - * Returns an relative path to the file. - * - * @return string - */ - public function path(); -} diff --git a/vendor/phpdocumentor/reflection-common/src/Fqsen.php b/vendor/phpdocumentor/reflection-common/src/Fqsen.php deleted file mode 100644 index ce88d03f..00000000 --- a/vendor/phpdocumentor/reflection-common/src/Fqsen.php +++ /dev/null @@ -1,82 +0,0 @@ -fqsen = $fqsen; - - if (isset($matches[2])) { - $this->name = $matches[2]; - } else { - $matches = explode('\\', $fqsen); - $this->name = trim(end($matches), '()'); - } - } - - /** - * converts this class to string. - * - * @return string - */ - public function __toString() - { - return $this->fqsen; - } - - /** - * Returns the name of the element without path. - * - * @return string - */ - public function getName() - { - return $this->name; - } -} diff --git a/vendor/phpdocumentor/reflection-common/src/Location.php b/vendor/phpdocumentor/reflection-common/src/Location.php deleted file mode 100644 index 57603219..00000000 --- a/vendor/phpdocumentor/reflection-common/src/Location.php +++ /dev/null @@ -1,57 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -/** - * The location where an element occurs within a file. - */ -final class Location -{ - /** @var int */ - private $lineNumber = 0; - - /** @var int */ - private $columnNumber = 0; - - /** - * Initializes the location for an element using its line number in the file and optionally the column number. - * - * @param int $lineNumber - * @param int $columnNumber - */ - public function __construct($lineNumber, $columnNumber = 0) - { - $this->lineNumber = $lineNumber; - $this->columnNumber = $columnNumber; - } - - /** - * Returns the line number that is covered by this location. - * - * @return integer - */ - public function getLineNumber() - { - return $this->lineNumber; - } - - /** - * Returns the column number (character position on a line) for this location object. - * - * @return integer - */ - public function getColumnNumber() - { - return $this->columnNumber; - } -} diff --git a/vendor/phpdocumentor/reflection-common/src/Project.php b/vendor/phpdocumentor/reflection-common/src/Project.php deleted file mode 100644 index 3ed1e393..00000000 --- a/vendor/phpdocumentor/reflection-common/src/Project.php +++ /dev/null @@ -1,25 +0,0 @@ -create($docComment); -``` - -The `create` method will yield an object of type `\phpDocumentor\Reflection\DocBlock` -whose methods can be queried: - -```php -// Contains the summary for this DocBlock -$summary = $docblock->getSummary(); - -// Contains \phpDocumentor\Reflection\DocBlock\Description object -$description = $docblock->getDescription(); - -// You can either cast it to string -$description = (string) $docblock->getDescription(); - -// Or use the render method to get a string representation of the Description. -$description = $docblock->getDescription()->render(); -``` - -> For more examples it would be best to review the scripts in the [`/examples` folder](/examples). diff --git a/vendor/phpdocumentor/reflection-docblock/composer.json b/vendor/phpdocumentor/reflection-docblock/composer.json deleted file mode 100644 index e3dc38a9..00000000 --- a/vendor/phpdocumentor/reflection-docblock/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "phpdocumentor/reflection-docblock", - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "autoload": { - "psr-4": {"phpDocumentor\\Reflection\\": ["src/"]} - }, - "autoload-dev": { - "psr-4": {"phpDocumentor\\Reflection\\": ["tests/unit"]} - }, - "require-dev": { - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4", - "doctrine/instantiator": "~1.0.5" - }, - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon b/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon deleted file mode 100644 index 7c2ba6e2..00000000 --- a/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon +++ /dev/null @@ -1,31 +0,0 @@ -includes: - - temp/ecs/config/clean-code.neon - - temp/ecs/config/psr2-checkers.neon - - temp/ecs/config/spaces.neon - - temp/ecs/config/common.neon - -checkers: - PhpCsFixer\Fixer\Operator\ConcatSpaceFixer: - spacing: one - -parameters: - exclude_checkers: - # from temp/ecs/config/common.neon - - PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer - - PhpCsFixer\Fixer\PhpUnit\PhpUnitStrictFixer - - PhpCsFixer\Fixer\ControlStructure\YodaStyleFixer - # from temp/ecs/config/spaces.neon - - PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer - - skip: - SlevomatCodingStandard\Sniffs\Classes\UnusedPrivateElementsSniff: - # WIP code - - src/DocBlock/StandardTagFactory.php - PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\EmptyStatementSniff: - # WIP code - - src/DocBlock/StandardTagFactory.php - PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\ValidClassNameSniff: - - src/DocBlock/Tags/Return_.php - - src/DocBlock/Tags/Var_.php - PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\CamelCapsFunctionNameSniff: - - */tests/** diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php deleted file mode 100644 index 46605b78..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php +++ /dev/null @@ -1,236 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -use phpDocumentor\Reflection\DocBlock\Tag; -use Webmozart\Assert\Assert; - -final class DocBlock -{ - /** @var string The opening line for this docblock. */ - private $summary = ''; - - /** @var DocBlock\Description The actual description for this docblock. */ - private $description = null; - - /** @var Tag[] An array containing all the tags in this docblock; except inline. */ - private $tags = []; - - /** @var Types\Context Information about the context of this DocBlock. */ - private $context = null; - - /** @var Location Information about the location of this DocBlock. */ - private $location = null; - - /** @var bool Is this DocBlock (the start of) a template? */ - private $isTemplateStart = false; - - /** @var bool Does this DocBlock signify the end of a DocBlock template? */ - private $isTemplateEnd = false; - - /** - * @param string $summary - * @param DocBlock\Description $description - * @param DocBlock\Tag[] $tags - * @param Types\Context $context The context in which the DocBlock occurs. - * @param Location $location The location within the file that this DocBlock occurs in. - * @param bool $isTemplateStart - * @param bool $isTemplateEnd - */ - public function __construct( - $summary = '', - DocBlock\Description $description = null, - array $tags = [], - Types\Context $context = null, - Location $location = null, - $isTemplateStart = false, - $isTemplateEnd = false - ) { - Assert::string($summary); - Assert::boolean($isTemplateStart); - Assert::boolean($isTemplateEnd); - Assert::allIsInstanceOf($tags, Tag::class); - - $this->summary = $summary; - $this->description = $description ?: new DocBlock\Description(''); - foreach ($tags as $tag) { - $this->addTag($tag); - } - - $this->context = $context; - $this->location = $location; - - $this->isTemplateEnd = $isTemplateEnd; - $this->isTemplateStart = $isTemplateStart; - } - - /** - * @return string - */ - public function getSummary() - { - return $this->summary; - } - - /** - * @return DocBlock\Description - */ - public function getDescription() - { - return $this->description; - } - - /** - * Returns the current context. - * - * @return Types\Context - */ - public function getContext() - { - return $this->context; - } - - /** - * Returns the current location. - * - * @return Location - */ - public function getLocation() - { - return $this->location; - } - - /** - * Returns whether this DocBlock is the start of a Template section. - * - * A Docblock may serve as template for a series of subsequent DocBlocks. This is indicated by a special marker - * (`#@+`) that is appended directly after the opening `/**` of a DocBlock. - * - * An example of such an opening is: - * - * ``` - * /**#@+ - * * My DocBlock - * * / - * ``` - * - * The description and tags (not the summary!) are copied onto all subsequent DocBlocks and also applied to all - * elements that follow until another DocBlock is found that contains the closing marker (`#@-`). - * - * @see self::isTemplateEnd() for the check whether a closing marker was provided. - * - * @return boolean - */ - public function isTemplateStart() - { - return $this->isTemplateStart; - } - - /** - * Returns whether this DocBlock is the end of a Template section. - * - * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality. - * - * @return boolean - */ - public function isTemplateEnd() - { - return $this->isTemplateEnd; - } - - /** - * Returns the tags for this DocBlock. - * - * @return Tag[] - */ - public function getTags() - { - return $this->tags; - } - - /** - * Returns an array of tags matching the given name. If no tags are found - * an empty array is returned. - * - * @param string $name String to search by. - * - * @return Tag[] - */ - public function getTagsByName($name) - { - Assert::string($name); - - $result = []; - - /** @var Tag $tag */ - foreach ($this->getTags() as $tag) { - if ($tag->getName() !== $name) { - continue; - } - - $result[] = $tag; - } - - return $result; - } - - /** - * Checks if a tag of a certain type is present in this DocBlock. - * - * @param string $name Tag name to check for. - * - * @return bool - */ - public function hasTag($name) - { - Assert::string($name); - - /** @var Tag $tag */ - foreach ($this->getTags() as $tag) { - if ($tag->getName() === $name) { - return true; - } - } - - return false; - } - - /** - * Remove a tag from this DocBlock. - * - * @param Tag $tag The tag to remove. - * - * @return void - */ - public function removeTag(Tag $tagToRemove) - { - foreach ($this->tags as $key => $tag) { - if ($tag === $tagToRemove) { - unset($this->tags[$key]); - break; - } - } - } - - /** - * Adds a tag to this DocBlock. - * - * @param Tag $tag The tag to add. - * - * @return void - */ - private function addTag(Tag $tag) - { - $this->tags[] = $tag; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php deleted file mode 100644 index 25a79e00..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php +++ /dev/null @@ -1,114 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock\Tags\Formatter; -use phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter; -use Webmozart\Assert\Assert; - -/** - * Object representing to description for a DocBlock. - * - * A Description object can consist of plain text but can also include tags. A Description Formatter can then combine - * a body template with sprintf-style placeholders together with formatted tags in order to reconstitute a complete - * description text using the format that you would prefer. - * - * Because parsing a Description text can be a verbose process this is handled by the {@see DescriptionFactory}. It is - * thus recommended to use that to create a Description object, like this: - * - * $description = $descriptionFactory->create('This is a {@see Description}', $context); - * - * The description factory will interpret the given body and create a body template and list of tags from them, and pass - * that onto the constructor if this class. - * - * > The $context variable is a class of type {@see \phpDocumentor\Reflection\Types\Context} and contains the namespace - * > and the namespace aliases that apply to this DocBlock. These are used by the Factory to resolve and expand partial - * > type names and FQSENs. - * - * If you do not want to use the DescriptionFactory you can pass a body template and tag listing like this: - * - * $description = new Description( - * 'This is a %1$s', - * [ new See(new Fqsen('\phpDocumentor\Reflection\DocBlock\Description')) ] - * ); - * - * It is generally recommended to use the Factory as that will also apply escaping rules, while the Description object - * is mainly responsible for rendering. - * - * @see DescriptionFactory to create a new Description. - * @see Description\Formatter for the formatting of the body and tags. - */ -class Description -{ - /** @var string */ - private $bodyTemplate; - - /** @var Tag[] */ - private $tags; - - /** - * Initializes a Description with its body (template) and a listing of the tags used in the body template. - * - * @param string $bodyTemplate - * @param Tag[] $tags - */ - public function __construct($bodyTemplate, array $tags = []) - { - Assert::string($bodyTemplate); - - $this->bodyTemplate = $bodyTemplate; - $this->tags = $tags; - } - - /** - * Returns the tags for this DocBlock. - * - * @return Tag[] - */ - public function getTags() - { - return $this->tags; - } - - /** - * Renders this description as a string where the provided formatter will format the tags in the expected string - * format. - * - * @param Formatter|null $formatter - * - * @return string - */ - public function render(Formatter $formatter = null) - { - if ($formatter === null) { - $formatter = new PassthroughFormatter(); - } - - $tags = []; - foreach ($this->tags as $tag) { - $tags[] = '{' . $formatter->format($tag) . '}'; - } - - return vsprintf($this->bodyTemplate, $tags); - } - - /** - * Returns a plain string representation of this description. - * - * @return string - */ - public function __toString() - { - return $this->render(); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php deleted file mode 100644 index 48f9c219..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php +++ /dev/null @@ -1,191 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\Types\Context as TypeContext; - -/** - * Creates a new Description object given a body of text. - * - * Descriptions in phpDocumentor are somewhat complex entities as they can contain one or more tags inside their - * body that can be replaced with a readable output. The replacing is done by passing a Formatter object to the - * Description object's `render` method. - * - * In addition to the above does a Description support two types of escape sequences: - * - * 1. `{@}` to escape the `@` character to prevent it from being interpreted as part of a tag, i.e. `{{@}link}` - * 2. `{}` to escape the `}` character, this can be used if you want to use the `}` character in the description - * of an inline tag. - * - * If a body consists of multiple lines then this factory will also remove any superfluous whitespace at the beginning - * of each line while maintaining any indentation that is used. This will prevent formatting parsers from tripping - * over unexpected spaces as can be observed with tag descriptions. - */ -class DescriptionFactory -{ - /** @var TagFactory */ - private $tagFactory; - - /** - * Initializes this factory with the means to construct (inline) tags. - * - * @param TagFactory $tagFactory - */ - public function __construct(TagFactory $tagFactory) - { - $this->tagFactory = $tagFactory; - } - - /** - * Returns the parsed text of this description. - * - * @param string $contents - * @param TypeContext $context - * - * @return Description - */ - public function create($contents, TypeContext $context = null) - { - list($text, $tags) = $this->parse($this->lex($contents), $context); - - return new Description($text, $tags); - } - - /** - * Strips the contents from superfluous whitespace and splits the description into a series of tokens. - * - * @param string $contents - * - * @return string[] A series of tokens of which the description text is composed. - */ - private function lex($contents) - { - $contents = $this->removeSuperfluousStartingWhitespace($contents); - - // performance optimalization; if there is no inline tag, don't bother splitting it up. - if (strpos($contents, '{@') === false) { - return [$contents]; - } - - return preg_split( - '/\{ - # "{@}" is not a valid inline tag. This ensures that we do not treat it as one, but treat it literally. - (?!@\}) - # We want to capture the whole tag line, but without the inline tag delimiters. - (\@ - # Match everything up to the next delimiter. - [^{}]* - # Nested inline tag content should not be captured, or it will appear in the result separately. - (?: - # Match nested inline tags. - (?: - # Because we did not catch the tag delimiters earlier, we must be explicit with them here. - # Notice that this also matches "{}", as a way to later introduce it as an escape sequence. - \{(?1)?\} - | - # Make sure we match hanging "{". - \{ - ) - # Match content after the nested inline tag. - [^{}]* - )* # If there are more inline tags, match them as well. We use "*" since there may not be any - # nested inline tags. - ) - \}/Sux', - $contents, - null, - PREG_SPLIT_DELIM_CAPTURE - ); - } - - /** - * Parses the stream of tokens in to a new set of tokens containing Tags. - * - * @param string[] $tokens - * @param TypeContext $context - * - * @return string[]|Tag[] - */ - private function parse($tokens, TypeContext $context) - { - $count = count($tokens); - $tagCount = 0; - $tags = []; - - for ($i = 1; $i < $count; $i += 2) { - $tags[] = $this->tagFactory->create($tokens[$i], $context); - $tokens[$i] = '%' . ++$tagCount . '$s'; - } - - //In order to allow "literal" inline tags, the otherwise invalid - //sequence "{@}" is changed to "@", and "{}" is changed to "}". - //"%" is escaped to "%%" because of vsprintf. - //See unit tests for examples. - for ($i = 0; $i < $count; $i += 2) { - $tokens[$i] = str_replace(['{@}', '{}', '%'], ['@', '}', '%%'], $tokens[$i]); - } - - return [implode('', $tokens), $tags]; - } - - /** - * Removes the superfluous from a multi-line description. - * - * When a description has more than one line then it can happen that the second and subsequent lines have an - * additional indentation. This is commonly in use with tags like this: - * - * {@}since 1.1.0 This is an example - * description where we have an - * indentation in the second and - * subsequent lines. - * - * If we do not normalize the indentation then we have superfluous whitespace on the second and subsequent - * lines and this may cause rendering issues when, for example, using a Markdown converter. - * - * @param string $contents - * - * @return string - */ - private function removeSuperfluousStartingWhitespace($contents) - { - $lines = explode("\n", $contents); - - // if there is only one line then we don't have lines with superfluous whitespace and - // can use the contents as-is - if (count($lines) <= 1) { - return $contents; - } - - // determine how many whitespace characters need to be stripped - $startingSpaceCount = 9999999; - for ($i = 1; $i < count($lines); $i++) { - // lines with a no length do not count as they are not indented at all - if (strlen(trim($lines[$i])) === 0) { - continue; - } - - // determine the number of prefixing spaces by checking the difference in line length before and after - // an ltrim - $startingSpaceCount = min($startingSpaceCount, strlen($lines[$i]) - strlen(ltrim($lines[$i]))); - } - - // strip the number of spaces from each line - if ($startingSpaceCount > 0) { - for ($i = 1; $i < count($lines); $i++) { - $lines[$i] = substr($lines[$i], $startingSpaceCount); - } - } - - return implode("\n", $lines); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php deleted file mode 100644 index 571ed749..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php +++ /dev/null @@ -1,170 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock\Tags\Example; - -/** - * Class used to find an example file's location based on a given ExampleDescriptor. - */ -class ExampleFinder -{ - /** @var string */ - private $sourceDirectory = ''; - - /** @var string[] */ - private $exampleDirectories = []; - - /** - * Attempts to find the example contents for the given descriptor. - * - * @param Example $example - * - * @return string - */ - public function find(Example $example) - { - $filename = $example->getFilePath(); - - $file = $this->getExampleFileContents($filename); - if (!$file) { - return "** File not found : {$filename} **"; - } - - return implode('', array_slice($file, $example->getStartingLine() - 1, $example->getLineCount())); - } - - /** - * Registers the project's root directory where an 'examples' folder can be expected. - * - * @param string $directory - * - * @return void - */ - public function setSourceDirectory($directory = '') - { - $this->sourceDirectory = $directory; - } - - /** - * Returns the project's root directory where an 'examples' folder can be expected. - * - * @return string - */ - public function getSourceDirectory() - { - return $this->sourceDirectory; - } - - /** - * Registers a series of directories that may contain examples. - * - * @param string[] $directories - */ - public function setExampleDirectories(array $directories) - { - $this->exampleDirectories = $directories; - } - - /** - * Returns a series of directories that may contain examples. - * - * @return string[] - */ - public function getExampleDirectories() - { - return $this->exampleDirectories; - } - - /** - * Attempts to find the requested example file and returns its contents or null if no file was found. - * - * This method will try several methods in search of the given example file, the first one it encounters is - * returned: - * - * 1. Iterates through all examples folders for the given filename - * 2. Checks the source folder for the given filename - * 3. Checks the 'examples' folder in the current working directory for examples - * 4. Checks the path relative to the current working directory for the given filename - * - * @param string $filename - * - * @return string|null - */ - private function getExampleFileContents($filename) - { - $normalizedPath = null; - - foreach ($this->exampleDirectories as $directory) { - $exampleFileFromConfig = $this->constructExamplePath($directory, $filename); - if (is_readable($exampleFileFromConfig)) { - $normalizedPath = $exampleFileFromConfig; - break; - } - } - - if (!$normalizedPath) { - if (is_readable($this->getExamplePathFromSource($filename))) { - $normalizedPath = $this->getExamplePathFromSource($filename); - } elseif (is_readable($this->getExamplePathFromExampleDirectory($filename))) { - $normalizedPath = $this->getExamplePathFromExampleDirectory($filename); - } elseif (is_readable($filename)) { - $normalizedPath = $filename; - } - } - - return $normalizedPath && is_readable($normalizedPath) ? file($normalizedPath) : null; - } - - /** - * Get example filepath based on the example directory inside your project. - * - * @param string $file - * - * @return string - */ - private function getExamplePathFromExampleDirectory($file) - { - return getcwd() . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $file; - } - - /** - * Returns a path to the example file in the given directory.. - * - * @param string $directory - * @param string $file - * - * @return string - */ - private function constructExamplePath($directory, $file) - { - return rtrim($directory, '\\/') . DIRECTORY_SEPARATOR . $file; - } - - /** - * Get example filepath based on sourcecode. - * - * @param string $file - * - * @return string - */ - private function getExamplePathFromSource($file) - { - return sprintf( - '%s%s%s', - trim($this->getSourceDirectory(), '\\/'), - DIRECTORY_SEPARATOR, - trim($file, '"') - ); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php deleted file mode 100644 index 0f355f58..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php +++ /dev/null @@ -1,155 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock; -use Webmozart\Assert\Assert; - -/** - * Converts a DocBlock back from an object to a complete DocComment including Asterisks. - */ -class Serializer -{ - /** @var string The string to indent the comment with. */ - protected $indentString = ' '; - - /** @var int The number of times the indent string is repeated. */ - protected $indent = 0; - - /** @var bool Whether to indent the first line with the given indent amount and string. */ - protected $isFirstLineIndented = true; - - /** @var int|null The max length of a line. */ - protected $lineLength = null; - - /** @var DocBlock\Tags\Formatter A custom tag formatter. */ - protected $tagFormatter = null; - - /** - * Create a Serializer instance. - * - * @param int $indent The number of times the indent string is repeated. - * @param string $indentString The string to indent the comment with. - * @param bool $indentFirstLine Whether to indent the first line. - * @param int|null $lineLength The max length of a line or NULL to disable line wrapping. - * @param DocBlock\Tags\Formatter $tagFormatter A custom tag formatter, defaults to PassthroughFormatter. - */ - public function __construct($indent = 0, $indentString = ' ', $indentFirstLine = true, $lineLength = null, $tagFormatter = null) - { - Assert::integer($indent); - Assert::string($indentString); - Assert::boolean($indentFirstLine); - Assert::nullOrInteger($lineLength); - Assert::nullOrIsInstanceOf($tagFormatter, 'phpDocumentor\Reflection\DocBlock\Tags\Formatter'); - - $this->indent = $indent; - $this->indentString = $indentString; - $this->isFirstLineIndented = $indentFirstLine; - $this->lineLength = $lineLength; - $this->tagFormatter = $tagFormatter ?: new DocBlock\Tags\Formatter\PassthroughFormatter(); - } - - /** - * Generate a DocBlock comment. - * - * @param DocBlock $docblock The DocBlock to serialize. - * - * @return string The serialized doc block. - */ - public function getDocComment(DocBlock $docblock) - { - $indent = str_repeat($this->indentString, $this->indent); - $firstIndent = $this->isFirstLineIndented ? $indent : ''; - // 3 === strlen(' * ') - $wrapLength = $this->lineLength ? $this->lineLength - strlen($indent) - 3 : null; - - $text = $this->removeTrailingSpaces( - $indent, - $this->addAsterisksForEachLine( - $indent, - $this->getSummaryAndDescriptionTextBlock($docblock, $wrapLength) - ) - ); - - $comment = "{$firstIndent}/**\n"; - if ($text) { - $comment .= "{$indent} * {$text}\n"; - $comment .= "{$indent} *\n"; - } - - $comment = $this->addTagBlock($docblock, $wrapLength, $indent, $comment); - $comment .= $indent . ' */'; - - return $comment; - } - - /** - * @param $indent - * @param $text - * @return mixed - */ - private function removeTrailingSpaces($indent, $text) - { - return str_replace("\n{$indent} * \n", "\n{$indent} *\n", $text); - } - - /** - * @param $indent - * @param $text - * @return mixed - */ - private function addAsterisksForEachLine($indent, $text) - { - return str_replace("\n", "\n{$indent} * ", $text); - } - - /** - * @param DocBlock $docblock - * @param $wrapLength - * @return string - */ - private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, $wrapLength) - { - $text = $docblock->getSummary() . ((string)$docblock->getDescription() ? "\n\n" . $docblock->getDescription() - : ''); - if ($wrapLength !== null) { - $text = wordwrap($text, $wrapLength); - return $text; - } - - return $text; - } - - /** - * @param DocBlock $docblock - * @param $wrapLength - * @param $indent - * @param $comment - * @return string - */ - private function addTagBlock(DocBlock $docblock, $wrapLength, $indent, $comment) - { - foreach ($docblock->getTags() as $tag) { - $tagText = $this->tagFormatter->format($tag); - if ($wrapLength !== null) { - $tagText = wordwrap($tagText, $wrapLength); - } - - $tagText = str_replace("\n", "\n{$indent} * ", $tagText); - - $comment .= "{$indent} * {$tagText}\n"; - } - - return $comment; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php deleted file mode 100644 index 5a8143cf..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php +++ /dev/null @@ -1,319 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock\Tags\Factory\StaticMethod; -use phpDocumentor\Reflection\DocBlock\Tags\Generic; -use phpDocumentor\Reflection\FqsenResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Creates a Tag object given the contents of a tag. - * - * This Factory is capable of determining the appropriate class for a tag and instantiate it using its `create` - * factory method. The `create` factory method of a Tag can have a variable number of arguments; this way you can - * pass the dependencies that you need to construct a tag object. - * - * > Important: each parameter in addition to the body variable for the `create` method must default to null, otherwise - * > it violates the constraint with the interface; it is recommended to use the {@see Assert::notNull()} method to - * > verify that a dependency is actually passed. - * - * This Factory also features a Service Locator component that is used to pass the right dependencies to the - * `create` method of a tag; each dependency should be registered as a service or as a parameter. - * - * When you want to use a Tag of your own with custom handling you need to call the `registerTagHandler` method, pass - * the name of the tag and a Fully Qualified Class Name pointing to a class that implements the Tag interface. - */ -final class StandardTagFactory implements TagFactory -{ - /** PCRE regular expression matching a tag name. */ - const REGEX_TAGNAME = '[\w\-\_\\\\]+'; - - /** - * @var string[] An array with a tag as a key, and an FQCN to a class that handles it as an array value. - */ - private $tagHandlerMappings = [ - 'author' => '\phpDocumentor\Reflection\DocBlock\Tags\Author', - 'covers' => '\phpDocumentor\Reflection\DocBlock\Tags\Covers', - 'deprecated' => '\phpDocumentor\Reflection\DocBlock\Tags\Deprecated', - // 'example' => '\phpDocumentor\Reflection\DocBlock\Tags\Example', - 'link' => '\phpDocumentor\Reflection\DocBlock\Tags\Link', - 'method' => '\phpDocumentor\Reflection\DocBlock\Tags\Method', - 'param' => '\phpDocumentor\Reflection\DocBlock\Tags\Param', - 'property-read' => '\phpDocumentor\Reflection\DocBlock\Tags\PropertyRead', - 'property' => '\phpDocumentor\Reflection\DocBlock\Tags\Property', - 'property-write' => '\phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite', - 'return' => '\phpDocumentor\Reflection\DocBlock\Tags\Return_', - 'see' => '\phpDocumentor\Reflection\DocBlock\Tags\See', - 'since' => '\phpDocumentor\Reflection\DocBlock\Tags\Since', - 'source' => '\phpDocumentor\Reflection\DocBlock\Tags\Source', - 'throw' => '\phpDocumentor\Reflection\DocBlock\Tags\Throws', - 'throws' => '\phpDocumentor\Reflection\DocBlock\Tags\Throws', - 'uses' => '\phpDocumentor\Reflection\DocBlock\Tags\Uses', - 'var' => '\phpDocumentor\Reflection\DocBlock\Tags\Var_', - 'version' => '\phpDocumentor\Reflection\DocBlock\Tags\Version' - ]; - - /** - * @var \ReflectionParameter[][] a lazy-loading cache containing parameters for each tagHandler that has been used. - */ - private $tagHandlerParameterCache = []; - - /** - * @var FqsenResolver - */ - private $fqsenResolver; - - /** - * @var mixed[] an array representing a simple Service Locator where we can store parameters and - * services that can be inserted into the Factory Methods of Tag Handlers. - */ - private $serviceLocator = []; - - /** - * Initialize this tag factory with the means to resolve an FQSEN and optionally a list of tag handlers. - * - * If no tag handlers are provided than the default list in the {@see self::$tagHandlerMappings} property - * is used. - * - * @param FqsenResolver $fqsenResolver - * @param string[] $tagHandlers - * - * @see self::registerTagHandler() to add a new tag handler to the existing default list. - */ - public function __construct(FqsenResolver $fqsenResolver, array $tagHandlers = null) - { - $this->fqsenResolver = $fqsenResolver; - if ($tagHandlers !== null) { - $this->tagHandlerMappings = $tagHandlers; - } - - $this->addService($fqsenResolver, FqsenResolver::class); - } - - /** - * {@inheritDoc} - */ - public function create($tagLine, TypeContext $context = null) - { - if (! $context) { - $context = new TypeContext(''); - } - - list($tagName, $tagBody) = $this->extractTagParts($tagLine); - - if ($tagBody !== '' && $tagBody[0] === '[') { - throw new \InvalidArgumentException( - 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' - ); - } - - return $this->createTag($tagBody, $tagName, $context); - } - - /** - * {@inheritDoc} - */ - public function addParameter($name, $value) - { - $this->serviceLocator[$name] = $value; - } - - /** - * {@inheritDoc} - */ - public function addService($service, $alias = null) - { - $this->serviceLocator[$alias ?: get_class($service)] = $service; - } - - /** - * {@inheritDoc} - */ - public function registerTagHandler($tagName, $handler) - { - Assert::stringNotEmpty($tagName); - Assert::stringNotEmpty($handler); - Assert::classExists($handler); - Assert::implementsInterface($handler, StaticMethod::class); - - if (strpos($tagName, '\\') && $tagName[0] !== '\\') { - throw new \InvalidArgumentException( - 'A namespaced tag must have a leading backslash as it must be fully qualified' - ); - } - - $this->tagHandlerMappings[$tagName] = $handler; - } - - /** - * Extracts all components for a tag. - * - * @param string $tagLine - * - * @return string[] - */ - private function extractTagParts($tagLine) - { - $matches = []; - if (! preg_match('/^@(' . self::REGEX_TAGNAME . ')(?:\s*([^\s].*)|$)/us', $tagLine, $matches)) { - throw new \InvalidArgumentException( - 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' - ); - } - - if (count($matches) < 3) { - $matches[] = ''; - } - - return array_slice($matches, 1); - } - - /** - * Creates a new tag object with the given name and body or returns null if the tag name was recognized but the - * body was invalid. - * - * @param string $body - * @param string $name - * @param TypeContext $context - * - * @return Tag|null - */ - private function createTag($body, $name, TypeContext $context) - { - $handlerClassName = $this->findHandlerClassName($name, $context); - $arguments = $this->getArgumentsForParametersFromWiring( - $this->fetchParametersForHandlerFactoryMethod($handlerClassName), - $this->getServiceLocatorWithDynamicParameters($context, $name, $body) - ); - - return call_user_func_array([$handlerClassName, 'create'], $arguments); - } - - /** - * Determines the Fully Qualified Class Name of the Factory or Tag (containing a Factory Method `create`). - * - * @param string $tagName - * @param TypeContext $context - * - * @return string - */ - private function findHandlerClassName($tagName, TypeContext $context) - { - $handlerClassName = Generic::class; - if (isset($this->tagHandlerMappings[$tagName])) { - $handlerClassName = $this->tagHandlerMappings[$tagName]; - } elseif ($this->isAnnotation($tagName)) { - // TODO: Annotation support is planned for a later stage and as such is disabled for now - // $tagName = (string)$this->fqsenResolver->resolve($tagName, $context); - // if (isset($this->annotationMappings[$tagName])) { - // $handlerClassName = $this->annotationMappings[$tagName]; - // } - } - - return $handlerClassName; - } - - /** - * Retrieves the arguments that need to be passed to the Factory Method with the given Parameters. - * - * @param \ReflectionParameter[] $parameters - * @param mixed[] $locator - * - * @return mixed[] A series of values that can be passed to the Factory Method of the tag whose parameters - * is provided with this method. - */ - private function getArgumentsForParametersFromWiring($parameters, $locator) - { - $arguments = []; - foreach ($parameters as $index => $parameter) { - $typeHint = $parameter->getClass() ? $parameter->getClass()->getName() : null; - if (isset($locator[$typeHint])) { - $arguments[] = $locator[$typeHint]; - continue; - } - - $parameterName = $parameter->getName(); - if (isset($locator[$parameterName])) { - $arguments[] = $locator[$parameterName]; - continue; - } - - $arguments[] = null; - } - - return $arguments; - } - - /** - * Retrieves a series of ReflectionParameter objects for the static 'create' method of the given - * tag handler class name. - * - * @param string $handlerClassName - * - * @return \ReflectionParameter[] - */ - private function fetchParametersForHandlerFactoryMethod($handlerClassName) - { - if (! isset($this->tagHandlerParameterCache[$handlerClassName])) { - $methodReflection = new \ReflectionMethod($handlerClassName, 'create'); - $this->tagHandlerParameterCache[$handlerClassName] = $methodReflection->getParameters(); - } - - return $this->tagHandlerParameterCache[$handlerClassName]; - } - - /** - * Returns a copy of this class' Service Locator with added dynamic parameters, such as the tag's name, body and - * Context. - * - * @param TypeContext $context The Context (namespace and aliasses) that may be passed and is used to resolve FQSENs. - * @param string $tagName The name of the tag that may be passed onto the factory method of the Tag class. - * @param string $tagBody The body of the tag that may be passed onto the factory method of the Tag class. - * - * @return mixed[] - */ - private function getServiceLocatorWithDynamicParameters(TypeContext $context, $tagName, $tagBody) - { - $locator = array_merge( - $this->serviceLocator, - [ - 'name' => $tagName, - 'body' => $tagBody, - TypeContext::class => $context - ] - ); - - return $locator; - } - - /** - * Returns whether the given tag belongs to an annotation. - * - * @param string $tagContent - * - * @todo this method should be populated once we implement Annotation notation support. - * - * @return bool - */ - private function isAnnotation($tagContent) - { - // 1. Contains a namespace separator - // 2. Contains parenthesis - // 3. Is present in a list of known annotations (make the algorithm smart by first checking is the last part - // of the annotation class name matches the found tag name - - return false; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php deleted file mode 100644 index e7653678..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php +++ /dev/null @@ -1,26 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -interface Tag -{ - public function getName(); - - public static function create($body); - - public function render(Formatter $formatter = null); - - public function __toString(); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php deleted file mode 100644 index 3c1d1132..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php +++ /dev/null @@ -1,93 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\Types\Context as TypeContext; - -interface TagFactory -{ - /** - * Adds a parameter to the service locator that can be injected in a tag's factory method. - * - * When calling a tag's "create" method we always check the signature for dependencies to inject. One way is to - * typehint a parameter in the signature so that we can use that interface or class name to inject a dependency - * (see {@see addService()} for more information on that). - * - * Another way is to check the name of the argument against the names in the Service Locator. With this method - * you can add a variable that will be inserted when a tag's create method is not typehinted and has a matching - * name. - * - * Be aware that there are two reserved names: - * - * - name, representing the name of the tag. - * - body, representing the complete body of the tag. - * - * These parameters are injected at the last moment and will override any existing parameter with those names. - * - * @param string $name - * @param mixed $value - * - * @return void - */ - public function addParameter($name, $value); - - /** - * Registers a service with the Service Locator using the FQCN of the class or the alias, if provided. - * - * When calling a tag's "create" method we always check the signature for dependencies to inject. If a parameter - * has a typehint then the ServiceLocator is queried to see if a Service is registered for that typehint. - * - * Because interfaces are regularly used as type-hints this method provides an alias parameter; if the FQCN of the - * interface is passed as alias then every time that interface is requested the provided service will be returned. - * - * @param object $service - * @param string $alias - * - * @return void - */ - public function addService($service); - - /** - * Factory method responsible for instantiating the correct sub type. - * - * @param string $tagLine The text for this tag, including description. - * @param TypeContext $context - * - * @throws \InvalidArgumentException if an invalid tag line was presented. - * - * @return Tag A new tag object. - */ - public function create($tagLine, TypeContext $context = null); - - /** - * Registers a handler for tags. - * - * If you want to use your own tags then you can use this method to instruct the TagFactory to register the name - * of a tag with the FQCN of a 'Tag Handler'. The Tag handler should implement the {@see Tag} interface (and thus - * the create method). - * - * @param string $tagName Name of tag to register a handler for. When registering a namespaced tag, the full - * name, along with a prefixing slash MUST be provided. - * @param string $handler FQCN of handler. - * - * @throws \InvalidArgumentException if the tag name is not a string - * @throws \InvalidArgumentException if the tag name is namespaced (contains backslashes) but does not start with - * a backslash - * @throws \InvalidArgumentException if the handler is not a string - * @throws \InvalidArgumentException if the handler is not an existing class - * @throws \InvalidArgumentException if the handler does not implement the {@see Tag} interface - * - * @return void - */ - public function registerTagHandler($tagName, $handler); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php deleted file mode 100644 index 29d7f1de..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php +++ /dev/null @@ -1,100 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use Webmozart\Assert\Assert; - -/** - * Reflection class for an {@}author tag in a Docblock. - */ -final class Author extends BaseTag implements Factory\StaticMethod -{ - /** @var string register that this is the author tag. */ - protected $name = 'author'; - - /** @var string The name of the author */ - private $authorName = ''; - - /** @var string The email of the author */ - private $authorEmail = ''; - - /** - * Initializes this tag with the author name and e-mail. - * - * @param string $authorName - * @param string $authorEmail - */ - public function __construct($authorName, $authorEmail) - { - Assert::string($authorName); - Assert::string($authorEmail); - if ($authorEmail && !filter_var($authorEmail, FILTER_VALIDATE_EMAIL)) { - throw new \InvalidArgumentException('The author tag does not have a valid e-mail address'); - } - - $this->authorName = $authorName; - $this->authorEmail = $authorEmail; - } - - /** - * Gets the author's name. - * - * @return string The author's name. - */ - public function getAuthorName() - { - return $this->authorName; - } - - /** - * Returns the author's email. - * - * @return string The author's email. - */ - public function getEmail() - { - return $this->authorEmail; - } - - /** - * Returns this tag in string form. - * - * @return string - */ - public function __toString() - { - return $this->authorName . (strlen($this->authorEmail) ? ' <' . $this->authorEmail . '>' : ''); - } - - /** - * Attempts to create a new Author object based on †he tag body. - * - * @param string $body - * - * @return static - */ - public static function create($body) - { - Assert::string($body); - - $splitTagContent = preg_match('/^([^\<]*)(?:\<([^\>]*)\>)?$/u', $body, $matches); - if (!$splitTagContent) { - return null; - } - - $authorName = trim($matches[1]); - $email = isset($matches[2]) ? trim($matches[2]) : ''; - - return new static($authorName, $email); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php deleted file mode 100644 index 14bb7177..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php +++ /dev/null @@ -1,52 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock; -use phpDocumentor\Reflection\DocBlock\Description; - -/** - * Parses a tag definition for a DocBlock. - */ -abstract class BaseTag implements DocBlock\Tag -{ - /** @var string Name of the tag */ - protected $name = ''; - - /** @var Description|null Description of the tag. */ - protected $description; - - /** - * Gets the name of this tag. - * - * @return string The name of this tag. - */ - public function getName() - { - return $this->name; - } - - public function getDescription() - { - return $this->description; - } - - public function render(Formatter $formatter = null) - { - if ($formatter === null) { - $formatter = new Formatter\PassthroughFormatter(); - } - - return $formatter->format($this); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php deleted file mode 100644 index 8d65403f..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php +++ /dev/null @@ -1,83 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Fqsen; -use phpDocumentor\Reflection\FqsenResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a @covers tag in a Docblock. - */ -final class Covers extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'covers'; - - /** @var Fqsen */ - private $refers = null; - - /** - * Initializes this tag. - * - * @param Fqsen $refers - * @param Description $description - */ - public function __construct(Fqsen $refers, Description $description = null) - { - $this->refers = $refers; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - DescriptionFactory $descriptionFactory = null, - FqsenResolver $resolver = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::notEmpty($body); - - $parts = preg_split('/\s+/Su', $body, 2); - - return new static( - $resolver->resolve($parts[0], $context), - $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context) - ); - } - - /** - * Returns the structural element this tag refers to. - * - * @return Fqsen - */ - public function getReference() - { - return $this->refers; - } - - /** - * Returns a string representation of this tag. - * - * @return string - */ - public function __toString() - { - return $this->refers . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php deleted file mode 100644 index 822c3050..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php +++ /dev/null @@ -1,97 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}deprecated tag in a Docblock. - */ -final class Deprecated extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'deprecated'; - - /** - * PCRE regular expression matching a version vector. - * Assumes the "x" modifier. - */ - const REGEX_VECTOR = '(?: - # Normal release vectors. - \d\S* - | - # VCS version vectors. Per PHPCS, they are expected to - # follow the form of the VCS name, followed by ":", followed - # by the version vector itself. - # By convention, popular VCSes like CVS, SVN and GIT use "$" - # around the actual version vector. - [^\s\:]+\:\s*\$[^\$]+\$ - )'; - - /** @var string The version vector. */ - private $version = ''; - - public function __construct($version = null, Description $description = null) - { - Assert::nullOrStringNotEmpty($version); - - $this->version = $version; - $this->description = $description; - } - - /** - * @return static - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); - if (empty($body)) { - return new static(); - } - - $matches = []; - if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { - return new static( - null, - null !== $descriptionFactory ? $descriptionFactory->create($body, $context) : null - ); - } - - return new static( - $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) - ); - } - - /** - * Gets the version section of the tag. - * - * @return string - */ - public function getVersion() - { - return $this->version; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php deleted file mode 100644 index ecb199b4..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php +++ /dev/null @@ -1,176 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\Tag; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}example tag in a Docblock. - */ -final class Example extends BaseTag -{ - /** - * @var string Path to a file to use as an example. May also be an absolute URI. - */ - private $filePath; - - /** - * @var bool Whether the file path component represents an URI. This determines how the file portion - * appears at {@link getContent()}. - */ - private $isURI = false; - - /** - * @var int - */ - private $startingLine; - - /** - * @var int - */ - private $lineCount; - - public function __construct($filePath, $isURI, $startingLine, $lineCount, $description) - { - Assert::notEmpty($filePath); - Assert::integer($startingLine); - Assert::greaterThanEq($startingLine, 0); - - $this->filePath = $filePath; - $this->startingLine = $startingLine; - $this->lineCount = $lineCount; - $this->name = 'example'; - if ($description !== null) { - $this->description = trim($description); - } - - $this->isURI = $isURI; - } - - /** - * {@inheritdoc} - */ - public function getContent() - { - if (null === $this->description) { - $filePath = '"' . $this->filePath . '"'; - if ($this->isURI) { - $filePath = $this->isUriRelative($this->filePath) - ? str_replace('%2F', '/', rawurlencode($this->filePath)) - :$this->filePath; - } - - return trim($filePath . ' ' . parent::getDescription()); - } - - return $this->description; - } - - /** - * {@inheritdoc} - */ - public static function create($body) - { - // File component: File path in quotes or File URI / Source information - if (! preg_match('/^(?:\"([^\"]+)\"|(\S+))(?:\s+(.*))?$/sux', $body, $matches)) { - return null; - } - - $filePath = null; - $fileUri = null; - if ('' !== $matches[1]) { - $filePath = $matches[1]; - } else { - $fileUri = $matches[2]; - } - - $startingLine = 1; - $lineCount = null; - $description = null; - - if (array_key_exists(3, $matches)) { - $description = $matches[3]; - - // Starting line / Number of lines / Description - if (preg_match('/^([1-9]\d*)(?:\s+((?1))\s*)?(.*)$/sux', $matches[3], $contentMatches)) { - $startingLine = (int)$contentMatches[1]; - if (isset($contentMatches[2]) && $contentMatches[2] !== '') { - $lineCount = (int)$contentMatches[2]; - } - - if (array_key_exists(3, $contentMatches)) { - $description = $contentMatches[3]; - } - } - } - - return new static( - $filePath !== null?$filePath:$fileUri, - $fileUri !== null, - $startingLine, - $lineCount, - $description - ); - } - - /** - * Returns the file path. - * - * @return string Path to a file to use as an example. - * May also be an absolute URI. - */ - public function getFilePath() - { - return $this->filePath; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->filePath . ($this->description ? ' ' . $this->description : ''); - } - - /** - * Returns true if the provided URI is relative or contains a complete scheme (and thus is absolute). - * - * @param string $uri - * - * @return bool - */ - private function isUriRelative($uri) - { - return false === strpos($uri, ':'); - } - - /** - * @return int - */ - public function getStartingLine() - { - return $this->startingLine; - } - - /** - * @return int - */ - public function getLineCount() - { - return $this->lineCount; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php deleted file mode 100644 index 98aea455..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php +++ /dev/null @@ -1,18 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Factory; - -interface StaticMethod -{ - public static function create($body); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php deleted file mode 100644 index b9ca0b8a..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php +++ /dev/null @@ -1,18 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Factory; - -interface Strategy -{ - public function create($body); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php deleted file mode 100644 index 64b2c603..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Tag; - -interface Formatter -{ - /** - * Formats a tag into a string representation according to a specific format, such as Markdown. - * - * @param Tag $tag - * - * @return string - */ - public function format(Tag $tag); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php deleted file mode 100644 index ceb40cc3..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php +++ /dev/null @@ -1,47 +0,0 @@ - - * @copyright 2017 Mike van Riel - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -use phpDocumentor\Reflection\DocBlock\Tag; -use phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -class AlignFormatter implements Formatter -{ - /** @var int The maximum tag name length. */ - protected $maxLen = 0; - - /** - * Constructor. - * - * @param Tag[] $tags All tags that should later be aligned with the formatter. - */ - public function __construct(array $tags) - { - foreach ($tags as $tag) { - $this->maxLen = max($this->maxLen, strlen($tag->getName())); - } - } - - /** - * Formats the given tag to return a simple plain text version. - * - * @param Tag $tag - * - * @return string - */ - public function format(Tag $tag) - { - return '@' . $tag->getName() . str_repeat(' ', $this->maxLen - strlen($tag->getName()) + 1) . (string)$tag; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php deleted file mode 100644 index 4e2c5762..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -use phpDocumentor\Reflection\DocBlock\Tag; -use phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -class PassthroughFormatter implements Formatter -{ - /** - * Formats the given tag to return a simple plain text version. - * - * @param Tag $tag - * - * @return string - */ - public function format(Tag $tag) - { - return trim('@' . $tag->getName() . ' ' . (string)$tag); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php deleted file mode 100644 index e4c53e00..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php +++ /dev/null @@ -1,91 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\DocBlock\StandardTagFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Parses a tag definition for a DocBlock. - */ -class Generic extends BaseTag implements Factory\StaticMethod -{ - /** - * Parses a tag and populates the member variables. - * - * @param string $name Name of the tag. - * @param Description $description The contents of the given tag. - */ - public function __construct($name, Description $description = null) - { - $this->validateTagName($name); - - $this->name = $name; - $this->description = $description; - } - - /** - * Creates a new tag that represents any unknown tag type. - * - * @param string $body - * @param string $name - * @param DescriptionFactory $descriptionFactory - * @param TypeContext $context - * - * @return static - */ - public static function create( - $body, - $name = '', - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::stringNotEmpty($name); - Assert::notNull($descriptionFactory); - - $description = $descriptionFactory && $body ? $descriptionFactory->create($body, $context) : null; - - return new static($name, $description); - } - - /** - * Returns the tag as a serialized string - * - * @return string - */ - public function __toString() - { - return ($this->description ? $this->description->render() : ''); - } - - /** - * Validates if the tag name matches the expected format, otherwise throws an exception. - * - * @param string $name - * - * @return void - */ - private function validateTagName($name) - { - if (! preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) { - throw new \InvalidArgumentException( - 'The tag name "' . $name . '" is not wellformed. Tags may only consist of letters, underscores, ' - . 'hyphens and backslashes.' - ); - } - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php deleted file mode 100644 index 9c0e367e..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com) - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a @link tag in a Docblock. - */ -final class Link extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'link'; - - /** @var string */ - private $link = ''; - - /** - * Initializes a link to a URL. - * - * @param string $link - * @param Description $description - */ - public function __construct($link, Description $description = null) - { - Assert::string($link); - - $this->link = $link; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::string($body); - Assert::notNull($descriptionFactory); - - $parts = preg_split('/\s+/Su', $body, 2); - $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; - - return new static($parts[0], $description); - } - - /** - * Gets the link - * - * @return string - */ - public function getLink() - { - return $this->link; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->link . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php deleted file mode 100644 index 75225299..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php +++ /dev/null @@ -1,242 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use phpDocumentor\Reflection\Types\Void_; -use Webmozart\Assert\Assert; - -/** - * Reflection class for an {@}method in a Docblock. - */ -final class Method extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'method'; - - /** @var string */ - private $methodName = ''; - - /** @var string[] */ - private $arguments = []; - - /** @var bool */ - private $isStatic = false; - - /** @var Type */ - private $returnType; - - public function __construct( - $methodName, - array $arguments = [], - Type $returnType = null, - $static = false, - Description $description = null - ) { - Assert::stringNotEmpty($methodName); - Assert::boolean($static); - - if ($returnType === null) { - $returnType = new Void_(); - } - - $this->methodName = $methodName; - $this->arguments = $this->filterArguments($arguments); - $this->returnType = $returnType; - $this->isStatic = $static; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([ $typeResolver, $descriptionFactory ]); - - // 1. none or more whitespace - // 2. optionally the keyword "static" followed by whitespace - // 3. optionally a word with underscores followed by whitespace : as - // type for the return value - // 4. then optionally a word with underscores followed by () and - // whitespace : as method name as used by phpDocumentor - // 5. then a word with underscores, followed by ( and any character - // until a ) and whitespace : as method name with signature - // 6. any remaining text : as description - if (!preg_match( - '/^ - # Static keyword - # Declares a static method ONLY if type is also present - (?: - (static) - \s+ - )? - # Return type - (?: - ( - (?:[\w\|_\\\\]*\$this[\w\|_\\\\]*) - | - (?: - (?:[\w\|_\\\\]+) - # array notation - (?:\[\])* - )* - ) - \s+ - )? - # Legacy method name (not captured) - (?: - [\w_]+\(\)\s+ - )? - # Method name - ([\w\|_\\\\]+) - # Arguments - (?: - \(([^\)]*)\) - )? - \s* - # Description - (.*) - $/sux', - $body, - $matches - )) { - return null; - } - - list(, $static, $returnType, $methodName, $arguments, $description) = $matches; - - $static = $static === 'static'; - - if ($returnType === '') { - $returnType = 'void'; - } - - $returnType = $typeResolver->resolve($returnType, $context); - $description = $descriptionFactory->create($description, $context); - - if (is_string($arguments) && strlen($arguments) > 0) { - $arguments = explode(',', $arguments); - foreach ($arguments as &$argument) { - $argument = explode(' ', self::stripRestArg(trim($argument)), 2); - if ($argument[0][0] === '$') { - $argumentName = substr($argument[0], 1); - $argumentType = new Void_(); - } else { - $argumentType = $typeResolver->resolve($argument[0], $context); - $argumentName = ''; - if (isset($argument[1])) { - $argument[1] = self::stripRestArg($argument[1]); - $argumentName = substr($argument[1], 1); - } - } - - $argument = [ 'name' => $argumentName, 'type' => $argumentType]; - } - } else { - $arguments = []; - } - - return new static($methodName, $arguments, $returnType, $static, $description); - } - - /** - * Retrieves the method name. - * - * @return string - */ - public function getMethodName() - { - return $this->methodName; - } - - /** - * @return string[] - */ - public function getArguments() - { - return $this->arguments; - } - - /** - * Checks whether the method tag describes a static method or not. - * - * @return bool TRUE if the method declaration is for a static method, FALSE otherwise. - */ - public function isStatic() - { - return $this->isStatic; - } - - /** - * @return Type - */ - public function getReturnType() - { - return $this->returnType; - } - - public function __toString() - { - $arguments = []; - foreach ($this->arguments as $argument) { - $arguments[] = $argument['type'] . ' $' . $argument['name']; - } - - return trim(($this->isStatic() ? 'static ' : '') - . (string)$this->returnType . ' ' - . $this->methodName - . '(' . implode(', ', $arguments) . ')' - . ($this->description ? ' ' . $this->description->render() : '')); - } - - private function filterArguments($arguments) - { - foreach ($arguments as &$argument) { - if (is_string($argument)) { - $argument = [ 'name' => $argument ]; - } - - if (! isset($argument['type'])) { - $argument['type'] = new Void_(); - } - - $keys = array_keys($argument); - sort($keys); - if ($keys !== [ 'name', 'type' ]) { - throw new \InvalidArgumentException( - 'Arguments can only have the "name" and "type" fields, found: ' . var_export($keys, true) - ); - } - } - - return $arguments; - } - - private static function stripRestArg($argument) - { - if (strpos($argument, '...') === 0) { - $argument = trim(substr($argument, 3)); - } - - return $argument; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php deleted file mode 100644 index 7d699d88..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php +++ /dev/null @@ -1,141 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for the {@}param tag in a Docblock. - */ -final class Param extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'param'; - - /** @var Type */ - private $type; - - /** @var string */ - private $variableName = ''; - - /** @var bool determines whether this is a variadic argument */ - private $isVariadic = false; - - /** - * @param string $variableName - * @param Type $type - * @param bool $isVariadic - * @param Description $description - */ - public function __construct($variableName, Type $type = null, $isVariadic = false, Description $description = null) - { - Assert::string($variableName); - Assert::boolean($isVariadic); - - $this->variableName = $variableName; - $this->type = $type; - $this->isVariadic = $isVariadic; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - $isVariadic = false; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$' || substr($parts[0], 0, 4) === '...$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 3) === '...') { - $isVariadic = true; - $variableName = substr($variableName, 3); - } - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $isVariadic, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns whether this tag is variadic. - * - * @return boolean - */ - public function isVariadic() - { - return $this->isVariadic; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . ($this->isVariadic() ? '...' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php deleted file mode 100644 index f0ef7c07..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}property tag in a Docblock. - */ -class Property extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'property'; - - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) - { - Assert::string($variableName); - - $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php deleted file mode 100644 index e41c0c1c..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}property-read tag in a Docblock. - */ -class PropertyRead extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'property-read'; - - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) - { - Assert::string($variableName); - - $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php deleted file mode 100644 index cfdb0ed0..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}property-write tag in a Docblock. - */ -class PropertyWrite extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'property-write'; - - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) - { - Assert::string($variableName); - - $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php deleted file mode 100644 index dc7b8b6d..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php +++ /dev/null @@ -1,42 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; - -use phpDocumentor\Reflection\Fqsen as RealFqsen; - -/** - * Fqsen reference used by {@see phpDocumentor\Reflection\DocBlock\Tags\See} - */ -final class Fqsen implements Reference -{ - /** - * @var RealFqsen - */ - private $fqsen; - - /** - * Fqsen constructor. - */ - public function __construct(RealFqsen $fqsen) - { - $this->fqsen = $fqsen; - } - - /** - * @return string string representation of the referenced fqsen - */ - public function __toString() - { - return (string)$this->fqsen; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php deleted file mode 100644 index a3ffd24c..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php +++ /dev/null @@ -1,21 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; - -/** - * Interface for references in {@see phpDocumentor\Reflection\DocBlock\Tags\See} - */ -interface Reference -{ - public function __toString(); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php deleted file mode 100644 index 2671d5e1..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php +++ /dev/null @@ -1,40 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; - -use Webmozart\Assert\Assert; - -/** - * Url reference used by {@see phpDocumentor\Reflection\DocBlock\Tags\See} - */ -final class Url implements Reference -{ - /** - * @var string - */ - private $uri; - - /** - * Url constructor. - */ - public function __construct($uri) - { - Assert::stringNotEmpty($uri); - $this->uri = $uri; - } - - public function __toString() - { - return $this->uri; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php deleted file mode 100644 index ca5bda70..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php +++ /dev/null @@ -1,72 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}return tag in a Docblock. - */ -final class Return_ extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'return'; - - /** @var Type */ - private $type; - - public function __construct(Type $type, Description $description = null) - { - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/\s+/Su', $body, 2); - - $type = $typeResolver->resolve(isset($parts[0]) ? $parts[0] : '', $context); - $description = $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context); - - return new static($type, $description); - } - - /** - * Returns the type section of the variable. - * - * @return Type - */ - public function getType() - { - return $this->type; - } - - public function __toString() - { - return $this->type . ' ' . $this->description; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php deleted file mode 100644 index 9e9e723b..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php +++ /dev/null @@ -1,88 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen as FqsenRef; -use phpDocumentor\Reflection\DocBlock\Tags\Reference\Reference; -use phpDocumentor\Reflection\DocBlock\Tags\Reference\Url; -use phpDocumentor\Reflection\FqsenResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for an {@}see tag in a Docblock. - */ -class See extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'see'; - - /** @var Reference */ - protected $refers = null; - - /** - * Initializes this tag. - * - * @param Reference $refers - * @param Description $description - */ - public function __construct(Reference $refers, Description $description = null) - { - $this->refers = $refers; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - FqsenResolver $resolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$resolver, $descriptionFactory]); - - $parts = preg_split('/\s+/Su', $body, 2); - $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; - - // https://tools.ietf.org/html/rfc2396#section-3 - if (preg_match('/\w:\/\/\w/i', $parts[0])) { - return new static(new Url($parts[0]), $description); - } - - return new static(new FqsenRef($resolver->resolve($parts[0], $context)), $description); - } - - /** - * Returns the ref of this tag. - * - * @return Reference - */ - public function getReference() - { - return $this->refers; - } - - /** - * Returns a string representation of this tag. - * - * @return string - */ - public function __toString() - { - return $this->refers . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php deleted file mode 100644 index 835fb0dc..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php +++ /dev/null @@ -1,94 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}since tag in a Docblock. - */ -final class Since extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'since'; - - /** - * PCRE regular expression matching a version vector. - * Assumes the "x" modifier. - */ - const REGEX_VECTOR = '(?: - # Normal release vectors. - \d\S* - | - # VCS version vectors. Per PHPCS, they are expected to - # follow the form of the VCS name, followed by ":", followed - # by the version vector itself. - # By convention, popular VCSes like CVS, SVN and GIT use "$" - # around the actual version vector. - [^\s\:]+\:\s*\$[^\$]+\$ - )'; - - /** @var string The version vector. */ - private $version = ''; - - public function __construct($version = null, Description $description = null) - { - Assert::nullOrStringNotEmpty($version); - - $this->version = $version; - $this->description = $description; - } - - /** - * @return static - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); - if (empty($body)) { - return new static(); - } - - $matches = []; - if (! preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { - return null; - } - - return new static( - $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) - ); - } - - /** - * Gets the version section of the tag. - * - * @return string - */ - public function getVersion() - { - return $this->version; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php deleted file mode 100644 index 247b1b3b..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php +++ /dev/null @@ -1,97 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}source tag in a Docblock. - */ -final class Source extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'source'; - - /** @var int The starting line, relative to the structural element's location. */ - private $startingLine = 1; - - /** @var int|null The number of lines, relative to the starting line. NULL means "to the end". */ - private $lineCount = null; - - public function __construct($startingLine, $lineCount = null, Description $description = null) - { - Assert::integerish($startingLine); - Assert::nullOrIntegerish($lineCount); - - $this->startingLine = (int)$startingLine; - $this->lineCount = $lineCount !== null ? (int)$lineCount : null; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::stringNotEmpty($body); - Assert::notNull($descriptionFactory); - - $startingLine = 1; - $lineCount = null; - $description = null; - - // Starting line / Number of lines / Description - if (preg_match('/^([1-9]\d*)\s*(?:((?1))\s+)?(.*)$/sux', $body, $matches)) { - $startingLine = (int)$matches[1]; - if (isset($matches[2]) && $matches[2] !== '') { - $lineCount = (int)$matches[2]; - } - - $description = $matches[3]; - } - - return new static($startingLine, $lineCount, $descriptionFactory->create($description, $context)); - } - - /** - * Gets the starting line. - * - * @return int The starting line, relative to the structural element's - * location. - */ - public function getStartingLine() - { - return $this->startingLine; - } - - /** - * Returns the number of lines. - * - * @return int|null The number of lines, relative to the starting line. NULL - * means "to the end". - */ - public function getLineCount() - { - return $this->lineCount; - } - - public function __toString() - { - return $this->startingLine - . ($this->lineCount !== null ? ' ' . $this->lineCount : '') - . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php deleted file mode 100644 index 349e773b..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php +++ /dev/null @@ -1,72 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}throws tag in a Docblock. - */ -final class Throws extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'throws'; - - /** @var Type */ - private $type; - - public function __construct(Type $type, Description $description = null) - { - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/\s+/Su', $body, 2); - - $type = $typeResolver->resolve(isset($parts[0]) ? $parts[0] : '', $context); - $description = $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context); - - return new static($type, $description); - } - - /** - * Returns the type section of the variable. - * - * @return Type - */ - public function getType() - { - return $this->type; - } - - public function __toString() - { - return $this->type . ' ' . $this->description; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php deleted file mode 100644 index 00dc3e3b..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php +++ /dev/null @@ -1,83 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Fqsen; -use phpDocumentor\Reflection\FqsenResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}uses tag in a Docblock. - */ -final class Uses extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'uses'; - - /** @var Fqsen */ - protected $refers = null; - - /** - * Initializes this tag. - * - * @param Fqsen $refers - * @param Description $description - */ - public function __construct(Fqsen $refers, Description $description = null) - { - $this->refers = $refers; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - FqsenResolver $resolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$resolver, $descriptionFactory]); - - $parts = preg_split('/\s+/Su', $body, 2); - - return new static( - $resolver->resolve($parts[0], $context), - $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context) - ); - } - - /** - * Returns the structural element this tag refers to. - * - * @return Fqsen - */ - public function getReference() - { - return $this->refers; - } - - /** - * Returns a string representation of this tag. - * - * @return string - */ - public function __toString() - { - return $this->refers . ' ' . $this->description->render(); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php deleted file mode 100644 index 8907c951..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}var tag in a Docblock. - */ -class Var_ extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'var'; - - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) - { - Assert::string($variableName); - - $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . (empty($this->variableName) ? null : ('$' . $this->variableName)) - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php deleted file mode 100644 index 7bb04207..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php +++ /dev/null @@ -1,94 +0,0 @@ - - * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com) - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}version tag in a Docblock. - */ -final class Version extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'version'; - - /** - * PCRE regular expression matching a version vector. - * Assumes the "x" modifier. - */ - const REGEX_VECTOR = '(?: - # Normal release vectors. - \d\S* - | - # VCS version vectors. Per PHPCS, they are expected to - # follow the form of the VCS name, followed by ":", followed - # by the version vector itself. - # By convention, popular VCSes like CVS, SVN and GIT use "$" - # around the actual version vector. - [^\s\:]+\:\s*\$[^\$]+\$ - )'; - - /** @var string The version vector. */ - private $version = ''; - - public function __construct($version = null, Description $description = null) - { - Assert::nullOrStringNotEmpty($version); - - $this->version = $version; - $this->description = $description; - } - - /** - * @return static - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); - if (empty($body)) { - return new static(); - } - - $matches = []; - if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { - return null; - } - - return new static( - $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) - ); - } - - /** - * Gets the version section of the tag. - * - * @return string - */ - public function getVersion() - { - return $this->version; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php deleted file mode 100644 index 1bdb8f4d..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php +++ /dev/null @@ -1,277 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\DocBlock\StandardTagFactory; -use phpDocumentor\Reflection\DocBlock\Tag; -use phpDocumentor\Reflection\DocBlock\TagFactory; -use Webmozart\Assert\Assert; - -final class DocBlockFactory implements DocBlockFactoryInterface -{ - /** @var DocBlock\DescriptionFactory */ - private $descriptionFactory; - - /** @var DocBlock\TagFactory */ - private $tagFactory; - - /** - * Initializes this factory with the required subcontractors. - * - * @param DescriptionFactory $descriptionFactory - * @param TagFactory $tagFactory - */ - public function __construct(DescriptionFactory $descriptionFactory, TagFactory $tagFactory) - { - $this->descriptionFactory = $descriptionFactory; - $this->tagFactory = $tagFactory; - } - - /** - * Factory method for easy instantiation. - * - * @param string[] $additionalTags - * - * @return DocBlockFactory - */ - public static function createInstance(array $additionalTags = []) - { - $fqsenResolver = new FqsenResolver(); - $tagFactory = new StandardTagFactory($fqsenResolver); - $descriptionFactory = new DescriptionFactory($tagFactory); - - $tagFactory->addService($descriptionFactory); - $tagFactory->addService(new TypeResolver($fqsenResolver)); - - $docBlockFactory = new self($descriptionFactory, $tagFactory); - foreach ($additionalTags as $tagName => $tagHandler) { - $docBlockFactory->registerTagHandler($tagName, $tagHandler); - } - - return $docBlockFactory; - } - - /** - * @param object|string $docblock A string containing the DocBlock to parse or an object supporting the - * getDocComment method (such as a ReflectionClass object). - * @param Types\Context $context - * @param Location $location - * - * @return DocBlock - */ - public function create($docblock, Types\Context $context = null, Location $location = null) - { - if (is_object($docblock)) { - if (!method_exists($docblock, 'getDocComment')) { - $exceptionMessage = 'Invalid object passed; the given object must support the getDocComment method'; - throw new \InvalidArgumentException($exceptionMessage); - } - - $docblock = $docblock->getDocComment(); - } - - Assert::stringNotEmpty($docblock); - - if ($context === null) { - $context = new Types\Context(''); - } - - $parts = $this->splitDocBlock($this->stripDocComment($docblock)); - list($templateMarker, $summary, $description, $tags) = $parts; - - return new DocBlock( - $summary, - $description ? $this->descriptionFactory->create($description, $context) : null, - array_filter($this->parseTagBlock($tags, $context), function ($tag) { - return $tag instanceof Tag; - }), - $context, - $location, - $templateMarker === '#@+', - $templateMarker === '#@-' - ); - } - - public function registerTagHandler($tagName, $handler) - { - $this->tagFactory->registerTagHandler($tagName, $handler); - } - - /** - * Strips the asterisks from the DocBlock comment. - * - * @param string $comment String containing the comment text. - * - * @return string - */ - private function stripDocComment($comment) - { - $comment = trim(preg_replace('#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]{0,1}(.*)?#u', '$1', $comment)); - - // reg ex above is not able to remove */ from a single line docblock - if (substr($comment, -2) === '*/') { - $comment = trim(substr($comment, 0, -2)); - } - - return str_replace(["\r\n", "\r"], "\n", $comment); - } - - /** - * Splits the DocBlock into a template marker, summary, description and block of tags. - * - * @param string $comment Comment to split into the sub-parts. - * - * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split. - * @author Mike van Riel for extending the regex with template marker support. - * - * @return string[] containing the template marker (if any), summary, description and a string containing the tags. - */ - private function splitDocBlock($comment) - { - // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This - // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the - // performance impact of running a regular expression - if (strpos($comment, '@') === 0) { - return ['', '', '', $comment]; - } - - // clears all extra horizontal whitespace from the line endings to prevent parsing issues - $comment = preg_replace('/\h*$/Sum', '', $comment); - - /* - * Splits the docblock into a template marker, summary, description and tags section. - * - * - The template marker is empty, #@+ or #@- if the DocBlock starts with either of those (a newline may - * occur after it and will be stripped). - * - The short description is started from the first character until a dot is encountered followed by a - * newline OR two consecutive newlines (horizontal whitespace is taken into account to consider spacing - * errors). This is optional. - * - The long description, any character until a new line is encountered followed by an @ and word - * characters (a tag). This is optional. - * - Tags; the remaining characters - * - * Big thanks to RichardJ for contributing this Regular Expression - */ - preg_match( - '/ - \A - # 1. Extract the template marker - (?:(\#\@\+|\#\@\-)\n?)? - - # 2. Extract the summary - (?: - (?! @\pL ) # The summary may not start with an @ - ( - [^\n.]+ - (?: - (?! \. \n | \n{2} ) # End summary upon a dot followed by newline or two newlines - [\n.] (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line - [^\n.]+ # Include anything else - )* - \.? - )? - ) - - # 3. Extract the description - (?: - \s* # Some form of whitespace _must_ precede a description because a summary must be there - (?! @\pL ) # The description may not start with an @ - ( - [^\n]+ - (?: \n+ - (?! [ \t]* @\pL ) # End description when an @ is found as first character on a new line - [^\n]+ # Include anything else - )* - ) - )? - - # 4. Extract the tags (anything that follows) - (\s+ [\s\S]*)? # everything that follows - /ux', - $comment, - $matches - ); - array_shift($matches); - - while (count($matches) < 4) { - $matches[] = ''; - } - - return $matches; - } - - /** - * Creates the tag objects. - * - * @param string $tags Tag block to parse. - * @param Types\Context $context Context of the parsed Tag - * - * @return DocBlock\Tag[] - */ - private function parseTagBlock($tags, Types\Context $context) - { - $tags = $this->filterTagBlock($tags); - if (!$tags) { - return []; - } - - $result = $this->splitTagBlockIntoTagLines($tags); - foreach ($result as $key => $tagLine) { - $result[$key] = $this->tagFactory->create(trim($tagLine), $context); - } - - return $result; - } - - /** - * @param string $tags - * - * @return string[] - */ - private function splitTagBlockIntoTagLines($tags) - { - $result = []; - foreach (explode("\n", $tags) as $tag_line) { - if (isset($tag_line[0]) && ($tag_line[0] === '@')) { - $result[] = $tag_line; - } else { - $result[count($result) - 1] .= "\n" . $tag_line; - } - } - - return $result; - } - - /** - * @param $tags - * @return string - */ - private function filterTagBlock($tags) - { - $tags = trim($tags); - if (!$tags) { - return null; - } - - if ('@' !== $tags[0]) { - // @codeCoverageIgnoreStart - // Can't simulate this; this only happens if there is an error with the parsing of the DocBlock that - // we didn't foresee. - throw new \LogicException('A tag block started with text instead of an at-sign(@): ' . $tags); - // @codeCoverageIgnoreEnd - } - - return $tags; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php deleted file mode 100644 index b3533429..00000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - please note that if you want to pass partial class names that additional steps are necessary, see the - > chapter `Resolving partial classes and FQSENs` for more information. - -Where the FqsenResolver can resolve: - -- Constant expressions (i.e. `@see \MyNamespace\MY_CONSTANT`) -- Function expressions (i.e. `@see \MyNamespace\myFunction()`) -- Class expressions (i.e. `@see \MyNamespace\MyClass`) -- Interface expressions (i.e. `@see \MyNamespace\MyInterface`) -- Trait expressions (i.e. `@see \MyNamespace\MyTrait`) -- Class constant expressions (i.e. `@see \MyNamespace\MyClass::MY_CONSTANT`) -- Property expressions (i.e. `@see \MyNamespace\MyClass::$myProperty`) -- Method expressions (i.e. `@see \MyNamespace\MyClass::myMethod()`) - -## Resolving a type - -In order to resolve a type you will have to instantiate the class `\phpDocumentor\Reflection\TypeResolver` -and call its `resolve` method like this: - -```php -$typeResolver = new \phpDocumentor\Reflection\TypeResolver(); -$type = $typeResolver->resolve('string|integer'); -``` - -In this example you will receive a Value Object of class `\phpDocumentor\Reflection\Types\Compound` that has two -elements, one of type `\phpDocumentor\Reflection\Types\String_` and one of type -`\phpDocumentor\Reflection\Types\Integer`. - -The real power of this resolver is in its capability to expand partial class names into fully qualified class names; but -in order to do that we need an additional `\phpDocumentor\Reflection\Types\Context` class that will inform the resolver -in which namespace the given expression occurs and which namespace aliases (or imports) apply. - -## Resolving an FQSEN - -A Fully Qualified Structural Element Name is a reference to another element in your code bases and can be resolved using -the `\phpDocumentor\Reflection\FqsenResolver` class' `resolve` method, like this: - -```php -$fqsenResolver = new \phpDocumentor\Reflection\FqsenResolver(); -$fqsen = $fqsenResolver->resolve('\phpDocumentor\Reflection\FqsenResolver::resolve()'); -``` - -In this example we resolve a Fully Qualified Structural Element Name (meaning that it includes the full namespace, class -name and element name) and receive a Value Object of type `\phpDocumentor\Reflection\Fqsen`. - -The real power of this resolver is in its capability to expand partial element names into Fully Qualified Structural -Element Names; but in order to do that we need an additional `\phpDocumentor\Reflection\Types\Context` class that will -inform the resolver in which namespace the given expression occurs and which namespace aliases (or imports) apply. - -## Resolving partial Classes and Structural Element Names - -Perhaps the best feature of this library is that it knows how to resolve partial class names into fully qualified class -names. - -For example, you have this file: - -```php -namespace My\Example; - -use phpDocumentor\Reflection\Types; - -class Classy -{ - /** - * @var Types\Context - * @see Classy::otherFunction() - */ - public function __construct($context) {} - - public function otherFunction(){} -} -``` - -Suppose that you would want to resolve (and expand) the type in the `@var` tag and the element name in the `@see` tag. -For the resolvers to know how to expand partial names you have to provide a bit of _Context_ for them by instantiating -a new class named `\phpDocumentor\Reflection\Types\Context` with the name of the namespace and the aliases that are in -play. - -### Creating a Context - -You can do this by manually creating a Context like this: - -```php -$context = new \phpDocumentor\Reflection\Types\Context( - '\My\Example', - [ 'Types' => '\phpDocumentor\Reflection\Types'] -); -``` - -Or by using the `\phpDocumentor\Reflection\Types\ContextFactory` to instantiate a new context based on a Reflector -object or by providing the namespace that you'd like to extract and the source code of the file in which the given -type expression occurs. - -```php -$contextFactory = new \phpDocumentor\Reflection\Types\ContextFactory(); -$context = $contextFactory->createFromReflector(new ReflectionMethod('\My\Example\Classy', '__construct')); -``` - -or - -```php -$contextFactory = new \phpDocumentor\Reflection\Types\ContextFactory(); -$context = $contextFactory->createForNamespace('\My\Example', file_get_contents('My/Example/Classy.php')); -``` - -### Using the Context - -After you have obtained a Context it is just a matter of passing it along with the `resolve` method of either Resolver -class as second argument and the Resolvers will take this into account when resolving partial names. - -To obtain the resolved class name for the `@var` tag in the example above you can do: - -```php -$typeResolver = new \phpDocumentor\Reflection\TypeResolver(); -$type = $typeResolver->resolve('Types\Context', $context); -``` - -When you do this you will receive an object of class `\phpDocumentor\Reflection\Types\Object_` for which you can call -the `getFqsen` method to receive a Value Object that represents the complete FQSEN. So that would be -`phpDocumentor\Reflection\Types\Context`. - -> Why is the FQSEN wrapped in another object `Object_`? -> -> The resolve method of the TypeResolver only returns object with the interface `Type` and the FQSEN is a common -> type that does not represent a Type. Also: in some cases a type can represent an "Untyped Object", meaning that it -> is an object (signified by the `object` keyword) but does not refer to a specific element using an FQSEN. - -Another example is on how to resolve the FQSEN of a method as can be seen with the `@see` tag in the example above. To -resolve that you can do the following: - -```php -$fqsenResolver = new \phpDocumentor\Reflection\FqsenResolver(); -$type = $fqsenResolver->resolve('Classy::otherFunction()', $context); -``` - -Because Classy is a Class in the current namespace its FQSEN will have the `My\Example` namespace and by calling the -`resolve` method of the FQSEN Resolver you will receive an `Fqsen` object that refers to -`\My\Example\Classy::otherFunction()`. diff --git a/vendor/phpdocumentor/type-resolver/composer.json b/vendor/phpdocumentor/type-resolver/composer.json deleted file mode 100644 index 82ead156..00000000 --- a/vendor/phpdocumentor/type-resolver/composer.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "phpdocumentor/type-resolver", - "type": "library", - "license": "MIT", - "authors": [ - {"name": "Mike van Riel", "email": "me@mikevanriel.com"} - ], - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "autoload": { - "psr-4": {"phpDocumentor\\Reflection\\": ["src/"]} - }, - "autoload-dev": { - "psr-4": {"phpDocumentor\\Reflection\\": ["tests/unit"]} - }, - "require-dev": { - "phpunit/phpunit": "^5.2||^4.8.24", - "mockery/mockery": "^0.9.4" - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php b/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php deleted file mode 100644 index 9aa6ba30..00000000 --- a/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -use phpDocumentor\Reflection\Types\Context; - -class FqsenResolver -{ - /** @var string Definition of the NAMESPACE operator in PHP */ - const OPERATOR_NAMESPACE = '\\'; - - public function resolve($fqsen, Context $context = null) - { - if ($context === null) { - $context = new Context(''); - } - - if ($this->isFqsen($fqsen)) { - return new Fqsen($fqsen); - } - - return $this->resolvePartialStructuralElementName($fqsen, $context); - } - - /** - * Tests whether the given type is a Fully Qualified Structural Element Name. - * - * @param string $type - * - * @return bool - */ - private function isFqsen($type) - { - return strpos($type, self::OPERATOR_NAMESPACE) === 0; - } - - /** - * Resolves a partial Structural Element Name (i.e. `Reflection\DocBlock`) to its FQSEN representation - * (i.e. `\phpDocumentor\Reflection\DocBlock`) based on the Namespace and aliases mentioned in the Context. - * - * @param string $type - * @param Context $context - * - * @return Fqsen - * @throws \InvalidArgumentException when type is not a valid FQSEN. - */ - private function resolvePartialStructuralElementName($type, Context $context) - { - $typeParts = explode(self::OPERATOR_NAMESPACE, $type, 2); - - $namespaceAliases = $context->getNamespaceAliases(); - - // if the first segment is not an alias; prepend namespace name and return - if (!isset($namespaceAliases[$typeParts[0]])) { - $namespace = $context->getNamespace(); - if ('' !== $namespace) { - $namespace .= self::OPERATOR_NAMESPACE; - } - - return new Fqsen(self::OPERATOR_NAMESPACE . $namespace . $type); - } - - $typeParts[0] = $namespaceAliases[$typeParts[0]]; - - return new Fqsen(self::OPERATOR_NAMESPACE . implode(self::OPERATOR_NAMESPACE, $typeParts)); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Type.php b/vendor/phpdocumentor/type-resolver/src/Type.php deleted file mode 100644 index 33ca5595..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Type.php +++ /dev/null @@ -1,18 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -interface Type -{ - public function __toString(); -} diff --git a/vendor/phpdocumentor/type-resolver/src/TypeResolver.php b/vendor/phpdocumentor/type-resolver/src/TypeResolver.php deleted file mode 100644 index 08b2a5f8..00000000 --- a/vendor/phpdocumentor/type-resolver/src/TypeResolver.php +++ /dev/null @@ -1,298 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -use phpDocumentor\Reflection\Types\Array_; -use phpDocumentor\Reflection\Types\Compound; -use phpDocumentor\Reflection\Types\Context; -use phpDocumentor\Reflection\Types\Iterable_; -use phpDocumentor\Reflection\Types\Nullable; -use phpDocumentor\Reflection\Types\Object_; - -final class TypeResolver -{ - /** @var string Definition of the ARRAY operator for types */ - const OPERATOR_ARRAY = '[]'; - - /** @var string Definition of the NAMESPACE operator in PHP */ - const OPERATOR_NAMESPACE = '\\'; - - /** @var string[] List of recognized keywords and unto which Value Object they map */ - private $keywords = array( - 'string' => Types\String_::class, - 'int' => Types\Integer::class, - 'integer' => Types\Integer::class, - 'bool' => Types\Boolean::class, - 'boolean' => Types\Boolean::class, - 'float' => Types\Float_::class, - 'double' => Types\Float_::class, - 'object' => Object_::class, - 'mixed' => Types\Mixed_::class, - 'array' => Array_::class, - 'resource' => Types\Resource_::class, - 'void' => Types\Void_::class, - 'null' => Types\Null_::class, - 'scalar' => Types\Scalar::class, - 'callback' => Types\Callable_::class, - 'callable' => Types\Callable_::class, - 'false' => Types\Boolean::class, - 'true' => Types\Boolean::class, - 'self' => Types\Self_::class, - '$this' => Types\This::class, - 'static' => Types\Static_::class, - 'parent' => Types\Parent_::class, - 'iterable' => Iterable_::class, - ); - - /** @var FqsenResolver */ - private $fqsenResolver; - - /** - * Initializes this TypeResolver with the means to create and resolve Fqsen objects. - * - * @param FqsenResolver $fqsenResolver - */ - public function __construct(FqsenResolver $fqsenResolver = null) - { - $this->fqsenResolver = $fqsenResolver ?: new FqsenResolver(); - } - - /** - * Analyzes the given type and returns the FQCN variant. - * - * When a type is provided this method checks whether it is not a keyword or - * Fully Qualified Class Name. If so it will use the given namespace and - * aliases to expand the type to a FQCN representation. - * - * This method only works as expected if the namespace and aliases are set; - * no dynamic reflection is being performed here. - * - * @param string $type The relative or absolute type. - * @param Context $context - * - * @uses Context::getNamespace() to determine with what to prefix the type name. - * @uses Context::getNamespaceAliases() to check whether the first part of the relative type name should not be - * replaced with another namespace. - * - * @return Type|null - */ - public function resolve($type, Context $context = null) - { - if (!is_string($type)) { - throw new \InvalidArgumentException( - 'Attempted to resolve type but it appeared not to be a string, received: ' . var_export($type, true) - ); - } - - $type = trim($type); - if (!$type) { - throw new \InvalidArgumentException('Attempted to resolve "' . $type . '" but it appears to be empty'); - } - - if ($context === null) { - $context = new Context(''); - } - - switch (true) { - case $this->isNullableType($type): - return $this->resolveNullableType($type, $context); - case $this->isKeyword($type): - return $this->resolveKeyword($type); - case ($this->isCompoundType($type)): - return $this->resolveCompoundType($type, $context); - case $this->isTypedArray($type): - return $this->resolveTypedArray($type, $context); - case $this->isFqsen($type): - return $this->resolveTypedObject($type); - case $this->isPartialStructuralElementName($type): - return $this->resolveTypedObject($type, $context); - // @codeCoverageIgnoreStart - default: - // I haven't got the foggiest how the logic would come here but added this as a defense. - throw new \RuntimeException( - 'Unable to resolve type "' . $type . '", there is no known method to resolve it' - ); - } - // @codeCoverageIgnoreEnd - } - - /** - * Adds a keyword to the list of Keywords and associates it with a specific Value Object. - * - * @param string $keyword - * @param string $typeClassName - * - * @return void - */ - public function addKeyword($keyword, $typeClassName) - { - if (!class_exists($typeClassName)) { - throw new \InvalidArgumentException( - 'The Value Object that needs to be created with a keyword "' . $keyword . '" must be an existing class' - . ' but we could not find the class ' . $typeClassName - ); - } - - if (!in_array(Type::class, class_implements($typeClassName))) { - throw new \InvalidArgumentException( - 'The class "' . $typeClassName . '" must implement the interface "phpDocumentor\Reflection\Type"' - ); - } - - $this->keywords[$keyword] = $typeClassName; - } - - /** - * Detects whether the given type represents an array. - * - * @param string $type A relative or absolute type as defined in the phpDocumentor documentation. - * - * @return bool - */ - private function isTypedArray($type) - { - return substr($type, -2) === self::OPERATOR_ARRAY; - } - - /** - * Detects whether the given type represents a PHPDoc keyword. - * - * @param string $type A relative or absolute type as defined in the phpDocumentor documentation. - * - * @return bool - */ - private function isKeyword($type) - { - return in_array(strtolower($type), array_keys($this->keywords), true); - } - - /** - * Detects whether the given type represents a relative structural element name. - * - * @param string $type A relative or absolute type as defined in the phpDocumentor documentation. - * - * @return bool - */ - private function isPartialStructuralElementName($type) - { - return ($type[0] !== self::OPERATOR_NAMESPACE) && !$this->isKeyword($type); - } - - /** - * Tests whether the given type is a Fully Qualified Structural Element Name. - * - * @param string $type - * - * @return bool - */ - private function isFqsen($type) - { - return strpos($type, self::OPERATOR_NAMESPACE) === 0; - } - - /** - * Tests whether the given type is a compound type (i.e. `string|int`). - * - * @param string $type - * - * @return bool - */ - private function isCompoundType($type) - { - return strpos($type, '|') !== false; - } - - /** - * Test whether the given type is a nullable type (i.e. `?string`) - * - * @param string $type - * - * @return bool - */ - private function isNullableType($type) - { - return $type[0] === '?'; - } - - /** - * Resolves the given typed array string (i.e. `string[]`) into an Array object with the right types set. - * - * @param string $type - * @param Context $context - * - * @return Array_ - */ - private function resolveTypedArray($type, Context $context) - { - return new Array_($this->resolve(substr($type, 0, -2), $context)); - } - - /** - * Resolves the given keyword (such as `string`) into a Type object representing that keyword. - * - * @param string $type - * - * @return Type - */ - private function resolveKeyword($type) - { - $className = $this->keywords[strtolower($type)]; - - return new $className(); - } - - /** - * Resolves the given FQSEN string into an FQSEN object. - * - * @param string $type - * @param Context|null $context - * - * @return Object_ - */ - private function resolveTypedObject($type, Context $context = null) - { - return new Object_($this->fqsenResolver->resolve($type, $context)); - } - - /** - * Resolves a compound type (i.e. `string|int`) into the appropriate Type objects or FQSEN. - * - * @param string $type - * @param Context $context - * - * @return Compound - */ - private function resolveCompoundType($type, Context $context) - { - $types = []; - - foreach (explode('|', $type) as $part) { - $types[] = $this->resolve($part, $context); - } - - return new Compound($types); - } - - /** - * Resolve nullable types (i.e. `?string`) into a Nullable type wrapper - * - * @param string $type - * @param Context $context - * - * @return Nullable - */ - private function resolveNullableType($type, Context $context) - { - return new Nullable($this->resolve(ltrim($type, '?'), $context)); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Array_.php b/vendor/phpdocumentor/type-resolver/src/Types/Array_.php deleted file mode 100644 index 49b7c6ea..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Array_.php +++ /dev/null @@ -1,86 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Represents an array type as described in the PSR-5, the PHPDoc Standard. - * - * An array can be represented in two forms: - * - * 1. Untyped (`array`), where the key and value type is unknown and hence classified as 'Mixed_'. - * 2. Types (`string[]`), where the value type is provided by preceding an opening and closing square bracket with a - * type name. - */ -final class Array_ implements Type -{ - /** @var Type */ - private $valueType; - - /** @var Type */ - private $keyType; - - /** - * Initializes this representation of an array with the given Type or Fqsen. - * - * @param Type $valueType - * @param Type $keyType - */ - public function __construct(Type $valueType = null, Type $keyType = null) - { - if ($keyType === null) { - $keyType = new Compound([ new String_(), new Integer() ]); - } - if ($valueType === null) { - $valueType = new Mixed_(); - } - - $this->valueType = $valueType; - $this->keyType = $keyType; - } - - /** - * Returns the type for the keys of this array. - * - * @return Type - */ - public function getKeyType() - { - return $this->keyType; - } - - /** - * Returns the value for the keys of this array. - * - * @return Type - */ - public function getValueType() - { - return $this->valueType; - } - - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - if ($this->valueType instanceof Mixed_) { - return 'array'; - } - - return $this->valueType . '[]'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Boolean.php b/vendor/phpdocumentor/type-resolver/src/Types/Boolean.php deleted file mode 100644 index f82b19e5..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Boolean.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a Boolean type. - */ -final class Boolean implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'bool'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php b/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php deleted file mode 100644 index 68ebfbd0..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a Callable type. - */ -final class Callable_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'callable'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Compound.php b/vendor/phpdocumentor/type-resolver/src/Types/Compound.php deleted file mode 100644 index be986c31..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Compound.php +++ /dev/null @@ -1,93 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use ArrayIterator; -use IteratorAggregate; -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a Compound Type. - * - * A Compound Type is not so much a special keyword or object reference but is a series of Types that are separated - * using an OR operator (`|`). This combination of types signifies that whatever is associated with this compound type - * may contain a value with any of the given types. - */ -final class Compound implements Type, IteratorAggregate -{ - /** @var Type[] */ - private $types; - - /** - * Initializes a compound type (i.e. `string|int`) and tests if the provided types all implement the Type interface. - * - * @param Type[] $types - * @throws \InvalidArgumentException when types are not all instance of Type - */ - public function __construct(array $types) - { - foreach ($types as $type) { - if (!$type instanceof Type) { - throw new \InvalidArgumentException('A compound type can only have other types as elements'); - } - } - - $this->types = $types; - } - - /** - * Returns the type at the given index. - * - * @param integer $index - * - * @return Type|null - */ - public function get($index) - { - if (!$this->has($index)) { - return null; - } - - return $this->types[$index]; - } - - /** - * Tests if this compound type has a type with the given index. - * - * @param integer $index - * - * @return bool - */ - public function has($index) - { - return isset($this->types[$index]); - } - - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return implode('|', $this->types); - } - - /** - * {@inheritdoc} - */ - public function getIterator() - { - return new ArrayIterator($this->types); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Context.php b/vendor/phpdocumentor/type-resolver/src/Types/Context.php deleted file mode 100644 index 4e9ce5a0..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Context.php +++ /dev/null @@ -1,84 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -/** - * Provides information about the Context in which the DocBlock occurs that receives this context. - * - * A DocBlock does not know of its own accord in which namespace it occurs and which namespace aliases are applicable - * for the block of code in which it is in. This information is however necessary to resolve Class names in tags since - * you can provide a short form or make use of namespace aliases. - * - * The phpDocumentor Reflection component knows how to create this class but if you use the DocBlock parser from your - * own application it is possible to generate a Context class using the ContextFactory; this will analyze the file in - * which an associated class resides for its namespace and imports. - * - * @see ContextFactory::createFromClassReflector() - * @see ContextFactory::createForNamespace() - */ -final class Context -{ - /** @var string The current namespace. */ - private $namespace; - - /** @var array List of namespace aliases => Fully Qualified Namespace. */ - private $namespaceAliases; - - /** - * Initializes the new context and normalizes all passed namespaces to be in Qualified Namespace Name (QNN) - * format (without a preceding `\`). - * - * @param string $namespace The namespace where this DocBlock resides in. - * @param array $namespaceAliases List of namespace aliases => Fully Qualified Namespace. - */ - public function __construct($namespace, array $namespaceAliases = []) - { - $this->namespace = ('global' !== $namespace && 'default' !== $namespace) - ? trim((string)$namespace, '\\') - : ''; - - foreach ($namespaceAliases as $alias => $fqnn) { - if ($fqnn[0] === '\\') { - $fqnn = substr($fqnn, 1); - } - if ($fqnn[strlen($fqnn) - 1] === '\\') { - $fqnn = substr($fqnn, 0, -1); - } - - $namespaceAliases[$alias] = $fqnn; - } - - $this->namespaceAliases = $namespaceAliases; - } - - /** - * Returns the Qualified Namespace Name (thus without `\` in front) where the associated element is in. - * - * @return string - */ - public function getNamespace() - { - return $this->namespace; - } - - /** - * Returns a list of Qualified Namespace Names (thus without `\` in front) that are imported, the keys represent - * the alias for the imported Namespace. - * - * @return string[] - */ - public function getNamespaceAliases() - { - return $this->namespaceAliases; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php b/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php deleted file mode 100644 index 30936a30..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php +++ /dev/null @@ -1,210 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -/** - * Convenience class to create a Context for DocBlocks when not using the Reflection Component of phpDocumentor. - * - * For a DocBlock to be able to resolve types that use partial namespace names or rely on namespace imports we need to - * provide a bit of context so that the DocBlock can read that and based on it decide how to resolve the types to - * Fully Qualified names. - * - * @see Context for more information. - */ -final class ContextFactory -{ - /** The literal used at the end of a use statement. */ - const T_LITERAL_END_OF_USE = ';'; - - /** The literal used between sets of use statements */ - const T_LITERAL_USE_SEPARATOR = ','; - - /** - * Build a Context given a Class Reflection. - * - * @param \Reflector $reflector - * - * @see Context for more information on Contexts. - * - * @return Context - */ - public function createFromReflector(\Reflector $reflector) - { - if (method_exists($reflector, 'getDeclaringClass')) { - $reflector = $reflector->getDeclaringClass(); - } - - $fileName = $reflector->getFileName(); - $namespace = $reflector->getNamespaceName(); - - if (file_exists($fileName)) { - return $this->createForNamespace($namespace, file_get_contents($fileName)); - } - - return new Context($namespace, []); - } - - /** - * Build a Context for a namespace in the provided file contents. - * - * @param string $namespace It does not matter if a `\` precedes the namespace name, this method first normalizes. - * @param string $fileContents the file's contents to retrieve the aliases from with the given namespace. - * - * @see Context for more information on Contexts. - * - * @return Context - */ - public function createForNamespace($namespace, $fileContents) - { - $namespace = trim($namespace, '\\'); - $useStatements = []; - $currentNamespace = ''; - $tokens = new \ArrayIterator(token_get_all($fileContents)); - - while ($tokens->valid()) { - switch ($tokens->current()[0]) { - case T_NAMESPACE: - $currentNamespace = $this->parseNamespace($tokens); - break; - case T_CLASS: - // Fast-forward the iterator through the class so that any - // T_USE tokens found within are skipped - these are not - // valid namespace use statements so should be ignored. - $braceLevel = 0; - $firstBraceFound = false; - while ($tokens->valid() && ($braceLevel > 0 || !$firstBraceFound)) { - if ($tokens->current() === '{' - || $tokens->current()[0] === T_CURLY_OPEN - || $tokens->current()[0] === T_DOLLAR_OPEN_CURLY_BRACES) { - if (!$firstBraceFound) { - $firstBraceFound = true; - } - $braceLevel++; - } - - if ($tokens->current() === '}') { - $braceLevel--; - } - $tokens->next(); - } - break; - case T_USE: - if ($currentNamespace === $namespace) { - $useStatements = array_merge($useStatements, $this->parseUseStatement($tokens)); - } - break; - } - $tokens->next(); - } - - return new Context($namespace, $useStatements); - } - - /** - * Deduce the name from tokens when we are at the T_NAMESPACE token. - * - * @param \ArrayIterator $tokens - * - * @return string - */ - private function parseNamespace(\ArrayIterator $tokens) - { - // skip to the first string or namespace separator - $this->skipToNextStringOrNamespaceSeparator($tokens); - - $name = ''; - while ($tokens->valid() && ($tokens->current()[0] === T_STRING || $tokens->current()[0] === T_NS_SEPARATOR) - ) { - $name .= $tokens->current()[1]; - $tokens->next(); - } - - return $name; - } - - /** - * Deduce the names of all imports when we are at the T_USE token. - * - * @param \ArrayIterator $tokens - * - * @return string[] - */ - private function parseUseStatement(\ArrayIterator $tokens) - { - $uses = []; - $continue = true; - - while ($continue) { - $this->skipToNextStringOrNamespaceSeparator($tokens); - - list($alias, $fqnn) = $this->extractUseStatement($tokens); - $uses[$alias] = $fqnn; - if ($tokens->current()[0] === self::T_LITERAL_END_OF_USE) { - $continue = false; - } - } - - return $uses; - } - - /** - * Fast-forwards the iterator as longs as we don't encounter a T_STRING or T_NS_SEPARATOR token. - * - * @param \ArrayIterator $tokens - * - * @return void - */ - private function skipToNextStringOrNamespaceSeparator(\ArrayIterator $tokens) - { - while ($tokens->valid() && ($tokens->current()[0] !== T_STRING) && ($tokens->current()[0] !== T_NS_SEPARATOR)) { - $tokens->next(); - } - } - - /** - * Deduce the namespace name and alias of an import when we are at the T_USE token or have not reached the end of - * a USE statement yet. - * - * @param \ArrayIterator $tokens - * - * @return string - */ - private function extractUseStatement(\ArrayIterator $tokens) - { - $result = ['']; - while ($tokens->valid() - && ($tokens->current()[0] !== self::T_LITERAL_USE_SEPARATOR) - && ($tokens->current()[0] !== self::T_LITERAL_END_OF_USE) - ) { - if ($tokens->current()[0] === T_AS) { - $result[] = ''; - } - if ($tokens->current()[0] === T_STRING || $tokens->current()[0] === T_NS_SEPARATOR) { - $result[count($result) - 1] .= $tokens->current()[1]; - } - $tokens->next(); - } - - if (count($result) == 1) { - $backslashPos = strrpos($result[0], '\\'); - - if (false !== $backslashPos) { - $result[] = substr($result[0], $backslashPos + 1); - } else { - $result[] = $result[0]; - } - } - - return array_reverse($result); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Float_.php b/vendor/phpdocumentor/type-resolver/src/Types/Float_.php deleted file mode 100644 index e58d8966..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Float_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a Float. - */ -final class Float_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'float'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Integer.php b/vendor/phpdocumentor/type-resolver/src/Types/Integer.php deleted file mode 100644 index be4555ef..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Integer.php +++ /dev/null @@ -1,28 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -final class Integer implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'int'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php b/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php deleted file mode 100644 index 0cbf48f7..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing iterable type - */ -final class Iterable_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'iterable'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php b/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php deleted file mode 100644 index c1c165f4..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing an unknown, or mixed, type. - */ -final class Mixed_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'mixed'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Null_.php b/vendor/phpdocumentor/type-resolver/src/Types/Null_.php deleted file mode 100644 index 203b4227..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Null_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a null value or type. - */ -final class Null_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'null'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php b/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php deleted file mode 100644 index 3c6d1b13..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php +++ /dev/null @@ -1,56 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a nullable type. The real type is wrapped. - */ -final class Nullable implements Type -{ - /** - * @var Type - */ - private $realType; - - /** - * Initialises this nullable type using the real type embedded - * - * @param Type $realType - */ - public function __construct(Type $realType) - { - $this->realType = $realType; - } - - /** - * Provide access to the actual type directly, if needed. - * - * @return Type - */ - public function getActualType() - { - return $this->realType; - } - - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return '?' . $this->realType->__toString(); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Object_.php b/vendor/phpdocumentor/type-resolver/src/Types/Object_.php deleted file mode 100644 index 389f7c70..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Object_.php +++ /dev/null @@ -1,71 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Fqsen; -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing an object. - * - * An object can be either typed or untyped. When an object is typed it means that it has an identifier, the FQSEN, - * pointing to an element in PHP. Object types that are untyped do not refer to a specific class but represent objects - * in general. - */ -final class Object_ implements Type -{ - /** @var Fqsen|null */ - private $fqsen; - - /** - * Initializes this object with an optional FQSEN, if not provided this object is considered 'untyped'. - * - * @param Fqsen $fqsen - * @throws \InvalidArgumentException when provided $fqsen is not a valid type. - */ - public function __construct(Fqsen $fqsen = null) - { - if (strpos((string)$fqsen, '::') !== false || strpos((string)$fqsen, '()') !== false) { - throw new \InvalidArgumentException( - 'Object types can only refer to a class, interface or trait but a method, function, constant or ' - . 'property was received: ' . (string)$fqsen - ); - } - - $this->fqsen = $fqsen; - } - - /** - * Returns the FQSEN associated with this object. - * - * @return Fqsen|null - */ - public function getFqsen() - { - return $this->fqsen; - } - - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - if ($this->fqsen) { - return (string)$this->fqsen; - } - - return 'object'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php b/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php deleted file mode 100644 index aabdbfb3..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php +++ /dev/null @@ -1,33 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'parent' type. - * - * Parent, as a Type, represents the parent class of class in which the associated element was defined. - */ -final class Parent_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'parent'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Resource_.php b/vendor/phpdocumentor/type-resolver/src/Types/Resource_.php deleted file mode 100644 index a1b613dc..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Resource_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'resource' Type. - */ -final class Resource_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'resource'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Scalar.php b/vendor/phpdocumentor/type-resolver/src/Types/Scalar.php deleted file mode 100644 index 1e2a6602..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Scalar.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'scalar' pseudo-type, which is either a string, integer, float or boolean. - */ -final class Scalar implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'scalar'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Self_.php b/vendor/phpdocumentor/type-resolver/src/Types/Self_.php deleted file mode 100644 index 1ba3fc5a..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Self_.php +++ /dev/null @@ -1,33 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'self' type. - * - * Self, as a Type, represents the class in which the associated element was defined. - */ -final class Self_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'self'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Static_.php b/vendor/phpdocumentor/type-resolver/src/Types/Static_.php deleted file mode 100644 index 9eb67299..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Static_.php +++ /dev/null @@ -1,38 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'static' type. - * - * Self, as a Type, represents the class in which the associated element was called. This differs from self as self does - * not take inheritance into account but static means that the return type is always that of the class of the called - * element. - * - * See the documentation on late static binding in the PHP Documentation for more information on the difference between - * static and self. - */ -final class Static_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'static'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/String_.php b/vendor/phpdocumentor/type-resolver/src/Types/String_.php deleted file mode 100644 index 8db59685..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/String_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the type 'string'. - */ -final class String_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'string'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/This.php b/vendor/phpdocumentor/type-resolver/src/Types/This.php deleted file mode 100644 index c098a939..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/This.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the '$this' pseudo-type. - * - * $this, as a Type, represents the instance of the class associated with the element as it was called. $this is - * commonly used when documenting fluent interfaces since it represents that the same object is returned. - */ -final class This implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return '$this'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Void_.php b/vendor/phpdocumentor/type-resolver/src/Types/Void_.php deleted file mode 100644 index 3d1be272..00000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Void_.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the pseudo-type 'void'. - * - * Void is generally only used when working with return types as it signifies that the method intentionally does not - * return any value. - */ -final class Void_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'void'; - } -} diff --git a/vendor/phpspec/prophecy/CHANGES.md b/vendor/phpspec/prophecy/CHANGES.md deleted file mode 100644 index 6a3ad33a..00000000 --- a/vendor/phpspec/prophecy/CHANGES.md +++ /dev/null @@ -1,178 +0,0 @@ -1.7.2 / 2017-10-04 -================== - -* Reverted "check method predictions only once" due to it breaking Spies - -1.7.1 / 2017-10-03 -================== - -* Allow PHP5 keywords methods generation on PHP7 (thanks @bycosta) -* Allow reflection-docblock v4 (thanks @GrahamCampbell) -* Check method predictions only once (thanks @dontub) -* Escape file path sent to \SplFileObjectConstructor when running on Windows (thanks @danmartin-epiphany) - -1.7.0 / 2017-03-02 -================== - -* Add full PHP 7.1 Support (thanks @prolic) -* Allow `sebastian/comparator ^2.0` (thanks @sebastianbergmann) -* Allow `sebastian/recursion-context ^3.0` (thanks @sebastianbergmann) -* Allow `\Error` instances in `ThrowPromise` (thanks @jameshalsall) -* Support `phpspec/phpspect ^3.2` (thanks @Sam-Burns) -* Fix failing builds (thanks @Sam-Burns) - -1.6.2 / 2016-11-21 -================== - -* Added support for detecting @method on interfaces that the class itself implements, or when the stubbed class is an interface itself (thanks @Seldaek) -* Added support for sebastian/recursion-context 2 (thanks @sebastianbergmann) -* Added testing on PHP 7.1 on Travis (thanks @danizord) -* Fixed the usage of the phpunit comparator (thanks @Anyqax) - -1.6.1 / 2016-06-07 -================== - - * Ignored empty method names in invalid `@method` phpdoc - * Fixed the mocking of SplFileObject - * Added compatibility with phpdocumentor/reflection-docblock 3 - -1.6.0 / 2016-02-15 -================== - - * Add Variadics support (thanks @pamil) - * Add ProphecyComparator for comparing objects that need revealing (thanks @jon-acker) - * Add ApproximateValueToken (thanks @dantleech) - * Add support for 'self' and 'parent' return type (thanks @bendavies) - * Add __invoke to allowed reflectable methods list (thanks @ftrrtf) - * Updated ExportUtil to reflect the latest changes by Sebastian (thanks @jakari) - * Specify the required php version for composer (thanks @jakzal) - * Exclude 'args' in the generated backtrace (thanks @oradwell) - * Fix code generation for scalar parameters (thanks @trowski) - * Fix missing sprintf in InvalidArgumentException __construct call (thanks @emmanuelballery) - * Fix phpdoc for magic methods (thanks @Tobion) - * Fix PhpDoc for interfaces usage (thanks @ImmRanneft) - * Prevent final methods from being manually extended (thanks @kamioftea) - * Enhance exception for invalid argument to ThrowPromise (thanks @Tobion) - -1.5.0 / 2015-04-27 -================== - - * Add support for PHP7 scalar type hints (thanks @trowski) - * Add support for PHP7 return types (thanks @trowski) - * Update internal test suite to support PHP7 - -1.4.1 / 2015-04-27 -================== - - * Fixed bug in closure-based argument tokens (#181) - -1.4.0 / 2015-03-27 -================== - - * Fixed errors in return type phpdocs (thanks @sobit) - * Fixed stringifying of hash containing one value (thanks @avant1) - * Improved clarity of method call expectation exception (thanks @dantleech) - * Add ability to specify which argument is returned in willReturnArgument (thanks @coderbyheart) - * Add more information to MethodNotFound exceptions (thanks @ciaranmcnulty) - * Support for mocking classes with methods that return references (thanks @edsonmedina) - * Improved object comparison (thanks @whatthejeff) - * Adopted '^' in composer dependencies (thanks @GrahamCampbell) - * Fixed non-typehinted arguments being treated as optional (thanks @whatthejeff) - * Magic methods are now filtered for keywords (thanks @seagoj) - * More readable errors for failure when expecting single calls (thanks @dantleech) - -1.3.1 / 2014-11-17 -================== - - * Fix the edge case when failed predictions weren't recorded for `getCheckedPredictions()` - -1.3.0 / 2014-11-14 -================== - - * Add a way to get checked predictions with `MethodProphecy::getCheckedPredictions()` - * Fix HHVM compatibility - * Remove dead code (thanks @stof) - * Add support for DirectoryIterators (thanks @shanethehat) - -1.2.0 / 2014-07-18 -================== - - * Added support for doubling magic methods documented in the class phpdoc (thanks @armetiz) - * Fixed a segfault appearing in some cases (thanks @dmoreaulf) - * Fixed the doubling of methods with typehints on non-existent classes (thanks @gquemener) - * Added support for internal classes using keywords as method names (thanks @milan) - * Added IdenticalValueToken and Argument::is (thanks @florianv) - * Removed the usage of scalar typehints in HHVM as HHVM 3 does not support them anymore in PHP code (thanks @whatthejeff) - -1.1.2 / 2014-01-24 -================== - - * Spy automatically promotes spied method call to an expected one - -1.1.1 / 2014-01-15 -================== - - * Added support for HHVM - -1.1.0 / 2014-01-01 -================== - - * Changed the generated class names to use a static counter instead of a random number - * Added a clss patch for ReflectionClass::newInstance to make its argument optional consistently (thanks @docteurklein) - * Fixed mirroring of classes with typehints on non-existent classes (thanks @docteurklein) - * Fixed the support of array callables in CallbackPromise and CallbackPrediction (thanks @ciaranmcnulty) - * Added support for properties in ObjectStateToken (thanks @adrienbrault) - * Added support for mocking classes with a final constructor (thanks @ciaranmcnulty) - * Added ArrayEveryEntryToken and Argument::withEveryEntry() (thanks @adrienbrault) - * Added an exception when trying to prophesize on a final method instead of ignoring silently (thanks @docteurklein) - * Added StringContainToken and Argument::containingString() (thanks @peterjmit) - * Added ``shouldNotHaveBeenCalled`` on the MethodProphecy (thanks @ciaranmcnulty) - * Fixed the comparison of objects in ExactValuetoken (thanks @sstok) - * Deprecated ``shouldNotBeenCalled`` in favor of ``shouldNotHaveBeenCalled`` - -1.0.4 / 2013-08-10 -================== - - * Better randomness for generated class names (thanks @sstok) - * Add support for interfaces into TypeToken and Argument::type() (thanks @sstok) - * Add support for old-style (method name === class name) constructors (thanks @l310 for report) - -1.0.3 / 2013-07-04 -================== - - * Support callable typehints (thanks @stof) - * Do not attempt to autoload arrays when generating code (thanks @MarcoDeBortoli) - * New ArrayEntryToken (thanks @kagux) - -1.0.2 / 2013-05-19 -================== - - * Logical `AND` token added (thanks @kagux) - * Logical `NOT` token added (thanks @kagux) - * Add support for setting custom constructor arguments - * Properly stringify hashes - * Record calls that throw exceptions - * Migrate spec suite to PhpSpec 2.0 - -1.0.1 / 2013-04-30 -================== - - * Fix broken UnexpectedCallException message - * Trim AggregateException message - -1.0.0 / 2013-04-29 -================== - - * Improve exception messages - -1.0.0-BETA2 / 2013-04-03 -======================== - - * Add more debug information to CallTimes and Call prediction exception messages - * Fix MethodNotFoundException wrong namespace (thanks @gunnarlium) - * Fix some typos in the exception messages (thanks @pborreli) - -1.0.0-BETA1 / 2013-03-25 -======================== - - * Initial release diff --git a/vendor/phpspec/prophecy/LICENSE b/vendor/phpspec/prophecy/LICENSE deleted file mode 100644 index c8b36471..00000000 --- a/vendor/phpspec/prophecy/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2013 Konstantin Kudryashov - Marcello Duarte - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/phpspec/prophecy/README.md b/vendor/phpspec/prophecy/README.md deleted file mode 100644 index b190d43e..00000000 --- a/vendor/phpspec/prophecy/README.md +++ /dev/null @@ -1,391 +0,0 @@ -# Prophecy - -[![Stable release](https://poser.pugx.org/phpspec/prophecy/version.svg)](https://packagist.org/packages/phpspec/prophecy) -[![Build Status](https://travis-ci.org/phpspec/prophecy.svg?branch=master)](https://travis-ci.org/phpspec/prophecy) - -Prophecy is a highly opinionated yet very powerful and flexible PHP object mocking -framework. Though initially it was created to fulfil phpspec2 needs, it is flexible -enough to be used inside any testing framework out there with minimal effort. - -## A simple example - -```php -prophet->prophesize('App\Security\Hasher'); - $user = new App\Entity\User($hasher->reveal()); - - $hasher->generateHash($user, 'qwerty')->willReturn('hashed_pass'); - - $user->setPassword('qwerty'); - - $this->assertEquals('hashed_pass', $user->getPassword()); - } - - protected function setup() - { - $this->prophet = new \Prophecy\Prophet; - } - - protected function tearDown() - { - $this->prophet->checkPredictions(); - } -} -``` - -## Installation - -### Prerequisites - -Prophecy requires PHP 5.3.3 or greater. - -### Setup through composer - -First, add Prophecy to the list of dependencies inside your `composer.json`: - -```json -{ - "require-dev": { - "phpspec/prophecy": "~1.0" - } -} -``` - -Then simply install it with composer: - -```bash -$> composer install --prefer-dist -``` - -You can read more about Composer on its [official webpage](http://getcomposer.org). - -## How to use it - -First of all, in Prophecy every word has a logical meaning, even the name of the library -itself (Prophecy). When you start feeling that, you'll become very fluid with this -tool. - -For example, Prophecy has been named that way because it concentrates on describing the future -behavior of objects with very limited knowledge about them. But as with any other prophecy, -those object prophecies can't create themselves - there should be a Prophet: - -```php -$prophet = new Prophecy\Prophet; -``` - -The Prophet creates prophecies by *prophesizing* them: - -```php -$prophecy = $prophet->prophesize(); -``` - -The result of the `prophesize()` method call is a new object of class `ObjectProphecy`. Yes, -that's your specific object prophecy, which describes how your object would behave -in the near future. But first, you need to specify which object you're talking about, -right? - -```php -$prophecy->willExtend('stdClass'); -$prophecy->willImplement('SessionHandlerInterface'); -``` - -There are 2 interesting calls - `willExtend` and `willImplement`. The first one tells -object prophecy that our object should extend specific class, the second one says that -it should implement some interface. Obviously, objects in PHP can implement multiple -interfaces, but extend only one parent class. - -### Dummies - -Ok, now we have our object prophecy. What can we do with it? First of all, we can get -our object *dummy* by revealing its prophecy: - -```php -$dummy = $prophecy->reveal(); -``` - -The `$dummy` variable now holds a special dummy object. Dummy objects are objects that extend -and/or implement preset classes/interfaces by overriding all their public methods. The key -point about dummies is that they do not hold any logic - they just do nothing. Any method -of the dummy will always return `null` and the dummy will never throw any exceptions. -Dummy is your friend if you don't care about the actual behavior of this double and just need -a token object to satisfy a method typehint. - -You need to understand one thing - a dummy is not a prophecy. Your object prophecy is still -assigned to `$prophecy` variable and in order to manipulate with your expectations, you -should work with it. `$dummy` is a dummy - a simple php object that tries to fulfil your -prophecy. - -### Stubs - -Ok, now we know how to create basic prophecies and reveal dummies from them. That's -awesome if we don't care about our _doubles_ (objects that reflect originals) -interactions. If we do, we need to use *stubs* or *mocks*. - -A stub is an object double, which doesn't have any expectations about the object behavior, -but when put in specific environment, behaves in specific way. Ok, I know, it's cryptic, -but bear with me for a minute. Simply put, a stub is a dummy, which depending on the called -method signature does different things (has logic). To create stubs in Prophecy: - -```php -$prophecy->read('123')->willReturn('value'); -``` - -Oh wow. We've just made an arbitrary call on the object prophecy? Yes, we did. And this -call returned us a new object instance of class `MethodProphecy`. Yep, that's a specific -method with arguments prophecy. Method prophecies give you the ability to create method -promises or predictions. We'll talk about method predictions later in the _Mocks_ section. - -#### Promises - -Promises are logical blocks, that represent your fictional methods in prophecy terms -and they are handled by the `MethodProphecy::will(PromiseInterface $promise)` method. -As a matter of fact, the call that we made earlier (`willReturn('value')`) is a simple -shortcut to: - -```php -$prophecy->read('123')->will(new Prophecy\Promise\ReturnPromise(array('value'))); -``` - -This promise will cause any call to our double's `read()` method with exactly one -argument - `'123'` to always return `'value'`. But that's only for this -promise, there's plenty others you can use: - -- `ReturnPromise` or `->willReturn(1)` - returns a value from a method call -- `ReturnArgumentPromise` or `->willReturnArgument($index)` - returns the nth method argument from call -- `ThrowPromise` or `->willThrow($exception)` - causes the method to throw specific exception -- `CallbackPromise` or `->will($callback)` - gives you a quick way to define your own custom logic - -Keep in mind, that you can always add even more promises by implementing -`Prophecy\Promise\PromiseInterface`. - -#### Method prophecies idempotency - -Prophecy enforces same method prophecies and, as a consequence, same promises and -predictions for the same method calls with the same arguments. This means: - -```php -$methodProphecy1 = $prophecy->read('123'); -$methodProphecy2 = $prophecy->read('123'); -$methodProphecy3 = $prophecy->read('321'); - -$methodProphecy1 === $methodProphecy2; -$methodProphecy1 !== $methodProphecy3; -``` - -That's interesting, right? Now you might ask me how would you define more complex -behaviors where some method call changes behavior of others. In PHPUnit or Mockery -you do that by predicting how many times your method will be called. In Prophecy, -you'll use promises for that: - -```php -$user->getName()->willReturn(null); - -// For PHP 5.4 -$user->setName('everzet')->will(function () { - $this->getName()->willReturn('everzet'); -}); - -// For PHP 5.3 -$user->setName('everzet')->will(function ($args, $user) { - $user->getName()->willReturn('everzet'); -}); - -// Or -$user->setName('everzet')->will(function ($args) use ($user) { - $user->getName()->willReturn('everzet'); -}); -``` - -And now it doesn't matter how many times or in which order your methods are called. -What matters is their behaviors and how well you faked it. - -#### Arguments wildcarding - -The previous example is awesome (at least I hope it is for you), but that's not -optimal enough. We hardcoded `'everzet'` in our expectation. Isn't there a better -way? In fact there is, but it involves understanding what this `'everzet'` -actually is. - -You see, even if method arguments used during method prophecy creation look -like simple method arguments, in reality they are not. They are argument token -wildcards. As a matter of fact, `->setName('everzet')` looks like a simple call just -because Prophecy automatically transforms it under the hood into: - -```php -$user->setName(new Prophecy\Argument\Token\ExactValueToken('everzet')); -``` - -Those argument tokens are simple PHP classes, that implement -`Prophecy\Argument\Token\TokenInterface` and tell Prophecy how to compare real arguments -with your expectations. And yes, those classnames are damn big. That's why there's a -shortcut class `Prophecy\Argument`, which you can use to create tokens like that: - -```php -use Prophecy\Argument; - -$user->setName(Argument::exact('everzet')); -``` - -`ExactValueToken` is not very useful in our case as it forced us to hardcode the username. -That's why Prophecy comes bundled with a bunch of other tokens: - -- `IdenticalValueToken` or `Argument::is($value)` - checks that the argument is identical to a specific value -- `ExactValueToken` or `Argument::exact($value)` - checks that the argument matches a specific value -- `TypeToken` or `Argument::type($typeOrClass)` - checks that the argument matches a specific type or - classname -- `ObjectStateToken` or `Argument::which($method, $value)` - checks that the argument method returns - a specific value -- `CallbackToken` or `Argument::that(callback)` - checks that the argument matches a custom callback -- `AnyValueToken` or `Argument::any()` - matches any argument -- `AnyValuesToken` or `Argument::cetera()` - matches any arguments to the rest of the signature -- `StringContainsToken` or `Argument::containingString($value)` - checks that the argument contains a specific string value - -And you can add even more by implementing `TokenInterface` with your own custom classes. - -So, let's refactor our initial `{set,get}Name()` logic with argument tokens: - -```php -use Prophecy\Argument; - -$user->getName()->willReturn(null); - -// For PHP 5.4 -$user->setName(Argument::type('string'))->will(function ($args) { - $this->getName()->willReturn($args[0]); -}); - -// For PHP 5.3 -$user->setName(Argument::type('string'))->will(function ($args, $user) { - $user->getName()->willReturn($args[0]); -}); - -// Or -$user->setName(Argument::type('string'))->will(function ($args) use ($user) { - $user->getName()->willReturn($args[0]); -}); -``` - -That's it. Now our `{set,get}Name()` prophecy will work with any string argument provided to it. -We've just described how our stub object should behave, even though the original object could have -no behavior whatsoever. - -One last bit about arguments now. You might ask, what happens in case of: - -```php -use Prophecy\Argument; - -$user->getName()->willReturn(null); - -// For PHP 5.4 -$user->setName(Argument::type('string'))->will(function ($args) { - $this->getName()->willReturn($args[0]); -}); - -// For PHP 5.3 -$user->setName(Argument::type('string'))->will(function ($args, $user) { - $user->getName()->willReturn($args[0]); -}); - -// Or -$user->setName(Argument::type('string'))->will(function ($args) use ($user) { - $user->getName()->willReturn($args[0]); -}); - -$user->setName(Argument::any())->will(function () { -}); -``` - -Nothing. Your stub will continue behaving the way it did before. That's because of how -arguments wildcarding works. Every argument token type has a different score level, which -wildcard then uses to calculate the final arguments match score and use the method prophecy -promise that has the highest score. In this case, `Argument::type()` in case of success -scores `5` and `Argument::any()` scores `3`. So the type token wins, as does the first -`setName()` method prophecy and its promise. The simple rule of thumb - more precise token -always wins. - -#### Getting stub objects - -Ok, now we know how to define our prophecy method promises, let's get our stub from -it: - -```php -$stub = $prophecy->reveal(); -``` - -As you might see, the only difference between how we get dummies and stubs is that with -stubs we describe every object conversation instead of just agreeing with `null` returns -(object being *dummy*). As a matter of fact, after you define your first promise -(method call), Prophecy will force you to define all the communications - it throws -the `UnexpectedCallException` for any call you didn't describe with object prophecy before -calling it on a stub. - -### Mocks - -Now we know how to define doubles without behavior (dummies) and doubles with behavior, but -no expectations (stubs). What's left is doubles for which we have some expectations. These -are called mocks and in Prophecy they look almost exactly the same as stubs, except that -they define *predictions* instead of *promises* on method prophecies: - -```php -$entityManager->flush()->shouldBeCalled(); -``` - -#### Predictions - -The `shouldBeCalled()` method here assigns `CallPrediction` to our method prophecy. -Predictions are a delayed behavior check for your prophecies. You see, during the entire lifetime -of your doubles, Prophecy records every single call you're making against it inside your -code. After that, Prophecy can use this collected information to check if it matches defined -predictions. You can assign predictions to method prophecies using the -`MethodProphecy::should(PredictionInterface $prediction)` method. As a matter of fact, -the `shouldBeCalled()` method we used earlier is just a shortcut to: - -```php -$entityManager->flush()->should(new Prophecy\Prediction\CallPrediction()); -``` - -It checks if your method of interest (that matches both the method name and the arguments wildcard) -was called 1 or more times. If the prediction failed then it throws an exception. When does this -check happen? Whenever you call `checkPredictions()` on the main Prophet object: - -```php -$prophet->checkPredictions(); -``` - -In PHPUnit, you would want to put this call into the `tearDown()` method. If no predictions -are defined, it would do nothing. So it won't harm to call it after every test. - -There are plenty more predictions you can play with: - -- `CallPrediction` or `shouldBeCalled()` - checks that the method has been called 1 or more times -- `NoCallsPrediction` or `shouldNotBeCalled()` - checks that the method has not been called -- `CallTimesPrediction` or `shouldBeCalledTimes($count)` - checks that the method has been called - `$count` times -- `CallbackPrediction` or `should($callback)` - checks the method against your own custom callback - -Of course, you can always create your own custom prediction any time by implementing -`PredictionInterface`. - -### Spies - -The last bit of awesomeness in Prophecy is out-of-the-box spies support. As I said in the previous -section, Prophecy records every call made during the double's entire lifetime. This means -you don't need to record predictions in order to check them. You can also do it -manually by using the `MethodProphecy::shouldHave(PredictionInterface $prediction)` method: - -```php -$em = $prophet->prophesize('Doctrine\ORM\EntityManager'); - -$controller->createUser($em->reveal()); - -$em->flush()->shouldHaveBeenCalled(); -``` - -Such manipulation with doubles is called spying. And with Prophecy it just works. diff --git a/vendor/phpspec/prophecy/composer.json b/vendor/phpspec/prophecy/composer.json deleted file mode 100644 index 5bdbdb3e..00000000 --- a/vendor/phpspec/prophecy/composer.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "phpspec/prophecy", - "description": "Highly opinionated mocking framework for PHP 5.3+", - "keywords": ["Mock", "Stub", "Dummy", "Double", "Fake", "Spy"], - "homepage": "https://github.com/phpspec/prophecy", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - - "require": { - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", - "doctrine/instantiator": "^1.0.2", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7" - }, - - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - - "autoload-dev": { - "psr-4": { - "Fixtures\\Prophecy\\": "fixtures" - } - }, - - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument.php b/vendor/phpspec/prophecy/src/Prophecy/Argument.php deleted file mode 100644 index fde6aa90..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument.php +++ /dev/null @@ -1,212 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy; - -use Prophecy\Argument\Token; - -/** - * Argument tokens shortcuts. - * - * @author Konstantin Kudryashov - */ -class Argument -{ - /** - * Checks that argument is exact value or object. - * - * @param mixed $value - * - * @return Token\ExactValueToken - */ - public static function exact($value) - { - return new Token\ExactValueToken($value); - } - - /** - * Checks that argument is of specific type or instance of specific class. - * - * @param string $type Type name (`integer`, `string`) or full class name - * - * @return Token\TypeToken - */ - public static function type($type) - { - return new Token\TypeToken($type); - } - - /** - * Checks that argument object has specific state. - * - * @param string $methodName - * @param mixed $value - * - * @return Token\ObjectStateToken - */ - public static function which($methodName, $value) - { - return new Token\ObjectStateToken($methodName, $value); - } - - /** - * Checks that argument matches provided callback. - * - * @param callable $callback - * - * @return Token\CallbackToken - */ - public static function that($callback) - { - return new Token\CallbackToken($callback); - } - - /** - * Matches any single value. - * - * @return Token\AnyValueToken - */ - public static function any() - { - return new Token\AnyValueToken; - } - - /** - * Matches all values to the rest of the signature. - * - * @return Token\AnyValuesToken - */ - public static function cetera() - { - return new Token\AnyValuesToken; - } - - /** - * Checks that argument matches all tokens - * - * @param mixed ... a list of tokens - * - * @return Token\LogicalAndToken - */ - public static function allOf() - { - return new Token\LogicalAndToken(func_get_args()); - } - - /** - * Checks that argument array or countable object has exact number of elements. - * - * @param integer $value array elements count - * - * @return Token\ArrayCountToken - */ - public static function size($value) - { - return new Token\ArrayCountToken($value); - } - - /** - * Checks that argument array contains (key, value) pair - * - * @param mixed $key exact value or token - * @param mixed $value exact value or token - * - * @return Token\ArrayEntryToken - */ - public static function withEntry($key, $value) - { - return new Token\ArrayEntryToken($key, $value); - } - - /** - * Checks that arguments array entries all match value - * - * @param mixed $value - * - * @return Token\ArrayEveryEntryToken - */ - public static function withEveryEntry($value) - { - return new Token\ArrayEveryEntryToken($value); - } - - /** - * Checks that argument array contains value - * - * @param mixed $value - * - * @return Token\ArrayEntryToken - */ - public static function containing($value) - { - return new Token\ArrayEntryToken(self::any(), $value); - } - - /** - * Checks that argument array has key - * - * @param mixed $key exact value or token - * - * @return Token\ArrayEntryToken - */ - public static function withKey($key) - { - return new Token\ArrayEntryToken($key, self::any()); - } - - /** - * Checks that argument does not match the value|token. - * - * @param mixed $value either exact value or argument token - * - * @return Token\LogicalNotToken - */ - public static function not($value) - { - return new Token\LogicalNotToken($value); - } - - /** - * @param string $value - * - * @return Token\StringContainsToken - */ - public static function containingString($value) - { - return new Token\StringContainsToken($value); - } - - /** - * Checks that argument is identical value. - * - * @param mixed $value - * - * @return Token\IdenticalValueToken - */ - public static function is($value) - { - return new Token\IdenticalValueToken($value); - } - - /** - * Check that argument is same value when rounding to the - * given precision. - * - * @param float $value - * @param float $precision - * - * @return Token\ApproximateValueToken - */ - public static function approximate($value, $precision = 0) - { - return new Token\ApproximateValueToken($value, $precision); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php deleted file mode 100644 index a088f21d..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php +++ /dev/null @@ -1,101 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument; - -/** - * Arguments wildcarding. - * - * @author Konstantin Kudryashov - */ -class ArgumentsWildcard -{ - /** - * @var Token\TokenInterface[] - */ - private $tokens = array(); - private $string; - - /** - * Initializes wildcard. - * - * @param array $arguments Array of argument tokens or values - */ - public function __construct(array $arguments) - { - foreach ($arguments as $argument) { - if (!$argument instanceof Token\TokenInterface) { - $argument = new Token\ExactValueToken($argument); - } - - $this->tokens[] = $argument; - } - } - - /** - * Calculates wildcard match score for provided arguments. - * - * @param array $arguments - * - * @return false|int False OR integer score (higher - better) - */ - public function scoreArguments(array $arguments) - { - if (0 == count($arguments) && 0 == count($this->tokens)) { - return 1; - } - - $arguments = array_values($arguments); - $totalScore = 0; - foreach ($this->tokens as $i => $token) { - $argument = isset($arguments[$i]) ? $arguments[$i] : null; - if (1 >= $score = $token->scoreArgument($argument)) { - return false; - } - - $totalScore += $score; - - if (true === $token->isLast()) { - return $totalScore; - } - } - - if (count($arguments) > count($this->tokens)) { - return false; - } - - return $totalScore; - } - - /** - * Returns string representation for wildcard. - * - * @return string - */ - public function __toString() - { - if (null === $this->string) { - $this->string = implode(', ', array_map(function ($token) { - return (string) $token; - }, $this->tokens)); - } - - return $this->string; - } - - /** - * @return array - */ - public function getTokens() - { - return $this->tokens; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php deleted file mode 100644 index 50988112..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php +++ /dev/null @@ -1,52 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Any single value token. - * - * @author Konstantin Kudryashov - */ -class AnyValueToken implements TokenInterface -{ - /** - * Always scores 3 for any argument. - * - * @param $argument - * - * @return int - */ - public function scoreArgument($argument) - { - return 3; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return '*'; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php deleted file mode 100644 index f76b17bc..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php +++ /dev/null @@ -1,52 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Any values token. - * - * @author Konstantin Kudryashov - */ -class AnyValuesToken implements TokenInterface -{ - /** - * Always scores 2 for any argument. - * - * @param $argument - * - * @return int - */ - public function scoreArgument($argument) - { - return 2; - } - - /** - * Returns true to stop wildcard from processing other tokens. - * - * @return bool - */ - public function isLast() - { - return true; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return '* [, ...]'; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php deleted file mode 100644 index d4918b1a..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php +++ /dev/null @@ -1,55 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Approximate value token - * - * @author Daniel Leech - */ -class ApproximateValueToken implements TokenInterface -{ - private $value; - private $precision; - - public function __construct($value, $precision = 0) - { - $this->value = $value; - $this->precision = $precision; - } - - /** - * {@inheritdoc} - */ - public function scoreArgument($argument) - { - return round($argument, $this->precision) === round($this->value, $this->precision) ? 10 : false; - } - - /** - * {@inheritdoc} - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('≅%s', round($this->value, $this->precision)); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php deleted file mode 100644 index 96b4befd..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php +++ /dev/null @@ -1,86 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Array elements count token. - * - * @author Boris Mikhaylov - */ - -class ArrayCountToken implements TokenInterface -{ - private $count; - - /** - * @param integer $value - */ - public function __construct($value) - { - $this->count = $value; - } - - /** - * Scores 6 when argument has preset number of elements. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - return $this->isCountable($argument) && $this->hasProperCount($argument) ? 6 : false; - } - - /** - * Returns false. - * - * @return boolean - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('count(%s)', $this->count); - } - - /** - * Returns true if object is either array or instance of \Countable - * - * @param $argument - * @return bool - */ - private function isCountable($argument) - { - return (is_array($argument) || $argument instanceof \Countable); - } - - /** - * Returns true if $argument has expected number of elements - * - * @param array|\Countable $argument - * - * @return bool - */ - private function hasProperCount($argument) - { - return $this->count === count($argument); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php deleted file mode 100644 index 0305fc72..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php +++ /dev/null @@ -1,143 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use Prophecy\Exception\InvalidArgumentException; - -/** - * Array entry token. - * - * @author Boris Mikhaylov - */ -class ArrayEntryToken implements TokenInterface -{ - /** @var \Prophecy\Argument\Token\TokenInterface */ - private $key; - /** @var \Prophecy\Argument\Token\TokenInterface */ - private $value; - - /** - * @param mixed $key exact value or token - * @param mixed $value exact value or token - */ - public function __construct($key, $value) - { - $this->key = $this->wrapIntoExactValueToken($key); - $this->value = $this->wrapIntoExactValueToken($value); - } - - /** - * Scores half of combined scores from key and value tokens for same entry. Capped at 8. - * If argument implements \ArrayAccess without \Traversable, then key token is restricted to ExactValueToken. - * - * @param array|\ArrayAccess|\Traversable $argument - * - * @throws \Prophecy\Exception\InvalidArgumentException - * @return bool|int - */ - public function scoreArgument($argument) - { - if ($argument instanceof \Traversable) { - $argument = iterator_to_array($argument); - } - - if ($argument instanceof \ArrayAccess) { - $argument = $this->convertArrayAccessToEntry($argument); - } - - if (!is_array($argument) || empty($argument)) { - return false; - } - - $keyScores = array_map(array($this->key,'scoreArgument'), array_keys($argument)); - $valueScores = array_map(array($this->value,'scoreArgument'), $argument); - $scoreEntry = function ($value, $key) { - return $value && $key ? min(8, ($key + $value) / 2) : false; - }; - - return max(array_map($scoreEntry, $valueScores, $keyScores)); - } - - /** - * Returns false. - * - * @return boolean - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('[..., %s => %s, ...]', $this->key, $this->value); - } - - /** - * Returns key - * - * @return TokenInterface - */ - public function getKey() - { - return $this->key; - } - - /** - * Returns value - * - * @return TokenInterface - */ - public function getValue() - { - return $this->value; - } - - /** - * Wraps non token $value into ExactValueToken - * - * @param $value - * @return TokenInterface - */ - private function wrapIntoExactValueToken($value) - { - return $value instanceof TokenInterface ? $value : new ExactValueToken($value); - } - - /** - * Converts instance of \ArrayAccess to key => value array entry - * - * @param \ArrayAccess $object - * - * @return array|null - * @throws \Prophecy\Exception\InvalidArgumentException - */ - private function convertArrayAccessToEntry(\ArrayAccess $object) - { - if (!$this->key instanceof ExactValueToken) { - throw new InvalidArgumentException(sprintf( - 'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL. - 'But you used `%s`.', - $this->key - )); - } - - $key = $this->key->getValue(); - - return $object->offsetExists($key) ? array($key => $object[$key]) : array(); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php deleted file mode 100644 index 5d41fa48..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php +++ /dev/null @@ -1,82 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Array every entry token. - * - * @author Adrien Brault - */ -class ArrayEveryEntryToken implements TokenInterface -{ - /** - * @var TokenInterface - */ - private $value; - - /** - * @param mixed $value exact value or token - */ - public function __construct($value) - { - if (!$value instanceof TokenInterface) { - $value = new ExactValueToken($value); - } - - $this->value = $value; - } - - /** - * {@inheritdoc} - */ - public function scoreArgument($argument) - { - if (!$argument instanceof \Traversable && !is_array($argument)) { - return false; - } - - $scores = array(); - foreach ($argument as $key => $argumentEntry) { - $scores[] = $this->value->scoreArgument($argumentEntry); - } - - if (empty($scores) || in_array(false, $scores, true)) { - return false; - } - - return array_sum($scores) / count($scores); - } - - /** - * {@inheritdoc} - */ - public function isLast() - { - return false; - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return sprintf('[%s, ..., %s]', $this->value, $this->value); - } - - /** - * @return TokenInterface - */ - public function getValue() - { - return $this->value; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php deleted file mode 100644 index f45ba20b..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php +++ /dev/null @@ -1,75 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use Prophecy\Exception\InvalidArgumentException; - -/** - * Callback-verified token. - * - * @author Konstantin Kudryashov - */ -class CallbackToken implements TokenInterface -{ - private $callback; - - /** - * Initializes token. - * - * @param callable $callback - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($callback) - { - if (!is_callable($callback)) { - throw new InvalidArgumentException(sprintf( - 'Callable expected as an argument to CallbackToken, but got %s.', - gettype($callback) - )); - } - - $this->callback = $callback; - } - - /** - * Scores 7 if callback returns true, false otherwise. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - return call_user_func($this->callback, $argument) ? 7 : false; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return 'callback()'; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php deleted file mode 100644 index aa960f3f..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php +++ /dev/null @@ -1,116 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use SebastianBergmann\Comparator\ComparisonFailure; -use Prophecy\Comparator\Factory as ComparatorFactory; -use Prophecy\Util\StringUtil; - -/** - * Exact value token. - * - * @author Konstantin Kudryashov - */ -class ExactValueToken implements TokenInterface -{ - private $value; - private $string; - private $util; - private $comparatorFactory; - - /** - * Initializes token. - * - * @param mixed $value - * @param StringUtil $util - * @param ComparatorFactory $comparatorFactory - */ - public function __construct($value, StringUtil $util = null, ComparatorFactory $comparatorFactory = null) - { - $this->value = $value; - $this->util = $util ?: new StringUtil(); - - $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); - } - - /** - * Scores 10 if argument matches preset value. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - if (is_object($argument) && is_object($this->value)) { - $comparator = $this->comparatorFactory->getComparatorFor( - $argument, $this->value - ); - - try { - $comparator->assertEquals($argument, $this->value); - return 10; - } catch (ComparisonFailure $failure) {} - } - - // If either one is an object it should be castable to a string - if (is_object($argument) xor is_object($this->value)) { - if (is_object($argument) && !method_exists($argument, '__toString')) { - return false; - } - - if (is_object($this->value) && !method_exists($this->value, '__toString')) { - return false; - } - } elseif (is_numeric($argument) && is_numeric($this->value)) { - // noop - } elseif (gettype($argument) !== gettype($this->value)) { - return false; - } - - return $argument == $this->value ? 10 : false; - } - - /** - * Returns preset value against which token checks arguments. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - if (null === $this->string) { - $this->string = sprintf('exact(%s)', $this->util->stringify($this->value)); - } - - return $this->string; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php deleted file mode 100644 index 0b6d23ab..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php +++ /dev/null @@ -1,74 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use Prophecy\Util\StringUtil; - -/** - * Identical value token. - * - * @author Florian Voutzinos - */ -class IdenticalValueToken implements TokenInterface -{ - private $value; - private $string; - private $util; - - /** - * Initializes token. - * - * @param mixed $value - * @param StringUtil $util - */ - public function __construct($value, StringUtil $util = null) - { - $this->value = $value; - $this->util = $util ?: new StringUtil(); - } - - /** - * Scores 11 if argument matches preset value. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - return $argument === $this->value ? 11 : false; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - if (null === $this->string) { - $this->string = sprintf('identical(%s)', $this->util->stringify($this->value)); - } - - return $this->string; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php deleted file mode 100644 index 4ee1b25e..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php +++ /dev/null @@ -1,80 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Logical AND token. - * - * @author Boris Mikhaylov - */ -class LogicalAndToken implements TokenInterface -{ - private $tokens = array(); - - /** - * @param array $arguments exact values or tokens - */ - public function __construct(array $arguments) - { - foreach ($arguments as $argument) { - if (!$argument instanceof TokenInterface) { - $argument = new ExactValueToken($argument); - } - $this->tokens[] = $argument; - } - } - - /** - * Scores maximum score from scores returned by tokens for this argument if all of them score. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - if (0 === count($this->tokens)) { - return false; - } - - $maxScore = 0; - foreach ($this->tokens as $token) { - $score = $token->scoreArgument($argument); - if (false === $score) { - return false; - } - $maxScore = max($score, $maxScore); - } - - return $maxScore; - } - - /** - * Returns false. - * - * @return boolean - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('bool(%s)', implode(' AND ', $this->tokens)); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php deleted file mode 100644 index 623efa57..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php +++ /dev/null @@ -1,73 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Logical NOT token. - * - * @author Boris Mikhaylov - */ -class LogicalNotToken implements TokenInterface -{ - /** @var \Prophecy\Argument\Token\TokenInterface */ - private $token; - - /** - * @param mixed $value exact value or token - */ - public function __construct($value) - { - $this->token = $value instanceof TokenInterface? $value : new ExactValueToken($value); - } - - /** - * Scores 4 when preset token does not match the argument. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - return false === $this->token->scoreArgument($argument) ? 4 : false; - } - - /** - * Returns true if preset token is last. - * - * @return bool|int - */ - public function isLast() - { - return $this->token->isLast(); - } - - /** - * Returns originating token. - * - * @return TokenInterface - */ - public function getOriginatingToken() - { - return $this->token; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('not(%s)', $this->token); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php deleted file mode 100644 index d7710776..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php +++ /dev/null @@ -1,104 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use SebastianBergmann\Comparator\ComparisonFailure; -use Prophecy\Comparator\Factory as ComparatorFactory; -use Prophecy\Util\StringUtil; - -/** - * Object state-checker token. - * - * @author Konstantin Kudryashov - */ -class ObjectStateToken implements TokenInterface -{ - private $name; - private $value; - private $util; - private $comparatorFactory; - - /** - * Initializes token. - * - * @param string $methodName - * @param mixed $value Expected return value - * @param null|StringUtil $util - * @param ComparatorFactory $comparatorFactory - */ - public function __construct( - $methodName, - $value, - StringUtil $util = null, - ComparatorFactory $comparatorFactory = null - ) { - $this->name = $methodName; - $this->value = $value; - $this->util = $util ?: new StringUtil; - - $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); - } - - /** - * Scores 8 if argument is an object, which method returns expected value. - * - * @param mixed $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - if (is_object($argument) && method_exists($argument, $this->name)) { - $actual = call_user_func(array($argument, $this->name)); - - $comparator = $this->comparatorFactory->getComparatorFor( - $this->value, $actual - ); - - try { - $comparator->assertEquals($this->value, $actual); - return 8; - } catch (ComparisonFailure $failure) { - return false; - } - } - - if (is_object($argument) && property_exists($argument, $this->name)) { - return $argument->{$this->name} === $this->value ? 8 : false; - } - - return false; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('state(%s(), %s)', - $this->name, - $this->util->stringify($this->value) - ); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php deleted file mode 100644 index 24ff8c2e..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php +++ /dev/null @@ -1,67 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * String contains token. - * - * @author Peter Mitchell - */ -class StringContainsToken implements TokenInterface -{ - private $value; - - /** - * Initializes token. - * - * @param string $value - */ - public function __construct($value) - { - $this->value = $value; - } - - public function scoreArgument($argument) - { - return strpos($argument, $this->value) !== false ? 6 : false; - } - - /** - * Returns preset value against which token checks arguments. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('contains("%s")', $this->value); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php deleted file mode 100644 index 625d3bad..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php +++ /dev/null @@ -1,43 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Argument token interface. - * - * @author Konstantin Kudryashov - */ -interface TokenInterface -{ - /** - * Calculates token match score for provided argument. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument); - - /** - * Returns true if this token prevents check of other tokens (is last one). - * - * @return bool|int - */ - public function isLast(); - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php deleted file mode 100644 index cb65132c..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php +++ /dev/null @@ -1,76 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use Prophecy\Exception\InvalidArgumentException; - -/** - * Value type token. - * - * @author Konstantin Kudryashov - */ -class TypeToken implements TokenInterface -{ - private $type; - - /** - * @param string $type - */ - public function __construct($type) - { - $checker = "is_{$type}"; - if (!function_exists($checker) && !interface_exists($type) && !class_exists($type)) { - throw new InvalidArgumentException(sprintf( - 'Type or class name expected as an argument to TypeToken, but got %s.', $type - )); - } - - $this->type = $type; - } - - /** - * Scores 5 if argument has the same type this token was constructed with. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - $checker = "is_{$this->type}"; - if (function_exists($checker)) { - return call_user_func($checker, $argument) ? 5 : false; - } - - return $argument instanceof $this->type ? 5 : false; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('type(%s)', $this->type); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php b/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php deleted file mode 100644 index 2f3fbadb..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php +++ /dev/null @@ -1,127 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Call; - -use Exception; - -/** - * Call object. - * - * @author Konstantin Kudryashov - */ -class Call -{ - private $methodName; - private $arguments; - private $returnValue; - private $exception; - private $file; - private $line; - - /** - * Initializes call. - * - * @param string $methodName - * @param array $arguments - * @param mixed $returnValue - * @param Exception $exception - * @param null|string $file - * @param null|int $line - */ - public function __construct($methodName, array $arguments, $returnValue, - Exception $exception = null, $file, $line) - { - $this->methodName = $methodName; - $this->arguments = $arguments; - $this->returnValue = $returnValue; - $this->exception = $exception; - - if ($file) { - $this->file = $file; - $this->line = intval($line); - } - } - - /** - * Returns called method name. - * - * @return string - */ - public function getMethodName() - { - return $this->methodName; - } - - /** - * Returns called method arguments. - * - * @return array - */ - public function getArguments() - { - return $this->arguments; - } - - /** - * Returns called method return value. - * - * @return null|mixed - */ - public function getReturnValue() - { - return $this->returnValue; - } - - /** - * Returns exception that call thrown. - * - * @return null|Exception - */ - public function getException() - { - return $this->exception; - } - - /** - * Returns callee filename. - * - * @return string - */ - public function getFile() - { - return $this->file; - } - - /** - * Returns callee line number. - * - * @return int - */ - public function getLine() - { - return $this->line; - } - - /** - * Returns short notation for callee place. - * - * @return string - */ - public function getCallPlace() - { - if (null === $this->file) { - return 'unknown'; - } - - return sprintf('%s:%d', $this->file, $this->line); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php b/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php deleted file mode 100644 index 53b80f05..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php +++ /dev/null @@ -1,171 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Call; - -use Prophecy\Exception\Prophecy\MethodProphecyException; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Argument\ArgumentsWildcard; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Call\UnexpectedCallException; - -/** - * Calls receiver & manager. - * - * @author Konstantin Kudryashov - */ -class CallCenter -{ - private $util; - - /** - * @var Call[] - */ - private $recordedCalls = array(); - - /** - * Initializes call center. - * - * @param StringUtil $util - */ - public function __construct(StringUtil $util = null) - { - $this->util = $util ?: new StringUtil; - } - - /** - * Makes and records specific method call for object prophecy. - * - * @param ObjectProphecy $prophecy - * @param string $methodName - * @param array $arguments - * - * @return mixed Returns null if no promise for prophecy found or promise return value. - * - * @throws \Prophecy\Exception\Call\UnexpectedCallException If no appropriate method prophecy found - */ - public function makeCall(ObjectProphecy $prophecy, $methodName, array $arguments) - { - // For efficiency exclude 'args' from the generated backtrace - if (PHP_VERSION_ID >= 50400) { - // Limit backtrace to last 3 calls as we don't use the rest - // Limit argument was introduced in PHP 5.4.0 - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3); - } elseif (defined('DEBUG_BACKTRACE_IGNORE_ARGS')) { - // DEBUG_BACKTRACE_IGNORE_ARGS was introduced in PHP 5.3.6 - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - } else { - $backtrace = debug_backtrace(); - } - - $file = $line = null; - if (isset($backtrace[2]) && isset($backtrace[2]['file'])) { - $file = $backtrace[2]['file']; - $line = $backtrace[2]['line']; - } - - // If no method prophecies defined, then it's a dummy, so we'll just return null - if ('__destruct' === $methodName || 0 == count($prophecy->getMethodProphecies())) { - $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line); - - return null; - } - - // There are method prophecies, so it's a fake/stub. Searching prophecy for this call - $matches = array(); - foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) { - if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) { - $matches[] = array($score, $methodProphecy); - } - } - - // If fake/stub doesn't have method prophecy for this call - throw exception - if (!count($matches)) { - throw $this->createUnexpectedCallException($prophecy, $methodName, $arguments); - } - - // Sort matches by their score value - @usort($matches, function ($match1, $match2) { return $match2[0] - $match1[0]; }); - - // If Highest rated method prophecy has a promise - execute it or return null instead - $methodProphecy = $matches[0][1]; - $returnValue = null; - $exception = null; - if ($promise = $methodProphecy->getPromise()) { - try { - $returnValue = $promise->execute($arguments, $prophecy, $methodProphecy); - } catch (\Exception $e) { - $exception = $e; - } - } - - if ($methodProphecy->hasReturnVoid() && $returnValue !== null) { - throw new MethodProphecyException( - "The method \"$methodName\" has a void return type, but the promise returned a value", - $methodProphecy - ); - } - - $this->recordedCalls[] = new Call( - $methodName, $arguments, $returnValue, $exception, $file, $line - ); - - if (null !== $exception) { - throw $exception; - } - - return $returnValue; - } - - /** - * Searches for calls by method name & arguments wildcard. - * - * @param string $methodName - * @param ArgumentsWildcard $wildcard - * - * @return Call[] - */ - public function findCalls($methodName, ArgumentsWildcard $wildcard) - { - return array_values( - array_filter($this->recordedCalls, function (Call $call) use ($methodName, $wildcard) { - return $methodName === $call->getMethodName() - && 0 < $wildcard->scoreArguments($call->getArguments()) - ; - }) - ); - } - - private function createUnexpectedCallException(ObjectProphecy $prophecy, $methodName, - array $arguments) - { - $classname = get_class($prophecy->reveal()); - $argstring = implode(', ', array_map(array($this->util, 'stringify'), $arguments)); - $expected = implode("\n", array_map(function (MethodProphecy $methodProphecy) { - return sprintf(' - %s(%s)', - $methodProphecy->getMethodName(), - $methodProphecy->getArgumentsWildcard() - ); - }, call_user_func_array('array_merge', $prophecy->getMethodProphecies()))); - - return new UnexpectedCallException( - sprintf( - "Method call:\n". - " - %s(%s)\n". - "on %s was not expected, expected calls were:\n%s", - - $methodName, $argstring, $classname, $expected - ), - $prophecy, $methodName, $arguments - ); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php deleted file mode 100644 index 874e474c..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php +++ /dev/null @@ -1,42 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Comparator; - -use SebastianBergmann\Comparator\Comparator; -use SebastianBergmann\Comparator\ComparisonFailure; - -/** - * Closure comparator. - * - * @author Konstantin Kudryashov - */ -final class ClosureComparator extends Comparator -{ - public function accepts($expected, $actual) - { - return is_object($expected) && $expected instanceof \Closure - && is_object($actual) && $actual instanceof \Closure; - } - - public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false) - { - throw new ComparisonFailure( - $expected, - $actual, - // we don't need a diff - '', - '', - false, - 'all closures are born different' - ); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php deleted file mode 100644 index 2070db14..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php +++ /dev/null @@ -1,47 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Comparator; - -use SebastianBergmann\Comparator\Factory as BaseFactory; - -/** - * Prophecy comparator factory. - * - * @author Konstantin Kudryashov - */ -final class Factory extends BaseFactory -{ - /** - * @var Factory - */ - private static $instance; - - public function __construct() - { - parent::__construct(); - - $this->register(new ClosureComparator()); - $this->register(new ProphecyComparator()); - } - - /** - * @return Factory - */ - public static function getInstance() - { - if (self::$instance === null) { - self::$instance = new Factory; - } - - return self::$instance; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php deleted file mode 100644 index 298a8e35..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php +++ /dev/null @@ -1,28 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Comparator; - -use Prophecy\Prophecy\ProphecyInterface; -use SebastianBergmann\Comparator\ObjectComparator; - -class ProphecyComparator extends ObjectComparator -{ - public function accepts($expected, $actual) - { - return is_object($expected) && is_object($actual) && $actual instanceof ProphecyInterface; - } - - public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array()) - { - parent::assertEquals($expected, $actual->reveal(), $delta, $canonicalize, $ignoreCase, $processed); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php deleted file mode 100644 index d6b6b1a9..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php +++ /dev/null @@ -1,68 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -use ReflectionClass; - -/** - * Cached class doubler. - * Prevents mirroring/creation of the same structure twice. - * - * @author Konstantin Kudryashov - */ -class CachedDoubler extends Doubler -{ - private $classes = array(); - - /** - * {@inheritdoc} - */ - public function registerClassPatch(ClassPatch\ClassPatchInterface $patch) - { - $this->classes[] = array(); - - parent::registerClassPatch($patch); - } - - /** - * {@inheritdoc} - */ - protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) - { - $classId = $this->generateClassId($class, $interfaces); - if (isset($this->classes[$classId])) { - return $this->classes[$classId]; - } - - return $this->classes[$classId] = parent::createDoubleClass($class, $interfaces); - } - - /** - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces - * - * @return string - */ - private function generateClassId(ReflectionClass $class = null, array $interfaces) - { - $parts = array(); - if (null !== $class) { - $parts[] = $class->getName(); - } - foreach ($interfaces as $interface) { - $parts[] = $interface->getName(); - } - sort($parts); - - return md5(implode('', $parts)); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php deleted file mode 100644 index d6d19685..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php +++ /dev/null @@ -1,48 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -/** - * Class patch interface. - * Class patches extend doubles functionality or help - * Prophecy to avoid some internal PHP bugs. - * - * @author Konstantin Kudryashov - */ -interface ClassPatchInterface -{ - /** - * Checks if patch supports specific class node. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node); - - /** - * Applies patch to the specific class node. - * - * @param ClassNode $node - * @return void - */ - public function apply(ClassNode $node); - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php deleted file mode 100644 index 61998fc4..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php +++ /dev/null @@ -1,72 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; - -/** - * Disable constructor. - * Makes all constructor arguments optional. - * - * @author Konstantin Kudryashov - */ -class DisableConstructorPatch implements ClassPatchInterface -{ - /** - * Checks if class has `__construct` method. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - return true; - } - - /** - * Makes all class constructor arguments optional. - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - if (!$node->hasMethod('__construct')) { - $node->addMethod(new MethodNode('__construct', '')); - - return; - } - - $constructor = $node->getMethod('__construct'); - foreach ($constructor->getArguments() as $argument) { - $argument->setDefault(null); - } - - $constructor->setCode(<< - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -/** - * Exception patch for HHVM to remove the stubs from special methods - * - * @author Christophe Coevoet - */ -class HhvmExceptionPatch implements ClassPatchInterface -{ - /** - * Supports exceptions on HHVM. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - if (!defined('HHVM_VERSION')) { - return false; - } - - return 'Exception' === $node->getParentClass() || is_subclass_of($node->getParentClass(), 'Exception'); - } - - /** - * Removes special exception static methods from the doubled methods. - * - * @param ClassNode $node - * - * @return void - */ - public function apply(ClassNode $node) - { - if ($node->hasMethod('setTraceOptions')) { - $node->getMethod('setTraceOptions')->useParentCode(); - } - if ($node->hasMethod('getTraceOptions')) { - $node->getMethod('getTraceOptions')->useParentCode(); - } - } - - /** - * {@inheritdoc} - */ - public function getPriority() - { - return -50; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php deleted file mode 100644 index 41ea2fc1..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php +++ /dev/null @@ -1,140 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -/** - * Remove method functionality from the double which will clash with php keywords. - * - * @author Milan Magudia - */ -class KeywordPatch implements ClassPatchInterface -{ - /** - * Support any class - * - * @param ClassNode $node - * - * @return boolean - */ - public function supports(ClassNode $node) - { - return true; - } - - /** - * Remove methods that clash with php keywords - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - $methodNames = array_keys($node->getMethods()); - $methodsToRemove = array_intersect($methodNames, $this->getKeywords()); - foreach ($methodsToRemove as $methodName) { - $node->removeMethod($methodName); - } - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority() - { - return 49; - } - - /** - * Returns array of php keywords. - * - * @return array - */ - private function getKeywords() - { - if (\PHP_VERSION_ID >= 70000) { - return array('__halt_compiler'); - } - - return array( - '__halt_compiler', - 'abstract', - 'and', - 'array', - 'as', - 'break', - 'callable', - 'case', - 'catch', - 'class', - 'clone', - 'const', - 'continue', - 'declare', - 'default', - 'die', - 'do', - 'echo', - 'else', - 'elseif', - 'empty', - 'enddeclare', - 'endfor', - 'endforeach', - 'endif', - 'endswitch', - 'endwhile', - 'eval', - 'exit', - 'extends', - 'final', - 'finally', - 'for', - 'foreach', - 'function', - 'global', - 'goto', - 'if', - 'implements', - 'include', - 'include_once', - 'instanceof', - 'insteadof', - 'interface', - 'isset', - 'list', - 'namespace', - 'new', - 'or', - 'print', - 'private', - 'protected', - 'public', - 'require', - 'require_once', - 'return', - 'static', - 'switch', - 'throw', - 'trait', - 'try', - 'unset', - 'use', - 'var', - 'while', - 'xor', - 'yield', - ); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php deleted file mode 100644 index 5f2c6077..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php +++ /dev/null @@ -1,89 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; -use Prophecy\PhpDocumentor\ClassAndInterfaceTagRetriever; -use Prophecy\PhpDocumentor\MethodTagRetrieverInterface; - -/** - * Discover Magical API using "@method" PHPDoc format. - * - * @author Thomas Tourlourat - * @author Kévin Dunglas - * @author Théo FIDRY - */ -class MagicCallPatch implements ClassPatchInterface -{ - private $tagRetriever; - - public function __construct(MethodTagRetrieverInterface $tagRetriever = null) - { - $this->tagRetriever = null === $tagRetriever ? new ClassAndInterfaceTagRetriever() : $tagRetriever; - } - - /** - * Support any class - * - * @param ClassNode $node - * - * @return boolean - */ - public function supports(ClassNode $node) - { - return true; - } - - /** - * Discover Magical API - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - $types = array_filter($node->getInterfaces(), function ($interface) { - return 0 !== strpos($interface, 'Prophecy\\'); - }); - $types[] = $node->getParentClass(); - - foreach ($types as $type) { - $reflectionClass = new \ReflectionClass($type); - $tagList = $this->tagRetriever->getTagList($reflectionClass); - - foreach($tagList as $tag) { - $methodName = $tag->getMethodName(); - - if (empty($methodName)) { - continue; - } - - if (!$reflectionClass->hasMethod($methodName)) { - $methodNode = new MethodNode($methodName); - $methodNode->setStatic($tag->isStatic()); - $node->addMethod($methodNode); - } - } - } - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return integer Priority number (higher - earlier) - */ - public function getPriority() - { - return 50; - } -} - diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php deleted file mode 100644 index fc2cc4de..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php +++ /dev/null @@ -1,104 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; -use Prophecy\Doubler\Generator\Node\ArgumentNode; - -/** - * Add Prophecy functionality to the double. - * This is a core class patch for Prophecy. - * - * @author Konstantin Kudryashov - */ -class ProphecySubjectPatch implements ClassPatchInterface -{ - /** - * Always returns true. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - return true; - } - - /** - * Apply Prophecy functionality to class node. - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface'); - $node->addProperty('objectProphecy', 'private'); - - foreach ($node->getMethods() as $name => $method) { - if ('__construct' === strtolower($name)) { - continue; - } - - if ($method->getReturnType() === 'void') { - $method->setCode( - '$this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());' - ); - } else { - $method->setCode( - 'return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());' - ); - } - } - - $prophecySetter = new MethodNode('setProphecy'); - $prophecyArgument = new ArgumentNode('prophecy'); - $prophecyArgument->setTypeHint('Prophecy\Prophecy\ProphecyInterface'); - $prophecySetter->addArgument($prophecyArgument); - $prophecySetter->setCode('$this->objectProphecy = $prophecy;'); - - $prophecyGetter = new MethodNode('getProphecy'); - $prophecyGetter->setCode('return $this->objectProphecy;'); - - if ($node->hasMethod('__call')) { - $__call = $node->getMethod('__call'); - } else { - $__call = new MethodNode('__call'); - $__call->addArgument(new ArgumentNode('name')); - $__call->addArgument(new ArgumentNode('arguments')); - - $node->addMethod($__call); - } - - $__call->setCode(<<getProphecy(), func_get_arg(0) -); -PHP - ); - - $node->addMethod($prophecySetter); - $node->addMethod($prophecyGetter); - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority() - { - return 0; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php deleted file mode 100644 index 9166aeef..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php +++ /dev/null @@ -1,57 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -/** - * ReflectionClass::newInstance patch. - * Makes first argument of newInstance optional, since it works but signature is misleading - * - * @author Florian Klein - */ -class ReflectionClassNewInstancePatch implements ClassPatchInterface -{ - /** - * Supports ReflectionClass - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - return 'ReflectionClass' === $node->getParentClass(); - } - - /** - * Updates newInstance's first argument to make it optional - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - foreach ($node->getMethod('newInstance')->getArguments() as $argument) { - $argument->setDefault(null); - } - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher = earlier) - */ - public function getPriority() - { - return 50; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php deleted file mode 100644 index ceee94a2..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php +++ /dev/null @@ -1,123 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; - -/** - * SplFileInfo patch. - * Makes SplFileInfo and derivative classes usable with Prophecy. - * - * @author Konstantin Kudryashov - */ -class SplFileInfoPatch implements ClassPatchInterface -{ - /** - * Supports everything that extends SplFileInfo. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - if (null === $node->getParentClass()) { - return false; - } - return 'SplFileInfo' === $node->getParentClass() - || is_subclass_of($node->getParentClass(), 'SplFileInfo') - ; - } - - /** - * Updated constructor code to call parent one with dummy file argument. - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - if ($node->hasMethod('__construct')) { - $constructor = $node->getMethod('__construct'); - } else { - $constructor = new MethodNode('__construct'); - $node->addMethod($constructor); - } - - if ($this->nodeIsDirectoryIterator($node)) { - $constructor->setCode('return parent::__construct("' . __DIR__ . '");'); - - return; - } - - if ($this->nodeIsSplFileObject($node)) { - $filePath = str_replace('\\','\\\\',__FILE__); - $constructor->setCode('return parent::__construct("' . $filePath .'");'); - - return; - } - - if ($this->nodeIsSymfonySplFileInfo($node)) { - $filePath = str_replace('\\','\\\\',__FILE__); - $constructor->setCode('return parent::__construct("' . $filePath .'", "", "");'); - - return; - } - - $constructor->useParentCode(); - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority() - { - return 50; - } - - /** - * @param ClassNode $node - * @return boolean - */ - private function nodeIsDirectoryIterator(ClassNode $node) - { - $parent = $node->getParentClass(); - - return 'DirectoryIterator' === $parent - || is_subclass_of($parent, 'DirectoryIterator'); - } - - /** - * @param ClassNode $node - * @return boolean - */ - private function nodeIsSplFileObject(ClassNode $node) - { - $parent = $node->getParentClass(); - - return 'SplFileObject' === $parent - || is_subclass_of($parent, 'SplFileObject'); - } - - /** - * @param ClassNode $node - * @return boolean - */ - private function nodeIsSymfonySplFileInfo(ClassNode $node) - { - $parent = $node->getParentClass(); - - return 'Symfony\\Component\\Finder\\SplFileInfo' === $parent; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php deleted file mode 100644 index eea02028..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php +++ /dev/null @@ -1,83 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; - -/** - * Traversable interface patch. - * Forces classes that implement interfaces, that extend Traversable to also implement Iterator. - * - * @author Konstantin Kudryashov - */ -class TraversablePatch implements ClassPatchInterface -{ - /** - * Supports nodetree, that implement Traversable, but not Iterator or IteratorAggregate. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - if (in_array('Iterator', $node->getInterfaces())) { - return false; - } - if (in_array('IteratorAggregate', $node->getInterfaces())) { - return false; - } - - foreach ($node->getInterfaces() as $interface) { - if ('Traversable' !== $interface && !is_subclass_of($interface, 'Traversable')) { - continue; - } - if ('Iterator' === $interface || is_subclass_of($interface, 'Iterator')) { - continue; - } - if ('IteratorAggregate' === $interface || is_subclass_of($interface, 'IteratorAggregate')) { - continue; - } - - return true; - } - - return false; - } - - /** - * Forces class to implement Iterator interface. - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - $node->addInterface('Iterator'); - - $node->addMethod(new MethodNode('current')); - $node->addMethod(new MethodNode('key')); - $node->addMethod(new MethodNode('next')); - $node->addMethod(new MethodNode('rewind')); - $node->addMethod(new MethodNode('valid')); - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority() - { - return 100; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php deleted file mode 100644 index 699be3a2..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -/** - * Core double interface. - * All doubled classes will implement this one. - * - * @author Konstantin Kudryashov - */ -interface DoubleInterface -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php deleted file mode 100644 index a378ae27..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php +++ /dev/null @@ -1,146 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -use Doctrine\Instantiator\Instantiator; -use Prophecy\Doubler\ClassPatch\ClassPatchInterface; -use Prophecy\Doubler\Generator\ClassMirror; -use Prophecy\Doubler\Generator\ClassCreator; -use Prophecy\Exception\InvalidArgumentException; -use ReflectionClass; - -/** - * Cached class doubler. - * Prevents mirroring/creation of the same structure twice. - * - * @author Konstantin Kudryashov - */ -class Doubler -{ - private $mirror; - private $creator; - private $namer; - - /** - * @var ClassPatchInterface[] - */ - private $patches = array(); - - /** - * @var \Doctrine\Instantiator\Instantiator - */ - private $instantiator; - - /** - * Initializes doubler. - * - * @param ClassMirror $mirror - * @param ClassCreator $creator - * @param NameGenerator $namer - */ - public function __construct(ClassMirror $mirror = null, ClassCreator $creator = null, - NameGenerator $namer = null) - { - $this->mirror = $mirror ?: new ClassMirror; - $this->creator = $creator ?: new ClassCreator; - $this->namer = $namer ?: new NameGenerator; - } - - /** - * Returns list of registered class patches. - * - * @return ClassPatchInterface[] - */ - public function getClassPatches() - { - return $this->patches; - } - - /** - * Registers new class patch. - * - * @param ClassPatchInterface $patch - */ - public function registerClassPatch(ClassPatchInterface $patch) - { - $this->patches[] = $patch; - - @usort($this->patches, function (ClassPatchInterface $patch1, ClassPatchInterface $patch2) { - return $patch2->getPriority() - $patch1->getPriority(); - }); - } - - /** - * Creates double from specific class or/and list of interfaces. - * - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces Array of ReflectionClass instances - * @param array $args Constructor arguments - * - * @return DoubleInterface - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function double(ReflectionClass $class = null, array $interfaces, array $args = null) - { - foreach ($interfaces as $interface) { - if (!$interface instanceof ReflectionClass) { - throw new InvalidArgumentException(sprintf( - "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n". - "a second argument to `Doubler::double(...)`, but got %s.", - is_object($interface) ? get_class($interface).' class' : gettype($interface) - )); - } - } - - $classname = $this->createDoubleClass($class, $interfaces); - $reflection = new ReflectionClass($classname); - - if (null !== $args) { - return $reflection->newInstanceArgs($args); - } - if ((null === $constructor = $reflection->getConstructor()) - || ($constructor->isPublic() && !$constructor->isFinal())) { - return $reflection->newInstance(); - } - - if (!$this->instantiator) { - $this->instantiator = new Instantiator(); - } - - return $this->instantiator->instantiate($classname); - } - - /** - * Creates double class and returns its FQN. - * - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces - * - * @return string - */ - protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) - { - $name = $this->namer->name($class, $interfaces); - $node = $this->mirror->reflect($class, $interfaces); - - foreach ($this->patches as $patch) { - if ($patch->supports($node)) { - $patch->apply($node); - } - } - - $this->creator->create($name, $node); - - return $name; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php deleted file mode 100644 index fc1079c5..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php +++ /dev/null @@ -1,145 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator; - -/** - * Class code creator. - * Generates PHP code for specific class node tree. - * - * @author Konstantin Kudryashov - */ -class ClassCodeGenerator -{ - /** - * Generates PHP code for class node. - * - * @param string $classname - * @param Node\ClassNode $class - * - * @return string - */ - public function generate($classname, Node\ClassNode $class) - { - $parts = explode('\\', $classname); - $classname = array_pop($parts); - $namespace = implode('\\', $parts); - - $code = sprintf("class %s extends \%s implements %s {\n", - $classname, $class->getParentClass(), implode(', ', - array_map(function ($interface) {return '\\'.$interface;}, $class->getInterfaces()) - ) - ); - - foreach ($class->getProperties() as $name => $visibility) { - $code .= sprintf("%s \$%s;\n", $visibility, $name); - } - $code .= "\n"; - - foreach ($class->getMethods() as $method) { - $code .= $this->generateMethod($method)."\n"; - } - $code .= "\n}"; - - return sprintf("namespace %s {\n%s\n}", $namespace, $code); - } - - private function generateMethod(Node\MethodNode $method) - { - $php = sprintf("%s %s function %s%s(%s)%s {\n", - $method->getVisibility(), - $method->isStatic() ? 'static' : '', - $method->returnsReference() ? '&':'', - $method->getName(), - implode(', ', $this->generateArguments($method->getArguments())), - $this->getReturnType($method) - ); - $php .= $method->getCode()."\n"; - - return $php.'}'; - } - - /** - * @return string - */ - private function getReturnType(Node\MethodNode $method) - { - if (version_compare(PHP_VERSION, '7.1', '>=')) { - if ($method->hasReturnType()) { - return $method->hasNullableReturnType() - ? sprintf(': ?%s', $method->getReturnType()) - : sprintf(': %s', $method->getReturnType()); - } - } - - if (version_compare(PHP_VERSION, '7.0', '>=')) { - return $method->hasReturnType() && $method->getReturnType() !== 'void' - ? sprintf(': %s', $method->getReturnType()) - : ''; - } - - return ''; - } - - private function generateArguments(array $arguments) - { - return array_map(function (Node\ArgumentNode $argument) { - $php = ''; - - if (version_compare(PHP_VERSION, '7.1', '>=')) { - $php .= $argument->isNullable() ? '?' : ''; - } - - if ($hint = $argument->getTypeHint()) { - switch ($hint) { - case 'array': - case 'callable': - $php .= $hint; - break; - - case 'iterable': - if (version_compare(PHP_VERSION, '7.1', '>=')) { - $php .= $hint; - break; - } - - $php .= '\\'.$hint; - break; - - case 'string': - case 'int': - case 'float': - case 'bool': - if (version_compare(PHP_VERSION, '7.0', '>=')) { - $php .= $hint; - break; - } - // Fall-through to default case for PHP 5.x - - default: - $php .= '\\'.$hint; - } - } - - $php .= ' '.($argument->isPassedByReference() ? '&' : ''); - - $php .= $argument->isVariadic() ? '...' : ''; - - $php .= '$'.$argument->getName(); - - if ($argument->isOptional() && !$argument->isVariadic()) { - $php .= ' = '.var_export($argument->getDefault(), true); - } - - return $php; - }, $arguments); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php deleted file mode 100644 index 882a4a4b..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php +++ /dev/null @@ -1,67 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator; - -use Prophecy\Exception\Doubler\ClassCreatorException; - -/** - * Class creator. - * Creates specific class in current environment. - * - * @author Konstantin Kudryashov - */ -class ClassCreator -{ - private $generator; - - /** - * Initializes creator. - * - * @param ClassCodeGenerator $generator - */ - public function __construct(ClassCodeGenerator $generator = null) - { - $this->generator = $generator ?: new ClassCodeGenerator; - } - - /** - * Creates class. - * - * @param string $classname - * @param Node\ClassNode $class - * - * @return mixed - * - * @throws \Prophecy\Exception\Doubler\ClassCreatorException - */ - public function create($classname, Node\ClassNode $class) - { - $code = $this->generator->generate($classname, $class); - $return = eval($code); - - if (!class_exists($classname, false)) { - if (count($class->getInterfaces())) { - throw new ClassCreatorException(sprintf( - 'Could not double `%s` and implement interfaces: [%s].', - $class->getParentClass(), implode(', ', $class->getInterfaces()) - ), $class); - } - - throw new ClassCreatorException( - sprintf('Could not double `%s`.', $class->getParentClass()), - $class - ); - } - - return $return; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php deleted file mode 100644 index 9f99239f..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php +++ /dev/null @@ -1,258 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator; - -use Prophecy\Exception\InvalidArgumentException; -use Prophecy\Exception\Doubler\ClassMirrorException; -use ReflectionClass; -use ReflectionMethod; -use ReflectionParameter; - -/** - * Class mirror. - * Core doubler class. Mirrors specific class and/or interfaces into class node tree. - * - * @author Konstantin Kudryashov - */ -class ClassMirror -{ - private static $reflectableMethods = array( - '__construct', - '__destruct', - '__sleep', - '__wakeup', - '__toString', - '__call', - '__invoke' - ); - - /** - * Reflects provided arguments into class node. - * - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces - * - * @return Node\ClassNode - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function reflect(ReflectionClass $class = null, array $interfaces) - { - $node = new Node\ClassNode; - - if (null !== $class) { - if (true === $class->isInterface()) { - throw new InvalidArgumentException(sprintf( - "Could not reflect %s as a class, because it\n". - "is interface - use the second argument instead.", - $class->getName() - )); - } - - $this->reflectClassToNode($class, $node); - } - - foreach ($interfaces as $interface) { - if (!$interface instanceof ReflectionClass) { - throw new InvalidArgumentException(sprintf( - "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n". - "a second argument to `ClassMirror::reflect(...)`, but got %s.", - is_object($interface) ? get_class($interface).' class' : gettype($interface) - )); - } - if (false === $interface->isInterface()) { - throw new InvalidArgumentException(sprintf( - "Could not reflect %s as an interface, because it\n". - "is class - use the first argument instead.", - $interface->getName() - )); - } - - $this->reflectInterfaceToNode($interface, $node); - } - - $node->addInterface('Prophecy\Doubler\Generator\ReflectionInterface'); - - return $node; - } - - private function reflectClassToNode(ReflectionClass $class, Node\ClassNode $node) - { - if (true === $class->isFinal()) { - throw new ClassMirrorException(sprintf( - 'Could not reflect class %s as it is marked final.', $class->getName() - ), $class); - } - - $node->setParentClass($class->getName()); - - foreach ($class->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) { - if (false === $method->isProtected()) { - continue; - } - - $this->reflectMethodToNode($method, $node); - } - - foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { - if (0 === strpos($method->getName(), '_') - && !in_array($method->getName(), self::$reflectableMethods)) { - continue; - } - - if (true === $method->isFinal()) { - $node->addUnextendableMethod($method->getName()); - continue; - } - - $this->reflectMethodToNode($method, $node); - } - } - - private function reflectInterfaceToNode(ReflectionClass $interface, Node\ClassNode $node) - { - $node->addInterface($interface->getName()); - - foreach ($interface->getMethods() as $method) { - $this->reflectMethodToNode($method, $node); - } - } - - private function reflectMethodToNode(ReflectionMethod $method, Node\ClassNode $classNode) - { - $node = new Node\MethodNode($method->getName()); - - if (true === $method->isProtected()) { - $node->setVisibility('protected'); - } - - if (true === $method->isStatic()) { - $node->setStatic(); - } - - if (true === $method->returnsReference()) { - $node->setReturnsReference(); - } - - if (version_compare(PHP_VERSION, '7.0', '>=') && $method->hasReturnType()) { - $returnType = (string) $method->getReturnType(); - $returnTypeLower = strtolower($returnType); - - if ('self' === $returnTypeLower) { - $returnType = $method->getDeclaringClass()->getName(); - } - if ('parent' === $returnTypeLower) { - $returnType = $method->getDeclaringClass()->getParentClass()->getName(); - } - - $node->setReturnType($returnType); - - if (version_compare(PHP_VERSION, '7.1', '>=') && $method->getReturnType()->allowsNull()) { - $node->setNullableReturnType(true); - } - } - - if (is_array($params = $method->getParameters()) && count($params)) { - foreach ($params as $param) { - $this->reflectArgumentToNode($param, $node); - } - } - - $classNode->addMethod($node); - } - - private function reflectArgumentToNode(ReflectionParameter $parameter, Node\MethodNode $methodNode) - { - $name = $parameter->getName() == '...' ? '__dot_dot_dot__' : $parameter->getName(); - $node = new Node\ArgumentNode($name); - - $node->setTypeHint($this->getTypeHint($parameter)); - - if ($this->isVariadic($parameter)) { - $node->setAsVariadic(); - } - - if ($this->hasDefaultValue($parameter)) { - $node->setDefault($this->getDefaultValue($parameter)); - } - - if ($parameter->isPassedByReference()) { - $node->setAsPassedByReference(); - } - - $methodNode->addArgument($node); - } - - private function hasDefaultValue(ReflectionParameter $parameter) - { - if ($this->isVariadic($parameter)) { - return false; - } - - if ($parameter->isDefaultValueAvailable()) { - return true; - } - - return $parameter->isOptional() || $this->isNullable($parameter); - } - - private function getDefaultValue(ReflectionParameter $parameter) - { - if (!$parameter->isDefaultValueAvailable()) { - return null; - } - - return $parameter->getDefaultValue(); - } - - private function getTypeHint(ReflectionParameter $parameter) - { - if (null !== $className = $this->getParameterClassName($parameter)) { - return $className; - } - - if (true === $parameter->isArray()) { - return 'array'; - } - - if (version_compare(PHP_VERSION, '5.4', '>=') && true === $parameter->isCallable()) { - return 'callable'; - } - - if (version_compare(PHP_VERSION, '7.0', '>=') && true === $parameter->hasType()) { - return (string) $parameter->getType(); - } - - return null; - } - - private function isVariadic(ReflectionParameter $parameter) - { - return PHP_VERSION_ID >= 50600 && $parameter->isVariadic(); - } - - private function isNullable(ReflectionParameter $parameter) - { - return $parameter->allowsNull() && null !== $this->getTypeHint($parameter); - } - - private function getParameterClassName(ReflectionParameter $parameter) - { - try { - return $parameter->getClass() ? $parameter->getClass()->getName() : null; - } catch (\ReflectionException $e) { - preg_match('/\[\s\<\w+?>\s([\w,\\\]+)/s', $parameter, $matches); - - return isset($matches[1]) ? $matches[1] : null; - } - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php deleted file mode 100644 index dd29b68f..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php +++ /dev/null @@ -1,102 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator\Node; - -/** - * Argument node. - * - * @author Konstantin Kudryashov - */ -class ArgumentNode -{ - private $name; - private $typeHint; - private $default; - private $optional = false; - private $byReference = false; - private $isVariadic = false; - private $isNullable = false; - - /** - * @param string $name - */ - public function __construct($name) - { - $this->name = $name; - } - - public function getName() - { - return $this->name; - } - - public function getTypeHint() - { - return $this->typeHint; - } - - public function setTypeHint($typeHint = null) - { - $this->typeHint = $typeHint; - } - - public function hasDefault() - { - return $this->isOptional() && !$this->isVariadic(); - } - - public function getDefault() - { - return $this->default; - } - - public function setDefault($default = null) - { - $this->optional = true; - $this->default = $default; - } - - public function isOptional() - { - return $this->optional; - } - - public function setAsPassedByReference($byReference = true) - { - $this->byReference = $byReference; - } - - public function isPassedByReference() - { - return $this->byReference; - } - - public function setAsVariadic($isVariadic = true) - { - $this->isVariadic = $isVariadic; - } - - public function isVariadic() - { - return $this->isVariadic; - } - - public function isNullable() - { - return $this->isNullable; - } - - public function setAsNullable($isNullable = true) - { - $this->isNullable = $isNullable; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php deleted file mode 100644 index 1499a1d3..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php +++ /dev/null @@ -1,166 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator\Node; - -use Prophecy\Exception\Doubler\MethodNotExtendableException; -use Prophecy\Exception\InvalidArgumentException; - -/** - * Class node. - * - * @author Konstantin Kudryashov - */ -class ClassNode -{ - private $parentClass = 'stdClass'; - private $interfaces = array(); - private $properties = array(); - private $unextendableMethods = array(); - - /** - * @var MethodNode[] - */ - private $methods = array(); - - public function getParentClass() - { - return $this->parentClass; - } - - /** - * @param string $class - */ - public function setParentClass($class) - { - $this->parentClass = $class ?: 'stdClass'; - } - - /** - * @return string[] - */ - public function getInterfaces() - { - return $this->interfaces; - } - - /** - * @param string $interface - */ - public function addInterface($interface) - { - if ($this->hasInterface($interface)) { - return; - } - - array_unshift($this->interfaces, $interface); - } - - /** - * @param string $interface - * - * @return bool - */ - public function hasInterface($interface) - { - return in_array($interface, $this->interfaces); - } - - public function getProperties() - { - return $this->properties; - } - - public function addProperty($name, $visibility = 'public') - { - $visibility = strtolower($visibility); - - if (!in_array($visibility, array('public', 'private', 'protected'))) { - throw new InvalidArgumentException(sprintf( - '`%s` property visibility is not supported.', $visibility - )); - } - - $this->properties[$name] = $visibility; - } - - /** - * @return MethodNode[] - */ - public function getMethods() - { - return $this->methods; - } - - public function addMethod(MethodNode $method) - { - if (!$this->isExtendable($method->getName())){ - $message = sprintf( - 'Method `%s` is not extendable, so can not be added.', $method->getName() - ); - throw new MethodNotExtendableException($message, $this->getParentClass(), $method->getName()); - } - $this->methods[$method->getName()] = $method; - } - - public function removeMethod($name) - { - unset($this->methods[$name]); - } - - /** - * @param string $name - * - * @return MethodNode|null - */ - public function getMethod($name) - { - return $this->hasMethod($name) ? $this->methods[$name] : null; - } - - /** - * @param string $name - * - * @return bool - */ - public function hasMethod($name) - { - return isset($this->methods[$name]); - } - - /** - * @return string[] - */ - public function getUnextendableMethods() - { - return $this->unextendableMethods; - } - - /** - * @param string $unextendableMethod - */ - public function addUnextendableMethod($unextendableMethod) - { - if (!$this->isExtendable($unextendableMethod)){ - return; - } - $this->unextendableMethods[] = $unextendableMethod; - } - - /** - * @param string $method - * @return bool - */ - public function isExtendable($method) - { - return !in_array($method, $this->unextendableMethods); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php deleted file mode 100644 index ee363ab3..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php +++ /dev/null @@ -1,207 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator\Node; - -use Prophecy\Exception\InvalidArgumentException; - -/** - * Method node. - * - * @author Konstantin Kudryashov - */ -class MethodNode -{ - private $name; - private $code; - private $visibility = 'public'; - private $static = false; - private $returnsReference = false; - private $returnType; - private $nullableReturnType = false; - - /** - * @var ArgumentNode[] - */ - private $arguments = array(); - - /** - * @param string $name - * @param string $code - */ - public function __construct($name, $code = null) - { - $this->name = $name; - $this->code = $code; - } - - public function getVisibility() - { - return $this->visibility; - } - - /** - * @param string $visibility - */ - public function setVisibility($visibility) - { - $visibility = strtolower($visibility); - - if (!in_array($visibility, array('public', 'private', 'protected'))) { - throw new InvalidArgumentException(sprintf( - '`%s` method visibility is not supported.', $visibility - )); - } - - $this->visibility = $visibility; - } - - public function isStatic() - { - return $this->static; - } - - public function setStatic($static = true) - { - $this->static = (bool) $static; - } - - public function returnsReference() - { - return $this->returnsReference; - } - - public function setReturnsReference() - { - $this->returnsReference = true; - } - - public function getName() - { - return $this->name; - } - - public function addArgument(ArgumentNode $argument) - { - $this->arguments[] = $argument; - } - - /** - * @return ArgumentNode[] - */ - public function getArguments() - { - return $this->arguments; - } - - public function hasReturnType() - { - return null !== $this->returnType; - } - - /** - * @param string $type - */ - public function setReturnType($type = null) - { - switch ($type) { - case '': - $this->returnType = null; - break; - - case 'string': - case 'float': - case 'int': - case 'bool': - case 'array': - case 'callable': - case 'iterable': - case 'void': - $this->returnType = $type; - break; - - case 'double': - case 'real': - $this->returnType = 'float'; - break; - - case 'boolean': - $this->returnType = 'bool'; - break; - - case 'integer': - $this->returnType = 'int'; - break; - - default: - $this->returnType = '\\' . ltrim($type, '\\'); - } - } - - public function getReturnType() - { - return $this->returnType; - } - - /** - * @param bool $bool - */ - public function setNullableReturnType($bool = true) - { - $this->nullableReturnType = (bool) $bool; - } - - /** - * @return bool - */ - public function hasNullableReturnType() - { - return $this->nullableReturnType; - } - - /** - * @param string $code - */ - public function setCode($code) - { - $this->code = $code; - } - - public function getCode() - { - if ($this->returnsReference) - { - return "throw new \Prophecy\Exception\Doubler\ReturnByReferenceException('Returning by reference not supported', get_class(\$this), '{$this->name}');"; - } - - return (string) $this->code; - } - - public function useParentCode() - { - $this->code = sprintf( - 'return parent::%s(%s);', $this->getName(), implode(', ', - array_map(array($this, 'generateArgument'), $this->arguments) - ) - ); - } - - private function generateArgument(ArgumentNode $arg) - { - $argument = '$'.$arg->getName(); - - if ($arg->isVariadic()) { - $argument = '...'.$argument; - } - - return $argument; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php deleted file mode 100644 index d720b151..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator; - -/** - * Reflection interface. - * All reflected classes implement this interface. - * - * @author Konstantin Kudryashov - */ -interface ReflectionInterface -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php deleted file mode 100644 index 8a99c4ce..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php +++ /dev/null @@ -1,127 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -use Prophecy\Exception\Doubler\DoubleException; -use Prophecy\Exception\Doubler\ClassNotFoundException; -use Prophecy\Exception\Doubler\InterfaceNotFoundException; -use ReflectionClass; - -/** - * Lazy double. - * Gives simple interface to describe double before creating it. - * - * @author Konstantin Kudryashov - */ -class LazyDouble -{ - private $doubler; - private $class; - private $interfaces = array(); - private $arguments = null; - private $double; - - /** - * Initializes lazy double. - * - * @param Doubler $doubler - */ - public function __construct(Doubler $doubler) - { - $this->doubler = $doubler; - } - - /** - * Tells doubler to use specific class as parent one for double. - * - * @param string|ReflectionClass $class - * - * @throws \Prophecy\Exception\Doubler\ClassNotFoundException - * @throws \Prophecy\Exception\Doubler\DoubleException - */ - public function setParentClass($class) - { - if (null !== $this->double) { - throw new DoubleException('Can not extend class with already instantiated double.'); - } - - if (!$class instanceof ReflectionClass) { - if (!class_exists($class)) { - throw new ClassNotFoundException(sprintf('Class %s not found.', $class), $class); - } - - $class = new ReflectionClass($class); - } - - $this->class = $class; - } - - /** - * Tells doubler to implement specific interface with double. - * - * @param string|ReflectionClass $interface - * - * @throws \Prophecy\Exception\Doubler\InterfaceNotFoundException - * @throws \Prophecy\Exception\Doubler\DoubleException - */ - public function addInterface($interface) - { - if (null !== $this->double) { - throw new DoubleException( - 'Can not implement interface with already instantiated double.' - ); - } - - if (!$interface instanceof ReflectionClass) { - if (!interface_exists($interface)) { - throw new InterfaceNotFoundException( - sprintf('Interface %s not found.', $interface), - $interface - ); - } - - $interface = new ReflectionClass($interface); - } - - $this->interfaces[] = $interface; - } - - /** - * Sets constructor arguments. - * - * @param array $arguments - */ - public function setArguments(array $arguments = null) - { - $this->arguments = $arguments; - } - - /** - * Creates double instance or returns already created one. - * - * @return DoubleInterface - */ - public function getInstance() - { - if (null === $this->double) { - if (null !== $this->arguments) { - return $this->double = $this->doubler->double( - $this->class, $this->interfaces, $this->arguments - ); - } - - $this->double = $this->doubler->double($this->class, $this->interfaces); - } - - return $this->double; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php deleted file mode 100644 index d67ec6a4..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php +++ /dev/null @@ -1,52 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -use ReflectionClass; - -/** - * Name generator. - * Generates classname for double. - * - * @author Konstantin Kudryashov - */ -class NameGenerator -{ - private static $counter = 1; - - /** - * Generates name. - * - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces - * - * @return string - */ - public function name(ReflectionClass $class = null, array $interfaces) - { - $parts = array(); - - if (null !== $class) { - $parts[] = $class->getName(); - } else { - foreach ($interfaces as $interface) { - $parts[] = $interface->getShortName(); - } - } - - if (!count($parts)) { - $parts[] = 'stdClass'; - } - - return sprintf('Double\%s\P%d', implode('\\', $parts), self::$counter++); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php deleted file mode 100644 index 48ed2254..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php +++ /dev/null @@ -1,40 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Call; - -use Prophecy\Exception\Prophecy\ObjectProphecyException; -use Prophecy\Prophecy\ObjectProphecy; - -class UnexpectedCallException extends ObjectProphecyException -{ - private $methodName; - private $arguments; - - public function __construct($message, ObjectProphecy $objectProphecy, - $methodName, array $arguments) - { - parent::__construct($message, $objectProphecy); - - $this->methodName = $methodName; - $this->arguments = $arguments; - } - - public function getMethodName() - { - return $this->methodName; - } - - public function getArguments() - { - return $this->arguments; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php deleted file mode 100644 index 822918a2..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -class ClassCreatorException extends \RuntimeException implements DoublerException -{ - private $node; - - public function __construct($message, ClassNode $node) - { - parent::__construct($message); - - $this->node = $node; - } - - public function getClassNode() - { - return $this->node; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php deleted file mode 100644 index 8fc53b8b..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -use ReflectionClass; - -class ClassMirrorException extends \RuntimeException implements DoublerException -{ - private $class; - - public function __construct($message, ReflectionClass $class) - { - parent::__construct($message); - - $this->class = $class; - } - - public function getReflectedClass() - { - return $this->class; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php deleted file mode 100644 index 5bc826d7..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php +++ /dev/null @@ -1,33 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -class ClassNotFoundException extends DoubleException -{ - private $classname; - - /** - * @param string $message - * @param string $classname - */ - public function __construct($message, $classname) - { - parent::__construct($message); - - $this->classname = $classname; - } - - public function getClassname() - { - return $this->classname; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php deleted file mode 100644 index 6642a58f..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -use RuntimeException; - -class DoubleException extends RuntimeException implements DoublerException -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php deleted file mode 100644 index 9d6be179..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -use Prophecy\Exception\Exception; - -interface DoublerException extends Exception -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php deleted file mode 100644 index e344dead..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -class InterfaceNotFoundException extends ClassNotFoundException -{ - public function getInterfaceName() - { - return $this->getClassname(); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php deleted file mode 100644 index 56f47b11..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php +++ /dev/null @@ -1,41 +0,0 @@ -methodName = $methodName; - $this->className = $className; - } - - - /** - * @return string - */ - public function getMethodName() - { - return $this->methodName; - } - - /** - * @return string - */ - public function getClassName() - { - return $this->className; - } - - } diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php deleted file mode 100644 index b113941f..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php +++ /dev/null @@ -1,60 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -class MethodNotFoundException extends DoubleException -{ - /** - * @var string - */ - private $classname; - - /** - * @var string - */ - private $methodName; - - /** - * @var array - */ - private $arguments; - - /** - * @param string $message - * @param string $classname - * @param string $methodName - * @param null|Argument\ArgumentsWildcard|array $arguments - */ - public function __construct($message, $classname, $methodName, $arguments = null) - { - parent::__construct($message); - - $this->classname = $classname; - $this->methodName = $methodName; - $this->arguments = $arguments; - } - - public function getClassname() - { - return $this->classname; - } - - public function getMethodName() - { - return $this->methodName; - } - - public function getArguments() - { - return $this->arguments; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php deleted file mode 100644 index 63030497..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php +++ /dev/null @@ -1,41 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -class ReturnByReferenceException extends DoubleException -{ - private $classname; - private $methodName; - - /** - * @param string $message - * @param string $classname - * @param string $methodName - */ - public function __construct($message, $classname, $methodName) - { - parent::__construct($message); - - $this->classname = $classname; - $this->methodName = $methodName; - } - - public function getClassname() - { - return $this->classname; - } - - public function getMethodName() - { - return $this->methodName; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php deleted file mode 100644 index ac9fe4dd..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php +++ /dev/null @@ -1,26 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception; - -/** - * Core Prophecy exception interface. - * All Prophecy exceptions implement it. - * - * @author Konstantin Kudryashov - */ -interface Exception -{ - /** - * @return string - */ - public function getMessage(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php deleted file mode 100644 index bc91c690..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception; - -class InvalidArgumentException extends \InvalidArgumentException implements Exception -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php deleted file mode 100644 index 44b598a4..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php +++ /dev/null @@ -1,50 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Prophecy\ObjectProphecy; - -class AggregateException extends \RuntimeException implements PredictionException -{ - private $exceptions = array(); - private $objectProphecy; - - public function append(PredictionException $exception) - { - $message = $exception->getMessage(); - $message = ' '.strtr($message, array("\n" => "\n "))."\n"; - - $this->message = rtrim($this->message.$message); - $this->exceptions[] = $exception; - } - - /** - * @return PredictionException[] - */ - public function getExceptions() - { - return $this->exceptions; - } - - public function setObjectProphecy(ObjectProphecy $objectProphecy) - { - $this->objectProphecy = $objectProphecy; - } - - /** - * @return ObjectProphecy - */ - public function getObjectProphecy() - { - return $this->objectProphecy; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php deleted file mode 100644 index bbbbc3d9..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php +++ /dev/null @@ -1,24 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use RuntimeException; - -/** - * Basic failed prediction exception. - * Use it for custom prediction failures. - * - * @author Konstantin Kudryashov - */ -class FailedPredictionException extends RuntimeException implements PredictionException -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php deleted file mode 100644 index 05ea4aad..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Exception\Prophecy\MethodProphecyException; - -class NoCallsException extends MethodProphecyException implements PredictionException -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php deleted file mode 100644 index 2596b1ef..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Exception\Exception; - -interface PredictionException extends Exception -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php deleted file mode 100644 index 9d905431..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Prophecy\MethodProphecy; - -class UnexpectedCallsCountException extends UnexpectedCallsException -{ - private $expectedCount; - - public function __construct($message, MethodProphecy $methodProphecy, $count, array $calls) - { - parent::__construct($message, $methodProphecy, $calls); - - $this->expectedCount = intval($count); - } - - public function getExpectedCount() - { - return $this->expectedCount; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php deleted file mode 100644 index 7a99c2d7..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php +++ /dev/null @@ -1,32 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Exception\Prophecy\MethodProphecyException; - -class UnexpectedCallsException extends MethodProphecyException implements PredictionException -{ - private $calls = array(); - - public function __construct($message, MethodProphecy $methodProphecy, array $calls) - { - parent::__construct($message, $methodProphecy); - - $this->calls = $calls; - } - - public function getCalls() - { - return $this->calls; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php deleted file mode 100644 index 1b03eaf4..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prophecy; - -use Prophecy\Prophecy\MethodProphecy; - -class MethodProphecyException extends ObjectProphecyException -{ - private $methodProphecy; - - public function __construct($message, MethodProphecy $methodProphecy) - { - parent::__construct($message, $methodProphecy->getObjectProphecy()); - - $this->methodProphecy = $methodProphecy; - } - - /** - * @return MethodProphecy - */ - public function getMethodProphecy() - { - return $this->methodProphecy; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php deleted file mode 100644 index e345402e..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prophecy; - -use Prophecy\Prophecy\ObjectProphecy; - -class ObjectProphecyException extends \RuntimeException implements ProphecyException -{ - private $objectProphecy; - - public function __construct($message, ObjectProphecy $objectProphecy) - { - parent::__construct($message); - - $this->objectProphecy = $objectProphecy; - } - - /** - * @return ObjectProphecy - */ - public function getObjectProphecy() - { - return $this->objectProphecy; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php deleted file mode 100644 index 91573328..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prophecy; - -use Prophecy\Exception\Exception; - -interface ProphecyException extends Exception -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php deleted file mode 100644 index 209821ce..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php +++ /dev/null @@ -1,69 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\PhpDocumentor; - -use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; -use phpDocumentor\Reflection\DocBlock\Tags\Method; - -/** - * @author Théo FIDRY - * - * @internal - */ -final class ClassAndInterfaceTagRetriever implements MethodTagRetrieverInterface -{ - private $classRetriever; - - public function __construct(MethodTagRetrieverInterface $classRetriever = null) - { - if (null !== $classRetriever) { - $this->classRetriever = $classRetriever; - - return; - } - - $this->classRetriever = class_exists('phpDocumentor\Reflection\DocBlockFactory') && class_exists('phpDocumentor\Reflection\Types\ContextFactory') - ? new ClassTagRetriever() - : new LegacyClassTagRetriever() - ; - } - - /** - * @param \ReflectionClass $reflectionClass - * - * @return LegacyMethodTag[]|Method[] - */ - public function getTagList(\ReflectionClass $reflectionClass) - { - return array_merge( - $this->classRetriever->getTagList($reflectionClass), - $this->getInterfacesTagList($reflectionClass) - ); - } - - /** - * @param \ReflectionClass $reflectionClass - * - * @return LegacyMethodTag[]|Method[] - */ - private function getInterfacesTagList(\ReflectionClass $reflectionClass) - { - $interfaces = $reflectionClass->getInterfaces(); - $tagList = array(); - - foreach($interfaces as $interface) { - $tagList = array_merge($tagList, $this->classRetriever->getTagList($interface)); - } - - return $tagList; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php deleted file mode 100644 index 1d2da8f0..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php +++ /dev/null @@ -1,52 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\PhpDocumentor; - -use phpDocumentor\Reflection\DocBlock\Tags\Method; -use phpDocumentor\Reflection\DocBlockFactory; -use phpDocumentor\Reflection\Types\ContextFactory; - -/** - * @author Théo FIDRY - * - * @internal - */ -final class ClassTagRetriever implements MethodTagRetrieverInterface -{ - private $docBlockFactory; - private $contextFactory; - - public function __construct() - { - $this->docBlockFactory = DocBlockFactory::createInstance(); - $this->contextFactory = new ContextFactory(); - } - - /** - * @param \ReflectionClass $reflectionClass - * - * @return Method[] - */ - public function getTagList(\ReflectionClass $reflectionClass) - { - try { - $phpdoc = $this->docBlockFactory->create( - $reflectionClass, - $this->contextFactory->createFromReflector($reflectionClass) - ); - - return $phpdoc->getTagsByName('method'); - } catch (\InvalidArgumentException $e) { - return array(); - } - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php deleted file mode 100644 index c0dec3de..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php +++ /dev/null @@ -1,35 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\PhpDocumentor; - -use phpDocumentor\Reflection\DocBlock; -use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; - -/** - * @author Théo FIDRY - * - * @internal - */ -final class LegacyClassTagRetriever implements MethodTagRetrieverInterface -{ - /** - * @param \ReflectionClass $reflectionClass - * - * @return LegacyMethodTag[] - */ - public function getTagList(\ReflectionClass $reflectionClass) - { - $phpdoc = new DocBlock($reflectionClass->getDocComment()); - - return $phpdoc->getTagsByName('method'); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php deleted file mode 100644 index d3989dad..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\PhpDocumentor; - -use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; -use phpDocumentor\Reflection\DocBlock\Tags\Method; - -/** - * @author Théo FIDRY - * - * @internal - */ -interface MethodTagRetrieverInterface -{ - /** - * @param \ReflectionClass $reflectionClass - * - * @return LegacyMethodTag[]|Method[] - */ - public function getTagList(\ReflectionClass $reflectionClass); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php deleted file mode 100644 index b4787366..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php +++ /dev/null @@ -1,86 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Argument\ArgumentsWildcard; -use Prophecy\Argument\Token\AnyValuesToken; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Prediction\NoCallsException; - -/** - * Call prediction. - * - * @author Konstantin Kudryashov - */ -class CallPrediction implements PredictionInterface -{ - private $util; - - /** - * Initializes prediction. - * - * @param StringUtil $util - */ - public function __construct(StringUtil $util = null) - { - $this->util = $util ?: new StringUtil; - } - - /** - * Tests that there was at least one call. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws \Prophecy\Exception\Prediction\NoCallsException - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) - { - if (count($calls)) { - return; - } - - $methodCalls = $object->findProphecyMethodCalls( - $method->getMethodName(), - new ArgumentsWildcard(array(new AnyValuesToken)) - ); - - if (count($methodCalls)) { - throw new NoCallsException(sprintf( - "No calls have been made that match:\n". - " %s->%s(%s)\n". - "but expected at least one.\n". - "Recorded `%s(...)` calls:\n%s", - - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard(), - $method->getMethodName(), - $this->util->stringifyCalls($methodCalls) - ), $method); - } - - throw new NoCallsException(sprintf( - "No calls have been made that match:\n". - " %s->%s(%s)\n". - "but expected at least one.", - - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard() - ), $method); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php deleted file mode 100644 index 31c6c575..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php +++ /dev/null @@ -1,107 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Argument\ArgumentsWildcard; -use Prophecy\Argument\Token\AnyValuesToken; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Prediction\UnexpectedCallsCountException; - -/** - * Prediction interface. - * Predictions are logical test blocks, tied to `should...` keyword. - * - * @author Konstantin Kudryashov - */ -class CallTimesPrediction implements PredictionInterface -{ - private $times; - private $util; - - /** - * Initializes prediction. - * - * @param int $times - * @param StringUtil $util - */ - public function __construct($times, StringUtil $util = null) - { - $this->times = intval($times); - $this->util = $util ?: new StringUtil; - } - - /** - * Tests that there was exact amount of calls made. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws \Prophecy\Exception\Prediction\UnexpectedCallsCountException - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) - { - if ($this->times == count($calls)) { - return; - } - - $methodCalls = $object->findProphecyMethodCalls( - $method->getMethodName(), - new ArgumentsWildcard(array(new AnyValuesToken)) - ); - - if (count($calls)) { - $message = sprintf( - "Expected exactly %d calls that match:\n". - " %s->%s(%s)\n". - "but %d were made:\n%s", - - $this->times, - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard(), - count($calls), - $this->util->stringifyCalls($calls) - ); - } elseif (count($methodCalls)) { - $message = sprintf( - "Expected exactly %d calls that match:\n". - " %s->%s(%s)\n". - "but none were made.\n". - "Recorded `%s(...)` calls:\n%s", - - $this->times, - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard(), - $method->getMethodName(), - $this->util->stringifyCalls($methodCalls) - ); - } else { - $message = sprintf( - "Expected exactly %d calls that match:\n". - " %s->%s(%s)\n". - "but none were made.", - - $this->times, - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard() - ); - } - - throw new UnexpectedCallsCountException($message, $method, $this->times, $calls); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php deleted file mode 100644 index 44bc782c..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php +++ /dev/null @@ -1,65 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Exception\InvalidArgumentException; -use Closure; - -/** - * Callback prediction. - * - * @author Konstantin Kudryashov - */ -class CallbackPrediction implements PredictionInterface -{ - private $callback; - - /** - * Initializes callback prediction. - * - * @param callable $callback Custom callback - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($callback) - { - if (!is_callable($callback)) { - throw new InvalidArgumentException(sprintf( - 'Callable expected as an argument to CallbackPrediction, but got %s.', - gettype($callback) - )); - } - - $this->callback = $callback; - } - - /** - * Executes preset callback. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) - { - $callback = $this->callback; - - if ($callback instanceof Closure && method_exists('Closure', 'bind')) { - $callback = Closure::bind($callback, $object); - } - - call_user_func($callback, $calls, $object, $method); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php deleted file mode 100644 index 46ac5bfc..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php +++ /dev/null @@ -1,68 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Prediction\UnexpectedCallsException; - -/** - * No calls prediction. - * - * @author Konstantin Kudryashov - */ -class NoCallsPrediction implements PredictionInterface -{ - private $util; - - /** - * Initializes prediction. - * - * @param null|StringUtil $util - */ - public function __construct(StringUtil $util = null) - { - $this->util = $util ?: new StringUtil; - } - - /** - * Tests that there were no calls made. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws \Prophecy\Exception\Prediction\UnexpectedCallsException - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) - { - if (!count($calls)) { - return; - } - - $verb = count($calls) === 1 ? 'was' : 'were'; - - throw new UnexpectedCallsException(sprintf( - "No calls expected that match:\n". - " %s->%s(%s)\n". - "but %d %s made:\n%s", - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard(), - count($calls), - $verb, - $this->util->stringifyCalls($calls) - ), $method, $calls); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php deleted file mode 100644 index f7fb06a9..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php +++ /dev/null @@ -1,37 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; - -/** - * Prediction interface. - * Predictions are logical test blocks, tied to `should...` keyword. - * - * @author Konstantin Kudryashov - */ -interface PredictionInterface -{ - /** - * Tests that double fulfilled prediction. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws object - * @return void - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php deleted file mode 100644 index 5f406bf7..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php +++ /dev/null @@ -1,66 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Exception\InvalidArgumentException; -use Closure; - -/** - * Callback promise. - * - * @author Konstantin Kudryashov - */ -class CallbackPromise implements PromiseInterface -{ - private $callback; - - /** - * Initializes callback promise. - * - * @param callable $callback Custom callback - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($callback) - { - if (!is_callable($callback)) { - throw new InvalidArgumentException(sprintf( - 'Callable expected as an argument to CallbackPromise, but got %s.', - gettype($callback) - )); - } - - $this->callback = $callback; - } - - /** - * Evaluates promise callback. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @return mixed - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) - { - $callback = $this->callback; - - if ($callback instanceof Closure && method_exists('Closure', 'bind')) { - $callback = Closure::bind($callback, $object); - } - - return call_user_func($callback, $args, $object, $method); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php deleted file mode 100644 index 382537b4..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php +++ /dev/null @@ -1,35 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; - -/** - * Promise interface. - * Promises are logical blocks, tied to `will...` keyword. - * - * @author Konstantin Kudryashov - */ -interface PromiseInterface -{ - /** - * Evaluates promise. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @return mixed - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php deleted file mode 100644 index 39bfeea0..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php +++ /dev/null @@ -1,61 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Prophecy\Exception\InvalidArgumentException; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; - -/** - * Return argument promise. - * - * @author Konstantin Kudryashov - */ -class ReturnArgumentPromise implements PromiseInterface -{ - /** - * @var int - */ - private $index; - - /** - * Initializes callback promise. - * - * @param int $index The zero-indexed number of the argument to return - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($index = 0) - { - if (!is_int($index) || $index < 0) { - throw new InvalidArgumentException(sprintf( - 'Zero-based index expected as argument to ReturnArgumentPromise, but got %s.', - $index - )); - } - $this->index = $index; - } - - /** - * Returns nth argument if has one, null otherwise. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @return null|mixed - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) - { - return count($args) > $this->index ? $args[$this->index] : null; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php deleted file mode 100644 index c7d5ac59..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php +++ /dev/null @@ -1,55 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; - -/** - * Return promise. - * - * @author Konstantin Kudryashov - */ -class ReturnPromise implements PromiseInterface -{ - private $returnValues = array(); - - /** - * Initializes promise. - * - * @param array $returnValues Array of values - */ - public function __construct(array $returnValues) - { - $this->returnValues = $returnValues; - } - - /** - * Returns saved values one by one until last one, then continuously returns last value. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @return mixed - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) - { - $value = array_shift($this->returnValues); - - if (!count($this->returnValues)) { - $this->returnValues[] = $value; - } - - return $value; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php deleted file mode 100644 index 7250fa3c..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php +++ /dev/null @@ -1,99 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Doctrine\Instantiator\Instantiator; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Exception\InvalidArgumentException; -use ReflectionClass; - -/** - * Throw promise. - * - * @author Konstantin Kudryashov - */ -class ThrowPromise implements PromiseInterface -{ - private $exception; - - /** - * @var \Doctrine\Instantiator\Instantiator - */ - private $instantiator; - - /** - * Initializes promise. - * - * @param string|\Exception|\Throwable $exception Exception class name or instance - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($exception) - { - if (is_string($exception)) { - if (!class_exists($exception) || !$this->isAValidThrowable($exception)) { - throw new InvalidArgumentException(sprintf( - 'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.', - $exception - )); - } - } elseif (!$exception instanceof \Exception && !$exception instanceof \Throwable) { - throw new InvalidArgumentException(sprintf( - 'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.', - is_object($exception) ? get_class($exception) : gettype($exception) - )); - } - - $this->exception = $exception; - } - - /** - * Throws predefined exception. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws object - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) - { - if (is_string($this->exception)) { - $classname = $this->exception; - $reflection = new ReflectionClass($classname); - $constructor = $reflection->getConstructor(); - - if ($constructor->isPublic() && 0 == $constructor->getNumberOfRequiredParameters()) { - throw $reflection->newInstance(); - } - - if (!$this->instantiator) { - $this->instantiator = new Instantiator(); - } - - throw $this->instantiator->instantiate($classname); - } - - throw $this->exception; - } - - /** - * @param string $exception - * - * @return bool - */ - private function isAValidThrowable($exception) - { - return is_a($exception, 'Exception', true) || is_subclass_of($exception, 'Throwable', true); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php deleted file mode 100644 index 90df1efc..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php +++ /dev/null @@ -1,464 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -use Prophecy\Argument; -use Prophecy\Prophet; -use Prophecy\Promise; -use Prophecy\Prediction; -use Prophecy\Exception\Doubler\MethodNotFoundException; -use Prophecy\Exception\InvalidArgumentException; -use Prophecy\Exception\Prophecy\MethodProphecyException; - -/** - * Method prophecy. - * - * @author Konstantin Kudryashov - */ -class MethodProphecy -{ - private $objectProphecy; - private $methodName; - private $argumentsWildcard; - private $promise; - private $prediction; - private $checkedPredictions = array(); - private $bound = false; - private $voidReturnType = false; - - /** - * Initializes method prophecy. - * - * @param ObjectProphecy $objectProphecy - * @param string $methodName - * @param null|Argument\ArgumentsWildcard|array $arguments - * - * @throws \Prophecy\Exception\Doubler\MethodNotFoundException If method not found - */ - public function __construct(ObjectProphecy $objectProphecy, $methodName, $arguments = null) - { - $double = $objectProphecy->reveal(); - if (!method_exists($double, $methodName)) { - throw new MethodNotFoundException(sprintf( - 'Method `%s::%s()` is not defined.', get_class($double), $methodName - ), get_class($double), $methodName, $arguments); - } - - $this->objectProphecy = $objectProphecy; - $this->methodName = $methodName; - - $reflectedMethod = new \ReflectionMethod($double, $methodName); - if ($reflectedMethod->isFinal()) { - throw new MethodProphecyException(sprintf( - "Can not add prophecy for a method `%s::%s()`\n". - "as it is a final method.", - get_class($double), - $methodName - ), $this); - } - - if (null !== $arguments) { - $this->withArguments($arguments); - } - - if (version_compare(PHP_VERSION, '7.0', '>=') && true === $reflectedMethod->hasReturnType()) { - $type = (string) $reflectedMethod->getReturnType(); - - if ('void' === $type) { - $this->voidReturnType = true; - return; - } - - $this->will(function () use ($type) { - switch ($type) { - case 'string': return ''; - case 'float': return 0.0; - case 'int': return 0; - case 'bool': return false; - case 'array': return array(); - - case 'callable': - case 'Closure': - return function () {}; - - case 'Traversable': - case 'Generator': - // Remove eval() when minimum version >=5.5 - /** @var callable $generator */ - $generator = eval('return function () { yield; };'); - return $generator(); - - default: - $prophet = new Prophet; - return $prophet->prophesize($type)->reveal(); - } - }); - } - } - - /** - * Sets argument wildcard. - * - * @param array|Argument\ArgumentsWildcard $arguments - * - * @return $this - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function withArguments($arguments) - { - if (is_array($arguments)) { - $arguments = new Argument\ArgumentsWildcard($arguments); - } - - if (!$arguments instanceof Argument\ArgumentsWildcard) { - throw new InvalidArgumentException(sprintf( - "Either an array or an instance of ArgumentsWildcard expected as\n". - 'a `MethodProphecy::withArguments()` argument, but got %s.', - gettype($arguments) - )); - } - - $this->argumentsWildcard = $arguments; - - return $this; - } - - /** - * Sets custom promise to the prophecy. - * - * @param callable|Promise\PromiseInterface $promise - * - * @return $this - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function will($promise) - { - if (is_callable($promise)) { - $promise = new Promise\CallbackPromise($promise); - } - - if (!$promise instanceof Promise\PromiseInterface) { - throw new InvalidArgumentException(sprintf( - 'Expected callable or instance of PromiseInterface, but got %s.', - gettype($promise) - )); - } - - $this->bindToObjectProphecy(); - $this->promise = $promise; - - return $this; - } - - /** - * Sets return promise to the prophecy. - * - * @see \Prophecy\Promise\ReturnPromise - * - * @return $this - */ - public function willReturn() - { - if ($this->voidReturnType) { - throw new MethodProphecyException( - "The method \"$this->methodName\" has a void return type, and so cannot return anything", - $this - ); - } - - return $this->will(new Promise\ReturnPromise(func_get_args())); - } - - /** - * Sets return argument promise to the prophecy. - * - * @param int $index The zero-indexed number of the argument to return - * - * @see \Prophecy\Promise\ReturnArgumentPromise - * - * @return $this - */ - public function willReturnArgument($index = 0) - { - if ($this->voidReturnType) { - throw new MethodProphecyException("The method \"$this->methodName\" has a void return type", $this); - } - - return $this->will(new Promise\ReturnArgumentPromise($index)); - } - - /** - * Sets throw promise to the prophecy. - * - * @see \Prophecy\Promise\ThrowPromise - * - * @param string|\Exception $exception Exception class or instance - * - * @return $this - */ - public function willThrow($exception) - { - return $this->will(new Promise\ThrowPromise($exception)); - } - - /** - * Sets custom prediction to the prophecy. - * - * @param callable|Prediction\PredictionInterface $prediction - * - * @return $this - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function should($prediction) - { - if (is_callable($prediction)) { - $prediction = new Prediction\CallbackPrediction($prediction); - } - - if (!$prediction instanceof Prediction\PredictionInterface) { - throw new InvalidArgumentException(sprintf( - 'Expected callable or instance of PredictionInterface, but got %s.', - gettype($prediction) - )); - } - - $this->bindToObjectProphecy(); - $this->prediction = $prediction; - - return $this; - } - - /** - * Sets call prediction to the prophecy. - * - * @see \Prophecy\Prediction\CallPrediction - * - * @return $this - */ - public function shouldBeCalled() - { - return $this->should(new Prediction\CallPrediction); - } - - /** - * Sets no calls prediction to the prophecy. - * - * @see \Prophecy\Prediction\NoCallsPrediction - * - * @return $this - */ - public function shouldNotBeCalled() - { - return $this->should(new Prediction\NoCallsPrediction); - } - - /** - * Sets call times prediction to the prophecy. - * - * @see \Prophecy\Prediction\CallTimesPrediction - * - * @param $count - * - * @return $this - */ - public function shouldBeCalledTimes($count) - { - return $this->should(new Prediction\CallTimesPrediction($count)); - } - - /** - * Checks provided prediction immediately. - * - * @param callable|Prediction\PredictionInterface $prediction - * - * @return $this - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function shouldHave($prediction) - { - if (is_callable($prediction)) { - $prediction = new Prediction\CallbackPrediction($prediction); - } - - if (!$prediction instanceof Prediction\PredictionInterface) { - throw new InvalidArgumentException(sprintf( - 'Expected callable or instance of PredictionInterface, but got %s.', - gettype($prediction) - )); - } - - if (null === $this->promise && !$this->voidReturnType) { - $this->willReturn(); - } - - $calls = $this->getObjectProphecy()->findProphecyMethodCalls( - $this->getMethodName(), - $this->getArgumentsWildcard() - ); - - try { - $prediction->check($calls, $this->getObjectProphecy(), $this); - $this->checkedPredictions[] = $prediction; - } catch (\Exception $e) { - $this->checkedPredictions[] = $prediction; - - throw $e; - } - - return $this; - } - - /** - * Checks call prediction. - * - * @see \Prophecy\Prediction\CallPrediction - * - * @return $this - */ - public function shouldHaveBeenCalled() - { - return $this->shouldHave(new Prediction\CallPrediction); - } - - /** - * Checks no calls prediction. - * - * @see \Prophecy\Prediction\NoCallsPrediction - * - * @return $this - */ - public function shouldNotHaveBeenCalled() - { - return $this->shouldHave(new Prediction\NoCallsPrediction); - } - - /** - * Checks no calls prediction. - * - * @see \Prophecy\Prediction\NoCallsPrediction - * @deprecated - * - * @return $this - */ - public function shouldNotBeenCalled() - { - return $this->shouldNotHaveBeenCalled(); - } - - /** - * Checks call times prediction. - * - * @see \Prophecy\Prediction\CallTimesPrediction - * - * @param int $count - * - * @return $this - */ - public function shouldHaveBeenCalledTimes($count) - { - return $this->shouldHave(new Prediction\CallTimesPrediction($count)); - } - - /** - * Checks currently registered [with should(...)] prediction. - */ - public function checkPrediction() - { - if (null === $this->prediction) { - return; - } - - $this->shouldHave($this->prediction); - } - - /** - * Returns currently registered promise. - * - * @return null|Promise\PromiseInterface - */ - public function getPromise() - { - return $this->promise; - } - - /** - * Returns currently registered prediction. - * - * @return null|Prediction\PredictionInterface - */ - public function getPrediction() - { - return $this->prediction; - } - - /** - * Returns predictions that were checked on this object. - * - * @return Prediction\PredictionInterface[] - */ - public function getCheckedPredictions() - { - return $this->checkedPredictions; - } - - /** - * Returns object prophecy this method prophecy is tied to. - * - * @return ObjectProphecy - */ - public function getObjectProphecy() - { - return $this->objectProphecy; - } - - /** - * Returns method name. - * - * @return string - */ - public function getMethodName() - { - return $this->methodName; - } - - /** - * Returns arguments wildcard. - * - * @return Argument\ArgumentsWildcard - */ - public function getArgumentsWildcard() - { - return $this->argumentsWildcard; - } - - /** - * @return bool - */ - public function hasReturnVoid() - { - return $this->voidReturnType; - } - - private function bindToObjectProphecy() - { - if ($this->bound) { - return; - } - - $this->getObjectProphecy()->addMethodProphecy($this); - $this->bound = true; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php deleted file mode 100644 index 8d8f8a1b..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php +++ /dev/null @@ -1,281 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -use SebastianBergmann\Comparator\ComparisonFailure; -use Prophecy\Comparator\Factory as ComparatorFactory; -use Prophecy\Call\Call; -use Prophecy\Doubler\LazyDouble; -use Prophecy\Argument\ArgumentsWildcard; -use Prophecy\Call\CallCenter; -use Prophecy\Exception\Prophecy\ObjectProphecyException; -use Prophecy\Exception\Prophecy\MethodProphecyException; -use Prophecy\Exception\Prediction\AggregateException; -use Prophecy\Exception\Prediction\PredictionException; - -/** - * Object prophecy. - * - * @author Konstantin Kudryashov - */ -class ObjectProphecy implements ProphecyInterface -{ - private $lazyDouble; - private $callCenter; - private $revealer; - private $comparatorFactory; - - /** - * @var MethodProphecy[][] - */ - private $methodProphecies = array(); - - /** - * Initializes object prophecy. - * - * @param LazyDouble $lazyDouble - * @param CallCenter $callCenter - * @param RevealerInterface $revealer - * @param ComparatorFactory $comparatorFactory - */ - public function __construct( - LazyDouble $lazyDouble, - CallCenter $callCenter = null, - RevealerInterface $revealer = null, - ComparatorFactory $comparatorFactory = null - ) { - $this->lazyDouble = $lazyDouble; - $this->callCenter = $callCenter ?: new CallCenter; - $this->revealer = $revealer ?: new Revealer; - - $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); - } - - /** - * Forces double to extend specific class. - * - * @param string $class - * - * @return $this - */ - public function willExtend($class) - { - $this->lazyDouble->setParentClass($class); - - return $this; - } - - /** - * Forces double to implement specific interface. - * - * @param string $interface - * - * @return $this - */ - public function willImplement($interface) - { - $this->lazyDouble->addInterface($interface); - - return $this; - } - - /** - * Sets constructor arguments. - * - * @param array $arguments - * - * @return $this - */ - public function willBeConstructedWith(array $arguments = null) - { - $this->lazyDouble->setArguments($arguments); - - return $this; - } - - /** - * Reveals double. - * - * @return object - * - * @throws \Prophecy\Exception\Prophecy\ObjectProphecyException If double doesn't implement needed interface - */ - public function reveal() - { - $double = $this->lazyDouble->getInstance(); - - if (null === $double || !$double instanceof ProphecySubjectInterface) { - throw new ObjectProphecyException( - "Generated double must implement ProphecySubjectInterface, but it does not.\n". - 'It seems you have wrongly configured doubler without required ClassPatch.', - $this - ); - } - - $double->setProphecy($this); - - return $double; - } - - /** - * Adds method prophecy to object prophecy. - * - * @param MethodProphecy $methodProphecy - * - * @throws \Prophecy\Exception\Prophecy\MethodProphecyException If method prophecy doesn't - * have arguments wildcard - */ - public function addMethodProphecy(MethodProphecy $methodProphecy) - { - $argumentsWildcard = $methodProphecy->getArgumentsWildcard(); - if (null === $argumentsWildcard) { - throw new MethodProphecyException(sprintf( - "Can not add prophecy for a method `%s::%s()`\n". - "as you did not specify arguments wildcard for it.", - get_class($this->reveal()), - $methodProphecy->getMethodName() - ), $methodProphecy); - } - - $methodName = $methodProphecy->getMethodName(); - - if (!isset($this->methodProphecies[$methodName])) { - $this->methodProphecies[$methodName] = array(); - } - - $this->methodProphecies[$methodName][] = $methodProphecy; - } - - /** - * Returns either all or related to single method prophecies. - * - * @param null|string $methodName - * - * @return MethodProphecy[] - */ - public function getMethodProphecies($methodName = null) - { - if (null === $methodName) { - return $this->methodProphecies; - } - - if (!isset($this->methodProphecies[$methodName])) { - return array(); - } - - return $this->methodProphecies[$methodName]; - } - - /** - * Makes specific method call. - * - * @param string $methodName - * @param array $arguments - * - * @return mixed - */ - public function makeProphecyMethodCall($methodName, array $arguments) - { - $arguments = $this->revealer->reveal($arguments); - $return = $this->callCenter->makeCall($this, $methodName, $arguments); - - return $this->revealer->reveal($return); - } - - /** - * Finds calls by method name & arguments wildcard. - * - * @param string $methodName - * @param ArgumentsWildcard $wildcard - * - * @return Call[] - */ - public function findProphecyMethodCalls($methodName, ArgumentsWildcard $wildcard) - { - return $this->callCenter->findCalls($methodName, $wildcard); - } - - /** - * Checks that registered method predictions do not fail. - * - * @throws \Prophecy\Exception\Prediction\AggregateException If any of registered predictions fail - */ - public function checkProphecyMethodsPredictions() - { - $exception = new AggregateException(sprintf("%s:\n", get_class($this->reveal()))); - $exception->setObjectProphecy($this); - - foreach ($this->methodProphecies as $prophecies) { - foreach ($prophecies as $prophecy) { - try { - $prophecy->checkPrediction(); - } catch (PredictionException $e) { - $exception->append($e); - } - } - } - - if (count($exception->getExceptions())) { - throw $exception; - } - } - - /** - * Creates new method prophecy using specified method name and arguments. - * - * @param string $methodName - * @param array $arguments - * - * @return MethodProphecy - */ - public function __call($methodName, array $arguments) - { - $arguments = new ArgumentsWildcard($this->revealer->reveal($arguments)); - - foreach ($this->getMethodProphecies($methodName) as $prophecy) { - $argumentsWildcard = $prophecy->getArgumentsWildcard(); - $comparator = $this->comparatorFactory->getComparatorFor( - $argumentsWildcard, $arguments - ); - - try { - $comparator->assertEquals($argumentsWildcard, $arguments); - return $prophecy; - } catch (ComparisonFailure $failure) {} - } - - return new MethodProphecy($this, $methodName, $arguments); - } - - /** - * Tries to get property value from double. - * - * @param string $name - * - * @return mixed - */ - public function __get($name) - { - return $this->reveal()->$name; - } - - /** - * Tries to set property value to double. - * - * @param string $name - * @param mixed $value - */ - public function __set($name, $value) - { - $this->reveal()->$name = $this->revealer->reveal($value); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php deleted file mode 100644 index 462f15a9..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -/** - * Core Prophecy interface. - * - * @author Konstantin Kudryashov - */ -interface ProphecyInterface -{ - /** - * Reveals prophecy object (double) . - * - * @return object - */ - public function reveal(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php deleted file mode 100644 index 2d839585..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -/** - * Controllable doubles interface. - * - * @author Konstantin Kudryashov - */ -interface ProphecySubjectInterface -{ - /** - * Sets subject prophecy. - * - * @param ProphecyInterface $prophecy - */ - public function setProphecy(ProphecyInterface $prophecy); - - /** - * Returns subject prophecy. - * - * @return ProphecyInterface - */ - public function getProphecy(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php deleted file mode 100644 index 60ecdac8..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php +++ /dev/null @@ -1,44 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -/** - * Basic prophecies revealer. - * - * @author Konstantin Kudryashov - */ -class Revealer implements RevealerInterface -{ - /** - * Unwraps value(s). - * - * @param mixed $value - * - * @return mixed - */ - public function reveal($value) - { - if (is_array($value)) { - return array_map(array($this, __FUNCTION__), $value); - } - - if (!is_object($value)) { - return $value; - } - - if ($value instanceof ProphecyInterface) { - $value = $value->reveal(); - } - - return $value; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php deleted file mode 100644 index ffc82bb6..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -/** - * Prophecies revealer interface. - * - * @author Konstantin Kudryashov - */ -interface RevealerInterface -{ - /** - * Unwraps value(s). - * - * @param mixed $value - * - * @return mixed - */ - public function reveal($value); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophet.php b/vendor/phpspec/prophecy/src/Prophecy/Prophet.php deleted file mode 100644 index ac649234..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophet.php +++ /dev/null @@ -1,134 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy; - -use Prophecy\Doubler\Doubler; -use Prophecy\Doubler\LazyDouble; -use Prophecy\Doubler\ClassPatch; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\RevealerInterface; -use Prophecy\Prophecy\Revealer; -use Prophecy\Call\CallCenter; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Prediction\PredictionException; -use Prophecy\Exception\Prediction\AggregateException; - -/** - * Prophet creates prophecies. - * - * @author Konstantin Kudryashov - */ -class Prophet -{ - private $doubler; - private $revealer; - private $util; - - /** - * @var ObjectProphecy[] - */ - private $prophecies = array(); - - /** - * Initializes Prophet. - * - * @param null|Doubler $doubler - * @param null|RevealerInterface $revealer - * @param null|StringUtil $util - */ - public function __construct(Doubler $doubler = null, RevealerInterface $revealer = null, - StringUtil $util = null) - { - if (null === $doubler) { - $doubler = new Doubler; - $doubler->registerClassPatch(new ClassPatch\SplFileInfoPatch); - $doubler->registerClassPatch(new ClassPatch\TraversablePatch); - $doubler->registerClassPatch(new ClassPatch\DisableConstructorPatch); - $doubler->registerClassPatch(new ClassPatch\ProphecySubjectPatch); - $doubler->registerClassPatch(new ClassPatch\ReflectionClassNewInstancePatch); - $doubler->registerClassPatch(new ClassPatch\HhvmExceptionPatch()); - $doubler->registerClassPatch(new ClassPatch\MagicCallPatch); - $doubler->registerClassPatch(new ClassPatch\KeywordPatch); - } - - $this->doubler = $doubler; - $this->revealer = $revealer ?: new Revealer; - $this->util = $util ?: new StringUtil; - } - - /** - * Creates new object prophecy. - * - * @param null|string $classOrInterface Class or interface name - * - * @return ObjectProphecy - */ - public function prophesize($classOrInterface = null) - { - $this->prophecies[] = $prophecy = new ObjectProphecy( - new LazyDouble($this->doubler), - new CallCenter($this->util), - $this->revealer - ); - - if ($classOrInterface && class_exists($classOrInterface)) { - return $prophecy->willExtend($classOrInterface); - } - - if ($classOrInterface && interface_exists($classOrInterface)) { - return $prophecy->willImplement($classOrInterface); - } - - return $prophecy; - } - - /** - * Returns all created object prophecies. - * - * @return ObjectProphecy[] - */ - public function getProphecies() - { - return $this->prophecies; - } - - /** - * Returns Doubler instance assigned to this Prophet. - * - * @return Doubler - */ - public function getDoubler() - { - return $this->doubler; - } - - /** - * Checks all predictions defined by prophecies of this Prophet. - * - * @throws Exception\Prediction\AggregateException If any prediction fails - */ - public function checkPredictions() - { - $exception = new AggregateException("Some predictions failed:\n"); - foreach ($this->prophecies as $prophecy) { - try { - $prophecy->checkProphecyMethodsPredictions(); - } catch (PredictionException $e) { - $exception->append($e); - } - } - - if (count($exception->getExceptions())) { - throw $exception; - } - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php b/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php deleted file mode 100644 index 50dd3f32..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php +++ /dev/null @@ -1,212 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * This class is a modification from sebastianbergmann/exporter - * @see https://github.com/sebastianbergmann/exporter - */ -class ExportUtil -{ - /** - * Exports a value as a string - * - * The output of this method is similar to the output of print_r(), but - * improved in various aspects: - * - * - NULL is rendered as "null" (instead of "") - * - TRUE is rendered as "true" (instead of "1") - * - FALSE is rendered as "false" (instead of "") - * - Strings are always quoted with single quotes - * - Carriage returns and newlines are normalized to \n - * - Recursion and repeated rendering is treated properly - * - * @param mixed $value - * @param int $indentation The indentation level of the 2nd+ line - * @return string - */ - public static function export($value, $indentation = 0) - { - return self::recursiveExport($value, $indentation); - } - - /** - * Converts an object to an array containing all of its private, protected - * and public properties. - * - * @param mixed $value - * @return array - */ - public static function toArray($value) - { - if (!is_object($value)) { - return (array) $value; - } - - $array = array(); - - foreach ((array) $value as $key => $val) { - // properties are transformed to keys in the following way: - // private $property => "\0Classname\0property" - // protected $property => "\0*\0property" - // public $property => "property" - if (preg_match('/^\0.+\0(.+)$/', $key, $matches)) { - $key = $matches[1]; - } - - // See https://github.com/php/php-src/commit/5721132 - if ($key === "\0gcdata") { - continue; - } - - $array[$key] = $val; - } - - // Some internal classes like SplObjectStorage don't work with the - // above (fast) mechanism nor with reflection in Zend. - // Format the output similarly to print_r() in this case - if ($value instanceof \SplObjectStorage) { - // However, the fast method does work in HHVM, and exposes the - // internal implementation. Hide it again. - if (property_exists('\SplObjectStorage', '__storage')) { - unset($array['__storage']); - } elseif (property_exists('\SplObjectStorage', 'storage')) { - unset($array['storage']); - } - - if (property_exists('\SplObjectStorage', '__key')) { - unset($array['__key']); - } - - foreach ($value as $key => $val) { - $array[spl_object_hash($val)] = array( - 'obj' => $val, - 'inf' => $value->getInfo(), - ); - } - } - - return $array; - } - - /** - * Recursive implementation of export - * - * @param mixed $value The value to export - * @param int $indentation The indentation level of the 2nd+ line - * @param \SebastianBergmann\RecursionContext\Context $processed Previously processed objects - * @return string - * @see SebastianBergmann\Exporter\Exporter::export - */ - protected static function recursiveExport(&$value, $indentation, $processed = null) - { - if ($value === null) { - return 'null'; - } - - if ($value === true) { - return 'true'; - } - - if ($value === false) { - return 'false'; - } - - if (is_float($value) && floatval(intval($value)) === $value) { - return "$value.0"; - } - - if (is_resource($value)) { - return sprintf( - 'resource(%d) of type (%s)', - $value, - get_resource_type($value) - ); - } - - if (is_string($value)) { - // Match for most non printable chars somewhat taking multibyte chars into account - if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) { - return 'Binary String: 0x' . bin2hex($value); - } - - return "'" . - str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) . - "'"; - } - - $whitespace = str_repeat(' ', 4 * $indentation); - - if (!$processed) { - $processed = new Context; - } - - if (is_array($value)) { - if (($key = $processed->contains($value)) !== false) { - return 'Array &' . $key; - } - - $array = $value; - $key = $processed->add($value); - $values = ''; - - if (count($array) > 0) { - foreach ($array as $k => $v) { - $values .= sprintf( - '%s %s => %s' . "\n", - $whitespace, - self::recursiveExport($k, $indentation), - self::recursiveExport($value[$k], $indentation + 1, $processed) - ); - } - - $values = "\n" . $values . $whitespace; - } - - return sprintf('Array &%s (%s)', $key, $values); - } - - if (is_object($value)) { - $class = get_class($value); - - if ($value instanceof ProphecyInterface) { - return sprintf('%s Object (*Prophecy*)', $class); - } elseif ($hash = $processed->contains($value)) { - return sprintf('%s:%s Object', $class, $hash); - } - - $hash = $processed->add($value); - $values = ''; - $array = self::toArray($value); - - if (count($array) > 0) { - foreach ($array as $k => $v) { - $values .= sprintf( - '%s %s => %s' . "\n", - $whitespace, - self::recursiveExport($k, $indentation), - self::recursiveExport($v, $indentation + 1, $processed) - ); - } - - $values = "\n" . $values . $whitespace; - } - - return sprintf('%s:%s Object (%s)', $class, $hash, $values); - } - - return var_export($value, true); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php b/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php deleted file mode 100644 index bb90156a..00000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php +++ /dev/null @@ -1,89 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Util; - -use Prophecy\Call\Call; - -/** - * String utility. - * - * @author Konstantin Kudryashov - */ -class StringUtil -{ - /** - * Stringifies any provided value. - * - * @param mixed $value - * @param boolean $exportObject - * - * @return string - */ - public function stringify($value, $exportObject = true) - { - if (is_array($value)) { - if (range(0, count($value) - 1) === array_keys($value)) { - return '['.implode(', ', array_map(array($this, __FUNCTION__), $value)).']'; - } - - $stringify = array($this, __FUNCTION__); - - return '['.implode(', ', array_map(function ($item, $key) use ($stringify) { - return (is_integer($key) ? $key : '"'.$key.'"'). - ' => '.call_user_func($stringify, $item); - }, $value, array_keys($value))).']'; - } - if (is_resource($value)) { - return get_resource_type($value).':'.$value; - } - if (is_object($value)) { - return $exportObject ? ExportUtil::export($value) : sprintf('%s:%s', get_class($value), spl_object_hash($value)); - } - if (true === $value || false === $value) { - return $value ? 'true' : 'false'; - } - if (is_string($value)) { - $str = sprintf('"%s"', str_replace("\n", '\\n', $value)); - - if (50 <= strlen($str)) { - return substr($str, 0, 50).'"...'; - } - - return $str; - } - if (null === $value) { - return 'null'; - } - - return (string) $value; - } - - /** - * Stringifies provided array of calls. - * - * @param Call[] $calls Array of Call instances - * - * @return string - */ - public function stringifyCalls(array $calls) - { - $self = $this; - - return implode(PHP_EOL, array_map(function (Call $call) use ($self) { - return sprintf(' - %s(%s) @ %s', - $call->getMethodName(), - implode(', ', array_map(array($self, 'stringify'), $call->getArguments())), - str_replace(GETCWD().DIRECTORY_SEPARATOR, '', $call->getCallPlace()) - ); - }, $calls)); - } -} diff --git a/vendor/phpunit/php-code-coverage/.gitattributes b/vendor/phpunit/php-code-coverage/.gitattributes deleted file mode 100644 index 461090b7..00000000 --- a/vendor/phpunit/php-code-coverage/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.php diff=php diff --git a/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md b/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md deleted file mode 100644 index 76a43458..00000000 --- a/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -Please refer to [https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md) for details on how to contribute to this project. diff --git a/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md b/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index dc8e3b02..00000000 --- a/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,18 +0,0 @@ -| Q | A -| --------------------------| --------------- -| php-code-coverage version | x.y.z -| PHP version | x.y.z -| Driver | Xdebug / PHPDBG -| Xdebug version (if used) | x.y.z -| Installation Method | Composer / PHPUnit PHAR -| Usage Method | PHPUnit / other -| PHPUnit version (if used) | x.y.z - - - diff --git a/vendor/phpunit/php-code-coverage/.gitignore b/vendor/phpunit/php-code-coverage/.gitignore deleted file mode 100644 index 603bc9e8..00000000 --- a/vendor/phpunit/php-code-coverage/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/tests/_files/tmp -/vendor -/composer.lock -/.idea -/.php_cs.cache - diff --git a/vendor/phpunit/php-code-coverage/.php_cs b/vendor/phpunit/php-code-coverage/.php_cs deleted file mode 100644 index cb77f99f..00000000 --- a/vendor/phpunit/php-code-coverage/.php_cs +++ /dev/null @@ -1,87 +0,0 @@ - - -For the full copyright and license information, please view the LICENSE -file that was distributed with this source code. -EOF; - -return PhpCsFixer\Config::create() - ->setRiskyAllowed(true) - ->setRules( - [ - 'array_syntax' => ['syntax' => 'short'], - 'binary_operator_spaces' => [ - 'align_double_arrow' => true, - 'align_equals' => true - ], - 'blank_line_after_namespace' => true, - 'blank_line_before_statement' => [ - 'statements' => [ - 'break', - 'continue', - 'return', - 'throw', - 'try', - ], - ], - 'braces' => true, - 'cast_spaces' => true, - 'concat_space' => ['spacing' => 'one'], - 'elseif' => true, - 'encoding' => true, - 'full_opening_tag' => true, - 'function_declaration' => true, - 'header_comment' => ['header' => $header, 'separate' => 'none'], - 'indentation_type' => true, - 'line_ending' => true, - 'lowercase_constants' => true, - 'lowercase_keywords' => true, - 'method_argument_space' => true, - 'native_function_invocation' => true, - 'no_alias_functions' => true, - 'no_blank_lines_after_class_opening' => true, - 'no_blank_lines_after_phpdoc' => true, - 'no_closing_tag' => true, - 'no_empty_phpdoc' => true, - 'no_empty_statement' => true, - 'no_extra_consecutive_blank_lines' => true, - 'no_leading_namespace_whitespace' => true, - 'no_singleline_whitespace_before_semicolons' => true, - 'no_spaces_after_function_name' => true, - 'no_spaces_inside_parenthesis' => true, - 'no_trailing_comma_in_list_call' => true, - 'no_trailing_whitespace' => true, - 'no_unused_imports' => true, - 'no_whitespace_in_blank_line' => true, - 'ordered_imports' => true, - 'phpdoc_align' => true, - 'phpdoc_indent' => true, - 'phpdoc_no_access' => true, - 'phpdoc_no_empty_return' => true, - 'phpdoc_no_package' => true, - 'phpdoc_scalar' => true, - 'phpdoc_separation' => true, - 'phpdoc_to_comment' => true, - 'phpdoc_trim' => true, - 'phpdoc_types' => true, - 'phpdoc_var_without_name' => true, - 'self_accessor' => true, - 'simplified_null_return' => true, - 'single_blank_line_at_eof' => true, - 'single_import_per_statement' => true, - 'single_line_after_imports' => true, - 'single_quote' => true, - 'ternary_operator_spaces' => true, - 'trim_array_spaces' => true, - 'visibility_required' => true, - ] - ) - ->setFinder( - PhpCsFixer\Finder::create() - ->files() - ->in(__DIR__ . '/src') - ->name('*.php') - ); diff --git a/vendor/phpunit/php-code-coverage/.travis.yml b/vendor/phpunit/php-code-coverage/.travis.yml deleted file mode 100644 index b6dfe62d..00000000 --- a/vendor/phpunit/php-code-coverage/.travis.yml +++ /dev/null @@ -1,40 +0,0 @@ -language: php - -sudo: false - -php: - - 7.0 - - 7.1 - - 7.2 - - master - -matrix: - allow_failures: - - php: master - fast_finish: true - -env: - matrix: - - DEPENDENCIES="high" - - DEPENDENCIES="low" - global: - - DEFAULT_COMPOSER_FLAGS="--no-interaction --no-ansi --no-progress --no-suggest" - -before_install: - - composer self-update - - composer clear-cache - -install: - - if [[ "$DEPENDENCIES" = 'high' ]]; then travis_retry composer update $DEFAULT_COMPOSER_FLAGS; fi - - if [[ "$DEPENDENCIES" = 'low' ]]; then travis_retry composer update $DEFAULT_COMPOSER_FLAGS --prefer-lowest; fi - -script: - - if [[ "$DRIVER" = 'phpdbg' ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi - - if [[ "$DRIVER" = 'xdebug' ]]; then vendor/bin/phpunit --coverage-clover=coverage.xml; fi - -after_success: - - bash <(curl -s https://codecov.io/bash) - -notifications: - email: false - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md b/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md deleted file mode 100644 index 353b6f65..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md +++ /dev/null @@ -1,56 +0,0 @@ -# Changes in PHP_CodeCoverage 2.2 - -All notable changes of the PHP_CodeCoverage 2.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [2.2.4] - 2015-10-06 - -### Fixed - -* Fixed [#391](https://github.com/sebastianbergmann/php-code-coverage/pull/391): Missing `` tag - -## [2.2.3] - 2015-09-14 - -### Fixed - -* Fixed [#368](https://github.com/sebastianbergmann/php-code-coverage/pull/368): Blacklists and whitelists are not merged when merging data sets -* Fixed [#370](https://github.com/sebastianbergmann/php-code-coverage/issues/370): Confusing statistics for source file that declares a class without methods -* Fixed [#372](https://github.com/sebastianbergmann/php-code-coverage/pull/372): Nested classes and functions are not handled correctly -* Fixed [#382](https://github.com/sebastianbergmann/php-code-coverage/issues/382): Crap4J report generates incorrect XML logfile - -## [2.2.2] - 2015-08-04 - -### Added - -* Reintroduced the `PHP_CodeCoverage_Driver_HHVM` driver as an extension of `PHP_CodeCoverage_Driver_Xdebug` that does not use `xdebug_start_code_coverage()` with options not supported by HHVM - -### Changed - -* Bumped required version of `sebastian/environment` to 1.3.2 for [#365](https://github.com/sebastianbergmann/php-code-coverage/issues/365) - -## [2.2.1] - 2015-08-02 - -### Changed - -* Bumped required version of `sebastian/environment` to 1.3.1 for [#365](https://github.com/sebastianbergmann/php-code-coverage/issues/365) - -## [2.2.0] - 2015-08-01 - -### Added - -* Added a driver for PHPDBG (requires PHP 7) -* Added `PHP_CodeCoverage::setDisableIgnoredLines()` to disable the ignoring of lines using annotations such as `@codeCoverageIgnore` - -### Changed - -* Annotating a method with `@deprecated` now has the same effect as annotating it with `@codeCoverageIgnore` - -### Removed - -* The dedicated driver for HHVM, `PHP_CodeCoverage_Driver_HHVM` has been removed - -[2.2.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.3...2.2.4 -[2.2.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.2...2.2.3 -[2.2.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.1...2.2.2 -[2.2.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.0...2.2.1 -[2.2.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.1...2.2.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md b/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md deleted file mode 100644 index a39fa8d4..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md +++ /dev/null @@ -1,31 +0,0 @@ -# Changes in PHP_CodeCoverage 3.0 - -All notable changes of the PHP_CodeCoverage 3.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.0.2] - 2015-11-12 - -### Changed - -* It is now optional that `@deprecated` code is ignored - -## [3.0.1] - 2015-10-06 - -### Fixed - -* Fixed [#391](https://github.com/sebastianbergmann/php-code-coverage/pull/391): Missing `` tag - -## [3.0.0] - 2015-10-02 - -### Changed - -* It is now mandatory to configure a whitelist - -### Removed - -* The blacklist functionality has been removed -* PHP_CodeCoverage is no longer supported on PHP 5.3, PHP 5.4, and PHP 5.5 - -[3.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0.1...3.0.2 -[3.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0.0...3.0.1 -[3.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2...3.0.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md b/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md deleted file mode 100644 index f7a0de90..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md +++ /dev/null @@ -1,30 +0,0 @@ -# Changes in PHP_CodeCoverage 3.1 - -All notable changes of the PHP_CodeCoverage 3.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.1.1] - 2016-02-04 - -### Changed - -* Allow version 2.0.x of `sebastian/version` dependency - -## [3.1.0] - 2016-01-11 - -### Added - -* Implemented [#234](https://github.com/sebastianbergmann/php-code-coverage/issues/234): Optionally raise an exception when a specified unit of code is not executed - -### Changed - -* The Clover XML report now contains cyclomatic complexity information -* The Clover XML report now contains method visibility information -* Cleanup and refactoring of various areas of code -* Added missing test cases - -### Removed - -* The functionality controlled by the `mapTestClassNameToCoveredClassName` setting has been removed - -[3.1.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.1.0...3.1.1 -[3.1.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0...3.1.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md b/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md deleted file mode 100644 index 34c65cf4..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md +++ /dev/null @@ -1,23 +0,0 @@ -# Changes in PHP_CodeCoverage 3.2 - -All notable changes of the PHP_CodeCoverage 3.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.2.1] - 2016-02-18 - -### Changed - -* Updated dependency information in `composer.json` - -## [3.2.0] - 2016-02-13 - -### Added - -* Added optional check for missing `@covers` annotation when the usage of `@covers` annotations is forced - -### Changed - -* Improved `PHP_CodeCoverage_UnintentionallyCoveredCodeException` message - -[3.2.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.2.0...3.2.1 -[3.2.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.1...3.2.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md b/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md deleted file mode 100644 index 2cf15229..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md +++ /dev/null @@ -1,33 +0,0 @@ -# Changes in PHP_CodeCoverage 3.3 - -All notable changes of the PHP_CodeCoverage 3.3 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.3.3] - 2016-MM-DD - -### Fixed - -* Fixed [#438](https://github.com/sebastianbergmann/php-code-coverage/issues/438): Wrong base directory for Clover reports - -## [3.3.2] - 2016-05-25 - -### Changed - -* The constructor of `PHP_CodeCoverage_Report_Text` now has default values for its parameters - -## [3.3.1] - 2016-04-08 - -### Fixed - -* Fixed handling of lines that contain `declare` statements - -## [3.3.0] - 2016-03-03 - -### Added - -* Added support for whitelisting classes for the unintentionally covered code unit check - -[3.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.2...3.3.3 -[3.3.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.1...3.3.2 -[3.3.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.0...3.3.1 -[3.3.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.2...3.3.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md b/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md deleted file mode 100644 index 30df0102..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md +++ /dev/null @@ -1,67 +0,0 @@ -# Changes in PHP_CodeCoverage 4.0 - -All notable changes of the PHP_CodeCoverage 4.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [4.0.8] - 2017-04-02 - -* Fixed [#515](https://github.com/sebastianbergmann/php-code-coverage/pull/515): Wrong use of recursive iterator causing duplicate entries in XML coverage report - -## [4.0.7] - 2017-03-01 - -### Changed - -* Cleaned up requirements in `composer.json` - -## [4.0.6] - 2017-02-23 - -### Changed - -* Added support for `phpunit/php-token-stream` 2.0 -* Updated HTML report assets - -## [4.0.5] - 2017-01-20 - -### Fixed - -* Fixed formatting of executed lines percentage for classes in file view - -## [4.0.4] - 2016-12-20 - -### Changed - -* Implemented [#432](https://github.com/sebastianbergmann/php-code-coverage/issues/432): Change how files with no executable lines are displayed in the HTML report - -## [4.0.3] - 2016-11-28 - -### Changed - -* The check for unintentionally covered code is no longer performed for `@medium` and `@large` tests - -## [4.0.2] - 2016-11-01 - -### Fixed - -* Fixed [#440](https://github.com/sebastianbergmann/php-code-coverage/pull/440): Dashboard charts not showing tooltips for data points - -## [4.0.1] - 2016-07-26 - -### Fixed - -* Fixed [#458](https://github.com/sebastianbergmann/php-code-coverage/pull/458): XML report does not know about warning status - -## [4.0.0] - 2016-06-03 - -### Changed - -* This component now uses namespaces - -[4.0.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.7...4.0.8 -[4.0.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.6...4.0.7 -[4.0.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.5...4.0.6 -[4.0.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.4...4.0.5 -[4.0.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.3...4.0.4 -[4.0.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.2...4.0.3 -[4.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.1...4.0.2 -[4.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.0...4.0.1 -[4.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3...4.0.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-5.0.md b/vendor/phpunit/php-code-coverage/ChangeLog-5.0.md deleted file mode 100644 index a1f91529..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-5.0.md +++ /dev/null @@ -1,45 +0,0 @@ -# Changes in PHP_CodeCoverage 5.0 - -All notable changes of the PHP_CodeCoverage 5.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [5.0.4] - 2017-04-02 - -### Added - -* Added `SebastianBergmann\CodeCoverage\Version::id()` method - -### Fixed - -* Fixed [#515](https://github.com/sebastianbergmann/php-code-coverage/pull/515): Wrong use of recursive iterator causing duplicate entries in XML coverage report - -## [5.0.3] - 2017-03-06 - -### Fixed - -* Fixed [#451](https://github.com/sebastianbergmann/php-code-coverage/pull/451): Conflict between HTML report assets and directories named `css`, `fonts`, or `js` -* Fixed [#485](https://github.com/sebastianbergmann/php-code-coverage/issues/485): Large popover contents cannot be viewed - -## [5.0.2] - 2017-03-01 - -### Changed - -* Cleaned up requirements in `composer.json` - -## [5.0.1] - 2017-02-23 - -### Added - -* Implemented [#508](https://github.com/sebastianbergmann/php-code-coverage/pull/508): Support for HackLang's `ENUM` declaration - -## [5.0.0] - 2017-02-03 - -### Removed - -* This component is no longer supported on PHP 5 - -[5.0.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0.3...5.0.4 -[5.0.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0.2...5.0.3 -[5.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0.1...5.0.2 -[5.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0.0...5.0.1 -[5.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0...5.0.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-5.1.md b/vendor/phpunit/php-code-coverage/ChangeLog-5.1.md deleted file mode 100644 index 7cf70230..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-5.1.md +++ /dev/null @@ -1,19 +0,0 @@ -# Changes in PHP_CodeCoverage 5.1 - -All notable changes of the PHP_CodeCoverage 5.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [5.1.1] - 2017-04-12 - -## Fixed - -* Fixed [#420](https://github.com/sebastianbergmann/php-code-coverage/issues/420): Check for unexecuted covered or used code is too strict - -## [5.1.0] - 2017-04-07 - -## Changed - -* Implemented [#516](https://github.com/sebastianbergmann/php-code-coverage/pull/516): Add more information to XML code coverage report - -[5.1.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.1.0...5.1.1 -[5.1.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0...5.1.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-5.2.md b/vendor/phpunit/php-code-coverage/ChangeLog-5.2.md deleted file mode 100644 index caf10135..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-5.2.md +++ /dev/null @@ -1,44 +0,0 @@ -# Changes in PHP_CodeCoverage 5.2 - -All notable changes of the PHP_CodeCoverage 5.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [5.2.4] - 2017-11-27 - -### Fixed - -* Fixed [#424](https://github.com/sebastianbergmann/php-code-coverage/issues/424): Rest of a function or method is ignored after an anonymous function -* Fixed [#455](https://github.com/sebastianbergmann/php-code-coverage/issues/455): Dashboard does not handle namespaced classes properly -* Fixed [#468](https://github.com/sebastianbergmann/php-code-coverage/issues/468): Global functions are not properly counted -* Fixed [#560](https://github.com/sebastianbergmann/php-code-coverage/issues/560): Uncovered whitelisted files are missing from the report - -## [5.2.3] - 2017-11-03 - -### Fixed - -* Fixed [#540](https://github.com/sebastianbergmann/php-code-coverage/issues/540): Missing attribute `type` in the CSS `` elements -* Fixed [#554](https://github.com/sebastianbergmann/php-code-coverage/pull/554): `Parameter must be an array or an object that implements Countable` - -## [5.2.2] - 2017-08-03 - -## Changed - -* Bumped required versions of dependencies - -## [5.2.1] - 2017-04-21 - -## Changed - -* Version 3 of `sebastian/environment` is now required - -## [5.2.0] - 2017-04-20 - -## Changed - -* Implemented [#518](https://github.com/sebastianbergmann/php-code-coverage/pull/518): Add more information to XML code coverage report - -[5.2.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2.3...5.2.4 -[5.2.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2.2...5.2.3 -[5.2.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2.1...5.2.2 -[5.2.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2.0...5.2.1 -[5.2.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.1...5.2.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-5.3.md b/vendor/phpunit/php-code-coverage/ChangeLog-5.3.md deleted file mode 100644 index 00b5fe2c..00000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-5.3.md +++ /dev/null @@ -1,16 +0,0 @@ -# Changes in PHP_CodeCoverage 5.3 - -All notable changes of the PHP_CodeCoverage 5.3 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [5.3.0] - 2017-12-06 - -### Added - -* Added option to ignore the `forceCoversAnnotation="true"` setting for a single test - -### Fixed - -* Fixed [#564](https://github.com/sebastianbergmann/php-code-coverage/issues/564): `setDisableIgnoredLines(true)` disables more than it should - -[5.3.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2...5.3.0 - diff --git a/vendor/phpunit/php-code-coverage/LICENSE b/vendor/phpunit/php-code-coverage/LICENSE deleted file mode 100644 index 9b9787d3..00000000 --- a/vendor/phpunit/php-code-coverage/LICENSE +++ /dev/null @@ -1,33 +0,0 @@ -PHP_CodeCoverage - -Copyright (c) 2009-2017, Sebastian Bergmann . -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Sebastian Bergmann nor the names of his - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/phpunit/php-code-coverage/README.md b/vendor/phpunit/php-code-coverage/README.md deleted file mode 100644 index 6c401ef4..00000000 --- a/vendor/phpunit/php-code-coverage/README.md +++ /dev/null @@ -1,40 +0,0 @@ -[![Latest Stable Version](https://poser.pugx.org/phpunit/php-code-coverage/v/stable.png)](https://packagist.org/packages/phpunit/php-code-coverage) -[![Build Status](https://travis-ci.org/sebastianbergmann/php-code-coverage.svg?branch=5.3)](https://travis-ci.org/sebastianbergmann/php-code-coverage) - -# SebastianBergmann\CodeCoverage - -**SebastianBergmann\CodeCoverage** is a library that provides collection, processing, and rendering functionality for PHP code coverage information. - -## Installation - -You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): - - composer require phpunit/php-code-coverage - -If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: - - composer require --dev phpunit/php-code-coverage - -## Using the SebastianBergmann\CodeCoverage API - -```php -filter()->addDirectoryToWhitelist('/path/to/src'); - -$coverage->start(''); - -// ... - -$coverage->stop(); - -$writer = new \SebastianBergmann\CodeCoverage\Report\Clover; -$writer->process($coverage, '/tmp/clover.xml'); - -$writer = new \SebastianBergmann\CodeCoverage\Report\Html\Facade; -$writer->process($coverage, '/tmp/code-coverage-report'); -``` - diff --git a/vendor/phpunit/php-code-coverage/build.xml b/vendor/phpunit/php-code-coverage/build.xml deleted file mode 100644 index 40eeeec4..00000000 --- a/vendor/phpunit/php-code-coverage/build.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/vendor/phpunit/php-code-coverage/composer.json b/vendor/phpunit/php-code-coverage/composer.json deleted file mode 100644 index ed87651f..00000000 --- a/vendor/phpunit/php-code-coverage/composer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "phpunit/php-code-coverage", - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "type": "library", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues" - }, - "config": { - "optimize-autoloader": true, - "sort-packages": true - }, - "prefer-stable": true, - "require": { - "php": "^7.0", - "ext-dom": "*", - "ext-xmlwriter": "*", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-token-stream": "^2.0.1", - "phpunit/php-text-template": "^1.2.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-xdebug": "^2.5.5" - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "extra": { - "branch-alias": { - "dev-master": "5.3.x-dev" - } - } -} diff --git a/vendor/phpunit/php-code-coverage/phpunit.xml b/vendor/phpunit/php-code-coverage/phpunit.xml deleted file mode 100644 index 37e22199..00000000 --- a/vendor/phpunit/php-code-coverage/phpunit.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - tests/tests - - - - - src - - - - - - - - diff --git a/vendor/phpunit/php-code-coverage/src/CodeCoverage.php b/vendor/phpunit/php-code-coverage/src/CodeCoverage.php deleted file mode 100644 index f3e9eaaf..00000000 --- a/vendor/phpunit/php-code-coverage/src/CodeCoverage.php +++ /dev/null @@ -1,1184 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -use PHPUnit\Framework\TestCase; -use PHPUnit\Runner\PhptTestCase; -use SebastianBergmann\CodeCoverage\Driver\Driver; -use SebastianBergmann\CodeCoverage\Driver\HHVM; -use SebastianBergmann\CodeCoverage\Driver\PHPDBG; -use SebastianBergmann\CodeCoverage\Driver\Xdebug; -use SebastianBergmann\CodeCoverage\Node\Builder; -use SebastianBergmann\CodeCoverage\Node\Directory; -use SebastianBergmann\CodeUnitReverseLookup\Wizard; -use SebastianBergmann\Environment\Runtime; - -/** - * Provides collection functionality for PHP code coverage information. - */ -class CodeCoverage -{ - /** - * @var Driver - */ - private $driver; - - /** - * @var Filter - */ - private $filter; - - /** - * @var Wizard - */ - private $wizard; - - /** - * @var bool - */ - private $cacheTokens = false; - - /** - * @var bool - */ - private $checkForUnintentionallyCoveredCode = false; - - /** - * @var bool - */ - private $forceCoversAnnotation = false; - - /** - * @var bool - */ - private $checkForUnexecutedCoveredCode = false; - - /** - * @var bool - */ - private $checkForMissingCoversAnnotation = false; - - /** - * @var bool - */ - private $addUncoveredFilesFromWhitelist = true; - - /** - * @var bool - */ - private $processUncoveredFilesFromWhitelist = false; - - /** - * @var bool - */ - private $ignoreDeprecatedCode = false; - - /** - * @var mixed - */ - private $currentId; - - /** - * Code coverage data. - * - * @var array - */ - private $data = []; - - /** - * @var array - */ - private $ignoredLines = []; - - /** - * @var bool - */ - private $disableIgnoredLines = false; - - /** - * Test data. - * - * @var array - */ - private $tests = []; - - /** - * @var string[] - */ - private $unintentionallyCoveredSubclassesWhitelist = []; - - /** - * Determine if the data has been initialized or not - * - * @var bool - */ - private $isInitialized = false; - - /** - * Determine whether we need to check for dead and unused code on each test - * - * @var bool - */ - private $shouldCheckForDeadAndUnused = true; - - /** - * @var Directory - */ - private $report; - - /** - * Constructor. - * - * @param Driver $driver - * @param Filter $filter - * - * @throws RuntimeException - */ - public function __construct(Driver $driver = null, Filter $filter = null) - { - if ($driver === null) { - $driver = $this->selectDriver(); - } - - if ($filter === null) { - $filter = new Filter; - } - - $this->driver = $driver; - $this->filter = $filter; - - $this->wizard = new Wizard; - } - - /** - * Returns the code coverage information as a graph of node objects. - * - * @return Directory - */ - public function getReport() - { - if ($this->report === null) { - $builder = new Builder; - - $this->report = $builder->build($this); - } - - return $this->report; - } - - /** - * Clears collected code coverage data. - */ - public function clear() - { - $this->isInitialized = false; - $this->currentId = null; - $this->data = []; - $this->tests = []; - $this->report = null; - } - - /** - * Returns the filter object used. - * - * @return Filter - */ - public function filter() - { - return $this->filter; - } - - /** - * Returns the collected code coverage data. - * Set $raw = true to bypass all filters. - * - * @param bool $raw - * - * @return array - */ - public function getData($raw = false) - { - if (!$raw && $this->addUncoveredFilesFromWhitelist) { - $this->addUncoveredFilesFromWhitelist(); - } - - return $this->data; - } - - /** - * Sets the coverage data. - * - * @param array $data - */ - public function setData(array $data) - { - $this->data = $data; - $this->report = null; - } - - /** - * Returns the test data. - * - * @return array - */ - public function getTests() - { - return $this->tests; - } - - /** - * Sets the test data. - * - * @param array $tests - */ - public function setTests(array $tests) - { - $this->tests = $tests; - } - - /** - * Start collection of code coverage information. - * - * @param mixed $id - * @param bool $clear - * - * @throws InvalidArgumentException - */ - public function start($id, $clear = false) - { - if (!\is_bool($clear)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - if ($clear) { - $this->clear(); - } - - if ($this->isInitialized === false) { - $this->initializeData(); - } - - $this->currentId = $id; - - $this->driver->start($this->shouldCheckForDeadAndUnused); - } - - /** - * Stop collection of code coverage information. - * - * @param bool $append - * @param mixed $linesToBeCovered - * @param array $linesToBeUsed - * @param bool $ignoreForceCoversAnnotation - * - * @return array - * - * @throws \SebastianBergmann\CodeCoverage\RuntimeException - * @throws InvalidArgumentException - */ - public function stop($append = true, $linesToBeCovered = [], array $linesToBeUsed = [], $ignoreForceCoversAnnotation = false) - { - if (!\is_bool($append)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - if (!\is_array($linesToBeCovered) && $linesToBeCovered !== false) { - throw InvalidArgumentException::create( - 2, - 'array or false' - ); - } - - $data = $this->driver->stop(); - $this->append($data, null, $append, $linesToBeCovered, $linesToBeUsed, $ignoreForceCoversAnnotation); - - $this->currentId = null; - - return $data; - } - - /** - * Appends code coverage data. - * - * @param array $data - * @param mixed $id - * @param bool $append - * @param mixed $linesToBeCovered - * @param array $linesToBeUsed - * @param bool $ignoreForceCoversAnnotation - * - * @throws \SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException - * @throws \SebastianBergmann\CodeCoverage\MissingCoversAnnotationException - * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException - * @throws \ReflectionException - * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException - * @throws RuntimeException - */ - public function append(array $data, $id = null, $append = true, $linesToBeCovered = [], array $linesToBeUsed = [], $ignoreForceCoversAnnotation = false) - { - if ($id === null) { - $id = $this->currentId; - } - - if ($id === null) { - throw new RuntimeException; - } - - $this->applyListsFilter($data); - $this->applyIgnoredLinesFilter($data); - $this->initializeFilesThatAreSeenTheFirstTime($data); - - if (!$append) { - return; - } - - if ($id !== 'UNCOVERED_FILES_FROM_WHITELIST') { - $this->applyCoversAnnotationFilter( - $data, - $linesToBeCovered, - $linesToBeUsed, - $ignoreForceCoversAnnotation - ); - } - - if (empty($data)) { - return; - } - - $size = 'unknown'; - $status = null; - - if ($id instanceof TestCase) { - $_size = $id->getSize(); - - if ($_size === \PHPUnit\Util\Test::SMALL) { - $size = 'small'; - } elseif ($_size === \PHPUnit\Util\Test::MEDIUM) { - $size = 'medium'; - } elseif ($_size === \PHPUnit\Util\Test::LARGE) { - $size = 'large'; - } - - $status = $id->getStatus(); - $id = \get_class($id) . '::' . $id->getName(); - } elseif ($id instanceof PhptTestCase) { - $size = 'large'; - $id = $id->getName(); - } - - $this->tests[$id] = ['size' => $size, 'status' => $status]; - - foreach ($data as $file => $lines) { - if (!$this->filter->isFile($file)) { - continue; - } - - foreach ($lines as $k => $v) { - if ($v === Driver::LINE_EXECUTED) { - if (empty($this->data[$file][$k]) || !\in_array($id, $this->data[$file][$k])) { - $this->data[$file][$k][] = $id; - } - } - } - } - - $this->report = null; - } - - /** - * Merges the data from another instance. - * - * @param CodeCoverage $that - */ - public function merge(self $that) - { - $this->filter->setWhitelistedFiles( - \array_merge($this->filter->getWhitelistedFiles(), $that->filter()->getWhitelistedFiles()) - ); - - foreach ($that->data as $file => $lines) { - if (!isset($this->data[$file])) { - if (!$this->filter->isFiltered($file)) { - $this->data[$file] = $lines; - } - - continue; - } - - foreach ($lines as $line => $data) { - if ($data !== null) { - if (!isset($this->data[$file][$line])) { - $this->data[$file][$line] = $data; - } else { - $this->data[$file][$line] = \array_unique( - \array_merge($this->data[$file][$line], $data) - ); - } - } - } - } - - $this->tests = \array_merge($this->tests, $that->getTests()); - $this->report = null; - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setCacheTokens($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->cacheTokens = $flag; - } - - /** - * @return bool - */ - public function getCacheTokens() - { - return $this->cacheTokens; - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setCheckForUnintentionallyCoveredCode($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->checkForUnintentionallyCoveredCode = $flag; - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setForceCoversAnnotation($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->forceCoversAnnotation = $flag; - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setCheckForMissingCoversAnnotation($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->checkForMissingCoversAnnotation = $flag; - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setCheckForUnexecutedCoveredCode($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->checkForUnexecutedCoveredCode = $flag; - } - - /** - * @deprecated - * - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setMapTestClassNameToCoveredClassName($flag) - { - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setAddUncoveredFilesFromWhitelist($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->addUncoveredFilesFromWhitelist = $flag; - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setProcessUncoveredFilesFromWhitelist($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->processUncoveredFilesFromWhitelist = $flag; - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setDisableIgnoredLines($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->disableIgnoredLines = $flag; - } - - /** - * @param bool $flag - * - * @throws InvalidArgumentException - */ - public function setIgnoreDeprecatedCode($flag) - { - if (!\is_bool($flag)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - $this->ignoreDeprecatedCode = $flag; - } - - /** - * @param array $whitelist - */ - public function setUnintentionallyCoveredSubclassesWhitelist(array $whitelist) - { - $this->unintentionallyCoveredSubclassesWhitelist = $whitelist; - } - - /** - * Applies the @covers annotation filtering. - * - * @param array $data - * @param mixed $linesToBeCovered - * @param array $linesToBeUsed - * @param bool $ignoreForceCoversAnnotation - * - * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException - * @throws \ReflectionException - * @throws MissingCoversAnnotationException - * @throws UnintentionallyCoveredCodeException - */ - private function applyCoversAnnotationFilter(array &$data, $linesToBeCovered, array $linesToBeUsed, $ignoreForceCoversAnnotation) - { - if ($linesToBeCovered === false || - ($this->forceCoversAnnotation && empty($linesToBeCovered) && !$ignoreForceCoversAnnotation)) { - if ($this->checkForMissingCoversAnnotation) { - throw new MissingCoversAnnotationException; - } - - $data = []; - - return; - } - - if (empty($linesToBeCovered)) { - return; - } - - if ($this->checkForUnintentionallyCoveredCode && - (!$this->currentId instanceof TestCase || - (!$this->currentId->isMedium() && !$this->currentId->isLarge()))) { - $this->performUnintentionallyCoveredCodeCheck($data, $linesToBeCovered, $linesToBeUsed); - } - - if ($this->checkForUnexecutedCoveredCode) { - $this->performUnexecutedCoveredCodeCheck($data, $linesToBeCovered, $linesToBeUsed); - } - - $data = \array_intersect_key($data, $linesToBeCovered); - - foreach (\array_keys($data) as $filename) { - $_linesToBeCovered = \array_flip($linesToBeCovered[$filename]); - $data[$filename] = \array_intersect_key($data[$filename], $_linesToBeCovered); - } - } - - /** - * Applies the whitelist filtering. - * - * @param array $data - */ - private function applyListsFilter(array &$data) - { - foreach (\array_keys($data) as $filename) { - if ($this->filter->isFiltered($filename)) { - unset($data[$filename]); - } - } - } - - /** - * Applies the "ignored lines" filtering. - * - * @param array $data - * - * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException - */ - private function applyIgnoredLinesFilter(array &$data) - { - foreach (\array_keys($data) as $filename) { - if (!$this->filter->isFile($filename)) { - continue; - } - - foreach ($this->getLinesToBeIgnored($filename) as $line) { - unset($data[$filename][$line]); - } - } - } - - /** - * @param array $data - */ - private function initializeFilesThatAreSeenTheFirstTime(array $data) - { - foreach ($data as $file => $lines) { - if (!isset($this->data[$file]) && $this->filter->isFile($file)) { - $this->data[$file] = []; - - foreach ($lines as $k => $v) { - $this->data[$file][$k] = $v === -2 ? null : []; - } - } - } - } - - /** - * Processes whitelisted files that are not covered. - */ - private function addUncoveredFilesFromWhitelist() - { - $data = []; - $uncoveredFiles = \array_diff( - $this->filter->getWhitelist(), - \array_keys($this->data) - ); - - foreach ($uncoveredFiles as $uncoveredFile) { - if (!\file_exists($uncoveredFile)) { - continue; - } - - $data[$uncoveredFile] = []; - - $lines = \count(\file($uncoveredFile)); - - for ($i = 1; $i <= $lines; $i++) { - $data[$uncoveredFile][$i] = Driver::LINE_NOT_EXECUTED; - } - } - - $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); - } - - /** - * Returns the lines of a source file that should be ignored. - * - * @param string $filename - * - * @return array - * - * @throws InvalidArgumentException - */ - private function getLinesToBeIgnored($filename) - { - if (!\is_string($filename)) { - throw InvalidArgumentException::create( - 1, - 'string' - ); - } - - if (isset($this->ignoredLines[$filename])) { - return $this->ignoredLines[$filename]; - } - - $this->ignoredLines[$filename] = []; - - $lines = \file($filename); - - foreach ($lines as $index => $line) { - if (!\trim($line)) { - $this->ignoredLines[$filename][] = $index + 1; - } - } - - if ($this->cacheTokens) { - $tokens = \PHP_Token_Stream_CachingFactory::get($filename); - } else { - $tokens = new \PHP_Token_Stream($filename); - } - - foreach ($tokens->getInterfaces() as $interface) { - $interfaceStartLine = $interface['startLine']; - $interfaceEndLine = $interface['endLine']; - - foreach (\range($interfaceStartLine, $interfaceEndLine) as $line) { - $this->ignoredLines[$filename][] = $line; - } - } - - foreach (\array_merge($tokens->getClasses(), $tokens->getTraits()) as $classOrTrait) { - $classOrTraitStartLine = $classOrTrait['startLine']; - $classOrTraitEndLine = $classOrTrait['endLine']; - - if (empty($classOrTrait['methods'])) { - foreach (\range($classOrTraitStartLine, $classOrTraitEndLine) as $line) { - $this->ignoredLines[$filename][] = $line; - } - - continue; - } - - $firstMethod = \array_shift($classOrTrait['methods']); - $firstMethodStartLine = $firstMethod['startLine']; - $firstMethodEndLine = $firstMethod['endLine']; - $lastMethodEndLine = $firstMethodEndLine; - - do { - $lastMethod = \array_pop($classOrTrait['methods']); - } while ($lastMethod !== null && 0 === \strpos($lastMethod['signature'], 'anonymousFunction')); - - if ($lastMethod !== null) { - $lastMethodEndLine = $lastMethod['endLine']; - } - - foreach (\range($classOrTraitStartLine, $firstMethodStartLine) as $line) { - $this->ignoredLines[$filename][] = $line; - } - - foreach (\range($lastMethodEndLine + 1, $classOrTraitEndLine) as $line) { - $this->ignoredLines[$filename][] = $line; - } - } - - if ($this->disableIgnoredLines) { - $this->ignoredLines[$filename] = array_unique($this->ignoredLines[$filename]); - \sort($this->ignoredLines[$filename]); - - return $this->ignoredLines[$filename]; - } - - $ignore = false; - $stop = false; - - foreach ($tokens->tokens() as $token) { - switch (\get_class($token)) { - case \PHP_Token_COMMENT::class: - case \PHP_Token_DOC_COMMENT::class: - $_token = \trim($token); - $_line = \trim($lines[$token->getLine() - 1]); - - if ($_token === '// @codeCoverageIgnore' || - $_token === '//@codeCoverageIgnore') { - $ignore = true; - $stop = true; - } elseif ($_token === '// @codeCoverageIgnoreStart' || - $_token === '//@codeCoverageIgnoreStart') { - $ignore = true; - } elseif ($_token === '// @codeCoverageIgnoreEnd' || - $_token === '//@codeCoverageIgnoreEnd') { - $stop = true; - } - - if (!$ignore) { - $start = $token->getLine(); - $end = $start + \substr_count($token, "\n"); - - // Do not ignore the first line when there is a token - // before the comment - if (0 !== \strpos($_token, $_line)) { - $start++; - } - - for ($i = $start; $i < $end; $i++) { - $this->ignoredLines[$filename][] = $i; - } - - // A DOC_COMMENT token or a COMMENT token starting with "/*" - // does not contain the final \n character in its text - if (isset($lines[$i - 1]) && 0 === \strpos($_token, '/*') && '*/' === \substr(\trim($lines[$i - 1]), -2)) { - $this->ignoredLines[$filename][] = $i; - } - } - - break; - - case \PHP_Token_INTERFACE::class: - case \PHP_Token_TRAIT::class: - case \PHP_Token_CLASS::class: - case \PHP_Token_FUNCTION::class: - /* @var \PHP_Token_Interface $token */ - - $docblock = $token->getDocblock(); - - $this->ignoredLines[$filename][] = $token->getLine(); - - if (\strpos($docblock, '@codeCoverageIgnore') || ($this->ignoreDeprecatedCode && \strpos($docblock, '@deprecated'))) { - $endLine = $token->getEndLine(); - - for ($i = $token->getLine(); $i <= $endLine; $i++) { - $this->ignoredLines[$filename][] = $i; - } - } - - break; - - case \PHP_Token_ENUM::class: - $this->ignoredLines[$filename][] = $token->getLine(); - - break; - - case \PHP_Token_NAMESPACE::class: - $this->ignoredLines[$filename][] = $token->getEndLine(); - - // Intentional fallthrough - case \PHP_Token_DECLARE::class: - case \PHP_Token_OPEN_TAG::class: - case \PHP_Token_CLOSE_TAG::class: - case \PHP_Token_USE::class: - $this->ignoredLines[$filename][] = $token->getLine(); - - break; - } - - if ($ignore) { - $this->ignoredLines[$filename][] = $token->getLine(); - - if ($stop) { - $ignore = false; - $stop = false; - } - } - } - - $this->ignoredLines[$filename][] = \count($lines) + 1; - - $this->ignoredLines[$filename] = \array_unique( - $this->ignoredLines[$filename] - ); - - $this->ignoredLines[$filename] = array_unique($this->ignoredLines[$filename]); - \sort($this->ignoredLines[$filename]); - - return $this->ignoredLines[$filename]; - } - - /** - * @param array $data - * @param array $linesToBeCovered - * @param array $linesToBeUsed - * - * @throws \ReflectionException - * @throws UnintentionallyCoveredCodeException - */ - private function performUnintentionallyCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed) - { - $allowedLines = $this->getAllowedLines( - $linesToBeCovered, - $linesToBeUsed - ); - - $unintentionallyCoveredUnits = []; - - foreach ($data as $file => $_data) { - foreach ($_data as $line => $flag) { - if ($flag === 1 && !isset($allowedLines[$file][$line])) { - $unintentionallyCoveredUnits[] = $this->wizard->lookup($file, $line); - } - } - } - - $unintentionallyCoveredUnits = $this->processUnintentionallyCoveredUnits($unintentionallyCoveredUnits); - - if (!empty($unintentionallyCoveredUnits)) { - throw new UnintentionallyCoveredCodeException( - $unintentionallyCoveredUnits - ); - } - } - - /** - * @param array $data - * @param array $linesToBeCovered - * @param array $linesToBeUsed - * - * @throws CoveredCodeNotExecutedException - */ - private function performUnexecutedCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed) - { - $executedCodeUnits = $this->coverageToCodeUnits($data); - $message = ''; - - foreach ($this->linesToCodeUnits($linesToBeCovered) as $codeUnit) { - if (!\in_array($codeUnit, $executedCodeUnits)) { - $message .= \sprintf( - '- %s is expected to be executed (@covers) but was not executed' . "\n", - $codeUnit - ); - } - } - - foreach ($this->linesToCodeUnits($linesToBeUsed) as $codeUnit) { - if (!\in_array($codeUnit, $executedCodeUnits)) { - $message .= \sprintf( - '- %s is expected to be executed (@uses) but was not executed' . "\n", - $codeUnit - ); - } - } - - if (!empty($message)) { - throw new CoveredCodeNotExecutedException($message); - } - } - - /** - * @param array $linesToBeCovered - * @param array $linesToBeUsed - * - * @return array - */ - private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed) - { - $allowedLines = []; - - foreach (\array_keys($linesToBeCovered) as $file) { - if (!isset($allowedLines[$file])) { - $allowedLines[$file] = []; - } - - $allowedLines[$file] = \array_merge( - $allowedLines[$file], - $linesToBeCovered[$file] - ); - } - - foreach (\array_keys($linesToBeUsed) as $file) { - if (!isset($allowedLines[$file])) { - $allowedLines[$file] = []; - } - - $allowedLines[$file] = \array_merge( - $allowedLines[$file], - $linesToBeUsed[$file] - ); - } - - foreach (\array_keys($allowedLines) as $file) { - $allowedLines[$file] = \array_flip( - \array_unique($allowedLines[$file]) - ); - } - - return $allowedLines; - } - - /** - * @return Driver - * - * @throws RuntimeException - */ - private function selectDriver() - { - $runtime = new Runtime; - - if (!$runtime->canCollectCodeCoverage()) { - throw new RuntimeException('No code coverage driver available'); - } - - if ($runtime->isHHVM()) { - return new HHVM; - } - - if ($runtime->isPHPDBG()) { - return new PHPDBG; - } - - return new Xdebug; - } - - /** - * @param array $unintentionallyCoveredUnits - * - * @return array - * - * @throws \ReflectionException - */ - private function processUnintentionallyCoveredUnits(array $unintentionallyCoveredUnits) - { - $unintentionallyCoveredUnits = \array_unique($unintentionallyCoveredUnits); - \sort($unintentionallyCoveredUnits); - - foreach (\array_keys($unintentionallyCoveredUnits) as $k => $v) { - $unit = \explode('::', $unintentionallyCoveredUnits[$k]); - - if (\count($unit) !== 2) { - continue; - } - - $class = new \ReflectionClass($unit[0]); - - foreach ($this->unintentionallyCoveredSubclassesWhitelist as $whitelisted) { - if ($class->isSubclassOf($whitelisted)) { - unset($unintentionallyCoveredUnits[$k]); - - break; - } - } - } - - return \array_values($unintentionallyCoveredUnits); - } - - /** - * If we are processing uncovered files from whitelist, - * we can initialize the data before we start to speed up the tests - * - * @throws \SebastianBergmann\CodeCoverage\RuntimeException - */ - protected function initializeData() - { - $this->isInitialized = true; - - if ($this->processUncoveredFilesFromWhitelist) { - $this->shouldCheckForDeadAndUnused = false; - - $this->driver->start(true); - - foreach ($this->filter->getWhitelist() as $file) { - if ($this->filter->isFile($file)) { - include_once($file); - } - } - - $data = []; - $coverage = $this->driver->stop(); - - foreach ($coverage as $file => $fileCoverage) { - if ($this->filter->isFiltered($file)) { - continue; - } - - foreach (\array_keys($fileCoverage) as $key) { - if ($fileCoverage[$key] === Driver::LINE_EXECUTED) { - $fileCoverage[$key] = Driver::LINE_NOT_EXECUTED; - } - } - - $data[$file] = $fileCoverage; - } - - $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); - } - } - - /** - * @param array $data - * - * @return array - */ - private function coverageToCodeUnits(array $data) - { - $codeUnits = []; - - foreach ($data as $filename => $lines) { - foreach ($lines as $line => $flag) { - if ($flag === 1) { - $codeUnits[] = $this->wizard->lookup($filename, $line); - } - } - } - - return \array_unique($codeUnits); - } - - /** - * @param array $data - * - * @return array - */ - private function linesToCodeUnits(array $data) - { - $codeUnits = []; - - foreach ($data as $filename => $lines) { - foreach ($lines as $line) { - $codeUnits[] = $this->wizard->lookup($filename, $line); - } - } - - return \array_unique($codeUnits); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/Driver.php b/vendor/phpunit/php-code-coverage/src/Driver/Driver.php deleted file mode 100644 index bdd1b979..00000000 --- a/vendor/phpunit/php-code-coverage/src/Driver/Driver.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Driver; - -/** - * Interface for code coverage drivers. - */ -interface Driver -{ - /** - * @var int - * - * @see http://xdebug.org/docs/code_coverage - */ - const LINE_EXECUTED = 1; - - /** - * @var int - * - * @see http://xdebug.org/docs/code_coverage - */ - const LINE_NOT_EXECUTED = -1; - - /** - * @var int - * - * @see http://xdebug.org/docs/code_coverage - */ - const LINE_NOT_EXECUTABLE = -2; - - /** - * Start collection of code coverage information. - * - * @param bool $determineUnusedAndDead - */ - public function start($determineUnusedAndDead = true); - - /** - * Stop collection of code coverage information. - * - * @return array - */ - public function stop(); -} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/HHVM.php b/vendor/phpunit/php-code-coverage/src/Driver/HHVM.php deleted file mode 100644 index e8cdc2a4..00000000 --- a/vendor/phpunit/php-code-coverage/src/Driver/HHVM.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Driver; - -/** - * Driver for HHVM's code coverage functionality. - * - * @codeCoverageIgnore - */ -class HHVM extends Xdebug -{ - /** - * Start collection of code coverage information. - * - * @param bool $determineUnusedAndDead - */ - public function start($determineUnusedAndDead = true) - { - \xdebug_start_code_coverage(); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php b/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php deleted file mode 100644 index 71b9559c..00000000 --- a/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php +++ /dev/null @@ -1,111 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Driver; - -use SebastianBergmann\CodeCoverage\RuntimeException; - -/** - * Driver for PHPDBG's code coverage functionality. - * - * @codeCoverageIgnore - */ -class PHPDBG implements Driver -{ - /** - * Constructor. - */ - public function __construct() - { - if (PHP_SAPI !== 'phpdbg') { - throw new RuntimeException( - 'This driver requires the PHPDBG SAPI' - ); - } - - if (!\function_exists('phpdbg_start_oplog')) { - throw new RuntimeException( - 'This build of PHPDBG does not support code coverage' - ); - } - } - - /** - * Start collection of code coverage information. - * - * @param bool $determineUnusedAndDead - */ - public function start($determineUnusedAndDead = true) - { - phpdbg_start_oplog(); - } - - /** - * Stop collection of code coverage information. - * - * @return array - */ - public function stop() - { - static $fetchedLines = []; - - $dbgData = phpdbg_end_oplog(); - - if ($fetchedLines == []) { - $sourceLines = phpdbg_get_executable(); - } else { - $newFiles = \array_diff( - \get_included_files(), - \array_keys($fetchedLines) - ); - - if ($newFiles) { - $sourceLines = phpdbg_get_executable( - ['files' => $newFiles] - ); - } else { - $sourceLines = []; - } - } - - foreach ($sourceLines as $file => $lines) { - foreach ($lines as $lineNo => $numExecuted) { - $sourceLines[$file][$lineNo] = self::LINE_NOT_EXECUTED; - } - } - - $fetchedLines = \array_merge($fetchedLines, $sourceLines); - - return $this->detectExecutedLines($fetchedLines, $dbgData); - } - - /** - * Convert phpdbg based data into the format CodeCoverage expects - * - * @param array $sourceLines - * @param array $dbgData - * - * @return array - */ - private function detectExecutedLines(array $sourceLines, array $dbgData) - { - foreach ($dbgData as $file => $coveredLines) { - foreach ($coveredLines as $lineNo => $numExecuted) { - // phpdbg also reports $lineNo=0 when e.g. exceptions get thrown. - // make sure we only mark lines executed which are actually executable. - if (isset($sourceLines[$file][$lineNo])) { - $sourceLines[$file][$lineNo] = self::LINE_EXECUTED; - } - } - } - - return $sourceLines; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php b/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php deleted file mode 100644 index 208ae2be..00000000 --- a/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php +++ /dev/null @@ -1,117 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Driver; - -use SebastianBergmann\CodeCoverage\RuntimeException; - -/** - * Driver for Xdebug's code coverage functionality. - * - * @codeCoverageIgnore - */ -class Xdebug implements Driver -{ - /** - * Cache the number of lines for each file - * - * @var array - */ - private $cacheNumLines = []; - - /** - * Constructor. - */ - public function __construct() - { - if (!\extension_loaded('xdebug')) { - throw new RuntimeException('This driver requires Xdebug'); - } - - if (\version_compare(\phpversion('xdebug'), '2.2.1', '>=') && - !\ini_get('xdebug.coverage_enable')) { - throw new RuntimeException( - 'xdebug.coverage_enable=On has to be set in php.ini' - ); - } - } - - /** - * Start collection of code coverage information. - * - * @param bool $determineUnusedAndDead - */ - public function start($determineUnusedAndDead = true) - { - if ($determineUnusedAndDead) { - \xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE); - } else { - \xdebug_start_code_coverage(); - } - } - - /** - * Stop collection of code coverage information. - * - * @return array - */ - public function stop() - { - $data = \xdebug_get_code_coverage(); - \xdebug_stop_code_coverage(); - - return $this->cleanup($data); - } - - /** - * @param array $data - * - * @return array - */ - private function cleanup(array $data) - { - foreach (\array_keys($data) as $file) { - unset($data[$file][0]); - - if (\strpos($file, 'xdebug://debug-eval') !== 0 && \file_exists($file)) { - $numLines = $this->getNumberOfLinesInFile($file); - - foreach (\array_keys($data[$file]) as $line) { - if ($line > $numLines) { - unset($data[$file][$line]); - } - } - } - } - - return $data; - } - - /** - * @param string $file - * - * @return int - */ - private function getNumberOfLinesInFile($file) - { - if (!isset($this->cacheNumLines[$file])) { - $buffer = \file_get_contents($file); - $lines = \substr_count($buffer, "\n"); - - if (\substr($buffer, -1) !== "\n") { - $lines++; - } - - $this->cacheNumLines[$file] = $lines; - } - - return $this->cacheNumLines[$file]; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php b/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php deleted file mode 100644 index ca28a231..00000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Exception that is raised when covered code is not executed. - */ -class CoveredCodeNotExecutedException extends RuntimeException -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/Exception.php b/vendor/phpunit/php-code-coverage/src/Exception/Exception.php deleted file mode 100644 index a3ba4c4c..00000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/Exception.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Exception interface for php-code-coverage component. - */ -interface Exception -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php b/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php deleted file mode 100644 index 1c632613..00000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -class InvalidArgumentException extends \InvalidArgumentException implements Exception -{ - /** - * @param int $argument - * @param string $type - * @param mixed $value - * - * @return InvalidArgumentException - */ - public static function create($argument, $type, $value = null) - { - $stack = \debug_backtrace(0); - - return new self( - \sprintf( - 'Argument #%d%sof %s::%s() must be a %s', - $argument, - $value !== null ? ' (' . \gettype($value) . '#' . $value . ')' : ' (No Value) ', - $stack[1]['class'], - $stack[1]['function'], - $type - ) - ); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php b/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php deleted file mode 100644 index 7bc5cf3e..00000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Exception that is raised when @covers must be used but is not. - */ -class MissingCoversAnnotationException extends RuntimeException -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php b/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php deleted file mode 100644 index c143db7d..00000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php +++ /dev/null @@ -1,15 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -class RuntimeException extends \RuntimeException implements Exception -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php b/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php deleted file mode 100644 index 3ea542b1..00000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Exception that is raised when code is unintentionally covered. - */ -class UnintentionallyCoveredCodeException extends RuntimeException -{ - /** - * @var array - */ - private $unintentionallyCoveredUnits = []; - - /** - * @param array $unintentionallyCoveredUnits - */ - public function __construct(array $unintentionallyCoveredUnits) - { - $this->unintentionallyCoveredUnits = $unintentionallyCoveredUnits; - - parent::__construct($this->toString()); - } - - /** - * @return array - */ - public function getUnintentionallyCoveredUnits() - { - return $this->unintentionallyCoveredUnits; - } - - /** - * @return string - */ - private function toString() - { - $message = ''; - - foreach ($this->unintentionallyCoveredUnits as $unit) { - $message .= '- ' . $unit . "\n"; - } - - return $message; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Filter.php b/vendor/phpunit/php-code-coverage/src/Filter.php deleted file mode 100644 index 3d99abb5..00000000 --- a/vendor/phpunit/php-code-coverage/src/Filter.php +++ /dev/null @@ -1,173 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Filter for whitelisting of code coverage information. - */ -class Filter -{ - /** - * Source files that are whitelisted. - * - * @var array - */ - private $whitelistedFiles = []; - - /** - * Adds a directory to the whitelist (recursively). - * - * @param string $directory - * @param string $suffix - * @param string $prefix - */ - public function addDirectoryToWhitelist($directory, $suffix = '.php', $prefix = '') - { - $facade = new \File_Iterator_Facade; - $files = $facade->getFilesAsArray($directory, $suffix, $prefix); - - foreach ($files as $file) { - $this->addFileToWhitelist($file); - } - } - - /** - * Adds a file to the whitelist. - * - * @param string $filename - */ - public function addFileToWhitelist($filename) - { - $this->whitelistedFiles[\realpath($filename)] = true; - } - - /** - * Adds files to the whitelist. - * - * @param array $files - */ - public function addFilesToWhitelist(array $files) - { - foreach ($files as $file) { - $this->addFileToWhitelist($file); - } - } - - /** - * Removes a directory from the whitelist (recursively). - * - * @param string $directory - * @param string $suffix - * @param string $prefix - */ - public function removeDirectoryFromWhitelist($directory, $suffix = '.php', $prefix = '') - { - $facade = new \File_Iterator_Facade; - $files = $facade->getFilesAsArray($directory, $suffix, $prefix); - - foreach ($files as $file) { - $this->removeFileFromWhitelist($file); - } - } - - /** - * Removes a file from the whitelist. - * - * @param string $filename - */ - public function removeFileFromWhitelist($filename) - { - $filename = \realpath($filename); - - unset($this->whitelistedFiles[$filename]); - } - - /** - * Checks whether a filename is a real filename. - * - * @param string $filename - * - * @return bool - */ - public function isFile($filename) - { - if ($filename == '-' || - \strpos($filename, 'vfs://') === 0 || - \strpos($filename, 'xdebug://debug-eval') !== false || - \strpos($filename, 'eval()\'d code') !== false || - \strpos($filename, 'runtime-created function') !== false || - \strpos($filename, 'runkit created function') !== false || - \strpos($filename, 'assert code') !== false || - \strpos($filename, 'regexp code') !== false) { - return false; - } - - return \file_exists($filename); - } - - /** - * Checks whether or not a file is filtered. - * - * @param string $filename - * - * @return bool - */ - public function isFiltered($filename) - { - if (!$this->isFile($filename)) { - return true; - } - - $filename = \realpath($filename); - - return !isset($this->whitelistedFiles[$filename]); - } - - /** - * Returns the list of whitelisted files. - * - * @return array - */ - public function getWhitelist() - { - return \array_keys($this->whitelistedFiles); - } - - /** - * Returns whether this filter has a whitelist. - * - * @return bool - */ - public function hasWhitelist() - { - return !empty($this->whitelistedFiles); - } - - /** - * Returns the whitelisted files. - * - * @return array - */ - public function getWhitelistedFiles() - { - return $this->whitelistedFiles; - } - - /** - * Sets the whitelisted files. - * - * @param array $whitelistedFiles - */ - public function setWhitelistedFiles($whitelistedFiles) - { - $this->whitelistedFiles = $whitelistedFiles; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php b/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php deleted file mode 100644 index e8f08cba..00000000 --- a/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php +++ /dev/null @@ -1,404 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -use SebastianBergmann\CodeCoverage\Util; - -/** - * Base class for nodes in the code coverage information tree. - */ -abstract class AbstractNode implements \Countable -{ - /** - * @var string - */ - private $name; - - /** - * @var string - */ - private $path; - - /** - * @var array - */ - private $pathArray; - - /** - * @var AbstractNode - */ - private $parent; - - /** - * @var string - */ - private $id; - - /** - * Constructor. - * - * @param string $name - * @param AbstractNode $parent - */ - public function __construct($name, self $parent = null) - { - if (\substr($name, -1) == '/') { - $name = \substr($name, 0, -1); - } - - $this->name = $name; - $this->parent = $parent; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * @return string - */ - public function getId() - { - if ($this->id === null) { - $parent = $this->getParent(); - - if ($parent === null) { - $this->id = 'index'; - } else { - $parentId = $parent->getId(); - - if ($parentId == 'index') { - $this->id = \str_replace(':', '_', $this->name); - } else { - $this->id = $parentId . '/' . $this->name; - } - } - } - - return $this->id; - } - - /** - * @return string - */ - public function getPath() - { - if ($this->path === null) { - if ($this->parent === null || $this->parent->getPath() === null || $this->parent->getPath() === false) { - $this->path = $this->name; - } else { - $this->path = $this->parent->getPath() . '/' . $this->name; - } - } - - return $this->path; - } - - /** - * @return array - */ - public function getPathAsArray() - { - if ($this->pathArray === null) { - if ($this->parent === null) { - $this->pathArray = []; - } else { - $this->pathArray = $this->parent->getPathAsArray(); - } - - $this->pathArray[] = $this; - } - - return $this->pathArray; - } - - /** - * @return AbstractNode - */ - public function getParent() - { - return $this->parent; - } - - /** - * Returns the percentage of classes that has been tested. - * - * @param bool $asString - * - * @return int - */ - public function getTestedClassesPercent($asString = true) - { - return Util::percent( - $this->getNumTestedClasses(), - $this->getNumClasses(), - $asString - ); - } - - /** - * Returns the percentage of traits that has been tested. - * - * @param bool $asString - * - * @return int - */ - public function getTestedTraitsPercent($asString = true) - { - return Util::percent( - $this->getNumTestedTraits(), - $this->getNumTraits(), - $asString - ); - } - - /** - * Returns the percentage of classes and traits that has been tested. - * - * @param bool $asString - * - * @return int - */ - public function getTestedClassesAndTraitsPercent($asString = true) - { - return Util::percent( - $this->getNumTestedClassesAndTraits(), - $this->getNumClassesAndTraits(), - $asString - ); - } - - /** - * Returns the percentage of functions that has been tested. - * - * @param bool $asString - * - * @return int - */ - public function getTestedFunctionsPercent($asString = true) - { - return Util::percent( - $this->getNumTestedFunctions(), - $this->getNumFunctions(), - $asString - ); - } - - /** - * Returns the percentage of methods that has been tested. - * - * @param bool $asString - * - * @return int - */ - public function getTestedMethodsPercent($asString = true) - { - return Util::percent( - $this->getNumTestedMethods(), - $this->getNumMethods(), - $asString - ); - } - - /** - * Returns the percentage of functions and methods that has been tested. - * - * @param bool $asString - * - * @return int - */ - public function getTestedFunctionsAndMethodsPercent($asString = true) - { - return Util::percent( - $this->getNumTestedFunctionsAndMethods(), - $this->getNumFunctionsAndMethods(), - $asString - ); - } - - /** - * Returns the percentage of executed lines. - * - * @param bool $asString - * - * @return int - */ - public function getLineExecutedPercent($asString = true) - { - return Util::percent( - $this->getNumExecutedLines(), - $this->getNumExecutableLines(), - $asString - ); - } - - /** - * Returns the number of classes and traits. - * - * @return int - */ - public function getNumClassesAndTraits() - { - return $this->getNumClasses() + $this->getNumTraits(); - } - - /** - * Returns the number of tested classes and traits. - * - * @return int - */ - public function getNumTestedClassesAndTraits() - { - return $this->getNumTestedClasses() + $this->getNumTestedTraits(); - } - - /** - * Returns the classes and traits of this node. - * - * @return array - */ - public function getClassesAndTraits() - { - return \array_merge($this->getClasses(), $this->getTraits()); - } - - /** - * Returns the number of functions and methods. - * - * @return int - */ - public function getNumFunctionsAndMethods() - { - return $this->getNumFunctions() + $this->getNumMethods(); - } - - /** - * Returns the number of tested functions and methods. - * - * @return int - */ - public function getNumTestedFunctionsAndMethods() - { - return $this->getNumTestedFunctions() + $this->getNumTestedMethods(); - } - - /** - * Returns the functions and methods of this node. - * - * @return array - */ - public function getFunctionsAndMethods() - { - return \array_merge($this->getFunctions(), $this->getMethods()); - } - - /** - * Returns the classes of this node. - * - * @return array - */ - abstract public function getClasses(); - - /** - * Returns the traits of this node. - * - * @return array - */ - abstract public function getTraits(); - - /** - * Returns the functions of this node. - * - * @return array - */ - abstract public function getFunctions(); - - /** - * Returns the LOC/CLOC/NCLOC of this node. - * - * @return array - */ - abstract public function getLinesOfCode(); - - /** - * Returns the number of executable lines. - * - * @return int - */ - abstract public function getNumExecutableLines(); - - /** - * Returns the number of executed lines. - * - * @return int - */ - abstract public function getNumExecutedLines(); - - /** - * Returns the number of classes. - * - * @return int - */ - abstract public function getNumClasses(); - - /** - * Returns the number of tested classes. - * - * @return int - */ - abstract public function getNumTestedClasses(); - - /** - * Returns the number of traits. - * - * @return int - */ - abstract public function getNumTraits(); - - /** - * Returns the number of tested traits. - * - * @return int - */ - abstract public function getNumTestedTraits(); - - /** - * Returns the number of methods. - * - * @return int - */ - abstract public function getNumMethods(); - - /** - * Returns the number of tested methods. - * - * @return int - */ - abstract public function getNumTestedMethods(); - - /** - * Returns the number of functions. - * - * @return int - */ - abstract public function getNumFunctions(); - - /** - * Returns the number of tested functions. - * - * @return int - */ - abstract public function getNumTestedFunctions(); -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Builder.php b/vendor/phpunit/php-code-coverage/src/Node/Builder.php deleted file mode 100644 index 56541d57..00000000 --- a/vendor/phpunit/php-code-coverage/src/Node/Builder.php +++ /dev/null @@ -1,245 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -use SebastianBergmann\CodeCoverage\CodeCoverage; - -class Builder -{ - /** - * @param CodeCoverage $coverage - * - * @return Directory - */ - public function build(CodeCoverage $coverage) - { - $files = $coverage->getData(); - $commonPath = $this->reducePaths($files); - $root = new Directory( - $commonPath, - null - ); - - $this->addItems( - $root, - $this->buildDirectoryStructure($files), - $coverage->getTests(), - $coverage->getCacheTokens() - ); - - return $root; - } - - /** - * @param Directory $root - * @param array $items - * @param array $tests - * @param bool $cacheTokens - */ - private function addItems(Directory $root, array $items, array $tests, $cacheTokens) - { - foreach ($items as $key => $value) { - if (\substr($key, -2) == '/f') { - $key = \substr($key, 0, -2); - - if (\file_exists($root->getPath() . DIRECTORY_SEPARATOR . $key)) { - $root->addFile($key, $value, $tests, $cacheTokens); - } - } else { - $child = $root->addDirectory($key); - $this->addItems($child, $value, $tests, $cacheTokens); - } - } - } - - /** - * Builds an array representation of the directory structure. - * - * For instance, - * - * - * Array - * ( - * [Money.php] => Array - * ( - * ... - * ) - * - * [MoneyBag.php] => Array - * ( - * ... - * ) - * ) - * - * - * is transformed into - * - * - * Array - * ( - * [.] => Array - * ( - * [Money.php] => Array - * ( - * ... - * ) - * - * [MoneyBag.php] => Array - * ( - * ... - * ) - * ) - * ) - * - * - * @param array $files - * - * @return array - */ - private function buildDirectoryStructure($files) - { - $result = []; - - foreach ($files as $path => $file) { - $path = \explode('/', $path); - $pointer = &$result; - $max = \count($path); - - for ($i = 0; $i < $max; $i++) { - if ($i == ($max - 1)) { - $type = '/f'; - } else { - $type = ''; - } - - $pointer = &$pointer[$path[$i] . $type]; - } - - $pointer = $file; - } - - return $result; - } - - /** - * Reduces the paths by cutting the longest common start path. - * - * For instance, - * - * - * Array - * ( - * [/home/sb/Money/Money.php] => Array - * ( - * ... - * ) - * - * [/home/sb/Money/MoneyBag.php] => Array - * ( - * ... - * ) - * ) - * - * - * is reduced to - * - * - * Array - * ( - * [Money.php] => Array - * ( - * ... - * ) - * - * [MoneyBag.php] => Array - * ( - * ... - * ) - * ) - * - * - * @param array $files - * - * @return string - */ - private function reducePaths(&$files) - { - if (empty($files)) { - return '.'; - } - - $commonPath = ''; - $paths = \array_keys($files); - - if (\count($files) == 1) { - $commonPath = \dirname($paths[0]) . '/'; - $files[\basename($paths[0])] = $files[$paths[0]]; - - unset($files[$paths[0]]); - - return $commonPath; - } - - $max = \count($paths); - - for ($i = 0; $i < $max; $i++) { - // strip phar:// prefixes - if (\strpos($paths[$i], 'phar://') === 0) { - $paths[$i] = \substr($paths[$i], 7); - $paths[$i] = \strtr($paths[$i], '/', DIRECTORY_SEPARATOR); - } - $paths[$i] = \explode(DIRECTORY_SEPARATOR, $paths[$i]); - - if (empty($paths[$i][0])) { - $paths[$i][0] = DIRECTORY_SEPARATOR; - } - } - - $done = false; - $max = \count($paths); - - while (!$done) { - for ($i = 0; $i < $max - 1; $i++) { - if (!isset($paths[$i][0]) || - !isset($paths[$i + 1][0]) || - $paths[$i][0] != $paths[$i + 1][0]) { - $done = true; - - break; - } - } - - if (!$done) { - $commonPath .= $paths[0][0]; - - if ($paths[0][0] != DIRECTORY_SEPARATOR) { - $commonPath .= DIRECTORY_SEPARATOR; - } - - for ($i = 0; $i < $max; $i++) { - \array_shift($paths[$i]); - } - } - } - - $original = \array_keys($files); - $max = \count($original); - - for ($i = 0; $i < $max; $i++) { - $files[\implode('/', $paths[$i])] = $files[$original[$i]]; - unset($files[$original[$i]]); - } - - \ksort($files); - - return \substr($commonPath, 0, -1); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Directory.php b/vendor/phpunit/php-code-coverage/src/Node/Directory.php deleted file mode 100644 index 3c95d289..00000000 --- a/vendor/phpunit/php-code-coverage/src/Node/Directory.php +++ /dev/null @@ -1,483 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -use SebastianBergmann\CodeCoverage\InvalidArgumentException; - -/** - * Represents a directory in the code coverage information tree. - */ -class Directory extends AbstractNode implements \IteratorAggregate -{ - /** - * @var AbstractNode[] - */ - private $children = []; - - /** - * @var Directory[] - */ - private $directories = []; - - /** - * @var File[] - */ - private $files = []; - - /** - * @var array - */ - private $classes; - - /** - * @var array - */ - private $traits; - - /** - * @var array - */ - private $functions; - - /** - * @var array - */ - private $linesOfCode = null; - - /** - * @var int - */ - private $numFiles = -1; - - /** - * @var int - */ - private $numExecutableLines = -1; - - /** - * @var int - */ - private $numExecutedLines = -1; - - /** - * @var int - */ - private $numClasses = -1; - - /** - * @var int - */ - private $numTestedClasses = -1; - - /** - * @var int - */ - private $numTraits = -1; - - /** - * @var int - */ - private $numTestedTraits = -1; - - /** - * @var int - */ - private $numMethods = -1; - - /** - * @var int - */ - private $numTestedMethods = -1; - - /** - * @var int - */ - private $numFunctions = -1; - - /** - * @var int - */ - private $numTestedFunctions = -1; - - /** - * Returns the number of files in/under this node. - * - * @return int - */ - public function count() - { - if ($this->numFiles == -1) { - $this->numFiles = 0; - - foreach ($this->children as $child) { - $this->numFiles += \count($child); - } - } - - return $this->numFiles; - } - - /** - * Returns an iterator for this node. - * - * @return \RecursiveIteratorIterator - */ - public function getIterator() - { - return new \RecursiveIteratorIterator( - new Iterator($this), - \RecursiveIteratorIterator::SELF_FIRST - ); - } - - /** - * Adds a new directory. - * - * @param string $name - * - * @return Directory - */ - public function addDirectory($name) - { - $directory = new self($name, $this); - - $this->children[] = $directory; - $this->directories[] = &$this->children[\count($this->children) - 1]; - - return $directory; - } - - /** - * Adds a new file. - * - * @param string $name - * @param array $coverageData - * @param array $testData - * @param bool $cacheTokens - * - * @return File - * - * @throws InvalidArgumentException - */ - public function addFile($name, array $coverageData, array $testData, $cacheTokens) - { - $file = new File( - $name, - $this, - $coverageData, - $testData, - $cacheTokens - ); - - $this->children[] = $file; - $this->files[] = &$this->children[\count($this->children) - 1]; - - $this->numExecutableLines = -1; - $this->numExecutedLines = -1; - - return $file; - } - - /** - * Returns the directories in this directory. - * - * @return array - */ - public function getDirectories() - { - return $this->directories; - } - - /** - * Returns the files in this directory. - * - * @return array - */ - public function getFiles() - { - return $this->files; - } - - /** - * Returns the child nodes of this node. - * - * @return array - */ - public function getChildNodes() - { - return $this->children; - } - - /** - * Returns the classes of this node. - * - * @return array - */ - public function getClasses() - { - if ($this->classes === null) { - $this->classes = []; - - foreach ($this->children as $child) { - $this->classes = \array_merge( - $this->classes, - $child->getClasses() - ); - } - } - - return $this->classes; - } - - /** - * Returns the traits of this node. - * - * @return array - */ - public function getTraits() - { - if ($this->traits === null) { - $this->traits = []; - - foreach ($this->children as $child) { - $this->traits = \array_merge( - $this->traits, - $child->getTraits() - ); - } - } - - return $this->traits; - } - - /** - * Returns the functions of this node. - * - * @return array - */ - public function getFunctions() - { - if ($this->functions === null) { - $this->functions = []; - - foreach ($this->children as $child) { - $this->functions = \array_merge( - $this->functions, - $child->getFunctions() - ); - } - } - - return $this->functions; - } - - /** - * Returns the LOC/CLOC/NCLOC of this node. - * - * @return array - */ - public function getLinesOfCode() - { - if ($this->linesOfCode === null) { - $this->linesOfCode = ['loc' => 0, 'cloc' => 0, 'ncloc' => 0]; - - foreach ($this->children as $child) { - $linesOfCode = $child->getLinesOfCode(); - - $this->linesOfCode['loc'] += $linesOfCode['loc']; - $this->linesOfCode['cloc'] += $linesOfCode['cloc']; - $this->linesOfCode['ncloc'] += $linesOfCode['ncloc']; - } - } - - return $this->linesOfCode; - } - - /** - * Returns the number of executable lines. - * - * @return int - */ - public function getNumExecutableLines() - { - if ($this->numExecutableLines == -1) { - $this->numExecutableLines = 0; - - foreach ($this->children as $child) { - $this->numExecutableLines += $child->getNumExecutableLines(); - } - } - - return $this->numExecutableLines; - } - - /** - * Returns the number of executed lines. - * - * @return int - */ - public function getNumExecutedLines() - { - if ($this->numExecutedLines == -1) { - $this->numExecutedLines = 0; - - foreach ($this->children as $child) { - $this->numExecutedLines += $child->getNumExecutedLines(); - } - } - - return $this->numExecutedLines; - } - - /** - * Returns the number of classes. - * - * @return int - */ - public function getNumClasses() - { - if ($this->numClasses == -1) { - $this->numClasses = 0; - - foreach ($this->children as $child) { - $this->numClasses += $child->getNumClasses(); - } - } - - return $this->numClasses; - } - - /** - * Returns the number of tested classes. - * - * @return int - */ - public function getNumTestedClasses() - { - if ($this->numTestedClasses == -1) { - $this->numTestedClasses = 0; - - foreach ($this->children as $child) { - $this->numTestedClasses += $child->getNumTestedClasses(); - } - } - - return $this->numTestedClasses; - } - - /** - * Returns the number of traits. - * - * @return int - */ - public function getNumTraits() - { - if ($this->numTraits == -1) { - $this->numTraits = 0; - - foreach ($this->children as $child) { - $this->numTraits += $child->getNumTraits(); - } - } - - return $this->numTraits; - } - - /** - * Returns the number of tested traits. - * - * @return int - */ - public function getNumTestedTraits() - { - if ($this->numTestedTraits == -1) { - $this->numTestedTraits = 0; - - foreach ($this->children as $child) { - $this->numTestedTraits += $child->getNumTestedTraits(); - } - } - - return $this->numTestedTraits; - } - - /** - * Returns the number of methods. - * - * @return int - */ - public function getNumMethods() - { - if ($this->numMethods == -1) { - $this->numMethods = 0; - - foreach ($this->children as $child) { - $this->numMethods += $child->getNumMethods(); - } - } - - return $this->numMethods; - } - - /** - * Returns the number of tested methods. - * - * @return int - */ - public function getNumTestedMethods() - { - if ($this->numTestedMethods == -1) { - $this->numTestedMethods = 0; - - foreach ($this->children as $child) { - $this->numTestedMethods += $child->getNumTestedMethods(); - } - } - - return $this->numTestedMethods; - } - - /** - * Returns the number of functions. - * - * @return int - */ - public function getNumFunctions() - { - if ($this->numFunctions == -1) { - $this->numFunctions = 0; - - foreach ($this->children as $child) { - $this->numFunctions += $child->getNumFunctions(); - } - } - - return $this->numFunctions; - } - - /** - * Returns the number of tested functions. - * - * @return int - */ - public function getNumTestedFunctions() - { - if ($this->numTestedFunctions == -1) { - $this->numTestedFunctions = 0; - - foreach ($this->children as $child) { - $this->numTestedFunctions += $child->getNumTestedFunctions(); - } - } - - return $this->numTestedFunctions; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/File.php b/vendor/phpunit/php-code-coverage/src/Node/File.php deleted file mode 100644 index 7a8587f0..00000000 --- a/vendor/phpunit/php-code-coverage/src/Node/File.php +++ /dev/null @@ -1,744 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -use SebastianBergmann\CodeCoverage\InvalidArgumentException; - -/** - * Represents a file in the code coverage information tree. - */ -class File extends AbstractNode -{ - /** - * @var array - */ - private $coverageData; - - /** - * @var array - */ - private $testData; - - /** - * @var int - */ - private $numExecutableLines = 0; - - /** - * @var int - */ - private $numExecutedLines = 0; - - /** - * @var array - */ - private $classes = []; - - /** - * @var array - */ - private $traits = []; - - /** - * @var array - */ - private $functions = []; - - /** - * @var array - */ - private $linesOfCode = []; - - /** - * @var int - */ - private $numClasses = null; - - /** - * @var int - */ - private $numTestedClasses = 0; - - /** - * @var int - */ - private $numTraits = null; - - /** - * @var int - */ - private $numTestedTraits = 0; - - /** - * @var int - */ - private $numMethods = null; - - /** - * @var int - */ - private $numTestedMethods = null; - - /** - * @var int - */ - private $numTestedFunctions = null; - - /** - * @var array - */ - private $startLines = []; - - /** - * @var array - */ - private $endLines = []; - - /** - * @var bool - */ - private $cacheTokens; - - /** - * Constructor. - * - * @param string $name - * @param AbstractNode $parent - * @param array $coverageData - * @param array $testData - * @param bool $cacheTokens - * - * @throws InvalidArgumentException - */ - public function __construct($name, AbstractNode $parent, array $coverageData, array $testData, $cacheTokens) - { - if (!\is_bool($cacheTokens)) { - throw InvalidArgumentException::create( - 1, - 'boolean' - ); - } - - parent::__construct($name, $parent); - - $this->coverageData = $coverageData; - $this->testData = $testData; - $this->cacheTokens = $cacheTokens; - - $this->calculateStatistics(); - } - - /** - * Returns the number of files in/under this node. - * - * @return int - */ - public function count() - { - return 1; - } - - /** - * Returns the code coverage data of this node. - * - * @return array - */ - public function getCoverageData() - { - return $this->coverageData; - } - - /** - * Returns the test data of this node. - * - * @return array - */ - public function getTestData() - { - return $this->testData; - } - - /** - * Returns the classes of this node. - * - * @return array - */ - public function getClasses() - { - return $this->classes; - } - - /** - * Returns the traits of this node. - * - * @return array - */ - public function getTraits() - { - return $this->traits; - } - - /** - * Returns the functions of this node. - * - * @return array - */ - public function getFunctions() - { - return $this->functions; - } - - /** - * Returns the LOC/CLOC/NCLOC of this node. - * - * @return array - */ - public function getLinesOfCode() - { - return $this->linesOfCode; - } - - /** - * Returns the number of executable lines. - * - * @return int - */ - public function getNumExecutableLines() - { - return $this->numExecutableLines; - } - - /** - * Returns the number of executed lines. - * - * @return int - */ - public function getNumExecutedLines() - { - return $this->numExecutedLines; - } - - /** - * Returns the number of classes. - * - * @return int - */ - public function getNumClasses() - { - if ($this->numClasses === null) { - $this->numClasses = 0; - - foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0) { - $this->numClasses++; - - continue 2; - } - } - } - } - - return $this->numClasses; - } - - /** - * Returns the number of tested classes. - * - * @return int - */ - public function getNumTestedClasses() - { - return $this->numTestedClasses; - } - - /** - * Returns the number of traits. - * - * @return int - */ - public function getNumTraits() - { - if ($this->numTraits === null) { - $this->numTraits = 0; - - foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0) { - $this->numTraits++; - - continue 2; - } - } - } - } - - return $this->numTraits; - } - - /** - * Returns the number of tested traits. - * - * @return int - */ - public function getNumTestedTraits() - { - return $this->numTestedTraits; - } - - /** - * Returns the number of methods. - * - * @return int - */ - public function getNumMethods() - { - if ($this->numMethods === null) { - $this->numMethods = 0; - - foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0) { - $this->numMethods++; - } - } - } - - foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0) { - $this->numMethods++; - } - } - } - } - - return $this->numMethods; - } - - /** - * Returns the number of tested methods. - * - * @return int - */ - public function getNumTestedMethods() - { - if ($this->numTestedMethods === null) { - $this->numTestedMethods = 0; - - foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0 && - $method['coverage'] == 100) { - $this->numTestedMethods++; - } - } - } - - foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0 && - $method['coverage'] == 100) { - $this->numTestedMethods++; - } - } - } - } - - return $this->numTestedMethods; - } - - /** - * Returns the number of functions. - * - * @return int - */ - public function getNumFunctions() - { - return \count($this->functions); - } - - /** - * Returns the number of tested functions. - * - * @return int - */ - public function getNumTestedFunctions() - { - if ($this->numTestedFunctions === null) { - $this->numTestedFunctions = 0; - - foreach ($this->functions as $function) { - if ($function['executableLines'] > 0 && - $function['coverage'] == 100) { - $this->numTestedFunctions++; - } - } - } - - return $this->numTestedFunctions; - } - - /** - * Calculates coverage statistics for the file. - */ - protected function calculateStatistics() - { - $classStack = $functionStack = []; - - if ($this->cacheTokens) { - $tokens = \PHP_Token_Stream_CachingFactory::get($this->getPath()); - } else { - $tokens = new \PHP_Token_Stream($this->getPath()); - } - - $this->processClasses($tokens); - $this->processTraits($tokens); - $this->processFunctions($tokens); - $this->linesOfCode = $tokens->getLinesOfCode(); - unset($tokens); - - for ($lineNumber = 1; $lineNumber <= $this->linesOfCode['loc']; $lineNumber++) { - if (isset($this->startLines[$lineNumber])) { - // Start line of a class. - if (isset($this->startLines[$lineNumber]['className'])) { - if (isset($currentClass)) { - $classStack[] = &$currentClass; - } - - $currentClass = &$this->startLines[$lineNumber]; - } // Start line of a trait. - elseif (isset($this->startLines[$lineNumber]['traitName'])) { - $currentTrait = &$this->startLines[$lineNumber]; - } // Start line of a method. - elseif (isset($this->startLines[$lineNumber]['methodName'])) { - $currentMethod = &$this->startLines[$lineNumber]; - } // Start line of a function. - elseif (isset($this->startLines[$lineNumber]['functionName'])) { - if (isset($currentFunction)) { - $functionStack[] = &$currentFunction; - } - - $currentFunction = &$this->startLines[$lineNumber]; - } - } - - if (isset($this->coverageData[$lineNumber])) { - if (isset($currentClass)) { - $currentClass['executableLines']++; - } - - if (isset($currentTrait)) { - $currentTrait['executableLines']++; - } - - if (isset($currentMethod)) { - $currentMethod['executableLines']++; - } - - if (isset($currentFunction)) { - $currentFunction['executableLines']++; - } - - $this->numExecutableLines++; - - if (\count($this->coverageData[$lineNumber]) > 0) { - if (isset($currentClass)) { - $currentClass['executedLines']++; - } - - if (isset($currentTrait)) { - $currentTrait['executedLines']++; - } - - if (isset($currentMethod)) { - $currentMethod['executedLines']++; - } - - if (isset($currentFunction)) { - $currentFunction['executedLines']++; - } - - $this->numExecutedLines++; - } - } - - if (isset($this->endLines[$lineNumber])) { - // End line of a class. - if (isset($this->endLines[$lineNumber]['className'])) { - unset($currentClass); - - if ($classStack) { - \end($classStack); - $key = \key($classStack); - $currentClass = &$classStack[$key]; - unset($classStack[$key]); - } - } // End line of a trait. - elseif (isset($this->endLines[$lineNumber]['traitName'])) { - unset($currentTrait); - } // End line of a method. - elseif (isset($this->endLines[$lineNumber]['methodName'])) { - unset($currentMethod); - } // End line of a function. - elseif (isset($this->endLines[$lineNumber]['functionName'])) { - unset($currentFunction); - - if ($functionStack) { - \end($functionStack); - $key = \key($functionStack); - $currentFunction = &$functionStack[$key]; - unset($functionStack[$key]); - } - } - } - } - - foreach ($this->traits as &$trait) { - foreach ($trait['methods'] as &$method) { - if ($method['executableLines'] > 0) { - $method['coverage'] = ($method['executedLines'] / - $method['executableLines']) * 100; - } else { - $method['coverage'] = 100; - } - - $method['crap'] = $this->crap( - $method['ccn'], - $method['coverage'] - ); - - $trait['ccn'] += $method['ccn']; - } - - if ($trait['executableLines'] > 0) { - $trait['coverage'] = ($trait['executedLines'] / - $trait['executableLines']) * 100; - - if ($trait['coverage'] == 100) { - $this->numTestedClasses++; - } - } else { - $trait['coverage'] = 100; - } - - $trait['crap'] = $this->crap( - $trait['ccn'], - $trait['coverage'] - ); - } - - foreach ($this->classes as &$class) { - foreach ($class['methods'] as &$method) { - if ($method['executableLines'] > 0) { - $method['coverage'] = ($method['executedLines'] / - $method['executableLines']) * 100; - } else { - $method['coverage'] = 100; - } - - $method['crap'] = $this->crap( - $method['ccn'], - $method['coverage'] - ); - - $class['ccn'] += $method['ccn']; - } - - if ($class['executableLines'] > 0) { - $class['coverage'] = ($class['executedLines'] / - $class['executableLines']) * 100; - - if ($class['coverage'] == 100) { - $this->numTestedClasses++; - } - } else { - $class['coverage'] = 100; - } - - $class['crap'] = $this->crap( - $class['ccn'], - $class['coverage'] - ); - } - - foreach ($this->functions as &$function) { - if ($function['executableLines'] > 0) { - $function['coverage'] = ($function['executedLines'] / - $function['executableLines']) * 100; - } else { - $function['coverage'] = 100; - } - - if ($function['coverage'] == 100) { - $this->numTestedFunctions++; - } - - $function['crap'] = $this->crap( - $function['ccn'], - $function['coverage'] - ); - } - } - - /** - * @param \PHP_Token_Stream $tokens - */ - protected function processClasses(\PHP_Token_Stream $tokens) - { - $classes = $tokens->getClasses(); - unset($tokens); - - $link = $this->getId() . '.html#'; - - foreach ($classes as $className => $class) { - if (!empty($class['package']['namespace'])) { - $className = $class['package']['namespace'] . '\\' . $className; - } - - $this->classes[$className] = [ - 'className' => $className, - 'methods' => [], - 'startLine' => $class['startLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'ccn' => 0, - 'coverage' => 0, - 'crap' => 0, - 'package' => $class['package'], - 'link' => $link . $class['startLine'] - ]; - - $this->startLines[$class['startLine']] = &$this->classes[$className]; - $this->endLines[$class['endLine']] = &$this->classes[$className]; - - foreach ($class['methods'] as $methodName => $method) { - $this->classes[$className]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); - - $this->startLines[$method['startLine']] = &$this->classes[$className]['methods'][$methodName]; - $this->endLines[$method['endLine']] = &$this->classes[$className]['methods'][$methodName]; - } - } - } - - /** - * @param \PHP_Token_Stream $tokens - */ - protected function processTraits(\PHP_Token_Stream $tokens) - { - $traits = $tokens->getTraits(); - unset($tokens); - - $link = $this->getId() . '.html#'; - - foreach ($traits as $traitName => $trait) { - $this->traits[$traitName] = [ - 'traitName' => $traitName, - 'methods' => [], - 'startLine' => $trait['startLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'ccn' => 0, - 'coverage' => 0, - 'crap' => 0, - 'package' => $trait['package'], - 'link' => $link . $trait['startLine'] - ]; - - $this->startLines[$trait['startLine']] = &$this->traits[$traitName]; - $this->endLines[$trait['endLine']] = &$this->traits[$traitName]; - - foreach ($trait['methods'] as $methodName => $method) { - $this->traits[$traitName]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); - - $this->startLines[$method['startLine']] = &$this->traits[$traitName]['methods'][$methodName]; - $this->endLines[$method['endLine']] = &$this->traits[$traitName]['methods'][$methodName]; - } - } - } - - /** - * @param \PHP_Token_Stream $tokens - */ - protected function processFunctions(\PHP_Token_Stream $tokens) - { - $functions = $tokens->getFunctions(); - unset($tokens); - - $link = $this->getId() . '.html#'; - - foreach ($functions as $functionName => $function) { - $this->functions[$functionName] = [ - 'functionName' => $functionName, - 'signature' => $function['signature'], - 'startLine' => $function['startLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'ccn' => $function['ccn'], - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $function['startLine'] - ]; - - $this->startLines[$function['startLine']] = &$this->functions[$functionName]; - $this->endLines[$function['endLine']] = &$this->functions[$functionName]; - } - } - - /** - * Calculates the Change Risk Anti-Patterns (CRAP) index for a unit of code - * based on its cyclomatic complexity and percentage of code coverage. - * - * @param int $ccn - * @param float $coverage - * - * @return string - */ - protected function crap($ccn, $coverage) - { - if ($coverage == 0) { - return (string) (\pow($ccn, 2) + $ccn); - } - - if ($coverage >= 95) { - return (string) $ccn; - } - - return \sprintf( - '%01.2F', - \pow($ccn, 2) * \pow(1 - $coverage / 100, 3) + $ccn - ); - } - - /** - * @param string $methodName - * @param array $method - * @param string $link - * - * @return array - */ - private function newMethod($methodName, array $method, $link) - { - return [ - 'methodName' => $methodName, - 'visibility' => $method['visibility'], - 'signature' => $method['signature'], - 'startLine' => $method['startLine'], - 'endLine' => $method['endLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'ccn' => $method['ccn'], - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $method['startLine'], - ]; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php b/vendor/phpunit/php-code-coverage/src/Node/Iterator.php deleted file mode 100644 index 2a2aa6b0..00000000 --- a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -/** - * Recursive iterator for node object graphs. - */ -class Iterator implements \RecursiveIterator -{ - /** - * @var int - */ - private $position; - - /** - * @var AbstractNode[] - */ - private $nodes; - - /** - * @param Directory $node - */ - public function __construct(Directory $node) - { - $this->nodes = $node->getChildNodes(); - } - - /** - * Rewinds the Iterator to the first element. - */ - public function rewind() - { - $this->position = 0; - } - - /** - * Checks if there is a current element after calls to rewind() or next(). - * - * @return bool - */ - public function valid() - { - return $this->position < \count($this->nodes); - } - - /** - * Returns the key of the current element. - * - * @return int - */ - public function key() - { - return $this->position; - } - - /** - * Returns the current element. - * - * @return \PHPUnit_Framework_Test - */ - public function current() - { - return $this->valid() ? $this->nodes[$this->position] : null; - } - - /** - * Moves forward to next element. - */ - public function next() - { - $this->position++; - } - - /** - * Returns the sub iterator for the current element. - * - * @return Iterator - */ - public function getChildren() - { - return new self( - $this->nodes[$this->position] - ); - } - - /** - * Checks whether the current element has children. - * - * @return bool - */ - public function hasChildren() - { - return $this->nodes[$this->position] instanceof Directory; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Clover.php b/vendor/phpunit/php-code-coverage/src/Report/Clover.php deleted file mode 100644 index 358d0ddd..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Clover.php +++ /dev/null @@ -1,251 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report; - -use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Node\File; - -/** - * Generates a Clover XML logfile from a code coverage object. - */ -class Clover -{ - /** - * @param CodeCoverage $coverage - * @param string $target - * @param string $name - * - * @return string - */ - public function process(CodeCoverage $coverage, $target = null, $name = null) - { - $xmlDocument = new \DOMDocument('1.0', 'UTF-8'); - $xmlDocument->formatOutput = true; - - $xmlCoverage = $xmlDocument->createElement('coverage'); - $xmlCoverage->setAttribute('generated', (int) $_SERVER['REQUEST_TIME']); - $xmlDocument->appendChild($xmlCoverage); - - $xmlProject = $xmlDocument->createElement('project'); - $xmlProject->setAttribute('timestamp', (int) $_SERVER['REQUEST_TIME']); - - if (\is_string($name)) { - $xmlProject->setAttribute('name', $name); - } - - $xmlCoverage->appendChild($xmlProject); - - $packages = []; - $report = $coverage->getReport(); - unset($coverage); - - foreach ($report as $item) { - if (!$item instanceof File) { - continue; - } - - /* @var File $item */ - - $xmlFile = $xmlDocument->createElement('file'); - $xmlFile->setAttribute('name', $item->getPath()); - - $classes = $item->getClassesAndTraits(); - $coverage = $item->getCoverageData(); - $lines = []; - $namespace = 'global'; - - foreach ($classes as $className => $class) { - $classStatements = 0; - $coveredClassStatements = 0; - $coveredMethods = 0; - $classMethods = 0; - - foreach ($class['methods'] as $methodName => $method) { - if ($method['executableLines'] == 0) { - continue; - } - - $classMethods++; - $classStatements += $method['executableLines']; - $coveredClassStatements += $method['executedLines']; - - if ($method['coverage'] == 100) { - $coveredMethods++; - } - - $methodCount = 0; - - foreach (\range($method['startLine'], $method['endLine']) as $line) { - if (isset($coverage[$line]) && ($coverage[$line] !== null)) { - $methodCount = \max($methodCount, \count($coverage[$line])); - } - } - - $lines[$method['startLine']] = [ - 'ccn' => $method['ccn'], - 'count' => $methodCount, - 'crap' => $method['crap'], - 'type' => 'method', - 'visibility' => $method['visibility'], - 'name' => $methodName - ]; - } - - if (!empty($class['package']['namespace'])) { - $namespace = $class['package']['namespace']; - } - - $xmlClass = $xmlDocument->createElement('class'); - $xmlClass->setAttribute('name', $className); - $xmlClass->setAttribute('namespace', $namespace); - - if (!empty($class['package']['fullPackage'])) { - $xmlClass->setAttribute( - 'fullPackage', - $class['package']['fullPackage'] - ); - } - - if (!empty($class['package']['category'])) { - $xmlClass->setAttribute( - 'category', - $class['package']['category'] - ); - } - - if (!empty($class['package']['package'])) { - $xmlClass->setAttribute( - 'package', - $class['package']['package'] - ); - } - - if (!empty($class['package']['subpackage'])) { - $xmlClass->setAttribute( - 'subpackage', - $class['package']['subpackage'] - ); - } - - $xmlFile->appendChild($xmlClass); - - $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('complexity', $class['ccn']); - $xmlMetrics->setAttribute('methods', $classMethods); - $xmlMetrics->setAttribute('coveredmethods', $coveredMethods); - $xmlMetrics->setAttribute('conditionals', 0); - $xmlMetrics->setAttribute('coveredconditionals', 0); - $xmlMetrics->setAttribute('statements', $classStatements); - $xmlMetrics->setAttribute('coveredstatements', $coveredClassStatements); - $xmlMetrics->setAttribute('elements', $classMethods + $classStatements /* + conditionals */); - $xmlMetrics->setAttribute('coveredelements', $coveredMethods + $coveredClassStatements /* + coveredconditionals */); - $xmlClass->appendChild($xmlMetrics); - } - - foreach ($coverage as $line => $data) { - if ($data === null || isset($lines[$line])) { - continue; - } - - $lines[$line] = [ - 'count' => \count($data), 'type' => 'stmt' - ]; - } - - \ksort($lines); - - foreach ($lines as $line => $data) { - $xmlLine = $xmlDocument->createElement('line'); - $xmlLine->setAttribute('num', $line); - $xmlLine->setAttribute('type', $data['type']); - - if (isset($data['name'])) { - $xmlLine->setAttribute('name', $data['name']); - } - - if (isset($data['visibility'])) { - $xmlLine->setAttribute('visibility', $data['visibility']); - } - - if (isset($data['ccn'])) { - $xmlLine->setAttribute('complexity', $data['ccn']); - } - - if (isset($data['crap'])) { - $xmlLine->setAttribute('crap', $data['crap']); - } - - $xmlLine->setAttribute('count', $data['count']); - $xmlFile->appendChild($xmlLine); - } - - $linesOfCode = $item->getLinesOfCode(); - - $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); - $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); - $xmlMetrics->setAttribute('classes', $item->getNumClassesAndTraits()); - $xmlMetrics->setAttribute('methods', $item->getNumMethods()); - $xmlMetrics->setAttribute('coveredmethods', $item->getNumTestedMethods()); - $xmlMetrics->setAttribute('conditionals', 0); - $xmlMetrics->setAttribute('coveredconditionals', 0); - $xmlMetrics->setAttribute('statements', $item->getNumExecutableLines()); - $xmlMetrics->setAttribute('coveredstatements', $item->getNumExecutedLines()); - $xmlMetrics->setAttribute('elements', $item->getNumMethods() + $item->getNumExecutableLines() /* + conditionals */); - $xmlMetrics->setAttribute('coveredelements', $item->getNumTestedMethods() + $item->getNumExecutedLines() /* + coveredconditionals */); - $xmlFile->appendChild($xmlMetrics); - - if ($namespace == 'global') { - $xmlProject->appendChild($xmlFile); - } else { - if (!isset($packages[$namespace])) { - $packages[$namespace] = $xmlDocument->createElement( - 'package' - ); - - $packages[$namespace]->setAttribute('name', $namespace); - $xmlProject->appendChild($packages[$namespace]); - } - - $packages[$namespace]->appendChild($xmlFile); - } - } - - $linesOfCode = $report->getLinesOfCode(); - - $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('files', \count($report)); - $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); - $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); - $xmlMetrics->setAttribute('classes', $report->getNumClassesAndTraits()); - $xmlMetrics->setAttribute('methods', $report->getNumMethods()); - $xmlMetrics->setAttribute('coveredmethods', $report->getNumTestedMethods()); - $xmlMetrics->setAttribute('conditionals', 0); - $xmlMetrics->setAttribute('coveredconditionals', 0); - $xmlMetrics->setAttribute('statements', $report->getNumExecutableLines()); - $xmlMetrics->setAttribute('coveredstatements', $report->getNumExecutedLines()); - $xmlMetrics->setAttribute('elements', $report->getNumMethods() + $report->getNumExecutableLines() /* + conditionals */); - $xmlMetrics->setAttribute('coveredelements', $report->getNumTestedMethods() + $report->getNumExecutedLines() /* + coveredconditionals */); - $xmlProject->appendChild($xmlMetrics); - - $buffer = $xmlDocument->saveXML(); - - if ($target !== null) { - if (!\is_dir(\dirname($target))) { - \mkdir(\dirname($target), 0777, true); - } - - \file_put_contents($target, $buffer); - } - - return $buffer; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php deleted file mode 100644 index 3851a27d..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php +++ /dev/null @@ -1,172 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report; - -use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\InvalidArgumentException; -use SebastianBergmann\CodeCoverage\Node\File; - -class Crap4j -{ - /** - * @var int - */ - private $threshold; - - /** - * @param int $threshold - */ - public function __construct($threshold = 30) - { - if (!\is_int($threshold)) { - throw InvalidArgumentException::create( - 1, - 'integer' - ); - } - - $this->threshold = $threshold; - } - - /** - * @param CodeCoverage $coverage - * @param string $target - * @param string $name - * - * @return string - */ - public function process(CodeCoverage $coverage, $target = null, $name = null) - { - $document = new \DOMDocument('1.0', 'UTF-8'); - $document->formatOutput = true; - - $root = $document->createElement('crap_result'); - $document->appendChild($root); - - $project = $document->createElement('project', \is_string($name) ? $name : ''); - $root->appendChild($project); - $root->appendChild($document->createElement('timestamp', \date('Y-m-d H:i:s', (int) $_SERVER['REQUEST_TIME']))); - - $stats = $document->createElement('stats'); - $methodsNode = $document->createElement('methods'); - - $report = $coverage->getReport(); - unset($coverage); - - $fullMethodCount = 0; - $fullCrapMethodCount = 0; - $fullCrapLoad = 0; - $fullCrap = 0; - - foreach ($report as $item) { - $namespace = 'global'; - - if (!$item instanceof File) { - continue; - } - - $file = $document->createElement('file'); - $file->setAttribute('name', $item->getPath()); - - $classes = $item->getClassesAndTraits(); - - foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { - $crapLoad = $this->getCrapLoad($method['crap'], $method['ccn'], $method['coverage']); - - $fullCrap += $method['crap']; - $fullCrapLoad += $crapLoad; - $fullMethodCount++; - - if ($method['crap'] >= $this->threshold) { - $fullCrapMethodCount++; - } - - $methodNode = $document->createElement('method'); - - if (!empty($class['package']['namespace'])) { - $namespace = $class['package']['namespace']; - } - - $methodNode->appendChild($document->createElement('package', $namespace)); - $methodNode->appendChild($document->createElement('className', $className)); - $methodNode->appendChild($document->createElement('methodName', $methodName)); - $methodNode->appendChild($document->createElement('methodSignature', \htmlspecialchars($method['signature']))); - $methodNode->appendChild($document->createElement('fullMethod', \htmlspecialchars($method['signature']))); - $methodNode->appendChild($document->createElement('crap', $this->roundValue($method['crap']))); - $methodNode->appendChild($document->createElement('complexity', $method['ccn'])); - $methodNode->appendChild($document->createElement('coverage', $this->roundValue($method['coverage']))); - $methodNode->appendChild($document->createElement('crapLoad', \round($crapLoad))); - - $methodsNode->appendChild($methodNode); - } - } - } - - $stats->appendChild($document->createElement('name', 'Method Crap Stats')); - $stats->appendChild($document->createElement('methodCount', $fullMethodCount)); - $stats->appendChild($document->createElement('crapMethodCount', $fullCrapMethodCount)); - $stats->appendChild($document->createElement('crapLoad', \round($fullCrapLoad))); - $stats->appendChild($document->createElement('totalCrap', $fullCrap)); - - if ($fullMethodCount > 0) { - $crapMethodPercent = $this->roundValue((100 * $fullCrapMethodCount) / $fullMethodCount); - } else { - $crapMethodPercent = 0; - } - - $stats->appendChild($document->createElement('crapMethodPercent', $crapMethodPercent)); - - $root->appendChild($stats); - $root->appendChild($methodsNode); - - $buffer = $document->saveXML(); - - if ($target !== null) { - if (!\is_dir(\dirname($target))) { - \mkdir(\dirname($target), 0777, true); - } - - \file_put_contents($target, $buffer); - } - - return $buffer; - } - - /** - * @param float $crapValue - * @param int $cyclomaticComplexity - * @param float $coveragePercent - * - * @return float - */ - private function getCrapLoad($crapValue, $cyclomaticComplexity, $coveragePercent) - { - $crapLoad = 0; - - if ($crapValue >= $this->threshold) { - $crapLoad += $cyclomaticComplexity * (1.0 - $coveragePercent / 100); - $crapLoad += $cyclomaticComplexity / $this->threshold; - } - - return $crapLoad; - } - - /** - * @param float $value - * - * @return float - */ - private function roundValue($value) - { - return \round($value, 2); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php deleted file mode 100644 index ef88041f..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php +++ /dev/null @@ -1,190 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report\Html; - -use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; -use SebastianBergmann\CodeCoverage\RuntimeException; - -/** - * Generates an HTML report from a code coverage object. - */ -class Facade -{ - /** - * @var string - */ - private $templatePath; - - /** - * @var string - */ - private $generator; - - /** - * @var int - */ - private $lowUpperBound; - - /** - * @var int - */ - private $highLowerBound; - - /** - * Constructor. - * - * @param int $lowUpperBound - * @param int $highLowerBound - * @param string $generator - */ - public function __construct($lowUpperBound = 50, $highLowerBound = 90, $generator = '') - { - $this->generator = $generator; - $this->highLowerBound = $highLowerBound; - $this->lowUpperBound = $lowUpperBound; - $this->templatePath = __DIR__ . '/Renderer/Template/'; - } - - /** - * @param CodeCoverage $coverage - * @param string $target - */ - public function process(CodeCoverage $coverage, $target) - { - $target = $this->getDirectory($target); - $report = $coverage->getReport(); - unset($coverage); - - if (!isset($_SERVER['REQUEST_TIME'])) { - $_SERVER['REQUEST_TIME'] = \time(); - } - - $date = \date('D M j G:i:s T Y', $_SERVER['REQUEST_TIME']); - - $dashboard = new Dashboard( - $this->templatePath, - $this->generator, - $date, - $this->lowUpperBound, - $this->highLowerBound - ); - - $directory = new Directory( - $this->templatePath, - $this->generator, - $date, - $this->lowUpperBound, - $this->highLowerBound - ); - - $file = new File( - $this->templatePath, - $this->generator, - $date, - $this->lowUpperBound, - $this->highLowerBound - ); - - $directory->render($report, $target . 'index.html'); - $dashboard->render($report, $target . 'dashboard.html'); - - foreach ($report as $node) { - $id = $node->getId(); - - if ($node instanceof DirectoryNode) { - if (!\file_exists($target . $id)) { - \mkdir($target . $id, 0777, true); - } - - $directory->render($node, $target . $id . '/index.html'); - $dashboard->render($node, $target . $id . '/dashboard.html'); - } else { - $dir = \dirname($target . $id); - - if (!\file_exists($dir)) { - \mkdir($dir, 0777, true); - } - - $file->render($node, $target . $id . '.html'); - } - } - - $this->copyFiles($target); - } - - /** - * @param string $target - */ - private function copyFiles($target) - { - $dir = $this->getDirectory($target . '.css'); - - \file_put_contents( - $dir . 'bootstrap.min.css', - \str_replace( - 'url(../fonts/', - 'url(../.fonts/', - \file_get_contents($this->templatePath . 'css/bootstrap.min.css') - ) - - ); - - \copy($this->templatePath . 'css/nv.d3.min.css', $dir . 'nv.d3.min.css'); - \copy($this->templatePath . 'css/style.css', $dir . 'style.css'); - - $dir = $this->getDirectory($target . '.fonts'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.eot', $dir . 'glyphicons-halflings-regular.eot'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.svg', $dir . 'glyphicons-halflings-regular.svg'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.ttf', $dir . 'glyphicons-halflings-regular.ttf'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff', $dir . 'glyphicons-halflings-regular.woff'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff2', $dir . 'glyphicons-halflings-regular.woff2'); - - $dir = $this->getDirectory($target . '.js'); - \copy($this->templatePath . 'js/bootstrap.min.js', $dir . 'bootstrap.min.js'); - \copy($this->templatePath . 'js/d3.min.js', $dir . 'd3.min.js'); - \copy($this->templatePath . 'js/holder.min.js', $dir . 'holder.min.js'); - \copy($this->templatePath . 'js/html5shiv.min.js', $dir . 'html5shiv.min.js'); - \copy($this->templatePath . 'js/jquery.min.js', $dir . 'jquery.min.js'); - \copy($this->templatePath . 'js/nv.d3.min.js', $dir . 'nv.d3.min.js'); - \copy($this->templatePath . 'js/respond.min.js', $dir . 'respond.min.js'); - \copy($this->templatePath . 'js/file.js', $dir . 'file.js'); - } - - /** - * @param string $directory - * - * @return string - * - * @throws RuntimeException - */ - private function getDirectory($directory) - { - if (\substr($directory, -1, 1) != DIRECTORY_SEPARATOR) { - $directory .= DIRECTORY_SEPARATOR; - } - - if (\is_dir($directory)) { - return $directory; - } - - if (@\mkdir($directory, 0777, true)) { - return $directory; - } - - throw new RuntimeException( - \sprintf( - 'Directory "%s" does not exist.', - $directory - ) - ); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php deleted file mode 100644 index 1732161f..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php +++ /dev/null @@ -1,296 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report\Html; - -use SebastianBergmann\CodeCoverage\Node\AbstractNode; -use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; -use SebastianBergmann\CodeCoverage\Node\File as FileNode; -use SebastianBergmann\CodeCoverage\Version; -use SebastianBergmann\Environment\Runtime; - -/** - * Base class for node renderers. - */ -abstract class Renderer -{ - /** - * @var string - */ - protected $templatePath; - - /** - * @var string - */ - protected $generator; - - /** - * @var string - */ - protected $date; - - /** - * @var int - */ - protected $lowUpperBound; - - /** - * @var int - */ - protected $highLowerBound; - - /** - * @var string - */ - protected $version; - - /** - * Constructor. - * - * @param string $templatePath - * @param string $generator - * @param string $date - * @param int $lowUpperBound - * @param int $highLowerBound - */ - public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound) - { - $this->templatePath = $templatePath; - $this->generator = $generator; - $this->date = $date; - $this->lowUpperBound = $lowUpperBound; - $this->highLowerBound = $highLowerBound; - $this->version = Version::id(); - } - - /** - * @param \Text_Template $template - * @param array $data - * - * @return string - */ - protected function renderItemTemplate(\Text_Template $template, array $data) - { - $numSeparator = ' / '; - - if (isset($data['numClasses']) && $data['numClasses'] > 0) { - $classesLevel = $this->getColorLevel($data['testedClassesPercent']); - - $classesNumber = $data['numTestedClasses'] . $numSeparator . - $data['numClasses']; - - $classesBar = $this->getCoverageBar( - $data['testedClassesPercent'] - ); - } else { - $classesLevel = ''; - $classesNumber = '0' . $numSeparator . '0'; - $classesBar = ''; - $data['testedClassesPercentAsString'] = 'n/a'; - } - - if ($data['numMethods'] > 0) { - $methodsLevel = $this->getColorLevel($data['testedMethodsPercent']); - - $methodsNumber = $data['numTestedMethods'] . $numSeparator . - $data['numMethods']; - - $methodsBar = $this->getCoverageBar( - $data['testedMethodsPercent'] - ); - } else { - $methodsLevel = ''; - $methodsNumber = '0' . $numSeparator . '0'; - $methodsBar = ''; - $data['testedMethodsPercentAsString'] = 'n/a'; - } - - if ($data['numExecutableLines'] > 0) { - $linesLevel = $this->getColorLevel($data['linesExecutedPercent']); - - $linesNumber = $data['numExecutedLines'] . $numSeparator . - $data['numExecutableLines']; - - $linesBar = $this->getCoverageBar( - $data['linesExecutedPercent'] - ); - } else { - $linesLevel = ''; - $linesNumber = '0' . $numSeparator . '0'; - $linesBar = ''; - $data['linesExecutedPercentAsString'] = 'n/a'; - } - - $template->setVar( - [ - 'icon' => isset($data['icon']) ? $data['icon'] : '', - 'crap' => isset($data['crap']) ? $data['crap'] : '', - 'name' => $data['name'], - 'lines_bar' => $linesBar, - 'lines_executed_percent' => $data['linesExecutedPercentAsString'], - 'lines_level' => $linesLevel, - 'lines_number' => $linesNumber, - 'methods_bar' => $methodsBar, - 'methods_tested_percent' => $data['testedMethodsPercentAsString'], - 'methods_level' => $methodsLevel, - 'methods_number' => $methodsNumber, - 'classes_bar' => $classesBar, - 'classes_tested_percent' => isset($data['testedClassesPercentAsString']) ? $data['testedClassesPercentAsString'] : '', - 'classes_level' => $classesLevel, - 'classes_number' => $classesNumber - ] - ); - - return $template->render(); - } - - /** - * @param \Text_Template $template - * @param AbstractNode $node - */ - protected function setCommonTemplateVariables(\Text_Template $template, AbstractNode $node) - { - $template->setVar( - [ - 'id' => $node->getId(), - 'full_path' => $node->getPath(), - 'path_to_root' => $this->getPathToRoot($node), - 'breadcrumbs' => $this->getBreadcrumbs($node), - 'date' => $this->date, - 'version' => $this->version, - 'runtime' => $this->getRuntimeString(), - 'generator' => $this->generator, - 'low_upper_bound' => $this->lowUpperBound, - 'high_lower_bound' => $this->highLowerBound - ] - ); - } - - protected function getBreadcrumbs(AbstractNode $node) - { - $breadcrumbs = ''; - $path = $node->getPathAsArray(); - $pathToRoot = []; - $max = \count($path); - - if ($node instanceof FileNode) { - $max--; - } - - for ($i = 0; $i < $max; $i++) { - $pathToRoot[] = \str_repeat('../', $i); - } - - foreach ($path as $step) { - if ($step !== $node) { - $breadcrumbs .= $this->getInactiveBreadcrumb( - $step, - \array_pop($pathToRoot) - ); - } else { - $breadcrumbs .= $this->getActiveBreadcrumb($step); - } - } - - return $breadcrumbs; - } - - protected function getActiveBreadcrumb(AbstractNode $node) - { - $buffer = \sprintf( - '

  • %s
  • ' . "\n", - $node->getName() - ); - - if ($node instanceof DirectoryNode) { - $buffer .= '
  • (Dashboard)
  • ' . "\n"; - } - - return $buffer; - } - - protected function getInactiveBreadcrumb(AbstractNode $node, $pathToRoot) - { - return \sprintf( - '
  • %s
  • ' . "\n", - $pathToRoot, - $node->getName() - ); - } - - protected function getPathToRoot(AbstractNode $node) - { - $id = $node->getId(); - $depth = \substr_count($id, '/'); - - if ($id != 'index' && - $node instanceof DirectoryNode) { - $depth++; - } - - return \str_repeat('../', $depth); - } - - protected function getCoverageBar($percent) - { - $level = $this->getColorLevel($percent); - - $template = new \Text_Template( - $this->templatePath . 'coverage_bar.html', - '{{', - '}}' - ); - - $template->setVar(['level' => $level, 'percent' => \sprintf('%.2F', $percent)]); - - return $template->render(); - } - - /** - * @param int $percent - * - * @return string - */ - protected function getColorLevel($percent) - { - if ($percent <= $this->lowUpperBound) { - return 'danger'; - } elseif ($percent > $this->lowUpperBound && - $percent < $this->highLowerBound) { - return 'warning'; - } else { - return 'success'; - } - } - - /** - * @return string - */ - private function getRuntimeString() - { - $runtime = new Runtime; - - $buffer = \sprintf( - '%s %s', - $runtime->getVendorUrl(), - $runtime->getName(), - $runtime->getVersion() - ); - - if ($runtime->hasXdebug() && !$runtime->hasPHPDBGCodeCoverage()) { - $buffer .= \sprintf( - ' with Xdebug %s', - \phpversion('xdebug') - ); - } - - return $buffer; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php deleted file mode 100644 index 0ca7b420..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php +++ /dev/null @@ -1,304 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report\Html; - -use SebastianBergmann\CodeCoverage\Node\AbstractNode; -use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; - -/** - * Renders the dashboard for a directory node. - */ -class Dashboard extends Renderer -{ - /** - * @param DirectoryNode $node - * @param string $file - * - * @throws \InvalidArgumentException - */ - public function render(DirectoryNode $node, $file) - { - $classes = $node->getClassesAndTraits(); - $template = new \Text_Template( - $this->templatePath . 'dashboard.html', - '{{', - '}}' - ); - - $this->setCommonTemplateVariables($template, $node); - - $baseLink = $node->getId() . '/'; - $complexity = $this->complexity($classes, $baseLink); - $coverageDistribution = $this->coverageDistribution($classes); - $insufficientCoverage = $this->insufficientCoverage($classes, $baseLink); - $projectRisks = $this->projectRisks($classes, $baseLink); - - $template->setVar( - [ - 'insufficient_coverage_classes' => $insufficientCoverage['class'], - 'insufficient_coverage_methods' => $insufficientCoverage['method'], - 'project_risks_classes' => $projectRisks['class'], - 'project_risks_methods' => $projectRisks['method'], - 'complexity_class' => $complexity['class'], - 'complexity_method' => $complexity['method'], - 'class_coverage_distribution' => $coverageDistribution['class'], - 'method_coverage_distribution' => $coverageDistribution['method'] - ] - ); - - $template->renderTo($file); - } - - /** - * Returns the data for the Class/Method Complexity charts. - * - * @param array $classes - * @param string $baseLink - * - * @return array - */ - protected function complexity(array $classes, $baseLink) - { - $result = ['class' => [], 'method' => []]; - - foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { - if ($className !== '*') { - $methodName = $className . '::' . $methodName; - } - - $result['method'][] = [ - $method['coverage'], - $method['ccn'], - \sprintf( - '%s', - \str_replace($baseLink, '', $method['link']), - $methodName - ) - ]; - } - - $result['class'][] = [ - $class['coverage'], - $class['ccn'], - \sprintf( - '%s', - \str_replace($baseLink, '', $class['link']), - $className - ) - ]; - } - - return [ - 'class' => \json_encode($result['class']), - 'method' => \json_encode($result['method']) - ]; - } - - /** - * Returns the data for the Class / Method Coverage Distribution chart. - * - * @param array $classes - * - * @return array - */ - protected function coverageDistribution(array $classes) - { - $result = [ - 'class' => [ - '0%' => 0, - '0-10%' => 0, - '10-20%' => 0, - '20-30%' => 0, - '30-40%' => 0, - '40-50%' => 0, - '50-60%' => 0, - '60-70%' => 0, - '70-80%' => 0, - '80-90%' => 0, - '90-100%' => 0, - '100%' => 0 - ], - 'method' => [ - '0%' => 0, - '0-10%' => 0, - '10-20%' => 0, - '20-30%' => 0, - '30-40%' => 0, - '40-50%' => 0, - '50-60%' => 0, - '60-70%' => 0, - '70-80%' => 0, - '80-90%' => 0, - '90-100%' => 0, - '100%' => 0 - ] - ]; - - foreach ($classes as $class) { - foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] === 0) { - $result['method']['0%']++; - } elseif ($method['coverage'] === 100) { - $result['method']['100%']++; - } else { - $key = \floor($method['coverage'] / 10) * 10; - $key = $key . '-' . ($key + 10) . '%'; - $result['method'][$key]++; - } - } - - if ($class['coverage'] === 0) { - $result['class']['0%']++; - } elseif ($class['coverage'] === 100) { - $result['class']['100%']++; - } else { - $key = \floor($class['coverage'] / 10) * 10; - $key = $key . '-' . ($key + 10) . '%'; - $result['class'][$key]++; - } - } - - return [ - 'class' => \json_encode(\array_values($result['class'])), - 'method' => \json_encode(\array_values($result['method'])) - ]; - } - - /** - * Returns the classes / methods with insufficient coverage. - * - * @param array $classes - * @param string $baseLink - * - * @return array - */ - protected function insufficientCoverage(array $classes, $baseLink) - { - $leastTestedClasses = []; - $leastTestedMethods = []; - $result = ['class' => '', 'method' => '']; - - foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] < $this->highLowerBound) { - $key = $methodName; - - if ($className !== '*') { - $key = $className . '::' . $methodName; - } - - $leastTestedMethods[$key] = $method['coverage']; - } - } - - if ($class['coverage'] < $this->highLowerBound) { - $leastTestedClasses[$className] = $class['coverage']; - } - } - - \asort($leastTestedClasses); - \asort($leastTestedMethods); - - foreach ($leastTestedClasses as $className => $coverage) { - $result['class'] .= \sprintf( - ' %s%d%%' . "\n", - \str_replace($baseLink, '', $classes[$className]['link']), - $className, - $coverage - ); - } - - foreach ($leastTestedMethods as $methodName => $coverage) { - list($class, $method) = \explode('::', $methodName); - - $result['method'] .= \sprintf( - ' %s%d%%' . "\n", - \str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), - $methodName, - $method, - $coverage - ); - } - - return $result; - } - - /** - * Returns the project risks according to the CRAP index. - * - * @param array $classes - * @param string $baseLink - * - * @return array - */ - protected function projectRisks(array $classes, $baseLink) - { - $classRisks = []; - $methodRisks = []; - $result = ['class' => '', 'method' => '']; - - foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] < $this->highLowerBound && - $method['ccn'] > 1) { - if ($className !== '*') { - $key = $className . '::' . $methodName; - } else { - $key = $methodName; - } - - $methodRisks[$key] = $method['crap']; - } - } - - if ($class['coverage'] < $this->highLowerBound && - $class['ccn'] > \count($class['methods'])) { - $classRisks[$className] = $class['crap']; - } - } - - \arsort($classRisks); - \arsort($methodRisks); - - foreach ($classRisks as $className => $crap) { - $result['class'] .= \sprintf( - ' %s%d' . "\n", - \str_replace($baseLink, '', $classes[$className]['link']), - $className, - $crap - ); - } - - foreach ($methodRisks as $methodName => $crap) { - list($class, $method) = \explode('::', $methodName); - - $result['method'] .= \sprintf( - ' %s%d' . "\n", - \str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), - $methodName, - $method, - $crap - ); - } - - return $result; - } - - protected function getActiveBreadcrumb(AbstractNode $node) - { - return \sprintf( - '
  • %s
  • ' . "\n" . - '
  • (Dashboard)
  • ' . "\n", - $node->getName() - ); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php deleted file mode 100644 index 59e5a3b3..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report\Html; - -use SebastianBergmann\CodeCoverage\Node\AbstractNode as Node; -use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; - -/** - * Renders a directory node. - */ -class Directory extends Renderer -{ - /** - * @param DirectoryNode $node - * @param string $file - */ - public function render(DirectoryNode $node, $file) - { - $template = new \Text_Template($this->templatePath . 'directory.html', '{{', '}}'); - - $this->setCommonTemplateVariables($template, $node); - - $items = $this->renderItem($node, true); - - foreach ($node->getDirectories() as $item) { - $items .= $this->renderItem($item); - } - - foreach ($node->getFiles() as $item) { - $items .= $this->renderItem($item); - } - - $template->setVar( - [ - 'id' => $node->getId(), - 'items' => $items - ] - ); - - $template->renderTo($file); - } - - /** - * @param Node $node - * @param bool $total - * - * @return string - */ - protected function renderItem(Node $node, $total = false) - { - $data = [ - 'numClasses' => $node->getNumClassesAndTraits(), - 'numTestedClasses' => $node->getNumTestedClassesAndTraits(), - 'numMethods' => $node->getNumFunctionsAndMethods(), - 'numTestedMethods' => $node->getNumTestedFunctionsAndMethods(), - 'linesExecutedPercent' => $node->getLineExecutedPercent(false), - 'linesExecutedPercentAsString' => $node->getLineExecutedPercent(), - 'numExecutedLines' => $node->getNumExecutedLines(), - 'numExecutableLines' => $node->getNumExecutableLines(), - 'testedMethodsPercent' => $node->getTestedFunctionsAndMethodsPercent(false), - 'testedMethodsPercentAsString' => $node->getTestedFunctionsAndMethodsPercent(), - 'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false), - 'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent() - ]; - - if ($total) { - $data['name'] = 'Total'; - } else { - if ($node instanceof DirectoryNode) { - $data['name'] = \sprintf( - '%s', - $node->getName(), - $node->getName() - ); - - $data['icon'] = ' '; - } else { - $data['name'] = \sprintf( - '%s', - $node->getName(), - $node->getName() - ); - - $data['icon'] = ' '; - } - } - - return $this->renderItemTemplate( - new \Text_Template($this->templatePath . 'directory_item.html', '{{', '}}'), - $data - ); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php deleted file mode 100644 index 8e8bacde..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php +++ /dev/null @@ -1,561 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report\Html; - -use SebastianBergmann\CodeCoverage\Node\File as FileNode; -use SebastianBergmann\CodeCoverage\Util; - -/** - * Renders a file node. - */ -class File extends Renderer -{ - /** - * @var int - */ - private $htmlspecialcharsFlags; - - /** - * Constructor. - * - * @param string $templatePath - * @param string $generator - * @param string $date - * @param int $lowUpperBound - * @param int $highLowerBound - */ - public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound) - { - parent::__construct( - $templatePath, - $generator, - $date, - $lowUpperBound, - $highLowerBound - ); - - $this->htmlspecialcharsFlags = ENT_COMPAT; - - $this->htmlspecialcharsFlags = $this->htmlspecialcharsFlags | ENT_HTML401 | ENT_SUBSTITUTE; - } - - /** - * @param FileNode $node - * @param string $file - */ - public function render(FileNode $node, $file) - { - $template = new \Text_Template($this->templatePath . 'file.html', '{{', '}}'); - - $template->setVar( - [ - 'items' => $this->renderItems($node), - 'lines' => $this->renderSource($node) - ] - ); - - $this->setCommonTemplateVariables($template, $node); - - $template->renderTo($file); - } - - /** - * @param FileNode $node - * - * @return string - */ - protected function renderItems(FileNode $node) - { - $template = new \Text_Template($this->templatePath . 'file_item.html', '{{', '}}'); - - $methodItemTemplate = new \Text_Template( - $this->templatePath . 'method_item.html', - '{{', - '}}' - ); - - $items = $this->renderItemTemplate( - $template, - [ - 'name' => 'Total', - 'numClasses' => $node->getNumClassesAndTraits(), - 'numTestedClasses' => $node->getNumTestedClassesAndTraits(), - 'numMethods' => $node->getNumFunctionsAndMethods(), - 'numTestedMethods' => $node->getNumTestedFunctionsAndMethods(), - 'linesExecutedPercent' => $node->getLineExecutedPercent(false), - 'linesExecutedPercentAsString' => $node->getLineExecutedPercent(), - 'numExecutedLines' => $node->getNumExecutedLines(), - 'numExecutableLines' => $node->getNumExecutableLines(), - 'testedMethodsPercent' => $node->getTestedFunctionsAndMethodsPercent(false), - 'testedMethodsPercentAsString' => $node->getTestedFunctionsAndMethodsPercent(), - 'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false), - 'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent(), - 'crap' => 'CRAP' - ] - ); - - $items .= $this->renderFunctionItems( - $node->getFunctions(), - $methodItemTemplate - ); - - $items .= $this->renderTraitOrClassItems( - $node->getTraits(), - $template, - $methodItemTemplate - ); - - $items .= $this->renderTraitOrClassItems( - $node->getClasses(), - $template, - $methodItemTemplate - ); - - return $items; - } - - /** - * @param array $items - * @param \Text_Template $template - * @param \Text_Template $methodItemTemplate - * - * @return string - */ - protected function renderTraitOrClassItems(array $items, \Text_Template $template, \Text_Template $methodItemTemplate) - { - if (empty($items)) { - return ''; - } - - $buffer = ''; - - foreach ($items as $name => $item) { - $numMethods = \count($item['methods']); - $numTestedMethods = 0; - - foreach ($item['methods'] as $method) { - if ($method['executedLines'] == $method['executableLines']) { - $numTestedMethods++; - } - } - - if ($item['executableLines'] > 0) { - $numClasses = 1; - $numTestedClasses = $numTestedMethods == $numMethods ? 1 : 0; - $linesExecutedPercentAsString = Util::percent( - $item['executedLines'], - $item['executableLines'], - true - ); - } else { - $numClasses = 'n/a'; - $numTestedClasses = 'n/a'; - $linesExecutedPercentAsString = 'n/a'; - } - - $buffer .= $this->renderItemTemplate( - $template, - [ - 'name' => $name, - 'numClasses' => $numClasses, - 'numTestedClasses' => $numTestedClasses, - 'numMethods' => $numMethods, - 'numTestedMethods' => $numTestedMethods, - 'linesExecutedPercent' => Util::percent( - $item['executedLines'], - $item['executableLines'], - false - ), - 'linesExecutedPercentAsString' => $linesExecutedPercentAsString, - 'numExecutedLines' => $item['executedLines'], - 'numExecutableLines' => $item['executableLines'], - 'testedMethodsPercent' => Util::percent( - $numTestedMethods, - $numMethods, - false - ), - 'testedMethodsPercentAsString' => Util::percent( - $numTestedMethods, - $numMethods, - true - ), - 'testedClassesPercent' => Util::percent( - $numTestedMethods == $numMethods ? 1 : 0, - 1, - false - ), - 'testedClassesPercentAsString' => Util::percent( - $numTestedMethods == $numMethods ? 1 : 0, - 1, - true - ), - 'crap' => $item['crap'] - ] - ); - - foreach ($item['methods'] as $method) { - $buffer .= $this->renderFunctionOrMethodItem( - $methodItemTemplate, - $method, - ' ' - ); - } - } - - return $buffer; - } - - /** - * @param array $functions - * @param \Text_Template $template - * - * @return string - */ - protected function renderFunctionItems(array $functions, \Text_Template $template) - { - if (empty($functions)) { - return ''; - } - - $buffer = ''; - - foreach ($functions as $function) { - $buffer .= $this->renderFunctionOrMethodItem( - $template, - $function - ); - } - - return $buffer; - } - - /** - * @param \Text_Template $template - * - * @return string - */ - protected function renderFunctionOrMethodItem(\Text_Template $template, array $item, $indent = '') - { - $numTestedItems = $item['executedLines'] == $item['executableLines'] ? 1 : 0; - - return $this->renderItemTemplate( - $template, - [ - 'name' => \sprintf( - '%s%s', - $indent, - $item['startLine'], - \htmlspecialchars($item['signature']), - isset($item['functionName']) ? $item['functionName'] : $item['methodName'] - ), - 'numMethods' => 1, - 'numTestedMethods' => $numTestedItems, - 'linesExecutedPercent' => Util::percent( - $item['executedLines'], - $item['executableLines'], - false - ), - 'linesExecutedPercentAsString' => Util::percent( - $item['executedLines'], - $item['executableLines'], - true - ), - 'numExecutedLines' => $item['executedLines'], - 'numExecutableLines' => $item['executableLines'], - 'testedMethodsPercent' => Util::percent( - $numTestedItems, - 1, - false - ), - 'testedMethodsPercentAsString' => Util::percent( - $numTestedItems, - 1, - true - ), - 'crap' => $item['crap'] - ] - ); - } - - /** - * @param FileNode $node - * - * @return string - */ - protected function renderSource(FileNode $node) - { - $coverageData = $node->getCoverageData(); - $testData = $node->getTestData(); - $codeLines = $this->loadFile($node->getPath()); - $lines = ''; - $i = 1; - - foreach ($codeLines as $line) { - $trClass = ''; - $popoverContent = ''; - $popoverTitle = ''; - - if (\array_key_exists($i, $coverageData)) { - $numTests = ($coverageData[$i] ? \count($coverageData[$i]) : 0); - - if ($coverageData[$i] === null) { - $trClass = ' class="warning"'; - } elseif ($numTests == 0) { - $trClass = ' class="danger"'; - } else { - $lineCss = 'covered-by-large-tests'; - $popoverContent = '
      '; - - if ($numTests > 1) { - $popoverTitle = $numTests . ' tests cover line ' . $i; - } else { - $popoverTitle = '1 test covers line ' . $i; - } - - foreach ($coverageData[$i] as $test) { - if ($lineCss == 'covered-by-large-tests' && $testData[$test]['size'] == 'medium') { - $lineCss = 'covered-by-medium-tests'; - } elseif ($testData[$test]['size'] == 'small') { - $lineCss = 'covered-by-small-tests'; - } - - switch ($testData[$test]['status']) { - case 0: - switch ($testData[$test]['size']) { - case 'small': - $testCSS = ' class="covered-by-small-tests"'; - - break; - - case 'medium': - $testCSS = ' class="covered-by-medium-tests"'; - - break; - - default: - $testCSS = ' class="covered-by-large-tests"'; - - break; - } - - break; - - case 1: - case 2: - $testCSS = ' class="warning"'; - - break; - - case 3: - $testCSS = ' class="danger"'; - - break; - - case 4: - $testCSS = ' class="danger"'; - - break; - - default: - $testCSS = ''; - } - - $popoverContent .= \sprintf( - '%s', - $testCSS, - \htmlspecialchars($test) - ); - } - - $popoverContent .= '
    '; - $trClass = ' class="' . $lineCss . ' popin"'; - } - } - - if (!empty($popoverTitle)) { - $popover = \sprintf( - ' data-title="%s" data-content="%s" data-placement="bottom" data-html="true"', - $popoverTitle, - \htmlspecialchars($popoverContent) - ); - } else { - $popover = ''; - } - - $lines .= \sprintf( - ' %s' . "\n", - $trClass, - $popover, - $i, - $i, - $i, - $line - ); - - $i++; - } - - return $lines; - } - - /** - * @param string $file - * - * @return array - */ - protected function loadFile($file) - { - $buffer = \file_get_contents($file); - $tokens = \token_get_all($buffer); - $result = ['']; - $i = 0; - $stringFlag = false; - $fileEndsWithNewLine = \substr($buffer, -1) == "\n"; - - unset($buffer); - - foreach ($tokens as $j => $token) { - if (\is_string($token)) { - if ($token === '"' && $tokens[$j - 1] !== '\\') { - $result[$i] .= \sprintf( - '%s', - \htmlspecialchars($token) - ); - - $stringFlag = !$stringFlag; - } else { - $result[$i] .= \sprintf( - '%s', - \htmlspecialchars($token) - ); - } - - continue; - } - - list($token, $value) = $token; - - $value = \str_replace( - ["\t", ' '], - ['    ', ' '], - \htmlspecialchars($value, $this->htmlspecialcharsFlags) - ); - - if ($value === "\n") { - $result[++$i] = ''; - } else { - $lines = \explode("\n", $value); - - foreach ($lines as $jj => $line) { - $line = \trim($line); - - if ($line !== '') { - if ($stringFlag) { - $colour = 'string'; - } else { - switch ($token) { - case T_INLINE_HTML: - $colour = 'html'; - - break; - - case T_COMMENT: - case T_DOC_COMMENT: - $colour = 'comment'; - - break; - - case T_ABSTRACT: - case T_ARRAY: - case T_AS: - case T_BREAK: - case T_CALLABLE: - case T_CASE: - case T_CATCH: - case T_CLASS: - case T_CLONE: - case T_CONTINUE: - case T_DEFAULT: - case T_ECHO: - case T_ELSE: - case T_ELSEIF: - case T_EMPTY: - case T_ENDDECLARE: - case T_ENDFOR: - case T_ENDFOREACH: - case T_ENDIF: - case T_ENDSWITCH: - case T_ENDWHILE: - case T_EXIT: - case T_EXTENDS: - case T_FINAL: - case T_FINALLY: - case T_FOREACH: - case T_FUNCTION: - case T_GLOBAL: - case T_IF: - case T_IMPLEMENTS: - case T_INCLUDE: - case T_INCLUDE_ONCE: - case T_INSTANCEOF: - case T_INSTEADOF: - case T_INTERFACE: - case T_ISSET: - case T_LOGICAL_AND: - case T_LOGICAL_OR: - case T_LOGICAL_XOR: - case T_NAMESPACE: - case T_NEW: - case T_PRIVATE: - case T_PROTECTED: - case T_PUBLIC: - case T_REQUIRE: - case T_REQUIRE_ONCE: - case T_RETURN: - case T_STATIC: - case T_THROW: - case T_TRAIT: - case T_TRY: - case T_UNSET: - case T_USE: - case T_VAR: - case T_WHILE: - case T_YIELD: - $colour = 'keyword'; - - break; - - default: - $colour = 'default'; - } - } - - $result[$i] .= \sprintf( - '%s', - $colour, - $line - ); - } - - if (isset($lines[$jj + 1])) { - $result[++$i] = ''; - } - } - } - } - - if ($fileEndsWithNewLine) { - unset($result[\count($result) - 1]); - } - - return $result; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist deleted file mode 100644 index 5a09c354..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist +++ /dev/null @@ -1,5 +0,0 @@ -
    -
    - {{percent}}% covered ({{level}}) -
    -
    diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css deleted file mode 100644 index ed3905e0..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css deleted file mode 100644 index 7a6f7fe9..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css +++ /dev/null @@ -1 +0,0 @@ -.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:400 12px Arial}.nvd3 .title{font:700 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1);color:rgba(0,0,0,1);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:200ms;-moz-transition-delay:200ms;-webkit-transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:400;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);text-align:center;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:400}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc} \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css deleted file mode 100644 index 824fb317..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css +++ /dev/null @@ -1,122 +0,0 @@ -body { - padding-top: 10px; -} - -.popover { - max-width: none; -} - -.glyphicon { - margin-right:.25em; -} - -.table-bordered>thead>tr>td { - border-bottom-width: 1px; -} - -.table tbody>tr>td, .table thead>tr>td { - padding-top: 3px; - padding-bottom: 3px; -} - -.table-condensed tbody>tr>td { - padding-top: 0; - padding-bottom: 0; -} - -.table .progress { - margin-bottom: inherit; -} - -.table-borderless th, .table-borderless td { - border: 0 !important; -} - -.table tbody tr.covered-by-large-tests, li.covered-by-large-tests, tr.success, td.success, li.success, span.success { - background-color: #dff0d8; -} - -.table tbody tr.covered-by-medium-tests, li.covered-by-medium-tests { - background-color: #c3e3b5; -} - -.table tbody tr.covered-by-small-tests, li.covered-by-small-tests { - background-color: #99cb84; -} - -.table tbody tr.danger, .table tbody td.danger, li.danger, span.danger { - background-color: #f2dede; -} - -.table tbody td.warning, li.warning, span.warning { - background-color: #fcf8e3; -} - -.table tbody td.info { - background-color: #d9edf7; -} - -td.big { - width: 117px; -} - -td.small { -} - -td.codeLine { - font-family: monospace; - white-space: pre; -} - -td span.comment { - color: #888a85; -} - -td span.default { - color: #2e3436; -} - -td span.html { - color: #888a85; -} - -td span.keyword { - color: #2e3436; - font-weight: bold; -} - -pre span.string { - color: #2e3436; -} - -span.success, span.warning, span.danger { - margin-right: 2px; - padding-left: 10px; - padding-right: 10px; - text-align: center; -} - -#classCoverageDistribution, #classComplexity { - height: 200px; - width: 475px; -} - -#toplink { - position: fixed; - left: 5px; - bottom: 5px; - outline: 0; -} - -svg text { - font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif; - font-size: 11px; - color: #666; - fill: #666; -} - -.scrollbox { - height:245px; - overflow-x:hidden; - overflow-y:scroll; -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist deleted file mode 100644 index f45eb575..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist +++ /dev/null @@ -1,284 +0,0 @@ - - - - - Dashboard for {{full_path}} - - - - - - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -

    Classes

    -
    -
    -
    -
    -

    Coverage Distribution

    -
    - -
    -
    -
    -

    Complexity

    -
    - -
    -
    -
    -
    -
    -

    Insufficient Coverage

    -
    - - - - - - - - -{{insufficient_coverage_classes}} - -
    ClassCoverage
    -
    -
    -
    -

    Project Risks

    -
    - - - - - - - - -{{project_risks_classes}} - -
    ClassCRAP
    -
    -
    -
    -
    -
    -

    Methods

    -
    -
    -
    -
    -

    Coverage Distribution

    -
    - -
    -
    -
    -

    Complexity

    -
    - -
    -
    -
    -
    -
    -

    Insufficient Coverage

    -
    - - - - - - - - -{{insufficient_coverage_methods}} - -
    MethodCoverage
    -
    -
    -
    -

    Project Risks

    -
    - - - - - - - - -{{project_risks_methods}} - -
    MethodCRAP
    -
    -
    -
    - -
    - - - - - - - - diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist deleted file mode 100644 index 7c079240..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist +++ /dev/null @@ -1,61 +0,0 @@ - - - - - Code Coverage for {{full_path}} - - - - - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -{{items}} - -
     
    Code Coverage
     
    Lines
    Functions and Methods
    Classes and Traits
    -
    -
    -

    Legend

    -

    - Low: 0% to {{low_upper_bound}}% - Medium: {{low_upper_bound}}% to {{high_lower_bound}}% - High: {{high_lower_bound}}% to 100% -

    -

    - Generated by php-code-coverage {{version}} using {{runtime}}{{generator}} at {{date}}. -

    -
    -
    - - - - - diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist deleted file mode 100644 index 78dbb356..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist +++ /dev/null @@ -1,13 +0,0 @@ - - {{icon}}{{name}} - {{lines_bar}} -
    {{lines_executed_percent}}
    -
    {{lines_number}}
    - {{methods_bar}} -
    {{methods_tested_percent}}
    -
    {{methods_number}}
    - {{classes_bar}} -
    {{classes_tested_percent}}
    -
    {{classes_number}}
    - - diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist deleted file mode 100644 index ba03f0e5..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist +++ /dev/null @@ -1,68 +0,0 @@ - - - - - Code Coverage for {{full_path}} - - - - - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -{{items}} - -
     
    Code Coverage
     
    Classes and Traits
    Functions and Methods
    Lines
    - - -{{lines}} - -
    -
    -
    -

    Legend

    -

    - Executed - Not Executed - Dead Code -

    -

    - Generated by php-code-coverage {{version}} using {{runtime}}{{generator}} at {{date}}. -

    - -
    -
    - - - - - - diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist deleted file mode 100644 index 756fdd69..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist +++ /dev/null @@ -1,14 +0,0 @@ - - {{name}} - {{classes_bar}} -
    {{classes_tested_percent}}
    -
    {{classes_number}}
    - {{methods_bar}} -
    {{methods_tested_percent}}
    -
    {{methods_number}}
    - {{crap}} - {{lines_bar}} -
    {{lines_executed_percent}}
    -
    {{lines_number}}
    - - diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a4953fff68df523aa7656497ee339d6026d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20127 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc609ab6f21774de0cb7e01360095584f65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45404 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 G`u_lkUM?>H diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18028 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 diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js deleted file mode 100644 index 9bcd2fcc..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js deleted file mode 100644 index 16648730..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js +++ /dev/null @@ -1,5 +0,0 @@ -!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ -r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], -shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; -if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js deleted file mode 100644 index 756cc08a..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js +++ /dev/null @@ -1,61 +0,0 @@ - $(function() { - var $window = $(window) - , $top_link = $('#toplink') - , $body = $('body, html') - , offset = $('#code').offset().top - , hidePopover = function ($target) { - $target.data('popover-hover', false); - - setTimeout(function () { - if (!$target.data('popover-hover')) { - $target.popover('hide'); - } - }, 300); - }; - - $top_link.hide().click(function(event) { - event.preventDefault(); - $body.animate({scrollTop:0}, 800); - }); - - $window.scroll(function() { - if($window.scrollTop() > offset) { - $top_link.fadeIn(); - } else { - $top_link.fadeOut(); - } - }).scroll(); - - $('.popin') - .popover({trigger: 'manual'}) - .on({ - 'mouseenter.popover': function () { - var $target = $(this); - - $target.data('popover-hover', true); - - // popover already displayed - if ($target.next('.popover').length) { - return; - } - - // show the popover - $target.popover('show'); - - // register mouse events on the popover - $target.next('.popover:not(.popover-initialized)') - .on({ - 'mouseenter': function () { - $target.data('popover-hover', true); - }, - 'mouseleave': function () { - hidePopover($target); - } - }) - .addClass('popover-initialized'); - }, - 'mouseleave.popover': function () { - hidePopover($(this)); - } - }); - }); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js deleted file mode 100644 index 6bfc844b..00000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/*! - -Holder - client side image placeholders -Version 2.7.1+6hydf -© 2015 Ivan Malopinsky - http://imsky.co - -Site: http://holderjs.com -Issues: https://github.com/imsky/holder/issues -License: http://opensource.org/licenses/MIT - -*/ -!function(a){if(a.document){var b=a.document;b.querySelectorAll||(b.querySelectorAll=function(c){var d,e=b.createElement("style"),f=[];for(b.documentElement.firstChild.appendChild(e),b._qsa=[],e.styleSheet.cssText=c+"{x-qsa:expression(document._qsa && document._qsa.push(this))}",a.scrollBy(0,0),e.parentNode.removeChild(e);b._qsa.length;)d=b._qsa.shift(),d.style.removeAttribute("x-qsa"),f.push(d);return b._qsa=null,f}),b.querySelector||(b.querySelector=function(a){var c=b.querySelectorAll(a);return c.length?c[0]:null}),b.getElementsByClassName||(b.getElementsByClassName=function(a){return a=String(a).replace(/^|\s+/g,"."),b.querySelectorAll(a)}),Object.keys||(Object.keys=function(a){if(a!==Object(a))throw TypeError("Object.keys called on non-object");var b,c=[];for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&c.push(b);return c}),function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a.atob=a.atob||function(a){a=String(a);var c,d=0,e=[],f=0,g=0;if(a=a.replace(/\s/g,""),a.length%4===0&&(a=a.replace(/=+$/,"")),a.length%4===1)throw Error("InvalidCharacterError");if(/[^+/0-9A-Za-z]/.test(a))throw Error("InvalidCharacterError");for(;d>16&255)),e.push(String.fromCharCode(f>>8&255)),e.push(String.fromCharCode(255&f)),g=0,f=0),d+=1;return 12===g?(f>>=4,e.push(String.fromCharCode(255&f))):18===g&&(f>>=2,e.push(String.fromCharCode(f>>8&255)),e.push(String.fromCharCode(255&f))),e.join("")},a.btoa=a.btoa||function(a){a=String(a);var c,d,e,f,g,h,i,j=0,k=[];if(/[^\x00-\xFF]/.test(a))throw Error("InvalidCharacterError");for(;j>2,g=(3&c)<<4|d>>4,h=(15&d)<<2|e>>6,i=63&e,j===a.length+2?(h=64,i=64):j===a.length+1&&(i=64),k.push(b.charAt(f),b.charAt(g),b.charAt(h),b.charAt(i));return k.join("")}}(a),Object.prototype.hasOwnProperty||(Object.prototype.hasOwnProperty=function(a){var b=this.__proto__||this.constructor.prototype;return a in this&&(!(a in b)||b[a]!==this[a])}),function(){if("performance"in a==!1&&(a.performance={}),Date.now=Date.now||function(){return(new Date).getTime()},"now"in a.performance==!1){var b=Date.now();performance.timing&&performance.timing.navigationStart&&(b=performance.timing.navigationStart),a.performance.now=function(){return Date.now()-b}}}(),a.requestAnimationFrame||(a.webkitRequestAnimationFrame?!function(a){a.requestAnimationFrame=function(b){return webkitRequestAnimationFrame(function(){b(a.performance.now())})},a.cancelAnimationFrame=webkitCancelAnimationFrame}(a):a.mozRequestAnimationFrame?!function(a){a.requestAnimationFrame=function(b){return mozRequestAnimationFrame(function(){b(a.performance.now())})},a.cancelAnimationFrame=mozCancelAnimationFrame}(a):!function(a){a.requestAnimationFrame=function(b){return a.setTimeout(b,1e3/60)},a.cancelAnimationFrame=a.clearTimeout}(a))}}(this),function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):"object"==typeof exports?exports.Holder=b():a.Holder=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){(function(b){function d(a,b,c,d){var f=e(c.substr(c.lastIndexOf(a.domain)),a);f&&h({mode:null,el:d,flags:f,engineSettings:b})}function e(a,b){var c={theme:B(J.settings.themes.gray,null),stylesheets:b.stylesheets,instanceOptions:b};return a.match(/([\d]+p?)x([\d]+p?)(?:\?|$)/)?f(a,c):g(a,c)}function f(a,b){var c=a.split("?"),d=c[0].split("/");b.holderURL=a;var e=d[1],f=e.match(/([\d]+p?)x([\d]+p?)/);if(!f)return!1;if(b.fluid=-1!==e.indexOf("p"),b.dimensions={width:f[1].replace("p","%"),height:f[2].replace("p","%")},2===c.length){var g=A.parse(c[1]);if(g.bg&&(b.theme.background=(-1===g.bg.indexOf("#")?"#":"")+g.bg),g.fg&&(b.theme.foreground=(-1===g.fg.indexOf("#")?"#":"")+g.fg),g.theme&&b.instanceOptions.themes.hasOwnProperty(g.theme)&&(b.theme=B(b.instanceOptions.themes[g.theme],null)),g.text&&(b.text=g.text),g.textmode&&(b.textmode=g.textmode),g.size&&(b.size=g.size),g.font&&(b.font=g.font),g.align&&(b.align=g.align),b.nowrap=z.truthy(g.nowrap),b.auto=z.truthy(g.auto),z.truthy(g.random)){J.vars.cache.themeKeys=J.vars.cache.themeKeys||Object.keys(b.instanceOptions.themes);var h=J.vars.cache.themeKeys[0|Math.random()*J.vars.cache.themeKeys.length];b.theme=B(b.instanceOptions.themes[h],null)}}return b}function g(a,b){var c=!1,d=String.fromCharCode(11),e=a.replace(/([^\\])\//g,"$1"+d).split(d),f=/%[0-9a-f]{2}/gi,g=b.instanceOptions;b.holderURL=[];for(var h=e.length,i=0;h>i;i++){var j=e[i];if(j.match(f))try{j=decodeURIComponent(j)}catch(k){j=e[i]}var l=!1;if(J.flags.dimensions.match(j))c=!0,b.dimensions=J.flags.dimensions.output(j),l=!0;else if(J.flags.fluid.match(j))c=!0,b.dimensions=J.flags.fluid.output(j),b.fluid=!0,l=!0;else if(J.flags.textmode.match(j))b.textmode=J.flags.textmode.output(j),l=!0;else if(J.flags.colors.match(j)){var m=J.flags.colors.output(j);b.theme=B(b.theme,m),l=!0}else if(g.themes[j])g.themes.hasOwnProperty(j)&&(b.theme=B(g.themes[j],null)),l=!0;else if(J.flags.font.match(j))b.font=J.flags.font.output(j),l=!0;else if(J.flags.auto.match(j))b.auto=!0,l=!0;else if(J.flags.text.match(j))b.text=J.flags.text.output(j),l=!0;else if(J.flags.size.match(j))b.size=J.flags.size.output(j),l=!0;else if(J.flags.random.match(j)){null==J.vars.cache.themeKeys&&(J.vars.cache.themeKeys=Object.keys(g.themes));var n=J.vars.cache.themeKeys[0|Math.random()*J.vars.cache.themeKeys.length];b.theme=B(g.themes[n],null),l=!0}l&&b.holderURL.push(j)}return b.holderURL.unshift(g.domain),b.holderURL=b.holderURL.join("/"),c?b:!1}function h(a){var b=a.mode,c=a.el,d=a.flags,e=a.engineSettings,f=d.dimensions,g=d.theme,h=f.width+"x"+f.height;if(b=null==b?d.fluid?"fluid":"image":b,null!=d.text&&(g.text=d.text,"object"===c.nodeName.toLowerCase())){for(var j=g.text.split("\\n"),k=0;k1){var n,o=0,p=0,q=0;j=new e.Group("line"+q),("left"===a.align||"right"===a.align)&&(m=a.width*(1-2*(1-J.setup.lineWrapRatio)));for(var r=0;r=m||t===!0)&&(b(g,j,o,g.properties.leading),g.add(j),o=0,p+=g.properties.leading,q+=1,j=new e.Group("line"+q),j.y=p),t!==!0&&(i.moveTo(o,0),o+=h.spaceWidth+s.width,j.add(i))}if(b(g,j,o,g.properties.leading),g.add(j),"left"===a.align)g.moveTo(a.width-l,null,null);else if("right"===a.align){for(n in g.children)j=g.children[n],j.moveTo(a.width-j.width,null,null);g.moveTo(0-(a.width-l),null,null)}else{for(n in g.children)j=g.children[n],j.moveTo((g.width-j.width)/2,null,null);g.moveTo((a.width-g.width)/2,null,null)}g.moveTo(null,(a.height-g.height)/2,null),(a.height-g.height)/2<0&&g.moveTo(null,0,null)}else i=new e.Text(a.text),j=new e.Group("line0"),j.add(i),g.add(j),"left"===a.align?g.moveTo(a.width-l,null,null):"right"===a.align?g.moveTo(0-(a.width-l),null,null):g.moveTo((a.width-h.boundingBox.width)/2,null,null),g.moveTo(null,(a.height-h.boundingBox.height)/2,null);return d}function k(a,b,c){var d=parseInt(a,10),e=parseInt(b,10),f=Math.max(d,e),g=Math.min(d,e),h=.8*Math.min(g,f*J.defaults.scale);return Math.round(Math.max(c,h))}function l(a){var b;b=null==a||null==a.nodeType?J.vars.resizableImages:[a];for(var c=0,d=b.length;d>c;c++){var e=b[c];if(e.holderData){var f=e.holderData.flags,g=D(e);if(g){if(!e.holderData.resizeUpdate)continue;if(f.fluid&&f.auto){var h=e.holderData.fluidConfig;switch(h.mode){case"width":g.height=g.width/h.ratio;break;case"height":g.width=g.height*h.ratio}}var j={mode:"image",holderSettings:{dimensions:g,theme:f.theme,flags:f},el:e,engineSettings:e.holderData.engineSettings};"exact"==f.textmode&&(f.exactDimensions=g,j.holderSettings.dimensions=f.dimensions),i(j)}else p(e)}}}function m(a){if(a.holderData){var b=D(a);if(b){var c=a.holderData.flags,d={fluidHeight:"%"==c.dimensions.height.slice(-1),fluidWidth:"%"==c.dimensions.width.slice(-1),mode:null,initialDimensions:b};d.fluidWidth&&!d.fluidHeight?(d.mode="width",d.ratio=d.initialDimensions.width/parseFloat(c.dimensions.height)):!d.fluidWidth&&d.fluidHeight&&(d.mode="height",d.ratio=parseFloat(c.dimensions.width)/d.initialDimensions.height),a.holderData.fluidConfig=d}else p(a)}}function n(){for(var a,c=[],d=Object.keys(J.vars.invisibleImages),e=0,f=d.length;f>e;e++)a=J.vars.invisibleImages[d[e]],D(a)&&"img"==a.nodeName.toLowerCase()&&(c.push(a),delete J.vars.invisibleImages[d[e]]);c.length&&I.run({images:c}),b.requestAnimationFrame(n)}function o(){J.vars.visibilityCheckStarted||(b.requestAnimationFrame(n),J.vars.visibilityCheckStarted=!0)}function p(a){a.holderData.invisibleId||(J.vars.invisibleId+=1,J.vars.invisibleImages["i"+J.vars.invisibleId]=a,a.holderData.invisibleId=J.vars.invisibleId)}function q(a,b){return null==b?document.createElement(a):document.createElementNS(b,a)}function r(a,b){for(var c in b)a.setAttribute(c,b[c])}function s(a,b,c){var d,e;null==a?(a=q("svg",E),d=q("defs",E),e=q("style",E),r(e,{type:"text/css"}),d.appendChild(e),a.appendChild(d)):e=a.querySelector("style"),a.webkitMatchesSelector&&a.setAttribute("xmlns",E);for(var f=0;f=0;h--){var i=g.createProcessingInstruction("xml-stylesheet",'href="'+f[h]+'" rel="stylesheet"');g.insertBefore(i,g.firstChild)}g.removeChild(g.documentElement),e=d.serializeToString(g)}var j=d.serializeToString(a);return j=j.replace(/\&(\#[0-9]{2,}\;)/g,"&$1"),e+j}}function u(){return b.DOMParser?(new DOMParser).parseFromString("","application/xml"):void 0}function v(a){J.vars.debounceTimer||a.call(this),J.vars.debounceTimer&&b.clearTimeout(J.vars.debounceTimer),J.vars.debounceTimer=b.setTimeout(function(){J.vars.debounceTimer=null,a.call(this)},J.setup.debounce)}function w(){v(function(){l(null)})}var x=c(1),y=c(2),z=c(3),A=c(4),B=z.extend,C=z.getNodeArray,D=z.dimensionCheck,E="http://www.w3.org/2000/svg",F=8,G="2.7.1",H="\nCreated with Holder.js "+G+".\nLearn more at http://holderjs.com\n(c) 2012-2015 Ivan Malopinsky - http://imsky.co\n",I={version:G,addTheme:function(a,b){return null!=a&&null!=b&&(J.settings.themes[a]=b),delete J.vars.cache.themeKeys,this},addImage:function(a,b){var c=document.querySelectorAll(b);if(c.length)for(var d=0,e=c.length;e>d;d++){var f=q("img"),g={};g[J.vars.dataAttr]=a,r(f,g),c[d].appendChild(f)}return this},setResizeUpdate:function(a,b){a.holderData&&(a.holderData.resizeUpdate=!!b,a.holderData.resizeUpdate&&l(a))},run:function(a){a=a||{};var c={},f=B(J.settings,a);J.vars.preempted=!0,J.vars.dataAttr=f.dataAttr||J.vars.dataAttr,c.renderer=f.renderer?f.renderer:J.setup.renderer,-1===J.setup.renderers.join(",").indexOf(c.renderer)&&(c.renderer=J.setup.supportsSVG?"svg":J.setup.supportsCanvas?"canvas":"html");var g=C(f.images),i=C(f.bgnodes),j=C(f.stylenodes),k=C(f.objects);c.stylesheets=[],c.svgXMLStylesheet=!0,c.noFontFallback=f.noFontFallback?f.noFontFallback:!1;for(var l=0;l1){c.nodeValue="";for(var u=0;u=0?b:1)}function f(a){v?e(a):w.push(a)}null==document.readyState&&document.addEventListener&&(document.addEventListener("DOMContentLoaded",function y(){document.removeEventListener("DOMContentLoaded",y,!1),document.readyState="complete"},!1),document.readyState="loading");var g=a.document,h=g.documentElement,i="load",j=!1,k="on"+i,l="complete",m="readyState",n="attachEvent",o="detachEvent",p="addEventListener",q="DOMContentLoaded",r="onreadystatechange",s="removeEventListener",t=p in g,u=j,v=j,w=[];if(g[m]===l)e(b);else if(t)g[p](q,c,j),a[p](i,c,j);else{g[n](r,c),a[n](k,c);try{u=null==a.frameElement&&h}catch(x){}u&&u.doScroll&&!function z(){if(!v){try{u.doScroll("left")}catch(a){return e(z,50)}d(),b()}}()}return f.version="1.4.0",f.isReady=function(){return v},f}a.exports="undefined"!=typeof window&&b(window)},function(a,b,c){var d=c(5),e=function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}var c=1,e=d.defclass({constructor:function(a){c++,this.parent=null,this.children={},this.id=c,this.name="n"+c,null!=a&&(this.name=a),this.x=0,this.y=0,this.z=0,this.width=0,this.height=0},resize:function(a,b){null!=a&&(this.width=a),null!=b&&(this.height=b)},moveTo:function(a,b,c){this.x=null!=a?a:this.x,this.y=null!=b?b:this.y,this.z=null!=c?c:this.z},add:function(a){var b=a.name;if(null!=this.children[b])throw"SceneGraph: child with that name already exists: "+b;this.children[b]=a,a.parent=this}}),f=d(e,function(b){this.constructor=function(){b.constructor.call(this,"root"),this.properties=a}}),g=d(e,function(a){function c(c,d){if(a.constructor.call(this,c),this.properties={fill:"#000"},null!=d)b(this.properties,d);else if(null!=c&&"string"!=typeof c)throw"SceneGraph: invalid node name"}this.Group=d.extend(this,{constructor:c,type:"group"}),this.Rect=d.extend(this,{constructor:c,type:"rect"}),this.Text=d.extend(this,{constructor:function(a){c.call(this),this.properties.text=a},type:"text"})}),h=new f;return this.Shape=g,this.root=h,this};a.exports=e},function(a,b){(function(a){b.extend=function(a,b){var c={};for(var d in a)a.hasOwnProperty(d)&&(c[d]=a[d]);if(null!=b)for(var e in b)b.hasOwnProperty(e)&&(c[e]=b[e]);return c},b.cssProps=function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c+":"+a[c]);return b.join(";")},b.encodeHtmlEntity=function(a){for(var b=[],c=0,d=a.length-1;d>=0;d--)c=a.charCodeAt(d),b.unshift(c>128?["&#",c,";"].join(""):a[d]);return b.join("")},b.getNodeArray=function(b){var c=null;return"string"==typeof b?c=document.querySelectorAll(b):a.NodeList&&b instanceof a.NodeList?c=b:a.Node&&b instanceof a.Node?c=[b]:a.HTMLCollection&&b instanceof a.HTMLCollection?c=b:b instanceof Array?c=b:null===b&&(c=[]),c},b.imageExists=function(a,b){var c=new Image;c.onerror=function(){b.call(this,!1)},c.onload=function(){b.call(this,!0)},c.src=a},b.decodeHtmlEntity=function(a){return a.replace(/&#(\d+);/g,function(a,b){return String.fromCharCode(b)})},b.dimensionCheck=function(a){var b={height:a.clientHeight,width:a.clientWidth};return b.height&&b.width?b:!1},b.truthy=function(a){return"string"==typeof a?"true"===a||"yes"===a||"1"===a||"on"===a||"✓"===a:!!a}}).call(b,function(){return this}())},function(a,b,c){var d=encodeURIComponent,e=decodeURIComponent,f=c(6),g=c(7),h=/(\w+)\[(\d+)\]/,i=/\w+\.\w+/;b.parse=function(a){if("string"!=typeof a)return{};if(a=f(a),""===a)return{};"?"===a.charAt(0)&&(a=a.slice(1));for(var b={},c=a.split("&"),d=0;d